5軸の基本

加工機の種類

4軸加工機  <例>

4軸加工機は、XYZ軸移動の3軸加工機に回転軸を1軸付加したものとします。
下の<図1>は、テーブルにX軸を中心に回転するインデックステーブルを付加した例で、円筒物の加工などに有効です。
下の<図2>は、横型の加工機にY軸(上方向軸)を中心に回転するインデックステーブルを付加した例で、大物の側面を多面加工する場合に有効です。
下の<図3>は縦型の加工機にZ軸中心に回転するテーブルを付加した例で、円筒端面に一定角度で穴開けを行う場合やXYストロークをカバーする為などの特殊な例です。
4軸加工機例
図1
4軸加工機例
図2
4軸加工機例
図3

5軸加工機  <例>

5軸加工機は、XYZ軸移動の3軸加工機に回転軸を2軸付加したものとします。
下の<図1>は、テーブルにX軸中心に傾斜する傾斜テーブルを付加し、更にその傾斜軸の上に(傾斜軸が0度の状態で)Z軸中心に回転する回転テーブルを付加した例です。このタイプは、傾斜軸がX軸中心で傾斜するAC軸タイプ、傾斜軸がY軸中心で傾斜するBC軸タイプ、横型加工機で傾斜軸がX軸中心に傾斜し回転軸が(傾斜軸0度時に)Y軸中心で回転するAB軸タイプなどがあります。この加工機は小型の5軸加工機によく見られるタイプです。
下の<図2>は、主軸ヘッドがZ軸中心に回転し、その回転ヘッドに(回転ヘッドが0度時に)X軸を中心に傾斜する傾斜ヘッドを取り付け、そこに主軸を取り付けた例です。この加工機は大型の加工機や木工機に見られるタイプです。
下の<図3>はテーブルにZ軸中心に回転する回転テーブルを取り付け、ヘッドは、Y軸中心に傾斜する加工機の例です。これは中型の加工機や横型にし、複合旋盤の軸構成で見られる例です。
5軸加工機例
図1
5軸加工機例
図2
5軸加工機例
図3

回転すると原点はどうなるの?

5軸加工機で、2軸回転テーブルを回転させてからXYZの3軸加工を行う場合、もともと設定したワークの原点は、角度旋回後、位置が変わってしまいます。原点が変わらないように回転の中心を原点にした場合、傾斜軸と回転軸の中心がずれているとやはり原点位置は変わってしまいます。もし変わらなかったとしても、自由に設定できないのでは、作業上の問題が多々発生します。
この原点が変わることに対応する方法の例を説明します。

  1. 回転後の原点を回転中心からの距離から手動で計算し、別の原点として登録する。この方法は、角度が変わるたびに手計算を行わなければならない為、非常に面倒な方法です。
  2. マクロプログラムを作成し、角度旋回後の原点位置を制御機でその都度計算する。マクロプログラムを利用するメリットは、マクロコール時に角度の値をマクロプログラムに渡せることと、現在の原点位置をマクロ変数として取り出すことが出来ることから様々な角度変化に対し1つのマクロプログラムで自動処理できることにあります。この計算結果は、FANUC制御の場合、G10L2で他の座標系番号に書き込むか、原点変数に値を直接代入することにより原点変更を容易に行うことが出来ます。
    (マクロプログラムについての概要はマクロ概要で説明します。)
  3. 各制御機の機能を利用する。

FANUC制御

傾斜面のオイラー角度を計算し、傾斜面加工指定機能により処理する。

Heidenhain制御

CYCLE19機能を利用して、SPATIAL角度を指定する。(オイラーでの計算も可能だが、処理的には、SPATIAL角度の方が望ましい。)
(オイラー角度については、EULER角度/SPATIAL角度とはで概要説明します)

フィクスチャーオフセット機能により原点をシフトする。

これらの機能は、制御機のオプションの有無や制御機のシリーズ違いによって、使える場合と使えない場合があるので注意が必要です。

