このGコードとMコードのリストには、CNCフライス盤や旋盤を操作するために実際に入力するコードがすべて含まれています。動作や形状を制御する一般的なGコードに加え、スピンドルやクーラントなどの機械機能を切り替えるMコードも網羅しています。制御装置でCNCプログラムを読み取る場合でも、CAMソフトウェアが出力したファイルを手動で編集する場合でも、以下の表と例は、フライス加工と旋削加工の両方を網羅し、Fanuc、Haas、Siemens、GRBL、LinuxCNCの違いも解説しているので、別のタブで開いて参照できる単一の資料として活用できます。
クイックリファレンス:GとMの比較
| Gコード | 準備段階/幾何学 — 機械に指示する コラボレー and の 工具が移動する(G00 早送り、G01 送り、G02/G03 円弧)。 |
| Mコード | その他/機械 — 機能のオン/オフを切り替えます(M03 スピンドルオン、M08 クーラントオン、M30 プログラム終了)。 |
| フォーマット | ワードアドレス: N50 G01 X1.5 Z-0.75 F0.008 M08 — 1文字+数字で「単語」を構成。 |
| 規格 | EIA RS-274 に根ざし、 ISO 6983-1:2009; ほとんどのコントローラが派生しているオープンインタープリタは NIST RS274/NGC スペック |
GコードとMコード:違いは何ですか?

各コードを2つのバケットのいずれかに分類することが、あらゆるプログラムを読み取る最も速い方法です。 Gコード は準備コマンドであり、「G」は通常次のように説明されます。 ジオメトリなぜなら、これらの言葉はカッターにどこへ行き、どの道を進むべきかを指示するからである。 Mコード は、機械に関するその他のコマンドです。スピンドルの始動や冷却液の注入など、機械のどこかのスイッチを切り替えるコマンドです。どちらも、1960年代初頭にEIAが数値制御用に標準化し、後にISOがISO 6983に統合した、同じワードアドレス文法に基づいています。
現場にすぐに適用できる実用的な分割方法を以下に示します。
| メッセージ | Gコード | Mコード |
|---|---|---|
| それは何を制御するのでしょうか? | ツールの動き、座標、補間、オフセット | スピンドル、クーラント、工具交換、プログラムの流れ |
| 軸を動かしますか? | 多くの場合そうです(G00、G01、G02) | いいえ |
| それは助動詞ですか? | 多くは(キャンセルされるまでアクティブ状態を維持します) | 一部(M03/M05)は単発作品です。 |
| 例: | G01 X2.0 F10.0 |
M08 (冷却水作動中) |
すべての方言を合わせると約 100 種類の G コードが存在しますが、個々のマシンが使用するワーキング セットはそれよりもはるかに少ないです。M コードは数が少なく、ビルダー間での一貫性もはるかに低いですが、これは覚えておくべき重要な点です。なぜなら、後述する「このプログラムは他のマシンでは問題なく動作した」という問題のほとんどを説明できるからです。マシン自体のメンタル モデルをまだ構築している場合は、 旋盤加工とフライス加工の基礎 このコードリファレンスと相性が良い。
Gコードブロックの読み方:アドレス文字と構文

