Создание аддонов для FreeCAD. Урок 3. Создание 3D-объектов: параметрический бокс
Урок 3. Создание 3D-объектов: параметрический бокс
Цель урока: научиться создавать твёрдые тела (коробки, цилиндры) через Python, понять структуру документа FreeCAD и сделать аддон, который строит параметрическую деталь.
🧱 Часть 1. Как устроен документ в FreeCAD?
Прежде чем создавать объекты, важно понять иерархию данных в FreeCAD:
Document — это открытый файл (.FCStd). Всё, что вы создаёте, находится внутри документа.
Object — это параметрический объект: коробка, цилиндр, эскиз и т.д.
Shape — это геометрическое тело (B-Rep), которое можно визуализировать.
💡 Вы всегда работаете в контексте активного документа.
Как получить текущий документ?
Если документа нет — создайте новый:
📦 Часть 2. Создание коробки (Box) через Python
Самый простой 3D-объект в FreeCAD — это Part::Box.
Пример кода:
Что происходит здесь?
doc.addObject("Part::Box", "MyBox")
→ создаёт новый объект типа Box с именем "MyBox"У объекта есть параметрические свойства: Length, Width, Height
doc.recompute()
→ перестраивает модель (обязательно после изменения параметров!)
🔸 Все размеры — в миллиметрах (по умолчанию в FreeCAD).
🛠 Часть 3. Аддон: «Параметрический бокс»
Теперь создадим аддон, который создаёт коробку с заданными размерами.
Шаг 1. Создайте папку
.../Mod/ParamBoxAddon/
Шаг 2. Файл InitGui.py
Шаг 3. Файл param_box_workbench.py
▶️ Шаг 4. Проверка работы
Сохраните файлы
Перезапустите FreeCAD
Выберите рабочую среду «Parametric Box»
Нажмите кнопку «Create Box»
✅ Должен появиться серый параллелепипед в 3D-окне.
Проверьте параметричность!
В дереве проекта (Model) дважды кликните по MyParamBox
В панели Data измените, например, Length на 50
Нажмите Enter → модель автоматически обновится!
Это и есть параметрическое моделирование.
🔍 Часть 4. Другие базовые объекты
Вы можете создавать не только коробки. Вот несколько примеров:
Цилиндр
Сфера
Конус
💡 Все эти объекты находятся в модуле Part, который встроен в FreeCAD.
🧪 Практическое задание
Измените аддон так, чтобы он создавал цилиндр, а не коробку.
Сделайте так, чтобы при создании объект получал уникальное имя (например, Box_1, Box_2...), если объект с таким именем уже есть.
Добавьте вторую команду — «Create Cylinder» — в ту же рабочую среду.
Подсказка для уникального имени:
💡 Советы по отладке
Всегда вызывайте doc.recompute() после изменения параметров.
Используйте FreeCAD.Console.PrintMessage("Текст\n") для отладки (сообщения появятся в Report View).
Проверяйте, существует ли документ перед работой с ним.
▶️ Что дальше?
В Уроке 4 мы:
Научимся создавать графический интерфейс (GUI) с полями ввода.
Сделаем окно, где пользователь вводит длину, ширину и высоту.
И по нажатию кнопки — строится бокс с этими параметрами.
Это уже будет настоящий инструмент, а не просто демонстрация.
Понравилось — ставь «+»
Полезно? Подпишись.
Так я буду знать, какой контент вам интересен.
Вопросы можно задавать в комментариях 👇👇👇
Удачи! 🚀
Статья на github: https://github.com/hypo69/1001-python-ru/blob/master/ru/articles/FreeCAD/3.md















