円筒補間プログラム例とGコードの基礎から応用まで

円筒補間のプログラム例をFanuc G07.1を中心に解説。Gコードの書き方・送り速度の注意点・工具径補正のコツまで、現場で即使えるノウハウを網羅しています。あなたの現場で起きているプログラムトラブル、その原因はどこにあるのでしょうか?

円筒補間プログラム例:GコードのFanuc G07.1を使った実践解説

円筒補間モードを起動する前に、工具径補正(G41/G42)を有効にしたままにすると確実にアラームが発生します。


この記事の3ポイント要約
⚙️
円筒補間とは何か

Fanuc G07.1を使い、円筒側面を「展開した平面」として扱いながらZとC軸を同時制御する補間方式です。複雑な溝加工やカム形状が1プログラムで実現できます。

📋
プログラム例の構成ポイント

G07.1 C(半径値)で開始し、内部でG01/G02/G03を使い、G07.1 C0でキャンセルする構造が基本です。送り速度はF指令で毎分送り(G94)を使います。

⚠️
現場で多いミスと回避策

半径値の単位ミス・工具径補正の解除忘れ・送り速度の過大設定が三大ミスです。事前シミュレーションと低速試し切りの2ステップで大半のトラブルを防げます。


円筒補間の基本概念とFanuc G07.1の役割

円筒補間とは、円筒状のワーク側面に溝やカム形状を加工するとき、円筒面を「まるで平らに展開した紙」のように扱ってプログラムを書ける機能です。回転軸(C軸)の角度移動量を円周上の直線距離に変換して、Z軸などの直線軸と同時に直線補間・円弧補間を行うことができます。


この機能をFanucコントローラで実現するのがG07.1コードです。G07.1はオプション機能の場合が多く、コントローラのパラメータで有効化されていないと「使用できないGコードを指令しました(アラームNo.0010)」が出てしまいます。まず確認が必要です。


では、なぜこの機能が金属加工の現場で重要なのでしょうか。従来はシリンダー側面に複雑な溝を切る場合、5軸加工機が必要だったり、CAMで膨大な座標点列を出力したりするしかありませんでした。円筒補間を使えば、汎用的な旋盤やマシニングセンタのC軸機能(主軸割出し付き)でも、少ないブロック数のシンプルなプログラムで対応できます。これは使えそうです。


G07.1が使われる代表的な用途として、シリンダー側面の螺旋溝・カム溝加工、ロール金型彫刻加工タービンブレードの根元形状加工などが挙げられます。一度使えるようになると加工の幅が大きく広がります。


Fanuc G07 CNC コードの習得: 高度な加工のための円筒補間 – ETCN(G07の概念と実装方法をわかりやすく解説)


円筒補間プログラム例:基本的なFanuc G07.1の書き方

G07.1を使ったプログラムの基本構成を確認しましょう。以下がFanucコントローラ向けの代表的な円筒補間プログラム例です。


```
O0001 (CYLINDRICAL INTERPOLATION)
N01 G00 G90 Z100.0 C0 ; 安全位置へ位置決め
N02 G01 G91 G18 Z0 C0 ; 平面選択(ZC平面)
N03 G07.1 C57.299 ; 円筒補間開始(半径57.299mm)
N04 G90 G01 G42 Z120.0 D01 F250 ; 工具径補正右側・切削開始
N05 C30.0 ; C軸(角度)30°へ直線補間
N06 G02 Z90.0 C60.0 R30.0 ; 円弧補間(時計回り)
N07 G01 Z70.0 ; Z軸直線補間
N08 G03 Z60.0 C70.0 R10.0 ; 円弧補間(反時計回り)
N09 G01 C150.0 ; C軸150°へ直線補間
N10 G03 Z70.0 C190.0 R75.0 ; 円弧補間(反時計回り)
N11 G01 Z110.0 C230.0 ; 斜め直線補間
N12 G02 Z120.0 C270.0 R75.0 ; 円弧補間(時計回り)
N13 G01 C360.0 ; C軸360°まで直線補間(一周)
N14 G40 Z100.0 ; 工具径補正キャンセル
N15 G07.1 C0 ; 円筒補間終了
N16 M30 ; プログラム終了
```


