FANUC矩形溝加工の繰り返しプログラム解説
この記事では、短く分かりやすいFANUCプログラムを使い、工具を矩形の経路に沿って繰り返し動かし、1周ごとに加工数を自動で1増やします。主にCNC GUIDEシミュレーターでの学習を想定した例で、座標、送りオーバーライド、ループの戻り、システム変数の動作を観察できます。

図: 上面から見た経路、側面から見た深さ、加工条件、手順、ループの流れ、簡潔なサンプルプログラムを1枚にまとめ、全体像を示しています。
安全上の注意
このプログラムはシミュレーターでの学習用です。主軸起動、クーラント、工具長補正、工具径補正、実際の加工に必要な一連の安全確認を省略しています。実機で実行する前に、工作機械メーカーのマニュアル、治具・工具の状態、現場の安全手順に照らして再検証してください。
1. このプログラムは実際に何を加工するのか
このプログラムは、矩形の内側全体を削り取るものではありません。
工具中心を40 × 30 mmの矩形に沿って1周させ、閉じた矩形溝を作ります。
- 工具中心の経路:
40 × 30 mm - 切り込み深さ:
2 mm - 実演に推奨する工具:
D10のフラットエンドミル - 溝幅: おおむね工具径と同じ
10 mm - 溝の四隅: 工具半径によって丸みが付く
- 矩形の内側: 元の材料が残り、削り取られない
重要な違い
- 1周すると矩形溝ができます。
- 内側を削り取って矩形ポケットを作るには、経路を徐々に内側へずらして複数周加工する必要があります。
加工後の矩形溝の図

図: D10のフラットエンドミルが矩形の中心線を1周すると、X0 Y0を始点とし、中心線の寸法がおよそ40 × 30 mmの溝が残ります。
┌──────────────────────────────┐
│ │
│ ┌──────────────────────┐ │
│ │ 材料が残る │ │
│ └──────────────────────┘ │
│ │
└──────────────────────────────┘模式図: 工具は矩形の中心線を1周するだけなので、閉じた溝ができ、矩形の内側には材料が残ります。
2. 最終的な簡潔なプログラム
%
O1000(RECTANGLE LOOP DEMO)
(TOOL PATH 40X30 DEPTH 2)
G21 G17 G40 G49 G80 G90 G94 G54
#3901=0(PART COUNT RESET)
G00 Z5.(SAFE HEIGHT)
G00 X0.Y0.(START POINT)
N10 G01 Z-2.F300.(PLUNGE)
G01 X40.Y0.F600.(EDGE 1)
Y30.(EDGE 2)
X0.(EDGE 3)
Y0.(EDGE 4)
G00 Z5.(RETRACT)
#3901=#3901+1(PART COUNT +1)
G04 X2.(WAIT 2 SECONDS)
M99 P10(RETURN TO N10)
%これはCNC GUIDEで学習し、座標の変化を観察するための実演用プログラムです。基本的な移動、送り、ループ、カウントの動作を理解しやすくするため、工具交換、主軸起動、クーラント、工具長補正、工具径補正は意図的に省略しています。
3. 座標と工具経路
プログラムは絶対座標(G90)を使用し、以下を前提としています。
| 位置 | 座標 |
|---|---|
| ワーク上面 | Z0 |
| 安全高さ | Z5 |
| 切り込み深さ | Z-2 |
| 矩形の始点 | X0 Y0 |
| 1つ目の角 | X40 Y0 |
| 2つ目の角 | X40 Y30 |
| 3つ目の角 | X0 Y30 |
| 始点への復帰 | X0 Y0 |
上から見た工具中心の経路は次のとおりです。
X40 Y30
④ <──────── ③
│ ↑
│ │
↓ │
X0 Y0 ① ─────────> ② X40 Y0動作の順序:
- 工具を安全高さ
Z5へ移動します。 - 矩形の始点
X0 Y0へ早送りで移動します。 F300でZ-2まで切り込みます。F600で4辺に沿って移動します。- 1周したら
Z5へ退避します。 - 加工数を1増やします。
- 2秒間ドウェルします。
N10へ戻り、自動で次の周回を開始します。
座標系と経路の図

