최근 수정 시각 : 2023-11-01 10:36:04

OpenSCAD

그래픽 툴
{{{#!wiki style="margin:0 -10px -5px; word-break: keep-all"
{{{#!wiki style="display:inline-block; min-width:25%"
{{{#!folding [ 2D ]
{{{#!wiki style="margin:-5px 0 -10px"
<colbgcolor=#eee,#333> DTP LibreOfficeΟF · Affinity Publisher · Microsoft Publisher · Sigil · QuarkXPressC · 어도비 인디자인C · ScribusΟF
비트맵 GIMPΟF · Affinity PhotoB · Artecture Draw, Sketch, PaintΜ · SketchbookBF · AzPainter2 · Black InkBF · CLIP STUDIO PAINTB$ · Dr. HALOΧ · ExpresiiC · EzPhotoX · ibisPaint XB$ · KritaBΟFC · LeonardoC · mdiappF · MyPaintΟF · Paint.NET$ · PaintTool SAI · PintaΟF · PixiaF · ProcreateΜ$ · RebelleC· SketchableC · Spine · 그림판 · 디럭스 페인트Χ · 메디방페인트BF · 스무스 드로우F · 아트레이지 · 아트위버 · 어도비 포토샵C · 에지B$ · 오픈캔버스 · 일러스트 스튜디오Χ · 콜러페인트F · 파이어알파카F · 페이즈원 캡처원프로$ · 페인터C · 페인트샵 · 페인트스톰 스튜디오B · 포토샵 라이트룸 · 포토스케이프 X$ 프레시 페인트B · 픽셀메이터 프로B · 픽픽$ · 하늘Χ · 훠닐 스타일픽스F · Pocket ArtistXM
벡터 InkscapeΟ · Affinity DesignerB · Corel DRAWC · CorelTRACEOFC · CLIP STUDIO PAINTBC · ibisPaint XΜ · Microsoft Visio · Spine · 어도비 애니메이트C · 어도비 일러스트레이터C · 툰붐 하모니
UI Sketch · 피그마$ · 어도비 XD
웹 기반 Draw Chat · Drawesome · Kleki · PixlrB$ · Photopea$ · Sketch Pad · Magma Studio · Sumo App · Queeky · 미리캔버스B$ · 툴디B$
}}}}}}}}}
[ 3D ]
##
||<tablewidth=100%><tablebgcolor=#fff,#1f2023><colbgcolor=#eee,#333><width=70> CAD ||<(> FreeCADOF · CATIA · CREO · Fusion 360 · Inventor · NX · Solid Edge · SolidWorks · OpenSCADOF · TinkercadF · ARCHICAD · AutoCAD · QCADO$ · ZWCAD · ZW3D · K-CAD||
PLM CATIA · CREO · Inventor · NX · Solid Edge · SolidWorks
Mesh BlenderOF · 3ds Max · Mudbox · Autodesk Maya · Cinema 4D( BodyPaint 3D) · Daz StudioF · Houdini · LightWave 3D · Metasequoia · MilkShape 3D · Mine-imator · MODO · Poser · SculptGL · Sculptris · SketchUp$ · 소프트이미지Χ · Source FilmmakerF · Substance 3D Painter · VUE · ZBrush · Zmodeler · 포즈 스튜디오 · Prisma 3DFM · XISMOF · VRoidBF · MikuMikuDance · Nomad SculptΜ
NURBS Alias · Autodesk Maya · 3ds Max · Rhino · 소프트이미지Χ
렌더 Arnold · Chaos Corona · Enscape · Mental RayΧ · V-Ray · Lumion · Twinmotion · 언리얼 엔진 · Keyshot · RenderMan$ · 코미Po! · 툰스푼 에디터
웹 기반 Onshape
[ 영상 ]
##
}}}||
B PC·모바일 공동 지원 · Μ 모바일 전용 · Ο 오픈 소스 · F 프리웨어 · $ 유·무료 공존/부분유료 · C 컬러 매니지먼트 시스템 · Χ 단종
{{{#!wiki style="margin: -10px -10px" <tablealign=center><tablewidth=320><tablebordercolor=#fff,#1f2023> 파일:오픈에스캐드로고.png OpenSCAD }}}
개발
서비스
Marius Kintel | Clifford Wolf
용도 CAD
최신버전 2021.01
라이선스 GPLv2
플랫폼 파일:Windows 로고.svg 파일:Windows 로고 화이트.svg | 파일:macOS 로고.svg 파일:macOS 로고 화이트.svg | 파일:Linux 로고.svg 파일:Linux 로고 화이트.svg | 파일:Freebsd_logo.png
파일:OpenBSD_Logo_-_Cartoon_Puffy_with_textual_logo_below.svg | 파일:NetBSD-logo.png
파일:홈페이지 아이콘.svg | 파일:GitHub 아이콘.svg 파일:GitHub 아이콘 화이트.svg | 파일:마스토돈(SNS) 아이콘.svg |
1. 개요2. 특징3. 다운로드

[clearfix]

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을 따라간다.

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

3. 다운로드

홈페이지에서 운영체제별로 다운로드 할 수 있다.


[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] 하위의 오브젝트의 렌더링 결과물을 저장해놓고 다음 렌더링 때 이를 활용한다

분류