「送り速度を上げるほど加工時間が短縮できる」は大きな誤解で、実は送りすぎるとエンドミルが1本あたり数万円の損失になるケースがあります。
ポケット加工とは、素材の表面から一定の深さまで掘り込んで空間を作る加工です。マシニングセンタやフライス盤にNCプログラムを入力し、エンドミルを使って材料を削り取ります。自動車部品・金型・産業機械のハウジングなど、あらゆる金属部品に欠かせない工程です。
ポケット加工のプログラムは、大きく「準備指令」「切削動作」「終了指令」の3ブロックで構成されます。それぞれに対応するGコード・Mコードがあり、正しい順序で記述しないと機械は意図した動きをしません。
| コード | 機能 | ポケット加工での役割 |
|---|---|---|
| G90 | 絶対座標指定 | 基準点からの座標で位置を指定 |
| G91 | インクリメンタル指定 | 現在地からの増分で位置を指定 |
| G00 | 早送り | 工具を安全位置に高速移動 |
| G01 | 直線補間(切削送り) | 切削しながらの直線移動 |
| G02 | 円弧補間(時計回り) | コーナーRや円形ポケットに使用 |
| G03 | 円弧補間(反時計回り) | 同上・方向違い |
| G41 | 工具径補正(左) | エンドミル径を考慮した経路補正 |
| G42 | 工具径補正(右) | 同上・反対側 |
| G40 | 工具径補正キャンセル | 補正終了時に必須 |
| G43 | 工具長補正 | 工具の長さ差を自動補正 |
| M03 | 主軸正転 | スピンドルを正回転で起動 |
| M05 | 主軸停止 | スピンドル停止 |
| M30 | プログラム終了・リセット | プログラムの終端に必ず記述 |
G40・G41・G42の使い忘れは要注意です。工具径補正をキャンセルし忘れると、次の加工ブロックで工具が意図しない経路を走り、素材や工具に重大なダメージが生じます。
基本構成の骨格を覚えれば、あとは座標とパスの組み合わせです。
最も基本的なのが四角形ポケットの加工です。ここでは横100mm×縦60mm・深さ10mm・コーナーR5mmの四角ポケットを、φ10mmのフラットエンドミルで加工するプログラム例を示します。素材はアルミ合金(A5052)と想定します。
```
%
O0001
N10 G90 G40 G49 G80 ; 初期化
N20 G91 G28 Z0 ; Z軸原点復帰
N30 T01 M06 ; 工具1番(φ10エンドミル)交換
N40 G90 G54 ; 絶対座標・ワーク座標系1番
N50 S2000 M03 ; 主軸回転数2000rpm・正転
N60 G43 H01 Z50.0 M08 ; 工具長補正・クーラントON・Z50に移動
N70 G00 X10.0 Y10.0 ; 加工開始点上方へ早送り
N80 G00 Z2.0 ; Z2まで早送り
N90 G01 Z-3.0 F100 ; Z-3.0(1パス目)切込み・送り100mm/min
N100 G41 D01 ; 工具径補正ON(左)
N110 G01 X10.0 Y10.0 F300 ; スタート点
N120 G01 X90.0 Y10.0 ; 下辺
N130 G02 X95.0 Y15.0 R5.0; 右下コーナーR5
N140 G01 X95.0 Y55.0 ; 右辺
N150 G02 X90.0 Y60.0 R5.0; 右上コーナーR5
N160 G01 X10.0 Y60.0 ; 上辺
N170 G02 X5.0 Y55.0 R5.0 ; 左上コーナーR5
N180 G01 X5.0 Y15.0 ; 左辺
N190 G02 X10.0 Y10.0 R5.0; 左下コーナーR5
N200 G40 ; 工具径補正キャンセル
N210 G01 Z-6.0 F100 ; Z-6.0(2パス目)
N220 G41 D01 ; 補正再ON
N230 (外周繰り返し) ; N110〜N190を繰り返す
N280 G40
N290 G01 Z-10.0 F100 ; Z-10.0(3パス目・最終深さ)
N300 G41 D01
N310 (外周繰り返し)
N360 G40
N370 G00 Z50.0 M09 ; Z退避・クーラントOFF
N380 M05 ; 主軸停止
N390 G91 G28 Z0 ; Z軸原点復帰
N400 M30 ; プログラム終了
%
```
このプログラムのポイントは3点です。①切込みを3.0mmずつ3パスに分けていること、②各パスで必ずG41を再指令してG40でキャンセルすること、③G02でコーナーRをしっかり処理していることです。
コーナー部をG01の直線だけで削ると、エンドミルに過大な負荷がかかります。これは問題の多い方法です。コーナーRを必ず指定することで、工具寿命が大幅に延び、仕上がり面の品質も向上します。
切削条件の設定ミスは、工具折損・寸法不良・面粗度悪化の三大原因になります。現場経験で感覚的に設定している方も多いですが、基本の計算式を把握しておくと、素材や工具が変わってもすぐに対応できます。
主軸回転数(rpm)の計算式:
$$N = \frac{1000 \times V_c}{\pi \times D}$$
- $$N$$:主軸回転数(rpm)
- $$V_c$$:切削速度(m/min)
- $$D$$:工具径(mm)
例として、φ10mmエンドミルでアルミ加工(推奨切削速度150m/min)の場合を計算します。
$$N = \frac{1000 \times 150}{3.14 \times 10} = \frac{150000}{31.4} \approx 4777 \text{ rpm}$$
送り速度(mm/min)の計算式:
$$V_f = f_z \times Z \times N$$
- $$f_z$$:1刃あたりの送り量(mm/tooth)
- $$Z$$:刃数
- $$N$$:主軸回転数(rpm)
φ10mm・4枚刃エンドミル、$$f_z$$=0.03mm/toothの場合。
$$V_f = 0.03 \times 4 \times 4777 \approx 573 \text{ mm/min}$$
| 素材 | 推奨切削速度 | 1刃送り(目安) | 軸方向切込み(ap) |
|---|---|---|---|
| アルミ合金 | 100〜250m/min | 0.02〜0.05mm | D×0.5〜1.0 |
| 軟鋼(S45C) | 30〜80m/min | 0.01〜0.03mm | D×0.3〜0.5 |
| ステンレス(SUS304) | 20〜50m/min | 0.01〜0.02mm | D×0.2〜0.3 |
| 鋳鉄(FC200) | 60〜120m/min | 0.02〜0.04mm | D×0.3〜0.5 |
切削条件はあくまで目安が基本です。実際には機械剛性・クランプ状態・クーラントの種類によって適切値は変わります。最初は控えめな条件から始め、切音・振動・切粉の状態を観察しながら少しずつ上げていくのが現場の鉄則です。
なお、工具メーカー(OSG・三菱マテリアル・タンガロイなど)の公式カタログには素材別の推奨条件が明記されています。
参考:OSG株式会社 – 切削条件の考え方と工具選定ガイド
https://www.osg.co.jp/products/endmill/
ポケット加工のツールパスには大きく3種類あります。選択を誤ると同じプログラムでも加工時間が2倍以上変わることがあります。
① ジグザグ(往復)パス
工具が一方向に進み、折り返して反対方向に戻るパターンです。プログラムがシンプルで記述量が少なくなります。ただし折り返し点で工具が一時停止に近い状態になるため、その部分に「段差」が残りやすいという欠点があります。仕上げより荒取りに向いています。
② オフセット(等高線・輪郭倣い)パス
ポケットの輪郭を少しずつ内側にオフセットしながら中心に向かって削るパターンです。工具への負荷が比較的均一になるため、寸法精度と面粗度の両方に有利です。CAMを使うと自動生成されることが多く、仕上げ加工に特に適しています。
③ 螺旋(スパイラル)パス
円形ポケットや隅丸ポケットに有効な手法で、中心から外側へ螺旋状に広げていきます。工具が常に切削し続けるため、折り返し点での停止がなく高速加工に向いています。ただし四角形ポケットには不向きです。
| パスタイプ | 主な用途 | メリット | デメリット |
|---|---|---|---|
| ジグザグ | 荒取り全般 | プログラムが単純 | 折り返し点に段差が出やすい |
| オフセット | 荒〜仕上げ | 均一な切削負荷・高精度 | プログラム行数が増える |
| 螺旋 | 円形・隅丸ポケット | 高速・工具負荷安定 | 四角形には非対応 |
つまり用途で使い分けるのが原則です。
荒取りはジグザグ、仕上げはオフセットという組み合わせが現場では定番です。深い穴を一度に切り込もうとするアプローチは大きなリスクを招きます。深さ方向も複数パスに分割し、最終パスのみ仕上げ代0.1〜0.3mm程度を残して精度良く仕上げる構成が安全です。
同じ形状のポケットを複数箇所に加工する場合、毎回同じ座標を書き直すのは非効率です。これは時間の無駄ですね。サブプログラム(M98/M99)やユーザーマクロ(Gコードのカスタム変数)を活用すると、プログラムの行数を大幅に削減でき、修正も一箇所で済むようになります。
サブプログラム呼び出しの基本構文(FANUC系):
```
M98 P0002 ; (サブプログラムO0002を1回呼び出し)
M98 P30002 ; (サブプログラムO0002を3回繰り返し)
```
サブプログラム側の末尾には必ずM99(呼び出し元に戻る命令)を記述します。
複数ポケットへの応用例:
```
O0010 ; メインプログラム
G90 G54
G00 X20.0 Y20.0 ; 1箇所目の基準点へ移動
M98 P0020 ; ポケット加工サブプロ呼び出し
G00 X120.0 Y20.0 ; 2箇所目の基準点へ移動
M98 P0020 ; 同じサブプロ呼び出し
G00 X220.0 Y20.0 ; 3箇所目
M98 P0020
M30
%
O0020 ; サブプログラム(ポケット形状)
G91 ; インクリメンタルに切り替え
G01 Z-3.0 F100
(切削パス)
G00 Z50.0
G90 ; 絶対座標に戻す
M99 ; メインへ返す
%
```
ユーザーマクロを使えばさらに高度な制御が可能です。例えば変数#100にポケット深さを格納し、`Z-#100`と記述することで、深さをパラメータとして管理できます。これは使えそうです。
FANUC系のユーザーマクロ(マクロB)は対応機種であれば標準機能として利用できます。三菱電機のMELDAS系やDMG森精機の機種でも類似機能を持ちます。ただし制御装置のバージョンによって記述ルールが微妙に異なるため、使用する機械のプログラミングマニュアルを必ず確認してください。
参考:FANUC CNC ユーザーズマニュアル(ユーザーマクロの記述方法)
https://www.fanuc.co.jp/ja/product/cnc/index.html
教科書には載っていない「現場でよくある失敗」のパターンを把握しておくことが、ベテランと新人を分ける大きな差になります。以下は実際の現場で頻繁に発生するトラブルと、その防止策をまとめたものです。
❌ 失敗1:ワーク座標系の設定ミスによる加工位置ズレ
G54〜G59のワーク座標系を設定した後、実際の機械座標と一致しているかを確認せずに加工を始めると、想定と異なる位置を削ってしまいます。対策として、プログラムの先頭にG00でダミー移動を入れ、必ず「ドライラン(空送り)」で位置確認を行ってから本番加工に入ることが鉄則です。
❌ 失敗2:工具長補正値のH番号指定ミス
G43 H01と書くべきところをH02にしてしまうだけで、工具が素材に激突したり、逆に全く削れない位置で止まったりします。プログラム上の工具番号Tと補正番号Hは1対1で対応するよう番号を統一して管理することで、この種のミスを大幅に減らせます。
❌ 失敗3:切込み量過多によるエンドミル折損
特にSUS304などのステンレス加工で多いのが、切込み量を欲張って一度で深く切ろうとするケースです。φ10mmのエンドミルでSUS304を加工する場合、軸方向切込みは最大でも3〜4mm程度が上限の目安です。それ以上は折損リスクが急激に上がります。エンドミル1本の単価は数千円〜数万円になるため、一度の折損で材料と工具のダブル損失が発生します。
❌ 失敗4:クーラント経路の確認不足
切粉がポケット内に堆積した状態で加工を続けると、切粉の再切削が発生し面粗度が悪化するだけでなく、工具の発熱が急増して寿命を著しく縮めます。内部給油(スルークーラント)対応の工具を使う場合は、クーラントの圧力と流量が仕様値を満たしているかを事前に確認してください。
✅ 加工前の必須チェックリスト:
- 📌 ワーク座標系(G54系)の登録値を再確認したか
- 📌 工具長補正値のH番号は工具番号と一致しているか
- 📌 工具径補正値のD番号は実測値で登録されているか
- 📌 ドライランで軌跡・早送り経路を確認したか
- 📌 切込み量は素材と工具径の組み合わせで適切か
- 📌 クーラントは正常に出ているか、ノズル方向は適切か
- 📌 M30でプログラムが正しく終了するか確認したか
チェックリストは現場に印刷して貼り出すのが一番効果的です。
なお、ツールプリセッタ(工具長の事前測定器)を使えば、工具長補正値の入力ミスを大幅に削減できます。スマートな現場では1台の導入で工具折損リスクを30%以上削減したという事例も報告されています。加工ミスによる再製作コストを考えると、導入コスト回収は早い投資です。
参考:一般社団法人 日本工作機械工業会(JMTBA)– 切削加工技術関連情報
https://www.jmtba.or.jp/