Arch: more bugfixing
This commit is contained in:
parent
4f154d3993
commit
8a92115ec6
|
@ -21,7 +21,7 @@
|
|||
#* *
|
||||
#***************************************************************************
|
||||
|
||||
import FreeCAD,FreeCADGui,Draft,ArchCommands
|
||||
import FreeCAD,FreeCADGui,Draft,ArchCommands,ArchFloor
|
||||
from PyQt4 import QtCore
|
||||
from DraftTools import translate
|
||||
|
||||
|
@ -56,7 +56,7 @@ class _CommandBuilding:
|
|||
FreeCADGui.doCommand("import Arch")
|
||||
FreeCADGui.doCommand("obj = Arch.makeBuilding()")
|
||||
FreeCADGui.doCommand("Arch.copyProperties(FreeCAD.ActiveDocument."+sel[0].Name+",obj)")
|
||||
FreeCADGui.doCommand("FreeCAD.ActiveDocument.removeObject("+sel[0].Name+")")
|
||||
FreeCADGui.doCommand('FreeCAD.ActiveDocument.removeObject("'+sel[0].Name+'")')
|
||||
FreeCAD.ActiveDocument.commitTransaction()
|
||||
ok = True
|
||||
if not ok:
|
||||
|
@ -73,47 +73,19 @@ class _CommandBuilding:
|
|||
FreeCAD.ActiveDocument.commitTransaction()
|
||||
FreeCAD.ActiveDocument.recompute()
|
||||
|
||||
class _Building:
|
||||
class _Building(ArchFloor._Floor):
|
||||
"The Building object"
|
||||
def __init__(self,obj):
|
||||
ArchFloor._Floor.__init__(self,obj)
|
||||
self.Type = "Building"
|
||||
obj.Proxy = self
|
||||
self.Object = obj
|
||||
|
||||
def execute(self,obj):
|
||||
self.Object = obj
|
||||
|
||||
def onChanged(self,obj,prop):
|
||||
pass
|
||||
|
||||
def addObject(self,child):
|
||||
if hasattr(self,"Object"):
|
||||
g = self.Object.Group
|
||||
if not child in g:
|
||||
g.append(child)
|
||||
self.Object.Group = g
|
||||
|
||||
def removeObject(self,child):
|
||||
if hasattr(self,"Object"):
|
||||
g = self.Object.Group
|
||||
if child in g:
|
||||
g.remove(child)
|
||||
self.Object.Group = g
|
||||
|
||||
class _ViewProviderBuilding:
|
||||
obj.setEditorMode('Height',2)
|
||||
|
||||
class _ViewProviderBuilding(ArchFloor._ViewProviderFloor):
|
||||
"A View Provider for the Building object"
|
||||
def __init__(self,vobj):
|
||||
vobj.Proxy = self
|
||||
ArchFloor._ViewProviderFloor.__init__(self,vobj)
|
||||
|
||||
def getIcon(self):
|
||||
return ":/icons/Arch_Building_Tree.svg"
|
||||
|
||||
def attach(self,vobj):
|
||||
self.Object = vobj.Object
|
||||
return
|
||||
|
||||
def claimChildren(self):
|
||||
return self.Object.Group
|
||||
|
||||
|
||||
FreeCADGui.addCommand('Arch_Building',_CommandBuilding())
|
||||
|
|
|
@ -57,7 +57,7 @@ class _CommandFloor:
|
|||
FreeCADGui.doCommand("import Arch")
|
||||
FreeCADGui.doCommand("obj = Arch.makeFloor()")
|
||||
FreeCADGui.doCommand("Arch.copyProperties(FreeCAD.ActiveDocument."+sel[0].Name+",obj)")
|
||||
FreeCADGui.doCommand("FreeCAD.ActiveDocument.removeObject("+sel[0].Name+")")
|
||||
FreeCADGui.doCommand('FreeCAD.ActiveDocument.removeObject("'+sel[0].Name+'")')
|
||||
FreeCAD.ActiveDocument.commitTransaction()
|
||||
ok = True
|
||||
if not ok:
|
||||
|
@ -74,7 +74,7 @@ class _CommandFloor:
|
|||
FreeCAD.ActiveDocument.recompute()
|
||||
|
||||
class _Floor:
|
||||
"The Cell object"
|
||||
"The Floor object"
|
||||
def __init__(self,obj):
|
||||
obj.addProperty("App::PropertyLength","Height","Base",
|
||||
str(translate("Arch","The height of this floor")))
|
||||
|
@ -82,11 +82,17 @@ class _Floor:
|
|||
obj.Proxy = self
|
||||
self.Object = obj
|
||||
|
||||
def __getstate__(self):
|
||||
return None
|
||||
|
||||
def __setstate__(self,state):
|
||||
return None
|
||||
|
||||
def execute(self,obj):
|
||||
self.Object = obj
|
||||
pass
|
||||
|
||||
def onChanged(self,obj,prop):
|
||||
pass
|
||||
self.Object = obj
|
||||
|
||||
def addObject(self,child):
|
||||
if hasattr(self,"Object"):
|
||||
|
@ -103,7 +109,7 @@ class _Floor:
|
|||
self.Object.Group = g
|
||||
|
||||
class _ViewProviderFloor:
|
||||
"A View Provider for the Cell object"
|
||||
"A View Provider for the Floor object"
|
||||
def __init__(self,vobj):
|
||||
vobj.Proxy = self
|
||||
|
||||
|
@ -117,4 +123,10 @@ class _ViewProviderFloor:
|
|||
def claimChildren(self):
|
||||
return self.Object.Group
|
||||
|
||||
def __getstate__(self):
|
||||
return None
|
||||
|
||||
def __setstate__(self,state):
|
||||
return None
|
||||
|
||||
FreeCADGui.addCommand('Arch_Floor',_CommandFloor())
|
||||
|
|
|
@ -21,7 +21,7 @@
|
|||
#* *
|
||||
#***************************************************************************
|
||||
|
||||
import FreeCAD,FreeCADGui,Draft,ArchCommands
|
||||
import FreeCAD,FreeCADGui,Draft,ArchCommands,ArchFloor
|
||||
from PyQt4 import QtCore
|
||||
from DraftTools import translate
|
||||
|
||||
|
@ -56,7 +56,7 @@ class _CommandSite:
|
|||
FreeCADGui.doCommand("import Arch")
|
||||
FreeCADGui.doCommand("obj = Arch.makeSite()")
|
||||
FreeCADGui.doCommand("Arch.copyProperties(FreeCAD.ActiveDocument."+sel[0].Name+",obj)")
|
||||
FreeCADGui.doCommand("FreeCAD.ActiveDocument.removeObject("+sel[0].Name+")")
|
||||
FreeCADGui.doCommand('FreeCAD.ActiveDocument.removeObject("'+sel[0].Name+'")')
|
||||
|
||||
nobj = makeSite()
|
||||
ArchCommands.copyProperties(sel[0],nobj)
|
||||
|
@ -75,47 +75,21 @@ class _CommandSite:
|
|||
FreeCADGui.doCommand("Arch.makeSite("+ss+")")
|
||||
FreeCAD.ActiveDocument.commitTransaction()
|
||||
FreeCAD.ActiveDocument.recompute()
|
||||
|
||||
class _Site:
|
||||
|
||||
class _Site(ArchFloor._Floor):
|
||||
"The Site object"
|
||||
def __init__(self,obj):
|
||||
ArchFloor._Floor.__init__(self,obj)
|
||||
self.Type = "Site"
|
||||
obj.Proxy = self
|
||||
self.Object = obj
|
||||
|
||||
def execute(self,obj):
|
||||
self.Object = obj
|
||||
|
||||
def onChanged(self,obj,prop):
|
||||
pass
|
||||
|
||||
def addObject(self,child):
|
||||
if hasattr(self,"Object"):
|
||||
g = self.Object.Group
|
||||
if not child in g:
|
||||
g.append(child)
|
||||
self.Object.Group = g
|
||||
|
||||
def removeObject(self,child):
|
||||
if hasattr(self,"Object"):
|
||||
g = self.Object.Group
|
||||
if child in g:
|
||||
g.remove(child)
|
||||
self.Object.Group = g
|
||||
|
||||
class _ViewProviderSite:
|
||||
obj.setEditorMode('Height',2)
|
||||
|
||||
class _ViewProviderSite(ArchFloor._ViewProviderFloor):
|
||||
"A View Provider for the Site object"
|
||||
def __init__(self,vobj):
|
||||
vobj.Proxy = self
|
||||
ArchFloor._ViewProviderFloor.__init__(self,vobj)
|
||||
|
||||
def getIcon(self):
|
||||
return ":/icons/Arch_Site_Tree.svg"
|
||||
|
||||
def attach(self,vobj):
|
||||
self.Object = vobj.Object
|
||||
return
|
||||
|
||||
def claimChildren(self):
|
||||
return self.Object.Group
|
||||
|
||||
|
||||
FreeCADGui.addCommand('Arch_Site',_CommandSite())
|
||||
|
|
|
@ -265,6 +265,7 @@ class _Wall(ArchComponent.Component):
|
|||
self.createGeometry(obj)
|
||||
|
||||
def onChanged(self,obj,prop):
|
||||
print prop
|
||||
if prop in ["Base","Height","Width","Align","Additions","Subtractions"]:
|
||||
self.createGeometry(obj)
|
||||
|
||||
|
@ -373,7 +374,8 @@ class _Wall(ArchComponent.Component):
|
|||
base = temp
|
||||
|
||||
for app in obj.Additions:
|
||||
base = base.fuse(app.Shape)
|
||||
if hasattr(app,"Shape"):
|
||||
base = base.fuse(app.Shape)
|
||||
app.ViewObject.hide() #to be removed
|
||||
for hole in obj.Subtractions:
|
||||
if Draft.getType(hole) == "Window":
|
||||
|
@ -393,10 +395,14 @@ class _Wall(ArchComponent.Component):
|
|||
hole.ViewObject.hide() # to be removed
|
||||
|
||||
if base:
|
||||
base.removeSplitter()
|
||||
obj.Shape = base
|
||||
if not DraftGeomUtils.isNull(pl):
|
||||
obj.Placement = pl
|
||||
if not base.isNull():
|
||||
try:
|
||||
base.removeSplitter()
|
||||
except:
|
||||
print "Wall: Error removing splitter"
|
||||
obj.Shape = base
|
||||
if not DraftGeomUtils.isNull(pl):
|
||||
obj.Placement = pl
|
||||
|
||||
class _ViewProviderWall(ArchComponent.ViewProviderComponent):
|
||||
"A View Provider for the Wall object"
|
||||
|
|
Loading…
Reference in New Issue
Block a user