N03の`G07.1 C57.299`という指令について解説します。ここでの「C57.299」はC軸のことではなく、ワークの半径値(mm)です。半径57.299mmということは、直径にすると約114.6mm(ほぼ直径115mm)の丸棒のイメージになります。この数値が正しくないと、内部での角度↔直線変換が狂い、加工形状が意図したものと異なります。


N04以降では、G07.1モード内で通常のG01(直線補間)やG02/G03(円弧補間)を組み合わせて使います。C軸の指令値は「角度(度)」ではなく「円周上の移動距離(mm)」として解釈されます。たとえばC軸を30.0と指令した場合、「30°回転」ではなく「円周上を30mm移動」という意味になります。角度と距離の混同が現場でよく起きる失敗です。


N14でG40(工具径補正キャンセル)を実行した後にN15でG07.1 C0を指令している順番が重要です。つまり工具径補正を解除してから円筒補間をキャンセルするのが正しい順序です。逆にすると補正の計算が正しく終了せずアラームになります。


円筒補間プログラム例:旋盤向けC軸加工のケース

旋盤(ターニングセンタ)にC軸(主軸割出し)と工具回転機能(ミーリング機能)が付いている機械では、次のような形式で円筒補間プログラムを書きます。


```
O0002 (Cylindrical Interpolation - Lathe)
N15 T0505 ; 工具選択(エンドミル系)
N25 M13 ; 駆動工具ON(時計回り)
N30 G97 S2000 ; 定回転制御・2000rpm
N32 M52 ; C軸位置決めモードON
N35 G07.1 C19.1 ; 円筒補間開始(ブランク半径19.1mm)
N37 G94 F200 ; 毎分送り200mm/min
N40 G0 X45 Z-5 ; 切削開始位置へ早送り
N45 G1 X35 C0 Z-5 ; X軸切り込み
N50 G1 Z-15 C22.5 ; Z・C同時直線補間
N55 Z-5 C45 ; 次の座標へ
N60 Z-15 C67.5
N65 Z-5 C90
...(以下同様に繰り返し)...
N125 Z-5 C360
N130 X45 ; 工具退避
N135 G07.1 C0 ; 円筒補間終了
N140 M53 ; C軸OFF
N145 G0 X80 Z100 M15
N150 M30
```


このプログラムは、半径19.1mm(直径約38mm)のシリンダー側面に波形の溝を1周分削るイメージです。Z軸が-5mmと-15mmの間を行き来しながら、C軸が22.5°刻みで増加(円周上16.5ポイントで一周360°相当)していきます。


旋盤ケースで注意すべきなのは、G97(定回転)で駆動工具回転を先に設定し、その後G07.1を指令する順序です。G96(周速一定制御)がアクティブな状態でG07.1を入れると、円筒補間中にスピンドル回転数が変動して切削条件が乱れます。定回転制御が原則です。


また、N35の`G07.1 C19.1`でワーク半径を指定しますが、この値はワーク実測値を使うべきです。図面の呼び径をそのまま使うと、実際の仕上がり径や素材の寸法ばらつきで誤差が出ます。特に粗材(熱間圧延など)はプラスマイナス0.5mm程度ばらつく場合があります。


Fanuc G07.1 円筒補間の例 – MfgRobots(旋盤向けCNC円筒補間プログラムのサンプルコード)


円筒補間プログラムで絶対に覚えたい送り速度の扱い方

円筒補間モード(G07.1)内では、毎分送り(G94)を使うのが基本です。インバースタイム送り(G93)も使えますが、扱いが複雑になるため、基本的にはG94で統一します。


ここで非常に重要な落とし穴があります。円筒補間モード内でG02/G03(円弧補間)を使う場合、F指令の送り速度は工具中心の移動速度として解釈されます。円弧加工では、工具の中心パスと工具外周のパスが異なる半径を描くため、外周の実際の切削速度は中心のF指令値より速くなります。


ミスミの技術情報によると、たとえば加工半径R=15mm・エンドミル半径r=5mmのコンタリング加工では、推奨側面切削送り速度が450mm/minだとしても、実際に指令すべき送り速度は次の式で求めます。


```
F指令値 = F推奨 × (R - r) / R
= 450 × (15 - 5) / 15
= 300 (mm/min)
```


つまりF450をそのまま入れると工具外周では事実上F675相当になります。工具が過負荷になり、折損や寸法オーバーのリスクが高まります。円弧補間の送り速度は補正が必要です。


