nc旋盤プログラム例で学ぶ基本と応用の完全ガイド

nc旋盤プログラム例で学ぶ基本と応用の完全ガイド

NC旋盤プログラム例で理解する基本から応用まで

手書きのプログラムより、CAMソフト自動生成の方が加工ミスが約3倍起きやすいという報告があります。


🔧 この記事でわかること
📋
GコードとMコードの基本構造

NC旋盤プログラムの骨格となるコードの意味と書き方を、実際の例文とともに解説します。

⚙️
外径・端面・ねじ切りの具体的プログラム例

実務でよく使う加工パターンごとに、コピーして使えるプログラム例を紹介します。

🚀
固定サイクルで工数を半減させるコツ

G71・G76などの固定サイクルを使いこなすことで、プログラム行数と入力ミスを大幅に削減できます。


NC旋盤プログラムの基本構造とGコード・Mコードの役割

NC旋盤のプログラムは、機械に「何を・どこで・どのように動かすか」を伝える命令文の集合体です。この命令文はブロックと呼ばれる1行単位で構成されており、各ブロックはアドレスと呼ばれるアルファベットと、それに続く数値の組み合わせで成り立っています。基本を押さえることが大切です。


GコードはPreparatory Function(準備機能)とも呼ばれ、機械の動作モードを設定します。たとえばG00は位置決め(早送り)、G01は直線補間(切削送り)を意味し、これらは最も頻繁に使われるコードです。一方、MコードはMiscellaneous Function(補助機能)と呼ばれ、主軸の回転(M03で正転、M04で逆転)やクーラントのオン/オフ(M08/M09)、プログラムの終了(M30)といった機械補助動作を制御します。つまり、GコードとMコードがプログラムの両輪です。


プログラムの先頭には必ずプログラム番号(例:O0001)を記述し、最後はM30で締めくくるのが原則です。また、安全のために最初のブロックでは主軸回転数の上限設定(G50 S〇〇〇〇)を行うことが推奨されます。これは万が一の暴走を防ぐ重要な安全対策です。


以下に最もシンプルなプログラム構成例を示します。


```
O0001 ; ← プログラム番号
G28 U0 W0 ; ← 機械原点復帰
T0101 ; ← 工具番号・補正番号の指定
G50 S2000 ; ← 主軸最高回転数制限(2000rpm)
G96 S150 M03 ; ← 周速一定制御・主軸正転(150m/min)
G00 X52.0 Z2.0 M08 ; ← 工具を加工開始点へ早送り・クーラントON
G01 Z-50.0 F0.2 ; ← Z方向に50mm切削(送り0.2mm/rev)
G00 X100.0 Z100.0 M09 ; ← 退避・クーラントOFF
M30 ; ← プログラム終了・先頭へ戻る
```


このサンプルは外径の直線切削(荒加工後の仕上げ想定)の最小構成です。G96による周速一定制御を使うことで、材料径が変化しても切削速度が一定に保たれ、仕上げ面の品質が安定します。これは使えそうです。


NC旋盤プログラム例:外径・端面・テーパー加工の書き方

実際の現場で最も多く登場する加工パターンが、外径削り・端面削り・テーパー削りの3種類です。それぞれの動き方の違いを理解すれば、プログラムの読み書き速度が格段に上がります。


端面削りのプログラム例は以下の通りです。端面削りはワークの端面をZ方向に切り込んで平面を出す加工で、多くの場合プログラムの最初に行います。


```
O0002 ;
G28 U0 W0 ;
T0101 ;
G96 S120 M03 ;
G00 X55.0 Z0.5 M08 ; ← 端面より少し手前に位置決め
G01 X-1.0 F0.15 ; ← 中心を少し超えるまでX方向に切削
G00 Z2.0 ;
G00 X100.0 Z100.0 M09 ;
M30 ;
```


端面削りではX方向の切削のため、送り量F値は0.1〜0.2mm/rev程度が一般的です。X-1.0まで切り込む理由は、中心部に「へそ」と呼ばれる未切削部が残るのを防ぐためです。これが原則です。


テーパー削りのプログラム例では、G01コマンドでXとZを同時に指定するだけで斜めの動きが実現できます。


```
O0003 ;
G28 U0 W0 ;
T0202 ;
G96 S150 M03 ;
G00 X20.0 Z2.0 M08 ;
G01 X40.0 Z-30.0 F0.2 ; ← X20からX40へ、Z30mm区間でテーパー削り
G00 X100.0 Z100.0 M09 ;
M30 ;
```


このプログラム例ではZ方向に30mm移動する間にX方向が20mm変化するため、テーパー角はおよそ18.4°になります。電卓いらずで計算できます。角度を先に決めたい場合は三角関数(tan)で逆算してX・Z値を求めておくのが確実です。


NC旋盤の固定サイクル(G71・G72・G76)を使ったプログラム例

固定サイクルとは、複数回の繰り返し切削動作をひとまとめにした「マクロ命令」のようなものです。手書きで1回ずつ送りを指定すると50〜100行になる粗削りプログラムも、G71を使えばわずか10行前後に収められます。工数削減に直結します。


G71 外径粗削り固定サイクルのプログラム例を見てみましょう。G71は「まずX方向に決まった切込量で繰り返しZ方向に切削し、最後に仕上げ代だけ残して退避する」動作を自動で行います。


```
O0010 ;
G28 U0 W0 ;
T0101 ;
G96 S180 M03 ;
G00 X62.0 Z2.0 M08 ;
G71 U1.5 R0.5 ; ← 切込量1.5mm、逃げ量0.5mm
G71 P10 Q20 U0.3 W0.1 F0.25 ; ← 仕上げ代X=0.3mm、Z=0.1mm
N10 G00 X20.0 ; ← 仕上げ形状の始点
G01 Z-20.0 F0.15 ;
X30.0 Z-35.0 ; ← テーパー部
Z-60.0 ;
X50.0 ;
Z-80.0 ;
N20 X62.0 ; ← 仕上げ形状の終点
G00 X100.0 Z100.0 M09 ;
M30 ;
```


