Arch now works in console mode - fixes #1362

This commit is contained in:
Yorik van Havre 2014-01-26 20:13:50 -02:00
parent ce8efb118c
commit 69cc7ec901
17 changed files with 179 additions and 92 deletions

View File

@ -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 *

View File

@ -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())

View File

@ -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())

View File

@ -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())

View File

@ -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

View File

@ -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())

View File

@ -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())

View File

@ -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())

View File

@ -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())

View File

@ -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 += '</g>\n'
# print "complete node:",result
return result
FreeCADGui.addCommand('Arch_SectionPlane',_CommandSectionPlane())
if FreeCAD.GuiUp:
FreeCADGui.addCommand('Arch_SectionPlane',_CommandSectionPlane())

View File

@ -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())

View File

@ -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())

View File

@ -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())

View File

@ -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())

View File

@ -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())

View File

@ -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())

View File

@ -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"]