산업 제조
산업용 사물 인터넷 | 산업자재 | 장비 유지 보수 및 수리 | 산업 프로그래밍 |
home  MfgRobots >> 산업 제조 >  >> Manufacturing Technology >> 제조공정

G-코드 마스터하기: CNC & 3D 프린터 운용자가 알아야 할 핵심 명령어

업무나 취미가 CNC 머신이나 3D 프린터와 관련되어 있다면, G-코드가 무엇이고 어떻게 작동하는지 이해하는 것은 필수적입니다. 이 튜토리얼에서는 G-코드 언어의 기초, 가장 중요하고 흔한 G-코드 명령어, 그리고 그것들이 어떻게 작동하는지 설명하겠습니다.

G-코드란?

G-코드는 CNC(컴퓨터 수치 제어) 머신을 위한 프로그래밍 언어입니다. G-코드는 "Geometric Code(기하학적 코드)"의 약자입니다. 이 언어를 사용하여 머신에게 무엇을 할지, 어떻게 할지 지시합니다. G-코드 명령어는 머신이 어디로 이동할지, 얼마나 빠르게 이동할지, 어떤 경로를 따를지 지시합니다.

선반이나 밀링 머신 같은 공작기계의 경우, 절삭 공구가 이 명령어들에 의해 특정 공구 경로를 따라 이동하며 원하는 형태를 얻기 위해 재료를 깎아냅니다.

마찬가지로 적층 제조나 3D 프린터의 경우, G-코드 명령어는 머신에게 재료를 층층이 쌓아 정확한 기하학적 형태를 만들도록 지시합니다.

G-코드 명령어 읽는 법

처음 G-코드 파일을 보면 꽤 복잡해 보일 수 있지만, 실제로는 이해하기 어렵지 않습니다.

G-코드 마스터하기: CNC & 3D 프린터 운용자가 알아야 할 핵심 명령어

코드를 자세히 보면 대부분의 줄이 같은 구조를 가지고 있음을 알 수 있습니다. G-코드에서 "복잡해 보이는" 부분은 보이는 수많은 숫자들인데, 이는 단순히 데카르트 좌표값들입니다.

한 줄을 예로 들어 설명해 보겠습니다.

G01 X247.951560 Y11.817060 Z-1.000000 F400.000000

이 줄의 구조는 다음과 같습니다:

G## X## Y## Z## F##

  • 첫 번째는 G-코드 명령어로, 이 경우 G01은 "직선으로 특정 위치로 이동"을 의미합니다.
  • X, Y, Z 값으로 위치나 좌표를 선언합니다.
  • 마지막으로 F 값으로 이송 속도(feed rate), 즉 이동이 실행될 속도를 설정합니다.

요약하면, G01 X247.951560 Y11.817060 Z-1.000000 F400 줄은 CNC 머신에게 현재 위치에서 X247.951560, Y11.817060, Z-1.000000 좌표로 400mm/분의 속도로 직선 이동하라고 지시합니다. 단위가 mm/분인 이유는 G-코드 예시 이미지를 보면 G21 명령어로 단위를 밀리미터로 설정했기 때문입니다. 인치 단위를 원하면 G20 명령어를 사용합니다.

가장 중요하고 흔한 G-코드 명령어들

이제 G-코드 한 줄을 읽는 법을 알았으니, 가장 중요하고 흔하게 사용되는 G-코드 명령어들을 살펴보겠습니다. 여러 예제를 통해 각각의 작동 방식을 배우고, 이 튜토리얼이 끝날 즈음에는 G-코드가 어떻게 작동하는지, 어떻게 읽고, 수정하고, 심지어 직접 작성하는지 완전히 이해하게 될 것입니다.

G00 – 급속 위치결정 (Rapid Positioning)

G00 명령어는 머신을 현재 위치에서 명령어로 지정된 좌표나 지정된 지점으로 최대 이동 속도로 이동시킵니다. 모든 축이 동시에 이동하여 동시에 이동을 완료합니다. 그 결과 새 위치 지점으로 직선 이동하게 됩니다.

G-코드 마스터하기: CNC & 3D 프린터 운용자가 알아야 할 핵심 명령어

