framework/cg/freecad/Frames/chekingEntities.py

30 lines
1.5 KiB
Python
Raw Normal View History

2023-10-31 11:13:43 +03:00
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"
# Затем запустите этот скрипт, и он выведет тела без связанных объектов в терминал