OpenSCAD

공식 홈페이지

그래픽 툴
2D비트맵Artecture Draw, Sketch, Paint*, Affinity Photo, AzPainter2, Black Ink, Dr. HALO, GIMP☆, Krita☆◆, mdiapp, MyPaint☆, Paint.NET★, PaintTool SAI, Pixia, Pocket Artist*, Spine tool, 그림판, 디럭스 페인트, 스무스 드로우★, 스케치북*, 아트레이지, 아트위버, 한컴 이지포토, 어도비 포토샵◆, 오픈캔버스, 일러스트 스튜디오, 콜러페인트★, 코믹 스튜디오, 클립 스튜디오◆, 파이어알파카★, 메디방페인트*★, 페인터◆, 페인트샵, 페인트스톰 스튜디오*, 포토샵 라이트룸, 프레시 페인트*, 픽셀메이터*, 픽슬러, 픽픽★, 하늘, 훠닐 스타일픽스
벡터Affinity Designer*, Corel DRAW◆, CorelTRACE◆, Inkscape☆, Microsoft Visio, Synfig Studio☆, 어도비 애니메이트◆, 어도비 일러스트레이터◆, 클립 스튜디오
DTPAdobe Acrobat◆, Microsoft Publisher, QuarkXPress, Scribus, Sigil, e북 스타일리스트, 나모 펍트리에디터, 인디자인◆, 인터파크 비스킷 메이커, 유페이퍼 웹 에디터
3D편집툴Alias, Autodesk 3Ds Max, Autodesk 123D Design★, Autodesk Inventor, Autodesk Maya, Autodesk Mudbox, Blender☆, Clara.io★, Cinema 4D(BodyPaint 3D), DAZ Studio★, LightWave 3D, Metasequoia, MilkShape 3D, Mine-imator, MODO, Rhino, SculptGL, Sculptris, SketchUp★, Source Filmmaker, VUE, ZBrush, Zmodeler
CADAlias, ARCHICAD, AutoCAD, CATIA, CorelCAD, CREO, FreeCAD☆, Fusion 360, Inventor, NX(Unigraphics), OnShape, OpenSCAD, Rhino, SketchUp★, Solid Edge, SolidWorks, Vecterworks
PLMCATIA, CREO, Inventor, NX(Unigraphics), Solid Edge, SolidWorks
렌더러Aronld, Artlantis, Keyshot, Maxwell, Mental Ray, Renderman, V-Ray
영상편집AVID, AviUtl, 에디우스, iMovie*, Lightworks, 무비 메이커, 베가스, 파워디렉터, 파이널 컷 프로, 프리미어 프로, VSDC Free Video Editor
특수효과 & DIAutodesk Flame, Davinci Resolve, Nuke, 어도비 애프터 이펙트
* 표시는 모바일 지원, ☆ 표시는 오픈소스, ★ 표시는 프리웨어, ◆는 컬러 매니지먼트 시스템 지원

1 개요

OpenSCAD는 3D 모델을 만드는 프리웨어이다. 일반적으로 사용하는 GUI기반의 모델러들과 달리 C언어와 유사한 형태의 스크립트와 CSG[1]를 이용해서 모델을 만든다. 윈도우, 리눅스, 에서 모두 이용할 수 있는 오픈소스 소프트웨어다.

GPLv2 라이선스를 이용하고 있다.

2 특징

모든 3D오브젝트를 코드로 기술하기 때문에, 협업과 버전 관리가 쉽다는 장점을 가진다. 때문에 오픈소스 3D프린터 프로젝트인 RepRap진영에서 가장 사랑받는 CAD 프로그램이다.

OpenSCAD 언어에는 변수가 없다.[2][3] 복잡한 계산을 하고자 하면 루프와 상태변수를 사용하는 대신 순수 함수형 언어에서 하듯 재귀함수를 짜야한다(...). 그렇다고 함수형언어라고 볼 수도 없는 것이, 람다표현식도 없고, 함수간 연산도 지원하지 않는다. 하지만 List Comprehension이 있기 때문에 하스켈등 함수형 언어 사용 경험이 있다면 좀 불편하긴 해도 어렵지 않게 대부분의 알고리즘은 구현할 수 있다.[4]

CGAL의 래퍼(wrapper)이기도 하다. CGAL은 방대한 크기의 기하학 계산용 오픈소스 라이브러리인데 그중 CSG부분만을 따 와서 간략한 문법으로 사용할 수 있게 한 것. 실제로 구현은 OpenSCAD스크립트를 CGAL을 불러오는 C코드로 변환 하고 CGAL을 통해 STL파일을 얻는 식으로 되어있다. 덕분에 OpenSCAD의 성능은 CGAL을 따라간다. 개발자한테 OpenSCAD의 속도가 왜 이렇게 느리냐 물으면 CGAL탓을 한다 크래시도 CGAL이 나쁜거다

느리다. 이는 하드웨어 가속은 커녕 멀티코어도 지원하지 않는 CGAL탓이기도 하지만, 작업물을 메모리에 올려놓고 수정사항만 반영하며 진행하는 일반적인 CAD와는 달리, 렌더링 버튼을 누르는 순간 처음부터 3D오브젝트를 만들기 때문이다. render()[5] 명령을 군데군데 배치함으로서 사용자가 직접 최적화를 할 수도 있지만이걸 왜 내가 직접 해야하냐, 일해라 개발자. 잘 생각해서 배치하지 않으면 거꾸로 느려지는 결과를 낳기도 한다.

3 사용 방법

4 다운로드

홈페이지에서 운영체제별로 다운로드 할 수 있다.
  1. CSG는 Constructive solid geometry의 약자로 합, 차, 교집합의 개념을 이용해서 모델을 만들어내는 방식이다. 영문 위키 CSG 항목
  2. 상수는 있다. x=0;은 x를 0으로 정의하는 적법한 문장이지만, x=x+1; 또는 x=1;x=2; 는 틀린 문장.
  3. C와 같은 절차적 언어의 변수에 대응하는 개념이 없다는 뜻. 어떠한 값이든 가질 수 있지만 한번 값이 정해지면 바뀌지 않는 콘테이너를 OpenSCAD에서는 변수라 부르며, 이는 함수형 언어나 수학에서의 변수와 같고, 절차적 언어에서의 상수에 대응된다.
  4. 한동안 C++만 쓰다가 C를 쓸 때와 비슷한 느낌이다.
  5. 하위의 오브젝트의 렌더링 결과물을 저장해놓고 다음 렌더링 때 이를 활용한다