메뉴 건너뛰기

A11Y

'사출'이란 무엇일까요?

지난 시간에 이야기한 것 처럼, 오늘은 사출 명령인 linear_extrude, rotate_extrude 명령에 대해 배워보겠습니다.

'사출'이라는 말이 조금 어려울 수 있지만, 원리는 아주 간단합니다. 혹시 찰흙으로 만들기 놀이를 해보셨나요? 바닥에 동그랗고 납작한 찰흙을 놓고, 그 모양 그대로 위로 쭉 잡아당기면 원기둥이 되죠. 또, 뱅글뱅글 돌아가는 물레 위에서 흙을 잡아 늘려 도자기를 만드는 모습을 상상해 보세요.

이처럼, 납작한 2차원 도형을 3차원 입체 도형으로 만드는 모든 과정을 '사출'이라고 부릅니다. OpenSCAD에는 크게 두 가지 사출 방식이 있습니다.

1. linear_extrude (선형 사출)
2D 도형을 위로 곧장 잡아 늘려 기둥 같은 모양을 만듭니다. 마치 쿠키 반죽 위에 틀을 올려놓고 꾹 눌러서, 틀 모양 그대로 입체적인 쿠키를 만들어내는 것과 같습니다.
2. rotate_extrude (회전 사출)
2D 도형을 하나의 축을 중심으로 빙글 돌려서 도넛이나 항아리 같은 모양을 만듭니다. 회전하는 물레 위에서 도자기를 빚는 원리와 똑같습니다.

1. linear_extrude() - 위로 곧게 잡아 늘리기

이 명령은 2D 도형에 높이를 부여하여 3D 입체로 만드는 가장 기본적인 사출 방식입니다.

명령어 사용법

linear_extrude 명령어 다음에 괄호 ()를 열어 높이와 같은 여러 가지 설정을 해줍니다. 그리고 중괄호 {} 안에는 우리가 늘리고 싶은 2D 도형 명령어를 넣어주면 됩니다.

주요 설정값 (파라미터)

  • height: 가장 중요한 값으로, 2D 도형을 얼마나 높이 잡아 늘릴지, 즉 Z축 방향의 길이를 정합니다.
  • center: 이 값을 true로 설정하면, 도형의 높이 중심이 원점(0, 0, 0)에 맞춰집니다. false(기본값)이면 Z=0 평면에서 위로 자라나고, true이면 Z=0 평면을 기준으로 위아래로 자라납니다.
  • twist: 젖은 수건을 짜는 것처럼 도형을 비틀면서 늘리는 기능입니다. 값은 각도를 의미하며, 예를 들어 twist = 90 이라고 하면, 도형이 90도 비틀어진 기둥이 만들어집니다.
  • scale: 위로 늘어나면서 도형의 크기를 조절합니다. scale = 0.5로 설정하면, 위로 갈수록 크기가 50%로 점점 줄어들어 뿔 모양이 됩니다.

사출을 위한 기본 2D 도형

linear_extrude를 사용하려면, 먼저 늘릴 2D 도형이 있어야겠죠? 가장 기본이 되는 square(사각형)와 circle(원)을 먼저 알아보겠습니다. 이 도형들은 XY 평면, 즉 바닥에 그려지는 납작한 도형입니다.

1.1 square() - 사각형 그리기
  • 정사각형: square(10); 처럼 숫자 하나만 넣으면 가로, 세로 길이가 10인 정사각형이 만들어집니다.
  • 직사각형: square([10, 20]); 처럼 대괄호 [] 안에 숫자 두 개를 넣으면 가로 10, 세로 20인 직사각형을 만들 수 있습니다.
  • center: square(10, center = true); 처럼 center 값을 true로 설정하면, 도형의 중심이 원점(0, 0)에 오도록 배치됩니다.
1.2 circle() - 원 그리기
  • 반지름으로 그리기: circle(r = 10); 처럼 r 값을 주면 반지름이 10인 원이 만들어집니다.
  • 지름으로 그리기: circle(d = 20); 처럼 d 값을 주면 지름이 20인 원이 만들어집니다.
  • 해상도 조절하기 ($fn): 컴퓨터는 완벽한 곡선을 그리지 못하고, 아주 짧은 직선들을 여러 개 이어 붙여 원처럼 보이게 만듭니다. 이때 사용되는 직선의 개수를 $fn(달러 기호 fn)으로 조절할 수 있습니다. $fn=6이면 육각형, $fn=100이면 매우 부드러운 원이 됩니다.

linear_extrude 예제 코드


// 예제 1: 원을 높이 10만큼 늘려 원기둥 만들기
// 가장 기본적인 형태로, 동전 여러 개를 쌓아 올린 모습을 상상해 보세요.
linear_extrude(height = 10) {
    circle(r = 5);
}

// 예제 2: 사각형을 90도 비틀면서 높이 20으로 늘리기
// translate는 다른 도형과 겹치지 않도록 옆으로 옮겨주는 역할입니다.
// 마치 꽈배기 과자 같은 모양이 만들어집니다.
translate([20, 0, 0]) {
    linear_extrude(height = 20, twist = 90) {
        square(10, center = true);
    }
}

// 예제 3: 원을 높이 20으로 늘리면서 끝부분이 뾰족해지게 만들기 (원뿔)
// 위로 올라갈수록 크기가 0.1배로 줄어들도록 scale을 설정했습니다.
translate([-20, 0, 0]) {
    linear_extrude(height = 20, scale = 0.1) {
        circle(r = 5, $fn = 50);
    }
}
                

