52 lines
1.6 KiB
Python
52 lines
1.6 KiB
Python
![]() |
import os
|
|||
|
import json
|
|||
|
import FreeCAD
|
|||
|
import Tools
|
|||
|
|
|||
|
def export_coordinate_systems():
|
|||
|
# Получение активного документа FreeCAD
|
|||
|
doc = FreeCAD.ActiveDocument
|
|||
|
if not doc:
|
|||
|
raise ValueError("Нет активного документа FreeCAD.")
|
|||
|
|
|||
|
# Получение имени активного документа
|
|||
|
doc_name = doc.Name
|
|||
|
|
|||
|
|
|||
|
# Получение пути к папке и имя файла активного документа
|
|||
|
folder_path, file_name = os.path.split(doc.FileName)
|
|||
|
|
|||
|
# Создание папки для экспорта, если она не существует
|
|||
|
output_folder = os.path.join(folder_path, 'entities')
|
|||
|
if not os.path.exists(output_folder):
|
|||
|
os.makedirs(output_folder)
|
|||
|
|
|||
|
|
|||
|
|
|||
|
# Создание копии активного документа
|
|||
|
# надо сохраняться, а не копироваться
|
|||
|
|
|||
|
doc.save()
|
|||
|
|
|||
|
|
|||
|
|
|||
|
# Получение списка объектов документа
|
|||
|
objects = doc.Objects
|
|||
|
|
|||
|
# Обход объектов для сохранения локальных систем координат
|
|||
|
for obj in objects:
|
|||
|
if obj.TypeId == 'PartDesign::CoordinateSystem':
|
|||
|
|
|||
|
partprops = Tools.getLocalPartProps(obj)
|
|||
|
|
|||
|
|
|||
|
output_file_path = os.path.join(output_folder, f"{obj.Label}.json")
|
|||
|
with open(output_file_path, "w", encoding="utf8") as propfile:
|
|||
|
json.dump(partprops, propfile, indent=1, separators=(',', ': '))
|
|||
|
|
|||
|
|
|||
|
print("Экспорт обьектов завершен.")
|
|||
|
|
|||
|
# export_coordinate_systems()
|
|||
|
|