Arch: Fixed buggy placement of windows
This commit is contained in:
parent
95195e3765
commit
4f8c9359e2
|
@ -148,6 +148,8 @@ def makeWindowPreset(windowtype,width,height,h1,h2,h3,w1,w2,o1,o2,placement=None
|
||||||
addFrame(s,p1,p2,p3,p4,p5,p6,p7,p8)
|
addFrame(s,p1,p2,p3,p4,p5,p6,p7,p8)
|
||||||
s.addConstraint(Sketcher.Constraint('DistanceY',1,height)) #16
|
s.addConstraint(Sketcher.Constraint('DistanceY',1,height)) #16
|
||||||
s.addConstraint(Sketcher.Constraint('DistanceX',0,width)) #17
|
s.addConstraint(Sketcher.Constraint('DistanceX',0,width)) #17
|
||||||
|
s.renameConstraint(16, 'Height')
|
||||||
|
s.renameConstraint(17, 'Width')
|
||||||
s.addConstraint(Sketcher.Constraint('DistanceY',6,2,2,2,h1))
|
s.addConstraint(Sketcher.Constraint('DistanceY',6,2,2,2,h1))
|
||||||
s.addConstraint(Sketcher.Constraint('DistanceX',2,2,6,2,h1))
|
s.addConstraint(Sketcher.Constraint('DistanceX',2,2,6,2,h1))
|
||||||
s.addConstraint(Sketcher.Constraint('DistanceX',4,2,0,2,h1))
|
s.addConstraint(Sketcher.Constraint('DistanceX',4,2,0,2,h1))
|
||||||
|
@ -167,6 +169,8 @@ def makeWindowPreset(windowtype,width,height,h1,h2,h3,w1,w2,o1,o2,placement=None
|
||||||
addFrame(s,p1,p2,p3,p4,p5,p6,p7,p8)
|
addFrame(s,p1,p2,p3,p4,p5,p6,p7,p8)
|
||||||
s.addConstraint(Sketcher.Constraint('DistanceY',1,height)) #16
|
s.addConstraint(Sketcher.Constraint('DistanceY',1,height)) #16
|
||||||
s.addConstraint(Sketcher.Constraint('DistanceX',0,width)) #17
|
s.addConstraint(Sketcher.Constraint('DistanceX',0,width)) #17
|
||||||
|
s.renameConstraint(16, 'Height')
|
||||||
|
s.renameConstraint(17, 'Width')
|
||||||
s.addConstraint(Sketcher.Constraint('DistanceY',6,2,2,2,h1))
|
s.addConstraint(Sketcher.Constraint('DistanceY',6,2,2,2,h1))
|
||||||
s.addConstraint(Sketcher.Constraint('DistanceX',2,2,6,2,h1))
|
s.addConstraint(Sketcher.Constraint('DistanceX',2,2,6,2,h1))
|
||||||
s.addConstraint(Sketcher.Constraint('DistanceX',4,2,0,2,h1))
|
s.addConstraint(Sketcher.Constraint('DistanceX',4,2,0,2,h1))
|
||||||
|
@ -360,6 +364,7 @@ def makeWindowPreset(windowtype,width,height,h1,h2,h3,w1,w2,o1,o2,placement=None
|
||||||
FreeCAD.ActiveDocument.recompute()
|
FreeCAD.ActiveDocument.recompute()
|
||||||
obj = makeWindow(default[0],width,height,default[1])
|
obj = makeWindow(default[0],width,height,default[1])
|
||||||
obj.Preset = WindowPresets.index(windowtype)+1
|
obj.Preset = WindowPresets.index(windowtype)+1
|
||||||
|
obj.Placement = FreeCAD.Placement() # unable to find where this bug comes from...
|
||||||
if "door" in windowtype:
|
if "door" in windowtype:
|
||||||
obj.Role = "Door"
|
obj.Role = "Door"
|
||||||
FreeCAD.ActiveDocument.recompute()
|
FreeCAD.ActiveDocument.recompute()
|
||||||
|
@ -645,9 +650,17 @@ class _Window(ArchComponent.Component):
|
||||||
if obj.Base:
|
if obj.Base:
|
||||||
try:
|
try:
|
||||||
if prop == "Height":
|
if prop == "Height":
|
||||||
obj.Base.setDatum(16,obj.Height.Value)
|
if obj.Height.Value > 0:
|
||||||
|
try:
|
||||||
|
obj.Base.setDatum("Height",obj.Height.Value)
|
||||||
|
except:
|
||||||
|
obj.Base.setDatum(16,obj.Height.Value)
|
||||||
elif prop == "Width":
|
elif prop == "Width":
|
||||||
obj.Base.setDatum(17,obj.Width.Value)
|
if obj.Width.Value > 0:
|
||||||
|
try:
|
||||||
|
obj.Base.setDatum("Width",obj.Width.Value)
|
||||||
|
except:
|
||||||
|
obj.Base.setDatum(17,obj.Width.Value)
|
||||||
except:
|
except:
|
||||||
# restoring constraints when loading a file fails
|
# restoring constraints when loading a file fails
|
||||||
# because of load order, but it doesn't harm...
|
# because of load order, but it doesn't harm...
|
||||||
|
|
Loading…
Reference in New Issue
Block a user