G00은 비절삭 이동으로, 절삭이나 프린팅 같은 실제 작업을 시작하기 위해 머신을 원하는 위치로 빠르게 이동시키는 것이 목적입니다.

G01 – 선형 보간 (Linear Interpolation)

G01 G-코드 명령어는 머신에게 설정된 이송 속도(feed rate) 또는 속도로 직선 이동하도록 지시합니다. X, Y, Z 값으로 끝 위치를 지정하고, F 값으로 속도를 지정합니다. 머신 컨트롤러는 그 직선을 통과하기 위한 중간 점들을 계산(보간)합니다. 이 G-코드 명령어들은 단순하고 직관적으로 이해하기 쉽지만, 내부적으로 머신 컨트롤러는 이러한 이동을 위해 초당 수천 번의 계산을 수행합니다.

G-코드 마스터하기: CNC & 3D 프린터 운용자가 알아야 할 핵심 명령어

단순히 위치결정용으로 사용되는 G00 명령어와 달리, G01 명령어는 머신이 주요 작업을 수행할 때 사용됩니다. 선반이나 밀링의 경우 직선으로 재료를 절삭하고, 3D 프린터의 경우 직선으로 재료를 압출합니다.

G02 – 원호 보간 시계방향 (Circular Interpolation Clockwise)

G02 명령어는 머신에게 시계방향으로 원호 패턴을 따라 이동하도록 지시합니다. G01 명령어와 같은 개념이며 적절한 가공 공정 수행 시 사용됩니다. 끝 점 매개변수 외에 여기서는 회전 중심, 즉 호 시작점에서 호 중심점까지의 거리도 정의해야 합니다. 시작점은 이전 명령어의 끝 점 또는 현재 점입니다.

이해를 돕기 위해 이전 예제의 G01 명령어 뒤에 G02 명령어를 추가해 보겠습니다.

G-코드 마스터하기: CNC & 3D 프린터 운용자가 알아야 할 핵심 명령어

예제에서 먼저 G01 명령어로 머신을 X5, Y12 지점으로 이동시킵니다. 이것이 G02 명령어의 시작점이 됩니다. G02 명령어의 X, Y 매개변수로 끝 점을 설정합니다. 이제 이 끝 점까지 원호 운동이나 아크로 이동하려면 중심점을 정의해야 합니다. I, J 매개변수로 이 중심점을 정의합니다. I, J 값은 시작점, 즉 이전 명령어의 끝 점에 상대적입니다. 따라서 중심점을 X5, Y7로 하려면 X축으로는 0 오프셋, Y축으로는 -5 오프셋을 주면 됩니다.

물론 중심점을 다른 곳에 설정할 수도 있으며, 그러면 같은 끝 점에서 다른 아크가 생성됩니다. 예시:

G-코드 마스터하기: CNC & 3D 프린터 운용자가 알아야 할 핵심 명령어

여전히 이전 예제와 같은 끝 점(X10, Y7)을 가지지만, 중심점이 다른 위치(X0, Y2)에 있습니다. 이로 인해 이전 예제보다 더 넓은 아크가 생성됩니다.

참고: GRBL 설정 및 아두이노로 CNC 머신 제어하는 방법

G00, G01, G02 예제 – 수동 G-코드 프로그래밍

이 세 가지 주요 G-코드 명령어 G00, G01, G02를 사용한 간단한 CNC 밀링 예제를 살펴보겠습니다.

G-코드 마스터하기: CNC & 3D 프린터 운용자가 알아야 할 핵심 명령어

위 이미지의 도형에 대한 공구 경로를 얻기 위해 다음 G-코드 명령어들이 필요합니다:

G00 X5 Y5 ; 점 B
G01 X0 Y20 F200 ; 점 C
G01 X20 Y0 ; 점 D
G02 X10 Y-10 I0 J-10 ; 점 E
G02 X-4 Y-8 I-10 J0 ; 점 F
G01 X-26 Y-2 ; 점 B

