본문 바로가기
카테고리 없음

3D 프린터 출력 파일 핵심 G코드 및 좌표계 종류, 출력시 오류 대처 방안, 운용 기능사 필기 대비

by 유익한 지식 날리지(naligi) 2024. 6. 28.
반응형

3D 프린터와 관련하여 3D 프린터 출력 파일 중요 핵심 G코드 명령어 및 좌표계 종류, 출력 시 오류 대처 방안 등에 대해 알아봅니다. 또한 3D 프린터 운용 기능사 필기시험에도 대비할 수 있습니다.

 

3D 입체도형
3D 프린터 출력 파일 핵심 G코드 및 좌표계

 

NC공작 기계와 G코드

1. NC공작 기계에서 G코드의 역할

NC공작 기계는 공작 기계에 수치 제어를 적용하여 제품의 정밀도를 유지하면서 자동화에 의한 생산성 향상의 목적으로 널리 이용된다. 이때, G코드는 NC 공작 기계의 움직임을 자동화하기 위해서 주로 사용되어 왔다.

 

즉, NC공작 기계 내부의 컴퓨터에 G코드로 작성된 프로그램을 입력하면 각 축이나 스핀들 등의 자동 운전이 이루어진다. 따라서 NC 공작기계를 구성하는 공구의 이송, 주축의 회전, 공구 선택, 직선 및 회전축의 동작 등이 G코드의 명령에 따라서 제어된다.

 

2. G코드의 형식

G코드의 명령어는 G00, G01 등과 같이 알파벳 ‘G’ 다음에 두 자리의 숫자를 붙이는 형식으로 되어 있다. 이때 두 자리의 숫자는 00 ~ 99 사이의 숫자가 사용된다. CAD로 모델링 된 3차원 형상을 NC 공작 기계로 가공하기 위해서는 적절한 CAM 소프트웨어가 CAD 모델을 G코드로 변환시켜 주게 된다.

 

3D 프린터와 G코드

3D 프린터에서 단면을 성형하기 위해서는 움직이는 구동 기구가 필요하다. 특히 저가형 3D 프린터에 가장 널리 적용되고 있는 재료 압출 방식에서는 재료가 압출되는 헤드가 플랫폼 위에서 평면 운동을 하면서 단면이 성형되게 된다.

 

따라서 헤드 및 플랫폼의 움직임과 재료 압출을 위해서 적절한 동작명령을 3D 프린터에 전달해 주어야 한다. 이런 구동요소들은 대부분 NC공작 기계와 매우 유사하다. 따라서 3D프린터의 구동에는 이미 널리 알려진 G코드가 많이 사용된다.

 

좌표계

1. 직교 좌표계

공작 기계뿐만 아니라 3D 프린터를 G코드를 이용해서 구동하기 위해서는 좌표계에 대한 이해가 필요하다. 3차원 공간에서 좌표계를 X, Y 및 Z 축을 이용하여 직교 좌표계(Rectangular Coordinate System)로 정의하는 것이 일반적이다.

 

2. 좌표계의 종류

G코드를 이용해서 3D 프린터를 구동하기 위해서는 좌표계에 대한 이해가 필요하다. 사용되는 좌표계는 기계 좌표계(Machine Coordinate System), 공작물 좌표계(Work Coordinate System) 그리고 로컬 좌표계(Local Coordinate System)가 있다.

(1) 기계 좌표계

3D 프린터는 고유의 기준점을 가지고 있다. 이 기준점은 많은 경우 3D 프린터가 처음 구동되거나 초기화될 때 헤드가 항상 일정한 위치로 복귀하게 되는 기준점이 된다. 이 기준점을 좌표축의 원점으로 사용하는 좌표계를 기계 좌표계라고 한다. 즉 기계 좌표 원점에서는 각 축의 기계 좌표계 좌표값이 각각 X 0.0, Y 0.0 및 Z 0.0 이 된다.

 

(2) 공작물 좌표계

공작물 좌표계는 3D 프린터의 제품이 만들어지는 공간 안에 임의의 점을 새로운 원점으로 설정하는 것이다. 공작물 좌표계를 설정하면 하나의 공간에 여러 개의 제품을 동시에 만들 때, 각 제품마다 공작물 좌표계를 각각 설정하여 사용할 수 있다. 이렇게 하면 하나의 플랫폼 위에서 각 제품 단면의 성형 시 제품이 바뀔 때마다 해당되는 제품의 공작물 좌표계를 호출하여 사용할 수 있다. 공작물 좌표계는 기계 좌표계를 기준으로 설정된다

(3) 로컬 좌표계

