📘 Учебный курс: Создание аддонов для FreeCAD
Цель урока: добавить иконки к кнопкам и рабочей среде, чтобы аддон выглядел профессионально.
- 🖼 Часть 1. Поддерживаемые форматы иконок
- 📁 Часть 2. Структура папки с иконками
- 🎨 Часть 3. Где взять иконки?
- 🛠 Часть 4. Подключение иконок в коде
- 🧪 Шаг 5. Проверка работы
- 💡 Советы по иконкам
- 🧪 Практическое задание
- 🌐 Где брать готовые иконки?
- ▶️ Что дальше?
- Урок 6. Иконки и визуальное оформление
- 🖼 Часть 1. Поддерживаемые форматы иконок
- 📁 Часть 2. Структура папки с иконками
- 🎨 Часть 3. Где взять иконки?
- 🛠 Часть 4. Подключение иконок в коде
- 🧪 Шаг 5. Проверка работы
- 💡 Советы по иконкам
- 🧪 Практическое задание
- 🌐 Где брать готовые иконки?
- ▶️ Что дальше?
🖼 Часть 1. Поддерживаемые форматы иконок
FreeCAD поддерживает:
- SVG (рекомендуется) — масштабируется без потерь
- PNG — растровый, но прост в использовании
💡 Иконки должны быть простыми, контрастными и узнаваемыми даже в маленьком размере (16×16 или 24×24 пикселей).
📁 Часть 2. Структура папки с иконками
Создайте внутри папки аддона подпапку:
BoxBuilderAddon/
├── Resources/
│ └── icons/
│ ├── box_builder.svg ← иконка рабочей среды
│ └── create_box.svg ← иконка команды
├── InitGui.py
└── box_builder_workbench.py
💡 Путь
Resources/icons/— стандартное соглашение в экосистеме FreeCAD.
🎨 Часть 3. Где взять иконки?
Вариант 1: Используйте встроенные иконки FreeCAD
FreeCAD поставляется с сотнями иконок. Например:
:/icons/Part_Box.svg:/icons/Document-new.svg
Но лучше создать свои — чтобы не зависеть от внутренних путей.
Вариант 2: Создайте простую иконку вручную
Пример: create_box.svg
<!-- create_box.svg -->
<svg xmlns="http://www.w3.org/2000/svg" width="64" height="64" viewBox="0 0 64 64">
<rect x="10" y="10" width="44" height="44" fill="none" stroke="black" stroke-width="4"/>
<line x1="10" y1="10" x2="20" y2="0" stroke="black" stroke-width="4"/>
<line x1="54" y1="10" x2="64" y2="0" stroke="black" stroke-width="4"/>
<line x1="54" y1="54" x2="64" y2="44" stroke="black" stroke-width="4"/>
<line x1="20" y1="0" x2="64" y2="0" stroke="black" stroke-width="4"/>
<line x1="64" y1="0" x2="64" y2="44" stroke="black" stroke-width="4"/>
</svg>
Сохраните этот код в файл create_box.svg внутри Resources/icons/.
💡 Вы можете открыть SVG в браузере, чтобы увидеть результат.
🛠 Часть 4. Подключение иконок в коде
Шаг 1. Обновите box_builder_workbench.py
Добавьте в начало файла (после импортов):
import os
Затем найдите класс BoxBuilderCommand и обновите метод GetResources:
class BoxBuilderCommand:
def GetResources(self):
# Путь к иконке
icon_path = os.path.join(
os.path.dirname(__file__),
"Resources", "icons", "create_box.svg"
)
return {
"MenuText": "Box Builder",
"ToolTip": "Create a box with custom dimensions",
"Pixmap": icon_path # ← подключаем иконку
}
# ... остальное без изменений
Шаг 2. Добавьте иконку для рабочей среды
В классе BoxBuilderWorkbench добавьте свойство Icon:
class BoxBuilderWorkbench(FreeCADGui.Workbench):
MenuText = "Box Builder"
ToolTip = "Create custom boxes with GUI"
# Путь к иконке рабочей среды
def __init__(self):
self.Icon = os.path.join(
os.path.dirname(__file__),
"Resources", "icons", "box_builder.svg"
)
def Initialize(self):
self.list = ["BoxBuilderCommand"]
self.appendToolbar("Box Tools", self.list)
self.appendMenu("Box Builder", self.list)
def GetClassName(self):
return "Gui::PythonWorkbench"
⚠️ Если вы не создали
box_builder.svg— просто скопируйтеcreate_box.svgи переименуйте.
🧪 Шаг 5. Проверка работы
- Убедитесь, что структура папок правильная:
BoxBuilderAddon/Resources/icons/create_box.svg
BoxBuilderAddon/Resources/icons/box_builder.svg
- Перезапустите FreeCAD
- Выберите рабочую среду Box Builder
✅ Вы должны увидеть:
- Иконку рядом с названием рабочей среды (в списке)
- Иконку на кнопке панели инструментов
💡 Советы по иконкам
- Используйте чёрный на прозрачном фоне — FreeCAD сам подстроит под тему (светлую/тёмную)
- Размер SVG не важен — главное, чтобы он был векторным
- Для PNG используйте прозрачный фон и размер 64×64 или 128×128
- Не используйте цвета — иконки в FreeCAD обычно монохромные
🧪 Практическое задание
- Создайте иконку
box_builder.svg(можно скопироватьcreate_box.svg) - Найдите в интернете бесплатную SVG-иконку коробки (например, на Flaticon или Material Icons) и адаптируйте её
- Попробуйте использовать PNG вместо SVG — убедитесь, что фон прозрачный
🌐 Где брать готовые иконки?
- Material Design Icons → скачать как SVG
- Feather Icons → простые и чистые
- FreeCAD исходники → сотни иконок в формате
.svg
▶️ Что дальше?
В Уроке 7 мы:
- Научимся публиковать аддон через официальный Addon Manager
- Создадим файл
package.xml - Подготовим репозиторий на GitHub
- Сделаем так, чтобы другие пользователи могли легко установить ваш аддон
📘 Учебный курс: Создание аддонов для FreeCAD
Урок 6. Иконки и визуальное оформление
Цель урока: добавить иконки к кнопкам и рабочей среде, чтобы аддон выглядел профессионально.
🖼 Часть 1. Поддерживаемые форматы иконок
FreeCAD поддерживает:
- SVG (рекомендуется) — масштабируется без потерь
- PNG — растровый, но прост в использовании
💡 Иконки должны быть простыми, контрастными и узнаваемыми даже в маленьком размере (16×16 или 24×24 пикселей).
📁 Часть 2. Структура папки с иконками
Создайте внутри папки аддона подпапку:
BoxBuilderAddon/
├── Resources/
│ └── icons/
│ ├── box_builder.svg ← иконка рабочей среды
│ └── create_box.svg ← иконка команды
├── InitGui.py
└── box_builder_workbench.py
💡 Путь
Resources/icons/— стандартное соглашение в экосистеме FreeCAD.
🎨 Часть 3. Где взять иконки?
Вариант 1: Используйте встроенные иконки FreeCAD
FreeCAD поставляется с сотнями иконок. Например:
:/icons/Part_Box.svg:/icons/Document-new.svg
Но лучше создать свои — чтобы не зависеть от внутренних путей.
Вариант 2: Создайте простую иконку вручную
Пример: create_box.svg
<!-- create_box.svg -->
<svg xmlns="http://www.w3.org/2000/svg" width="64" height="64" viewBox="0 0 64 64">
<rect x="10" y="10" width="44" height="44" fill="none" stroke="black" stroke-width="4"/>
<line x1="10" y1="10" x2="20" y2="0" stroke="black" stroke-width="4"/>
<line x1="54" y1="10" x2="64" y2="0" stroke="black" stroke-width="4"/>
<line x1="54" y1="54" x2="64" y2="44" stroke="black" stroke-width="4"/>
<line x1="20" y1="0" x2="64" y2="0" stroke="black" stroke-width="4"/>
<line x1="64" y1="0" x2="64" y2="44" stroke="black" stroke-width="4"/>
</svg>
Сохраните этот код в файл create_box.svg внутри Resources/icons/.
💡 Вы можете открыть SVG в браузере, чтобы увидеть результат.
🛠 Часть 4. Подключение иконок в коде
Шаг 1. Обновите box_builder_workbench.py
Добавьте в начало файла (после импортов):
import os
Затем найдите класс BoxBuilderCommand и обновите метод GetResources:
class BoxBuilderCommand:
def GetResources(self):
# Путь к иконке
icon_path = os.path.join(
os.path.dirname(__file__),
"Resources", "icons", "create_box.svg"
)
return {
"MenuText": "Box Builder",
"ToolTip": "Create a box with custom dimensions",
"Pixmap": icon_path # ← подключаем иконку
}
# ... остальное без изменений
Шаг 2. Добавьте иконку для рабочей среды
В классе BoxBuilderWorkbench добавьте свойство Icon:
class BoxBuilderWorkbench(FreeCADGui.Workbench):
MenuText = "Box Builder"
ToolTip = "Create custom boxes with GUI"
# Путь к иконке рабочей среды
def __init__(self):
self.Icon = os.path.join(
os.path.dirname(__file__),
"Resources", "icons", "box_builder.svg"
)
def Initialize(self):
self.list = ["BoxBuilderCommand"]
self.appendToolbar("Box Tools", self.list)
self.appendMenu("Box Builder", self.list)
def GetClassName(self):
return "Gui::PythonWorkbench"
⚠️ Если вы не создали
box_builder.svg— просто скопируйтеcreate_box.svgи переименуйте.
🧪 Шаг 5. Проверка работы
- Убедитесь, что структура папок правильная:
BoxBuilderAddon/Resources/icons/create_box.svg
BoxBuilderAddon/Resources/icons/box_builder.svg
- Перезапустите FreeCAD
- Выберите рабочую среду Box Builder
✅ Вы должны увидеть:
- Иконку рядом с названием рабочей среды (в списке)
- Иконку на кнопке панели инструментов
💡 Советы по иконкам
- Используйте чёрный на прозрачном фоне — FreeCAD сам подстроит под тему (светлую/тёмную)
- Размер SVG не важен — главное, чтобы он был векторным
- Для PNG используйте прозрачный фон и размер 64×64 или 128×128
- Не используйте цвета — иконки в FreeCAD обычно монохромные
🧪 Практическое задание
- Создайте иконку
box_builder.svg(можно скопироватьcreate_box.svg) - Найдите в интернете бесплатную SVG-иконку коробки (например, на Flaticon или Material Icons) и адаптируйте её
- Попробуйте использовать PNG вместо SVG — убедитесь, что фон прозрачный
🌐 Где брать готовые иконки?
- Material Design Icons → скачать как SVG
- Feather Icons → простые и чистые
- FreeCAD исходники → сотни иконок в формате
.svg
▶️ Что дальше?
В Уроке 7 мы:
- Научимся публиковать аддон через официальный Addon Manager
- Создадим файл
package.xml - Подготовим репозиторий на GitHub
- Сделаем так, чтобы другие пользователи могли легко установить ваш аддон