Серия «Создание аддонов для FreeCAD»

12

Создание аддонов для FreeCAD. Урок 3. Создание 3D-объектов: параметрический бокс

Серия Создание аддонов для FreeCAD

Урок 3. Создание 3D-объектов: параметрический бокс

Цель урока: научиться создавать твёрдые тела (коробки, цилиндры) через Python, понять структуру документа FreeCAD и сделать аддон, который строит параметрическую деталь.


🧱 Часть 1. Как устроен документ в FreeCAD?

Прежде чем создавать объекты, важно понять иерархию данных в FreeCAD:

  • Document — это открытый файл (.FCStd). Всё, что вы создаёте, находится внутри документа.

  • Object — это параметрический объект: коробка, цилиндр, эскиз и т.д.

  • Shape — это геометрическое тело (B-Rep), которое можно визуализировать.

💡 Вы всегда работаете в контексте активного документа.

Как получить текущий документ?

doc = FreeCAD.ActiveDocument

doc = FreeCAD.ActiveDocument

Если документа нет — создайте новый:

doc = FreeCAD.newDocument("MyDesign")

doc = FreeCAD.newDocument("MyDesign")


📦 Часть 2. Создание коробки (Box) через Python

Самый простой 3D-объект в FreeCAD — это Part::Box.

Пример кода:

Что происходит здесь?

  1. doc.addObject("Part::Box", "MyBox")
    → создаёт новый объект типа Box с именем "MyBox"

  2. У объекта есть параметрические свойства: Length, Width, Height

  3. doc.recompute()
    → перестраивает модель (обязательно после изменения параметров!)

🔸 Все размеры — в миллиметрах (по умолчанию в FreeCAD).


🛠 Часть 3. Аддон: «Параметрический бокс»

Теперь создадим аддон, который создаёт коробку с заданными размерами.

Шаг 1. Создайте папку

.../Mod/ParamBoxAddon/

Шаг 2. Файл InitGui.py

Шаг 3. Файл param_box_workbench.py

код: https://github.com/hypo69/1001-python-ru/blob/master/ru/arti...


▶️ Шаг 4. Проверка работы

  1. Сохраните файлы

  2. Перезапустите FreeCAD

  3. Выберите рабочую среду «Parametric Box»

  4. Нажмите кнопку «Create Box»

✅ Должен появиться серый параллелепипед в 3D-окне.

Проверьте параметричность!

  1. В дереве проекта (Model) дважды кликните по MyParamBox

  2. В панели Data измените, например, Length на 50

  3. Нажмите Enter → модель автоматически обновится!

Это и есть параметрическое моделирование.


🔍 Часть 4. Другие базовые объекты

Вы можете создавать не только коробки. Вот несколько примеров:

Цилиндр

Сфера

Конус

💡 Все эти объекты находятся в модуле Part, который встроен в FreeCAD.


🧪 Практическое задание

  1. Измените аддон так, чтобы он создавал цилиндр, а не коробку.

  2. Сделайте так, чтобы при создании объект получал уникальное имя (например, Box_1, Box_2...), если объект с таким именем уже есть.

  3. Добавьте вторую команду — «Create Cylinder» — в ту же рабочую среду.

Подсказка для уникального имени:


💡 Советы по отладке

  • Всегда вызывайте doc.recompute() после изменения параметров.

  • Используйте FreeCAD.Console.PrintMessage("Текст\n") для отладки (сообщения появятся в Report View).

  • Проверяйте, существует ли документ перед работой с ним.


▶️ Что дальше?

В Уроке 4 мы:

  • Научимся создавать графический интерфейс (GUI) с полями ввода.

  • Сделаем окно, где пользователь вводит длину, ширину и высоту.

  • И по нажатию кнопки — строится бокс с этими параметрами.

Это уже будет настоящий инструмент, а не просто демонстрация.

Показать полностью 9
7

Создание аддонов для FreeCAD. Урок 2. Ваш первый аддон: «Hello World»

Серия Создание аддонов для FreeCAD

