NC旋盤のプログラムはGコードの種類が多く、どこから読めばよいか迷いがちです。まずブロックの構成と直径で指令する座標の読み方を押さえ、コードの割当が機械で違う点だけ確認すれば読み進められます。
基本構成、座標、コード表、厚生労働省の例題、制御装置による違い、学習ツールの選び方を解説します。
NC旋盤のプログラムとは?
NC(Numerical Control)は数値制御の意味で、NC工作機械は数値制御で動作する機械です。
この機械を「どのような条件でどのように動作させるか」を、記号と数値で記したものがNCプログラムです。
NC旋盤の仕組みや種類は「NC旋盤とは?仕組み・種類・メリットを初心者向けにわかりやすく解説」で、CNC旋盤との違いは「CNC旋盤とは?NC旋盤との違いや種類・メリット・選び方をわかりやすく解説」で扱っています。
旋盤加工の基本は「旋盤加工とは?加工の種類・手順・メリットをわかりやすく解説」にまとめています。
出典:中村留精密工業「Gコード、Mコードとは?NC旋盤のプログラムを解説【第一弾】」(1. NCプログラムとは)
NC旋盤のプログラムの基本構成
コードの意味を覚える前に、行の読み方を固定しておきます。押さえるのは、ブロックとワード、番号、モーダル、T・S・Fコードの4点。
ブロックとワード、行末のEOB
プログラムは複数のブロックで構成され、ブロックはワード(アドレスと数値の組合せ)で構成されます。G01は、アドレスGと数値01の組合せで1ワードです。
ブロックの末尾には、ブロックの終わりを示すEOB(エンドオブブロック)を付けます。
EOBは「;」で表しますが、エディタの改行で代用できる場合もあります。
プログラム番号Oとシーケンス番号N、コメントの書き方
プログラムの先頭は、アドレスOで始まるプログラム番号です。ブロックの先頭に付けるNで始まるシーケンス番号は、省略可能です。
シーケンス番号は工程の目印になり、途中からスタートするときの区切りに使えます。
厚生労働省のマニュアルでは、プログラム番号は1〜9999、シーケンス番号は1〜99999の範囲です。丸カッコ内のコメントは動作に影響しません。
モーダルとワンショット
Gコードには2種類あり、指令したブロックだけ有効なものがワンショット、同じグループの別のコードが指令されるまで有効なものがモーダルです。
異なるグループのコードは、同じブロックに複数指令できます。モーダルは前の指令が続くため、動作を変えたいブロックでは書き忘れがないかを確かめます。
T・S・Fコードの意味
Tコードは工具機能で、4桁なら上2桁が刃物台の工具番号、下2桁が工具補正番号です。T0101は1番工具・1番補正を指し、桁数は機種で異なります。
Sコードは主軸機能で、G97では回転数、G96では切削速度(周速)を表します。Fコードは送りで、毎回転送りでは主軸1回転あたりの移動量(mm/rev)です。
出典:厚生労働省「数値制御旋盤作業編(3級技能検定の実技試験課題を用いた人材育成マニュアル)」([4]-1 プログラミングの基礎知識 ①プログラムの構成)
出典:中村留精密工業「座標計算の求め方は?NC旋盤のプログラムを解説【第二弾】」(2. NCプログラムの基本構成 ①②・Tコード・S指令)
出典:新潟大学工学部「第2章 NC言語について」(1・5 NC言語について、1・7 プログラム番号およびシーケンス番号)
座標系とプログラム原点の考え方
座標の読み方は、旋盤ならではのポイントです。Xが直径で指令される点を押さえると、手計算の座標も迷いません。
Xは直径、Zは長手方向で指令する
直径方向をX軸、長手方向をZ軸で表し、加工原点(X0、Z0)を基準に各ポイントの座標を指令します。X100.0なら直径100mmの位置を指し、X軸の移動量は50mmです。
通常は加工端面と主軸中心が交わる点を加工原点にします。端面をZ0とするため、切削はZ軸のマイナス側へ向かいます。
絶対値指令(X・Z)と増分値指令(U・W)
絶対値指令は、プログラム原点からの座標値(X・Z)で位置を表す方式です。
増分値指令は、現在の位置からの移動量(U・W)で表します。X・Uは直径指令、Z・Wは長手指令で、基準が原点か現在位置かの違いです。
C面の座標を手計算で求める考え方
45°のC面は、斜辺ではない1辺の長さの2倍をプラスまたはマイナスすれば、径方向の座標を求められます。直径指令のX値に半径方向の寸法をそのまま入れていないか、図面の寸法と見比べて確認します。
出典:中村留精密工業「座標計算の求め方は?NC旋盤のプログラムを解説【第二弾】」(3. 座標指令・4. 座標計算 ポイント2)
出典:厚生労働省「数値制御旋盤作業編(3級技能検定の実技試験課題を用いた人材育成マニュアル)」(アドレス表のX・Z・U・W、⑥移動量の指令方式)
よく使うGコード・Mコード一覧
コード表は、中村留精密工業の解説にあるファナック製NC旋盤の例です。同じ機能でも制御装置や機械メーカーで番号が変わるため、表は一例として読んでください。
主要なGコード一覧表
中村留精密工業の解説では、ファナック製NC旋盤を例に、最低限必要なGコードを16程度としています。
|
Gコード |
意味 |
|---|---|
|
G00 |
位置決め(早送り) |
|
G01 |
直線補間(切削送り) |
|
G02 |
円弧補間(時計回り) |
|
G03 |
円弧補間(反時計回り) |
|
G04 |
ドウェル |
|
G28 |
リファレンス点(機械原点)復帰 |
|
G40 |
刃先R補正キャンセル |
|
G41 |
刃先R補正 |
|
G42 |
刃先R補正 |
|
G50 |
主軸最高回転数設定 |
|
G54 |
ワーク座標系1選択 |
|
G92 |
ネジ切りサイクル |
|
G96 |
周速一定制御 |
|
G97 |
周速一定制御キャンセル(回転数一定) |
|
G98 |
毎分送り |
|
G99 |
毎回転送り |
G41・G42の左右の向きは後述のノーズR補正の説明で、G50の別の意味は制御装置による違いの説明で、それぞれ触れます。
主要なMコード一覧表と、機械メーカーで番号が変わる点
Mコードは補助機能にあたり、主に機械を動作させる指令が中心です。
Mコードは機械メーカーが定義するため、同じ番号でも動作する機器が機械ごとに異なります。中村留精密工業の解説では、1ブロックに指令できるMコードは1つです。
プログラム終了は、厚生労働省の例ではM02、中村留精密工業の機械の例ではM30と、機械で異なります。
|
Mコード |
意味 |
|---|---|
|
M00 |
プログラム停止 |
|
M01 |
条件付きプログラム停止 |
|
M02 |
プログラム終了 |
|
M03 |
主軸正転 |
|
M04 |
主軸逆転 |
|
M05 |
主軸停止 |
|
M08 |
切削油剤(クーラント)入り |
|
M09 |
切削油剤(クーラント)切り |
|
M30 |
リセット&リワインド、プログラム終了(中村留精密工業の機械の例) |
|
M98 |
サブプログラム呼び出し |
|
M99 |
メインプログラム復帰 |
出典:中村留精密工業「Gコード、Mコードとは?NC旋盤のプログラムを解説【第一弾】」(よく使用されるGコード一覧・Mコード)
出典:厚生労働省「数値制御旋盤作業編(3級技能検定の実技試験課題を用いた人材育成マニュアル)」(③準備機能(Gコード)、④補助機能(Mコード))
出典:シーメンス・ジャパン「ユーザーズマニュアル プログラミング編 Gコード説明書 旋盤用」(3.7 M機能)
厚生労働省の例題で読む、外径を削るプログラム
厚生労働省は、過去の3級技能検定の実技試験問題を題材にした初級向けの人材育成マニュアルを公表しています。この章で読むのは、そのマニュアルにある作業例のプログラムです。
順序は一例で、これが唯一の正しい並びではありません。
例題の条件と全体の流れ
条件は、外径φ90mmの材料を端面から30mm荒加工して、φ85mmに削ることです。
プログラム番号はO1111で、N100からN110までの11ブロックのうち、N100〜N103が主軸回転までの準備、N104〜N110が切削と退避、停止、終了です。
前半:最高回転数・周速一定・主軸正転
|
ブロック |
動作 |
|---|---|
|
N100 G50 S2000; |
最高回転数を2000min⁻¹に設定 |
|
N101 G00 X200.0 Z200.0 T0100; |
早送りで位置決めし、1番工具を選択 |
|
N102 G96 S120; |
周速一定制御、周速度120m/min |
|
N103 M03; |
主軸正転 |
周速一定制御では、径が小さくなるほど回転数が上がり続け、素材がチャックから外れる危険があります。
周速一定制御を使うときは、G50で最高回転数を必ず指定します。G50 S2000は上限の設定であって、その回転数で固定する指令とは別物です。
ねじ切りは回転数一定(G97)で指令し、詳しくは「ねじ切り旋盤とは?仕組み・種類・加工手順と旋盤選びのポイントを解説」で解説しています。
後半:切削・退避・停止・終了
|
ブロック |
動作 |
|---|---|
|
N104 G00 X85.0 Z100.0 T0101; |
早送り、1番工具・1番補正 |
|
N105 G00 X85.0 Z2.0 M08; |
早送り、切削油剤入り |
|
N106 G01 Z-30.0 F0.25; |
直線補間でZ-30.0まで切削、送り0.25mm/rev |
|
N107 X92.0; |
X軸を素材外径より外側の92.0へ移動 |
|
N108 G00 X200.0 Z200.0 M09; |
早送りでN101と同じ座標へ戻り、切削油剤切り |
|
N109 M05; |
主軸停止 |
|
N110 M02; |
プログラム終了 |
切削はN106の1ブロックで、Z-30.0まで進みます。終了コードは前述のとおりM02です。
同じ荒加工を短く書く方法:G71とG70
厚生労働省の例題はG71を使いません。同じ荒加工を短く書く例は、ファナック旋盤系CNCを例にした中村留精密工業の書式です。体系Cの機械では、この番号が異なります。
G71は2行で1セットの指令で、2行とも省略不可です。
1行目のUは切込み量を半径値で指令し、2行目のUは仕上げ代を直径指令で指令します。仕上げはG70 P_ Q_ の1行で、P・Qは仕上げ形状の開始・終了シーケンス番号です。
出典:厚生労働省「数値制御旋盤作業編(3級技能検定の実技試験課題を用いた人材育成マニュアル)」(はじめに、[4]-3 加工プログラムの基本パターン、【参考】作業例・プログラム例)
出典:中村留精密工業「座標計算の求め方は?NC旋盤のプログラムを解説【第二弾】」(2. NCプログラムの基本構成 ③G50 S2000、コラム 周速一定制御G96)
出典:中村留精密工業「荒加工プログラムを簡単に作成するサイクルを解説【G71 外径荒削りサイクル】」(4. G71プログラムの解説)
出典:中村留精密工業「G71と組み合わせて指令する仕上げ加工プログラムを解説【G70 仕上げサイクル】」(3. G70プログラム解説)
円弧加工とノーズR補正のプログラム
円弧は円弧補間のコードで指令し、刃先の丸みは補正のコードで吸収します。
円弧補間G02・G03の書式
G02は時計回り、G03は反時計回りの円弧補間で、回り方は刃具の進行方向を基準に決まります。終点のX・Zと半径R、送りFを指令し、書式の例はG02 X30.0 Z-10.0 R1.0 F0.1です。
半径Rのかわりに、I・Kで円弧の中心を指令する方式もあります。
ノーズR補正G40・G41・G42の考え方
刃先には丸み(刃先R・ノーズR)があるため、プログラム上の刃先位置(仮想刃先)は実際には存在しません。
補正なしの加工では、テーパ切削や円弧切削で、プログラムした形状と加工した形状に誤差が出る点が問題です。
G41は刃先の進行方向に対して素材が右側にある場合、G42は素材が左側にある場合に指令します。
加工途中で進行方向が変わる箇所では、いったんキャンセルして、進行方向に合うコードを指令し直します。
補正を有効にするタイミングとキャンセル
補正を有効にするのは、加工を始める前の早送り(G00)の行です。加工が終わり、加工物から刃先が離れてからG40でキャンセルします。
補正量(刃先R)と仮想刃先番号(T)をオフセット画面に入力しないと、G41・G42を指令しても補正されません。
出典:中村留精密工業「座標計算の求め方は?NC旋盤のプログラムを解説【第二弾】」(6. 円弧補間(G02、G03))
出典:中村留精密工業「ノーズR補正の考え方は?NC旋盤のプログラムを解説【第三弾】」(2. 仮想刃先、4. 刃先R補正G40、G41、G42、5. スタートアップとキャンセル)
制御装置・メーカーで変わるプログラムの違い
前述のコードは、制御装置によって番号や意味が変わる場合があります。
NC装置の種類と、確認すべき説明書
中村留精密工業の解説では、NC装置メーカーにいくつかの種類があり、旋盤系とマシニング系で若干の違いがあります。代表例は、ファナック、シーメンス、ハイデンハインなどです。
使用する機械がどこのNCを搭載しているかでプログラムの内容も変わるため、搭載NCを先に確認します。
オークマ機のシリーズは「オークマNC旋盤とは?シリーズ一覧と中古選びを解説」で整理しています。
Gコード体系A・B・Cで同じ機能のコード番号が変わる
|
機能 |
体系A |
体系B |
体系C |
|---|---|---|---|
|
ワーク座標系の設定 |
G50 |
G92 |
G92 |
|
最高回転数のクランプ |
G50 S |
G92 S |
説明書で確認 |
|
毎回転送り/毎分送り |
G99/G98 |
G95/G94 |
説明書で確認 |
|
複合形固定サイクル |
G70〜G76 |
G70〜G76 |
G72〜G78 |
旋盤用CNCにはGコード体系A・B・Cがあり、同じ機能に別のコード番号を割り当てる制御装置があります。
体系Aの列は、中村留精密工業の記述と、シーメンス・ジャパンのGコード説明書の体系Aの記載を合わせたものです。
G50は、体系Aでは座標系の設定と最高回転数の設定を兼ね、G92は中村留精密工業の例でネジ切りサイクルとされています。
同じ番号でも意味が変わるため、体系の確認先は手元の機械の説明書です。
オークマ・マザックの対話式の特徴
オークマのOSPの沿革には、旋盤荒加工用の自動プログラミング「LAP」(1971年)と、対話形式の入力機能「IGF」(1981年)の開発が記されています。
マザックの旋盤HQRは、マザトロールプログラムに加え、EIA/ISOプログラムでも作成できる機種です。
HQRの上下刃物台の加工プログラムは、加工材質や仕上がり面粗度などを対話メニューから選択、入力すると、切削条件と工具経路が自動で作成されます。
出典:中村留精密工業「Gコード、Mコードとは?NC旋盤のプログラムを解説【第一弾】」(1. NCプログラムとは)
出典:シーメンス・ジャパン「ユーザーズマニュアル プログラミング編 Gコード説明書 旋盤用」(3.1 座標系、4.1.2 複合形固定サイクル、1.2.2 切削送り)
出典:オークマ株式会社「OSP(技術・ソリューション)」(年表:LAP・IGF)
出典:ヤマザキマザック「CNC旋盤 HQR」(簡単プログラミング・上下刃物台加工プログラムを簡単作成)
プログラムの作り方:手打ち・対話式・CAD/CAMの違い
作り方は、手で打つ方法と、画面や3Dモデルから自動で作る方法に分かれます。
マニュアルプログラミング(手打ち)
マニュアルプログラミングは、工具の移動先位置を手計算で求めてプログラムを書く方式です。時間も労力もかかります。
厚生労働省のマニュアルは、この方式を基本に解説しています。手動で操作する旋盤との対比は「汎用旋盤とは?構造・使い方・NC旋盤との違いをわかりやすく解説」で確認できます。
対話式とCAD/CAMによる自動作成
対話式は、前述の画面入力でプログラムを作る方式です。CAD/CAMは、3Dモデルからプログラムを自動で作ります。
一例として、ヤマザキマザックのMAZATROL DXは、オフィスのパソコンで対話式プログラムを作成できる定額制のデジタルサービスです。
市販のCADソフトで作成した3Dモデルから、MAZATROLプログラムを自動生成できます。
出典:厚生労働省「数値制御旋盤作業編(3級技能検定の実技試験課題を用いた人材育成マニュアル)」([4]プログラミング)
出典:ヤマザキマザック「MAZATROL DX(テクノロジー&ソリューション 生産性)」(MAZATROL DX、自動/対話式プログラミング SOLID MAZATROL)
無料シミュレータ・アプリの選び方
練習用の無料シミュレータは、機種や公開元で仕様が違います。名前で選ぶより、確認する観点を決めておくほうが失敗しません。
無料シミュレータを選ぶ3つの観点
1つ目は画面の言語です。英語表示のツールもあるため、ストアの掲載ページで表示言語を見ます。
2つ目は準拠するコード体系です。説明欄に「Fanuc System A」などの記載があるかを見ます。
体系の記載がないツールは、前述のコード表と番号が合うとは限りません。
3つ目は無料の範囲です。機能制限は、広告の表示や、ワークの長さを変えられないことなどです。
無料ツールで学ぶときは公式の説明書と照合する
ツールの画面や挙動は、機械メーカーの説明書や厚生労働省のマニュアルなどの一次ソースで照合します。
コードの意味がツールと資料で食い違うときは、資料の記載を確認して使い分けます。配布サイトから実行ファイルを入手する場合は、配布元の確認も同様です。
出典:厚生労働省「数値制御旋盤作業編(3級技能検定の実技試験課題を用いた人材育成マニュアル)」([4]-1 プログラミングの基礎知識)
出典:Apple App Store「CNC Lathe Simulator Lite」(説明欄・Limitations of the Light version)
出典:Google Play「CNC Simulator Lite」(掲載ページ上部「Contains ads」)
出典:itch.io「CNC Lathe Simulator」(説明欄「Fanuc System A」の記載)
工作機械の売買・導入ならシェアリングファクトリー
シェアリングファクトリーは、遊休機器を別の会社で活かす、企業間の物品直接売買サービスです
(2026年10月時点)。機械を選ぶときは、搭載している制御装置と、その説明書で確認します。
工作機械の売買・導入でお困りの際は、シェアリングファクトリーへお気軽にお問い合わせください。
出典:シェアリングファクトリー株式会社 公式サイト トップ(「シェアリング ファクトリーとは。」)
NC旋盤のプログラムについてよくある質問
Q1. NC旋盤のプログラムの形式は規格で決まっていますか?
フォーマットとアドレスワードの定義は、JIS B 6315-1が規定しています。
ISO 6983-1:2009を修正して採用した規格です。ただし、各コードの具体的な意味や割当は制御装置メーカーや機種で異なるため、規格だけで統一されているとは言えません。
Q2. 技能検定ではプログラムの知識が問われますか?
機械加工職種に「数値制御旋盤作業」があり、1・2級と3級が実施されています。
内容のうちプログラミングは、加工順序決定、切削条件決定、ツーリング図作成、プロセスシート作成、プログラム入力などです。
1級は複雑な部品のプログラミングと高精度な加工、2級は通常部品のプログラミングと通常精度の加工ができるレベルです。
Q3. メーカーや自治体の講習でNCプログラムを学べますか?
ファナックには、旋盤系のプログラミングを学ぶ「CNCプログラミング短期習得(旋盤系)コース」があります。
位置決め、円弧補間、周速一定制御、固定サイクルなどを扱う2日間の内容です。大阪府立東大阪高等職業技術専門校では、座標軸やGコード・Mコードを学ぶ社会人訓練講座が実施されました。
最新の募集は各主催者のページで確認してください。
Q4. CAD/CAMがあっても手打ちのプログラムを学ぶ意味はありますか?
手計算は、記号と数値だけのプログラムを解読する能力が身につく経験です。
厚生労働省のマニュアルは、マニュアルプログラミングについて、時間も労力もかかるが、この経験により解読する能力が習得でき有用だと述べています。
Q5. サブスピンドル側で加工するときのプログラムは、何が変わりますか?
中村留精密工業の解説では、サブスピンドル側の加工原点にG55を設定し、Z軸のプラスマイナスを反転した考え方でプログラムします。
出典:日本規格協会 JSA Webdesk「JIS B 6315-1:2013」
出典:中央職業能力開発協会「実施職種・作業内容」(機械加工(数値制御旋盤作業))
出典:ファナック「CNCプログラミング短期習得(旋盤系)コース」
出典:大阪府立東大阪高等職業技術専門校「社会人訓練講座案内 HS-04 NC旋盤基礎」
出典:中村留精密工業「Gコード、Mコードとは?NC旋盤のプログラムを解説【第一弾】」(3. 座標系(機械原点と加工原点))
まとめ:ブロックの読み方と機械ごとのコード体系を確認し、例題を1行ずつ読もう
NC旋盤のプログラムは、ブロックとワードの構成と、直径で指令する座標を押さえれば、例題を1行ずつ読めます。
コードの番号と動作は制御装置や機械メーカーで異なり、周速一定制御は、最高回転数の指定とセットで使う機能です。
無料ツールは、言語、体系、無料の範囲を見たうえで、説明書と照合して使います。まず手元の機械の説明書で体系を確認し、厚生労働省の例題を読んでみてください。
工作機械の売買・導入をご検討の方は、お気軽にご相談ください。