図: ワーク上面はZ0、安全高さはZ5、切り込み深さはZ-2で、矩形の経路はX0 Y0から始まります。
Z+
↑
│ 安全高さ: Z5
│ ─────────
│
│ ワーク上面: Z0
│ ─────────
│
│ 切り込み深さ: Z-2
│ ─────────
└────────────────→ X+模式図: プログラムは安全高さで始点へ移動し、Z-2まで切り込んだ後、XY平面の矩形経路に沿って動きます。

図: 青い破線は
G00による早送り位置決めと退避、赤い実線はG01による切削送りを示します。切り込み、4辺の加工、退避の順に実行されます。
4. 各行の解説
4.1 プログラムの開始とプログラム番号
%
O1000(RECTANGLE LOOP DEMO)
(TOOL PATH 40X30 DEPTH 2)%
プログラムファイルの開始を示します。末尾のもう1つの%はファイルの終了を示します。
O1000
プログラム番号は1000です。
従来のFANUCプログラムでは、通常次の形式を使います。
O + 番号例:
O0001
O0100
O1000現在のCNC GUIDEは<SAMPLE>や<Woody001>などのプログラム名にも対応していますが、O1000は従来のFANUCの形式に従っています。
丸括弧内の文字列
(RECTANGLE LOOP DEMO)
(TOOL PATH 40X30 DEPTH 2)丸括弧内の文字列はコメントで、実行されません。
4.2 加工モードの初期化
G21 G17 G40 G49 G80 G90 G94 G54この行では、複数のモーダル状態をまとめて設定します。
| 命令 | 機能 |
|---|---|
G21 | 長さの単位をミリメートルに設定 |
G17 | XY平面を選択 |
G40 | 工具径補正を解除 |
G49 | 工具長補正を解除 |
G80 | 穴あけなどの固定サイクルを解除 |
G90 | 絶対座標によるプログラミングを指定 |
G94 | 送りの単位をmm/minに設定 |
G54 | 第1ワーク座標系を使用 |
特にG90は誤解しやすい命令です。
G90の状態で:
X40.と指定すると、絶対座標X=40へ移動します。現在位置からさらに40 mm移動するわけではありません。
4.3 加工数のリセット
#3901=0(PART COUNT RESET)#3901はFANUCの加工数を表すシステム変数です。
この行は値をゼロにリセットします。
#3901 = 0この処理は、プログラムを先頭から開始したときにだけ実行されます。
その後のループでは:
M99 P10で直接N10へ戻るので、リセットは再実行されません。
この部分でCNC GUIDEにマクロ変数のアラームが出る場合は、
#3901を含む2行を一時的に削除してください。プログラムの繰り返しは継続できますが、加工数は自動で増えなくなります。
4.4 安全高さへの退避
G00 Z5.(SAFE HEIGHT)G00は早送り位置決めを意味します。
この行はZ軸を次の位置まで早送りで移動させます。
Z = 5 mmワーク上面はZ0なので、Z5では工具先端が上面より5 mm高い位置になります。
XとYを動かす前にZを上げることで、水平方向の早送り中にワークへ衝突するリスクを減らせます。
4.5 矩形の始点への早送り移動
G00 X0.Y0.(START POINT)工具は安全高さZ5を維持したまま、以下の位置へ早送りで移動します。
X = 0
Y = 0ここは経路の左下の角で、各周回の始点です。
4.6 ループの開始と切り込み
N10 G01 Z-2.F300.(PLUNGE)このブロックは4つの部分から成ります。
| 部分 | 意味 |
|---|---|
N10 | ブロック番号10 |
G01 | 直線切削送り |
Z-2. | 絶対座標Z=-2へ移動 |
F300. | 送り速度300 mm/min |
工具は次の位置から下降します。
Z5下降先:
Z-2合計移動量は7 mmです。
理論上の切り込み時間:
7 ÷ 300 × 60 = 1.4 秒N10はループの戻り先で、各周回の終了後にM99 P10でここへ戻ります。
4.7 1辺目の加工
G01 X40.Y0.F600.(EDGE 1)工具は次の位置から移動します。
X0 Y0移動先:
X40 Y0Xの正方向へ40 mm移動します。
この行では、輪郭加工の送り速度も次の値へ変更します。
F600 mm/min4.8 2辺目の加工
Y30.(EDGE 2)G01とF600はモーダルなので、各行で繰り返し指定する必要はありません。
工具は次の位置から移動します。
X40 Y0移動先:
X40 Y30ここではXを指定していないため、Xは40のままです。
4.9 3辺目の加工
X0.(EDGE 3)工具は次の位置から移動します。
X40 Y30移動先:
X0 Y30Yを指定していないため、Yは30のままです。
4.10 4辺目の加工
Y0.(EDGE 4)工具は次の位置から移動します。
X0 Y30移動先:
X0 Y0これで4辺すべての加工が完了し、工具は始点へ戻ります。

