29 lines
1.5 KiB
Python
29 lines
1.5 KiB
Python
import FreeCAD
|
||
|
||
# Функция для получения списка всех объектов с заданным свойством
|
||
def get_objects_with_property(property_name, property_value):
|
||
result = []
|
||
for obj in FreeCAD.ActiveDocument.Objects:
|
||
if hasattr(obj, "PropertiesList") and property_name in obj.PropertiesList:
|
||
if obj.getPropertyByName(property_name) == property_value:
|
||
result.append(obj)
|
||
return result
|
||
|
||
# Получение списка всех объектов с названием тела в свойстве
|
||
bodies = get_objects_with_property("BodyName", "Body")
|
||
|
||
# Получение списка всех объектов
|
||
all_objects = FreeCAD.ActiveDocument.Objects
|
||
|
||
# Поиск и вывод тел, у которых нет связанных вспомогательных объектов
|
||
for body in bodies:
|
||
linked_objects = []
|
||
for obj in all_objects:
|
||
if obj.hasLinkOf(body):
|
||
linked_objects.append(obj.Name)
|
||
if not linked_objects:
|
||
print(f"Тело без связанных объектов: {body.Name}")
|
||
|
||
# Пример использования:
|
||
# Убедитесь, что в FreeCAD активный документ содержит объекты с свойством "BodyName" и значением "Body"
|
||
# Затем запустите этот скрипт, и он выведет тела без связанных объектов в терминал
|