📘 Учебный курс: Создание аддонов для FreeCAD
Цель урока: подготовить аддон к распространению, создать метаданные и опубликовать его на GitHub, чтобы любой пользователь FreeCAD мог установить его одним кликом.
📦 Часть 1. Что такое Addon Manager?
Addon Manager — встроенный инструмент FreeCAD (Tools → Addon Manager), который:
- Показывает каталог из 300+ официальных аддонов
- Позволяет устанавливать, обновлять и удалять аддоны без ручного копирования файлов
- Работает с репозиториями на GitHub
Чтобы ваш аддон появился там — нужно:
- Выложить его на GitHub
- Добавить файл
package.xml - (Опционально) Отправить PR в FreeCAD-addons
🗂 Часть 2. Подготовка структуры репозитория
Ваша папка должна выглядеть так:
BoxBuilderAddon/ ← корень репозитория
├── Resources/
│ └── icons/
│ ├── box_builder.svg
│ └── create_box.svg
├── InitGui.py
├── box_builder_workbench.py
├── package.xml ← ОБЯЗАТЕЛЬНО!
├── README.md ← рекомендуется
└── LICENSE ← обязательно для публикации
💡 Важно: название корневой папки должно совпадать с именем аддона и быть таким же, как в
InitGui.py.
📄 Часть 3. Создание package.xml
Этот файл описывает ваш аддон для Addon Manager.
Создайте файл package.xml в корне:
<?xml version="1.0" encoding="UTF-8" standalone="no" ?>
<package format="1" xmlns="https://wiki.freecad.org/Package_Metadata">
<name>BoxBuilderAddon</name>
<description>
A simple tool to create parametric boxes with custom dimensions and GUI.
Saves last used values between sessions.
</description>
<version>1.0.0</version>
<date>2025-04-05</date>
<maintainer email="your.email@example.com">Your Name</maintainer>
<license file="LICENSE">LGPL-2.1-or-later</license>
<url type="repository" branch="main">https://github.com/yourname/BoxBuilderAddon</url>
<url type="bugtracker">https://github.com/yourname/BoxBuilderAddon/issues</url>
<icon>Resources/icons/box_builder.svg</icon>
<content>
<workbench>BoxBuilderAddon</workbench>
</content>
<dependencies>
<freecad>0.20</freecad>
</dependencies>
</package>
🔍 Обязательные поля:
<name>— должно совпадать с папкой<version>— в форматеX.Y.Z<license>— указываете файлLICENSEи тип лицензии<url type="repository">— ссылка на ваш GitHub<icon>— путь к иконке (относительно корня)<content><workbench>...</workbench></content>— указывает, что это рабочая среда
💡 Лицензия обязательна. Рекомендуется LGPL-2.1-or-later (как у самого FreeCAD).
📄 Часть 4. Файл LICENSE
Создайте файл LICENSE с текстом лицензии.
Пример для LGPL-2.1:
- Перейдите на: https://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt
- Скопируйте весь текст
- Вставьте в файл
LICENSE
Или используйте GitHub: при создании репозитория можно выбрать лицензию автоматически.
📝 Часть 5. Файл README.md
Создайте простой README.md:
# Box Builder Addon for FreeCAD
A simple tool to create parametric boxes with custom dimensions.
## Features
- GUI dialog for entering length, width, height
- Saves last used values between sessions
- Unique object naming
- Optional centering on origin
## Installation
1. Open FreeCAD
2. Go to **Tools → Addon Manager**
3. Search for "BoxBuilderAddon"
4. Click **Install**
Or install manually by copying the folder to your `Mod` directory.
## Requirements
- FreeCAD 0.20 or newer
🌐 Часть 6. Публикация на GitHub
Шаги:
- Зарегистрируйтесь на GitHub
- Нажмите New repository
- Название:
BoxBuilderAddon - Инициализировать без README (вы уже создали его)
- Нажмите Create repository
- Следуйте инструкциям по загрузке локальной папки:
git init
git add .
git commit -m "Initial release"
git branch -M main
git remote add origin https://github.com/yourname/BoxBuilderAddon.git
git push -u origin main
💡 Замените
yournameна ваш GitHub-логин.
🔍 Часть 7. Тестирование установки
Теперь любой пользователь может:
- Открыть FreeCAD
- Перейти в Tools → Addon Manager
- Нажать Check for updates
- Найти BoxBuilderAddon и нажать Install
⚠️ Чтобы аддон появился в официальном списке, нужно отправить Pull Request в:
🔗 https://github.com/FreeCAD/FreeCAD-addons
Но даже без этого пользователи могут установить его по прямой ссылке:
- В Addon Manager: Tools → Addon Manager → … → Install custom addon
- Вставить URL:
https://github.com/yourname/BoxBuilderAddon
🧪 Практическое задание
- Создайте аккаунт на GitHub (если нет)
- Подготовьте полную структуру аддона с
package.xml,LICENSE,README.md - Загрузите репозиторий на GitHub
- Установите свой аддон через Addon Manager на чистой копии FreeCAD (или удалите папку из
Modперед установкой)
✅ Итог
Теперь вы умеете:
- Создавать полноценные аддоны с GUI и настройками
- Добавлять иконки
- Подготавливать метаданные
- Публиковать на GitHub
- Делать аддон доступным для всего мира
🎓 Что дальше?
Вы прошли весь курс! 🎉
Теперь вы — разработчик аддонов FreeCAD.
Возможные следующие шаги:
- Добавьте поддержку центрирования (из задания Урока 5)
- Реализуйте множественный ввод (создание сетки коробок)
- Интегрируйте с PartDesign для создания тел вращения
- Напишите аддон для своей задачи: болты, рамы, расчёты и т.д.
💬 Заключение
FreeCAD — это не просто CAD-программа.
Это платформа для инженерного творчества, и вы теперь обладаете ключом к её расширению.
Пишите аддоны. Делитесь ими. Меняйте мир — по одному параметрическому объекту за раз. 🛠️
Если у вас есть идея для реального аддона — опишите её, и я помогу реализовать!