図: 上面図の赤い実線は切削経路です。工具中心はX0 Y0、X40 Y0、X40 Y30、X0 Y30を順に通り、X0 Y0へ戻ります。
4.11 退避
G00 Z5.(RETRACT)工具は切り込み位置から早送りで退避します。
Z-2退避先:
Z5工具はすでにX0 Y0へ戻っているので、退避後は安全に次の周回を開始できます。
4.12 加工数を増やす
#3901=#3901+1(PART COUNT +1)これは、次の計算に相当します。
現在の加工数 = 現在の加工数 + 1たとえば現在の加工数が7の場合:
#3901 = 7 + 1
#3901 = 8CNCに表示される加工数は、1周ごとに1増えます。
ここでは「矩形溝を1周加工した」ことを「部品を1個加工した」こととして扱っています。
4.13 2秒間のドウェル
G04 X2.(WAIT 2 SECONDS)G04はドウェルを示します。
X2.は約2秒の停止を意味します。
この停止により、次のことが容易になります。
- 加工数が増えたことを確認する。
- 各周回の間に明確な間隔があることを確認する。
- プログラムの実行リズムを理解する。
4.14 ループの開始点へ戻る
M99 P10(RETURN TO N10)この命令は、プログラムを次のブロックへ戻します。
N10そのため、プログラムは終了せず、無限に繰り返します。
N10で切り込み
→ 4辺を加工
→ 退避
→ 加工数を1増やす
→ 2秒ドウェル
→ N10へ戻るサイクルスタート(CST)を1回押すと、手動で停止またはリセットするまで繰り返し動作します。

