工具長補正の入力ミス1つで、主軸ベアリング交換費が数百万円発生します。
マシニングセンタで加工するとき、使用する工具は1本ではありません。センタードリル、ドリル、エンドミル、ボーリングバーなど、複数の工具を順番に使いながら加工を進めていきます。ここで問題になるのが、それぞれの工具の長さが異なるという点です。
機械は「Z0に移動しろ」という指令を受けたとき、スピンドル端面の位置を基準に動きます。工具が変わっても、機械はその工具が何ミリの長さかを自動では知ることができません。つまり、何も補正しなければ、長い工具はワークに食い込み、短い工具は途中で止まってしまいます。
工具長補正の基本的な考え方は「各工具の長さの差を登録しておき、その差をもとに工具が降りてくる量を自動調整する」ことです。長さの差を基準とするため、どこを基準(0点)にするかは、現場の運用方法によって異なります。よく使われる基準は3つあり、①機械の任意の位置へ各工具先端が到達した座標から求める方法、②基準工具(マスター工具)との差から求める方法、③主軸端面(ゲージライン)から各工具先端までの長さから求める方法です。
重要なのは「差がわかれば補正できる」という点です。つまり、基準位置がどこでも構いませんが、全工具を同じ基準で測ることが前提条件になります。
実は、ワーク座標系のZ軸に機械座標を入力するだけで、工具長補正なしでも加工そのものはできます。ただしこの方法では、ワーク座標G54〜G59の6個しか使えないため、工具が6本を超えた瞬間に連続自動加工が不可能になります。工具長補正を使えば、補正番号の数だけ(ファナック系では通常64〜数百番)対応できるため、多数の工具を使う連続加工が実現できます。これが原則です。
| 補正なしの場合 | 補正ありの場合 |
|---|---|
| 工具ごとにワーク座標を再設定が必要 | H番号で登録値を呼び出すだけでOK |
| 使える工具数は最大6本(G54〜G59) | 数十〜数百本に対応可能 |
| 複数個連続加工は実質不可 | ワーク座標6個を全て有効活用できる |
| 工具交換のたびに作業停止が必要 | ATCで完全自動運転が可能 |
工具長補正はATCを使う場合の必須機能です。
参考:工具長補正の基本的な考え方と測定方法の詳細
NCプログラム/工具長補正 | じじぃの引出し
工具長補正の考え方を理解するうえで、多くの人が最初に混乱するポイントがあります。それは「機械はワークの上面をZ0だと認識していない」という事実です。
ワーク原点を設定したとき、加工者の頭の中では「これで工具先端がワーク上面に合った」と感じますが、機械側が認識しているのは「その時点でのスピンドル位置に紐付いた機械座標値」です。基準工具を使ってワーク原点を設定した場合、その原点はあくまでその1本の工具についての情報にすぎません。2本目以降の工具には通用しないわけです。
そこで工具長補正では、ワーク原点(座標系)に対して「〇〇mm上(または下)をZ0として動いてください」という補正量を工具ごとに指定します。この補正量がH番号として機械に登録されており、プログラムの中でG43 H〇〇と呼び出すことで有効になります。
補正値の符号(プラス・マイナス)については、基準位置の設定方法によって変わります。よくある2パターンを整理すると次のようになります。
どちらの方法でも補正自体は正しく機能しますが、混在させると混乱の原因になります。現場で使う方法を統一することが条件です。
参考:ワーク上面基準・ゲージライン基準の考え方と使い分け
工具長補正とは?Gコードの使い方・設定手順・トラブル対策まで徹底解説 | メトロール
ファナック系のCNC工作機械では、工具長補正をGコードで指令します。主に使用されるのはG43・G44・G49の3つです。それぞれの意味と使い分けを正確に理解しておくことが、プログラムミスを防ぐ第一歩になります。
| Gコード | 機能 | 補正の向き | 使用頻度 |
|---|---|---|---|
| G43 | 工具長補正+(加算) | Z軸プラス方向(上方向)に補正値を加算 | ★★★ 最も一般的 |
| G44 | 工具長補正-(減算) | Z軸マイナス方向(下方向)に補正値を減算 | ★☆☆ ほぼ使わない |
| G49 | 工具長補正キャンセル | 有効な補正をすべて解除 | ★★☆ 安全確認用に使用 |
G43はZ軸プラス方向、つまり「上方向」に補正値を加算するコードです。主軸端面を基準にして工具の長さを正の値で登録している場合、G43を使うと工具先端が正しい高さに調整されます。具体的な指令の書き方は次のようになります。
T1 M6 ; ツール1番に交換
G90 G54 X0. Y0. ; ワーク座標G54でX,Y位置に移動
G43 Z100.0 H01 ; H01の補正値でZ100.0まで移動
(加工)
G91 G28 Z0. ; Z軸を機械原点へ退避
G49 ; 工具長補正キャンセル
G44はG43とは逆に、補正値をZ軸マイナス方向に適用するコードです。通常の加工では使うことはほぼありません。もし誤ってG44を使ってしまうと、工具が予期しない方向に移動してワークや機械に衝突する危険があるため注意が必要です。
G49は工具長補正をキャンセルするコードです。最近のCNC機では工具交換(M6)後に新しいH番号でG43を実行すれば前の補正が自動的に切り替わるため、G49は必須ではありません。ただし、古い機械との互換性やプログラムの安全性確保のため、プログラム先頭や終了前にG49を入れておく習慣をもつ加工者も多くいます。
注意すべき点として、古い機械ではG49を実行するとZ軸が補正分だけ移動してしまう(工具を下方向に動かす)仕様のものが存在します。そのため、G49を使う前には必ずZ軸を安全な高さまで退避させてから実行することが原則です。
参考:G43・G44・G49の指令形式とプログラム例
G43, G44, G49(工具長補正)| NCプログラム基礎知識
実際に工具長補正の値を機械に登録する作業の手順を解説します。測定方法は現場の設備によって異なりますが、代表的な2つの方法があります。
① ハイトプリセッター(ツールセッタ)を使う方法
ハイトプリセッターはワークの上面またはテーブル上に置き、工具先端を接触させることで補正値を求める専用測定器です。マグネット式でワーク上面に固定できるタイプや、通電式(工具が触れた瞬間にランプが点灯する)のタイプがあります。手順は次の通りです。
ただし、ハイトプリセッターを使っても誤差ゼロにはなりません。プリセッター自体の精度誤差、ワーク上のゴミや傾き、工具の取り付け状態などにより、実際には0.05〜0.1mm程度のズレが生じることがあります。これは大切な認識です。深さ5.02mmを指示したのに4.98mmしか削れなかった、というケースはよく起こります。
② ブロックゲージを使う方法
専用のプリセッターがない場合は、厚さが既知のブロックゲージをワーク上面に載せ、工具先端がブロックゲージに触れるか触れないかのギリギリの高さを探す方法で補正値を設定します。例えば50mmのブロックゲージを使用した場合、工具先端がブロック上面に触れる位置でZ50.000として設定することで、G01 Z0.000を実行すると工具先端がワーク最上面に到達します。
この際、絶対に守らなければならないルールがあります。工具を下げる操作をするときは必ずブロックゲージをワークと工具の間から外しておくことです。ブロックゲージを挟んだ状態で工具を下降させると、ブロックゲージや工具、ワークが損傷する可能性があります。
また、上級者の中には工具を低速回転させながらワークにギリギリ接触するかどうかの境界(0.001mm単位)を探し、その位置で補正値を登録する方法を使う人もいます。理論上は非常に精度の高い補正が可能ですが、熟練した技術が必要な方法なので、慣れないうちは試切り後の実測値で調整するアプローチの方が安全です。
試切り後に寸法を実測し、NCプログラムまたは工具長補正値の増分入力で狙い寸法に近づけていくアプローチが、現場では最も確実な精度の確保方法です。
工具長補正を「なんとなく設定できている」状態で運用している加工者は意外に多くいます。しかし、補正に対する理解が浅いままだと、気づかないうちに大きなリスクを抱えていることになります。
現場のリアルな事例として、愛知県春日井市の部品加工会社では1ヶ月間で3台の機械に連続してトラブルが発生しました。うち1件はマシニングセンタでの工具長補正値の入力ミスが原因で、主軸と工具が衝突し主軸のベアリング交換が必要になりました。さらに別の案件では刃物台の交換費用として数百万円の修理費が発生しています。これは決して特殊な事例ではありません。
工具長補正ミスで起こりやすいトラブルのパターンは3つです。
こうしたミスを防ぐための具体的な対策として、まずプログラム冒頭に「安全高さへのZ退避とG49(補正キャンセル)」を入れておく習慣が有効です。また、初めてのプログラムや工具変更後の1発目の加工は、必ずシングルブロック(1ブロックずつ確認しながら実行)で動作確認を行うことが推奨されます。
さらに、自動工具長測定装置(機上ツールセッタ)の導入も有効な対策です。工具をセンサに接触させるだけで補正値が自動登録される仕組みになっており、手入力ミスの大部分をなくすことができます。メトロールなどのメーカーが提供するタッチプローブや工具長測定センサは、後付けでも既存機械に取り付け可能なものも多くあります。工具折損による加工不良や機械損傷のリスクを考えると、長期的に見てコスト削減につながる投資になります。
重切削(ゴリゴリと削るような大径エンドミルやフェイスミルの使用)を行う現場では、切削負荷でエンドミルがコレットから抜けてくる現象も起こり得ます。加工途中で工具長が変化してしまうため、こまめに補正値を確認することが大切です。加工物の深さ寸法が途中から狂い始めたら、この現象を疑うのが原則です。
参考:実際のトラブル事例と補正ミスが引き起こす修理費の現実
マシニング・旋盤・5軸加工機のリアルなトラブル事例をこっそり公開 | 榊原工機
工具長補正の考え方はどのメーカーのCNCコントローラでも共通していますが、指令の仕方や管理方法は制御機ごとに異なります。現場で複数メーカーの機械を扱う人は、この違いを押さえておくと混乱が防げます。
ファナック系(FANUC)の場合、工具長補正はH番号で管理されています。NCプログラム内でG43 H〇〇と指令することで、あらかじめ入力しておいたH番号の補正値が適用されます。重要なのは、H番号自体は「補正値が入っているテーブルの番号」であり、工具番号(T番号)とは直接連動していない点です。T1とH1が同じ工具を示す設定にするのは加工者側のルールであって、機械が自動でひも付けるわけではありません。これがファナック機で混乱が生じやすい原因の1つです。
ハイデンハイン(HEIDENHAIN)・レダース(Renishaw)の場合は、工具管理データベースの中に各工具の長さ情報が格納されています。工具交換が完了した時点で、その工具の長さ補正も自動的に適用されます。そのため、ファナックのようにプログラム内でG43 H〇〇を別途指令する必要がありません。ヨーロッパ製の機械には自動工具長測定装置が標準装備されているケースが多く、工具を交換するだけで測定から補正登録まで自動で完結します。
オークマ(OKUMA・OSP制御)の場合、工具長補正のコードはG43ではなくG56が使われます。同じ縦型マシニングセンタでもコントローラが違うと指令コードが変わるため、複数台持ちの職場では特に確認が必要です。また、オークマOSPには機械のリミットオーバーでもアラームにならない(大きな数値での退避が有効な)特性があります。
これは意外なポイントですね。
ファナック機から他社製の機械に移ったとき、「G43を使ったのに工具長補正がかからない」というトラブルは実際に起こりえます。担当機械のコントローラに合ったコードを事前確認することが条件です。
| コントローラ | 補正指令方法 | 工具交換時の自動補正 | H番号の要否 |
|---|---|---|---|
| ファナック系 | G43 H〇〇 | なし(手動指令が必要) | 必要 |
| ハイデンハイン | 工具交換時に自動適用 | あり(交換完了時点で補正済み) | 不要 |
| オークマ(OSP) | G56 | なし(指令が必要) | 必要 |
参考:ファナックとハイデンハインの工具長補正指令の違い
NCプログラム/工具長補正 | じじぃの引出し
十分な情報が集まりました。記事を生成します。

グレーティングスケール変位センサー CNC加工機 3 軸デジタル読み出し Dro セット/キットおよび 3PCS リニア ガラス スケール エンコーダー 5U TTL 作業ストローク長 100 ~ 1000 MM 工具やワークの座標検出 直線変位 角変位の検出 ツールモーション誤差補正(BLUE)