첫 번째 G00 명령어로 머신을 홈이나 초기 위치에서 점 B(5,5)로 빠르게 이동시킵니다. 여기서부터 이송 속도 200으로 G01 명령어를 사용하여 "절삭"을 시작합니다. 점 B(5,5)에서 점 C(5,25)로 이동하기 위해 시작점 B를 기준으로 X, Y 값을 사용합니다. Y 방향으로 +20 단위면 점 C(5,25)에 도달합니다. 사실 이는 좌표를 절대값으로 해석할지 상대값으로 해석할지에 따라 다릅니다. 이는 나중에 설명하겠습니다.

점 C(5,25)에 도달하면 또 다른 G01 명령어로 점 D(25,25)로 이동합니다. 그런 다음 G02 명령어인 원호 운동으로 점 E(35,15)로 이동하며, 중심점은 (25,15)입니다. 다음 G02 명령어에서도 같은 중심점(25,15)을 사용하여 점 F(31,7)로 이동합니다. 다만 I, J 매개변수는 이전 명령어와 다른데, 마지막 끝 점인 점 E에서 중심점 오프셋을 주기 때문입니다. 마지막으로 G01 명령어로 점 F(31,7)에서 점 B(5,5)로 돌아가며 공구 경로를 마칩니다.

이렇게 이 도형을 만들기 위한 G-코드를 수동으로 프로그래밍할 수 있습니다. 하지만 이는 완전한 G-코드가 아닙니다. 몇 가지 기본 명령어가 더 필요하기 때문입니다. 나중에 예제를 통해 완전한 G-코드를 만들겠지만, 먼저 그 명령어들을 설명해야 합니다.

G03 – 원호 보간 반시계방향 (Circular Interpolation Counterclockwise)

G02와 마찬가지로 G03 G-코드 명령어는 머신이 원호 패턴으로 이동하도록 정의합니다. 유일한 차이점은 이동이 반시계방향이라는 것입니다. 다른 모든 특징과 규칙은 G02 명령어와 동일합니다.

G-코드 마스터하기: CNC & 3D 프린터 운용자가 알아야 할 핵심 명령어

이 세 가지 주요 G-코드 명령어 G01, G02, G03만으로도 원하는 거의 모든 형태의 공구 경로를 생성할 수 있습니다. 어떻게 가능할지 의아할 수 있지만, 컴퓨터와 CAM 소프트웨어에게는 쉬운 작업입니다. 때로는 수동으로 G-코드 프로그램을 만들 수 있지만, 대부분 적절한 소프트웨어를 사용하여 훨씬 쉽고 안전하게 만듭니다.

그럼 몇 가지 더 중요하고 흔한 명령어들을 설명하고 마지막에 실제 G-코드 예제를 만들어 보겠습니다.

G20 / G21 – 단위 선택

G20과 G21 명령어는 G-코드 단위를 인치 또는 밀리미터로 정의합니다.

  • G20 = 인치
  • G21 = 밀리미터

단위는 프로그램 시작 부분에서 설정해야 합니다. 단위를 지정하지 않으면 머신은 이전 프로그램에서 설정된 기본값을 사용합니다.

G17 / G18 / G19 – G-코드 평면 선택

이 G-코드 명령어들로 머신의 작업 평면을 선택합니다.

  • G17 – XY 평면
  • G18 – XZ 평면
  • G19 – YZ 평면
G-코드 마스터하기: CNC & 3D 프린터 운용자가 알아야 할 핵심 명령어

G17이 대부분의 CNC 머신에서 기본값이지만, 다른 두 평면도 특정 움직임을 위해 사용될 수 있습니다.

G28 – 홈 복귀 (Return Home)

G28 명령어는 머신에게 공구를 기준점(home position) 또는 홈 위치로 이동하도록 지시합니다. 충돌을 방지하기 위해 X, Y, Z 매개변수로 중간 점을 포함할 수 있습니다. 공구는 기준점으로 가기 전에 해당 지점을 통과합니다. G28 X## Y## Z##

G-코드 마스터하기: CNC & 3D 프린터 운용자가 알아야 할 핵심 명령어

홈 위치는 G28.1 X## Y## Z## 명령어로 정의할 수 있습니다.

G90 / G91 – 위치결정 G-코드 명령어

G90과 G91 명령어로 머신이 좌표를 어떻게 해석할지 지정합니다. G90은 절대 모드(absolute mode), G91은 상대 모드(relative mode)입니다.