CNCコードの行は コロナ新型ウィルス(COVID-XNUMX)やメンタルヘルスの崩壊を避ける為の、そして各ブロックは単なる「単語」の文字列です。各単語は1文字(アドレス)とそれに続く数字(値)です。文字の意味がわかれば、ほとんどすべてのブロックを声に出して読むことができます。私たちはこれを新しいオペレーターに次のように教えています。 NG-XYZ-FSTMルール文字はおおよそその順序で現れる傾向があり、その順序は機械が考える順序と一致します。つまり、行番号、どのような動きをするか、どこへ移動するか、どれくらいの速度で、どれくらいの速度で回転させるか、どのツールを使用するか、どのスイッチを切り替えるか、ということです。
| 手紙 | 意味 | 例: |
|---|---|---|
| N | ブロック(行)番号 | N50 |
| G | 準備動作/動作指示 | G01 |
| XとZ | 軸位置(目的地) | X1.5Z-0.75 |
| IJK | 円弧の中心(開始点からの相対位置) | I0.5 J0 |
| F | 供給速度 | F0.008 |
| S | 主軸速度 | S1200 |
| T | 工具番号 | T0303 |
| M | 機械機能 | M08 |
このブロックを読んでくださいN50 G01 X1.5 Z-0.75 F0.008 M08そしてこう書いてあります。「50行目で、X1.5、Z-0.75まで直線的に0.008/回転で送り込み、冷却液の注入をオンにする。」これがコツの全てです。 CNC旋盤 これはマシニングセンターを駆動する装置であり、軸の文字といくつかの固定サイクルだけが変化する。
A モーダル コードは、同じグループ内の何かがそれをキャンセルするまで、ブロックの実行後もアクティブな状態を維持します。コマンド G01 を一度実行すると、G00、G02、または G03 を呼び出すまで、後続のすべてのブロックがラインを供給し続けます。G04 dwell などの非モーダル (ワンショット) コードは、それが出現するブロックでのみ動作します。これらを混同することが、「なぜツールが高速で落下したのか?」というクラッシュのほとんどの原因です。
モーダルグループ:なぜ一部のコードは互いに打ち消し合うのか

コードのリストを実用的なメンタルモデルに変換する概念は次のとおりです。Gコードは次のように分類されます。 モーダルグループ各グループからは一度に 1 つのコードしかアクティブにできません。同じグループから 2 番目のコードを呼び出すと、最初のコードが静かに置き換えられます。これは設計上の仕様であり、2 つのモーション コードを含むブロックがアラームを発する理由でもあります。グループを理解することで、「なぜ 1 つの G コードが別の G コードを打ち消すのか?」という初心者の疑問に答えることができます。
| モーダルグループ | グループ内のコード | 電源投入時のデフォルト設定 |
|---|---|---|
| モーション | G00、G01、G02、G03 | 通常G00 |
| 飛行機の選択 | G17、G18、G19 | G17(フライス盤)、G18(旋盤) |
| 我が軍の部隊数 | G20、G21 | 機械パラメータ |
| 距離モード | G90、G91 | G90アブソリュート |
| カッターコンポーネント | G40、G41、G42 | G40オフ |
| 勤務オフセット | G54~G59 | G54 |
| フィードモード | G93、G94、G95 | G94(ミル) |
| 固定サイクル | G73~G89、G80は中止 | G80オフ |
だからあなたが書くとき G90 G54 G17 G00 X0 Y0 プログラムの先頭では、絶対距離、作業オフセット1、XY平面、高速移動など、複数のグループからそれぞれ1つのコードを設定します。これらの設定は、変更するまで保持されます。これが、いわゆる「セーフスタート」行の意味するところです。
Gコード一覧(一般的なコード:G00~G99)

以下は、各コードの機能ごとに分類された、マスターGコードリストです。これらは、ファナックスタイルの制御装置の大部分で使用されているコードです。一部のコードには、制御装置比較のセクションで説明されている方言上の癖があります。このページをブックマークしておくと、「GコードMコードリストPDF」を検索する際に多くの人が探している印刷可能なチートシートとしても役立ちます。
| CPコード | グループ | 演算 |
|---|---|---|
| G00 | モーション | 素早いポジショニング(切断動作を伴わない) |
| G01 | モーション | Fレートでの直線送り移動 |
| G02 | モーション | 時計回りの円弧補間(アーク) |
| G03 | モーション | 反時計回りの円形補間 |
| G04 | モーション | 一時停止(ドウェル)、PまたはXで時間を指定 |
| G17 / G18 / G19 | 飛行機 | XY / XZ / YZ 作業平面を選択してください |
| G20 / G21 | 我が軍の部隊数 | インチ/ミリメートルプログラミング |
| G28 | モーション | 機械のホーム(基準)位置に戻る |
| G30 | モーション | 2番目/3番目の基準点に戻る |
| G40 / G41 / G42 | カンプ | カッター(半径)補正オフ/左/右 |
| G43 / G49 | カンプ | 工具長補正オン/キャンセル |
| G53 | 座標 | 機械座標系で移動する(オフセットをキャンセル) |
| G54~G59 | 座標 | 作業座標系1~6 |
| G73 / G83 | 缶詰 | 高速ペック/フルリトラクトペックドリル |
| G80 | 缶詰 | 固定サイクルをキャンセル |
| G81 / G82 | 缶詰 | 単純ドリル/ドウェル付きドリル |
| G84 | 缶詰 | タッピングサイクル |
| G85 / G86 | 缶詰 | 退屈なサイクル |
| G90 / G91 | 距離 | 絶対値/漸進的プログラミング |
| G93 / G94 / G95 | フィードモード | 逆時間 / 分あたり / 回転あたりの送り量 |
| G96 / G97 | スピンドル | 表面速度一定/キャンセル(回転数一定) |
| G98 / G99 | 缶詰* | サイクル(ミル)後に初期/R平面に戻る |
*多くのファナック旋盤制御装置では、G98/G99は代わりに1分あたりの送り量と1回転あたりの送り量を設定します。これは、以下に詳述する方言の違いの1つです。
Mコード一覧(機械およびプログラム機能)