マクロで原点を設定する方法

なぜマクロを使用する?

ここでは2軸回転テーブル付きの縦型5軸加工機でFANUC制御を例に説明します。
まず、傾斜軸/回転軸0度の状態で回転中心以外の点(素材上面など)をG54の原点に設定したとします。この状態で上面加工を行う場合には、通常の3軸加工と変わりなく加工する事が出来ます。
次に傾斜軸や回転軸を回転させて他の面を加工しようとした場合、原点位置は回転とともに位置が変わってしまいます。

この回転後の原点位置は、回転中心位置と原点位置の関係からSIN/COSの計算で算出する事が出来ます。
この時、あらかじめ原点位置がわかっている場合にはCAMのPOST計算や手計算で原点位置を計算できますが、実際の加工では原点位置は加工段取り後に決定する場合が多く、又複数の製品を加工する場合には取り付け位置の違いにより原点位置が変わってしまうことも多々あります。
このSIN/COSの計算をCAM POSTや自分で計算するのではなく機械の制御機で計算させることが出来れば、加工時に原点計算を行えるので原点の違いを気にする必要がなくなります。
(マクロプログラムのメリットはマクロプログラムをコールする時に変数(傾斜軸と回転軸の角度)を渡すことが出来、更に現在のG54などの原点オフセット量をマクロ変数として取り出すことが出来ることです。)
よって、角度が変わるときにこの登録しておいたマクロプログラムに角度を渡し、原点計算を制御機で行い、その結果を他の座標系番号(G55など)に書き込むなどを行う事により、多面加工を容易に行うことが出来ます。

マクロプログラムはどうやってコールする?

まず、あらかじめマクロプログラムを作成し制御機のメモリーに登録しておきます。登録はO9000番台に保存するなどして通常は編集出来ないようにしておくと良いかもしれません。
このマクロプログラムをコールする場合、下記のようにメインプログラムからコールします。

G65 P9001 A30. B30.  など

このコール時、A30.はマクロ変数 #1=30.として記憶され、B30.は#2に記憶されます。

マクロ計算結果をどうやって反映させる?

原点を変更する方法は色々ありますが、ここではワーク座標系G54~G59の書き換えを行う例を説明します。
マクロ内部で原点の計算結果を#131、#132、#133などのように変数に記憶させておきます。
この計算結果を(例えば)G55に書き込みたい場合、下記のように指令します。

G10 L2 P2 X#131 Y#132 Z#133  など

この時、G91の状態だと、数値をインクリメンタルで書き換えますので、完全に書き換える場合は、G90の状態にしておく必要があります。
また、このG10L2がオプションでこの機能を使うことが出来ない場合には、G55の変数に直接書き込む方法があります。G55のXオフセットが#5241、Yが#5242、Zが#5243の場合

#5241 = #131
#5242 = #132
#5243 = #133
になります。(詳細は制御マニュアルをご参照下さい)

マクロプログラムはどう作成する?

基本的には、現在の原点オフセットと回転中心のオフセットの差から距離を計算することが出来、その距離と回転角度からTAN計算、SIN/COS計算によって回転後のオフセットを計算することが出来ます。
TAN計算で、分子、分母とも0の場合、FAUNC 30シリーズの制御機ではエラー出力が出ますが、それ以前の制御機の場合はエラーにならない場合がありますので注意して下さい。
又、(最新情報ではありませんが)MELDASとFANUCではTAN計算の方法が違う場合があるので注意して下さい。(結果が360°まで計算できる場合と出来ない場合があるので注意)
この原点計算マクロプログラムはAi Solutionsにて提供することも出来ますので、ご要望の場合はお問い合わせ下さい。

→ テーブル旋回型5軸加工機 原点計算プログラム(サンプル)

※これらの機能は、制御機のオプションの有無や制御機のシリーズ違いによって、使える場合と使えない場合があるので注意が必要です。

工具長補正

工具長補正が5軸に関係する理由

