[기획] 3D 프린팅을 위한 오픈소스 소프트웨어
3D 프린팅을 위한 오픈소스 소프트웨어
- Open UP -
3D프린팅은 1980년대에 처음 소개될 때 쾌속 조형(Rapid prototyping)이라는 시제품 제작 기법 중 하나로 불리다가, 특허가 만료되면서 오픈소스 3D프린터가 생겨나 많은 자작 3D프린터가 만들어졌다. 그리고 그 이야기가 매스컴을 타게 되면서 3D프린팅이라는 좀 더 대중적인 이름으로 불리게 되었고, 3D프린터 시장도 더불어 비약적으로 성장하게 되었다.
3D 프린팅이 부품을 설계하고 생산할 수 있는 플랫폼으로 발전함에 따라 무료로 사용할 수 있는 오픈소스 소프트웨어 및 3D 디자인 툴이 급격하게 증가하였다. 이와 같은 장점을 활용할 수 있는 오픈소스 소프트웨어들을 알아보기 전에 3D프린팅의 4가지 과정을 살펴보고 단계별로 사용되는 주요 오픈소스 소프트웨어들을 소개한다.
3D 프린팅을 위해서는 모델링, STL 편집, G-code 변환(슬라이서), 3D 프린터 호스팅 순으로 4가지 과정이 필요하다.
3D프린팅을 위한 4가지 과정의 주요 오픈소스 소프트웨어 소개
3D 프린팅을 하기 위해서 우선, 3D 모델이 있어야 한다. 이 단계에서 3D 모델링 소프트웨어, 3D 설계 소프트웨어 또는 3D CAD 소프트웨어가 활용된다. 이를 활용하여 소형 부품에서 전체 비행기에 이르기까지 거의 모든 물체의 3D 모델을 생성할 수 있다.
3D 모델을 설계할 때 가장 일반적인 파일 형식은 .STL이므로 사용자는 대부분 이 형식을 사용하여 작업하게 된다. 파일이 완성된 후, 프린팅할 준비가 되기 전에 편집하거나 복구하기 위해서는 .STL 파일 보기 및 편집 소프트웨어가 필요하다. 이를 통해 3D 모델의 보기, 변경 또는 수정 수준을 한 단계 높일 수 있다.
STL 편집을 마쳤다면, 다음 단계는 파일을 G-code로 변환하는 것이다. 이 단계에서는 슬라이서 소프트웨어를 사용해야 한다. 슬라이서는 물체를 수평층으로 자른 다음 프린터에 명령을 내려 3D 모델을 3D 프린터가 인식하고 처리할 수 있는 것으로 변환한다. 프린트물을 어떤 방향으로 출력할지, 노즐 온도는 몇 도로 할 것인지, 프린팅 속도는 어느 정도로 할 것인지 등을 지정하는 역할 또한 슬라이서 소프트웨어가 한다.
마지막 단계로는 슬라이서가 변환한 G-code 명령을 3D 프린터 호스트가 3D 프린터로 전송하고 컴퓨터와 잘 통신하는지 확인한다. 진행하면서 설정을 변경해야 하는 경우, 3D 프린터 호스트가 프린팅 프로세스를 제어하는 데 도움을 줄 수 있다.
위의 4가지 과정에서 활용 가능한 소프트웨어는 많지만, 그중 주요 오픈소스 소프트웨어들을 소개한다.
1. Blender(모델링 소프트웨어)
기능이 다양한 오픈소스 소프트웨어인 Blender는 3D 모델링뿐만 아니라 애니메이션, 영상 편집, 모션 추적 등을 포함한 3D 관련 영역에서 모두 활용이 가능하다. 다른 3D 소프트웨어와는 달리 Youtube에 양질의 무료 강의가 많은 편이기 때문에 접근성이 좋다. 또한 게임 엔진이 내장되어 있어, 게임 제작에 필요한 파이썬 API, 로직, 물리 엔진을 제공해 OpenGL 기반의 3D 게임을 만들 수 있으며, 게임 엔진은 지속적으로 품질 개선을 하는 중이다.
윈도우, 리눅스 등 6가지 OS버전으로 제공된다. 블렌더의 인터페이스는 그래픽 라이브러리인 OpenGL 기반으로 제작되어, 사용자의 취향이나 활용 방식에 따라 레이아웃을 수정하고 저장할 수 있다. 이로 인해 빠르고 효율적인 작업을 할 수 있다.
Blender는 한국어를 포함해 많은 언어를 지원하고 있다. 단순 언어 지원뿐만 아니라 오브젝트 이름도 한글로 지정할 수 있다.
지원하는 모델링 기술로는 폴리곤(Polygon), 섭디비전(Subdivision), 넙스(Nurbs) 모델링과 지브러쉬(Z-Brush)와 같은 스컬핑(Sculpting)등 다양하다. 스컬핑은 3D 가상 공간에 점토를 빚듯이 조각하여 모델링 하는 기술로 최근 각광 받고 있는 모델링 방식 중 하나이다. 스컬핑 모드와 폴리곤 모드 전환이 자유로워 작업을 빠르게 진행할 수 있다.
Blender는 다양한 재질(Material)를 준비해 두고 있으며 OSL(Open Shading Language) 그래픽 라이브러리를 지원한다. 이러한 작업은 노드 컴포지팅(Node Compositing)을 통해 이루어진다. 특정한 속성을 가진 상자를 일컫는 ‘노드Node’들의 연결을 통해 결과물을 내는 방식으로 직관적이고 편리하다.
기본 렌더러인 블렌더 렌더(Blender Render)와 GI(Global illumination) 기술이 적용된 사이클스(Cycles) 렌더러를 탑재하고 있다. 기존의 렌더링은 전적으로 CPU를 사용해 작업 했다면 사이클스 렌더러의 경우 GPGPU를 이용해 CPU보다 몇 배 빠른 속도를 보여준다. 훌륭한 내부 렌더러 이외의 대부분의 유/무료 외부 렌더러도 이용 가능하기 때문에 선택의 폭이 넓다.
*GPGPU(General-Purpose computing on Graphics Processing Units, GPU 상의 범용 계산)는 일반적으로 컴퓨터 그래픽스를 위한 계산만 맡았던 그래픽 처리 장치(GPU)를, 전통적으로 중앙 처리 장치(CPU)가 맡았던 응용 프로그램들의 계산에 사용하는 기술
2. MeshLab(STL 편집 소프트웨어)
MeshLab은 3D 개발 전문가가 사용하는 오픈소스 3D Mesh 처리 응용 프로그램으로, 3D Mesh를 편집 및 가공 가능한 소프트웨어이다. Mesh를 편집(editing), 정리(cleaning), 복구(healing), 검사(inspecting), 렌더링(rendering) 및 변환하기 위한(converting) 도구 모음을 제공한다. 주로 3D 프로젝트에서 구조화되지 않은 3D 삼각 Mesh를 처리하고 편집하는 것에 사용된다. 이 소프트웨어는 GNU General Public License 하에서 자유롭게 사용할 수 있다.
MeshLab을 사용하면 복잡한 3D Mesh 파일을 누구나 쉽게 생성, 조정 및 조작할 수 있다. 복잡한 Mesh를 다듬어야 하거나 새 개체에 간단한 세부 사항을 추가해야 하는 경우 필요한 기능 및 고급 UV 언래핑, 가장자리 축소 및 삼각형 분할, 광범위한 텍스처 매핑 기능 등을 지원한다. 또한 STL 파일을 다양한 형식으로 내보낼 수 있도록 다양한 내보내기 옵션을 제공한다.
MeshLab의 시각화 기능(데코레이터 및 셰이더 포함)은 3D 모델의 고유한 특성을 그래픽으로 표시하는 데 도움이 될 수 있다. 카메라 투시도/정형 보기 매개변수를 제어하고 미리 정의된 표준 보기를 사용할 수 있다. 또한 설문 조사에 사용하는 그래픽 문서를 만드는 데 매우 유용한 고해상도 스크린샷 기능도 제공한다.
3D 모델을 처리할 때 일반적으로 필요한 것은 형상의 복잡성을 줄여 모양은 같지만 삼각형(또는 점)이 적은 형상을 만드는 것인데, MeshLab은 삼각형 표면을 단순화하는 다양한 방법을 제공하며, 기하학적 세부 사항 및 텍스처 매핑을 보존하거나 포인트 클라우드의 포인트 수를 선택적으로 줄일 수 있다. 또한 다양한 세분화 체계, 리메시 및 리샘플링 필터를 제공하여 3D 모델의 기하학적 복잡성을 증가시키거나 점 분포 및 삼각 측량 품질을 최적화한다.
Visualization and Presentation
출처: MeshLab
3. Cura(슬라이서 소프트웨어)
네덜란드의 FDM 프린터 회사인 얼티메이커 (Ultimaker)에서 개발한 소프트웨어로, 오랫동안 개발된 프로그램이기 때문에 다양한 프린터들과 소재들에 대한 설정값을 제공하고 있다. 초보자들을 위한 기본 설정값뿐만 아니라 중급자 및 고급자들을 위한 400가지 이상의 설정을 제공하고 있어, 세부 조정을 통해 다양한 방법으로 3D 프린터의 성능을 실험해 볼 수 있다. 또한 일반 사용자들이 개발한 추가기능을 플러그인 형태로 설치할 수 있으며, Cura는 GNU Affero General Public License(AGPL) v3.0 라이선스 하에 사용할 수 있다.
SolidWorks, Siemens NX, Autodesk Inventor 및 기타 CAD 시스템과의 호환을 위한 플러그인이 있으며, 호환되는 파일 형식으로는 STL, OBJ, X3D, JPG, GIF 등으로 다양하다. 활성화된 후처리 스크립트의 수가 해당 아이콘 위에 배지 알림으로 표시되어 후처리 플러그인의 사용 편의성을 향상시켰다. 툴팁은 활성화된 스크립트에 대한 추가 정보를 제공하므로 빠르고 쉽게 검사 할 수 있다.
각 레이어의 모든 구멍에 오프셋을 적용하여 수평 확장에 대응하기 위해 구멍을 수동으로 확대 또는 축소할 수 있는 설정 또한 제공한다.
선 종류가 선택된 미리보기 창에서 지지 재료를 투명하게 렌더링하는 기능도 추가되었다.
Cura는 15개 언어를 지원하며, 프린트물의 색상 정보를 인코딩할 수 있는 .X3D를 비롯한 다양한 파일 형식을 지원한다. 덧붙여, 맞춤형 스크립트를 통해 프로세스의 모든 단계에서 프린트물을 일시 중지할 수 있는 기능을 제공한다.
Cura 작업 화면
출처: https://blog.desdelinux.net/
4. OctoPrint(3D프린터 호스트 소프트웨어)
OctoPrint는 GNU Affero General Public License(AGPL)에 따라 출시된 무료 오픈 소스 소프트웨어다. 프린터 및 인쇄 작업의 모든 과정을 제어하고 모니터링할 수 있는 3D 프린터용 웹 인터페이스이며, Rasberry Pi 또는 컴퓨터에서 실행된다.
대개의 3D 프린터 사용자들은 컴퓨터에서 3D 출력 파일을 만들고, 그 파일을 SD카드에 넣은 뒤, SD 카드를 멀리 떨어져 있는 3D 프린터로 가져가서 3D 프린터의 터치 스크린이나 버튼들로 파일을 탐색하여 파일을 선택 후, 출력하는 과정을 거치고 있다. 이 과정을 일반 프린터 출력처럼, 컴퓨터에서 3D 출력 파일을 만든 후 출력 버튼 한 번 누르는 것으로 대체해주는 소프트웨어가 OctoPrint이다.
별도 설치가 필요한 플러그인에서 나타내주는 추가 정보들로는 레이어 진행 상황(현재 출력 레이어/전체 레이어), 예상 출력 비용, 예상 출력 완료 시각 등이 있다. 또한 타임랩스 영상을 저장할 수 있도록 출력 과정을 설계해주는 플러그인도 있다. 덧붙여,
핸드폰으로 프린터를 제어할 수 있도록 앱까지 출시가 되었다.
OctoPrint를 활용하면 3D 프린터에 내장된 웹캠 피드에 액세스하여 프린트물을 어떻게 생성하는지 원격으로 확인할 수 있고, 노즐위치, 온도, 모터, 팬을 원격 모니터링뿐만 아니라 제어할 수 있다.
OctoPrint를 통한 진행 상황 모니터링 화면
출처: OctoPrint
이와 같이 3D프린팅을 위한 4가지 과정의 주요 오픈소스 소프트웨어를 알아보았다.현재 다양한 3D프린터 모델링 소프트웨어가 존재하고 각각의 특성에 따라 다양한 분야에서 사용되고 있다. 사용자가 만들고자 하는 제품과 여건, 선호도에 따라 적합한 소프트웨어는 달라질 것이며 3D모델링을 시작하기 전에 이러한 소프트웨어의 특징과 STL 파일에 대한 정보를 숙지한다면 3D모델링이 더욱 수월해질 것이다.
※ 참고자료
1) https://m.blog.naver.com/PostView.naver?isHttpsRedirect=true&blogId=seoulworkshop&logNo=221260114762
2) https://preview.kstudy.com/W_files/kiss5/2s901060_pv.pdf
3) https://www.artec3d.com/ko/learning-center/best-3d-printing-software
4) https://openmicrolab.com/3d-%ED%94%84%EB%A6%B0%ED%8C%85%EC%9A%A9-%EC%98%A4%ED%94%88%EC%86%8C%EC%8A%A4-%EC%86%8C%ED%94%84%ED%8A%B8%EC%9B%A8%EC%96%B4/
5) https://sgju.tistory.com/4
6) https://opentutorials.org/module/1468/9174
7) https://www.artec3d.com/ko/learning-center/best-3d-printing-software
8) https://learnandcreate.tistory.com/443
9) https://www.passgeeker.com/kr/the-6-best-stl-editors-for-3d-printing
10) https://koreaninbeijing.tistory.com/564
11) https://itmouldscorp.com/16
12) https://octoprint.org/#\31%2000-percent-open-source
13) https://codewatchers.com/ko/list/best-octoprint-plugins-ko
17) https://siso404.tistory.com/40
18) https://itmouldscorp.com/16
19) https://octoprint.org/#full-remote-control-and-monitoring
번호 | 제목 | 작성자 | 조회수 | 작성 |
---|---|---|---|---|
공지 | [2024년] 오픈소스SW 라이선스 가이드 개정판 발간 file | support | 7235 | 2024-01-03 |
공지 | [2024년] 기업 오픈소스SW 거버넌스 가이드 개정판 발간 file | support | 5629 | 2024-01-03 |
공지 | [2024년] 공공 오픈소스SW 거버넌스 가이드 개정판 발간 file | support | 5587 | 2024-01-03 |
공지 | 공개 소프트웨어 연구개발(R&D) 실무 가이드라인 배포 file | support | 18179 | 2022-07-28 |
공지 | 공개소프트웨어 연구개발 수행 가이드라인 file | OSS | 16897 | 2018-04-26 |
454 | [5월 월간브리핑] 서비스 운영관리에 필수적인 성능관리 오픈소스 솔루션 | support | 1787 | 2023-05-25 |
453 | [기획] 암호화폐와는 다른 오픈소스 NFT의 잠재력과 가능성 | support | 5919 | 2023-04-24 |
452 | [기획기사] NFT 업계의 오픈소스 활용 | support | 2208 | 2023-04-24 |
451 | [4월 월간브리핑] 오픈소스 NFT 최근 산업 동향 | support | 6573 | 2023-04-24 |
450 | [기획] 3D 프린팅을 위한 오픈소스 소프트웨어 | support | 3878 | 2023-03-27 |
449 | [기획기사] 3D 프린터의 보안 위협과 오픈소스 해결책 | support | 1566 | 2023-03-27 |
448 | [3월 월간브리핑] 3D 프린팅의 흐름을 바꾼 오픈소스 프로젝트 | support | 6303 | 2023-03-27 |
447 | [기획] OpenAI-ChatGPT의 오픈소스 대안 | support | 8074 | 2023-02-20 |
446 | [기획기사] 최근 자연어 처리 (NLP) 오픈소스 기술 현황 | support | 7762 | 2023-02-20 |
445 | [2월 월간 브리핑] 한국어 자연어 처리(NLP) 오픈소스 프로젝트 | support | 11939 | 2023-02-20 |
0개 댓글