From 69cc7ec90138b3d045085c27085e273eea2c3847 Mon Sep 17 00:00:00 2001 From: Yorik van Havre Date: Sun, 26 Jan 2014 20:13:50 -0200 Subject: [PATCH] Arch now works in console mode - fixes #1362 --- src/Mod/Arch/Arch.py | 9 +++++---- src/Mod/Arch/ArchAxis.py | 18 ++++++++++++------ src/Mod/Arch/ArchBuilding.py | 14 ++++++++++---- src/Mod/Arch/ArchCommands.py | 31 ++++++++++++++++++------------- src/Mod/Arch/ArchComponent.py | 11 ++++++++--- src/Mod/Arch/ArchFloor.py | 19 +++++++++++++------ src/Mod/Arch/ArchFrame.py | 15 ++++++++++----- src/Mod/Arch/ArchRebar.py | 15 ++++++++++----- src/Mod/Arch/ArchRoof.py | 14 ++++++++++---- src/Mod/Arch/ArchSectionPlane.py | 18 ++++++++++++------ src/Mod/Arch/ArchSite.py | 15 ++++++++++----- src/Mod/Arch/ArchSpace.py | 15 ++++++++++----- src/Mod/Arch/ArchStairs.py | 15 ++++++++++----- src/Mod/Arch/ArchStructure.py | 20 +++++++++++++------- src/Mod/Arch/ArchWall.py | 24 ++++++++++++++++-------- src/Mod/Arch/ArchWindow.py | 16 +++++++++++----- src/Mod/Draft/Draft.py | 2 +- 17 files changed, 179 insertions(+), 92 deletions(-) diff --git a/src/Mod/Arch/Arch.py b/src/Mod/Arch/Arch.py index 5d98a562a..c9bb35855 100644 --- a/src/Mod/Arch/Arch.py +++ b/src/Mod/Arch/Arch.py @@ -25,9 +25,10 @@ __title__="FreeCAD Arch API" __author__ = "Yorik van Havre" __url__ = "http://www.freecadweb.org" -import FreeCADGui - -FreeCADGui.updateLocale() +import FreeCAD +if FreeCAD.GuiUp: + import FreeCADGui + FreeCADGui.updateLocale() from ArchWall import * from ArchFloor import * @@ -42,4 +43,4 @@ from ArchRoof import * from ArchSpace import * from ArchStairs import * from ArchRebar import * -from ArchFrame import * +from ArchFrame import * \ No newline at end of file diff --git a/src/Mod/Arch/ArchAxis.py b/src/Mod/Arch/ArchAxis.py index 5e6f6bd18..d7a337407 100644 --- a/src/Mod/Arch/ArchAxis.py +++ b/src/Mod/Arch/ArchAxis.py @@ -21,11 +21,16 @@ #* * #*************************************************************************** -import FreeCAD,FreeCADGui,Draft,math,DraftVecUtils,ArchCommands +import FreeCAD,Draft,math,DraftVecUtils,ArchCommands from FreeCAD import Vector -from PySide import QtCore, QtGui -from pivy import coin -from DraftTools import translate +if FreeCAD.GuiUp: + import FreeCADGui + from PySide import QtCore, QtGui + from DraftTools import translate + from pivy import coin +else: + def translate(ctxt,txt): + return txt __title__="FreeCAD Axis System" __author__ = "Yorik van Havre" @@ -415,5 +420,6 @@ class _AxisTaskPanel: self.tree.setHeaderLabels([QtGui.QApplication.translate("Arch", "Axis", None, QtGui.QApplication.UnicodeUTF8), QtGui.QApplication.translate("Arch", "Distance", None, QtGui.QApplication.UnicodeUTF8), QtGui.QApplication.translate("Arch", "Angle", None, QtGui.QApplication.UnicodeUTF8)]) - -FreeCADGui.addCommand('Arch_Axis',_CommandAxis()) + +if FreeCAD.GuiUp: + FreeCADGui.addCommand('Arch_Axis',_CommandAxis()) diff --git a/src/Mod/Arch/ArchBuilding.py b/src/Mod/Arch/ArchBuilding.py index 140df634f..c0af9545f 100644 --- a/src/Mod/Arch/ArchBuilding.py +++ b/src/Mod/Arch/ArchBuilding.py @@ -21,9 +21,14 @@ #* * #*************************************************************************** -import FreeCAD,FreeCADGui,Draft,ArchCommands,ArchFloor -from PySide import QtCore -from DraftTools import translate +import FreeCAD,Draft,ArchCommands,ArchFloor +if FreeCAD.GuiUp: + import FreeCADGui + from PySide import QtCore, QtGui + from DraftTools import translate +else: + def translate(ctxt,txt): + return txt __title__="FreeCAD Building" __author__ = "Yorik van Havre" @@ -89,4 +94,5 @@ class _ViewProviderBuilding(ArchFloor._ViewProviderFloor): import Arch_rc return ":/icons/Arch_Building_Tree.svg" -FreeCADGui.addCommand('Arch_Building',_CommandBuilding()) +if FreeCAD.GuiUp: + FreeCADGui.addCommand('Arch_Building',_CommandBuilding()) diff --git a/src/Mod/Arch/ArchCommands.py b/src/Mod/Arch/ArchCommands.py index 25ac1160e..dd1c42e29 100644 --- a/src/Mod/Arch/ArchCommands.py +++ b/src/Mod/Arch/ArchCommands.py @@ -21,10 +21,15 @@ #* * #*************************************************************************** -import FreeCAD,FreeCADGui,Draft,ArchComponent,DraftVecUtils +import FreeCAD,Draft,ArchComponent,DraftVecUtils from FreeCAD import Vector -from PySide import QtCore -from DraftTools import translate +if FreeCAD.GuiUp: + import FreeCADGui + from PySide import QtGui,QtCore + from DraftTools import translate +else: + def translate(ctxt,txt): + return txt __title__="FreeCAD Arch Commands" __author__ = "Yorik van Havre" @@ -944,13 +949,13 @@ class _CommandFixture: FreeCAD.ActiveDocument.commitTransaction() FreeCAD.ActiveDocument.recompute() - -FreeCADGui.addCommand('Arch_Add',_CommandAdd()) -FreeCADGui.addCommand('Arch_Remove',_CommandRemove()) -FreeCADGui.addCommand('Arch_SplitMesh',_CommandSplitMesh()) -FreeCADGui.addCommand('Arch_MeshToShape',_CommandMeshToShape()) -FreeCADGui.addCommand('Arch_SelectNonSolidMeshes',_CommandSelectNonSolidMeshes()) -FreeCADGui.addCommand('Arch_RemoveShape',_CommandRemoveShape()) -FreeCADGui.addCommand('Arch_CloseHoles',_CommandCloseHoles()) -FreeCADGui.addCommand('Arch_Check',_CommandCheck()) -#FreeCADGui.addCommand('Arch_Fixture',_CommandFixture()) +if FreeCAD.GuiUp: + FreeCADGui.addCommand('Arch_Add',_CommandAdd()) + FreeCADGui.addCommand('Arch_Remove',_CommandRemove()) + FreeCADGui.addCommand('Arch_SplitMesh',_CommandSplitMesh()) + FreeCADGui.addCommand('Arch_MeshToShape',_CommandMeshToShape()) + FreeCADGui.addCommand('Arch_SelectNonSolidMeshes',_CommandSelectNonSolidMeshes()) + FreeCADGui.addCommand('Arch_RemoveShape',_CommandRemoveShape()) + FreeCADGui.addCommand('Arch_CloseHoles',_CommandCloseHoles()) + FreeCADGui.addCommand('Arch_Check',_CommandCheck()) + #FreeCADGui.addCommand('Arch_Fixture',_CommandFixture()) diff --git a/src/Mod/Arch/ArchComponent.py b/src/Mod/Arch/ArchComponent.py index d09ce1145..3078dcf53 100644 --- a/src/Mod/Arch/ArchComponent.py +++ b/src/Mod/Arch/ArchComponent.py @@ -25,10 +25,15 @@ __title__="FreeCAD Arch Component" __author__ = "Yorik van Havre" __url__ = "http://www.freecadweb.org" -import FreeCAD,FreeCADGui,Draft +import FreeCAD,Draft from FreeCAD import Vector -from PySide import QtGui,QtCore -from DraftTools import translate +if FreeCAD.GuiUp: + import FreeCADGui + from PySide import QtGui,QtCore + from DraftTools import translate +else: + def translate(ctxt,txt): + return txt def addToComponent(compobject,addobject,mod=None): '''addToComponent(compobject,addobject,mod): adds addobject diff --git a/src/Mod/Arch/ArchFloor.py b/src/Mod/Arch/ArchFloor.py index e1f9f2326..2d6ee2b63 100644 --- a/src/Mod/Arch/ArchFloor.py +++ b/src/Mod/Arch/ArchFloor.py @@ -21,9 +21,14 @@ #* * #*************************************************************************** -import FreeCAD,FreeCADGui,Draft,ArchCommands, DraftVecUtils -from PySide import QtCore -from DraftTools import translate +import FreeCAD,Draft,ArchCommands, DraftVecUtils +if FreeCAD.GuiUp: + import FreeCADGui + from PySide import QtCore, QtGui + from DraftTools import translate +else: + def translate(ctxt,txt): + return txt __title__="FreeCAD Arch Floor" __author__ = "Yorik van Havre" @@ -35,7 +40,8 @@ def makeFloor(objectslist=None,join=True,name=translate("Arch","Floor")): not be joined.''' obj = FreeCAD.ActiveDocument.addObject("App::DocumentObjectGroupPython",name) _Floor(obj) - _ViewProviderFloor(obj.ViewObject) + if FreeCAD.GuiUp: + _ViewProviderFloor(obj.ViewObject) if objectslist: obj.Group = objectslist return obj @@ -146,5 +152,6 @@ class _ViewProviderFloor: def __setstate__(self,state): return None - -FreeCADGui.addCommand('Arch_Floor',_CommandFloor()) + +if FreeCAD.GuiUp: + FreeCADGui.addCommand('Arch_Floor',_CommandFloor()) diff --git a/src/Mod/Arch/ArchFrame.py b/src/Mod/Arch/ArchFrame.py index 2d00043c9..5dcfdd977 100644 --- a/src/Mod/Arch/ArchFrame.py +++ b/src/Mod/Arch/ArchFrame.py @@ -21,10 +21,15 @@ #* * #*************************************************************************** -import FreeCAD,FreeCADGui,Draft,ArchComponent,DraftVecUtils,ArchCommands +import FreeCAD,Draft,ArchComponent,DraftVecUtils,ArchCommands from FreeCAD import Vector -from PySide import QtCore -from DraftTools import translate +if FreeCAD.GuiUp: + import FreeCADGui + from PySide import QtCore, QtGui + from DraftTools import translate +else: + def translate(ctxt,txt): + return txt __title__="FreeCAD Arch Frame" __author__ = "Yorik van Havre" @@ -148,5 +153,5 @@ class _ViewProviderFrame(ArchComponent.ViewProviderComponent): import Arch_rc return ":/icons/Arch_Frame_Tree.svg" - -FreeCADGui.addCommand('Arch_Frame',_CommandFrame()) +if FreeCAD.GuiUp: + FreeCADGui.addCommand('Arch_Frame',_CommandFrame()) diff --git a/src/Mod/Arch/ArchRebar.py b/src/Mod/Arch/ArchRebar.py index 91b2a9a93..1417150d6 100644 --- a/src/Mod/Arch/ArchRebar.py +++ b/src/Mod/Arch/ArchRebar.py @@ -21,10 +21,15 @@ #* * #*************************************************************************** -import FreeCAD,FreeCADGui,Draft,ArchComponent,DraftVecUtils,ArchCommands +import FreeCAD,Draft,ArchComponent,DraftVecUtils,ArchCommands from FreeCAD import Vector -from PySide import QtCore -from DraftTools import translate +if FreeCAD.GuiUp: + import FreeCADGui + from PySide import QtCore, QtGui + from DraftTools import translate +else: + def translate(ctxt,txt): + return txt __title__="FreeCAD Rebar" __author__ = "Yorik van Havre" @@ -238,5 +243,5 @@ class _ViewProviderRebar(ArchComponent.ViewProviderComponent): import Arch_rc return ":/icons/Arch_Rebar_Tree.svg" - -FreeCADGui.addCommand('Arch_Rebar',_CommandRebar()) +if FreeCAD.GuiUp: + FreeCADGui.addCommand('Arch_Rebar',_CommandRebar()) diff --git a/src/Mod/Arch/ArchRoof.py b/src/Mod/Arch/ArchRoof.py index 496bf1110..7593398ba 100644 --- a/src/Mod/Arch/ArchRoof.py +++ b/src/Mod/Arch/ArchRoof.py @@ -21,10 +21,15 @@ #* * #*************************************************************************** -import FreeCAD,FreeCADGui,Draft,ArchComponent, DraftVecUtils +import FreeCAD,Draft,ArchComponent, DraftVecUtils from FreeCAD import Vector -from PySide import QtCore -from DraftTools import translate +if FreeCAD.GuiUp: + import FreeCADGui + from PySide import QtCore, QtGui + from DraftTools import translate +else: + def translate(ctxt,txt): + return txt __title__="FreeCAD Roof" __author__ = "Yorik van Havre" @@ -163,4 +168,5 @@ class _ViewProviderRoof(ArchComponent.ViewProviderComponent): import Arch_rc return ":/icons/Arch_Roof_Tree.svg" -FreeCADGui.addCommand('Arch_Roof',_CommandRoof()) +if FreeCAD.GuiUp: + FreeCADGui.addCommand('Arch_Roof',_CommandRoof()) diff --git a/src/Mod/Arch/ArchSectionPlane.py b/src/Mod/Arch/ArchSectionPlane.py index 5b9806e6f..b11671220 100644 --- a/src/Mod/Arch/ArchSectionPlane.py +++ b/src/Mod/Arch/ArchSectionPlane.py @@ -21,11 +21,16 @@ #* * #*************************************************************************** -import FreeCAD,FreeCADGui,ArchComponent,WorkingPlane,math,Draft,ArchCommands,DraftVecUtils +import FreeCAD,ArchComponent,WorkingPlane,math,Draft,ArchCommands,DraftVecUtils from FreeCAD import Vector -from PySide import QtCore -from pivy import coin -from DraftTools import translate +if FreeCAD.GuiUp: + import FreeCADGui + from PySide import QtCore, QtGui + from DraftTools import translate + from pivy import coin +else: + def translate(ctxt,txt): + return txt def makeSectionPlane(objectslist=None,name=translate("Arch","Section")): """makeSectionPlane([objectslist]) : Creates a Section plane objects including the @@ -394,5 +399,6 @@ class _ArchDrawingView: result += '\n' # print "complete node:",result return result - -FreeCADGui.addCommand('Arch_SectionPlane',_CommandSectionPlane()) + +if FreeCAD.GuiUp: + FreeCADGui.addCommand('Arch_SectionPlane',_CommandSectionPlane()) diff --git a/src/Mod/Arch/ArchSite.py b/src/Mod/Arch/ArchSite.py index 9cb9c7e56..f1a6067ea 100644 --- a/src/Mod/Arch/ArchSite.py +++ b/src/Mod/Arch/ArchSite.py @@ -21,9 +21,14 @@ #* * #*************************************************************************** -import FreeCAD,FreeCADGui,Draft,ArchCommands,ArchFloor -from PySide import QtCore -from DraftTools import translate +import FreeCAD,Draft,ArchCommands,ArchFloor +if FreeCAD.GuiUp: + import FreeCADGui + from PySide import QtCore, QtGui + from DraftTools import translate +else: + def translate(ctxt,txt): + return txt __title__="FreeCAD Site" __author__ = "Yorik van Havre" @@ -103,5 +108,5 @@ class _ViewProviderSite(ArchFloor._ViewProviderFloor): def claimChildren(self): return self.Object.Group+[self.Object.Terrain] - -FreeCADGui.addCommand('Arch_Site',_CommandSite()) +if FreeCAD.GuiUp: + FreeCADGui.addCommand('Arch_Site',_CommandSite()) diff --git a/src/Mod/Arch/ArchSpace.py b/src/Mod/Arch/ArchSpace.py index d1979263f..2f8e1d16f 100644 --- a/src/Mod/Arch/ArchSpace.py +++ b/src/Mod/Arch/ArchSpace.py @@ -25,9 +25,14 @@ __title__="FreeCAD Arch Space" __author__ = "Yorik van Havre" __url__ = "http://www.freecadweb.org" -import FreeCAD,FreeCADGui,ArchComponent,ArchCommands,math,Draft -from DraftTools import translate -from PySide import QtCore +import FreeCAD,ArchComponent,ArchCommands,math,Draft +if FreeCAD.GuiUp: + import FreeCADGui + from PySide import QtCore, QtGui + from DraftTools import translate +else: + def translate(ctxt,txt): + return txt def makeSpace(objects=None,name=translate("Arch","Space")): """makeSpace([objects]): Creates a space object from the given objects. Objects can be one @@ -289,5 +294,5 @@ class _ViewProviderSpace(ArchComponent.ViewProviderComponent): self.setAnnotation(True) return - -FreeCADGui.addCommand('Arch_Space',_CommandSpace()) +if FreeCAD.GuiUp: + FreeCADGui.addCommand('Arch_Space',_CommandSpace()) diff --git a/src/Mod/Arch/ArchStairs.py b/src/Mod/Arch/ArchStairs.py index b620dd156..a4796440b 100644 --- a/src/Mod/Arch/ArchStairs.py +++ b/src/Mod/Arch/ArchStairs.py @@ -25,10 +25,15 @@ __title__="FreeCAD Arch Stairs" __author__ = "Yorik van Havre" __url__ = "http://www.freecadweb.org" -import FreeCAD,FreeCADGui,ArchComponent,ArchCommands,Draft,DraftVecUtils,math +import FreeCAD,ArchComponent,ArchCommands,Draft,DraftVecUtils,math from FreeCAD import Vector -from DraftTools import translate -from PySide import QtCore +if FreeCAD.GuiUp: + import FreeCADGui + from PySide import QtCore, QtGui + from DraftTools import translate +else: + def translate(ctxt,txt): + return txt def makeStairs(base=None,length=4.5,width=1,height=3,steps=17,name=translate("Arch","Stairs")): @@ -464,5 +469,5 @@ class _ViewProviderStairs(ArchComponent.ViewProviderComponent): import Arch_rc return ":/icons/Arch_Stairs_Tree.svg" - -FreeCADGui.addCommand('Arch_Stairs',_CommandStairs()) +if FreeCAD.GuiUp: + FreeCADGui.addCommand('Arch_Stairs',_CommandStairs()) diff --git a/src/Mod/Arch/ArchStructure.py b/src/Mod/Arch/ArchStructure.py index 36b6ec5ca..8bb751d3f 100644 --- a/src/Mod/Arch/ArchStructure.py +++ b/src/Mod/Arch/ArchStructure.py @@ -21,18 +21,24 @@ #* * #*************************************************************************** -import FreeCAD,FreeCADGui,Draft,ArchComponent,DraftVecUtils,ArchCommands +import FreeCAD,Draft,ArchComponent,DraftVecUtils,ArchCommands from FreeCAD import Vector -from PySide import QtCore, QtGui -from DraftTools import translate +if FreeCAD.GuiUp: + import FreeCADGui + from PySide import QtCore, QtGui + from DraftTools import translate +else: + def translate(ctxt,txt): + return txt __title__="FreeCAD Structure" __author__ = "Yorik van Havre" __url__ = "http://www.freecadweb.org" # Make some strings picked by the translator -QtCore.QT_TRANSLATE_NOOP("Arch","Wood") -QtCore.QT_TRANSLATE_NOOP("Arch","Steel") +if FreeCAD.GuiUp: + QtCore.QT_TRANSLATE_NOOP("Arch","Wood") + QtCore.QT_TRANSLATE_NOOP("Arch","Steel") # Possible roles for structural elements Roles = ["Beam","Column","Slab","Wall","Containment wall","Roof","Foundation"] @@ -813,5 +819,5 @@ class _Profile(Draft._DraftObject): if prop in ["Width","Height","WebThickness","FlangeThickness"]: self.execute(obj) - -FreeCADGui.addCommand('Arch_Structure',_CommandStructure()) +if FreeCAD.GuiUp: + FreeCADGui.addCommand('Arch_Structure',_CommandStructure()) diff --git a/src/Mod/Arch/ArchWall.py b/src/Mod/Arch/ArchWall.py index e1ac0650a..c4e3c0efc 100644 --- a/src/Mod/Arch/ArchWall.py +++ b/src/Mod/Arch/ArchWall.py @@ -21,10 +21,15 @@ #* * #*************************************************************************** -import FreeCAD,FreeCADGui,Draft,ArchComponent,DraftVecUtils,ArchCommands,math +import FreeCAD,Draft,ArchComponent,DraftVecUtils,ArchCommands,math from FreeCAD import Vector -from PySide import QtCore, QtGui -from DraftTools import translate +if FreeCAD.GuiUp: + import FreeCADGui + from PySide import QtCore, QtGui + from DraftTools import translate +else: + def translate(ctxt,txt): + return txt __title__="FreeCAD Wall" __author__ = "Yorik van Havre" @@ -38,7 +43,10 @@ def makeWall(baseobj=None,length=None,width=None,height=None,align="Center",face p = FreeCAD.ParamGet("User parameter:BaseApp/Preferences/Mod/Arch") obj = FreeCAD.ActiveDocument.addObject("Part::FeaturePython",name) _Wall(obj) - _ViewProviderWall(obj.ViewObject) + if FreeCAD.GuiUp: + _ViewProviderWall(obj.ViewObject) + obj.ViewObject.ShapeColor = ArchCommands.getDefaultColor("Wall") + if baseobj: obj.Base = baseobj if face: @@ -54,10 +62,9 @@ def makeWall(baseobj=None,length=None,width=None,height=None,align="Center",face else: obj.Height = p.GetFloat("WallHeight",3000) obj.Align = align - if obj.Base: + if obj.Base and FreeCAD.GuiUp: if Draft.getType(obj.Base) != "Space": obj.Base.ViewObject.hide() - obj.ViewObject.ShapeColor = ArchCommands.getDefaultColor("Wall") return obj def joinWalls(walls,delete=False): @@ -600,5 +607,6 @@ class _ViewProviderWall(ArchComponent.ViewProviderComponent): self.Object = vobj.Object return -FreeCADGui.addCommand('Arch_Wall',_CommandWall()) -FreeCADGui.addCommand('Arch_MergeWalls',_CommandMergeWalls()) +if FreeCAD.GuiUp: + FreeCADGui.addCommand('Arch_Wall',_CommandWall()) + FreeCADGui.addCommand('Arch_MergeWalls',_CommandMergeWalls()) diff --git a/src/Mod/Arch/ArchWindow.py b/src/Mod/Arch/ArchWindow.py index 62d892be7..8f5db518c 100644 --- a/src/Mod/Arch/ArchWindow.py +++ b/src/Mod/Arch/ArchWindow.py @@ -21,10 +21,15 @@ #* * #*************************************************************************** -import FreeCAD,FreeCADGui,Draft,ArchComponent,DraftVecUtils,ArchCommands +import FreeCAD,Draft,ArchComponent,DraftVecUtils,ArchCommands from FreeCAD import Vector -from PySide import QtCore,QtGui,QtSvg -from DraftTools import translate +if FreeCAD.GuiUp: + import FreeCADGui + from PySide import QtCore, QtGui + from DraftTools import translate +else: + def translate(ctxt,txt): + return txt __title__="FreeCAD Window" __author__ = "Yorik van Havre" @@ -1096,5 +1101,6 @@ class _ArchWindowTaskPanel: self.new5.setText(QtGui.QApplication.translate("Arch", "Z offset", None, QtGui.QApplication.UnicodeUTF8)) for i in range(len(WindowPartTypes)): self.field2.setItemText(i, QtGui.QApplication.translate("Arch", WindowPartTypes[i], None, QtGui.QApplication.UnicodeUTF8)) - -FreeCADGui.addCommand('Arch_Window',_CommandWindow()) + +if FreeCAD.GuiUp: + FreeCADGui.addCommand('Arch_Window',_CommandWindow()) diff --git a/src/Mod/Draft/Draft.py b/src/Mod/Draft/Draft.py index 13e7147d6..a4dcd16e1 100644 --- a/src/Mod/Draft/Draft.py +++ b/src/Mod/Draft/Draft.py @@ -81,7 +81,7 @@ if FreeCAD.GuiUp: import FreeCADGui, WorkingPlane gui = True else: - print "FreeCAD Gui not present. Draft module will have some features disabled." + #print "FreeCAD Gui not present. Draft module will have some features disabled." gui = False arrowtypes = ["Dot","Circle","Arrow"]