XYZ3軸の加工の場合は、工具長補正は様々な設定方法があります。
例えば、T1番工具の補正値を0と置き、その他の工具をT1工具との差分で入力する場合があります。この設定方法の場合にはT1番工具が変わると補正の基準点が変わることになります。
この状態では、ワーク座標系(G54など)を使用する場合ワーク座標系原点のZオフセットも基準工具が変わると変わってしまいます。
5軸加工を行う場合、回転中心の位置とワーク座標系原点の距離が非常に重要になります。基準が変わってしまうと、回転中心の位置も変わってしまうことになり原点の移動量の計算が正確に行えなくなります。
よって工具長補正は基準を決めておく必要があります。

補正基準

補正基準は、工具ホルダーを取り付けていない状態での主軸端面を基準にするケースが一般的ですが補正基準の統一性さえ保てれば主軸端面でなくても問題はありません。場合によっては、テーブル上面を基準にし、機械原点に主軸を復帰させた状態でテーブル上面と工具先端の距離を補正値とする場合もあります。
工具長補正を自動で行う場合は、特に問題ありませんがその時のおおよその基準は把握しておくと良いかもしれません。

工具長補正とワーク座標系原点、回転中心オフセットの設定例

補正
*画像をクリックすると大きなサイズでご覧いただけます。
右図は、テーブル2軸回転縦型5軸機の例で、主軸が原点復帰した状態を示しています。

この状態でまず工具長補正の基準は、主軸下端にしています。工具長補正は主軸下端から工具先端までの距離(+値)となります。回転中心やワーク座標系原点のオフセットのXオフセット、Yオフセットは、機械原点からの距離となります。

次に、ワーク座標系原点のZオフセットは右の状態で主軸下端から、加工原点までの距離(-値)となります。
回転中心のZオフセットも同様に、主軸下端から、回転中心までの距離(-値)となります。

この関係が保たれることにより、マクロプログラムによる原点計算や、同時5軸加工時の回転中心から、原点までの距離を正確に計算することが出来ることになります。

SPATIAL角、EULER角って?

SPATIAL?

ハイデンハイン(Heidenhain) iTNC 530 制御を例に説明します。
空間上の3つの角度 (Space angle)を指定することにより、空間上の自由な平面を指定することが出来る機能です。

PLANE SPATIAL SPA+118.481 SPB-9.847 SPC+17.495 TURN F AUTO
3つの角度は、SPA、SPB、SPCで指定します。この時 TURN指令により、テーブルまたはヘッドをその方向に傾斜させ、原点を自動移動させることが出来ます。
上記指令はEULER角度でも指令することは出来ますが、現状はSTATIALがお勧めと思われます。
又、この指令はCYCLE19で指令する場合もあります。
SPATIAL角度の計算方法は制御機マニュアルを確認下さい。
Ai Solutionsでは、Mastercamで自由に設定した平面でのツールパスをPOST実行にて自動的にSPATIAL指令出力することの出来るPOSTを提供します。

→ 空間(SPATIAL) 角 (A B C)  シミュレーションプログラム

EULER?

FANUC 30シリーズを例に説明します。
30シリーズでの傾斜面加工指定機能は、下記のように空間上のEULER(オイラー)角度を指令することにより自由な平面を指定することが出来ます。

G68.2X0Y0Z0I22.796J118.024K11.17(TWP START)
このコードを指令した後にG53.1を出力することによりその平面方向にテーブルまたは、ヘッドを傾斜させることが出来、そのとき原点もシフトされます。

G53.1
EULER角度の計算方法は制御機マニュアルを確認下さい。

→ オイラー(EULAR)角 (Z-X-Z) シミュレーションプログラム

Ai Solutionsでは、Mastercamで自由に設定した平面でのツールパスをPOST実行にて自動的に傾斜面加工指定(EULER角度)指令出力することの出来るPOSTを提供します。

同時5軸加工の工具の動き

DATAは?

