1. Продукти
  2.   CAD
  3.   Python
  4.   openscad

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‑моделювальний функціонал без залежності від графічного інтерфейсу.

Previous Next

Початок роботи з 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");
}
 Українська