메뉴 건너뛰기

A11Y

OpenSCAD로 미키마우스 머리 모양 만들기

이번 시간에는 OpenSCAD를 사용하여, 우리에게 매우 친숙한 ‘미키마우스’의 머리 모양을 만들어 보겠습니다.

이 모델은 세 개의 구(sphere)를 조합하여 완성됩니다. 가장 큰 구는 얼굴이 되고, 두 개의 작은 구는 양쪽 귀가 될 것입니다. 코드를 작성하기에 앞서, 우리가 사용할 세 가지 핵심 기능에 대해 먼저 알아보겠습니다.

핵심 기능 소개

  1. sphere(): 구 만들기

    sphere는 완벽한 구 형태를 만드는 명령어입니다. 구의 크기는 r을 사용하여 반지름(중심에서 가장자리까지의 거리)으로 지정하거나, d를 사용하여 지름(중심을 통과하는 전체 길이)으로 지정할 수 있습니다. 예를 들어 sphere(r=10);은 반지름이 10인 구를 만듭니다.

  2. translate(): 위치 이동하기

    translate는 만들어진 객체를 원하는 위치로 이동시키는 명령어입니다. 3차원 공간의 좌표인 [x, y, z] 값을 사용하여 이동할 거리를 지정합니다. 우리는 이 명령어를 사용해 귀를 얼굴의 적절한 위치로 옮길 것입니다.

  3. union(): 하나로 합치기

    union은 여러 개의 객체를 하나의 단단한 덩어리로 합쳐주는 매우 중요한 명령어입니다. 이 명령어를 사용하지 않으면 세 개의 구가 단순히 겹쳐져 있을 뿐이지만, union으로 묶어주면 마치 찰흙을 합치듯 하나의 완전한 객체가 됩니다. 3D 프린팅을 위해서는 모델이 반드시 하나의 객체여야 합니다.

미키마우스 머리 만들기 코드

아래 코드는 미키마우스 머리를 만드는 전체 코드입니다. 각 부분이 어떤 역할을 하는지 차근차근 설명해 드리겠습니다.

코드의 시작 <<<

// 모델의 크기와 모양을 쉽게 조절하기 위한 변수 설정
head_radius = 30;  // 머리의 반지름
ear_radius = 18;   // 귀의 반지름
ear_distance = 28; // 머리 중심에서 귀 중심까지의 거리

// $fn은 구의 표면을 얼마나 부드럽게 만들지 결정하는 값입니다.
// 숫자가 클수록 더 매끄러운 구가 만들어집니다.
$fn = 100;

// union 명령어로 얼굴과 두 귀를 하나의 객체로 합칩니다.
union() {
    // 1. 머리 만들기
    // 3차원 공간의 원점(0, 0, 0)에 반지름이 head_radius인 큰 구를 만듭니다.
    sphere(r = head_radius);

    // 2. 오른쪽 귀 만들기
    // 먼저 translate를 이용해 귀가 놓일 위치로 좌표를 이동합니다.
    // x축으로 ear_distance만큼 오른쪽으로, z축으로 ear_distance만큼 위로 이동합니다.
    translate([ear_distance, 0, ear_distance]) {
        // 이동된 위치에 반지름이 ear_radius인 작은 구(귀)를 만듭니다.
        sphere(r = ear_radius);
    }

    // 3. 왼쪽 귀 만들기
    // 이번에는 왼쪽으로 이동하기 위해 x축 값을 음수로 지정합니다.
    // x축으로 -ear_distance만큼 왼쪽으로, z축으로 ear_distance만큼 위로 이동합니다.
    translate([-ear_distance, 0, ear_distance]) {
        // 이동된 위치에 또 다른 작은 구(귀)를 만듭니다.
        sphere(r = ear_radius);
    }
}

>>> 코드의 끝