2. rotate_extrude() - 축을 중심으로 회전시키기

이번에는 2D 도형을 빙글 돌려서 입체 도형을 만드는 rotate_extrude에 대해 알아보겠습니다.

가장 중요한 규칙: 회전시킬 2D 도형은 반드시 회전의 중심축(Z축)에서 약간 떨어져 있어야 합니다. 즉, 도형이 중심축의 한쪽 편(X>0 또는 X<0)에만 있어야 합니다. 만약 도형이 축을 가로지르거나 축에 걸쳐 있으면, 회전하면서 자기 자신과 겹쳐 모양이 깨질 수 있습니다.

명령어 사용법 및 주요 설정값

  • angle: 도형을 몇 도나 회전시킬지 정합니다. 기본값은 360으로, 한 바퀴를 완전히 돌려줍니다. angle = 180으로 하면 반만 만들어진 모양이 됩니다.
  • $fn: 회전체의 부드러움을 결정합니다. circle에서처럼, 이 값이 클수록 더 매끄러운 곡면을 가진 회전체가 만들어집니다.

rotate_extrude 예제 코드


// 예제 1: 원을 회전시켜 도넛(토러스) 만들기
// 상상해보세요: 허공에 작은 원 하나를 띄웁니다. (translate)
// 그리고 그 원을 중심축을 기준으로 360도 빙글 돌립니다.
// 그러면 가운데가 뚫린 맛있는 도넛 모양이 만들어집니다.
// 여기서 translate([15, 0, 0])가 바로 원을 중심축에서 15만큼 떨어뜨리는 핵심적인 역할을 합니다.
rotate_extrude($fn = 100) {
    translate([15, 0, 0]) {
        circle(r = 5);
    }
}

// 예제 2: 사각형을 270도만 회전시키기
// 마치 피자 한 조각이 빠진 도넛 같은 모양이 됩니다.
// 사각형을 중심축에서 10만큼 떨어뜨린 후, 270도만 회전시켰습니다.
translate([-30, 0, 0]) {
    rotate_extrude(angle = 270, $fn = 100) {
        translate([10, 0, 0]) {
            square([4, 10], center = true);
        }
    }
}
                

마무리하며

오늘은 2D 도형을 3D 입체로 만드는 두 가지 강력한 사출 명령, linear_extruderotate_extrude에 대해 배웠습니다.

  • linear_extrude는 2D 도형을 위로 쭉 늘려 기둥, 꽈배기, 뿔 같은 모양을 만들었습니다.
  • rotate_extrude는 2D 도형을 빙글 돌려 도넛, 항아리, 컵 같은 모양을 만들 수 있었습니다.
번호 제목 날짜 조회 수
23 [참고] OpenSCAD Nightly 에서 사용되는 명령어 일람 - A.I 작성 2026.04.07 9
» OpenSCAD#12. 시각장애인도 3D 디자인을 - 2D 평면을 3D 입체로 만드는 마법 - 사출(extrusion)의 이해 2026.04.07 4
21 [자료] OpenSCAD로 만든 남성과 여성 피규어 모델 file 2026.04.03 17
20 OpenSCAD#11. 시각장애인도 3D 디자인을 - 부품 단위로 생각하기, module 2026.04.03 20
19 OpenSCAD#10. 시각장애인도 3D 디자인을 - 반복의 마법, for 2026.04.01 31
18 OpenSCAD#9. 시각장애인도 3D 디자인을 - 모서리가 둥근 큐브 만들기 2026.03.31 26
17 OpenSCAD#8. 시각장애인도 3D 디자인을 - scale, 빵 만들기 2026.03.27 128
16 OpenSCAD#7. 시각장애인도 3D 디자인을 - 곡면의 이해 - 품질과 성능 2026.03.26 119
15 OpenSCAD#6. 시각장애인도 3D 디자인을 - 맥미니에 구멍 뚫기 2026.03.24 130
14 OpenSCAD#5. 시각장애인도 3D 디자인을 - 맥미니(Mac mini) 만들기 2026.03.23 201
13 OpenSCAD#4. 시각장애인도 3D 디자인을 - 미키마우스 머리 만들기 2026.03.20 151
12 [수정] OpenSCAD#3. 시각장애인도 3D 디자인을 - 공간의 이해 - 좌표, 단위, 회전 2026.03.19 206
11 OpenSCAD#2. 시각장애인도 3D 디자인을 - 설치와 실행 2026.03.18 185
10 OpenSCAD#1. 시각장애인도 3D 디자인을 - 소개편 2026.03.17 149
9 시각장애 개발자와 함께하는 아이디어 마이닝 #9. 마치며 2024.11.22 1089
8 시각장애 개발자와 함께하는 아이디어 마이닝 #8. 자바스크립트 2024.11.21 924
7 시각장애 개발자와 함께하는 아이디어 마이닝 #7. 스크립트 예시, CMD 2024.11.20 849
6 시각장애 개발자와 함께하는 아이디어 마이닝 #6. 스크립트 언어 2024.11.19 910
5 시각장애 개발자와 함께하는 아이디어 마이닝 #5. HTML 2024.11.18 905
4 시각장애 개발자와 함께하는 아이디어 마이닝 #4. 의사 코드 2024.11.14 774