
openscad
Открытый 3D CAD‑моделировщик для программистов
Создавайте твёрдые 3D‑модели, используя CSG, экструзию и настраиваемые параметры, через открытый бесплатный Python API.
Что такое OpenSCAD?
OpenSCAD — бесплатный и открытый инструмент 3D‑CAD моделирования, разработанный специально для программистов и инженеров. В отличие от интерактивных 3D‑моделлеров, OpenSCAD использует скриптовый подход для определения твёрдых 3D‑объектов с помощью конструктивной твердотельной геометрии (CSG) и техник экструдирования. Это обеспечивает точное, воспроизводимое и параметрическое моделирование, идеальное для механических деталей, прототипов и технических дизайнов. Инструмент поддерживает Linux, Windows и macOS и хорошо интегрируется с Python‑ориентированными рабочими процессами для автоматизации и скриптинга.
OpenSCAD читает скриптовые файлы, описывающие объект, и соответственно визуализирует 3D‑модель, предоставляя дизайнерам полный контроль над процессом моделирования. Он поддерживает операции, такие как объединение (union), пересечение (intersection), разность (difference), а также трансформации, такие как перемещение (translate), вращение (rotate) и масштабирование (scale). Данные можно импортировать из файлов DXF и экспортировать в форматы STL, OFF и другие. Его открытая архитектура и активное сообщество делают его мощным выбором для разработчиков, ищущих программные возможности 3D‑моделирования без зависимости от графического интерфейса.
Начало работы с OpenSCAD
OpenSCAD доступен в виде готовых бинарных файлов для Linux, macOS и Windows на официальном сайте. Для разработчиков исходный код размещён на GitHub, и вы можете собрать его из исходников, используя CMake и предоставленные скрипты сборки. Официальный репозиторий [GitHub OpenSCAD](https://github.com/openscad/openscad) содержит подробные инструкции по сборке для всех основных платформ. Чтобы быстро начать, скачайте последнюю версию, установите её и откройте редактор, чтобы написать ваш первый SCAD‑скрипт.
Установите OpenSCAD через менеджеры пакетов
# Ubuntu/Debian
sudo apt install openscad
# macOS (Homebrew)
brew install --cask openscad
# Windows (Chocolatey)
choco install openscad
Конструктивная твердотельная геометрия (CSG)
Ключевая сила OpenSCAD заключается в поддержке конструктивной твердотельной геометрии (CSG), которая позволяет комбинировать базовые 3D‑примитивы с помощью булевых операций, таких как объединение, пересечение и разность. Такой подход обеспечивает точное моделирование, безопасное для не‑многогранных объектов, подходящее для инженерии и производства. Например, вы можете создать цилиндр с отверстием, вычитая меньший цилиндр из большего. Операции CSG определяются декларативно в скрипте, что упрощает параметризацию и ревизию. Это делает OpenSCAD идеальным для проектирования механических деталей, корпусов и функциональных прототипов, где критичны точность и воспроизводимость.
Как создать цилиндр с отверстием, используя CSG в OpenSCAD?
difference() {
cylinder(h = 20, r = 10);
cylinder(h = 25, r = 4, center = true);
}
Экструзия 2D контура
OpenSCAD поддерживает выдавливание 2D контуров, импортированных из DXF‑файлов, или определённых напрямую в коде SCAD. Эта техника необходима для создания сложных 3D форм из 2D профилей, таких как шестерни, кронштейны или индивидуальные корпуса. Вы можете выдавливать пути линейно или вращать их вокруг оси (через вращение). Процесс выдавливания учитывает порядок вершин и поддерживает как 2D полигоны, так и пути с отверстиями. В сочетании с трансформациями и модулями это позволяет параметрически генерировать детали, такие как трубы, рамы или архитектурные элементы, делая OpenSCAD мощным инструментом для технического проектирования и производственных процессов.
Как экструдировать 2D‑полигон в 3D‑объект?
linear_extrude(height = 10, center = true, convexity = 10)
polygon(points = [[0,0], [10,0], [5,10]]);
Параметрическое моделирование и конфигурация
OpenSCAD превосходит в параметрическом моделировании, где размеры и формы определяются с помощью переменных и функций. Это позволяет легко настраивать дизайны, изменяя несколько параметров, что делает его идеальным для итеративного прототипирования и кастомизации. Например, вы можете определить модуль, принимающий параметры ширины, высоты и толщины, а затем использовать его в нескольких дизайнах. Параметры также могут управляться внешними данными, такими как значения из CSV или DXF файла, что позволяет интеграцию с Python‑ориентированными конвейерами данных. Эта возможность поддерживает генеративный дизайн, где модели автоматически адаптируются к меняющимся требованиям или ограничениям.
Как определить переиспользуемый параметрический модуль?
module box(width, height, thickness) {
difference() {
cube([width, height, thickness]);
translate([thickness, thickness, -1])
cube([width - 2*thickness, height - 2*thickness, thickness + 2]);
}
}
box(50, 30, 3);
Интеграция импорта и экспорта данных
OpenSCAD предоставляет надёжную поддержку импорта 2D DXF‑файлов и экспорта 3D‑моделей в STL, OFF и другие форматы. Это упрощает интеграцию с CAD/CAM‑инструментами, 3D‑принтерами и программным обеспечением для симуляций. Импорт DXF может включать пути для экструзии, а экспорт поддерживает бинарный и ASCII STL для 3D‑печати. Кроме того, OpenSCAD может считывать параметры дизайна из DXF‑файлов, позволяя создавать гибридные рабочие процессы, где геометрия задаётся во внешних инструментах, но уточняется программно. Эта совместимость, в сочетании со скриптовой природой программы, позволяет разработчикам автоматизировать генерацию моделей и пакетную обработку с помощью Python или shell‑скриптов, оптимизируя производственные процессы.
Как импортировать DXF и экструдировать его в 3D?
linear_extrude(height = 5) {
import(file = "profile.dxf", layer = "outer");
}
