Macro If Selected Stay If Not Then Delete/de

Behalten wenn ausgewählt, sonst löschen

Beschreibung
Dieses Makro löscht alle nicht ausgewählten Objekte.

Versionsmakro : 00.03c
Datum der letzten Änderung : 2026-07-29
FreeCAD version : Alle
Herunterladen : Werkzeugleisten-Symbol
Autor: Mario52
Autor
Mario52
Herunterladen
Werkzeugleisten-Symbol
Links
Macro-Version
00.03c
Datum der letzten Änderung
2026-07-29
FreeCAD-Version(s)
Alle
Standardverknüpfung
None
Siehe auch
Makro Sichtbarkeit2 1-2 umschalten
Makro Sichtbarkeit2 2-2 umschalten
Makro Alles ausblenden
Makro Sichtbarkeit umschalten
Makro Alles einblenden

Beschreibung

Dieses Makro löscht alle nicht ausgewählten Objekte!

Skript

Werkzeugleisten-Symbol

Macro_If_Selected_Stay_If_Not_Then_Delete.FCMacro

import FreeCAD
import Draft
# 16/06/2016, 21/02/2018, 22/09/2023, 2023-09-24, 2026/07/29
# Macro_SelectVisible series
__title__   = "Macro_If_Selected_Stay_If_Not_Then_Delete"
__author__  = "Mario52"
__url__     = "https://wiki.freecad.org/Macro_If_Selected_Stay_If_Not_Then_Delete"
__version__ = "00.03c"
__date__    = "2026/07/29"
__icon__    = "https://wiki.freecad.org/images/6/62/Macro_If_Selected_Stay_If_Not_Then_Delete.png"

App = FreeCAD
try:
    for ShapeNameObj in FreeCAD.ActiveDocument.Objects:
        if str(ShapeNameObj) == "<group object>":
            if len(Draft.get_group_contents(ShapeNameObj)) == 0:
                App.ActiveDocument.removeObject(ShapeNameObj.Name)        # remove group not selecteds
        else:
            if Gui.Selection.isSelected(ShapeNameObj):
                None
            else:
                try:
                    App.ActiveDocument.removeObject(ShapeNameObj.Name)    # remove objects not selecteds
                except Exception:
                    try:
                        App.ActiveDocument.removeObject(ShapeNameObj)     # remove objects not selecteds
                    except Exception:
                        try:
                            App.ActiveDocument.getObject(ShapeNameObj).removeObjectsFromDocument() # remove objects not selecteds
                            App.ActiveDocument.removeObject(ShapeNameObj)
                        except Exception:
                            None

    for ShapeNameGroup in FreeCAD.ActiveDocument.Objects:
        if (str(ShapeNameGroup) == "<group object>"):
            if len(Draft.get_group_contents(ShapeNameGroup)) == 0:
                App.ActiveDocument.removeObject(ShapeNameGroup.Name)      # remove group emptied

except Exception:
    print("Oups")