Macro If Selected Stay If Not Then Delete: Difference between revisions

From FreeCAD Documentation
(Version=00.03 |Date=2023-09-22 |FCVersion=All)
(replace "get_Group_Contents" by "get_group_contents" FC: Version: 0.22.0dev.34223 (Git))
Line 8: Line 8:
|Description=This macro delete all objects not selected.
|Description=This macro delete all objects not selected.
|Author=Mario52
|Author=Mario52
|Version=00.03
|Version=00.03b
|Date=2023-09-22
|Date=2023-09-24
|FCVersion=All
|FCVersion=All
|Download=[https://www.freecadweb.org/wiki/images/6/62/Macro_If_Selected_Stay_If_Not_Then_Delete.png ToolBar Icon]
|Download=[https://www.freecadweb.org/wiki/images/6/62/Macro_If_Selected_Stay_If_Not_Then_Delete.png ToolBar Icon]
Line 44: Line 44:
for ShapeNameObj in FreeCAD.ActiveDocument.Objects:
for ShapeNameObj in FreeCAD.ActiveDocument.Objects:
if str(ShapeNameObj) == "<group object>":
if str(ShapeNameObj) == "<group object>":
if len(Draft.get_Group_Contents(ShapeNameObj)) == 0:
if len(Draft.get_group_contents(ShapeNameObj)) == 0:
App.ActiveDocument.removeObject(ShapeNameObj.Name) # remove group not selecteds
App.ActiveDocument.removeObject(ShapeNameObj.Name) # remove group not selecteds
else:
else:
Line 54: Line 54:
for ShapeNameGroup in FreeCAD.ActiveDocument.Objects:
for ShapeNameGroup in FreeCAD.ActiveDocument.Objects:
if (str(ShapeNameGroup) == "<group object>"):
if (str(ShapeNameGroup) == "<group object>"):
if len(Draft.get_Group_Contents(ShapeNameGroup)) == 0:
if len(Draft.get_group_contents(ShapeNameGroup)) == 0:
App.ActiveDocument.removeObject(ShapeNameGroup.Name) # remove group emptied
App.ActiveDocument.removeObject(ShapeNameGroup.Name) # remove group emptied
except Exception:
except Exception:

Revision as of 20:06, 24 September 2023

Other languages:

Macro If Selected Stay If Not Then Delete

Description
This macro delete all objects not selected.

Macro version: 00.03b
Last modified: 2023-09-24
FreeCAD version: All
Download: ToolBar Icon
Author: Mario52
Author
Mario52
Download
ToolBar Icon
Links
Macro Version
00.03b
Date last modified
2023-09-24
FreeCAD Version(s)
All
Default shortcut
None
See also
Macro Toggle Visibility2 1-2
Macro Toggle Visibility2 2-2
Macro_Toggle_Visibility
Macro HiddenAlls
Macro_VisibleAlls

Description

This macro delete all objects not selected !!.

Script

ToolBar Icon

Macro_If_Selected_Stay_If_Not_Then_Delete.FCMacro

import FreeCAD
import Draft
# 16/06/2016, 21/02/2018, 22/09/2023
# Macro_SelectVisible series
__title__   = "Macro_If_Selected_Stay_If_Not_Then_Delete"
__author__  = "Mario52"
__url__     = "http://www.freecadweb.org/index-fr.html"
__version__ = "00.03"
__date__    = "22/09/2023"

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:
                App.ActiveDocument.removeObject(ShapeNameObj.Name)        # remove objects not selecteds
    
    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:
    None