(57)【要約】【課題】工具先端点制御において、指定された方向の補正量が少なくなるように工具方向ベクトルを補正し、加工時の機械の不要な加減速を抑え、加工時間の短縮や加工物の加工面の面品位向上を可能にする５軸加工機を制御する数値制御装置を提供する。【解決手段】５軸加工機を制御する数値制御装置１００において指令読み取り手段１は加工プログラムを解析し実行形式に変換する。補間手段２は実行形式に基づいて補間処理を行い各軸への移動指令を出力し、各軸移動指令に基づき各軸サーボ３Ｘ，３Ｙ，３Ｚ，３Ｂ（Ａ），３Ｃを駆動制御する。数値制御装置１００は指令読み取り手段１に属する工具方向指令補正手段４を有し、加工プログラムの工具方向変化が滑らかとなるように工具方向ベクトルを補正する。工具方向指令補正手段４は工具方向補正トレランス設定手段６によって予め設定されている工具方向補正トレランス５を参照する。【選択図】図１４
2015015006.tif 000002
【特許請求の範囲】
【請求項１】
テーブルに取付けられた加工物に対して加工を行う直線軸３軸と回転軸２軸とによって構成される５軸加工機を制御する数値制御装置において、
前記直線軸の移動経路指令、前記加工物と工具との相対移動速度指令および前記テーブルに対する工具方向として工具方向指令および工具長を読み取る指令読み取り手段と、
工具方向を補正する閾値である工具方向補正トレランスを設定する工具方向補正トレランス設定手段と、
前記工具方向指令を前記工具方向補正トレランス以内となるように補正する工具方向指令補正手段と、
前記工具方向指令補正手段によって補正された前記工具方向指令、前記移動経路指令および前記相対移動速度指令に基づいて工具先端点が指令された移動経路上を指令された相対移動速度で移動するよう補間周期ごとに各軸位置を求める補間手段と、
前記補間手段により求められた各軸位置へ移動するように各軸モータを駆動する手段を有する数値制御装置。
【請求項２】
前記工具方向指令は工具方向ベクトルとして指令され、前記工具方向指令補正手段は指令された前記工具方向ベクトルを補正することを特徴とする請求項１に記載の数値制御装置。
【請求項３】
前記工具方向指令は回転軸２軸の位置によって指令され、前記工具方向指令補正手段は指令された前記回転軸２軸の位置を補正することを特徴とする請求項１に記載の数値制御装置。
【請求項４】
前記工具方向指令補正手段は指令された回転軸２軸の位置を工具方向ベクトルに変換し、変換した前記工具方向ベクトルを補正し、補正した前記工具方向ベクトルを回転軸２軸の位置に逆変換することを特徴とする請求項３に記載の数値制御装置。
【請求項５】
前記工具方向補正トレランスはＩ，Ｊ，Ｋ（Ｘ，Ｙ，Ｚ軸方向）として与えられ、前記工具方向指令補正手段は指定された前記工具方向補正トレランス以内となるように補正することを特徴とする請求項１〜４のいずれか一つに記載の数値制御装置。
【請求項６】
前記工具方向補正トレランスは工具進行方向トレランスおよび加工面法線方向トレランスとして与えられ、前記工具方向指令補正手段は前記工具進行方向トレランスおよび前記加工面法線方向トレランス以内となるように補正することを特徴とする請求項１〜４のいずれか一つに記載の数値制御装置。
【請求項７】
前記工具方向補正トレランスは任意方向のトレランスとして与えられ、前記工具方向指令補正手段は前記任意方向のトレランス以内となるように補正することを特徴とする請求項１〜４のいずれか一つに記載の数値制御装置。
【請求項８】
前記指令読み取り手段は工具方向指令補正モードが指令されると、工具方向指令補正モード解除が指令されるまで予め設定された数のブロックを補正対象プログラム指令として先読みし、前記工具方向指令補正手段は前記補正対象プログラム指令における工具方向指令を補正することを特徴とする請求項１〜７のいずれか一つに記載の数値制御装置。
【請求項９】
前記工具方向指令補正モードはＧコードで指令され前記工具方向指令補正モード解除は前記Ｇコードとは異なるＧコードで指令されることを特徴とする請求項８記載の数値制御装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、テーブルに取付けられた加工物に対して直線軸３軸と回転軸２軸によって加工する５軸加工機を制御する数値制御装置に関する。
【背景技術】
【０００２】
５軸加工機を用いて加工物を加工する場合、工具先端点の移動経路と工具方向の移動指令に対して、指令された加工物と工具との相対移動速度に基づいて工具先端点の移動経路を補間しながら工具方向も補間し、工具方向が変化しながら工具先端点が指令された移動経路上を指令された速度で移動する加工技術の利用が一般的になってきている（特許文献１，２参照）。このような指令と加工技術は工具先端点制御といわれ、プログラム指令は通常ＣＡＭによって作成されている。
【０００３】
特許文献１には、工具先端点の移動経路と工具方向の移動指令に対して、加工物と工具との相対移動速度に基づいてそれぞれ補間しながら移動経路の補間点を補正して、工具先端点が指令された移動経路上を指令された速度で移動するようにサーボモータを駆動する技術が開示されている。
【０００４】
特許文献２には、工具先端点の移動経路を指令する点列と工具方向を指令するベクトル列から、加工点が指令点列から生成される曲線上を、工具方向を示すベクトル先端点が指令ベクトル列から生成される曲線上を変化するように補間する技術が開示されている。  
特許文献３には、２つの回転軸移動量と直線軸移動量との比が一定となるように補正する工具方向指令補正手段に関する技術が開示されている。また、特許文献３には、ＣＡＭの作成するプログラムの工具先端点の移動経路である直線軸指令の長さに対して工具方向の変化が比例せずに大きく変化する場合があることが示されている。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２００３−１９５９１７号公報
【特許文献２】特開２００５−１８２４３７号公報
【特許文献３】特許第４３５１２８１号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
工具先端点から工具方向に工具長分オフセットした位置を制御点と呼ぶ。工具先端点が指令された移動経路に沿うように制御した場合、制御点にはブロック毎の工具方向の変化が工具長分増幅されて加算される。そのため、工具方向ベクトルに大きな変化がある場合、たとえ工具先端点の指令経路が滑らかであっても制御点の移動は必ずしも滑らかな動作になるとは限らない。制御点の移動経路が滑らかでなければ、サーボモータはその経路に追従するために急激な加減速を行う必要があり、加工時間の延長や加工物の面品位低下などの悪影響を生じる。
【０００７】
特許文献３に記載された工具方向指令補正手段では、回転軸指令を直接補正する。そのため工具方向ベクトルをどの方向に補正するかを制御できない。例えば工具側面を利用した加工では、加工面法線方向の補正量が大きくなると、加工物への必要以上の切削が生じ、加工物の面品位低下を生じる。また機械などの障害物がある方向の補正量が大きくなると、図１に示すように工具と機械とが干渉する可能性がある。
【０００８】
そこで本発明の目的は、工具先端点制御において、指定された方向の補正量が少なくなるように工具方向ベクトルを補正し、加工時の機械の不要な加減速を抑え、加工時間の短縮や加工物の加工面の面品位向上を可能にする５軸加工機を制御する数値制御装置を提供することである。
【課題を解決するための手段】
【０００９】
本願の請求項１に係る発明は、テーブルに取付けられた加工物に対して加工を行う直線軸３軸と回転軸２軸とによって構成される５軸加工機を制御する数値制御装置において、前記直線軸の移動経路指令、前記加工物と工具との相対移動速度指令および前記テーブルに対する工具方向として工具方向指令および工具長を読み取る指令読み取り手段と、工具方向を補正する閾値である工具方向補正トレランスを設定する工具方向補正トレランス設定手段と、前記工具方向指令を前記工具方向補正トレランス以内となるように補正する工具方向指令補正手段と、前記工具方向指令補正手段によって補正された前記工具方向指令、前記移動経路指令および前記相対移動速度指令に基づいて工具先端点が指令された移動経路上を指令された相対移動速度で移動するよう補間周期ごとに各軸位置を求める補間手段と、前記補間手段により求められた各軸位置へ移動するように各軸モータを駆動する手段を有する数値制御装置である。
【００１０】
請求項２に係る発明は、前記工具方向指令は工具方向ベクトルとして指令され、前記工具方向指令補正手段は指令された前記工具方向ベクトルを補正することを特徴とする請求項１に記載の数値制御装置である。  
請求項３に係る発明は、前記工具方向指令は回転軸２軸の位置によって指令され、前記工具方向指令補正手段は指令された前記回転軸２軸の位置を補正することを特徴とする請求項１に記載の数値制御装置である。  
請求項４に係る発明は、前記工具方向指令補正手段は指令された回転軸２軸の位置を工具方向ベクトルに変換し、変換した前記工具方向ベクトルを補正し、補正した前記工具方向ベクトルを回転軸２軸の位置に逆変換することを特徴とする請求項３に記載の数値制御装置である。
【００１１】
請求項５に係る発明は、前記工具方向補正トレランスはＩ，Ｊ，Ｋ（Ｘ，Ｙ，Ｚ軸方向）として与えられ、前記工具方向指令補正手段は指定された前記工具方向補正トレランス以内となるように補正することを特徴とする請求項１〜４のいずれか一つに記載の数値制御装置である。  
請求項６に係る発明は、前記工具方向補正トレランスは工具進行方向トレランスおよび加工面法線方向トレランスとして与えられ、前記工具方向指令補正手段は前記工具進行方向トレランスおよび前記加工面法線方向トレランス以内となるように補正することを特徴とする請求項１〜４のいずれか一つに記載の数値制御装置である。  
請求項７に係る発明は、前記工具方向補正トレランスは任意方向のトレランスとして与えられ、前記工具方向指令補正手段は前記任意方向のトレランス以内となるように補正することを特徴とする請求項１〜４のいずれか一つに記載の数値制御装置である。
【００１２】
請求項８に係る発明は、前記指令読み取り手段は工具方向指令補正モードが指令されると、工具方向指令補正モード解除が指令されるまで予め設定された数のブロックを補正対象プログラム指令として先読みし、前記工具方向指令補正手段は前記補正対象プログラム指令における工具方向指令を補正することを特徴とする請求項１〜７のいずれか一つに記載の数値制御装置である。  
請求項９に係る発明は、前記工具方向指令補正モードはＧコードで指令され前記工具方向指令補正モード解除は前記Ｇコードとは異なるＧコードで指令されることを特徴とする請求項８記載の数値制御装置である。
【発明の効果】
【００１３】
本発明により、工具先端点制御において、指定された方向の補正量が少なくなるように工具方向ベクトルを補正し、加工時の機械の不要な加減速を抑え、加工時間の短縮や加工物の加工面の面品位向上を可能にする５軸加工機を制御する数値制御装置を提供できる。
【図面の簡単な説明】
【００１４】
【図１】従来技術において工具と機械とが干渉することを説明する図である。
【図２】実施形態１の加工プログラム指令の例である。
【図３】Ｘ，Ｙ，Ｚ軸への位置指令Ｐ１（Ｐｘ１，Ｐｙ１，Ｐｚ１）〜Ｐ１０（Ｐｘ１０，Ｐｙ１０，Ｐｚ１０）をＸ，Ｙ，Ｚ座標で、Ｉの工具方向指令Ｐｉ１〜Ｐｉ１０を１次元座標で表し、その対比を表わす図である。
【図４】Ｉ，Ｊ，Ｋ空間での工具方向ベクトルの先端を説明する図である。
【図５】Ｘ，Ｙ，Ｚ軸への位置指令をＸ，Ｙ，Ｚ座標で、Ｉの工具方向指令を１次元座標で表した図である。
【図６】図３で表されたＩ，Ｊ，Ｋ空間での工具方向ベクトルＰｄｎの軌跡がＲｄｎように補正されることを説明する図である。
【図７】工具進行方向にＵｎ軸が一致し、加工面法線方向にＶｎ軸が一致する座標系となることを説明する図である。
【図８】工具方向トレランスを説明する図である。
【図９】プログラム指令例である。
【図１０】機械構成を説明する図である。
【図１１】回転軸２軸でテーブルを回転するテーブル回転型５軸加工機を説明する図である。
【図１２】回転軸１軸で工具ヘッドを他の回転軸１軸で回転する混合型５軸加工機を説明する図である。
【図１３】本発明の実施形態の機能ブロック図である。
【図１４】工具方向指令補正手段の処理を示すフローチャートである。
【図１５】本発明に係る制御装置の要部ブロック図である。
【発明を実施するための形態】
【００１５】
以下、本発明の実施形態を図面と共に説明する。
（実施形態１）：工具先端点加工
図２に示すプログラム指令例で説明する。工具方向指令補正モードになると工具方向指令補正モードが解除されるまで、最大先読みブロック数だけのブロックを補正対象プログラム指令として先読みし、先読みされた補正対象プログラム指令における各ブロックに対して、直線軸の移動量と工具方向ベクトル変化量との比が一定となるように工具方向指令を補正する。なお、最大先読みブロック数は別途パラメータとして設定されている。
【００１６】
ここでは、Ｇａａが工具方向指令補正モードを指令するＧコード、Ｇｂｂが工具方向指令補正モード解除を指令するＧコードである。工具方向がＸ，Ｙ，Ｚ軸方向の正規化されたＩ，Ｊ，Ｋによる工具方向ベクトルとして指令されている。
【００１７】
このように工具方向を工具方向ベクトルとして指令する方法は、例えば特許文献３として提示した特開２００３−１９５９１７などにおいて公知の方法である。Ｘ，Ｙ，Ｚで指令される工具先端点の移動経路における加工物と工具との相対移動速度ｆはＧａａが指令されるまでにモーダル指令Ｆｆとしてすでに指令されている。
【００１８】
各ブロックのＸ，Ｙ，Ｚ軸の位置指令と、Ｉの工具方向指令が図３のようであったとする。図３では、Ｘ，Ｙ，Ｚ軸への位置指令Ｐ１（Ｐｘ１，Ｐｙ１，Ｐｚ１）〜Ｐ１０（Ｐｘ１０，Ｐｙ１０，Ｐｚ１０）をＸ，Ｙ，Ｚ座標で、Ｉの工具方向指令Ｐｉ１〜Ｐｉ１０を１次元座標で表し、その対比を表している。図３では、工具方向ベクトルのＸ成分Ｉを代表して記載しているが、Ｊ，Ｋに関しても同様である。Ｐ０（Ｐｘ０，Ｐｙ０，Ｐｚ０）はＧａａ指令時の各軸の位置である。Ｐｉ０，Ｐｊ０，Ｐｋ０はＧａａ指令時の回転２軸の位置で決まる正規化された工具方向ベクトルのＸ，Ｙ，Ｚ成分である。
【００１９】
したがって、工具先端点がＰ０（Ｐｘ０，Ｐｙ０，Ｐｚ０）〜Ｐ１０（Ｐｘ１０，Ｐｙ１０，Ｐｚ１０）間を速度ｆで移動する間に工具方向ベクトルのＸ成分ＩはＰｉ０〜Ｐｉ１０、工具方向ベクトルのＹ成分ＪはＰｊ０〜Ｐｊ１０、工具方向ベクトルのＺ成分ＫはＰｋ０〜Ｐｋ１０を変化する。
【００２０】
各ブロックでは、工具先端点がＰ０（Ｐｘ０，Ｐｙ０，Ｐｚ０）〜Ｐ１（Ｐｘ１，Ｐｙ１，Ｐｚ１）間を速度ｆで移動する間に工具方向ベクトルのＸ成分ＩはＰｉ０〜Ｐｉ１、ＪはＰｊ０〜Ｐｊ１、ＫはＰｋ０〜Ｐｋ１間を、工具先端点がＰ１（Ｐｘ１，Ｐｙ１，Ｐｚ１）〜Ｐ２（Ｐｘ２，Ｐｙ２，Ｐｚ２）間を速度ｆで移動する間に工具方向ベクトルのＸ成分ＩはＰｉ１〜Ｐｉ２、工具方向ベクトルのＹ成分ＪはＰｊ１〜Ｐｊ２、工具方向ベクトルのＺ成分ＫはＰｋ１〜Ｐｋ２間を変化するというように、ブロックごとに工具先端点の移動に同期してＩ，Ｊ，Ｋは変化する。
【００２１】
図４は、Ｉ，Ｊ，Ｋ空間での工具方向ベクトルの先端Ｐｄ０（Ｐｉ０，Ｐｊ０，Ｐｋ０）〜Ｐｄ１０（Ｐｉ１０，Ｐｊ１０，Ｐｋ１０）を表している。Ｐｄ０〜Ｐｄ１０は正規化されたベクトルであるため、その先端は半径１の球上の点となる。ＧａａからＧｂｂの間は１０ブロックの指令の例としているが、ブロック数に制限はない。各軸位置指令はアブソリュート指令としている。
【００２２】
ここで、各ブロックにおける直線軸移動量と工具方向ベクトルの各成分の変化量の比は数１〜数３式で表される。なお、数１式〜数３式においてｎは０〜９である。
【００２３】
【数１】
2015015006.tif 000003
【００２４】
【数２】
2015015006.tif 000004
【００２５】
【数３】
2015015006.tif 000005
【００２６】
各ブロックにおける直線軸移動量と工具方向ベクトルの各成分の変化量の比は通常一定ではない。そこで、これらの比が一定となるよう、次のようにＰｉ１〜Ｐｉ１０，Ｐｊ１〜Ｐｊ１０，Ｐｋ１〜Ｐｋ１０を補正する。
【００２７】
数値制御装置はＧａａを読み込むと先読みと補正処理を開始する。ここでは先読みブロック数は最大５とする。補正されたＩ，Ｊ，Ｋ指令をＲｉ１〜Ｒｉ１０，Ｒｊ１〜Ｒｊ１０，Ｒｋ１〜Ｒｋ１０とする。方向のみ補正した工具方向ベクトルをＱｉ１〜Ｑｉ１０，Ｑｊ１〜Ｑｊ１０，Ｑｋ１〜Ｑｋ１０とする。
【００２８】
Ｉ，Ｊ，Ｋ（工具方向ベクトルのＸ，Ｙ，Ｚ成分）の正方向の工具方向補正トレランスをＴｉ，Ｔｊ，Ｔｋとし、Ｉ，Ｊ，Ｋ（工具方向ベクトルのＸ，Ｙ，Ｚ成分）の負方向の工具方向補正トレランスをＳｉ，Ｓｊ，Ｓｋとする。これらの工具方向補正トレランスには、予め工具方向補正トレランス設定手段により工具方向を補正する閾値が設定されている。この工具方向補正トレランスはオペレータによりパラメータとして設定してもよいし、プログラム指令で設定するようにしてもよい。
【００２９】
以下、補正処理の手順に従って説明する。  
＜１＞１ブロックを読み込み、第１ブロックは補正しない（数４式）。  
【００３０】
【数４】
2015015006.tif 000006
【００３１】
なお、以下同様にα＝ｉ，ｊ，ｋである。
＜２＞第２、３ブロックを読み込み、数５式のようにＱα２を計算する。
【００３２】
【数５】
2015015006.tif 000007
【００３３】
＜３＞補正量が上限値（工具方向補正トレランス）を超えていた場合、最大の補正量とする（数６式）。
【００３４】
【数６】
2015015006.tif 000008
【００３５】
＜４＞補正された第２ブロックのＩ，Ｊ，Ｋ指令（Ｑα２）を正規化する（数７式）。これを補正後のＩ，Ｊ，Ｋ指令（Ｒα２）とする。
【００３６】
【数７】
2015015006.tif 000009
【００３７】
＜５＞第ｎ＋１、第ｎ＋２ブロックを読み込み、数８式のように第ｎブロックのＩ，Ｊ，Ｋ指令を補正する（ｎ＝３〜８）。ただし、ｎ＝４〜８では第ｎ＋１ブロックはすでに読み込まれている。
【００３８】
【数８】
2015015006.tif 000010
【００３９】
＜６＞補正量が上限値（工具方向補正トレランス）を超えていた場合、数９式のように最大の補正量とする。
【００４０】
【数９】
2015015006.tif 000011
【００４１】
＜７＞数１０式のように補正された第ｎブロックのＩ，Ｊ，Ｋ指令（Ｑαｎ）を正規化する。
【００４２】
【数１０】
2015015006.tif 000012
【００４３】
＜８＞Ｇｂｂを読み込み、新規のブロック読み込みは停止する。数１１式のように第９ブロックのＩ，Ｊ，Ｋ指令を補正する。
【００４４】
【数１１】
2015015006.tif 000013
【００４５】
＜９＞補正量が上限値（工具方向補正トレランス）を超えていた場合、最大の補正量とする（数１２式）。
【００４６】
【数１２】
2015015006.tif 000014
【００４７】
＜１０＞補正された第９ブロックのＩ，Ｊ，Ｋ指令（Ｑα９）を正規化する（数１３式）。
【００４８】
【数１３】
2015015006.tif 000015
【００４９】
＜１１＞第１０ブロックは補正しない（数１４式）。
【００５０】
【数１４】
2015015006.tif 000016
【００５１】
このように、逐次先読みを行いながら、工具方向指令補正を行う。つまり、図２で示したプログラム指令例におけるＰｉ１〜Ｐｉ１０，Ｐｊ１〜Ｐｊ１０，Ｐｋ１〜Ｐｋ１０に対して、Ｒｉ１〜Ｒｉ１０，Ｒｊ１〜Ｒｊ１０，Ｒｋ１〜Ｒｋ１０が指令されたとみなす。
【００５２】
そのこと（工具方向指令補正）により、図２で表されたＩの工具方向指令（Ｐｉ１〜Ｐｉ１０）は図５のＲｉ１〜Ｒｉ１０ように補正され、図３で表されたＩ，Ｊ，Ｋ空間での工具方向ベクトルＰｄｎの軌跡は図６のＲｄｎように補正される。ここでＲｄｎ（ｎ＝１〜１０）は補正後の工具方向ベクトルの先端（Ｒｉｎ，Ｒｊｎ，Ｒｋｎ）である。全てのブロックの読み込みを行ってから補正するのではなくても、各ブロックの工具方向ベクトル各成分の変化は、対応する直線軸移動量にほぼ比例するように補正することができる。
【００５３】
なお、工具方向指令補正手段によって補正された工具方向指令、移動経路指令および相対移動速度指令に基づいて工具先端点が指令された移動経路上を指令された速度で移動するよう補間周期ごとに各軸位置を求める補間手段、および前記補間手段により求められた各軸位置へ各軸モータを駆動する手段については公知技術であるため説明を省略する。
【００５４】
（実施形態２）：工具側面加工
実施形態１では工具方向補正トレランスをＩ，Ｊ，Ｋ方向に適用する例を示した。ここでは工具側面加工において、工具進行方向と加工面法線方向に工具方向補正トレランスを適用する方法を示す。プログラムや先読みの方法などは実施形態１と同様である。
【００５５】
ｎ番目のブロックでの補正前のＸ，Ｙ，Ｚ軸の移動指令をＰｎ（Ｐｘｎ，Ｐｙｎ，Ｐｚｎ）とし、補正前の工具方向ベクトルをＰｄｎ（Ｐｉｎ，Ｐｊｎ，Ｐｋｎ）とする。プログラム指令は実施形態１と同じとし、Ｐｄｎは単位ベクトルとする。
【００５６】
ｎ番目のブロックでの工具進行方向の単位ベクトルＵｎは、数１５式で表される。
【００５７】
【数１５】
2015015006.tif 000017
【００５８】
ここでＵｎとＰｄｎは１次独立とする。
【００５９】
工具側面加工の場合、加工面法線方向の単位ベクトルＶｎは数１６式で表される。
【００６０】
【数１６】
2015015006.tif 000018
【００６１】
また、ＵとＶに垂直な単位ベクトルＷｎは数１７式で表される。
【００６２】
【数１７】
2015015006.tif 000019
【００６３】
Ｕｎ，Ｖｎ，Ｗｎは図７に示すように、互いに直交する単位ベクトルであり、Ｕｎ，Ｖｎ，Ｗｎで決まる座標系は、工具進行方向にＵｎ軸が一致し、加工面法線方向にＶｎ軸が一致する座標系となる。
【００６４】
Ｘ，Ｙ，Ｚ座標系からＵｎ，Ｖｎ，Ｗｎ座標系への変換は、Ｘ，Ｙ，Ｚ座標系での座標値を（ｘ，ｙ，ｚ）、Ｕｎ，Ｖｎ，Ｗｎ座標系での座標値を（ｕ，ｖ，ｗ）とすると数１８式で表される。
【００６５】
【数１８】
2015015006.tif 000020
【００６６】
実施形態１の各点の工具方向補正トレランスの考慮（数６式，数９式，数１２式）の前に、各Ｑαｎに対し数１９式の座標変換を行う。
【００６７】
【数１９】
2015015006.tif 000021
【００６８】
この座標変換されたＱαｎ′を数６式、数９式、数１２式のＱαｎの代わりとし、実施形態１と同様に工具方向補正トレランスを考慮し、正規化することで、（Ｒｉｎ，Ｒｊｎ，Ｒｋｎ）の代わりに、補正された工具方向ベクトル（Ｒｉｎ′，Ｒｊｎ′，Ｒｋｎ′）を得る。
【００６９】
ここで補正時に使用される工具方向補正トレランスはＴｉ、Ｓｉの代わりにＵｎ軸正方向の工具方向補正トレランスＴｉ′とＵｎ軸負方向の工具方向補正トレランスＳｉ′を使用し、Ｔｊ，Ｓｊの代わりにＶｎ軸正方向の工具方向補正トレランスＴｊ′とＵｎ軸負方向の工具方向補正トレランスＳｊ′を使用する。Ｔｉ′，Ｓｉ′は工具進行方向トレランスであり、Ｔｊ′，Ｓｊ′は加工面法線方向トレランスである。Ｗｎ方向の工具方向補正トレランスを考慮することも可能であるが、本実施例ではＷｎ方向の工具方向補正トレランスは考慮しない。
【００７０】
（Ｒｉｎ′，Ｒｊｎ′，Ｒｋｎ′）を数２０式により逆変換することで、Ｕｎ，Ｖｎ方向の工具方向補正トレランスを考慮して補正された工具方向ベクトル（Ｒｉｎ，Ｒｊｎ，Ｒｋｎ）を得る。
【００７１】
【数２０】
2015015006.tif 000022
【００７２】
例えば工具側面加工をする場合、図８に示すように工具進行方向トレランス（Ｔｉ′，Ｓｉ′）を大きく設定し、加工面法線方向トレランス（Ｔｊ′，Ｓｊ′）を小さく設定することで、加工形状を維持しつつ工具方向ベクトルの補正が可能である。つまり、加工形状に切り込みすぎたり離れすぎたりすることなく工具方向ベクトルを補正することができる。
【００７３】
また工具方向補正トレランスは、Ｉ，Ｊ，Ｋ軸方向の正方向（Ｔｉ，Ｔｊ，Ｔｋ）と負方向（Ｓｉ，Ｓｊ，Ｓｋ）で別々に設定可能である。そのため例えば工具方向ベクトルの補正の結果機械との干渉の危険がある場合、干渉する方向の工具方向補正トレランスを小さく設定することで、機械との干渉を避けつつ工具方向ベクトルの補正が可能となる。
【００７４】
ここでは、工具進行方向と加工面法線方向に工具方向補正トレランスを適用する方法を説明したが、Ｕｎ，Ｖｎ，Ｗｎ軸が工具方向補正トレランスを考慮する方向となるように座標変換行列Ｍｎを作成することで、任意の方向に対して工具方向補正トレランスを適用することが可能である。
【００７５】
（実施形態３）
図９のプログラム指令例で説明する。先読みの方法などは実施形態１と同様である。  ここでは、工具方向が回転軸Ｂ，Ｃの移動として指令されている。機械構成が図１０（ｎ＝１〜１０）のようになっており、Ｐｃｎは０度〜３６０度、Ｐｂｎは０度〜９０度とする。
【００７６】
各ブロックのＢ，Ｃ軸位置指令（Ｐｂｎ，Ｐｃｎ）は数２１式を解くことによって工具方向ベクトル（Ｐｉｎ，Ｐｊｎ，Ｐｋｎ）に変換され、実施形態１と同様に逐次先読みを行いながら、工具方向ベクトルの補正を行い補正された工具方向ベクトル（Ｒｉｎ，Ｒｊｎ，Ｒｋｎ）を得ることができる。
【００７７】
【数２１】
2015015006.tif 000023
【００７８】
その結果、各ブロックの（Ｒｉｎ，Ｒｊｎ，Ｒｋｎ）変化量は対応する直線軸移動量にほぼ比例するように工具方向ベクトルは補正される。補正された工具方向ベクトル（Ｒｉｎ，Ｒｊｎ，Ｒｋｎ）は数２２式を解くことによって補正されたＢ，Ｃ軸位置指令（Ｒｂｎ，Ｒｃｎ）に逆変換される。
【００７９】
【数２２】
2015015006.tif 000024
【００８０】
そして図９で示したプログラム指令例におけるＰｂ１〜Ｐｂ１０，Ｐｃ１〜Ｐｃ１０に対して、Ｒｂ１〜Ｒｂ１０，Ｒｃ１〜Ｒｃ１０が指令されたとみなす。
【００８１】
なお、ここでは図１０のような工具ヘッド回転型の機械で説明したが、５軸加工機には図１１のような回転軸２軸でテーブルを回転するテーブル回転型５軸加工機や図１２のような回転軸１軸で工具ヘッドを他の回転軸１軸でテーブルを回転する混合型５軸加工機もある。それらの５軸加工機においても実施形態１、実施形態２および実施形態３で述べた方法を同様に適用できる。
【００８２】
（機能ブロック図）
図１３は、本発明の実施形態を説明する機能ブロック図である。５軸加工機を制御する数値制御装置１００において指令読み取り手段１は加工プログラムを解析し実行形式に変換する。補間手段２は実行形式に基づいて補間処理を行い各軸への移動指令を出力し、各軸移動指令に基づき各軸サーボ３Ｘ，３Ｙ，３Ｚ，３Ｂ（Ａ），３Ｃを駆動制御する。
【００８３】
本発明の実施形態の数値制御装置１００は指令読み取り手段１に属する工具方向指令補正手段４を有し、加工プログラムの工具方向変化が滑らかとなるように工具方向ベクトルを補正する。工具方向指令補正手段４は工具方向補正トレランス設定手段６によって予め設定されている工具方向補正トレランス５を参照する。
（フローチャート）  
図１４は実施形態１のＧａａを読み込んだ後の工具方向指令補正手段４の処理をフローチャートで示す。ＧａａとＧｂｂの間には少なくとも５ブロックは指令されているとする。以下、各ステップに従って説明する。
●［ステップｓａ０１］ｎを１にセットする。  
●［ステップｓａ０２］ｎが１であるか否かを判断する。ｎが１である場合ステップｓａ０３に進み、ｎが１でない場合ステップｓａ０５に進む。  
●［ステップｓａ０３］１ブロック読み込む。  
●［ステップｓａ０４］数４式による工具方向指令の補正を行い、ステップｓａ１５へ移行する。  
●［ステップｓａ０５］ｎが２であるか否か判断する。ｎが２である場合ステップｓａ０６に進み、ｎが２でない場合ステップｓａ０８へ進む。
●［ステップｓａ０６］２ブロック読み込む。  
●［ステップｓａ０７］数５式、数６式、および、数７式による工具方向指令の補正を行い、ステップｓａ１５へ移行する。
●［ステップｓａ０８］前回読み込んだブロックはＧｂｂであるか否か判断する。Ｇｂｂの場合ステップｓａ１６へ進み、Ｇｂｂでない場合ステップｓａ０９へ進む。  
●［ステップｓａ０９］ｎが３であるか否か判断する。ｎが３である場合ステップｓａ１０へ進み、ｎが３でない場合ステップｓａ１１へ進む。  
●［ステップｓａ１０］２ブロック読み込み、ステップｓａ１２へ進む。
●［ステップｓａ１１］１ブロック読み込み、ステップｓａ１２へ進む。
●［ステップｓａ１２］読み込んだブロックがＧｂｂであるか否か判断する。Ｇｂｂの場合ステップｓａ１３に進み、Ｇｂｂでない場合ステップｓａ１４へ進む。  
●［ステップｓａ１３］数１１，数１２，数１３による工具方向指令の補正を行い、ステップｓａ１５へ進む。  
●［ステップｓａ１４］数８式、数９式、および、数１０式による工具方向指令の補正を行い、ステップｓａ１５へ移行する。
●［ステップｓａ１５］ｎをｎ＋１に更新し、ステップｓａ０２に戻る。  
●［ステップｓａ１６］数１４式による工具方向指令を補正し、処理を終了する。
【００８４】
図１５は本発明に係る制御装置の要部ブロック図である。  
ＣＰＵ１１は数値制御装置１００を全体的に制御するプロセッサである。ＣＰＵ１１は、ＲＯＭ１２に格納されたシステムプログラムをバス２０を介して読み出し、該システムプログラムに従って数値制御装置全体を制御する。ＲＡＭ１３には一時的な計算データや表示データ及び表示器／ＭＤＩユニット７０を介してオペレータが入力した各種データが格納される。
【００８５】
ＳＲＡＭメモリ１４は図示しないバッテリでバックアップされ、数値制御装置１００の電源がオフされても記憶状態が保持される不揮発性メモリとして構成される。ＳＲＡＭメモリ１４中には、インターフェイス１５を介して読み込まれた加工プログラムや表示器／ＭＤＩユニット７０を介して入力された加工プログラムなどが記憶される。また、ＲＯＭ１２には、加工プログラムの作成及び編集のために必要とされる編集モードの処理や自動運転のための処理を実施するための各種システムプログラムがあらかじめ書き込まれている。
【００８６】
ＣＡＤ／ＣＡＭ装置や倣い装置などを使って作成した指令点列データおよびベクトル列データを含む加工プログラムがインターフェイス１５を介して入力され、ＳＲＡＭメモリ１４に格納されている。本発明の実施形態の工具方向指令補正モードを有する加工プログラムもＳＲＡＭメモリ１４に格納されている。
【００８７】
また、数値制御装置１００内で編集した加工プログラムは、インターフェイス１５を介して外部記憶装置に記憶させることができる。ＰＭＣ（プログラマブル・マシン・コントローラ）１６は、数値制御装置１００に内蔵されたシーケンスプログラムで工作機械の補助装置（例えば、工具交換用のロボットハンドのようなアクチュエータ）にＩ／Ｏユニット１７を介して信号を出力し制御する。また、工作機械の本体に配備された操作盤の各種スイッチ等の信号を受け、必要な信号処理をした後、ＣＰＵ１１に渡す。
【００８８】
表示器／ＭＤＩユニット７０はディスプレイやキーボード等を備えた手動データ入力装置であり、インターフェイス１５は表示器／ＭＤＩユニット７０のキーボードからの指令、データを受けてＣＰＵ１１に渡す。インターフェイス１９は手動パルス発生器などを備えた操作盤７１に接続されている。
【００８９】
各軸の軸制御回路３０〜３４はＣＰＵ１１からの各軸の移動指令量を受けて、各軸の指令をサーボアンプ４０〜４４に出力する。サーボアンプ４０〜４４はこの指令を受けて、各軸のサーボモータ５０〜５４を駆動する。各軸のサーボモータ５０〜５４は位置・速度制御検出器を内蔵し、この位置・速度検出器からの位置・速度フィードバック信号を軸制御回路３０〜３４にフィードバックし、位置・速度のフィードバック制御を行なう。
【００９０】
サーボモータ５０〜５４は、５軸加工機のＸ、Ｙ、Ｚ、Ｂ（Ａ）、Ｃ軸を駆動するものである。また、スピンドル制御回路６０は主軸回転指令を受け、スピンドルアンプ６１にスピンドル速度信号を出力する。スピンドルアンプ６１はスピンドル速度信号を受けて、主軸モータ６２を指令された回転速度で回転させる。ポジションコーダ６３は、主軸モータ６２の回転に同期して帰還パルスをスピンドル制御回路６０にフィードバックし、速度制御を行う。
【符号の説明】
【００９１】
１００  数値制御装置
１  指令読み取り手段
２  補間手段
３Ｘ  Ｘ軸サーボ
３Ｙ  Ｙ軸サーボ
３Ｚ  Ｚ軸サーボ
３Ｂ（Ａ）  Ｂ（Ａ）軸サーボ
３Ｃ  Ｃ軸サーボ
４  工具方向指令補正手段
５  工具方向補正トレランス
６  工具方向補正トレランス設定手段
【図２】
2015015006.tif 000025
【図３】
2015015006.tif 000026
【図４】
2015015006.tif 000027
【図５】
2015015006.tif 000028
【図６】
2015015006.tif 000029
【図９】
2015015006.tif 000030
【図１３】
2015015006.tif 000031
【図１４】
2015015006.tif 000032
【図１５】
2015015006.tif 000033
【図１】
2015015006.tif 000034
【図７】
2015015006.tif 000035
【図８】
2015015006.tif 000036
【図１０】
2015015006.tif 000037
【図１１】
2015015006.tif 000038
【図１２】
2015015006.tif 000039