OpenSCAD: когда модель удобнее написать, чем нарисовать
В OpenSCAD модель задаётся текстом: «куб 40×30×20 минус цилиндр диаметром 6». Такой подход непривычен, но для деталей с размерами в таблице он экономит часы. Показываем основы на примере.
Обновлено 28.10.2026
Большинство редакторов 3D работают мышью: тянут грани, двигают вершины. В OpenSCAD всё наоборот: вы пишете, что получить, а программа строит. Для технических деталей это очень удобно, потому что размеры здесь важнее формы. Хотите изменить диаметр отверстия — меняете число, а не перерисовываете эскиз.
Три кита OpenSCAD
Примитивы. Кубы, цилиндры, сферы: cube([40,30,20]), cylinder(d=6, h=10), sphere(r=5).
Преобразования. Сдвиг translate, поворот rotate, масштаб scale. Они применяются к следующему за ними объекту.
Булевы операции. union объединяет, difference вычитает, intersection оставляет пересечение. Из этих операций складывается почти любая деталь.
Пример: коробка с отверстиями
w = 60; // ширина, мм
d = 40; // глубина
h = 25; // высота
wall = 2; // толщина стенки
hole = 3.2; // отверстие под винт M3
difference() {
cube([w, d, h]);
translate([wall, wall, wall])
cube([w - 2*wall, d - 2*wall, h]);
for (x = [8, w - 8], y = [8, d - 8])
translate([x, y, -1]) cylinder(d = hole, h = wall + 2, $fn = 32);
}
Что происходит: из куба вычитается внутренняя полость на высоту, оставляя дно и стенки, затем четыре цилиндра пробивают отверстия в углах дна. Если нужна коробка 80×50×30, меняете три числа, и все отверстия смещаются автоматически.
Что даёт параметрический подход
| Задача | Мышь (CAD) | Код (OpenSCAD) |
|---|---|---|
| Изменить диаметр у 20 отверстий | Править по одному | Менять одну переменную |
| Сетка 10×10 отверстий | Копировать массивом | Цикл из двух строк |
| Серия размеров S, M, L | Три файла | Один файл и переменная |
| Версионирование | Бинарные файлы | Текст, можно в Git |
| Произвольная скульптура | Удобно | Практически невозможно |
Для детали «кронштейн под полку трёх размеров» код выигрывает. Для лица персонажа лучше скульптинг.
Customizer: ползунки вместо кода
Если над первой строкой переменной стоит комментарий с диапазоном, например // [20:5:100], Customizer показывает ползунок. Человек без навыков кода меняет размеры, а программа выдаёт новую модель. Такой же подход используют библиотеки готовых шаблонов: корпус для платы, подставка под телефон, крышка с резьбой. Параметрическим моделям посвящена статья «Параметрический дизайн для 3D-печати».
Как выпустить в STL
- Нажмите F5, чтобы увидеть быстрый предпросмотр.
- Нажмите F6: программа построит модель полностью.
- Через меню Файл → Экспорт → STL сохраните результат.
- Для круглых деталей поставьте
$fn = 64или выше — иначе окружности будут многоугольниками. - Проверьте модель в слайсере на ошибки сетки; порядок проверки — в статье «Как исправить STL-файл».
Типичные ошибки новичков
- Нулевая толщина. Вычитаемый объект должен выходить за границы детали на 0,01–1 мм, иначе остаются плёнки.
- Низкое разрешение окружностей.
$fnпо умолчанию даёт грубые цилиндры. - Порядок преобразований.
rotateиtranslateдают разный результат, если поменять местами. - Единицы. OpenSCAD не знает мм или дюймов: число — просто число, 1 = 1 мм при экспорте.
OpenSCAD и другие программы
OpenSCAD не заменяет всё. Для эскизов и сборок с чертежами выбирают Fusion 360 или КОМПАС, для начинающих — Tinkercad, для скульптуры — Blender. Сравнение — в статьях «Бесплатные программы для 3D-моделирования» и «САПР для 3D-печати».
Второй пример: массив отверстий и вентиляционная решётка
cols = 6; rows = 4; pitch = 8; d = 4;
difference() {
cube([cols*pitch + 8, rows*pitch + 8, 3]);
for (i = [0:cols-1], j = [0:rows-1])
translate([8 + i*pitch, 8 + j*pitch, -1])
cylinder(d = d, h = 5, $fn = 24);
}
Эта решётка размером 56×40 мм создаётся шестью строками. Чтобы получить 10×8 отверстий с шагом 6 мм, достаточно поменять числа в первой строке. Тот же принцип применяют для вентиляционных окон корпусов, сит, подставок под кисти и ключницы. Ещё одно преимущество — повторяемость: файл с кодом легко хранить, отправлять по почте и править на любом компьютере.
Шаблоны, которые меняют по ползункам
Чтобы пользователь без навыков программирования мог менять размеры, переменные оформляют специальными комментариями. Например, width = 60; // [30:5:120] создаёт ползунок от 30 до 120 с шагом 5. Для списков выбора подойдёт запись style = "round"; // [round, square, hex]. Такие шаблоны публикуют на онлайн-площадках, и любой желающий скачивает файл, подбирает размеры под себя и экспортирует STL. Принцип лежит в основе платформ для настройки изделий: заказчик выбирает параметры, а модель перестраивается автоматически.
Если нужно сделать
Если писать код некогда, отправьте размеры и эскиз: подготовим модель и учтём допуски под печать. Работа оформляется на странице 3D-моделирования; готовые детали печатаются в разделе деталей на заказ, а серии отличающихся по размеру изделий — в мелкосерийном производстве.