Arch: more bugfixing

This commit is contained in:
Yorik van Havre 2012-06-04 18:08:10 -03:00
parent 4f154d3993
commit 8a92115ec6
4 changed files with 46 additions and 82 deletions

View File

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

View File

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

View File

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

View File

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