Мебель для кукол LOL. Стол, стул и кровать
Новичок в 3D моделировании и печати. Замоделил ребенку мебель для кукол ЛОЛ: круглый стол, кроватку и стульчик. Панамка готова.
Ссылка для скачивания stl файлов:
Новичок в 3D моделировании и печати. Замоделил ребенку мебель для кукол ЛОЛ: круглый стол, кроватку и стульчик. Панамка готова.
Ссылка для скачивания stl файлов:
Цель урока: научиться создавать твёрдые тела (коробки, цилиндры) через 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 мы создадим рабочий аддон:
Добавим кнопку
Сделаем, чтобы она что-то делала
Научимся регистрировать команды и рабочие среды
Понравилось — ставь «+»
Полезно? Подпишись.
Так я буду знать, какой контент вам интересен.
Вопросы можно задавать в комментариях 👇👇👇
Удачи! 🚀
Попалась мне на днях статья с какого-то третьесортного ресурса, которая оповещала о выходе Freecad 1.0.0, и призывавшая проектировщиков переходить на нее. Мол, разработчики молодцы, все бесплатно, никаких предубеждений относительно россиян, полная замена сволочам из автодеска и прочее пропагандистское говно. Но суть в том, что программа действительно бесплатная и мне захотелось ознакомиться с функционалом. Пока только первые впечатления, без сравнения характеристик.
Первое, что бросилось в глаза и заинтриговало - по сути все основные программы автодеска собраны в одну. Т.е. Ревит, Инвентор, Автокад 2д объединены в одну программу. Звучит, конечно, круто, но как это работает в реальности, пока сложно сказать, буду разбираться.
Основная тема текущего поста - сравнение Фрикад с Инвентором. И здесь пока что в сфере фасадных конструкций у Инвентора подавляющее преимущество в вопросах интерфейса. Он гораздо более интуитивно понятнее, чем у Фрикада. Но, возможно, дело привычки. Первые же трудности начинаются с создания эскиза детали. Все сечения фасадных профилей (российских, беларуских, канадских) выполнены в dwg формате, нельзя сделать копипасту из dwg во Фрикад и выдавить профиль. Конечно, можно воспользоваться конвертером, но проблема в том, что даже копипаста из dwg в Инвентор не всегда проходит корректно, что уж говорить о копипасте через конвертер.
Параметризация деталей у Фрикада это просто боль. Инвентор создаёт таблицу с параметрами автоматически, например, нарисовал я пятиугольник, проставил размеры по нужным сторонам и углам, Инвнтор по каждому размеру назначает параметр, который я могу подкрутить в любое удобное мне время. Для Фрикада такую таблицу нужно составлять вручную. И если с обычными профилями это не доставляет неудобств, им задается чаще всего пара-тройка параметров типа длины и углов подрезки по краям; то в случае с кассетами из металла или композита заполнение такой таблицы вручную отнимает кучу времени.
Ок, получилось выдавить все необходимые профили и кассеты, идем в сборку. Функционал наложения зависимостей у программ одинаковый. А вот размножение деталей через копирование, отзеркаливание или массив удобнее и быстрее в Инвенторе. Опять же, благодаря интерфейсу.
Сборка собрана, делаем чертеж. Здесь каких-то принципиальных различий я не обнаружил. У Фрикада есть функция экспорта чертежа в dwg, но надо дополнительно установить конвертер. Инвентор экспортирует сразу в dwg, но в виде примитивов, т.е. простой набор отрезков.
Как конструктор, могу уверенно заявить, что все указанные мною неудобства Фрикада являются следствием привычки, вызванной популяризацией продуктов Автодеска. Если бы я изучал САПР с нуля, думаю, Фрикад стал бы основным моим инструментом.
Как владелец конструкторского бюро, работающего в том числе и на международном рынке скажу, что ни в Канаде, ни в США, ни в Израиле, ни в Великобритании, ни в Казахстане не встречал никого, кто бы разрабатывал документацию во Фрикаде.
Учитывая распространение Автодеска, не вижу смысла тратить время на переподготовку квалифицированного персонала, пока можно спокойно пользоваться этими продуктами (с помощью тех же программ, что и смотреть Ютуб).
P.s. по мере изучения Фрикада, обратил внимание на безумное количество плагинов (верстаков) для 3д печати. Мне кажется, что именно в сфере 3д печати и изделий для станков с ЧПУ она найдёт очень широкое применение
Доброе время суток :)
Есть у меня очень маленький 3D-принтер, пара мотков пластика. Для черенкования растений приобрёл пробирки. Штатив решил изготовить сам, так как хотелось поковырять FreeCAD и превратить прутки пластика во что-то полезное.
Штатив я сначала спроектировал руками через рисовку Sketch'а и его экструзию. Затем стал переносить шаги рисовки на Python. Собака зарылась в том, что в таком случае невозможно получить доступ к нужному ребру или поверхности тела — тело генерируется автоматически на основании скетча, а потому не ясно, где какое лицо/ребро.
Пришлось переписывать генерацию штатива через использование модуля Part – оказалось, что использовать его очень просто, исходный код сократился раза в три. Дошло до моего ума, что верстаки Sketch нужны для создания тел руками, а потому в них заложены дополнительные проверки на ограниченность модели (чтобы не было "плавающих" параметров). В Part таких усложнений нет.
Итак, у штатива можно задать количество пробирок по оси X и Y, диаметр пробирок, расстояние между ними, а также ширину и высоту ножек, толщину пластины с отверстиями.
Напишите в комментариях, использовали бы вы этот инструмент в своей лабе? )
Помогите разобраться, нигде ответа не нашел, не могу установить любое дополнение в FreeCAD, для примера скрин, пробовал версию 21 и 21.2 , на гитхабе логинился, и отдельно скачать zip архивы дополнений тоже не получается, чтобы их в ручную скопировать, браузеры ругаются на безопасность , ВПН пробывал, нет эффекта, кто пользуется помогите((