diff --git a/src/Mod/Arch/ArchCommands.py b/src/Mod/Arch/ArchCommands.py index a07b28641b..d96560e828 100644 --- a/src/Mod/Arch/ArchCommands.py +++ b/src/Mod/Arch/ArchCommands.py @@ -241,11 +241,11 @@ def setAsSubcomponent(obj): obj.ViewObject.Transparency = int(color[3]*100) obj.ViewObject.hide() -def fixDAG(obj): +def fixDAG(obj,force=False): '''fixDAG(object): Fixes non-DAG problems in windows and rebars by removing supports and external geometry from underlying sketches''' p = FreeCAD.ParamGet("User parameter:BaseApp/Preferences/Mod/Arch") - if p.GetBool("archRemoveExternal",False): + if p.GetBool("archRemoveExternal",False) or force: if Draft.getType(obj) in ["Window","Rebar"]: if obj.Base: if hasattr(obj.Base,"Support"): diff --git a/src/Mod/Arch/TestArch.py b/src/Mod/Arch/TestArch.py index 32e07c09fc..9d9fed6833 100644 --- a/src/Mod/Arch/TestArch.py +++ b/src/Mod/Arch/TestArch.py @@ -100,6 +100,7 @@ class ArchTest(unittest.TestCase): sk.addConstraint(Sketcher.Constraint('Coincident',3,2,0,1)) win = Arch.makeWindow(sk) Arch.removeComponents(win,host=w) + Arch.fixDAG(win,force=True) self.failUnless(win,"Arch Window failed") def testRoof(self):