Цель урока: создать простой аддон, который добавляет новую рабочую среду с кнопкой, и при нажатии показывает сообщение.


Дисклеймер. На pikabu нет редактора кода, поэтому код картинками, но в конце я дам ссылку на github, откуда можно будет скопировать блоки кода.


📁 Шаг 1. Подготовка папки аддона

Убедитесь, что у вас есть папка:

.../FreeCAD/Mod/HelloWorldAddon/

Если нет — создайте её.

💡 Имя папки важно: оно должно совпадать с именем модуля в коде.
Мы будем использовать HelloWorldAddon.

Внутри этой папки создайте два файла:

❗ Не используйте пробелы или кириллицу в именах файлов и папок!


📄 Шаг 2. Файл InitGui.py — точка входа

Этот файл автоматически запускается FreeCAD при старте, если лежит в папке аддона.

Откройте его в редакторе и вставьте следующий код:

🔍 Что делает этот код?

  1. Импортирует нашу рабочую среду из файла hello_workbench.py

  2. Регистрирует её в интерфейсе FreeCAD через FreeCADGui.addWorkbench()

⚠️ Обратите внимание:
from HelloWorldAddon.hello_workbench — здесь HelloWorldAddon — это имя папки, а hello_workbench — имя файла без расширения .py.


📄 Шаг 3. Файл hello_workbench.py — логика аддона

Теперь создадим саму рабочую среду.

Вставьте в hello_workbench.py следующий код:

к коду: https://github.com/hypo69/1001-python-ru/blob/master/ru/articles/FreeCAD/2.md#-шаг-3-файл-hello_workbenchpy--логика-аддона

🔍 Разбор кода по частям:

1. Команда (HelloWorldCommand)

  • GetResources() — описывает, как команда выглядит в интерфейсе

  • Activated() — что происходит при нажатии

  • IsActive() — когда кнопка активна (например, только если есть документ)

2. Рабочая среда (HelloWorldWorkbench)

  • Наследуется от FreeCADGui.Workbench

  • Метод Initialize() добавляет команды на панель и в меню

  • GetClassName() говорит FreeCAD: «это Python-рабочая среда»

3. Регистрация

  • FreeCADGui.addCommand() связывает имя "HelloWorldCommand" с классом


▶️ Шаг 4. Запуск и проверка

  1. Сохраните оба файла

  2. Закройте FreeCAD (если был открыт)

  3. Запустите FreeCAD заново

💡 FreeCAD загружает аддоны только при старте, поэтому перезапуск обязателен.

Как проверить, что аддон работает?

  1. В правом нижнем углу FreeCAD нажмите на название текущей рабочей среды (например, «Part Design»)

  2. В выпадающем списке найдите «Hello World» и выберите его

  3. На панели инструментов появится кнопка «Say Hello»

  4. Нажмите её → должно появиться окно с приветствием!

Поздравляем! Вы создали свой первый аддон!


🔍 Шаг 5. Отладка (если что-то не работает)

Если аддон не появился или выдал ошибку:

  1. Откройте Report view:
    View → Panels → Report view

  2. Ищите красные сообщения об ошибках

Частые проблемы:

ПроблемаРешениеModuleNotFoundError: No module named 'HelloWorldAddon'Проверьте имя папки — оно должно быть точно таким же, как в from HelloWorldAddon...Кнопка есть, но ничего не происходитПроверьте, нет ли ошибок в Activated() (например, забыли import QtGui)Аддон не появляется в спискеУбедитесь, что файл называется именно InitGui.py (не initgui.py, не InitGUI.py)Ошибка синтаксисаПроверьте отступы (в Python они важны!) и скобки

💡 Совет: в Windows имена файлов не чувствительны к регистру, но в Linux/macOS — чувствительны. Лучше писать точно: InitGui.py.


🧪 Практическое задание

  1. Измените текст сообщения в Activated() на свой

  2. Попробуйте добавить вторую команду (например, «Say Goodbye»)

  3. Добавьте её в тот же список self.list и проверьте, что появляются две кнопки

Пример второй команды:

class GoodbyeCommand: def GetResources(self): return {"MenuText": "Say Goodbye", "ToolTip": "Bye!"} def Activated(self): QtGui.QMessageBox.information(None, "Bye", "До свидания!") def IsActive(self): return True # Не забудьте зарегистрировать! FreeCADGui.addCommand("GoodbyeCommand", GoodbyeCommand())

И обновите список:

self.list = ["HelloWorldCommand", "GoodbyeCommand"]


▶️ Что дальше?

В Уроке 3 мы:

  • Научимся создавать настоящие 3D-объекты (коробки, цилиндры)

  • Разберёмся, как устроена документная модель FreeCAD

  • Сделаем аддон, который строит параметрическую деталь


  • Понравилось — ставь «+»
    Полезно? Подпишись.

    Так я буду знать, какой контент вам интересен.
    Вопросы можно задавать в комментариях 👇👇👇
    Удачи! 🚀

Статья на github: https://github.com/hypo69/1001-python-ru/blob/master/ru/articles/FreeCAD/2.md#-шаг-3-файл-hello_workbenchpy--логика-аддона

Показать полностью 2
6

Создание аддонов для FreeCAD. Урок 1. Подготовка среды разработки

Серия Создание аддонов для FreeCAD

Цель урока: настроить всё необходимое, чтобы создавать, тестировать и отлаживать аддоны без лишних усилий.


Дисклеймер. На pikabu нет редактора кода, поэтому код картинками, но в конце я дам ссылку на github, откуда можно будет скопировать блоки кода.


🔧 Шаг 1. Убедитесь, что у вас установлен FreeCAD

Требования:

  • FreeCAD версии 0.20 или новее (лучше 1.0+)

  • Работает на Windows, Linux или macOS

👉 Если у вас ещё нет FreeCAD — скачайте его с официального сайта:
🔗 https://www.freecad.org/downloads.php

Выберите:

  • Windows: .exe (установщик) или .7z (portable)

  • Linux: AppImage или пакет из репозитория

  • macOS: .dmg

💡 Совет: для обучения лучше использовать установленную версию (через установщик), так как она стабильнее и проще в настройке.


📁 Шаг 2. Найдите папку для аддонов

FreeCAD ищет пользовательские аддоны в специальной папке Mod.
Путь зависит от вашей ОС и типа установки.

✅ Как найти папку точно?

  1. Запустите FreeCAD.

  2. Откройте Python Console:
    View → Panels → Python console

  3. Введите команды:

> import FreeCAD
> print(FreeCAD.getUserAppDataDir())

  1. Нажмите Enter.

Вы увидите путь, например:

  • Windows (установленная версия):
    C:\Users\ВашеИмя\AppData\Roaming\FreeCAD\

  • Windows (portable):
    D:\FreeCAD\data\

  • Linux:
    /home/ваше_имя/.local/share/FreeCAD/

  • macOS:
    /Users/ваше_имя/Library/Application Support/FreeCAD/

➕ Создайте папку Mod

Внутри этой директории должна быть папка Mod.
Если её нет — создайте вручную.

Пример для Windows:

C:\Users\ВашеИмя\AppData\Roaming\FreeCAD\Mod\

💡 Быстрый способ открыть папку на Windows:
Нажмите Win + R → введите %APPDATA%\FreeCAD → Enter


🖥 Шаг 3. Настройте текстовый редактор (опционально, но очень рекомендуется)

Хотя можно писать код в Блокноте, удобнее использовать редактор с:

  • Подсветкой синтаксиса Python

  • Автодополнением

  • Возможностью запуска скриптов

🔹 Рекомендую: Visual Studio Code (VS Code)

  1. Скачайте и установите: https://code.visualstudio.com/

  2. Установите расширение Python (от Microsoft)

🔹 Как открыть папку аддона в VS Code?

  1. Запустите VS Code

  2. File → Open Folder

  3. Выберите папку Mod (или отдельный аддон внутри неё)

Теперь вы видите структуру проекта и можете редактировать файлы с комфортом.


🛠 Шаг 4. Изучите встроенные инструменты FreeCAD