필요에 의해서 공작물 좌표계 내부에 또 다른 국부적인 좌표계가 요구될 때 사용된다.

 

위치 결정 방식

1. 절대 좌표 방식(Absolute Coordinate Method)

움직이고자 하는 좌표를 지정해 주면 현재 설정된 좌표계의 원점을 기준으로 해서 지정된 좌표로 헤드 혹은 플랫폼이 이송된다.

 

2. 증분 좌표 방식(Incremental Coordinate Method)

헤드 또는 플랫폼의 현재 위치를 기준으로 지정된 값만큼 이송된다.

 

 

주요 핵심 G코드 명령어

1. 3D 프린팅의 G코드 명령어

G코드는 NC 프로그래밍을 기반으로 한다.  한편 원호보간 G코드인 G02와 G03은 대부분의 3D 프린터에서 사용하지 않는다. 이는 3D 프린터에서 가장 널리 사용되는 파일 형식인. STL이 입체 형상을 면으로만 표현하기 때문에, 단면의 외곽 형상은 모두 직선으로 되기 때문이다.

 

3D 프린터를 구동시키기 위해서 사용되는 G코드는 각 3D프린터마다 조금씩 다르다. 여기서는 3D 프린터에 많이 사용되는 주요 G코드 (NC 프로그래밍)들에 대해서만 다룬다. 특히 대부분의 보급형 3D 프린터의 기본이 된 RepRap에서 설명된 G코드를 기반으로 설명한다. RepRap에서 다루는 G코드에 대한 상세한 사항은 RepRap 홈페이지 (http://reprap.org)를 참고하기 바란다.

 

2. G코드 명령어

(1) G 명령어

(가) Fnnn : 이송 속도

Fnnn은 이송 속도를 의미한다. 이때 nnn은 이송 속도(mm/min)이다.

 

(나) Ennn : 압출 필라멘트의 길이

Ennn은 압출되는 필라멘트의 길이를 의미한다. 이때 nnn은 압출되는 길이(mm)이다.

 

(다) G0 : 급속 이송

‘G0’는 빠른 이송을 의미한다. 즉, 헤드나 플랫폼을 목적지로 가장 빠르게 이송시키기 위해서 사용한다.

예) G0 X20 → X=20 mm 인 지점으로 빠르게 이송

 

(라) G1 : 직선 보간

‘G1’는 현재 위치에서 지정된 위치까지 헤드나 플랫폼을 직선 이송한다. 이때 이송되는 속도나 압출되는 필라멘트의 길이를 지정할 수 있다. 이송 속도는 Fnnn에 의해서 다음 이송 속도가 지정되기 전까지는 현재의 이송 속도를 따른다.

예) G1 F1200 → 이송속도를 1200 mm/min으로 설정

G1 X80.5 Y12.3 E12.5 → 현재 위치에서 X=80.5, Y=12.3으로, 필라멘트를 현재 길이에서 12.5mm까지 압출하면 이송

 

예) G1 X80.5 Y12.3 E12.5 F3000 → 현재 위치에서 X=80.5, Y=12.3으로, 필라멘트를 현재 길이에서 12.5mm까지 압출하면 이송. 이때 이송속도는 3000 mm/min

 

(마) G28 : 원점 이송

‘G28’는 3D 프린터의 각 축을 원점으로 이송시킨다.

 

(바) G4 : 멈춤(dwell)

‘G4’는 3D 프린터의 모든 동작을 Pnnn에 의해 지정된 시간만큼 멈춘다. 이때 nnn은 밀리초(msec)이다.

예) G4 P100 → 3D 프린터의 동작을 100 msec 동안 멈춘다.

 

(사) G20, G21 : 단위 변환

‘G20’은 단위를 인치(Inch)로 변환한다. 그리고 ‘G21’은 단위를 밀리미터(mm)로 변환한다.

 

(아) G90 : 절대 좌표 설정

‘G90’은 모든 좌표값을 현재 좌표계의 원점에 대한 좌표값으로 설정한다.

 

(자) G91 : 상대 좌표 설정

‘G91’이 지정된 이후의 모든 좌표값은 현재 위치에 대한 상대값으로 설정된다.

 

(차) G92 : 좌표계 설정

‘G92’에 의해서 지정된 값이 현재 값이 된다. 3D 프린터가 동작하지는 않는다.

예) G92 Y15 E120 → 3D 프린터의 현재 Y 값을 Y=15 mm로, 압출 필라멘트의 현재 길이를 120 mm로 설정한다.

 

(2) M 명령어

(가) M1 : 휴면

