본문 바로가기
왕초짜를 위한 3D프린팅 기초 실기 공부하기

3D프린팅을 위한 제어프로그램(NCS기반)

by 내가 머니 2020. 10. 20.
반응형

하드웨어 구성

 3D프린터 제어 프로세서 개요

3D프린터의 제어 프로그램을 통해 3D프린터를 구동하기 위해서는

우선 3D프린터의 제어 시스템에 대한 내부 프로세서와 처리 과정에

대한 하드웨어 지식이 필요하다.

- 특히 3D프 린터의 경우 3축 이상의 독립 축들이 공간상에서

시간적 동기화를 맞추어 작동되어야 하며,

추가적으로 재료 적층도 프로그램된 작업 스케줄에 따라 처리되어야

성공적인 프린팅 이 완성이 되는 복합 프로세서를 구현하기 때문에

개발자는 하드웨어에 대한 기본적인 이 해와 지식을 충분히 가지고 있어야

원활한 제어 프로그래밍을 구현할 수 있게 된다.

 

- 이에 본 모듈에서는 3D프린터의 하드웨어 구성에 대한 이해를 기반으로

개발자가 요구 성능에 적합한 하드웨어의 선정 및 다음 단계에서 제어 프로그래밍을

실현할 수 있도록 한다.

1. 3D프린터 제어 흐름도 3D프린터의 하드웨어 제어에 대한 프로세서는

크게 3단계로 구분 지을 수 있다.

- 우선 PC 쪽에서 프린팅하고자 하는 CAD 데이터를 실제 사물 공간 좌표에서

물리적인 데이터로 변환하는 전처리 단계,

- 두 번째로는 전처리에서 결정된 공간으로 프린터의 노즐이 이동할 수 있도록

프린터 제어 프로그램 코드를 생성하는 단계,

- 마지막으로 프린터에서 전 송된 프로그램 코드를 실행하는 제어 동작 단계 등으로

3단계 프로세서로 구성된다.

 

(1) 3D프린터 제어 프로세서 그림 1-2는 3D프린터의 제어 프로세서의 각 단계를

설명하는 펑션 블록선도를 보여 주고 있다.

 

[그림 1-1] PC 제어 프로세서
[그림 1-2] 3D프린터 제어 프로세서

 

(가) 3D CAD model 3차원 모델링으로 된 CAD 파일을 변환하기 위해 읽어 들이는 과정이다.

이때 회전과 단위 변환 및 비율 등을 결정하여 실제 모델링에 적합한 형태로 최종 변환된다.

또한 아래층에 지지부가 없는 부위나 높이에 따른 지지력이 필요한 경우에는 서포터를 더하여

지지력을 보강하는 과정도 포함한다.

통상 3D프린터 프로그램에 서 많이들 통용되는 확장자는 *.STL 파일 형식이다.

 

 

(나) 슬라이싱 파일 생성 3D프린터는 물체를 한 층씩 얇은 판을 쌓아올려 형상을 조합하는

일련의 과정이다.

따라서 하나의 이미지 모델로 되어 있던 3D CAD파일을 실제 구현할 두께로 한층 씩 나누는 과정이며,

재료 분사 높이에 따라 두께 값이 조정되기 때문에

프린터 제어 프로그램에서 슬라이싱 과정을 포함하는 경우가 많다.

두께 결정은 프린터 노즐 의 사이즈와 프린팅 속도 요구 성능 등 여러 가지 복합 요인으로 결정된다.

프린터의 속도, 노즐 막힘에 대한 위험성, 내부 밀도, 표면 거칠기, 형상 정밀도 등을

종합적으로 고려하여 노즐과 두께를 결정하고 슬라이싱 과정을 거쳐야 한다.

 

표 1은 노즐 지름에 따른 표준 적층 두께, 최대 두께, 라스터의 사이즈 및

프린팅 체적 속도를 측정해 놓은 예시이다.

- 통상 프린팅 헤더의 제조사에서 관련 스펙을 제공하고 있으며,

상기에 언급한 것처럼 프린팅 요구 성능에 따라 사용자가 값을 조정할 수 있도록 하여야 한다.

 

[그림 1-3] 노즐의 팁 직경별 레이어 두께 및 적층 속도 범위 비교

 