코드 구조 해설

  1. 변수 설정: 코드 맨 위에서 head_radius, ear_radius, ear_distance라는 이름으로 숫자 값을 미리 정해두었습니다. 이렇게 하면 나중에 “귀를 좀 더 크게 만들고 싶다”거나 “귀 사이의 거리를 넓히고 싶다”고 생각될 때, 이 숫자들만 바꾸면 손쉽게 모델의 전체적인 모양을 조절할 수 있습니다.

  2. 구조의 시작, union(): union()과 함께 열리는 중괄호 {는 “이제부터 만드는 모든 것을 하나로 합치겠다”는 선언과 같습니다.

  3. 중심이 되는 머리: union() 안에서 가장 먼저, 우리는 sphere(r = head_radius);를 통해 3차원 공간의 정중앙에 큰 구를 하나 만듭니다. 이것이 미키마우스의 얼굴이 됩니다.

  4. 귀의 위치 선정과 생성:

    • 오른쪽 귀: translate를 사용해 오른쪽 위로 자리를 옮깁니다. [28, 0, 28] 좌표는 ‘오른쪽으로 28, 위로 28’만큼 이동하라는 뜻입니다. 그리고 바로 그 자리에 작은 구를 만들어 오른쪽 귀를 완성합니다.
    • 왼쪽 귀: 마찬가지로 translate를 사용하되, 이번에는 x좌표를 음수인 -28로 지정하여 왼쪽으로 이동시킵니다. [-28, 0, 28] 좌표는 ‘왼쪽으로 28, 위로 28’만큼 이동하라는 뜻입니다. 그곳에 왼쪽 귀를 만듭니다.

결과 확인하기

이제 이 코드를 OpenSCAD 편집기에 붙여넣고 F6 키를 눌러 렌더링을 실행해 보세요.

잠시 후 ‘디링~’하는 기분 좋은 효과음이 들리면, 하나의 단단한 객체로 합쳐진 미키마우스 머리 모양의 3D 모델이 성공적으로 생성된 것입니다. 이 모델은 중앙에 큰 구가 있고, 그 구의 좌측 상단과 우측 상단에 더 작은 구 두 개가 단단히 붙어 있는 형태를 하고 있습니다.

번호 제목 날짜 조회 수
36 OpenSCAD#9. 시각장애인도 3D 디자인을 - 모서리가 둥근 큐브 만들기 new 2026.03.31 8
35 OpenSCAD#8. 시각장애인도 3D 디자인을 - scale, 빵 만들기 2026.03.27 19
34 OpenSCAD#7. 시각장애인도 3D 디자인을 - 곡면의 이해 - 품질과 성능 2026.03.26 25
33 OpenSCAD#6. 시각장애인도 3D 디자인을 - 맥미니에 구멍 뚫기 2026.03.24 34
32 OpenSCAD#5. 시각장애인도 3D 디자인을 - 맥미니(Mac mini) 만들기 2026.03.23 55
» OpenSCAD#4. 시각장애인도 3D 디자인을 - 미키마우스 머리 만들기 2026.03.20 59
30 [수정] OpenSCAD#3. 시각장애인도 3D 디자인을 - 공간의 이해 - 좌표, 단위, 회전 2026.03.19 74
29 OpenSCAD#2. 시각장애인도 3D 디자인을 - 설치와 실행 2026.03.18 77
28 OpenSCAD#1. 시각장애인도 3D 디자인을 - 소개편 2026.03.17 67
27 센스리더 어센드 멀티라인 점자 출력 기능 2026.02.20 175
26 센스리더 가상커서 해제시 포커스 정보에 관하여 2026.02.09 225
25 센스리더 즐겨찾기 도구의 A.I. 프롬프트 사용 안내 2026.02.03 204
24 센스리더 도구에 대한 간략한 소개 2026.01.27 292
23 alt="" 접근성을 더욱 위배할 수 있다. 2025.05.14 810
22 시각장애 개발자와 함께하는 아이디어 마이닝 #9. 마치며 2024.11.22 1008
21 시각장애 개발자와 함께하는 아이디어 마이닝 #8. 자바스크립트 2024.11.21 853
20 시각장애 개발자와 함께하는 아이디어 마이닝 #7. 스크립트 예시, CMD 2024.11.20 775
19 시각장애 개발자와 함께하는 아이디어 마이닝 #6. 스크립트 언어 2024.11.19 819
18 시각장애 개발자와 함께하는 아이디어 마이닝 #5. HTML 2024.11.18 797
17 시각장애 개발자와 함께하는 아이디어 마이닝 #4. 의사 코드 2024.11.14 692