3D 프린터의 버퍼에 남아 있는 모든 움직임을 마치고 시스템을 종료시킨다. 모든 모터 및 히터가 꺼진다. 하지만 G 및 M 명령어가 전송되면 첫 번째 명령어가 실행되면서 시스템이 재시작된다.

 

(나) M17 : 모든 스테핑모터에 전원 공급

‘M17’에 의해 3D 프린터의 동작을 담당하는 모든 스테핑모터에 전원이 공급된다.

 

(다) M18 : 모든 스테핑모터에 전원 차단

‘M18’에 의해 3D 프린터의 동작을 담당하는 모든 스테핑모터에 전원이 차단된다. 이렇게 되면 각 축이 외부 힘에 의해서 움직일 수 있다.

 

(라) M104 : 압출기 온도 설정

Snnn으로 지정된 온도로 압출기의 온도를 설정한다.

예) M104 S210 → 3D 프린터 압출기의 온도를 210°C로 설정한다.

 

(마) M106 : 팬 전원 켜기

Snnn으로 지정된 값으로 쿨링팬의 회전 속도를 설정한다. 이때 nnn은 0~255의 범

위를 갖는다. 즉, S255가 지정되면 쿨링팬은 최대 회전 속도로 회전한다.

예) M106 S170 → 3D 프린터 쿨링팬의 회전 속도를 최대 회전 속도(255)의 2/3인 170으로 설정한다.

 

(바) M107 : 팬 전원 끄기

쿨링팬의 전원을 끈다. 대신 ‘M106 S0’가 사용되기도 한다.

 

(사) M117 : 메시지 표시

3D 프린터의 LCD 화면에 메시지를 표시한다. 어떤 3D 프린터에서는 ‘M117’이 다른 기능으로 사용되기도 한다.

예) M117 Good Luck → 3D 프린터의 LCD 화면에 글자‘Good Luck’을 표시한다.

 

(아) M140 : 플랫폼 온도 설정

제품이 출력되는 플랫폼의 온도를 Snnn으로 지정된 값으로 설정한다.

예) M140 S80→ 3D 프린터 플랫폼의 온도를 80°C로 설정한다.

 

(자) M141 : 챔버 온도 설정

제품이 출력되는 공간인 챔버의 온도를 Snnn으로 지정된 값으로 설정한다.

 

(차) M300 : 소리 재생

출력이 종료되는 것을 알려 주는 등의 용도로 ‘삐’ 소리를 재생한다. Snnn으로 지정된 주파수(Hz)와 Pnnn으로 지정된 지속 시간(msec) 동안 소리가 재생된다.

예) M300 S250 P100 → 250Hz 주파수를 갖는 소리를 100 미리초 동안 재생한다.

 

(카) ‘;’ : 주석

세미콜론 ‘;’ 은 주석을 넣을 때 사용된다. 세미콜론이 있으면 해당 줄에서 이후의 내용은 3D 프린터가 무시하기 때문에 G코드를 작성할 때 주석을 넣는 데 사용된다.

 

출력 오류 대처

- 처음부터 재료가 압출되지 않음 3D 프린터를 동작시켰으나, 처음부터 플라스틱 재료를 압출하지 않는 경우

-  출력 도중에 재료가 압출되지 않음 출력물이 출력되다가 더 이상 재료가 압출 노즐을 통해서 압출되지 않는 경우 재료가 플랫폼에 부착되지 않음

 

-  첫 번째 층의 성형을 위해서 압출된 재료가 플랫폼에 견고히 부착되어야 하나, 그렇지 않은 경우.

-  재료의 압출량이 적음 압출 노즐에서 충분한 양의 플라스틱 재료가 압출되지 않아서 출력된 면에 빈 공간이 생기는 경우.

-  재료가 과다하게 압출됨 압출 노즐에서 너무 많은 재료가 압출되어 출력물의 모양이 지저분하게 된 경우.

-  바닥이 말려 올라감 출력물의 바닥이 플랫폼에 부착되어 있지 않고 위쪽으로 말려 올라가는 경우.

-  출력 도중에 단면이 밀려서 성형됨 출력물의 각 층의 수직 방향 정렬이 맞지 않고 밀려서 성형되는 경우.

-  일부 층이 만들어지지 않음 몇 개의 층이 성형되지 않거나 혹은 층의 일부만 성형되어 출력물의 일부 층이 만들어지지 않은 경우.

-  갈라짐 주로 높이가 높은 출력물에서 옆면의 중간이 갈라지는 경우.

-  얇은 선이 생김 많은 머리카락처럼 얇은 선들이 출력물들 사이에 만들어지는 경우 윗부분에 구멍이 생김 출력물의 윗부분 형상에 구멍이 생기거나 일부 형상이 만들어지지 않은 경우.

 

반응형