FreeCAD уже содержит всё, что нужно для разработки.

1. Python Console

  • Меню: View → Panels → Python console

  • Позволяет выполнять команды в реальном времени

  • Пример: введите App.newDocument() → создастся новый документ

2. Report View

  • Меню: View → Panels → Report view

  • Показывает ошибки, предупреждения, логи

  • Обязательно держите открытым при тестировании аддона!

3. Macro Recorder

  • Меню: Macro → Macros...

  • Кнопка Record — записывает ваши действия в Python-код

  • Отличный способ изучить API FreeCAD

💡 Попробуйте:

  1. Нажмите Macro → Start recording

  2. Создайте коробку (Part → Box)

  3. Остановите запись

  4. Откройте макрос — вы увидите реальный код создания объекта.


🧪 Шаг 5. Проверка: создайте тестовую папку

Чтобы убедиться, что всё работает:

  1. В папке Mod создайте подпапку:

    TestAddon

  2. Внутри создайте файл __init__.py (может быть пустым) — это говорит Python, что папка — модуль.

  3. Перезапустите FreeCAD.

  4. Откройте Report view.

Если вы не видите ошибок — значит, FreeCAD успешно сканирует папку Mod.

❗ Если появится ошибка вида ImportError — проверьте:

  • Правильность имени папки (без пробелов и кириллицы)

  • Наличие __init__.py (в новых версиях не всегда обязательно, но безопаснее добавить)


🗂 Структура папки разработчика (итог)

К концу этого урока у вас должна быть такая структура:

И вы знаете:

  • Где лежит Mod

  • Как открыть Python Console и Report View

  • Как использовать Macro Recorder

  • Как настроить VS Code (опционально)


✅ Практическое задание

  1. Найдите папку Mod через FreeCAD.getUserAppDataDir()

  2. Создайте папку MyFirstAddon внутри Mod

  3. Добавьте в неё пустой файл __init__.py

  4. Перезапустите FreeCAD

  5. Убедитесь, что в Report view нет ошибок

🎯 Цель: FreeCAD должен запуститься без ошибок и "увидеть" вашу папку.


▶️ Что дальше?

В Уроке 2 мы создадим рабочий аддон:

  • Добавим кнопку

  • Сделаем, чтобы она что-то делала

  • Научимся регистрировать команды и рабочие среды


    Понравилось — ставь «+»
    Полезно? Подпишись.

    Так я буду знать, какой контент вам интересен.
    Вопросы можно задавать в комментариях 👇👇👇
    Удачи! 🚀

Статья на github: https://github.com/hypo69/1001-python-ru/blob/master/ru/articles/FreeCAD/урок 1. Подготовка среды разработки.md

Показать полностью 1
Отличная работа, все прочитано!

Темы

Политика

Теги

Популярные авторы

Сообщества

18+

Теги

Популярные авторы

Сообщества

Игры

Теги

Популярные авторы

Сообщества

Юмор

Теги

Популярные авторы

Сообщества

Отношения

Теги

Популярные авторы

Сообщества

Здоровье

Теги

Популярные авторы

Сообщества

Путешествия

Теги

Популярные авторы

Сообщества

Спорт

Теги

Популярные авторы

Сообщества

Хобби

Теги

Популярные авторы

Сообщества

Сервис

Теги

Популярные авторы

Сообщества

Природа

Теги

Популярные авторы

Сообщества

Бизнес

Теги

Популярные авторы

Сообщества

Транспорт

Теги

Популярные авторы

Сообщества

Общение

Теги

Популярные авторы

Сообщества

Юриспруденция

Теги

Популярные авторы

Сообщества

Наука

Теги

Популярные авторы

Сообщества

IT

Теги

Популярные авторы

Сообщества

Животные

Теги

Популярные авторы

Сообщества

Кино и сериалы

Теги

Популярные авторы

Сообщества

Экономика

Теги

Популярные авторы

Сообщества

Кулинария

Теги

Популярные авторы

Сообщества

История

Теги

Популярные авторы

Сообщества