Fabrication

2017.01.06

CNCを知ろう:G-Codeの読み方

Text by Edward Ford
Translated by kanai

get-to-know-your-cnc-how-to-read-g-code

G-codeとは、CNCが理解できるプレーンテキストによる言語の総称だ。現代のデスクトップ型CNCマシンやソフトウェアでは、あえてそうしたい場合を除いては、G-Codeを手書きする必要はまったくない。CAD/CAMのソフトウェアとマシンのコントローラーがすべてやってくれるからだ。しかし、Makerなら、中で何が行われているのかを知っておきたいという人もいるだろう。

G-codeはプレーンテキストだ。人が普通に読めるとはかぎらないが、見ればだいたいの意味はわかる。G-Codeはコントローラーにどんな動きをして欲しいかを伝える。ここに、もっともよく使われるコマンドを紹介しよう。

G0/G1(高速または制御された移動)

gcodea

G0コマンドは、マシンを最大速度でG0の後に続く地点へ移動させる(図A)。マシンの位置の指定には座標が使われるが、2つの軸方向に同時に移動する。G0は切断には使われない。代わりに、これは、素早くジョブを開始させるために、または、同じジョブの次のオペレーションのための移動に使われる。「rapid G0」の例を下に示す。

G0 X7 Y18

gcodeb

G1コマンド(図B)は、G0とよく似ているが、こちらはフィード率(F)という特別なレートでマシンを移動させる。

G1 X7 Y18 F500

G2(時計回りの移動)

gcodec

モードをG2に設定し、センターからのオフセットを指定すると(図CとD)、開始点と終点との間を時計回りで移動する。

G21 G90 G17
G0 X0 Y12
G2 X12 Y0 I0 J-12

gcoded

G2の開始点は、このコマンドを実行する直前のマシンの位置から始まる。そのため、これを実行する前にマシンを移動させておくのがよい。

G3(反時計回りの移動)

gcodee

G2と同じく、G3も2点間に円弧を描く。ただし、G2が時計回りであるのに対して、G3は反時計回りに移動する(図E)。G3を使用する有効なコードは下のようになる。

G21 G90 G17
G0 X-5 Y25
G3 X-25 Y5 I0 J-20

G17/G18/G19(作業面)

これらのモードは加工される平面を設定する。通常はG17が使用され、ほとんどのホビー向けマシンではこれがデフォルトになっている。3軸マシンでは、他の2つのモードも使える。

・G17 = x/y 平面
・G18 = z/x 平面
・G19 = y/z 平面

G20/21(インチからミリへ)

G21とG20 は、G-codeが使用する単位(インチまたはミリ)を決めるコマンドだ。

・G21 = ミリ
・G20 = インチ

ミリに設定するコードを下に示す。

G21 G17 G90

G28(ホームを参照)

G28コマンドは、ただマシンにそのホームポジションに戻すというもの。座標を加えると、(衝突を避けるために)そこを通過して戻る。コードは下のようになる。

G28 Z0

一部には、ホームポジションの座標を定義するためにG28.1コマンドを必要とするものもある。

G28.1 X0 Y0 Z0

G90(絶対モード)

G90は、ユニットに絶対座標を認識させるものだ。ホビイスト向けのCNCでは絶対座標がデフォルトになっている場合が多い。絶対座標は、そのまま絶対値として解釈される。G0 X10と書くと、x = 10とマシンに送られる。これはx方向に今の位置からあと10ユニット、という意味ではない。

G91(加算モード)

G90の逆のモードだ。この場合、送られた座標の数値は、現在の位置からの加算分として計算される。たとえば、加算モードでG1 X1を書けば、現在の位置に関わらず、マシンはx方向に1ユニットだけ動く。

G-Codeのルール

数学の式と同じように、G-Codeにも、オペレーションの順番に関して独自のルールがある。標準的な記述方法は下のような優先順位になる(コメントが最初に解釈され、ツールの変更が最後に解釈される)。

・コメント
・フィード率
・主軸回転速度
・ツールの選択
・ツールの交換

Gコマンドを使うときは、マシンをそのモードにしておく必要がある。たとえば、G1 X5 Y13のようなG1コマンドを使うと、マシンはX5 Y13に移動する。別の座標を設定するときは、もう新たにG1コードを書く必要はない。なぜか? それはマシンがG1モードになっているからだ。これは、G0やG2やG3といった別のコマンドを実行するまで解除されないようになっている。

フィード、速度、ツール

速度、フィード、ツールといったパラメータの設定のための簡単なG-codeコマンドがある。

Fはフィード(Feed)

Fコマンドはフィード率を設定する。G1が使われているときは、決められたフィード率でマシンは作動する。続けてG1コマンドが使われるときは、Fの値で実行される。フィード率(F)が最初のG1コールの後に設定されなかったときは、エラーとなるか、マシンはデフォルトのフィード値で作動することになる。有効なFコマンドの例を下に示す。

G1 F1500 X100 Y100

Sは主軸回転速度(Spindle Speed)

Sコマンドは主軸の回転速度を設定する。通常は1分間に回転する数(RPM)で示される。有効なSコマンドの例を下に示す。

S10000

Tは工具(Tool)

Tコマンドは、M6(M-codeマシンのアクションコード)と一緒に使用し、切削に使われる工具の番号を指定する。

M6 T1

業務用のマシンでは、M6 Tコマンドは、通常、自動工具変更機で工具の変更を行うときに使われる。自動工具変更の機能がないホビイスト向けのマシンでは、M6 Tコマンドによってマシンは一時停止し、工具の変更を待つ状態となる。そして、再開(Resume)ボタンを押すと、作業が再開される。

原文