
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 моделиране без да разчитат на GUI взаимодействия.
Започване с OpenSCAD
OpenSCAD е достъпен като предварително компилирани бинарни файлове за Linux, macOS и Windows от официалния си уебсайт. За разработчиците изходният код е хостван в GitHub и можете да го компилирате от източник, използвайки CMake и предоставените скриптове за изграждане. Официалното [openscad GitHub](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");
}