さらに、円筒補間モード中に急に早送り(G00)でC軸を大きく動かすと、機械によっては速度制限が効かずに衝突につながることがあります。G07.1モード内での早送りは最小限にして、できる限りG01の低速アプローチを使うのが安全です。


| 補間モード | 送り速度のF指令 | 注意点 |
|---|---|---|
| G01(直線補間) | G94毎分送り | 問題なく使える |
| G02/G03(円弧補間) | G94毎分送り | 工具外周速度が速くなるため補正が必要 |
| G00(早送り) | なし(最高速) | G07.1モード内では使用を最小化する |


エンドミルでの円弧加工の切削条件 – ミスミ技術情報(円弧加工時の送り速度換算式を具体的に解説)


円筒補間プログラムの独自視点:「角度ではなく距離」発想の落とし穴と設計への応用

円筒補間を使い始めたばかりの現場では、C軸指令値を「角度」として書いてしまうミスが頻発します。しかしG07.1モード中は、C軸に指令する数値は「円周上の距離(mm)」です。これが感覚と逆になる部分です。


具体的に考えてみましょう。半径50mmのワークに90°の間隔でスロットを切る場合を想定します。90°の円弧長は次の式で計算できます。


```
円弧長 = 2π × R × (角度/360)
= 2 × 3.14159 × 50 × (90/360)
≒ 78.54 (mm)
```


したがってC90.0ではなくC78.54と指令しなければなりません。C90.0と書いてしまうと、ワーク上では実際に90°ではなく約103.1°になります。直径100mmのワーク(半径50mm)での話ですから、名刺1枚分(約90mm×55mm)のスペースで発生するずれが、長尺ワークや精密部品では深刻な形状エラーにつながります。


この考え方を逆手に取ると、設計変更への対応がとても柔軟になります。同じ溝形状パターンを「ワーク径違い」に転用したい場合、G07.1 Cの半径値だけを変更すれば、内部の直線・円弧ブロックはそのまま使い回せます。ただし厳密には、円弧部分のR値はワーク径に依存しないため再計算不要ですが、工具径補正量の再設定は必要です。


また、あまり語られないポイントとして、G07.1の半径値には「仮想円筒半径」を設定できるという点があります。実際のワーク半径より少し大きな値を指定することで、工具中心の経路が実際のワーク表面と一致するよう調整するテクニックです。これはCAMなしで工具径補正を使わずに逃げる現場での実践的なテクニックとして知られています。


円筒補間プログラムで発生しやすいアラームと対処法

Fanucコントローラで円筒補間を組んでいると、特定のアラームが繰り返し発生します。主なものを整理しておきましょう。現場でよく見るアラームです。


アラームNo.0010「使用できないGコードを指令しました」は、G07.1がオプション機能として有効になっていない場合に発生します。コントローラのパラメータNo.1020でC軸が回転軸(ROTビット)として設定されているかを確認します。ビットの設定漏れが原因のケースが多いです。


アラームNo.0143「最大指令値を越えました」は、円筒補間モード中の内部計算でオーバーフローが起きた場合です。G07.1に与える半径値が実際のワーク寸法と大幅にかけ離れている場合や、円弧補間のR値が半径値に対して不合理に大きい場合に発生します。半径値と加工形状の関係を再確認します。


アラームNo.0034「G02/G03中にスタート/キャンセルをしました」は、G07.1の開始・終了を円弧補間ブロック内で指令した場合に発生します。G07.1の指令ブロックは単独で1ブロックに書く必要があります。同一ブロックに他の指令を混ぜてはいけません。


また、円筒補間モード中には以下の機能は使用できません。これは特に注意が必要です。


- 固定サイクル(G73〜G89) は使用不可
- プログラム再開機能 は使用不可
- スケーリング(G50/G51) は使用不可
- 座標回転(G68) は使用不可


これらをG07.1モード内で指令するとアラームが発生します。固定サイクルによる穴あけを円筒補間と組み合わせたい場合は、一度G07.1 C0でキャンセルしてから固定サイクルを実行するフローに設計し直す必要があります。


FANUC基本アラームコード一覧(PS,BG,SRアラーム)– taroimo-lifestyle.com(円筒補間関連を含むFanucアラームの詳細な解説)