Mコードは、スピンドルの始動と停止、クーラントの切り替え、工具の交換、プログラムの終了など、動作以外のすべての処理を担います。一般的なMコードは短く、毎日十数個程度使用します。
| CPコード | 演算 | Notes |
|---|---|---|
| M00 | プログラム停止(必須) | サイクル開始ボタンを押して再開します |
| M01 | オプションの停止 | 「オプション停止」がオンの場合のみ |
| M02 | プログラムの終了 | 巻き戻しなし |
| M03/M04 | スピンドル回転方向(時計回り/反時計回り) | S値が必要です |
| M05 | スピンドルストップ | - |
| M06 | 工具交換 | Tで始まる単語とペアになる |
| M07 / M08 / M09 | ミスト/フラッドクーラントオン、クーラントオフ | M07は全てのマシンに搭載されているわけではありません |
| M29 | 硬質タッピングモード | ファナック製。G84の前身。 |
| M30 | プログラムを終了して巻き戻す | 一番上に戻る |
| M98/M99 | サブルーチン呼び出し/戻り | M99はプログラムをループさせる機能も備えている。 |
Mコードは、この言語の中で最も標準化されていない部分です。冷却液、パレット、補助装置などのMコードはメーカーによって異なり、追加ハードウェアを備えた機械では独自のMコードが追加されます。最後に実行した制御で使用した番号が、必ずしも同じ意味を持つとは限らないため、必ず機械のマニュアルにあるMコードのページを確認してください。
CNC旋盤(旋削加工)用のGコードとMコード

公開されているコードリストのほとんどはフライス盤向けに書かれているため、旋盤プログラマーは手探りで作業することになります。旋盤は基本的な動作コードとプログラムコードはフライス盤と共通ですが、フライス盤にはない旋削加工専用のレイヤーが追加されています。傾斜ベッド型または平ベッド型の旋盤を使用する場合は、以下のコードが重要になります。
| 旋盤コード | 演算 |
|---|---|
| G50 | 最大スピンドル速度を固定する(または座標を設定する、制御方式による) |
| G96 / G97 | 定速オン/オフ - 旋回時の主力コンビ |
| G70 | 仕上げサイクル |
| G71 | 荒削り(材料除去)サイクル |
| G72 | 粗面処理サイクル |
| G74 / G75 | 断続穴あけ/溝加工サイクル |
| G76 | 糸通しサイクル |
| G41 / G42 / G40 | 工具先端半径補正 左 / 右 / オフ |
一定の表面速度は 大きな概念的な違い。 コール G96 S500 また、制御によりスピンドル回転数を変化させることで、直径が縮小しても工具の切削速度は毎分500フィートに維持され、テーパー加工や面取り加工を施した部品をきれいに仕上げるために必要な性能を発揮します。 G97 S1500 固定回転数をロックするには、センター穴あけやねじ切り加工に必要な機能が必要です。当社が出荷するファナック式制御装置には、ANTISHICNC が搭載されています。 傾斜ベッド式CNC旋盤 モデルによっては、ドリル加工サイクルの前に G97 が欠落していることが、私たちがよく目にする最初のプログラム作成時のミスの 1 つです。ツールが中心に近づくと、スピンドルは加速し続けます。
「旋削加工では、コードだけでなく手順も重要です。まずワークオフセットを設定し、次にG96とG50のスピードクランプを設定し、最後に工具を設定します。クランプをスキップすると、最初の小径加工でスピンドルが安全限界を超えて回転する可能性があります。」
G94 Gコードとは何ですか?
G94は 1分あたりの給餌量 モード: F 値は、1 分あたりの工具移動量の単位 (インチまたはミリメートル) として読み取られます。これは、G93 (逆時間) および G95 (1 回転あたりの送り量) とともに送りモードのモード グループに属し、フライス盤制御装置では G94 が通常のデフォルトです。注意すべき点は旋盤です。多くの Fanuc 旋盤制御装置では、送りモードのペアは実際には G98 (1 分あたり) と G99 (1 回転あたり) であり、G94/G95 は他の機能に割り当てられている場合があります。旋盤では、回転数に関係なく仕上げが一定になるように、ほとんどの場合、1 回転あたりの送り量が必要となるため、ほとんどの旋盤プログラムでは G99 (または制御装置によっては G95) を設定します。不明な場合は、制御装置がどの「システム」を使用しているかを確認してください。これは、プログラミング マニュアルの送りモード コードに記載されています。
缶詰サイクルの説明:穴あけ、ねじ切り、ボーリング