図: 各周回の後、工具が退避し、加工数が1増え、プログラムが一時停止してから、
M99でループの開始点へ戻ります。
5. 1周にかかる時間
矩形の周長:
40 + 30 + 40 + 30 = 140 mmXYの輪郭加工では次の送りを使用します。
F600 mm/min理論上の輪郭加工時間:
140 ÷ 600 × 60 = 14 秒切り込み距離は7 mmで、送りは次のとおりです。
F300 mm/min理論上の切り込み時間:
7 ÷ 300 × 60 = 1.4 秒さらに2秒のドウェルがあるため、理論上の合計は次のようになります。
14 + 1.4 + 2 = 17.4 秒早送り移動、軸の加減速、制御装置の処理時間を含めると、実際はおよそ次の時間になります。
18~20 秒/周これは操作盤の送りオーバーライドが100%の場合です。
6. 送りオーバーライドが実行に与える影響
プログラム中の:
F300.
F600.は指令送り速度です。
操作盤の送りオーバーライドは、この値に対して実際の速度をさらに調整します。
たとえばF600の実行時は、次のようになります。
| 操作盤の送りオーバーライド | 実際の送り速度 |
|---|---|
| 100% | 約600 mm/min |
| 50% | 約300 mm/min |
| 25% | 約150 mm/min |
| 0% | 0 mm/min。座標の変化が止まる |
オーバーライドが0%の場合、以下の状況は誤解を招くことがあります。
- プログラムは開始されたように見える。
- 経過運転時間は増え続ける。
- 現在のプログラム状態は
STRTまたはMTNになっている。 G01命令で座標が変化しない。- 画面に表示される実際の
Fが0になっている。
プログラム自体は実行中ですが、オーバーライドによって切削送りが0%に固定されています。
7. 工具中心の経路は溝の外形寸法ではない
プログラムで指定した寸法:
40 × 30 mmは、工具中心が描く矩形を表し、加工後の溝の外側境界を表すものではありません。
D10のエンドミルを使用する場合:
- 工具半径は5 mmです。
- 溝幅は約10 mmです。
- 工具は中心線の両側をそれぞれ約5 mmずつ切削します。
- 四隅にはおよそR5の丸みが付きます。
工具径補正がないため、このプログラムが外形寸法を正確に40 × 30 mmに加工すると単純に解釈することはできません。
そのため、このプログラムには:
G40を含め、工具径補正を例の対象から明示的に外しています。
8. 内側が削り取られない理由
このプログラムにあるXY平面の直線移動は、次の4つだけです。
G01 X40.Y0.
Y30.
X0.
Y0.工具は矩形の境界を1周するだけです。
中央を通る工具経路の命令はないため、その部分の材料は残ります。
矩形ポケット全体を加工するには、たとえば次のように、内側へずらした複数の経路を追加します。
外側を1周
→ 一定距離だけ内側へ移動
→ 2周目
→ 再び内側へ移動
→ 3周目
→ 中央まで加工するほかにも以下の方法があります。
- 平行な往復経路による加工。
- 内側へ向かう螺旋状の経路。
- CAMソフトウェアで生成したポケット加工経路。
- 周回ごとの経路を自動計算するFANUCマクロ。
これらは、この最小限のサンプルプログラムの範囲外です。
9. CNC GUIDEでの実行
9.1 プログラムのインポートまたは入力
プログラムをテキストファイルとして保存するか、CNC GUIDEでO1000を作成してプログラムを入力します。
9.2 現在のメインプログラムに設定
プログラムディレクトリで:
- カーソルを
O1000へ移動します。 - 「操作」を選択します。
- 「メインプログラム」または「メインプログラム選択」を選択します。
- 画面上部に
O1000が表示されていることを確認します。
9.3 非常停止の解除
画面下部に次の表示がある場合:
--EMG--以下を実行します。
- I/Oパネルの
ESPをクリックして非常停止を解除します。 - 操作盤の
RESETを押します。 --EMG--が消えたことを確認します。
9.4 送りオーバーライドの設定
右側のI/OパネルのFOVの組み合わせが0%になっていないことを確認します。
テストでは次の設定を推奨します。
100%低いオーバーライドで開始して、座標の変化を観察してもかまいません。
9.5 プログラムの開始
AUTOをクリックして自動モードにします。SSBK(シングルブロックモード)が無効であることを確認します。CST(サイクルスタート)をクリックします。- X、Y、Zと加工数の変化を観察します。
10. 正常動作中に確認できること
開始後、座標はおおむね以下のように変化します。
Z: 5 → -2
X: 0 → 40
Y: 0 → 30
X: 40 → 0
Y: 30 → 0
Z: -2 → 5その後:
加工数を1増やす
2秒ドウェル
再び切り込むループ中は:
- Xが0から40の間で変化します。
- Yが0から30の間で変化します。
- Zが5から-2の間で変化します。
- 加工数が1周ごとに1増えます。
- 経過運転時間が増え続けます。
- プログラムは
M30で終了しません。
11. 停止方法
通常の一時停止
次を使用します。
Feed Hold / CSPフィードホールドにより、現在の送り動作が一時停止します。
ループの終了
次を押します。
RESET実行中のプログラムが終了し、ループの状態が解除されます。
緊急時
次を使用します。
ESP非常停止は緊急時専用です。通常のプログラム停止ボタンとして使用しないでください。
12. トラブルシューティング
12.1 運転時間は増えるが座標が動かない
最も多い原因は、送りオーバーライドが0%になっていることです。
次を確認してください。
画面に表示される実際のFは0 mm/minか?
右側のFOVが0%になっていないか?プログラムがG00の早送り位置決めを終え、次の行で:
G01 Z-2.F300.切削送りオーバーライドが0以外になるのを待っている可能性があります。
12.2 #3901でアラームが出る
現在の構成で、該当するマクロ変数機能が有効になっていない可能性があります。
まず次の行を削除します。
#3901=0
#3901=#3901+1プログラムの繰り返しは継続できますが、加工数は自動で増えなくなります。
12.3 1ブロック実行すると止まる
次が有効かどうかを確認します。
SSBKこれはシングルブロックモードです。有効な場合、各ブロックでサイクルスタートをもう一度押す必要があります。
12.4 CSTをクリックしても反応がない
次を確認します。
- 制御装置は
AUTOモードか。 --EMG--がまだ表示されていないか。- ほかのアラームがないか。
O1000が現在のメインプログラムになっているか。CSPが停止状態になっていないか。- 送りオーバーライドが0%になっていないか。
12.5 プログラムが主軸を起動しない理由
これは座標移動の学習用プログラムであり、次の命令を意図的に省略しています。
T1 M06
S2000 M03
M08
G43 H01これらの命令は、次の条件に依存する場合があります。
- 工具交換完了信号。
- 主軸起動完了信号。
- PMC設定。
- 工具長補正値。
- クーラント制御信号。
追加すると、初学者が考慮する項目やアラーム発生の可能性が増えます。
まず座標、送り、ループ、カウントを理解し、その後で機械の一連の操作を徐々に追加する方が学びやすくなります。
13. このプログラムで学べる基本概念
この短いプログラムは、次の項目を扱っています。
O1000: 従来のFANUCプログラム番号。G90: 絶対座標。G00: 早送り位置決め。G01: 直線切削送り。F: 指令送り速度。G54: ワーク座標系。N10: ブロック番号。G04: ドウェル。#3901: 加工数変数。M99 P10: 指定ブロックへ戻って繰り返す。- モーダル命令: 以降の行で
G01とF600を省略できる理由。 - 送りオーバーライド: 指令速度と操作盤のオーバーライドの関係。
- 工具中心の経路と実際に加工される輪郭の違い。
14. プログラム全体を一文で説明
工具が安全高さから左下の角へ移動し、2 mm切り込み、600 mm/minで40 × 30 mmの矩形中心線をたどり、退避して加工数を1増やし、2秒待った後、自動で繰り返します。
15. 安全上の確認事項
このプログラムは、主にCNC GUIDEシミュレーターでの学習を目的としています。
実機で実行する前に、次のことを確認してください。
- G54のワーク座標系が正しく設定されている。
- 工具とワークの位置が正しい。
- Z0が実際にワーク上面になっている。
Z5で十分なクリアランスが確保される。Z-2で治具に衝突しない。- X/Yの経路がワーク材料の範囲内に収まる。
- 工具が適切に固定され、主軸が回転している。
- 初回運転をシングルブロック、ドライラン、低いオーバーライドで検証する。
- 無限ループによって機械が無人のまま運転し続けない。
この例には工具長補正と主軸制御がないため、変更せずに実加工へ使用してはいけません。まずCNC GUIDEで座標、ループのロジック、加工数の動作を確認し、その後で工具交換、主軸、クーラント、補正、終了条件を徐々に追加して、対象機械向けの完全なプログラムを構築してください。

