Перейти до вмісту
> 💻 🧠 Код 1001 > 📚 > > Лекція 7. Публікація доповнення: Від папки до GitHub та Менеджера доповнень

Лекція 7. Публікація доповнення: Від папки до GitHub та Менеджера доповнень

  • від

автор: hypo69 / 03/10/2025

Мета лекції: Підготувати доповнення для розповсюдження, створити метадані та опублікувати його на GitHub, щоб будь-який користувач FreeCAD міг встановити його одним кліком.


У цій статті

  1. Частина 1. Що таке Менеджер доповнень?
  2. Частина 2. Підготовка структури репозиторію
  3. Частина 3. Створення файлу package.xml
    • Обов’язкові поля
  4. Частина 4. Файл LICENSE
  5. Частина 5. Файл README.md
  6. Частина 6. Публікація на GitHub
    • Кроки
  7. Частина 7. Тестування інсталяції
  8. Практичне завдання
  9. Підсумок
  10. Що далі?
    • Можливі наступні кроки
  11. Висновок

📦 Частина 1. Що таке Менеджер доповнень?

Менеджер доповнень — це вбудований інструмент FreeCAD (Інструменти → Менеджер доповнень), який:

  • Показує каталог з понад 300 офіційних доповнень.
  • Дозволяє встановлювати, оновлювати та видаляти доповнення без ручного копіювання файлів.
  • Працює з репозиторіями GitHub.

Щоб ваше доповнення з’явилося там, вам потрібно:

  1. Завантажити його на GitHub.
  2. Додати файл package.xml.
  3. (Опціонально) Надіслати Pull Request (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`**

Цей файл описує ваше доповнення для Менеджера доповнень.

Створіть файл `package.xml` у кореневому каталозі:

xml

BoxBuilderAddon Простий інструмент для створення параметричних коробок з власними розмірами та GUI. Зберігає останні використані значення між сесіями. 1.0.0 2025-04-05 Your Name LGPL-2.1-or-later https://github.com/yourname/BoxBuilderAddon https://github.com/yourname/BoxBuilderAddon/issues Resources/icons/box_builder.svg BoxBuilderAddon 0.20

#### **🔍 Обов'язкові поля:**

*   `<name>` — має збігатися з назвою папки
*   `<version>` — у форматі X.Y.Z
*   `<license>` — вказує на файл `LICENSE` та тип ліцензії
*   `<url type="repository">` — посилання на ваш GitHub
*   `<icon>` — шлях до іконки (відносно кореня)
*   `<content><workbench>...</workbench></content>` — вказує, що це робочий стіл (workbench)

> **💡 Ліцензія є обов'язковою.** Рекомендується **LGPL-2.1-or-later** (як і для самого FreeCAD).

---

### **📜 Частина 4. Файл `LICENSE`**

Створіть файл `LICENSE` з текстом ліцензії.

**Приклад для LGPL-2.1:**

1.  Перейдіть за посиланням: https://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt
2.  Скопіюйте весь текст.
3.  Вставте його у файл `LICENSE`.

Або скористайтеся GitHub: при створенні репозиторію ви можете вибрати ліцензію автоматично.

---

### **📝 Частина 5. Файл `README.md`**

Створіть простий файл `README.md`:

markdown

Доповнення Box Builder для FreeCAD

Простий інструмент для створення параметричних коробок з власними розмірами.

Можливості

  • Діалогове вікно GUI для введення довжини, ширини, висоти
  • Зберігає останні використані значення між сесіями
  • Унікальні імена об’єктів
  • Опціональне центрування в точці початку координат

Встановлення

  1. Відкрийте FreeCAD
  2. Перейдіть до Інструменти → Менеджер доповнень
  3. Знайдіть “BoxBuilderAddon”
  4. Натисніть Встановити

Або встановіть вручну, скопіювавши папку у ваш каталог Mod.

Вимоги

  • FreeCAD 0.20 або новіший“`

🚀 Частина 6. Публікація на GitHub

Кроки:

  1. Зареєструйтесь на GitHub.
  2. Натисніть New repository (Новий репозиторій).
  3. Назва: BoxBuilderAddon.
  4. Ініціалізуйте без файлу README (ви його вже створили).
  5. Натисніть Create repository (Створити репозиторій).
  6. Дотримуйтесь інструкцій, щоб завантажити вашу локальну папку:
git init
git add .
git commit -m "Перший реліз"
git branch -M main
git remote add origin https://github.com/yourname/BoxBuilderAddon.git
git push -u origin main

💡 Замініть yourname на ваше ім’я користувача GitHub.


✔️ Частина 7. Тестування інсталяції

Тепер будь-який користувач може:

  1. Відкрити FreeCAD.
  2. Перейти до Інструменти → Менеджер доповнень.
  3. Натиснути Перевірити наявність оновлень.
  4. Знайти BoxBuilderAddon і натиснути Встановити.

❗️ Щоб доповнення з’явилося в офіційному списку, вам потрібно надіслати Pull Request до:
https://github.com/FreeCAD/FreeCAD-addons

Але навіть без цього, користувачі можуть встановити його за прямим посиланням:

  • У Менеджері доповнень: Інструменти → Менеджер доповнень → … → Встановити власне доповнення
  • Вставте URL: https://github.com/yourname/BoxBuilderAddon

✍️ Практичне завдання

  1. Створіть обліковий запис на GitHub (якщо у вас його немає).
  2. Підготуйте повну структуру доповнення з package.xml, LICENSE, README.md.
  3. Завантажте репозиторій на GitHub.
  4. Встановіть своє доповнення через Менеджер доповнень на чистій копії FreeCAD (або видаліть папку з Mod перед встановленням).

✅ Підсумок

Тепер ви знаєте, як:

  • Створювати повноцінні доповнення з GUI та налаштуваннями.
  • Додавати іконки.
  • Готувати метадані.
  • Публікувати на GitHub.
  • Робити ваше доповнення доступним для всього світу.

🎓 Що далі?

Ви завершили весь курс! 🎉
Тепер ви — розробник доповнень для FreeCAD.

Можливі наступні кроки:

  • Додайте підтримку центрування (із завдання в Лекції 5).
  • Реалізуйте множинне введення (створення сітки коробок).
  • Інтегруйте з PartDesign для створення тіл обертання.
  • Напишіть доповнення для власного завдання: болти, рами, розрахунки тощо.

💬 Висновок

FreeCAD — це не просто програма CAD.
Це платформа для інженерної творчості, і тепер ви тримаєте ключ до її розширення.

Пишіть доповнення. Діліться ними. Змінюйте світ — по одному параметричному об’єкту за раз. 🛠️

Якщо у вас є ідея для справжнього доповнення — опишіть її, і я допоможу вам її реалізувати

Позначки:

Залишити відповідь

Ваша e-mail адреса не оприлюднюватиметься. Обов’язкові поля позначені *