CNCのGコードとは?初心者向けの基本コマンド、使用例、トラブルシューティング
Gコードは、CNC工作機械がプログラムされたツールパスに従うための命令言語です。CNCルーターやフライス盤に、移動位置、移動方法、実行する加工動作を指示します。
初心者にとってGコードの理解は、デジタル設計が完成品になる仕組みを把握し、設定ミス、予期しない動き、切削深さの誤りを見つける助けになります。通常はCAMソフトウェアがGコードを自動生成しますが、基本を知っていれば加工前にプログラムを確認できます。
本ガイドでは、基本的なGコード、簡単なプログラム例、一般的なトラブルへの対処法、CNC工作機械の運転前に行う確認事項を解説します。
1. CNCにおけるGコードとは?
Gコードは、CNCコントローラーが解釈し、機械の移動や加工動作を制御する命令群です。コントローラーによって、位置、移動方式、送り速度、主軸動作などの加工条件を指定できます。
GコードはCNCルーター、フライス盤、旋盤などのコンピューター制御工作機械で使用されます。一般的な用途には、彫刻、ポケット加工、輪郭切削、木材・樹脂・金属の切削があります。
GコードとMコードの違い
一般にGコードは移動や加工モードを定義し、Mコードは補助機能を制御します。これは一般的な規則であり、実際の動作はコントローラーによって異なります。
l G01:指定した送り速度で直線移動します。
l M03:通常、主軸の正転を指示します。
l M05:通常、主軸の停止を指示します。
l M30:通常、プログラムを終了し、一部の状態をリセットする場合があります。
対応するコマンドや動作は異なるため、使用するCNCコントローラーの説明書を必ず確認してください。
2. Gコードはどのように機能する?
一般的なCNCの作業工程は、主に次の3段階です。
CAD(コンピューター支援設計):彫刻看板やアルミ部品などの形状を作成します。
CAM(コンピューター支援製造):設計を加工工程に変換します。作業者は工具、ツールパスの方式、切削深さ、送り速度などを設定します。
ポスト処理:計算されたツールパスを、特定のCNCコントローラーに対応するGコード形式に変換します。
工程の流れ:
CAD設計 → CAMツールパス → ポストプロセッサー → Gコード → CNCコントローラー → 加工品
どの段階でもエラーは発生します。元の設計が正しくても、工具寸法、ワーク座標、ポストプロセッサー設定、機械設定が不適切なら問題が起こります。
3. 初心者向けの基本Gコードコマンド
移動コマンド
|
コマンド |
機能 |
一般的な用途 |
|
G00 |
早送り位置決め |
位置間の移動 |
|
G01 |
指定送り速度で直線移動 |
直線の切削 |
|
G02 |
時計回りの円弧移動 |
曲線加工 |
|
G03 |
反時計回りの円弧移動 |
曲線加工 |
G00:早送り位置決め
1 G90
2 G00 X10 Y10
絶対座標モードでは、現在の座標系でX=10、Y=10へ早送り移動を指示します。早送りは位置決め用であり、通常の切削送りには使用しません。工具が材料、クランプ、障害物を通過すると衝突する危険があります。
G01:直線移動
1 G21
2 G94
3 G01 X50 Y10 F300
対応するコントローラーでは、G21はミリメートル単位、G94は毎分送り、G01はX=50、Y=10へ毎分300単位の指定送り速度で直線移動する指示です。
適切な送り速度は、材料、工具、主軸回転数、切削深さ、機械の能力によって異なります。
G02とG03:円弧移動
G02とG03は通常、時計回りと反時計回りの円弧移動を指示します。コントローラーによって、I・Jなどの円弧中心オフセット、またはRなどの半径で円弧を定義します。有効な平面や円弧中心モードも解釈に影響します。
不慣れな円弧コマンドを使う前に、対象コントローラーの説明書を確認してください。構文を間違えると、プログラムが拒否されたり意図しないツールパスになったりします。
座標と単位のコマンド
|
コマンド |
機能 |
|
G20 |
対応コントローラーでインチ単位を選択 |
|
G21 |
対応コントローラーでミリメートル単位を選択 |
|
G90 |
絶対座標指定を選択 |
|
G91 |
相対座標指定を選択 |
G90:絶対座標指定
1 G90
2 G00 X50
現在の座標系でX=50への移動を指示します。
G91:インクリメンタル(相対)座標指定
1 G91
2 G00 X50
現在位置からXの正方向へ50単位移動します。現在のX座標が20なら、移動先は70です。一方、G90 X50では移動先はX=50です。
両モードを取り違えると予期しない動きが生じます。不明なコードを実行する前に有効なモードを確認してください。
対応コントローラーでは、G20とG21がプログラムの単位を決定します。ミリメートル用のプログラムをインチとして解釈すると、移動距離が想定と大きく異なります。
送り・主軸・プログラムのコマンド
|
コマンド/文字 |
機能 |
|
F |
送りに関する値を指定 |
|
S |
主軸回転数に関する値を指定 |
|
G94 |
対応コントローラーで毎分送りを選択 |
|
M03 |
通常、主軸の正転を指示 |
|
M05 |
通常、主軸停止を指示 |
|
M30 |
通常、プログラムを終了 |
例:
1 M03 S10000
対応するシステムでは、通常、主軸を時計回りに10,000 RPMで回転させる指示です。実際の主軸動作はハードウェアとコントローラーの設定に依存します。
G94ではFは通常、毎分の移動距離を表します。他の送りモードではFの意味が異なる場合があります。有効な送りモードを確認し、材料、工具、機械に適した値か検証してください。
4. CNCのGコードプログラムの読み方
次の簡略化した例では、直線加工に使用する一般的なコマンドを示します。
重要:これは学習用の例であり、そのまま実行できる加工プログラムではありません。実機に必要な座標、工具、退避距離、安全状態をすべて設定しているわけではありません。対象のCNCシステムに合わせて修正・検証せずに実行しないでください。
1 G21
2 G90
3 G94
4 G17
5 G00 Z5
6 G00 X10 Y10
7 M03 S10000
8 G01 Z-1 F100
9 G01 X50 Y10 F300
10 G00 Z5
11 M05
12 M30
プログラムの解説
|
コード |
意味 |
|
G21 |
ミリメートル単位を選択 |
|
G90 |
絶対座標指定を選択 |
|
G94 |
毎分送りを選択 |
|
G17 |
対応コントローラーでXY平面を選択 |
|
G00 Z5 |
Z=5へ早送り |
|
G00 X10 Y10 |
X=10、Y=10へ位置決め |
|
M03 S10000 |
主軸の正転を指示 |
|
G01 Z-1 F100 |
Z=−1へ制御送りで移動 |
|
G01 X50 Y10 F300 |
X=50、Y=10へ直線移動 |
|
G00 Z5 |
Z=5へ早送り |
|
M05 |
主軸停止を指示 |
|
M30 |
通常、プログラムを終了 |
このプログラムは、単位、座標指定、送り、平面の各モードを設定してから、Z=5への位置決めとX=10、Y=10への移動を指示します。
続いて主軸を動作させ、指定送りでZ=−1へ移動し、X軸に沿ってX=50、Y=10へ進みます。2回目の直線移動では新しいZ座標を指定していないため、対応するモーダル動作では通常、前のZ位置が維持されます。
最後にZ=5への早送り、主軸停止、プログラム終了を指示します。
ワーク表面を正しくZ=0に設定し、適切なオフセットを考慮した場合、Z=−1はその基準より1 mm下を示す場合があります。ただし実際の切削深さはワーク原点、工具設定などによって異なります。Z=5が必ず安全な退避高さとは限りません。
モーダルコマンドとは?
モーダルコマンドは、別のコマンドで変更されるかコントローラーの規則で解除されるまで有効です。例えばG90は通常、別の座標指定モードを選ぶまで有効です。G01も後続の軸移動に引き継がれる場合があります。
したがって、1行だけで命令を判断できるとは限りません。先行するコマンドと有効なモードが後続の動作に影響します。
5. X、Y、Z、F、Sの意味は?
|
文字 |
一般的な意味 |
|
X, Y, Z |
直線軸の座標 |
|
A, B, C |
設定されている場合の追加軸・回転軸 |
|
F |
送り速度または送り関連の値 |
|
S |
主軸回転数関連の値 |
|
I, J, K |
通常、円弧中心パラメーター |
|
N |
任意のプログラム行番号 |
一般的な3軸CNCルーターでは、XとYが作業面内の移動、Zが上下方向の移動を制御します。軸の向きと正方向は機械設定によって異なります。
次のコマンドを考えます。
1 G01 X50 Y10 F300
l G01は指定送り速度での直線移動を表します。
l X50 Y10は有効な座標指定モードでの目的地を表します。
l F300は有効な送りモードでの送り値を表します。
この命令だけでは工具、主軸回転数、切削深さ、ワーク原点は指定されません。これらはプログラムの別の箇所または機械の設定で定義する必要があります。
6. よくあるGコードの問題と対処法
|
問題 |
確認事項 |
|
完成寸法が正しくない |
単位、倍率、ワーク原点、工具径、ツールパス補正 |
|
意図しない移動方向 |
G90/G91、ワーク座標系、軸設定 |
|
切削深さが正しくない |
Zゼロ点、ワークオフセット、単位、指定深さ |
|
プログラムを読み込めない |
コントローラー互換性、ポストプロセッサー、未対応コマンド |
|
衝突の危険 |
ツールパスのシミュレーション、早送り、クランプ、機械の可動範囲 |
|
送り速度が正しくない |
有効な送りモード、単位、F値、コントローラー設定 |
|
円弧移動が正しくない |
G02/G03構文、有効平面、円弧パラメーター |
切削深さが正しくないのはなぜ?
まずZ軸のゼロ点とワーク座標オフセットを確認します。ワーク表面をZ=0とする場合、その基準が正しく設定されているか検証してください。
次にCAM設定と生成されたプログラムを比較します。切削深さ、単位、ワーク原点、工具補正を確認してください。原因不明の誤差を補うために切削深さを無作為に変更しないでください。
機械が逆方向に動くのはなぜ?
G90とG91のどちらが有効かを確認し、ワーク座標系と軸設定を検証します。絶対座標モードは目的地を、相対座標モードは現在位置からの移動量を指定します。
衝突の可能性がある場合は加工を停止し、原因を調べてから再開してください。
プログラムを実行できないのはなぜ?
未対応のコマンドが含まれているか、別のコントローラー向けのポストプロセッサーで生成された可能性があります。
コントローラーの説明書、ファームウェア、ポストプロセッサー設定、エラー表示を確認してください。不明なコマンドをむやみに削除しないでください。位置決め、主軸制御、工具補正に必要な場合があります。
円弧ツールパスが正しくないのはなぜ?
G02/G03の構文、円弧パラメーター、有効平面、円弧中心モードを確認します。コントローラーによって円弧形式や座標規則が異なります。
対応するシミュレーションソフトでツールパスを確認し、生成コードを説明書と照合してください。シミュレーションはプログラムミスの発見に役立ちますが、実機のすべての状態を検証できるわけではありません。
7. 加工前のGコード確認方法
不慣れなコードを実行する前に、次を確認してください。
1. コントローラーとの互換性:対象のコントローラーと機械に適したポストプロセッサーを使用します。
2. 単位とモード:インチ/ミリメートル、絶対/相対座標指定を確認します。
3. ワーク原点:X、Y、Zのゼロ点と適用されるオフセットを確認します。
4. ツールパス:対応シミュレーションソフトで切削移動、早送り、深さ、移動限界を確認します。
5. 加工条件:工具、送り速度、主軸回転数、切削深さが材料と機械に適しているか確認します。
6. 実機の設置状態:ワークと工具を固定し、クランプがツールパスを妨げないことを確認します。
7. 機械の操作手順:必要なクリアランス確認と監督下での初回運転手順を実施します。
シミュレーションだけではプログラムの安全性を保証できません。実際の工具長、治具位置、機械の可動範囲、コントローラー固有の動作を完全には反映しない場合があります。加工前に実機の状態を確認し、メーカーの指示に従ってください。
8. CNC初心者はGコードを学ぶ必要がある?
ほとんどの初心者は、毎回Gコードを手入力する必要はありません。CAMソフトウェアが彫刻、ポケット加工、輪郭切削などのコードを生成します。
それでも基本を理解すれば、生成されたプログラムの確認、予期しない動作の診断、座標の検証、互換性の問題の特定に役立ちます。
実践的な学習順序:
1. G00、G01、G02、G03を識別する。
2. G20/G21とG90/G91を理解する。
3. FとSの値の解釈を学ぶ。
4. 短いプログラムを1行ずつ読む。
5. 対応ソフトウェアで座標、深さ、ツールパスの確認を練習する。
6. 必要に応じてコントローラー固有のコマンドを学ぶ。
よくある質問
Gコードの習得は難しい?
基本は初心者でも習得できます。複雑な命令の前に、移動コマンド、座標、単位、送り速度から学びましょう。
Gコードを手入力せずに生成できる?
はい。CAMソフトウェアは設計と選択した加工工程からGコードを生成できます。対応するポストプロセッサーを選び、加工前にプログラムを検証してください。
同じGコードをすべてのCNC機械で使える?
いいえ。コントローラーごとに対応コマンド、構文、機械固有の設定が異なります。実行前に互換性を確認してください。
GコードとMコードの違いは?
一般にGコードは移動と加工モードを定義し、Mコードは主軸動作やプログラム終了などの補助機能を制御します。
CNCにおけるG90の意味は?
G90は通常、絶対座標指定を選択します。座標値は現在位置からの移動量ではなく、有効な座標系での位置を示します。
G00とG01の違いは?
G00は通常、早送り位置決めに使い、G01は指定送り速度での直線移動を指示します。
CNC機械がGコードを無視するのはなぜ?
コマンドが未対応、書式が不正、またはコントローラーで異なる解釈をされている可能性があります。説明書、ファームウェア、ポストプロセッサー、エラー表示を確認してください。
Gコードとツールパスの違いは?
ツールパスは工具が通る経路を表します。Gコードは、その経路と関連する加工命令を、対応コントローラーが解釈できる形式で表現します。
まとめ
GコードはCNCのツールパスと、部品を作る機械動作を結び付けます。初心者にとって重要なのは、基本コマンドの識別、座標モードの理解、短いプログラムの読解、加工前の設定確認です。
目的はすべての命令を暗記することではありません。プログラムが機械に何を指示するかを理解し、コード、コントローラー、実機設定の追加確認が必要な状況を見分けることです。
Gコードの対応状況と動作は制御システムによって異なるため、必ず対象のCNCコントローラーと機械の説明書を参照してください。