절대 모드에서는 공구의 위치결정이 항상 절대점(영점)을 기준으로 합니다. 따라서 G01 X10 Y5 명령어는 이전 위치와 상관없이 공구를 정확한 점 (10,5)로 이동시킵니다.

반면 상대 모드에서는 공구의 위치결정이 마지막 점을 기준으로 합니다. 현재 머신이 점(10,10)에 있다면, G01 X10 Y5 명령어는 공구를 점(20,15)로 이동시킵니다. 이 모드를 "증분 모드(incremental mode)"라고도 부릅니다.

더 많은 명령어와 규칙

위에서 설명한 G-코드 명령어들이 가장 흔한 것들이지만, 더 많은 명령어들이 있습니다. 공구 보정, 스케일링, 작업 좌표계, 드웰(dwell) 등의 명령어가 있습니다.

G-코드 외에도 실제 완전한 G-코드 프로그램을 생성할 때 사용되는 M-코드 명령어들이 있습니다. 몇 가지 흔한 M-코드 명령어:

  • M00 – 프로그램 정지
  • M02 – 프로그램 끝
  • M03 – 스핀들 ON – 시계방향
  • M04 – 스핀들 ON – 반시계방향
  • M05 – 스핀들 정지
  • M06 – 공구 교환
  • M08 – 플러드 쿨런트 ON
  • M09 – 플러드 쿨런트 OFF
  • M30 – 프로그램 끝

3D 프린터의 경우:

  • M104 – 압출기 가열 시작
  • M109 – 압출기가 T0에 도달할 때까지 대기
  • M140 – 베드 가열 시작
  • M190 – 베드가 T0에 도달할 때까지 대기
  • M106 – 팬 속도 설정

이 명령어들 중 일부는 적절한 매개변수가 필요합니다. 예를 들어 M03으로 스핀들을 켤 때 S 매개변수로 스핀들 속도를 설정할 수 있습니다. M30 S1000 줄은 스핀들을 1000 RPM 속도로 켭니다.

많은 코드들이 모달(modal)이라는 점도 주목할 만합니다. 즉, 다른 코드로 취소되거나 대체될 때까지 효과가 지속됩니다. 예를 들어 선형 절삭 이동 코드 G01 X5 Y7 F200이 있다고 합시다. 다음 이동도 선형 절삭이라면 G01을 앞에 쓰지 않고 X, Y 좌표만 적으면 됩니다.

G01 X5 Y7 F200
X10 Y15
X12 Y20
G02 X5 Y5 I0 J-5
X3 Y6 I-2 J0

이송 속도 매개변수 F도 마찬가지입니다. 값을 변경하고 싶지 않다면 매 줄마다 포함할 필요가 없습니다.

일부 G-코드 파일에서는 명령어 앞에 "N##"이 있는 것을 볼 수 있습니다. N 워드는 단순히 코드 줄이나 블록에 번호를 매기는 용도입니다. 방대한 프로그램에서 오류 발생 시 특정 줄을 식별하는 데 도움이 됩니다.

간단한 G-코드 프로그램 예제

이제까지 읽은 내용으로 실제 완전한 코드를 수동으로 작성할 수 있게 되었습니다. 예제:

G-코드 마스터하기: CNC & 3D 프린터 운용자가 알아야 할 핵심 명령어
%
G21 G17 G90 F100 M03 S1000
G00 X5 Y5 ; 점 B
G01 X5 Y5 Z-1 ; 점 B
G01 X5 Y15 Z-1 ; 점 C
G02 X9 Y19 Z-1 I4 J0 ; 점 D
G01 X23 Y19 Z-1 ; 점 E
G01 X32 Y5 Z-1 ; 점 F
G01 X21 Y5 Z-1 ; 점 G
G01 X21 Y8 Z-1 ; 점 H
G03 X19 Y10 Z-1 I-2 J0 ; 점 I
G01 X13 Y10 Z-1 ; 점 J
G03 X11 Y8 Z-1 I0 J-2 ; 점 K
G01 X11 Y5 Z-1 ; 점 L
G01 X5 Y5 Z-1 ; 점 B
G01 X5 Y5 Z0
G28 X0 Y0
M05
M30
%