A 缶詰サイクル ドリル加工、引き戻し、移動、再ドリル加工といった繰り返し作業を1行にまとめます。1回の穴あけごとに手動でプログラミングする代わりに、サイクルを一度呼び出し、穴の位置をリストアップし、G80でキャンセルします。これにより、数十行のコードを削減でき、穴のパターンも一目で読みやすくなります。
- ✔G81直線穴あけ:R平面まで早送り、Z深さまで送り、早送りで引き抜き。
- ✔G83ペックドリル:Q刻みで少しずつドリルを落とし、深い穴の場合は完全に後退させて切りくずを取り除きます。
- ✔G84タッピング:送り込み、スピンドルを反転させ、ねじピッチで送り出す。
- ✔G85 / G86ボーリング:事前に開けられた穴を、精密かつ低送りでサイズ調整する加工。
ペックドリルブロックは次のような形をしています G83 Z-1.0 R0.1 Q0.2 F8.00.1の後退面から開始し、0.2刻みで、毎分8インチの速度でZ-1.0まで穴あけします。その後に穴のXY座標をリストし、G80まで各穴でこのサイクルを繰り返します。
CNCにおいてG84はどのような役割を果たしますか?
G84 は右ねじ切りサイクルです。タップを所定の深さまで送り込み、停止してスピンドルを反転させ、その後送り戻します。すべてが同期しているため、タップはねじ山を切断することなく、自身のねじ山に沿って回転します。送り速度はねじ山のリードと一致する必要があります。送り速度は、スピンドルの回転数にピッチを掛けた値です。毎分送りモードで 300 rpm の M8×1.25 タップの場合、300 × 1.25 = 375 mm/分となります。ファナック制御装置では、通常、G84 の直前に M29 (リジッドタッピングモード) をコマンドして、スピンドルと Z 軸をロックした状態に保ち、テンション/コンプレッションホルダを使用せずに正確なタッピングができるようにします。スピンドルが所定の速度に達し、スムーズに反転できるように、R 平面をワークから十分に離れた位置に設定します。M29 を忘れて、リジッドホルダで G84 を「フローティング」モードで実行すると、タップが折れる典型的な原因となります。
完全なGコードサンプルプログラム(フライス盤および旋盤用)