XYZの3軸加工の場合、G01X…Y…Z….などになりますが、同時5軸加工の場合には、G01X…Y…Z…A…B…などの傾斜軸、回転軸角度が加わります。
このときの傾斜軸/回転軸の出力は、機械によりアドレスや+-、値が変わってきます。
よって、傾斜軸/回転軸の軸構成が違う機械では、通常同じDATAを使用することは出来ないので、加工する機械が変わる場合には、CAMのPOSTを変更し、再度NC DATAを出力する必要があります。 (TCP制御の工具ベクトル出力は例外ですが)

次にXYZの座標ですが、テーブルが傾斜/回転するタイプの5軸加工機の場合は、傾斜軸/回転軸の角度が変わっても工具先端の(機械上での)XYZ位置が変化することはありません。よって基本的には3軸と同様に工具長補正を行い、加工する事が出来ます。(ただし、一般的にCAMでの座標は、工具が旋回する動きでの工具先端座標を指示しますのでPOSTでの座標計算が必要になります。)
又、工具主軸が傾斜/回転するタイプの5軸加工機の場合には、本来CAMでの工具先端の座標と機械の工具先端の座標は一致しますが、機械側で軸方向長補正機能や、工具先端点制御などが無い場合には、主軸角度が変化すると工具先端の位置が変わってしまうため、工具の旋回中心でDATAを出力するケースが一般的です。
(傾斜/回転軸0°時の工具先端を仮想先端とし、XYZ座標を仮想先端に変換し出力するケースもあります。これは3軸加工と5軸加工での長補正位置を変えたくない場合に有効です。(AiSolutionsではMastercamでのこの出力POSTも提供可能です。)

送り速度は?

同時5軸加工の場合通常、指令した送り速度は、XYZの移動量と傾斜/回転軸の角度変化を含めた形で速度を決定しています。よって、回転中心から距離が離れている場合と近い場合の実際の速度は変わってきます。工具先端での送り速度を一定にさせるためには、インバースタイム送りか、先端点制御を使用するか、CAM POSTで速度を逆算して指令速度を変更するかになります。
CAMで指令速度を逆算する場合は、CAM上での工具先端移動量と機械上での回転角度を加えた(5次元)仮想移動距離の比から、指令速度を計算することも可能です。

同時5軸加工での注意点は?

一般的な注意事項

  1. ホルダーなどの干渉
    5軸加工では、工具の向きが常に変化することから必要工具突き出し量を決定しづらくなります。よって工具の突き出しを確実にチェックするために、NCDATAでのシミュレーターなどで工具突き出しを調整するなどが必要になります。
  2. 冶具干渉
    3軸加工では、2次元的にある程度干渉を確認出来ますが、5軸加工ではそれも難しくなります。これもシミュレーターなどでのチェックが必要です。
  3. 機械構造物干渉
    テーブル回転型の5軸機などは回転テーブルのユニットとの干渉も確認する必要があります。
  4. オーバートラベル確認
    例えばテーブル回転型の加工機であれば、傾斜軸が0°の時の材料位置と、傾斜軸90°の時では、Z方向や、横方向の位置も大きく変わります。これは取り付け位置や材料サイズにも大きく関係してきます。傾斜軸の回転中心から材料が離れれば離れるほどその移動範囲は大きくなります。よって思わぬところでのオーバートラベルが発生する場合もあります。

    ヘッド回転型の場合はヘッドの回転中心から工具先までの距離が大きいと、先端の移動量が少なくても、それと同時に角度変化が加わるとヘッド回転中心は大きく移動することになります。これも思わぬところでオーバートラベルが発生する原因になります。
    又、複合旋盤などの場合は、X-側の範囲が小さいケースが多いため、C軸を反転させ加工しなければならない場合もあります。

角度変化に関する注意事項

同時5軸加工の場合、1行の動作で、XYZ移動と同時に傾斜軸/回転軸指令が入ります。この時角度の変化が大きいと、下のように工具先端が直線的に動かず、食い込みや削り残りが発生します。

この角度変化は、特にテーブル回転型の5軸加工機では、テーブルの傾斜軸が0°(Z軸方向)に近づくと回転軸の変化は大きくなる傾向にあります。又、傾斜軸が完全に0°(Z軸向き)の位置では回転軸がフリーになり、180度回転軸が回転してしまう場合もあるので注意が必要です。
これらの角度変化に関する問題は工具先端点制御機能を使うか、POSTで角度を補間することにより回避することが出来ます。
Ai Solutionsでは、この両方の仕様のPOSTを提供します。

工具先端点制御って?

工具先端点制御(TCP Control)の基本

工具先端点制御は、同時5軸動作指令を行う場合に、NC DATAで指令点を直線的に動作させる機能で、この機能を使うことにより、角度が大きく変化する場合にもNC DATAを微小分割する必要がなくなります。又この時基本的には指令点の移動速度を一定にすることも可能です。下の例は、先端点制御が無い場合の工具の動きとある場合の工具の動きを示します。すべて1行のGコード指令での動作と考えてください。

ヘッド旋回タイプ

<先端点制御なし>
<先端点制御あり>
テーブル回転タイプ

<先端点制御なし>
<先端点制御あり>

工具先端点制御の注意事項

  1. DATAはボール中心で作成
    工具先端点制御は、NCの指令点の直線を保持します。よって、DATAは、ボールエンドミルのボール中心で作成して初めて効果を発揮します。工具先端で長補正を行う場合やスクエアや、ラジアスのカッターでは、実際の先端は直線を保つわけではありませんので注意が必要です。(実際には、これらの場合でも工具先端点制御の無い場合に比べるとメリットは十分ありますが)
  2. 旋盤系での注意事項
    複合旋盤などでC軸を回転させながら加工するスクリュー形状などの場合は、先端点制御が無いDATAはC軸が大きく回転した場合、円周上を工具が移動しますが、先端点制御を有効にすると直線的にDATAを補間するため多角形的に仕上がってしまう場合もありますので注意が必要です。
  3. 指令できるコード
    先端点制御中に指令できるコードには限定条件があります。指令できないDATAを出力した場合にはエラーとなるので注意が必要です。

工具先端点制御の指令方法(例:FANUC制御の場合)

FANUC制御での基本的な出力例を3種類紹介します。

  1. TCP TYPE Ⅰ その1
    TYPE ⅠはG43.4で長補正を行いその時点から先端点制御が有効になります。この時の角度は機械構成に合わせた角度を出力します。XYZ座標は、実際の加工機でのXYZ座標を出力します。このDATAの場合、先端点制御を使う場合と使わない場合にほぼ同じDATAで加工する事が出来ますが、回転中心のずれなどはNC DATAを出力するときに計算する必要があります。
  2. TCP TYPE Ⅰ その2
    上記1とはXYZの座標出力のみが違います。他は、上記と同じです。ここでのXYZ出力は、機械上での座標ではなく、CADCAM上での座標となります。つまり、傾斜軸回転軸が回る前のXYZ座標で出力します。このその1とその2の使い分けは、制御機のパラメータで設定する必要があります。(WKPパラメータ)その2のメリットは、機械構成が同じで回転中心が違う機械でDATAを共有することが出来ます。
  3. TCP TYPE Ⅱ
    TYPE Ⅱでの出力は長補正をG43.5で行い、XYZの出力は上記TYPE Ⅰその2と同一です。角度については、実際の角度を出力するのではなく工具のベクトルをIJKで出力します。この場合実際の角度は制御機で計算されます。よって、IJKの出力桁数は多く取るほうが精度良く計算が出来ます。
    TYPE Ⅱで出力すれば機械構成が違う場合にも同じDATAを使用することが出来ます。(上記のWKPパラメータによってこのTYPE Ⅱが出力出来るかどうかは変わってきますので注意が必要です。)