(다) 툴페스 생성 앞 단계에서 슬라이싱된 각 층의 형상을 노즐에서

나오는 재료를 점과 선으로 채 우는 과정이다.

- 외형 형상 컨투어(contour)와 잠열의 배분 등 복합적인 최적화 알고 리즘이 필요한 과정이며,

현재 여러 가지 기법들이 있고 오픈소스 형태로 툴페스 플러그인 프로그램이 제공되고 있다.

- 통상 PC에서 처리되는 전 과정 즉 앞서 설명 한 3D 케드파일의 로딩, 슬라이싱 툴페스 생성 및

이후 과정인 Gcode 생성까지 일괄로 처리할 수 있도록 프로그램 소스 코드들이 제공되고 있다.

 

표 2는 오픈 소스 로 제공되고 있는 소프트웨어들을 소개한다.

 

<표 1-1> 3D 프로그램 전처리 오픈소스 리스트

SFACT(https://github.com/ahmetcemturan/SFACT/), RadCAd(http://www.rapcad.org/),
CURA (http://wiki.ultimaker.com/Cura),
Slic3r(http://slic3r.org/), SuperSkein(https://github.com/MaskedRetriever/SuperSkein/), 
RedRapHost(http://reprap.org/wiki/RepRapHostSoftware) RepSnapper(https://github.com/timschmidt/repsnapper)
E3D (https://github.com/revk/E3D) Mandoline(https://github.com/revarbat/Mandoline) FabStudio(https://launchpad.net/fabstudio)

 

(라) 제어 코드 생성 툴페스를 따라 노즐이 이동할 수 있도록

3D프린터의 각 축 모터부가 추종할 명령 어를 생성하는 과정이다.

통상 g code를 표준으로 사용하는 추세이다.

 

(마) 제어 코드 전송 pc에서 앞선 전 과정들이 수행되고 나면 최종적인 결과물인

gcode로 된 프로그램 제어 명령어 코드를 프린터로 전송하는 과정이다.

 

- 프린터 제어보드의 하드웨어 종 류 및 구성 방식에 따라 유무선 통신을 지원하는 경우,

데이터 통신을 통해 전송을 할 수 있으며,

만약 통신을 지원하지 않는 제어 보드의 경우는

메모리 카드 등 저장매체를 이용하여 전송을 할 수 있다.

 

(바) 제어 코드 저장 및 시스템 초기화 전송받은 제어 명령어 코드를 전달받으면

프린터는 프린팅 동작을 위해 독립적모 드로 전환된다.

 

- 우선 시스템 초기화를 통해 구동부 및 모든 시스템 자원들의 상태를 점검하고,

프로그램 수행을 할 수 있는 환경을 셋업한다.

- 이러한 과정에는 노즐 및 프린팅 베드의 가열 및 노즐 축의 원점 확인 등

여러 가지 초기화 동작들이 수 행되게 된다.

 

(사) 제어 코드 명령어 수행 본격적으로 프린터는 제어 명령어 프로그램

코드에 따라 프린터 헤드를 이송하며 재료를 순차적으로 분사한다.

- 이 과정을 통해 본격적인 프린팅이 이루어진다.

 

(아) 시스템 상태 모니터링 통신을 지원하는 제어 보드는 제어 프로그래밍에

통신 부분을 추가할 경우, 제어 코드 명령어 수행 상태나 시스템 제어 상태에 대한

데이터를 상위에 연결된 PC로 주기적으로 전송하여 시스템 상태를

모니터링할 수 있도록 할 수 있으며,

 

- 하드웨어에 독립적인 상태에서도 LCD나 기타 데이터 표시 장치를 통해

노즐의 온도나 프로 세서의 진행 상태 등 시스템 상태를 모니터링할 수 있다.

 

하드웨어 개요에 대해서는 다음시간에 다시 올리겠습니다

이것을올리는 이유는 3D프리터에 모델링작업한 작업물을 출력하기 위해서는

하드웨어의 구성이 어떻게 되어있는지, 프린터에 구동상태 등을 알고 있어야

보다 좋은 완성된 출력물을 기대할 수 있기 때문입니다.

 

** 위의 내용들의 출처는 NCS모듈의 8번 제어프로그램단계의 것을 올린 것입니다.

 

 

반응형

댓글