表形式のコードを読むのと、実際のプログラムでコードを見るのとでは全く違います。実際のプログラムでコードを見ることで、理解が深まります。以下に、コメント付きの短い例を2つ示します。各行は上記の表に対応しています。
フライス加工の例面を面取りして穴を1つ開ける:
O1001 N10 G90 G54 G17 G21 (絶対座標、オフセット 1、XY 平面、mm) N20 G00 X0 Y0 (早送り開始) N30 T1 M06 (ツール 1 をロード) N40 S1200 M03 (スピンドルを CW に、1200 rpm) N50 G43 H1 Z25.0 (ツール長オフセット、安全 Z) N60 M08 (クーラントを注入) N70 G83 Z-15.0 R2.0 Q3.0 F150 (穴を断続的にドリル加工) N80 G80 (サイクルをキャンセル) N90 M09 (クーラントをオフに) N100 G28 Z0 M05 (Z をホーム、スピンドル停止) N110 M30 (終了して巻き戻し)
転換例粗削りと仕上げの直径:
O2001 N10 G21 G99 G40 (mm、1回転あたりの送り、コンプレッサーオフ) N20 G50 S2500 (クランプ最大スピンドル 2500 rpm) N30 T0101 (旋削工具、オフセット 1) N40 G96 S180 M03 (定速表面速度 180、スピンドル CW) N50 G00 X52.0 Z2.0 M08 (アプローチストック、クーラントオン) N60 G71 U2.0 R1.0 (荒削りサイクル) N70 G70 P80 Q120 (プロファイルの仕上げパス) N130 G97 S1200 (定速回転に戻る) N140 G00 X200 Z200 M09 (リトラクト、クーラントオフ) N150 M05 (スピンドル停止) N160 M30 (プログラム終了)
初回実行前に、シミュレータでファイルをドライランしてください。無料のオンラインGコードシミュレータとビューアを使えば、逆アークやG80の欠落を数秒で検出できます。これは、部品にツールを入れて検出するよりもはるかに安価です。切削加工を行う場合でも、最初に検証する習慣は変わりません。 CNC立形マシニングセンター または旋削センター。
制御方式別のGコードとMコードの違い:ファナック、ハース、シーメンス、GRBL、LinuxCNC

単一制御リストが隠している真実はこうだ。普遍的なGコードは存在しない。動作コード(G00~G03)とセーフスタートコードはほぼどこでも同じで、その部分は確かに標準化されている。しかし、固定サイクルパラメータ、マクロ構文、送りモードの割り当て、そしてほとんどのMコードは、メーカーによって異なる。「標準Gコード」は、基本を除けば、ある意味で神話に過ぎない。
| 管理 | 違いはどこにあるか |
|---|---|
| ファナック | 事実上の基準値。マクロB変数、G98/G99による旋盤送りモード、M29リジッドタップ |
| ハース | Fanucに似た動作にHaasのMコード(例:M97ローカルサブコール)と設定駆動型の動作が追加された |
| シーメンス(SINUMERIK) | Gコードに加え、独自の高水準言語とShopTurn/ShopMillステップをサポートしています。 |
| GRBL エクステンション | 趣味用ルーターや3Dプリンタークラスのハードウェア向けのサブセット。固定サイクルは含まれません。 |
| LinuxCNC | NIST RS274/NGC方言に厳密に準拠。スプラインとプロービング用の追加Gコード。 |
機械加工技術者はよく同じ教訓を報告します。ある制御装置で検証済みのプログラムが、別の制御装置では不具合を起こしたり、さらに悪いことに、正しく動作しなかったりすることがあります。これは通常、動作コードではなく、送りモードや固定サイクルの違いが原因です。修正するには、コードではなく習慣が必要です。CAMから対象の制御装置にプログラムを再送信するか、プログラムを信頼する前に、実際の機械で単一ブロックで検証してください。 LinuxCNC Gコードリファレンス これは、「標準に準拠した」インタープリタがコードをどのように定義するかを確認したい場合に役立つ中立的な基準となります。
GコードとMコードでよくある間違い

コード自体は単純だが、エラーは文脈から生じる。初心者プログラマーが陥る問題のほとんどは、いくつかのパターンに起因する。
- 安全始動ライン(G90、G54、G17、G40、G80)で開けてください。
- 次の移動の前に、G80で固定サイクルをキャンセルしてください。
- 旋盤で穴あけやねじ切りをする前に、G97を設定してください。
- 新しいプログラムの最初の実行をシングルブロックで実行する
- G91をオンにしたままにして、次のプログラムをインクリメンタルに実行します
- Mコードはどのマシンでも同じ意味を持つと仮定する
- G84でタップするが、M29の固定モードを忘れる
- 弧の方向が間違っている(G02とG03の差)またはI/J/Kの符号が間違っている
手動加工からCNCに移行する場合、手動制御で培ったのと同じ感覚を身につけることが役立ちます。オペレーターがダイヤルを読み取る方法は、 デジタル読み出し(DRO) 報酬、そしてそれはサイクル開始ボタンを押す前にコードを読むことに直結します。仕事に適切なツールを合わせることも同様に重要です。私たちのガイドでは、 旋盤切削工具 その面を覆う。
変化の兆し:会話型プログラミング、CAM、そしてAI