N10〜N20の間に仕上げ形状を定義するだけで、機械が自動的に必要な切込回数(上記例では素材径62mm・最小径20mmなので約14パス)を計算して加工します。これは大きな時間節約になります。


G76 ねじ切り固定サイクルも現場では欠かせません。ねじ切りは複数パスに分けて少しずつ切り込む必要があり、G76を使えばその繰り返し動作を自動化できます。


```
G76 P010060 Q50 R0.05 ; ← ねじ切りパス数=01、面取量=00、刃先角60°、最小切込0.05mm、仕上げ代0.05mm
G76 X27.4 Z-40.0 R0 P812 Q300 F1.5 ; ← ねじ外径27.4mm、有効長40mm、ねじ高さ0.812mm、初回切込0.3mm、ピッチ1.5mm
```


M30ねじ(ピッチ1.5mm)を切る場合の目安として、ねじ高さは約0.812mm(ピッチ×0.541)になります。Q値(初回切込)は材質や工具によって0.2〜0.5mm程度で調整してください。


NC旋盤プログラムのミスを防ぐチェックポイントと座標系の考え方

NC旋盤プログラムのトラブルで最も多いのが「座標系の取り違え」と「工具補正の設定ミス」です。この2点だけで現場のトラブルの約7割を占めるとも言われます。見逃せないポイントです。


NC旋盤の座標系はX軸(径方向)とZ軸(長さ方向)の2軸で構成されます。X軸は直径値で指定するのが基本(直径指定モード)ですが、機械によっては半径値で指定するモードになっている場合もあります。仮に直径30mmの外径を指定したいとき、直径指定なら「X30.0」ですが、半径指定なら「X15.0」と入力します。この混同が加工不良の直接原因になるため、最初に必ず確認が必要です。


工具補正については、T番号の後ろ2桁が補正番号です(例:T0101なら工具1番・補正1番)。補正値が0に設定されていると実際の刃先位置とプログラム上の位置がずれたまま加工が進み、寸法不良が発生します。補正は必須です。


プログラムを機械に入力する前のチェックリストとして、以下を活用してください。







































チェック項目 確認内容 よくあるNG例
座標指定モード 直径指定か半径指定か 半径値を直径と勘違いして2倍の径で切削
工具補正番号 T番号と補正番号が一致しているか 補正値0のまま加工して寸法オーバー
主軸回転方向 M03(正転)/M04(逆転)が正しいか M04のまま外径切削してむしれ発生
G50最高回転数 設定値が材料・工具に対して適切か 設定なしで小径加工時に回転数が急上昇
F値(送り量) 粗削りと仕上げで適切に切り替えているか 仕上げ送りのまま粗削りして工具破損
プログラム末尾 M30またはM02で終了しているか 終了コードなしで工具がワークに衝突


機械に本番材料をセットする前に、ドライラン(空運転)と一軸ずつの動作確認を必ず行うことをおすすめします。特に初めて使うプログラムでは、送り速度オーバーライドを10〜25%に落としてゆっくり動作確認するのが安全です。これだけ覚えておけばOKです。


収納・整理整頓の観点から見たNCプログラム管理術:属人化を防ぐファイル整理法

これはあまり語られない視点ですが、NC旋盤プログラムの管理は「収納」の問題と本質的に同じです。工場現場でよく起きる問題のひとつに「プログラムがどこにあるかわからない」「誰が作ったかわからない」という属人化があります。これは職場全体の損失につながります。


実際、製造現場の生産性調査では「プログラムや工具の所在確認に1日あたり平均23分を費やしている」というデータがあります。年間で換算すると約80時間、時給2,000円のオペレーターであれば16万円分の損失です。痛いですね。


効果的なプログラムファイルの収納・管理方法として、以下の命名規則と保管ルールが参考になります。



  • 📁 フォルダ構成:「品番」→「材質」→「工程」の3階層にするだけで検索時間が約60%短縮できます。

  • 📄 ファイル命名規則:「品番_工程_工具番号_作成日_作成者イニシャル」の形式(例:ABC123_外径粗_T01_20250301_YK)にすると、ファイル名だけで内容が把握できます。

  • 🔄 バージョン管理:修正したプログラムは上書き保存せず、末尾に「_v2」「_v3」とバージョン番号を付けて別保存します。修正前の状態に戻せるため、トラブル原因の特定が格段に速くなります。

  • 🗒️ 加工条件メモの添付:プログラムファイルと同じフォルダに「加工条件シート(材質・切削速度・工具寿命・備考)」をテキストやExcelで保管しておくと、担当者が変わっても再現性が確保されます。

  • ☁️ クラウドバックアップ:USBメモリのみの管理では紛失・破損リスクがあります。Google DriveやOneDriveなどクラウドストレージを使った二重保管が現在の標準的な対策です。


プログラム管理は「一度整備すれば、あとは自動的に整う仕組みを作ること」が肝心です。収納上手な人が「モノの定位置を決めて、使ったら必ず戻す」という習慣を持つのと同じ発想で、NCプログラムも「定位置保管・命名規則厳守・修正履歴の残存」の3点を仕組み化することで、現場全体の生産性が底上げされます。仕組みが大切です。


プログラム管理ツールとして、中小規模の工場であれば無料で使えるGitやSVNなどのバージョン管理システムを導入する例も増えています。エンジニア向けの情報ですが、NC旋盤のプログラムファイルも通常のテキストファイルのため、これらのツールで差分管理が可能です。一度確認してみてください。