framework/cg/freecad/Frames/materialOperator.py

84 lines
3.1 KiB
Python
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

import FreeCAD as App
import FreeCADGui as Gui
#создаем вкладку с материалами
#концептуально нам нужен лишь обьект, в котором перечислены тела, связанные с материалами
#создаем объект
#указываем референсный материал
#указываем референсное тело
#добавляем все остальные тела, которые имеют такой же цвет
#план-минимум
'''
План:
Сделать приемлемым работу FEM:
1. Проверка на уникальность и повторяемость материалов
2. Проверка на детали, которые не имеют материала
3. Проверка материалов на соответствие требованиям
4. Назначение деталям цвета, соответствующего материалам
5. Черный материал - тем, кто без материала
6. BoM считает плотности деталей и пишет массы. Здесь должна быть функция, считающая массу детали и записывающая ее в свойства детали
'''
doc = App.ActiveDocument
obj = doc.Objects
def partsCheckup(doc):
for obj in
material = doc.addObject('App::Document')
doc.addObject("App::DocumentObjectGroup", "Materials") #создаем папку с материалами
group.addObject(material)
#открываем и выбираем MaterialEditor
import MaterialEditor
MaterialEditor.openEditor()
doc.addObject('App::')
'''
Нам нужно указать материал в обьекте
'''
# Создаем папку "Материалы"
material_group = doc.addObject("App::DocumentObjectGroup", "Materials")
'''
нужно импортировать материалы
самое простое - взять целиком блок fem и работать с этим инструментом
в fem они вставляются тупо строкой
мы можем считать, что материал задан a.k.a json или что-то такое
'''
# Создаем файл материалов fcmat
material_file = "путь_к_файлу.fcmat" # Укажите путь к файлу материалов
# Создаем объект "Материал"
material_obj = doc.addObject("App::MaterialObject", "Материал")
material_obj.Material = material_file
# Получаем список тел в сборке, состоящих из данного материала
part_names = ["Тело1", "Тело2", "Тело3"] # Укажите имена тел
for part_name in part_names:
part_obj = doc.getObject(part_name)
if part_obj:
material_obj.addObject(part_obj)
# Добавляем объект "Материал" в папку "Материалы"
material_group.addObject(material_obj)
# Обновляем вид дерева построения FreeCAD
FreeCADGui.updateGui()