手書きでプログラム全体を作成する作業は、もはや日常的な仕事ではなくなりました。2026年以降、ほとんどの生産用GコードはCAMソフトウェアとそのポストプロセッサによって生成され、その後機械上で編集されます。そのため、2交代制の勤務体制を検討することをお勧めします。
まず、 会話型プログラミング 普及が進んでいます。HaasやSiemens ShopTurnのような制御装置では、オペレーターがフィーチャ、穴、ねじ、面などを指定すると、制御装置がそれに基づいてGコードを生成します。これにより、単純な部品の加工のハードルは下がりますが、コードの知識は不要になるわけではありません。対話型プログラムが編集を必要としたり、アラームが発生したりした場合は、Gコードに戻る必要があります。次に、シミュレーションは贅沢品ではなく、デフォルトの手順になりました。Gコードシミュレータの検索数は月間約1,000件に達しており、切削前に検証することが標準的な手順になっていることを示しています。送り速度を調整し、衝突を警告するAI支援ツールパスツールが主流のCAMに登場していますが、プログラマがレビューする必要のある変更が提案されています。
2026年にショップを開設したり、オペレーターをトレーニングしたりする場合、現実的なアプローチとしては、まずGコードの知識を教え、会話型ツールやAIツールをその上にアクセラレーターとして活用することです。このリストにある基本事項は、まさにこれらのツールが生成するものであり、何かを修正する必要があるときに読むものです。プログラミングの成熟度が機械の購入にどのように影響するかについては、概要をご覧ください。 金属旋盤 操作オプションを順を追って説明します。
よくある質問
Q: GコードとMコードの違いは何ですか?
回答を見る
Q: 最も一般的なGコードは何ですか?
回答を見る
Q:CNCにおけるMコードとはどういう意味ですか?
回答を見る
Q:GコードとMコードは、すべてのCNCマシンで同じですか?
回答を見る
Q:CNC旋盤はどのようなGコードとMコードを使用しますか?
回答を見る
Q: GコードとMコードのリスト(PDFまたは早見表)はどこで入手できますか?
回答を見る
新しい旋盤センターのプログラミング?
ANTISHICNCは、標準的なファナック式Gコードに対応したCNC旋盤を製造しており、対話型オプションと40カ国以上で3年間のサポートを提供しています。お客様の部品をお知らせいただければ、最適な機械と制御装置をご提案いたします。
このリストを作成した理由
私たちはCNC旋盤の製造を生業としていますが、納品後にお客様から最初に聞かれるのは「コード一覧はどこにありますか?」といった内容です。オンライン上の資料のほとんどはフライス加工のみを扱っていたり、特定の制御装置ブランドに限定されていたりするため、私たちはフライス加工と旋盤加工のコードを一覧にまとめ、制御装置の違いも明記した一覧を作成しました。これには、当社の機械が毎日実行しているG96/G97およびG70~G76の旋削サイクルも含まれています。
参考文献と情報源
- NIST RS274/NGCインタープリタ、バージョン3米国国立標準技術研究所(NIST)
- NIST RS274NGCインタープリタ、完全版レポート(PDF)NIST内部報告書
- ISO 6983-1:2009、自動化システムと統合、NCプログラム形式国際標準化機構
- LinuxCNC GコードクイックリファレンスLinuxCNC.org
- GコードWikipedia(RS-274の概要と歴史)
関連記事
- 旋盤加工とフライス加工の基本を理解するこれらのコードが実際に動作するマシンの仕組み
- 初心者のための必須旋盤切削工具旋削プログラムに最適なツールを組み合わせる
- CNC立旋盤について解説大径部品の旋削加工
- 旋盤で作れるプロジェクトプログラムを実行する
ANTISHICNCのエンジニアリングチームがレビューしました。彼らは25年以上にわたりCNC旋盤とマシニングセンターを製造してきました。弊社の機械のプログラミングについてご質問がありますか? エンジニアリングチームにご相談ください.













