처리중입니다. 잠시만 기다려주세요.
TTJ 코딩클래스
정규반 단과 자료실 테크 뉴스 코딩 퀴즈
테크 뉴스
Hacker News 2026.03.31 24

코드로 3D 모델링을? Python CAD 라이브러리 Build123d 살펴보기

Hacker News 원문 보기
코드로 3D 모델링을? Python CAD 라이브러리 Build123d 살펴보기

마우스 대신 코드로 CAD를

3D 모델링이라고 하면 보통 SolidWorks, Fusion 360, FreeCAD 같은 GUI 프로그램에서 마우스로 클릭하고 드래그하는 걸 떠올리잖아요. 그런데 이걸 Python 코드로 할 수 있다면 어떨까요? Build123d는 바로 그런 라이브러리예요. Python 스크립트로 3D 모델을 만들고, 수정하고, 내보낼 수 있게 해주는 파라메트릭 CAD 라이브러리거든요.

"파라메트릭(parametric)"이라는 게 뭐냐면, 모델의 치수나 형상을 변수(parameter)로 정의해서, 나중에 그 값만 바꾸면 전체 모델이 자동으로 업데이트되는 방식이에요. 예를 들어 "박스 높이 = 50mm"로 정의해뒀다가, 나중에 60mm로 바꾸면 그 박스를 기반으로 한 모든 형상이 알아서 바뀌는 거죠. GUI에서는 이런 작업이 번거로운데, 코드로 하면 변수 하나 바꾸면 끝이에요.

Build123d의 핵심 특징

Build123d는 OpenCascade라는 산업용 CAD 커널 위에 만들어졌어요. OpenCascade가 뭐냐면, 상용 CAD 소프트웨어에도 쓰이는 오픈소스 3D 모델링 엔진이에요. FreeCAD의 핵심 엔진이기도 하죠. 즉, 취미 프로젝트 수준이 아니라 산업 표준급 정밀도를 가진 기반 위에서 동작한다는 뜻이에요.

Build123d의 코드 스타일은 꽤 직관적이에요. 예를 들어 간단한 상자에 구멍을 뚫는 코드를 생각해보면, Python의 컨텍스트 매니저(with문)를 활용해서 마치 "이 평면 위에서 사각형을 그리고, 그걸 위로 밀어올려서 3D로 만들고, 여기에 원통형 구멍을 뚫어줘"라고 자연어로 말하는 것처럼 읽히는 코드를 작성할 수 있어요.

Build123d가 제공하는 주요 기능을 살펴보면, 먼저 세 가지 모델링 모드가 있어요. 1D(선/곡선), 2D(면), 3D(솔리드)를 자유롭게 넘나들 수 있고요. Builder 패턴과 Algebra 패턴 두 가지 API 스타일을 지원해요. Builder 패턴은 with문을 활용해서 단계적으로 형상을 쌓아가는 방식이고, Algebra 패턴은 수학적 연산자(+, -, &)로 형상을 합치거나 빼는 방식이에요. 취향에 따라 고르면 돼요.

또한 STEP, STL, SVG, DXF 등 다양한 포맷으로 내보내기가 가능하고, 3D 프린터용 STL은 물론이고 CNC 가공용 STEP 파일도 만들 수 있어요. Joint(조인트) 시스템도 있어서 여러 부품을 조립하는 어셈블리 모델링도 가능하고요.

기존 대안과의 비교

Python으로 3D 모델링을 한다고 하면 가장 먼저 떠오르는 게 OpenSCAD와 CadQuery일 거예요.

OpenSCAD는 자체 스크립트 언어로 3D 모델을 만드는 도구인데, 언어 자체가 범용 프로그래밍 언어가 아니다 보니 복잡한 로직(조건문, 반복문, 외부 데이터 연동 등)을 구현하기가 불편해요. 반면 Build123d는 Python이니까 NumPy로 수학 계산을 하고, pandas로 데이터를 읽어서 모델 파라미터에 반영하고, 심지어 API로 치수 데이터를 받아와서 자동으로 모델을 생성하는 것까지 자연스럽게 가능하죠.

CadQuery는 Build123d와 같은 OpenCascade 기반의 Python CAD 라이브러리예요. 사실 Build123d의 개발자(gumyr)가 CadQuery 커뮤니티에서 활동하다가 "더 나은 API를 만들 수 있다"고 생각해서 새로 만든 프로젝트거든요. CadQuery의 체이닝(chaining) 방식 API가 복잡한 모델에서 가독성이 떨어진다는 문제를 Build123d의 컨텍스트 매니저 기반 API로 개선한 거예요. 다만 CadQuery가 더 성숙한 생태계와 더 많은 예제를 가지고 있으므로, 프로젝트 상황에 따라 선택하면 돼요.

한국 개발자에게 주는 시사점

"개발자가 왜 CAD를?"이라고 생각할 수 있는데, 생각보다 활용처가 많아요.

첫째, 3D 프린팅이에요. 취미로 3D 프린터를 쓰는 개발자라면, Thingiverse에서 남이 만든 STL 다운받아 쓰다가 "이 부분만 조금 바꾸고 싶은데" 하는 순간이 올 거예요. Build123d를 쓰면 처음부터 코드로 모델을 만들 수 있으니, 파라미터만 바꿔서 원하는 대로 커스터마이징할 수 있어요.

둘째, 하드웨어 프로토타이핑이에요. IoT 프로젝트나 로보틱스 작업을 하는 분들은 케이스나 브래킷 같은 기구물 설계가 필요한데, SolidWorks 라이선스 없이 Python으로 해결할 수 있어요.

셋째, 자동화예요. 이게 진짜 강력한 포인트인데, 예를 들어 가구 제조업체가 고객 주문에 따라 수백 가지 변형 모델을 만들어야 한다면, GUI로 하나하나 만드는 건 비현실적이잖아요. Python 스크립트로 파라미터만 바꿔가며 자동 생성하면 되거든요.

넷째, 버전 관리예요. 코드로 모델을 정의하면 Git으로 변경 이력을 추적할 수 있어요. 바이너리 CAD 파일은 diff가 안 되지만, Python 코드는 어떤 치수가 언제 왜 바뀌었는지 커밋 로그로 볼 수 있죠.

마무리

Build123d는 "코드가 곧 설계도"라는 철학을 3D CAD 영역에 적용한 프로젝트예요. 프로그래밍에 익숙한 사람이라면 GUI보다 오히려 코드로 모델링하는 게 더 자연스러울 수 있어요. 특히 반복적이고 파라메트릭한 설계가 필요한 상황이라면요. 혹시 3D 프린팅을 하시거나 하드웨어 프로젝트를 진행 중이라면, 이번 주말에 Build123d로 간단한 모델 하나 만들어보는 건 어떨까요?


🔗 출처: Hacker News

이 뉴스가 유용했나요?

이 기술을 직접 배워보세요

파이썬으로 자동화를 시작해보세요

파이썬 기초부터 자동화까지 실전 강의.

파이썬 강의 보기

"비전공 직장인인데 반년 만에 수익 파이프라인을 여러 개 만들었습니다"

실제 수강생 후기
  • 비전공자도 6개월이면 첫 수익
  • 20년 경력 개발자 직강
  • 자동화 프로그램 + 소스코드 제공

매일 AI·개발 뉴스를 받아보세요

주요 테크 뉴스를 매일 아침 이메일로 전해드립니다.

스팸 없이, 언제든 구독 취소 가능합니다.