Сделал add-on для Blender Multi FBX Exporter (Бесплатный)
Аддон позволяет за раз экспортировать множество объектов из Blender в отдельные FBX-файлы.
Gumroad: https://ravenmende.gumroad.com/l/multifbxexporter
Аддон позволяет за раз экспортировать множество объектов из Blender в отдельные FBX-файлы.
Gumroad: https://ravenmende.gumroad.com/l/multifbxexporter
Цель урока: научиться создавать твёрдые тела (коробки, цилиндры) через Python, понять структуру документа FreeCAD и сделать аддон, который строит параметрическую деталь.
Прежде чем создавать объекты, важно понять иерархию данных в FreeCAD:
Document — это открытый файл (.FCStd). Всё, что вы создаёте, находится внутри документа.
Object — это параметрический объект: коробка, цилиндр, эскиз и т.д.
Shape — это геометрическое тело (B-Rep), которое можно визуализировать.
💡 Вы всегда работаете в контексте активного документа.
Если документа нет — создайте новый:
Самый простой 3D-объект в FreeCAD — это Part::Box.
Пример кода:
doc.addObject("Part::Box", "MyBox")
→ создаёт новый объект типа Box с именем "MyBox"
У объекта есть параметрические свойства: Length, Width, Height
doc.recompute()
→ перестраивает модель (обязательно после изменения параметров!)
🔸 Все размеры — в миллиметрах (по умолчанию в FreeCAD).
Теперь создадим аддон, который создаёт коробку с заданными размерами.
.../Mod/ParamBoxAddon/
Сохраните файлы
Перезапустите FreeCAD
Выберите рабочую среду «Parametric Box»
Нажмите кнопку «Create Box»
✅ Должен появиться серый параллелепипед в 3D-окне.
В дереве проекта (Model) дважды кликните по MyParamBox
В панели Data измените, например, Length на 50
Нажмите Enter → модель автоматически обновится!
Это и есть параметрическое моделирование.
Вы можете создавать не только коробки. Вот несколько примеров:
💡 Все эти объекты находятся в модуле Part, который встроен в FreeCAD.
Измените аддон так, чтобы он создавал цилиндр, а не коробку.
Сделайте так, чтобы при создании объект получал уникальное имя (например, Box_1, Box_2...), если объект с таким именем уже есть.
Добавьте вторую команду — «Create Cylinder» — в ту же рабочую среду.
Подсказка для уникального имени:
Всегда вызывайте doc.recompute() после изменения параметров.
Используйте FreeCAD.Console.PrintMessage("Текст\n") для отладки (сообщения появятся в Report View).
Проверяйте, существует ли документ перед работой с ним.
В Уроке 4 мы:
Научимся создавать графический интерфейс (GUI) с полями ввода.
Сделаем окно, где пользователь вводит длину, ширину и высоту.
И по нажатию кнопки — строится бокс с этими параметрами.
Это уже будет настоящий инструмент, а не просто демонстрация.
Понравилось — ставь «+»
Полезно? Подпишись.
Так я буду знать, какой контент вам интересен.
Вопросы можно задавать в комментариях 👇👇👇
Удачи! 🚀
Статья на github: https://github.com/hypo69/1001-python-ru/blob/master/ru/articles/FreeCAD/3.md
Цель урока: создать простой аддон, который добавляет новую рабочую среду с кнопкой, и при нажатии показывает сообщение.
Дисклеймер. На pikabu нет редактора кода, поэтому код картинками, но в конце я дам ссылку на github, откуда можно будет скопировать блоки кода.
Убедитесь, что у вас есть папка:
.../FreeCAD/Mod/HelloWorldAddon/
Если нет — создайте её.
💡 Имя папки важно: оно должно совпадать с именем модуля в коде.
Мы будем использовать HelloWorldAddon.
Внутри этой папки создайте два файла:
❗ Не используйте пробелы или кириллицу в именах файлов и папок!
Этот файл автоматически запускается 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-рабочая среда»
3. Регистрация
FreeCADGui.addCommand() связывает имя "HelloWorldCommand" с классом
Сохраните оба файла
Закройте FreeCAD (если был открыт)
Запустите FreeCAD заново
💡 FreeCAD загружает аддоны только при старте, поэтому перезапуск обязателен.
В правом нижнем углу FreeCAD нажмите на название текущей рабочей среды (например, «Part Design»)
В выпадающем списке найдите «Hello World» и выберите его
На панели инструментов появится кнопка «Say Hello»
Нажмите её → должно появиться окно с приветствием!
✅ Поздравляем! Вы создали свой первый аддон!
Если аддон не появился или выдал ошибку:
Откройте 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"]
В Уроке 3 мы:
Научимся создавать настоящие 3D-объекты (коробки, цилиндры)
Разберёмся, как устроена документная модель FreeCAD
Сделаем аддон, который строит параметрическую деталь
Понравилось — ставь «+»
Полезно? Подпишись.
Так я буду знать, какой контент вам интересен.
Вопросы можно задавать в комментариях 👇👇👇
Удачи! 🚀
Цель урока: настроить всё необходимое, чтобы создавать, тестировать и отлаживать аддоны без лишних усилий.
Дисклеймер. На pikabu нет редактора кода, поэтому код картинками, но в конце я дам ссылку на github, откуда можно будет скопировать блоки кода.
FreeCAD версии 0.20 или новее (лучше 1.0+)
Работает на Windows, Linux или macOS
👉 Если у вас ещё нет FreeCAD — скачайте его с официального сайта:
🔗 https://www.freecad.org/downloads.php
Выберите:
Windows: .exe (установщик) или .7z (portable)
Linux: AppImage или пакет из репозитория
macOS: .dmg
💡 Совет: для обучения лучше использовать установленную версию (через установщик), так как она стабильнее и проще в настройке.
FreeCAD ищет пользовательские аддоны в специальной папке Mod.
Путь зависит от вашей ОС и типа установки.
Запустите FreeCAD.
Откройте Python Console:
View → Panels → Python console
Введите команды:
> import FreeCAD
> print(FreeCAD.getUserAppDataDir())
Нажмите Enter.
Вы увидите путь, например:
Windows (установленная версия):
C:\Users\ВашеИмя\AppData\Roaming\FreeCAD\
Windows (portable):
D:\FreeCAD\data\
Linux:
/home/ваше_имя/.local/share/FreeCAD/
macOS:
/Users/ваше_имя/Library/Application Support/FreeCAD/
Внутри этой директории должна быть папка Mod.
Если её нет — создайте вручную.
Пример для Windows:
C:\Users\ВашеИмя\AppData\Roaming\FreeCAD\Mod\
💡 Быстрый способ открыть папку на Windows:
Нажмите Win + R → введите %APPDATA%\FreeCAD → Enter
Хотя можно писать код в Блокноте, удобнее использовать редактор с:
Подсветкой синтаксиса Python
Автодополнением
Возможностью запуска скриптов
Скачайте и установите: https://code.visualstudio.com/
Установите расширение Python (от Microsoft)
Запустите VS Code
File → Open Folder
Выберите папку Mod (или отдельный аддон внутри неё)
Теперь вы видите структуру проекта и можете редактировать файлы с комфортом.
FreeCAD уже содержит всё, что нужно для разработки.
Меню: View → Panels → Python console
Позволяет выполнять команды в реальном времени
Пример: введите App.newDocument() → создастся новый документ
Меню: View → Panels → Report view
Показывает ошибки, предупреждения, логи
Обязательно держите открытым при тестировании аддона!
Меню: Macro → Macros...
Кнопка Record — записывает ваши действия в Python-код
Отличный способ изучить API FreeCAD
💡 Попробуйте:
Нажмите Macro → Start recording
Создайте коробку (Part → Box)
Остановите запись
Откройте макрос — вы увидите реальный код создания объекта.
Чтобы убедиться, что всё работает:
В папке Mod создайте подпапку:
TestAddon
Внутри создайте файл __init__.py (может быть пустым) — это говорит Python, что папка — модуль.
Перезапустите FreeCAD.
Откройте Report view.
Если вы не видите ошибок — значит, FreeCAD успешно сканирует папку Mod.
❗ Если появится ошибка вида ImportError — проверьте:
Правильность имени папки (без пробелов и кириллицы)
Наличие __init__.py (в новых версиях не всегда обязательно, но безопаснее добавить)
К концу этого урока у вас должна быть такая структура:
И вы знаете:
Где лежит Mod
Как открыть Python Console и Report View
Как использовать Macro Recorder
Как настроить VS Code (опционально)
Найдите папку Mod через FreeCAD.getUserAppDataDir()
Создайте папку MyFirstAddon внутри Mod
Добавьте в неё пустой файл __init__.py
Перезапустите FreeCAD
Убедитесь, что в Report view нет ошибок
🎯 Цель: FreeCAD должен запуститься без ошибок и "увидеть" вашу папку.
В Уроке 2 мы создадим рабочий аддон:
Добавим кнопку
Сделаем, чтобы она что-то делала
Научимся регистрировать команды и рабочие среды
Понравилось — ставь «+»
Полезно? Подпишись.
Так я буду знать, какой контент вам интересен.
Вопросы можно задавать в комментариях 👇👇👇
Удачи! 🚀
Сейчас в кладовке шарился, искал лейку на смеситель в душе. Смотрю журнал Игромания лежит. Переворачиваю обложкой вверх и понимаю что недавно на Пикабу пост видел с диском от этого журнала.)
Полистал, а там на одной из страниц реклама.
Не играл, но рекламу вспомнил.
Мод с близняшками из Atomic Heart — стильные и смертоносные ассистентки теперь на твоей стороне! Идеальное сочетание холодной стали и притягательной грации. Обновлённый облик, кастомные анимации и интерактивные элементы — если осмелишься снять с них «ограничители», жди неожиданного поворота.
Скачать можно тут👇