CNC 만들기 #5 - G Code
G Code 참고 링크 : http://www.linuxcnc.org/docs/2.4/html/gcode_overview.html#sec:Modal-Groups 1. G Code란 G Code는 RS274/NGC 언어를 기본으로하는 EMC2 G Code 언어이다. G Code는 라인으로 구성되는데, 이 각 라인을 "block"으로 부른다. 이 라인은 여러가지 다른 일을 할 명령어셋으로 구성될 수 있다. 각 명령어라인(이하 블럭)은 하나 혹은 다수의 글자들(words)로 시작하는데, 이 글자들 뒤에는 숫자들이 따로오게 되어 있다. 예를 들면, "G1 X3"이라는 블럭은 2개의 글자로 구성되어 있다. "G1"은 기존에 설정되어 있는 속도로 직선운동을 하라는 것이고, "X3"은 G1의 인자로 인식된다. 대부분의 EMC2 G Code는 G(General) 혹은 M(Miscellaneous)로 시작하고, 각각 G Code, M Code로 불린다. EMC2 언어는 프로그램의 시작을 알리는 지시자가 없고, 인터프리터는 파일 단위로 처리한다. 하나의 프로그램은 하나의 파일일 수도 있고, 여러 파일로 구성될 수도 있다. 파일 내에서는 %로 구분한다. 파일이 %로 시작하지 않으면 에러를 발생시키지만, 종료시에는 해당사항이 없다. EMC2 G Code 언어는 M2 혹은 M30이라는 2개의 특수 명령어를 가지고 있다. 이 명령어들은 프로그램의 종료를 명시한다. 즉, 파일의 최종라인까지 실행하기 전에 이 명령어가 실행되면 프로그램이 종료된다. 1.1 명령어 라인 형식 아래 형식을 허용한다. "/" line number 모둔 문자 라인 종료문자 (캐리지리턴 혹은 라인피드) 명시적으로 허용하는 문자 이외는 모두 에러로 처리된다. 스페이스문자와 탭문자는 허용되지만, 아무런 영향을 끼치지 않는다. 예를 들어 "G0X +0. 12