특수 변수
$fn: 원이나 구의 곡면을 구성하는 면의 개수. 높을수록 부드럽습니다.$fa: 곡면의 최소 각도. 작을수록 부드럽습니다.$fs: 곡면을 이루는 최소 선분 길이. 작을수록 부드럽습니다.
2026.04.07 20:07
OpenSCAD Nightly 버전은 안정화 버전에는 없는 최신 기능들을 미리 사용해볼 수 있는 개발 버전입니다. 따라서 기존 명령어의 기능이 확장되거나 새로운 명령어가 추가될 수 있습니다. 이 문서는 Nightly 버전을 기준으로 주요 명령어들을 카테고리별로 사용법과 함께 정리한 것입니다.
참고: Nightly 버전의 기능은 변경되거나 제거될 수 있습니다.
2차원 평면 도형을 생성하는 명령어들입니다.
| 명령어 | 설명 | 사용법 및 예제 |
|---|---|---|
square() |
정사각형 또는 직사각형을 생성합니다. |
square(size, center);square([width, height], center);예제:
|
circle() |
원을 생성합니다. $fn 변수로 해상도를 조절합니다. |
circle(r); 또는 circle(d);예제:
|
polygon() |
점(point)들의 좌표를 연결하여 다각형을 생성합니다. |
polygon(points, paths, convexity);예제:
|
text() |
문자열을 2D 도형으로 생성합니다. |
text(text, size, font, halign, valign);예제:
|
3차원 입체 도형을 생성하는 명령어들입니다.
| 명령어 | 설명 | 사용법 및 예제 |
|---|---|---|
cube() |
정육면체 또는 직육면체를 생성합니다. |
cube(size, center);cube([width, depth, height], center);예제:
|
sphere() |
구를 생성합니다. $fn, $fa, $fs로 해상도를 조절합니다. |
sphere(r); 또는 sphere(d);예제:
|
cylinder() |
원기둥을 생성합니다. |
cylinder(h, r, center);cylinder(h, r1, r2, center);예제:
|
polyhedron() |
점(points)과 면(faces)을 정의하여 다면체를 생성합니다. |
polyhedron(points, faces, convexity);예제:
|
생성된 도형의 위치, 회전, 크기 등을 변경합니다.
| 명령어 | 설명 | 사용법 및 예제 |
|---|---|---|
translate() |
지정된 벡터만큼 객체를 이동시킵니다. |
translate([x, y, z]) { ... }예제:
|
rotate() |
지정된 축을 기준으로 객체를 회전시킵니다. |
rotate([x, y, z]) { ... }rotate(a, [x, y, z]) { ... }예제:
|
scale() |
지정된 비율로 객체의 크기를 조절합니다. |
scale([x, y, z]) { ... }예제:
|
resize() |
지정된 크기로 객체의 크기를 강제로 맞춥니다. auto를 사용하여 비율을 유지할 수 있습니다. |
resize([new_x, new_y, new_z], auto=false) { ... }예제:
|
mirror() |
지정된 평면을 기준으로 객체를 반사 복사합니다. |
mirror([x, y, z]) { ... }예제:
|
color() |
객체의 색상을 지정합니다. F5(미리보기)에서만 적용됩니다. |
color("colorname") { ... }color([r, g, b], alpha) { ... }예제:
|
multmatrix() |
변환 행렬을 직접 적용하여 이동, 회전, 크기 조절 등을 한 번에 수행합니다. |
multmatrix(m) { ... }예제:
|
여러 개의 도형을 조합하여 새로운 도형을 만듭니다.
| 명령어 | 설명 | 사용법 및 예제 |
|---|---|---|
union() |
모든 자식 객체들을 하나로 합칩니다. |
union() { ... }예제:
|
difference() |
첫 번째 자식 객체에서 나머지 자식 객체들을 뺍니다. |
difference() { ... }예제:
|
intersection() |
모든 자식 객체들이 겹치는 부분만 남깁니다. |
intersection() { ... }예제:
|
2D 도형을 3D로 만드는 명령어입니다.
| 명령어 | 설명 | 사용법 및 예제 |
|---|---|---|
linear_extrude() |
2D 도형을 선형으로 돌출시켜 3D 객체를 만듭니다. |
linear_extrude(height, center, convexity, twist, slices, scale);예제:
|
rotate_extrude() |
2D 도형을 Z축을 중심으로 회전시켜 3D 객체를 만듭니다. |
rotate_extrude(angle, convexity, $fn);예제:
|
| 명령어 | 설명 | 사용법 및 예제 |
|---|---|---|
hull() |
모든 자식 객체들을 감싸는 볼록 껍질을 생성합니다. |
hull() { ... }예제:
|
minkowski() |
한 객체의 모든 점에 다른 객체를 더하여 새로운 객체를 만듭니다. 모서리를 둥글게 처리할 때 유용합니다. |
minkowski() { ... }예제:
|
module / function |
코드를 재사용하기 위한 모듈(도형 생성)과 함수(값 반환)를 정의합니다. |
module my_object(size) { ... }function my_calc(val) = val * 2 + 1;예제:
|
for / if |
반복문과 조건문을 사용하여 프로그래밍적으로 모델링합니다. |
for (i = [start:step:end]) { ... }if (condition) { ... } else { ... }예제:
|
Nightly 버전에서 특히 주목할 만한 새로운 명령어와 기능들입니다.
| 명령어 | 설명 | 사용법 및 예제 |
|---|---|---|
offset() |
(강력한 신기능) 2D 도형의 외곽선을 안쪽 또는 바깥쪽으로 확장/축소합니다. |
offset(r|delta, chamfer, $fn);예제 1: 확장
예제 2: 축소 (구멍 뚫기)
|
sweep() |
(강력한 신기능) 2D 프로파일(단면)을 지정된 경로(path)를 따라 이동시켜 3D 객체를 생성합니다. linear_extrude와 rotate_extrude를 일반화한 버전입니다. |
sweep(shape, path, convexity);예제:
|
let() / assign() |
변수의 유효 범위(scope)를 더 명확하게 제어합니다. let은 블록 내에서만 유효한 지역 변수를 만들고, assign은 블록 밖의 변수 값을 변경합니다. |
let(a=5, b=10) { ... }assign(a=5, b=10) { ... }예제:
|
| 리스트 컴프리헨션 | for 루프와 유사하지만, 리스트(배열)를 생성하는 데 특화된 간결한 문법입니다. 점들의 좌표를 생성할 때 매우 유용합니다. |
[ for (i = range) expression ]예제:
|
| 렌더링 제어자 | 디버깅 및 모델링 과정을 돕는 특수 문자입니다. |
%: 자식 객체를 투명하게 렌더링 (불리언 연산에 영향 없음)#: 자식 객체를 빨간색으로 하이라이트!: 자식 객체만 렌더링*: 자식 객체를 비활성화 (렌더링 안 함)예제:
|
$fn: 원이나 구의 곡면을 구성하는 면의 개수. 높을수록 부드럽습니다.$fa: 곡면의 최소 각도. 작을수록 부드럽습니다.$fs: 곡면을 이루는 최소 선분 길이. 작을수록 부드럽습니다.sin(), cos(), tan(), sqrt(), pow(), norm(), cross() 등 대부분의 수학 함수를 지원합니다.import("file.stl" | "file.dxf"): 외부 3D/2D 파일을 불러옵니다.export("file.stl"): (Nightly 기능) 스크립트 내에서 특정 부분만 파일로 내보낼 수 있습니다.