diff --git a/src/Mod/Arch/ArchCommands.py b/src/Mod/Arch/ArchCommands.py index 002628eb26..6ccfdef8dd 100644 --- a/src/Mod/Arch/ArchCommands.py +++ b/src/Mod/Arch/ArchCommands.py @@ -183,6 +183,12 @@ def removeComponents(objectsList,host=None): if not Draft.getType(o) in ["Window","Roof"]: setAsSubcomponent(o) host.Subtractions = s + elif Draft.getType(host) in ["SectionPlane"]: + a = host.Objects + for o in objectsList: + if o in a: + a.remove(o) + host.Objects = a else: for o in objectsList: if o.InList: @@ -1319,7 +1325,7 @@ class _CommandRemove: FreeCADGui.doCommand("Arch.removeSpaceBoundaries( FreeCAD.ActiveDocument."+sel[-1].Name+", FreeCADGui.Selection.getSelection() )") else: FreeCAD.ActiveDocument.openTransaction(translate("Arch","Ungrouping")) - if (Draft.getType(sel[-1]) in ["Wall","Structure","Stairs","Roof","Window","Panel"]) and (len(sel) > 1): + if len(sel) > 1: host = sel.pop() ss = "[" for o in sel: @@ -1331,7 +1337,7 @@ class _CommandRemove: FreeCADGui.doCommand("Arch.removeComponents("+ss+",FreeCAD.ActiveDocument."+host.Name+")") else: FreeCADGui.addModule("Arch") - FreeCADGui.doCommand("Arch.removeComponents(FreeCAD.ActiveDocument."+sel[-1].Name+")") + FreeCADGui.doCommand("Arch.removeComponents(FreeCAD.ActiveDocument."+sel[0].Name+")") FreeCAD.ActiveDocument.commitTransaction() FreeCAD.ActiveDocument.recompute()