G-코드 프로그램 설명:

  1. 코드 초기화. 이 문자(%)는 프로그램 시작과 끝에 항상 있습니다.
  2. 안전 라인: 메트릭 시스템(모든 치수 mm), XY 평면, 절대 위치결정, 이송 속도 100 인치/분 설정.
  3. 스핀들 시계방향 1000 RPM으로 켜기.
  4. 급속 위치결정으로 B(5,5) 이동.
  5. 같은 위치에서 제어된 이동으로 공구를 Z-1로 내리기.
  6. 선형 절삭 이동으로 위치 C(5,15) 이동.
  7. 시계방향 원호 운동으로 점 D(9,19), 중심점 (9,15).
  8. 선형 절삭으로 점 E(23,19).
  9. 선형 절삭으로 점 F(32,5).
  10. 직선 절삭으로 점 G(21,5).
  11. 직선 절삭으로 점 H(21,8).
  12. 반시계방향 원호 보간으로 위치 I(19,10), 중심점 (19,8).
  13. 선형 절삭으로 점 J(13,10).
  14. 반시계방향 원호 절삭으로 위치 K(11,8), 중심점 (13,8).
  15. 선형 절삭으로 위치 L(11,5).
  16. 최종 선형 절삭 이동으로 위치 B(5,5).
  17. 공구 올리기.
  18. 홈 위치로 이동.
  19. 스핀들 끄기.
  20. 메인 프로그램 끝.

이 코드가 Universal G-code Sender 소프트웨어를 통해 CNC 머신으로 전송될 준비가 된 모습입니다:

G-코드 마스터하기: CNC & 3D 프린터 운용자가 알아야 할 핵심 명령어

위에서 설명한 주요 G-코드 명령어들을 사용하여 완전한 G-코드를 직접 작성했습니다. 물론 이 예제는 꽤 단순하며, 더 복잡한 형태에는 반드시 CAM 소프트웨어가 필요합니다. 말 모양의 복잡한 G-코드 예제:

G-코드 마스터하기: CNC & 3D 프린터 운용자가 알아야 할 핵심 명령어

비교를 위해 이 코드는 약 700줄 정도 되지만 모두 자동 생성되었습니다. G-코드는 Inkscape를 사용하여 제 DIY 아두이노 CNC 폼 커팅 머신 예제로 만들었습니다. 완성된 모양:

G-코드 마스터하기: CNC & 3D 프린터 운용자가 알아야 할 핵심 명령어

이 머신에 대한 자세한 내용은 별도 튜토리얼을 참조하세요.

결론

G-코드의 기초, 가장 중요하고 흔한 G-코드 명령어들을 설명하고 직접 실제 G-코드를 작성해 보았습니다. G-코드 이해가 그렇게 어렵지 않다고 생각합니다. 물론 CNC 가공이나 3D 프린팅에서 사용되는 수많은 다른 명령어와 기능들도 알아야 하지만, 그건 다른 튜토리얼에서 다루겠습니다.

이 글이 유용했다면 다른 CNC와 3D 프린팅 애호가들과 공유해 주세요. 또한 아래 댓글 섹션에서 자유롭게 질문해 주세요.

제조공정

  1. 고성능 도료용 필수 안료 특성
  2. RF 트랜스포머: 설계, 기능 및 주요 응용 분야
  3. 포춘, 그레인저를 다각화 도매 부문 '가장 존경받는 기업' 선정
  4. 머신 샵 선택 전 반드시 확인해야 할 6가지 핵심 요소
  5. CNC 프로그래밍 완전 정복: G-코드 vs M-코드
  6. 더 안전한 작업을 위한 5가지 필수 크레인 안전 수칙
  7. 핵심 공장 직무에 적합한 인재 채용을 위한 4대 전략
  8. 하드웨어 성공에서 제조를 위한 설계(DFM)의 결정적 역할
  9. 자재 명세서(BOM) 필수 구성요소 - PCB 설계자가 알아야 할 7가지 핵심 요소
  10. Fanuc G-코드 종합 레퍼런스: CNC 선반 및 밀링 프로그래밍 필수 가이드