메뉴 건너뛰기

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 도형을 빙글 돌려 도넛, 항아리, 컵 같은 모양을 만들 수 있었습니다.
번호 제목 날짜 조회 수
41 [참고] OpenSCAD Nightly 에서 사용되는 명령어 일람 - A.I 작성 new 2026.04.07 7
» OpenSCAD#12. 시각장애인도 3D 디자인을 - 2D 평면을 3D 입체로 만드는 마법 - 사출(extrusion)의 이해 new 2026.04.07 4
39 [자료] OpenSCAD로 만든 남성과 여성 피규어 모델 file 2026.04.03 14
38 OpenSCAD#11. 시각장애인도 3D 디자인을 - 부품 단위로 생각하기, module 2026.04.03 16
37 OpenSCAD#10. 시각장애인도 3D 디자인을 - 반복의 마법, for 2026.04.01 27
36 OpenSCAD#9. 시각장애인도 3D 디자인을 - 모서리가 둥근 큐브 만들기 2026.03.31 25
35 OpenSCAD#8. 시각장애인도 3D 디자인을 - scale, 빵 만들기 2026.03.27 109
34 OpenSCAD#7. 시각장애인도 3D 디자인을 - 곡면의 이해 - 품질과 성능 2026.03.26 114
33 OpenSCAD#6. 시각장애인도 3D 디자인을 - 맥미니에 구멍 뚫기 2026.03.24 118
32 OpenSCAD#5. 시각장애인도 3D 디자인을 - 맥미니(Mac mini) 만들기 2026.03.23 165
31 OpenSCAD#4. 시각장애인도 3D 디자인을 - 미키마우스 머리 만들기 2026.03.20 138
30 [수정] OpenSCAD#3. 시각장애인도 3D 디자인을 - 공간의 이해 - 좌표, 단위, 회전 2026.03.19 188
29 OpenSCAD#2. 시각장애인도 3D 디자인을 - 설치와 실행 2026.03.18 171
28 OpenSCAD#1. 시각장애인도 3D 디자인을 - 소개편 2026.03.17 130
27 센스리더 어센드 멀티라인 점자 출력 기능 2026.02.20 260
26 센스리더 가상커서 해제시 포커스 정보에 관하여 2026.02.09 372
25 센스리더 즐겨찾기 도구의 A.I. 프롬프트 사용 안내 2026.02.03 297
24 센스리더 도구에 대한 간략한 소개 2026.01.27 364
23 alt="" 접근성을 더욱 위배할 수 있다. 2025.05.14 911
22 시각장애 개발자와 함께하는 아이디어 마이닝 #9. 마치며 2024.11.22 1082