FreeCAD — свободная система параметрического трёхмерного моделирования под лицензией LGPL. Она выросла из инженерного инструмента и сегодня закрывает полный цикл: эскиз, твёрдотельное тело, сборка, чертёж, прочностной расчёт и подготовка модели к печати или обработке. В отличие от редакторов полигональных сеток FreeCAD хранит историю построения: размеры и ограничения остаются редактируемыми, а изменение одного числа перестраивает всю деталь. Ниже — практический обзор с установкой, рабочим эскизом, сборкой, автоматизацией и разбором типичных сбоев.
Что даёт параметрический подход
Документ FreeCAD — это дерево объектов. Эскиз, выдавливание, карман, скругление и массив занимают отдельные строки, их можно править, подавлять и переставлять. Размеры связываются выражениями, поэтому толщина стенки зависит от диаметра отверстия, а не дублируется в десяти местах. После изменения габаритов геометрия пересчитывается сама — именно это отличает параметрическое моделирование от ручной правки сетки.
- Sketcher — двумерные эскизы с геометрическими и размерными ограничениями.
- Part Design — тела из эскизов: выдавливание, вращение, карманы, фаски, массивы.
- Part — булевы операции над примитивами и импортированной геометрией.
- Assembly — сборка узлов с сопряжениями, встроенная в ветку 1.x.
- TechDraw — ассоциативные чертежи с видами, разрезами и размерами.
- FEM и Path — расчёт методом конечных элементов и траектории для ЧПУ.
Дополнительные верстаки ставятся через Addon Manager: это поддерживаемые сообществом расширения, а не сторонние сборки сомнительного происхождения. Для большинства задач хватает базового набора, и включать всё подряд не стоит — интерфейс становится перегруженным.
Установка и первый запуск
В Debian и Ubuntu пакет называется freecad, в Fedora и Arch — так же. Версия в репозиториях LTS-дистрибутивов обычно отстаёт, поэтому для новых возможностей разумнее Flatpak или официальный AppImage. Проверять версию стоит и в меню «Справка → О программе», и в консоли: так видно, какой именно бинарник запускается.
sudo apt install freecad
flatpak install flathub org.freecad.FreeCAD
flatpak run org.freecad.FreeCAD --version
./FreeCAD-*.AppImage --version
Если AppImage не стартует с сообщением о FUSE, запустите его с ключом --appimage-extract-and-run или установите libfuse2. На Wayland при проблемах с окном помогает принудительный X11: QT_QPA_PLATFORM=xcb.
Эскиз, ограничения и первое тело
Создайте новый документ, выберите верстак Part Design и нажмите «Создать тело». Внутри появится плоскость; на ней строится эскиз. Сначала рисуются грубые линии и дуги, затем накладываются ограничения: совпадение точек, горизонтальность, перпендикулярность, равенство радиусов. Размерные ограничения задают числа. Пока степеней свободы больше нуля, эскиз недоопределён и подсвечивается, а после полного набора ограничений становится зелёным.
- Нарисуйте замкнутый профиль и добавьте размеры длины и ширины.
- Задайте радиусы и положение отверстий относительно кромок.
- Закройте эскиз и выполните «Выдавить» на нужную толщину.
- Добавьте карман, фаску и скругление — каждое действие останется в дереве.
Имена и выражения лучше задавать сразу: в поле размера можно ввести Spreadsheet.Width / 2 и получить зависимость от таблицы параметров. Это удобнее, чем искать число по всему дереву.
Сборка и чертёж
Ветка 1.x получила встроенный верстак Assembly с решателем сопряжений. Детали добавляются как компоненты, между ними задаются связи: фиксированная, вращательная, цилиндрическая, плоскостная. После каждого сопряжения сборка пересчитывается, а конфликтующие связи блокируются — это нормальный сигнал, что модель недоопределена или переопределена. Для простых узлов хватает двух-трёх сопряжений на деталь.
Чертёж делается в TechDraw: выберите тело или сборку, вставьте вид, добавьте проекции и размеры. Виды ассоциативны, поэтому правка модели обновляет лист. Экспорт в PDF и SVG выполняется из меню «Файл → Экспорт»; для печати проверьте масштаб и толщину линий, иначе тонкие кромки пропадут.
Автоматизация через Python
Внутри FreeCAD работает Python, а встроенная консоль позволяет выполнять те же операции кодом и повторять их в макросе. Макрос сохраняется в ~/.local/share/FreeCAD/Macro и запускается кнопкой. Через freecadcmd тот же сценарий выполняется без графики — удобно для пакетной генерации деталей на сервере.
import FreeCAD as App
import Part
doc = App.newDocument("Plate")
plate = doc.addObject("Part::Box", "Plate")
plate.Length = 120
plate.Width = 80
plate.Height = 6
doc.recompute()
Part.export([plate], "/home/user/plate.step")
doc.saveAs("/home/user/plate.FCStd")
Скрипт запускается напрямую или через командную строку:
freecadcmd /home/user/build_plate.py
freecadcmd -c "import FreeCAD; print(FreeCAD.Version())"
В AppImage исполняемый файл без графики может называться FreeCADCmd; проверьте содержимое каталога, если команда не найдена. Экспорт в STEP и STL доступен из Python, поэтому генерацию серийных размеров легко связать с таблицей или CSV.
Проверить, какие модули доступны в конкретной сборке, можно той же консолью. Это полезно, если макрос работает на одном компьютере и падает на другом.
freecadcmd -c "import FreeCAD; print(FreeCAD.listModules())"
Диагностика типичных проблем
Пустое окно трёхмерного вида чаще всего означает проблему с OpenGL или драйвером. Проверьте, какой рендерер используется, и запустите приложение в режиме X11. Если изображение рвётся при вращении, отключите сглаживание в настройках и обновите драйвер видеокарты.
glxinfo -B | grep -E "OpenGL renderer|OpenGL version"
QT_QPA_PLATFORM=xcb freecad
ls ~/.local/share/FreeCAD/Mod
Ошибки в эскизе читаются в панели задач: там указано число степеней свободы и конфликтующие ограничения. После импорта STEP проверяйте, что деталь — Solid, а не набор поверхностей: иначе булевы операции дадут пустой результат. Тяжёлые массивы и скругления лучше делать последними, а промежуточные версии сохранять отдельными файлами.
Чек-лист перед серьёзным проектом
- Зафиксируйте единицы измерения в настройках документа.
- Заведите таблицу параметров для повторяющихся размеров.
- Называйте операции осмысленно, а не «Pad001».
- Сохраняйте резервную копию перед крупной перестройкой дерева.
- Проверьте экспорт STEP в другой программе, если деталь уходит подрядчику.
- Держите версию FreeCAD неизменной до конца проекта.
Итог
FreeCAD остаётся самым зрелым свободным пакетом для параметрического моделирования. Он не заменяет тяжёлые коммерческие среды в крупных сборочных проектах, но для инженерной детали, домашней мастерской, 3D-печати и ЧПУ возможностей более чем достаточно. Главное — освоить ограничения эскиза и дисциплину именования: тогда дерево построения остаётся читаемым, а правки не превращаются в переделку с нуля.