旋盤の複合固定サイクルの書き方:G71(外径・内径荒削り)+G70(仕上げ)、G72(端面)、G73(閉ループ)、G76(ねじ切り)
仕上げの形を 1 回書けば、荒削りの往復は NC が作ってくれる。2 行の U の違いに気をつけて!


NC 旋盤で段付きの軸を削るとき、荒削りの往復を 1 行ずつ書いていないでしょうか。複合固定サイクルを使えば、仕上げの形を一度書くだけで、荒削りの往復・逃げ・仕上げまでを NC が自動で作ります。この記事では、外径・内径の荒削り G71 と仕上げ G70、端面の G72、鋳物・鍛造の G73、ねじ切りの G76 を、例の図面とプログラム、数値から描いた工具経路の図で説明します。最後に、G76 の切込みの回数と深さを確かめられる計算機を付けました。
この記事の書き方は、FANUC 互換の 2 ブロック形式(G コード体系 A)を基準にしています。FANUC の取扱説明書は一般に公開されていないため、FANUC 互換の書き方を載せている Siemens の ISO 方言[1]・三菱電機[2]の公開説明書で確かめ、Haas[3]・LinuxCNC[10]との違いはその都度書きました。使う前に、必ず自分の機械の説明書で確かめてください。
単一形(G90・G92・G94)と複合形の違い
旋盤の固定サイクルには、1 行で「切込み → 切削 → 逃げ → 戻り」の 4 動作をする単一形と、仕上げ形状から荒削りの往復を自動で作る複合形があります[1][2]。
| コード | 種類 | 書き方 | 向いている形 |
|---|---|---|---|
| G90 | 単一形 | G90 X(U)_ Z(W)_ F_(テーパは R_) | まっすぐな外径・内径を何回かに分けて削る |
| G92 | 単一形 | G92 X(U)_ Z(W)_ F_(F はリード) | ねじ。X を変えた行を並べて少しずつ切り込む |
| G94 | 単一形 | G94 X(U)_ Z(W)_ F_ | 端面を何回かに分けて削る |
| G71+G70 | 複合形 | G71 U_ R_ G71 P_ Q_ U_ W_ F_ | 段・テーパ・円弧のある軸や穴(長手方向に削る) |
| G72 | 複合形 | G72 W_ R_ G72 P_ Q_ U_ W_ F_ | フランジのように直径の差が大きく、長さが短い形 |
| G73 | 複合形 | G73 U_ W_ R_ G73 P_ Q_ U_ W_ F_ | 鋳物・鍛造など、形に沿って削り代がある素材 |
| G76 | 複合形 | G76 P_ Q_ R_ G76 X(U)_ Z(W)_ R_ P_ Q_ F_ | ねじ。切込みの割り振りを NC が計算する |
単一形の G90 は、たとえば N11 G90 X80. W-42. F0.3; のあとに X70.; X60.; と X だけを変えた行を続けると、3 回に分けて削ります[1]。段がひとつだけなら単一形で十分ですが、段・テーパ・面取りが増えると行数と計算がふくらみます。そこで複合形の出番です。なお マシニングの G90(絶対値指令)・G94(毎分送り)とは意味がまったく違うので、混同しないでください(固定サイクル一覧)。
テーパの書き方は機種で違います。FANUC 互換の Siemens ISO 方言は G90・G92・G94 とも R、Haas は G90・G92 が I、G94 が K です[1][8]。G コード体系 B・C では番号そのものが変わります。
G71+G70:外径の荒削りと仕上げ
G71 は 2 行で 1 組です。1 行目で荒削りの切込みと逃げを、2 行目で仕上げ形状の範囲(P〜Q)と仕上げ代を指定します[1][2]。
| 行 | アドレス | 意味 | メモ |
|---|---|---|---|
| 1 行目 | U | 1 回の切込み量 Δd | 半径値・符号なし |
| R | 逃げ量 e | 1 回削り終わるごとに 45° に逃げる量 | |
| 2 行目 | P・Q | 仕上げ形状の最初と最後のシーケンス番号(N) | P〜Q の間に仕上げの形を書く |
| U | X 方向の仕上げ代 Δu | 直径値。符号で残す向きを決める(外径は+、内径は−) | |
| W | Z 方向の仕上げ代 Δw | 符号で残す向きを決める | |
| F・S・T | 荒削りの送り・回転・工具 | 荒削り中は P〜Q の中の F・S・T は使われない |
同じ U でも 1 行目と 2 行目で意味が違う1 行目の U は切込み量(半径)、P・Q のある 2 行目の U は仕上げ代(直径)です[1]。U2. と U0.4 を入れ替えると、仕上げ代 2 mm・切込み 0.4 mm という、ありえない荒削りになります。
例:段付きの軸を荒削りして仕上げる
素材 φ50 から、φ20・テーパ・φ36・φ48 の段付き軸を削ります。荒削りは切込み 2 mm(半径)、仕上げ代は X 0.4 mm(直径)・Z 0.1 mm、仕上げは別の工具で G70 です。
O1000 (G71 G70 OD) G28 U0. W0. T0101 (荒削りバイト) G50 S2500 (回転数の上限) G96 S180 M03 (周速一定) G00 X52. Z2. M08 (開始点 A:素材の外・端面の手前) G71 U2. R0.5 (1 行目:切込み 2 mm・逃げ 0.5 mm) G71 P100 Q200 U0.4 W0.1 F0.25 (2 行目:仕上げ形状 N100〜N200) N100 G00 G42 X18. (P:X だけ動かす → タイプ I) G01 Z0. F0.12 (この F・S は G70 のときだけ効く) X20. Z-1. (C1 の面取り) Z-20. X28. X36. Z-35. (テーパ) Z-45. X46. X48. Z-46. (C1 の面取り) Z-55. N200 G40 X52. (Q:素材の外へ抜ける) G00 X100. Z100. M09 T0303 (仕上げバイト) G96 S220 M03 G00 X52. Z2. M08 G70 P100 Q200 (仕上げ:N100〜N200 をなぞる) G00 X100. Z100. M09 M30
G70 は、G71 で使ったのと同じ P・Q を書くだけで、N100〜N200 の形を 1 回なぞって仕上げます。このとき効くのは P〜Q の中に書いた F・S・T で、G71 の行の F0.25 は使われません。逆に G71 の荒削り中は、P〜Q の中の F・S・T は無視されます[1][4]。荒削りと仕上げで送りを変えたいときは、荒削りの送りは G71 の 2 行目、仕上げの送りは P〜Q の中に書く、と覚えてください。G70 が終わると、工具は開始点へ早送りで戻ります[4]。
図解:G71(旋盤)の削り方
図解:G70(旋盤)の削り方
P〜Q の約束:タイプ I とタイプ II
P〜Q に書く仕上げ形状には決まりがあります。いちばん大事なのは P のブロック(最初の行)にどの軸を書くかで、これで G71 の動き方(タイプ)が決まります[1][3]。
- タイプ I:仕上げ形状は X・Z とも単調(ずっと増えるか、ずっと減る)でなければならない。くぼみ(ポケット)は削れない[1]
- タイプ II:X 方向のくぼみを削れる。ただし Z 方向は単調のまま。タイプ II が使えるかはオプションや機種で違う[1][3]
- P のブロックは G00 か G01 で始める。P〜Q の中ではサブプログラム(M98・M99)を呼べない。最後の移動を面取りやコーナー R の指令で終えるとアラームになる機種がある[1]
- 最後のブロック(Q)は、例のように素材の外まで抜ける形にしておくと、荒削りの終わりがはっきりする
内径の荒削り:U の符号を逆に
内径も同じ G71 で削れます。違うのは仕上げ代 U の符号と開始点の位置です。仕上げ代は「仕上げ形状をどちらにずらした線まで荒削りするか」を表し、X の+側(外)に残すなら U+、中心側に残すなら U− です。内径は削る面が中心を向いているので U− になります[1][3]。
(下穴 φ20 をドリルであけたあと) T0202 (内径の荒削りバイト) G96 S150 M03 G00 X18. Z2. M08 (開始点:下穴の内側・端面の手前) G71 U1.5 R0.5 G71 P300 Q400 U-0.4 W0.1 F0.2 (内径は U をマイナス) N300 G00 X42. (P:X だけ → タイプ I) G01 Z0. F0.1 X40. Z-1. (C1 の面取り) Z-15. X30. Z-30. N400 X18. (Q:下穴の中へ抜ける) G00 Z100. (先に Z で穴から抜く) X100. M09
内径は「逃げ」と「戻り」の向きに注意内径では、1 回削り終わるごとの 45° の逃げ(1 行目の R)が中心側へ向きます。下穴が小さく、バイトの背中と穴の壁のすき間が逃げ量より小さいと、逃げで反対側の壁にぶつかります。開始点の X も下穴より小さくしないと、最初の早送りで壁に当たります。加工が終わったら、例のように先に Z で穴から抜いてから X を動かしてください。
G72:端面の荒削り
G72 は G71 の向き違いで、X 方向(中心へ向かう向き)に往復しながら、Z 方向に少しずつ切り込みます。直径の差が大きくて長さの短い、フランジのような形に向いています[1][5]。
G00 X84. Z2. (開始点) G72 W2. R0.5 (1 行目:Z の切込み 2 mm・逃げ 0.5 mm) G72 P500 Q600 U0.4 W0.2 F0.25 N500 G00 Z-12. (P:Z だけ動かす) G01 X60. F0.12 Z-6. X30. Z-1. X28. Z0. (C1 の面取り) N600 X0. (Q) G70 P500 Q600 (仕上げ)
G71 との違いは、1 行目の切込みが W になること、P のブロックに Z だけを書くこと、仕上げ形状が外から中心へ向かって書かれることです[1]。2 行目の U・W が仕上げ代なのは G71 と同じです。
図解:G72(旋盤)の削り方
G73:鋳物・鍛造の閉ループ(形状くり返し)
G73 は、仕上げ形状を少しずつずらしながら形に沿って何回もなぞるサイクルです。鋳物・鍛造品のように、すでに形に近い素材で削り代が全体に均一なとき、G71 のような往復では空振り(エアカット)が多くなるので G73 を使います[1][6]。
| 行 | アドレス | 意味 |
|---|---|---|
| 1 行目 | U | X 方向の逃げの総量 Δi(半径値)=最初になぞる形のずらし量 |
| W | Z 方向の逃げの総量 Δk | |
| R | くり返す回数 d(分割回数) | |
| 2 行目 | P Q U W F | G71 と同じ(仕上げ形状の範囲・仕上げ代・送り) |
(G71 の例と同じ形を、各面に 3 mm ほどの削り代がある鍛造素材から削る) G00 X60. Z5. (開始点:素材の形より外) G73 U2.8 W2.8 R3 (1 行目:ずらし量 2.8 mm を 3 回に分ける) G73 P100 Q200 U0.4 W0.1 F0.25 (N100〜N200 は G71 の例と同じ) G70 P100 Q200
Δi・Δk は「素材の削り代から仕上げ代を引いた量」が目安で、R の回数で割った分ずつ形を内側へ寄せていきます。1 行目の U は半径値、2 行目の U は直径値です。Haas は 1 ブロック形式で G73 P Q U W I K D と書き、D が回数(小数点を書くとアラーム)、I・K がずらし量です[6]。
図解(旋盤):G73(旋盤)の削り方
G76:ねじ切りサイクル
G76 は、ねじ山の高さと 1 回目の切込みを指定するだけで、何回に分けて、毎回どれだけ切り込むかを NC が計算するねじ切りサイクルです。片側の刃で切り込む(片刃切削)ので刃先の負担が軽く、1 回ごとに削る量が一定になるよう切込みを減らしていきます[1][2]。
| 行 | アドレス | 意味 | 書き方の例 |
|---|---|---|---|
| 1 行目 | P | 6 桁を 2 桁ずつ:m 仕上げ回数・r ねじ終わりの面取り量(リードの 1/10 単位)・a 刃先角 | P011060 |
| Q | 最小切込み量 Δdmin(半径値)。計算した切込みがこれより小さくなると、この値に固定する | Q100(0.1 mm) | |
| R | 仕上げ代 d | R0.05 | |
| 2 行目 | X(U)・Z(W) | ねじの終点(X は谷の径) | X16.93 Z-30. |
| R | テーパ量 i(半径値。平行ねじは 0 か省略) | — | |
| P | ねじ山の高さ k(半径値) | P1534(1.534 mm) | |
| Q | 1 回目の切込み Δd(半径値) | Q450(0.45 mm) | |
| F | ねじのリード(多条ねじはピッチ×条数) | F2.5 | |
| 1 行目と 2 行目で P・Q・R の意味がまったく違う | |||
例:M20×2.5 のおねじ
T0505 (ねじ切りバイト 60°) G97 S800 M03 (ねじ切りは回転数一定) G00 X22. Z5. M08 (開始点:リードの 2 倍ほど手前) G76 P011060 Q100 R0.05 (仕上げ 1 回・面取り 1.0L・60°・最小 0.1・仕上げ代 0.05) G76 X16.93 Z-30. P1534 Q450 F2.5 (谷の径・終点・山の高さ 1.534・1 回目 0.45・リード 2.5) G00 X100. Z100. M09
2 行目の P・Q は小数点を付けない整数FANUC 互換の書き方では、G76 の P・Q は最小設定単位(ふつうは 0.001 mm)の整数で書きます。Siemens の例も G76 X60640 Z25000 P3680 Q1800 F6.0 のように小数点なしです[1]。小数点のない数値を「mm」と読むか「0.001 mm」と読むかは機械の設定で変わるので、X・Z は例のように小数点を付けて書くのが安全です。一方 Haas は 1 ブロック形式で、山の高さ K と 1 回目の切込み D を小数点付きで書きます[7]。
なぜ切込みがだんだん浅くなるのか:一定面積の考え方
ねじ切りバイトの刃先は V 字なので、深く入るほど材料に当たる刃の長さが増えます。毎回同じ深さだけ切り込むと、後半ほど 1 回で削る面積(切削抵抗)が大きくなり、びびりや刃先の欠けの原因になります。そこで G76 は n 回目の深さを Δd × √n にします。V 字の溝の断面積は深さの 2 乗に比例するので、深さが √n で増えると断面積は n に比例し、1 回あたりに削る面積がほぼ一定になります[1][2][7]。ただし回数が増えると 1 回の切込みは限りなく薄くなるので、最小切込み Δdmin(1 行目の Q)で下限を決めます[2][1]。
図解(旋盤):G76(旋盤):複合形ねじ切りサイクル
LinuxCNC の G76 は書き方がまったく違い、G76 P(ピッチ) Z I J K R Q H E L の 1 行で書きます。R は「深さの減らし方」で、R2 が一定面積(√n)、R1 が毎回同じ深さです。Q が切込み角(ふつう 29〜30°)、H が空切り(スプリングパス)の回数です[10]。
切込み角:片刃で入るか、まっすぐ入るか
1 行目の a(刃先角)を 60 にすると、刃はねじ山の片側の面に沿って斜めに入っていきます(フランク切込み)。0 にするとまっすぐ半径方向に入ります(ラジアル切込み)。工具メーカーの資料では、わずかに角度を浅くした「修正フランク切込み」が第一選択で、切りくずが片側に流れて工具寿命が長いとしています。ラジアル切込みは V 字の硬い切りくずが出て刃先が熱くなりやすく、細かいピッチ向きです[11]。大きなピッチでは、左右の刃を交互に使う切込み(交互フランク)で摩耗を分散させる方法もあります[11][14]。
| 切込みのしかた | 動き | 向いているもの | 指定のしかたの例 |
|---|---|---|---|
| ラジアル(まっすぐ) | 両側の刃で同時に削る。V 字の切りくず | 細かいピッチ・やわらかい材料 | FANUC 互換 a=00、Haas A0 |
| フランク・修正フランク | 片側の刃で削り、もう片側は軽く触れる | ほとんどのねじ(第一選択) | a=60、Haas は 60° ねじに A59 を推奨[7]、LinuxCNC Q29.5 |
| 交互フランク | 左右の刃を 1 回ごとに交互に使う | 大きなピッチ・台形ねじ・難削材 | Haas P2・P4(両刃)[7]。FANUC 系はオプションや機種による |
ねじフライス加工(旋削ではありません)での実験でも、ラジアル切込みにくらべて修正フランクで工具寿命が約 2 倍、交互切込みで約 4 倍になったという報告があります[15]。旋削のねじ切りでも、粗用と仕上げ用の刃物で切込みを分担して仕上げ刃物の摩耗を抑える方法が特許になっています[16]。切込みのしかたは、刃の寿命とねじの仕上がりに直接効く選択です。
計算機:G76 の切込みの回数と深さ
FANUC 互換の G76 と同じ考え方(n 回目の深さ = Δd × √n、最小切込みで下限、最後に仕上げ代)で、各回の深さと X、2 行の G76 を出します。ねじ山の高さ k は、おねじ 0.6134P・めねじ 0.5413P をよく使われる目安として入れています(めねじの 0.5413P は JIS のひっかかりの高さ H1 = 0.541266P)[13]。実際の深さは、ねじゲージで確かめながら決めてください。ねじの寸法はねじの寸法と下穴径にあります。
ねじ切りの回数の目安として、工具メーカーの資料には、ピッチ 1.5 mm(深さ 0.94 mm)を 6 回で、切込みを 0.23 mm から 0.10 mm へ減らしていく例があります[12]。材料・工具・機械の剛性で回数は変わるので、計算機の結果は出発点にしてください。
機種による書き方の違い
| FANUC 互換(Siemens ISO 方言・三菱電機) | Haas | LinuxCNC | |
|---|---|---|---|
| G71 | G71 U_ R_ G71 P_ Q_ U_ W_ F_ | G71 P_ Q_ U_ W_ D_ (I_ K_) F_ D が切込み(1 ブロック) | G71 は使えるが、刃先 R 補正中はエラー[10] |
| G73 | G73 U_ W_ R_(R は回数) | G73 P_ Q_ U_ W_ I_ K_ D_ D が回数 | — |
| G76 | G76 P(m r a) Q R G76 X Z R P Q F | G76 X Z K D F A P I Q K 山の高さ・D 1 回目・A 刃先角・P 切込み方式・Q は開始角 | G76 P Z I J K R Q H E L P がピッチ・X は書かない |
| G76 の小数点 | P・Q は最小設定単位の整数 | K・D は小数点付き、A・Q は小数点なし | 小数点付き |
| 最小切込み・仕上げ代 | 1 行目の Q・R(パラメータでも設定)[2] | Setting 99(最小切込み)・Setting 86(仕上げ代)[7][9] | — |
同じ「P」「Q」がメーカーで別の意味FANUC 互換の G76 の 1 行目の P は 6 桁の組み合わせ、Haas の P は切込み方式、LinuxCNC の P はピッチです。Haas の Q はねじの開始角で、FANUC 互換の Q(切込み量)とは別物です[7][10]。CAM のポストプロセッサや、ほかの機械のプログラムを流用するときは、必ず書き直してください。
よくある失敗
- G71 の 2 行の U を取り違える:1 行目は切込み(半径)、2 行目は仕上げ代(直径)[1]
- 内径で U をプラスのまま:仕上げ代が中心側に残らず、荒削りで仕上げ寸法を削り込む。内径は U−
- P のブロックに Z も書いてしまう:タイプ II として動く(またはタイプ II が無くアラーム)。タイプ I なら P は X だけ[1][3]
- 形状が単調でない:タイプ I の形にくぼみがあるとアラームになる(扱いは機種による)。くぼみは別工程かタイプ II で
- 刃先 R 補正(G41・G42)の扱いを決めずに書く:扱いは機種で違う。三菱電機は荒削りでも補正した形を使い(パラメータで切替)[2]、Haas の例は P のブロックに G42・Q のブロックに G40 を書いて G71・G70 とも補正を効かせている[9]。Siemens の ISO 方言は G71〜G76 の中では補正しない[1]。補正しない機械では、テーパや円弧に R の分の削り残し・削り過ぎが出る
- G76 の 2 行目の P・Q に小数点を付ける/X・Z に付け忘れる:P・Q は整数(0.001 mm 単位)。X・Z は小数点付きで[1]
- ねじ切りを周速一定(G96)のまま始める:ねじ切りは G97 で回転数を一定にする。開始点は Z に送りが追いつくための助走をとる(例ではリードの 2 倍)
- F にピッチを書く(多条ねじ):F はリード。2 条ねじならピッチの 2 倍
- Haas のプログラムをそのまま FANUC 互換の機械へ(またはその逆):1 ブロック形式と 2 ブロック形式、P・Q・D の意味が違う
よくある質問
- 1 ブロック形式と 2 ブロック形式は、どちらで書けばいいですか?
- 機械が受け付ける形式で書きます。いま FANUC 互換の NC では 2 ブロック形式がふつうで、Siemens の ISO 方言はどちらも受け付けます[1]。Haas は G71 などを 1 ブロック形式(D で切込み)で書きます[3]。説明書の G71 の書式を見て、行が 1 つか 2 つかで見分けてください。
- G71 と G90 は、どう使い分けますか?
- 段が 1 つの単純な外径なら G90 でも十分です。段・テーパ・面取り・円弧があり、荒削りと仕上げを分けたいなら G71+G70 のほうが短く書け、寸法を変えるときも P〜Q の形だけ直せば済みます。
- G70 の前に工具を替えてもいいですか?
- はい。例のように荒削りバイトで G71、仕上げバイトに替えて G70 を書くのがふつうです。G70 は同じプログラムの中の P〜Q を参照するので、G71 と同じ番号を書いてください。
- G76 の面取り量(r)は何のためですか?
- ねじの終わりで、工具を斜めに抜いて逃がす量です。リードの 1/10 単位で書き、10 なら 1.0 × リードの長さで抜けます[1][2]。ねじの終わりに逃げ溝があるなら、抜け量が溝に収まるかを確かめてください。
- Δd(1 回目の切込み)はどう決めればいいですか?
- 荒削りの回数から逆算するのがかんたんです。荒の回数を N 回にしたいなら Δd = (k − d) ÷ √N です(最小切込みで回数は増えることがあります)。上の計算機の「荒の回数から Δd を決める」で試せます。
G・M コードの 1 つずつの意味は G・M コード辞典、マシニングの穴あけサイクルは 固定サイクル一覧、変数や計算を使うプログラムは カスタムマクロ入門にまとめています。
出典・参考資料
- Siemens「SINUMERIK 840D sl/840Di sl ISO Turning Programming Manual」(ISO 方言、2007)
- 三菱電機「700/70 Series Programming Manual (Lathe System)」IB-1500057
- Haas Automation「G71 O.D./I.D. Stock Removal Cycle」
- Haas Automation「G70 Finishing Cycle」
- Haas Automation「G72 End Face Stock Removal Cycle」
- Haas Automation「G73 Irregular Path Stock Removal Cycle」
- Haas Automation「G76 Threading Cycle, Multiple Pass」
- Haas Automation「G90 O.D./I.D. Turning Cycle」
- Haas Automation「Lathe Programming Workbook」(PDF)
- LinuxCNC「G-Codes」(G71・G72・G76)
- 工具メーカーの技術資料「How to choose infeed method in thread turning operations」
- 工具メーカーの技術資料「Threading formulas and definitions」
- Red Seal(カナダ)「Machinist formulas」(PDF)
- Evaluation of infeed strategies for turning of large thread profiles(ベオグラード大学 機械工学部 リポジトリ)
- Ghogha ほか「ねじフライス加工の切込み方式と工具摩耗」Amirkabir Journal of Mechanical Engineering 53(2021)
- 特開2000-117543「鋼管のねじ切り方法」


