Цель урока: создать простой аддон, который добавляет новую рабочую среду с кнопкой, и при нажатии показывает сообщение.
Дисклеймер. На pikabu нет редактора кода, поэтому код картинками, но в конце я дам ссылку на github, откуда можно будет скопировать блоки кода.
📁 Шаг 1. Подготовка папки аддона
Убедитесь, что у вас есть папка:
.../FreeCAD/Mod/HelloWorldAddon/
💡 Имя папки важно: оно должно совпадать с именем модуля в коде.
Мы будем использовать HelloWorldAddon.
Внутри этой папки создайте два файла:
❗ Не используйте пробелы или кириллицу в именах файлов и папок!
📄 Шаг 2. Файл InitGui.py — точка входа
Этот файл автоматически запускается FreeCAD при старте, если лежит в папке аддона.
Откройте его в редакторе и вставьте следующий код:
🔍 Что делает этот код?
Импортирует нашу рабочую среду из файла hello_workbench.py
Регистрирует её в интерфейсе FreeCAD через FreeCADGui.addWorkbench()
⚠️ Обратите внимание:
from HelloWorldAddon.hello_workbench — здесь HelloWorldAddon — это имя папки, а hello_workbench — имя файла без расширения .py.
Теперь создадим саму рабочую среду.
Вставьте в hello_workbench.py следующий код:
🔍 Разбор кода по частям:
1. Команда (HelloWorldCommand)
GetResources() — описывает, как команда выглядит в интерфейсе
Activated() — что происходит при нажатии
IsActive() — когда кнопка активна (например, только если есть документ)
2. Рабочая среда (HelloWorldWorkbench)
Наследуется от FreeCADGui.Workbench
Метод Initialize() добавляет команды на панель и в меню
GetClassName() говорит FreeCAD: «это Python-рабочая среда»
▶️ Шаг 4. Запуск и проверка
Сохраните оба файла
Закройте FreeCAD (если был открыт)
Запустите FreeCAD заново
💡 FreeCAD загружает аддоны только при старте, поэтому перезапуск обязателен.
Как проверить, что аддон работает?
В правом нижнем углу FreeCAD нажмите на название текущей рабочей среды (например, «Part Design»)
В выпадающем списке найдите «Hello World» и выберите его
На панели инструментов появится кнопка «Say Hello»
Нажмите её → должно появиться окно с приветствием!
✅ Поздравляем! Вы создали свой первый аддон!
🔍 Шаг 5. Отладка (если что-то не работает)
Если аддон не появился или выдал ошибку:
Откройте Report view:
View → Panels → Report view
Ищите красные сообщения об ошибках
Частые проблемы:
ПроблемаРешениеModuleNotFoundError: No module named 'HelloWorldAddon'Проверьте имя папки — оно должно быть точно таким же, как в from HelloWorldAddon...Кнопка есть, но ничего не происходитПроверьте, нет ли ошибок в Activated() (например, забыли import QtGui)Аддон не появляется в спискеУбедитесь, что файл называется именно InitGui.py (не initgui.py, не InitGUI.py)Ошибка синтаксисаПроверьте отступы (в Python они важны!) и скобки
💡 Совет: в Windows имена файлов не чувствительны к регистру, но в Linux/macOS — чувствительны. Лучше писать точно: InitGui.py.
🧪 Практическое задание
Измените текст сообщения в Activated() на свой
Попробуйте добавить вторую команду (например, «Say Goodbye»)
Добавьте её в тот же список 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"]
▶️ Что дальше?
Научимся создавать настоящие 3D-объекты (коробки, цилиндры)
Разберёмся, как устроена документная модель FreeCAD
Сделаем аддон, который строит параметрическую деталь