(57)【要約】【課題】最適な許容補正量を見つけることができる５軸加工機を制御する数値制御装置を提供すること。【解決手段】数値制御装置が備える入力装置付き表示装置７０の概略図である。キーボード７３は数字キー、アルファベットキーなどを備えている。累積相対度数（％）を入力するためにプロンプト７４が表示画面７１に表示される。ファンクションキー７２の「Ｆ５」に、工具方向指令の何パーセントを十分に補正したいかを作業者が設定する命令が割り当てられている。キーボード７３の数字キーで入力した値はプロンプト７４に表示され、Ｆ５を押して数値を設定することができる。また、ファンクションキー７２の「Ｆ６」に度数分布のデータを外部装置（図示省略）に出力する命令が割り当てられ、Ｆ６を押して度数分布のデータを外部装置に送信することができる。【選択図】図１５
2010167516.tif 000002
【特許請求の範囲】
【請求項１】
テーブルに取付けられた加工物に対して加工を行う直線軸３軸と回転軸２軸によって構成される５軸加工機を制御し、該直線軸の移動経路指令、該加工物と工具との相対移動速度指令および該テーブルに対する工具方向として工具方向指令を読み取る指令読み取り手段と、
該工具方向指令から最適な工具方向を計算し、該工具方向指令と該計算して求めた最適な工具方向の差が予め設定される許容範囲内となるように準最適な工具方向を計算し、該準最適な工具方向を該工具方向指令の工具方向とすることにより該工具方向指令を補正する工具方向指令補正手段と、
該工具方向指令補正手段によって補正された工具方向指令、前記移動経路指令および前記相対移動速度指令に基づいて工具先端点が指令され移動経路上を指令された相対移動速度で移動するよう補間周期ごとに各軸位置を求める補間手段と、該補間手段により求められた各軸位置へ移動するように各軸モータを駆動する手段を有する５軸加工機の数値制御装置において、
前記工具方向指令と前記工具方向指令補正手段によって計算される最適な工具方向との差である理想補正量を算出する理想補正量算出手段と、
前記理想補正量算出手段により算出された前記理想補正量を記憶する理想補正量記憶手段と、
前記理想補正量記憶手段に記憶された前記理想補正量を所定補正量毎に前記工具方向指令の度数分布として出力する出力手段と、
を有することを特徴とする５軸加工機の数値制御装置。
【請求項２】
前記出力手段は、該理想補正量記憶手段に記憶された理想補正量を所定補正量毎に前記工具方向指令の度数分布として表示する前記数値制御装置に設けられた表示装置あるいは前記数値制御装置に接続された外部装置の表示装置であることを特徴とする請求項１に記載の５軸加工機の数値制御装置。
【請求項３】
前記工具方向指令の数を累積する累積手段と、
前記工具方向指令の数に対する割合を指定する割合指定手段と、
前記工具方向指令の理想補正量の小さい値から順に前記工具方向指令の数を累積し累積度数分布を求める累積度数分布取得手段と、
該累積した前記工具方向指令の数が前記割合指定手段により指定された割合に対応する工具方向指令の数と一致したときの工具方向指令の理想補正量を取得する取得手段と、
該取得手段により取得した理想補正量を前記予め設定される許容範囲として設定する設定手段と、
を有することを特徴とする請求項１または２のいずれか１つに記載の５軸加工機の数値制御装置。
【請求項４】
前記数値制御装置は、前記工具方向指令が前記準最適な工具方向に補正された場合の実際の補正量を求める実際の補正量算出手段と、
前記実際の補正量算出手段により算出された前記実際の補正量を記憶する実際の補正量記憶手段と、
前記実際の補正量記憶手段に記憶された前記実際の補正量を所定補正量毎に前記工具方向指令の度数分布として前記出力手段に出力することを特徴とする請求項１〜３のいずれか１つに記載の５軸加工機の数値制御装置。
【請求項５】
前記理想補正量と前記実際の補正量のそれぞれの前記工具方向指令の度数分布に基づく統計量を演算する統計量演算手段と、
前記統計量演算手段により演算された統計量を前記出力手段に出力することを特徴とする請求項４に記載の５軸加工機の数値制御装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は５軸加工機の数値制御装置に関する。
【背景技術】
【０００２】
テーブルに取付けられた加工物に対して直線軸３軸と回転軸２軸とによって加工する５軸加工機が知られている。５軸加工機は、テーブル回転用に１軸と工具ヘッド回転用に１軸、工具ヘッド回転用に２軸、または、テーブル回転用に２軸持った工作機械の数値制御装置であり、これらの回転軸が回転しながら工具先端点が所期の経路を所期の速度で移動しワークを加工することができる。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２００３−１９５９１７号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
５軸加工機を制御する数値制御装置において、プログラム指令に対して工具方向の変化量と直線移動軸の変化量とが比例するように工具方向指令を補正することを特徴とする数値制御装置（以下、「数値制御装置Ａ」という）を、本出願人は特願２００７−３２２５４６号として出願した。
数値制御装置Ａは、加工プログラムの各ブロックにおいて最適な工具方向を計算する。ここで、この最適な工具方向を補正後の工具方向として用いると、補正する前の元の工具方向との差が大きい場合、元の工具方向において工具が機械やワークと干渉しない場合でも、干渉が発生する恐れがある。
【０００５】
そのため、数値制御装置Ａを、最適な工具方向を基礎として、元の工具方向から指定された許容補正量の範囲内に収まる準最適な工具方向を計算し、該準最適な工具方向を補正後の工具方向として用いるようにする必要がある。このとき、許容補正量が小さい場合には、補正後の工具方向は元の工具方向と変わらなくなってしまうため、補正による加工時間短縮の効果や加工面品質の向上効果が低くなってしまう。
【０００６】
許容補正量が大きいほど補正後の工具方向は最適な工具方向へ近づくため、加工時間短縮の効果や加工面品質の向上効果が高まる。したがって、許容補正量の設定値としては大きい方が望ましいが、同時に工具の機械やワークとの干渉を回避する必要があるため、補正後の工具方向が最適な工具方向に十分近づけられる必要かつ十分な大きさに留めることが望ましい。
【０００７】
しかし数値制御装置Ａは、前記準最適な工具方向を求める際に許容補正量にどの程度の値を設定すれば補正後の工具方向が最適な工具方向に十分近づくのかが把握できなかったため、作業者が経験や勘に頼って値を設定する、あるいは許容補正量を変化させながら何度もワークを加工し最適な許容補正量を見出すしかなかった。  
そこで本発明の目的は、上記課題を解決し最適な許容補正量を見つけることができる５軸加工機を制御する数値制御装置を提供することである。
【課題を解決するための手段】
【０００８】
本願の請求項１に係る発明は、テーブルに取付けられた加工物に対して加工を行う直線軸３軸と回転軸２軸によって構成される５軸加工機を制御し、該直線軸の移動経路指令、該加工物と工具との相対移動速度指令および該テーブルに対する工具方向として工具方向指令を読み取る指令読み取り手段と、該工具方向指令から最適な工具方向を計算し、該工具方向指令と該計算して求めた最適な工具方向の差が予め設定される許容範囲内となるように準最適な工具方向を計算し、該準最適な工具方向を該工具方向指令の工具方向とすることにより該工具方向指令を補正する工具方向指令補正手段と、該工具方向指令補正手段によって補正された工具方向指令、前記移動経路指令および前記相対移動速度指令に基づいて工具先端点が指令され移動経路上を指令された相対移動速度で移動するよう補間周期ごとに各軸位置を求める補間手段と、該補間手段により求められた各軸位置へ移動するように各軸モータを駆動する手段を有する５軸加工機の数値制御装置において、前記工具方向指令と前記工具方向指令補正手段によって計算される最適な工具方向との差である理想補正量を算出する理想補正量算出手段と、前記理想補正量算出手段により算出された前記理想補正量を記憶する理想補正量記憶手段と、前記理想補正量記憶手段に記憶された前記理想補正量を所定補正量毎に前記工具方向指令の度数分布として出力する出力手段と、を有することを特徴とする５軸加工機の数値制御装置である。
【０００９】
請求項２に係る発明は、前記出力手段は、該理想補正量記憶手段に記憶された理想補正量を所定補正量毎に前記工具方向指令の度数分布として表示する前記数値制御装置に設けられた表示装置あるいは前記数値制御装置に接続された外部装置の表示装置であることを特徴とする請求項１に記載の５軸加工機の数値制御装置である。
請求項３に係る発明は、前記工具方向指令の数を累積する累積手段と、前記工具方向指令の数に対する割合を指定する割合指定手段と、前記工具方向指令の理想補正量の小さい値から順に前記工具方向指令の数を累積し累積度数分布を求める累積度数分布取得手段と、該累積した前記工具方向指令の数が前記割合指定手段により指定された割合に対応する工具方向指令の数と一致したときの工具方向指令の理想補正量を取得する取得手段と、該取得手段により取得した理想補正量を前記予め設定される許容範囲として設定する設定手段と、を有することを特徴とする請求項１または２のいずれか１つに記載の５軸加工機の数値制御装置である。
【００１０】
請求項４に係る発明は、前記数値制御装置は、前記工具方向指令が前記準最適な工具方向に補正された場合の実際の補正量を求める実際の補正量算出手段と、
前記実際の補正量算出手段により算出された前記実際の補正量を記憶する実際の補正量記憶手段と、前記実際の補正量記憶手段に記憶された前記実際の補正量を所定補正量毎に前記工具方向指令の度数分布として前記出力手段に出力することを特徴とする請求項１〜３のいずれか１つに記載の５軸加工機の数値制御装置である。
請求項５に係る発明は、前記理想補正量と前記実際の補正量のそれぞれの前記工具方向指令の度数分布に基づく統計量を演算する統計量演算手段と、
前記統計量演算手段により演算された統計量を前記出力手段に出力することを特徴とする請求項４に記載の５軸加工機の数値制御装置である。
【発明の効果】
【００１１】
本発明により、最適な許容補正量を見つけることができる５軸加工機を制御する数値制御装置を提供できる。
【図面の簡単な説明】
【００１２】
【図１】加工曲面を示す図である。
【図２】加工曲面を三角パッチと呼ばれる区画で分割することを示す図である。
【図３】三角パッチ上で工具軌跡を計算することを示す図である。
【図４】三角パッチと工具進路と工具先端点位置との関係を示す図である。
【図５】三角パッチの工具進路に沿った断面図を示す図である。
【図６】Ｘ、Ｙ、Ｚ軸への位置指令Ｐ１〜Ｐ１０をＸ、Ｙ、Ｚ軸で、Ｂ軸への位置指令Ｐｂ１〜Ｐb１０およびＣ軸への位置指令Ｐc１〜Ｐc１０をそれぞれ１次元座標で表し、それらの対比を表す図である。
【図７】各ブロックにおける各回転軸移動量と直線軸移動量の比が一定でない場合の各軸の速度波形の一例を示す図である。
【図８】図６に示されるＢ軸およびＣ軸の位置指令に回転軸位置指令の補正を行なった時の図である。
【図９】回転軸位置指令の補正を行なった場合の各軸の速度波形の一例を示す図である。
【図１０】工具ヘッド回転型の５軸加工機の説明図である。
【図１１】５軸加工機を制御する数値制御装置の概略機能ブロック図である。
【図１２】工具方向指令補正を実行するアルゴリズムを示すフローチャートの例である。
【図１３】本発明の実施形態を実行する数値制御装置の要部ブロック図である。
【図１４】本発明における理想補正量の度数分布表を説明する図である。
【図１５】ファンクションキーを押して理想補正量の度数分布のデータを外部装置に出力すること、指令全体の何％を十分に補正したいかをユーザが入力し、それに応じて数値制御装置が最適な許容補正量を自動で設定することを説明する図である。
【図１６】０．２度が許容補正量として自動設定されることを説明する図である。
【図１７】累積度数分布を示すグラフである。
【図１８】累積相対度数分布を示すグラフである。
【図１９】毎回ブロックを補正する度に補正量の度数分布を更新し度数分布の統計量を計算し直す処理のアルゴリズムを示すフローチャートである（その１）。
【図２０】毎回ブロックを補正する度に補正量の度数分布を更新し度数分布の統計量を計算し直す処理のアルゴリズムを示すフローチャートである（その２）。
【図２１】指定したｍブロックを読み込むまで補正量度数分布を更新し指定したｍブロックを読み込んだ時点で度数分布の統計量を計算し、それ以降は度数分布の更新をしない処理のアルゴリズムを示すフローチャートである（その１）。
【図２２】指定したｍブロックを読み込むまで補正量度数分布を更新し指定したｍブロックを読み込んだ時点で度数分布の統計量を計算し、それ以降は度数分布の更新をしない処理のアルゴリズムを示すフローチャートである（その２）。
【図２３】プログラムの終了時に度数分布の統計量を計算する処理のアルゴリズムを示すフローチャートである（その１）。
【図２４】プログラムの終了時に度数分布の統計量を計算する処理のアルゴリズムを示すフローチャートである（その２）。
【発明を実施するための形態】
【００１３】
本発明における最適な許容補正量を見つける方法について説明する。まず、先の出願である特願２００７−３２２５４６号（以下、「先願」という）の願書に添付した明細書に開示される数値制御装置Ａについて説明する。
先願発明は、工具方向指令そのものを補正することによって、加工形状を滑らかにし加工時間を短くすることが可能な５軸加工機を制御する数値制御装置を提供することを目的としている。
【００１４】
先願の請求項１に係る発明は、テーブルに取付けられた加工物に対して加工を行う直線軸３軸と回転軸２軸とによって構成される５軸加工機を制御する数値制御装置において、該直線軸の移動経路指令、該加工物と工具との相対移動速度指令および該テーブルに対する工具方向として工具方向指令を読み取る指令読み取り手段と、該工具方向指令を補正する工具方向指令補正手段と、該工具方向指令補正手段によって補正された前記工具方向指令、前記移動経路指令および前記相対移動速度指令に基づいて工具先端点が指令された移動経路上を指令された相対移動速度で移動するよう補間周期ごとに各軸位置を求める補間手段と、該補間手段により求められた各軸位置へ移動するように各軸モータを駆動する手段を有する数値制御装置である。
【００１５】
先願の請求項２に係る発明は、前記工具方向指令補正手段は前記工具方向の変化量と前記移動経路指令における前記直線軸の変化量とが比例するように該工具方向指令を補正することを特徴とする請求項１記載の数値制御装置である。
先願の請求項３に係る発明は、前記工具方向指令は回転軸２軸の位置によって指令され、前記工具方向指令補正手段は指令された回転軸２軸の位置を補正することを特徴とする請求項１または２のいずれか一つに記載の数値制御装置である。
先願の請求項４に係る発明は、前記工具方向指令は工具方向ベクトルとして指令され、前記工具方向指令補正手段は指令された工具方向ベクトルを補正することを特徴とする請求項１または２のいずれか一つに記載の数値制御装置である。
先願の請求項５に係る発明は、前記工具方向指令補正手段は指令された工具方向ベクトルを回転軸２軸の位置に変換し、変換した回転軸２軸の位置を補正し、補正した回転軸２軸の位置を工具方向ベクトルに逆変換することを特徴とする請求項４に記載の数値制御装置である。
【００１６】
先願の請求項６に係る発明は、前記指令読み取り手段は工具方向指令補正モードが指令されると、工具方向指令補正モード解除が指令されるまで予め設定された数のブロックを補正対象プログラム指令として先読みし、該工具方向指令補正手段は該補正対象プログラム指令における工具方向指令を補正することを特徴とする請求項１〜５のいずれか一つに記載の数値制御装置である。
先願の請求項７に係る発明は、前記工具方向指令補正モードはＧコードで指令され前記工具方向指令補正モード解除は該Ｇコードとは異なるＧコードで指令されることを特徴とする請求項６記載の数値制御装置である。
先願発明の効果は、５軸加工機を用いて加工物を加工する際に、加工物の加工形状を滑らかにしつつ加工時間の短縮を図ることが可能であることである。
【００１７】
先願発明は、ブロック終点で指令される工具方向指令そのものを補正することにより、加工物の加工形状を滑らかにしつつ加工時間を短縮するものである。一般に、５軸加工機を用いた加工物を加工することにおいて、加工物を加工する工具先端点の移動は重要であるが、その工具方向は多少の誤差を持っていても加工には大きな影響を与えない。一方、加工形状が滑らかではないことや加工時間が長くかかることは５軸加工機において解決すべき問題である。そこで先願発明では、工具方向の誤差を許容することにより、加工物の加工形状を滑らかにし加工時間を短縮できるように工具方向指令を補正する。以下、先願発明の工具方向指令を補正する第１の実施形態および第２の実施形態について説明する。
【００１８】
先願発明の第１の実施形態について、表１に示されるプログラム指令例１を用いて説明する。このプログラム指令は、前記発明が解決しようとする課題の欄において説明したＣＡＭにより生成される。プログラム指令を生成する技術そのものは公知の技術である。
【００１９】
工具方向指令補正モードになると工具方向指令補正モードが解除されるまで、最大先読みブロック数だけのブロックを補正対象プログラム指令として先読みし、先読みされた補正対象プログラム指令における各ブロックに対して、回転軸移動量と直線軸移動量の比が一定となるように工具方向指令を補正する。なお、最大先読みブロック数は別途パラメータとして設定されている。
【００２０】
ここでは、Ｇａａが工具方向指令補正モードを指令するＧコードであり、Ｇｂｂが工具方向指令補正モード解除を指令するＧコードである。Ｘ、Ｙ、Ｚで指令される工具先端点の移動経路における加工物と工具との相対移動速度ｆは、Ｇａａが指令されるまでにモーダル指令Ｆｆとしてすでに指令されている。
【００２１】
各ブロックのＸ、Ｙ、Ｚ軸の位置指令とＢ、Ｃの軸位置指令が図６に示されるようなものであったとする。図６では、Ｘ、Ｙ、Ｚ軸への位置指令Ｐ１（Ｐｘ１、Ｐｙ１、Ｐｚ１）〜Ｐ１０（Ｐｘ１０、Ｐｙ１０、Ｐｚ１０）をＸ、Ｙ、Ｚ座標で、Ｂ軸への位置指令Ｐｂ１〜Ｐｂ１０およびＣ軸への位置指令Ｐｃ１〜Ｐｃ１０をそれぞれ１次元座標で表し、それらの対比を表している。Ｐ０（Ｐｘ０、Ｐｙ０、Ｐｚ０）、Ｐｂ０、Ｐｃ０はＧａａ指令時の各軸の位置を表している。
【００２２】
従って、Ｘ、Ｙ、Ｚ軸がＰ０（Ｐｘ０、Ｐｙ１、Ｐｚ１）〜Ｐ１０（Ｐｘ１０、Ｐｙ１０、Ｐｚ１０）間を速度ｆで移動する間に、Ｂ軸はＰｂ０〜Ｐｂ１０を、Ｃ軸はＰｃ０〜Ｐｃ１０間を移動する。各ブロックでは、Ｘ、Ｙ、Ｚ軸がＰ０（Ｐｘ０、Ｐｙ０、Ｐｚ０）〜Ｐ１（Ｐｘ１、Ｐｙ１、Ｐｚ１）間を速度ｆで移動する間に、Ｂ軸はＰｂ０〜Ｐｂ１を、Ｃ軸はＰｃ０〜Ｐｃ１間を、Ｘ、Ｙ、Ｚ軸がＰ１（Ｐｘ１、Ｐｙ１、Ｐｚ１）〜Ｐ２（Ｐｘ２、Ｐｙ２、Ｐｚ２）間を速度ｆで移動する間に、Ｂ軸はＰｂ１〜Ｐｂ２、Ｃ軸はＰｃ１〜Ｐｃ２間を移動するというように、各ブロックごとにＸ、Ｙ、Ｚ軸とＢ、Ｃ軸は同期して移動する。
【００２３】
表１に示されるＧａａからＧｂｂの間は１０ブロックの指令の例としているが、ブロック数に制限はない。各軸位置指令はアブソリュート指令としている。また、回転軸２軸をＢ、Ｃ軸で表しているが他の軸の名称、例えば、Ａ、Ｂ軸やＡ、Ｃ軸であっても同様である。
【００２４】
【表１】
2010167516.tif 000003
【００２５】
ここで、各ブロックにおける各回転軸移動量と直線軸移動量の比は一定ではない。換言すると、数１式と数２式とで各回転軸移動量と直線軸移動量との比をｎが０〜９で計算すると、各ブロックにおけるその各回転軸移動量と直線軸移動の比は一定ではない。
【００２６】
図７はこのときの各軸の速度波形の一例を示している。図７の横軸は時間、縦軸は各軸の速度を表している。図中の３５０００はミリセカンドを表す。各軸の速度の単位（例えば、ｍｍ／ｍｉｎ、度／ｍｉｎ）は軸ごとに相違するが、図７では５軸分の速度を重ね合わせて示している。図７では各軸の速度が振動していることが示されている。この振動の１波ごとが各ブロック指令に対応している。なお、図７は指令ブロック数が１０ではなく５００程度の場合の各軸の速度波形の例である。
【００２７】
【数１】
2010167516.tif 000004
【００２８】
【数２】
2010167516.tif 000005
【００２９】
そこで、数１式や数２式で算出される各ブロックにおける各回転軸移動量と直線軸移動量との比が一定となるように、次のようにＰｂ１〜Ｐｂ１０、および、Ｐｃ１〜Ｐｃ１０を補正する。数値制御装置はＧａａを読み込むと、先読みと補正処理を開始する。先読みブロック数は最大５とする。  
ここで、下記の数式について説明する。数３式および数４式は開始から数５式に至る過渡的な式であり、数６式および数７式は数５式から終了に至る過渡的な式であるので、数５式が重要である。  
そこで、数５式について詳細に説明する。数５式では、右辺分母で先読みブロック（第ｎ−２ブロックから第ｎ＋２ブロック）における直線軸移動量を計算する。また、右辺分子では補正対象ブロック（第ｎブロック）の直線軸移動量を計算する。したがって、右辺分数の項は、先読みブロックにおける直線軸移動量と補正対象ブロックの直線軸移動量との比である。  
そして、その比に先読みブロック（第ｎ−２ブロックから第ｎ＋ｎブロック）の回転軸（Ｂ軸またはＣ軸）移動量（Ｐαn+2―Ｐαn―3’）を掛けることによって、先読みブロックの範囲で補正対象ブロックの回転軸移動量と直線軸移動量との比が一定になるように補正される。  
補正された回転軸移動量を補正対象ブロックの直前のブロック（第ｎ−１ブロック）の、つまり、既に補正された回転軸位置指令（Ｐαn―1’）に加算することによって、補正対象ブロックにおける回転軸位置指令を得る。これが補正された回転軸移動量による補正された回転軸位置指令である。
（Ａ）第１ブロックを読み込み、第１ブロックは数３式に示されるように補正しない。
【００３０】
【数３】
2010167516.tif 000006
【００３１】
（Ｂ）第２、第３ブロックを読み込み、数４式に示されるように第２ブロックのＢ軸、Ｃ軸の位置指令を補正する。
【００３２】
【数４】
2010167516.tif 000007
【００３３】
（Ｃ）第ｎ＋１、第ｎ＋２ブロックを読み込み、数５式に示されるように第ｎブロックのＢ軸、Ｃ軸の位置指令を補正する（ｎ＝３〜８）。ただし、ｎ＝４〜８では第ｎ＋１ブロックは既に読み込まれている。
【００３４】
【数５】
2010167516.tif 000008
【００３５】
（Ｄ）Ｇｂｂを読み込み、新規のブロック読み込みは停止する。数６式に示されるように第９ブロックのＢ軸、Ｃ軸の位置指令を補正する。
【００３６】
【数６】
2010167516.tif 000009
【００３７】
（Ｅ）第１０ブロックは補正しない。
【００３８】
【数７】
2010167516.tif 000010
【００３９】
上記（Ａ）〜（Ｅ）に記載したように、ブロックを逐次先読みしながら、回転軸位置指令の補正を行なう。図６で表されたＢ軸、Ｃ軸の位置指令は、数３式〜数７式を用いた回転軸位置指令の補正により図８に表されるようになる。なお、全てのブロックの読み込みを行ってから補正するのではなく、各ブロックのＢ軸、Ｃ軸移動量は対応する直線軸移動量にほぼ比例するように補正することができる。
【００４０】
上記（Ａ）〜（Ｅ）に記載した回転軸位置指令の補正を行なうと、図７で示された各ブロックにおける各回転軸移動量と直線軸移動量の比が一定でない場合の各軸の速度波形は、図９に示されるようになる。この図９に示されるように、回転軸位置指令の補正により各ブロックにおける各軸の速度の振動が抑制されている。速度の振動が抑制されることにより、加工物の加工形状は滑らかになる。また、減速する部分が少なくなることにより、加工時間も短縮される。図９に示される例では加工時間は、回転軸位置指令の補正を行なわない場合に比べて７０％程度に短縮される。また、加工作業のための消費電力も減らすことができる。
【００４１】
なお、工具方向指令補正手段によって補正された工具方向指令、移動経路指令、および、相対移動速度指令に基づいて工具先端点が指令された移動経路上を指令された速度で移動するように補間周期ごとに各軸位置を求める補間手段、および、補間手段により求められた各軸位置へ各軸モータを駆動する手段については図１３に示される数値制御装置のように公知技術を使用することができる。図１３の数値制御装置については後述する。
【００４２】
先願発明の第２の実施形態について表２に示されるプログラム指令例２を用いて説明する。先読み方法などは第１の実施形態と同様である。  
【００４３】
【表２】
2010167516.tif 000011
【００４４】
この第２の実施形態では、工具方向が正規化されたＩ、Ｊ、Ｋによる工具方向ベクトルとして指令されている。このように、工具方向を工具方向ベクトルとして指令する技術は、背景技術で説明した特許文献１などにおいて公知技術である。工具方向ベクトルは工具の傾斜を制御する軸の位置情報から計算される。例えば、工具の傾斜がＢ軸及びＣ軸によって制御されているときには、Ｂ軸及びＣ軸の現在位置から工具方向ベクトルを計算する。
【００４５】
図１０に示されるように機械構成が回転ヘッド型５軸加工機であるとすると、Ｉ、Ｊ、Ｋ指令からＢ、Ｃ軸位置は下記数８式と数９式を用いて計算することができる。ここでは、Ｐｃｎは０度〜３６０度、Ｐｂｎは０度〜９０度としている。なお、ｎ＝１〜１０とする。
【００４６】
【数８】
2010167516.tif 000012
【００４７】
このことにより、各ブロックのＩ、Ｊ、Ｋによる工具方向ベクトル指令（Ｐｉｎ、Ｐｊｎ、Ｐｋｎ）はＢ、Ｃ軸位置（Ｐｂｎ、Ｐｃｎ）に変換される。そして、実施形態１と同様に逐次先読みを行いながら、回転軸位置の補正を行い補正されたＢ、Ｃ軸位置（Ｐｂｎ’、Ｐｃｎ’）を得ることができる。
【００４８】
その結果、各ブロックのＢ、Ｃ軸移動量は対応する直線軸移動量にほぼ比例するように補正される。補正されたＢ、Ｃ軸位置（Ｐｂｎ’、Ｐｃｎ’）は数９式の連立方程式を解くことにより再度Ｉ、Ｊ、Ｋによる工具方向ベクトル指令（Ｐｉｎ’、Ｐｊｎ’、Ｐｋｎ’）に逆変換することができる。そのことにより、元のＸ、Ｙ、Ｚ、Ｉ、Ｊ、Ｋによるプログラム指令として実行することが可能である。
なお、ここでは、図１０に示されるように工具回転ヘッド型の５軸加工機で説明したが、５軸加工機には回転軸２軸でテーブルを回転するテーブル回転型５軸加工機や回転軸１軸で工具ヘッドを他の回転軸１軸でテーブルを回転する混合型５軸加工機もある。それらの５軸加工機においても指令Ｉ、Ｊ、Ｋによる工具方向を回転軸２軸の位置に変換し、変換した回転軸２軸の位置を補正し、補正した回転軸２軸の位置を再度Ｉ、Ｊ、Ｋ指令に逆変換することが可能である。変換および逆変換の方法は、数８式、数９式の関数形が相違するだけであり公知技術であるので説明は省略する。
【００４９】
図１１は先願発明の５軸加工機を制御する数値制御装置の概略機能ブロック図である。指令読み取り手段１により各ブロックのプログラム指令を読み取る。読み取られたプログラム指令は工具方向指令補正手段２により各ブロックにおける回転軸移動量と直線軸移動量の比が一定となるように工具方向指令を補正する。補間手段３は、工具方向指令補正手段２によって補正された工具方向指令、移動経路指令および相対移動速度指令に基づいて工具先端点が指令された移動経路上を指令された速度で移動するように補間周期ごとに各軸位置を求める補間演算を実行する。各軸サーボ４Ｘ、４Ｙ、４Ｚ、４Ｂ（Ａ）、４Ｃ軸サーボは、補間手段３で演算された各軸位置へ各軸モータ（各軸モータは記載を省略）を駆動する。
【００５０】
【数９】
2010167516.tif 000013
【００５１】
図１２は先願発明の第１の実施形態に示される工具方向指令補正を実行するアルゴリズムを示すフローチャートの例である。このフローチャートでは表１のＧａａを読み込んだ後の処理を示している。なお、ＧａａとＧｂｂの間には少なくとも５ブロックは指令されているとする。以下、各ステップに従って説明する。  
［ステップＳ１］ｎを１にセットする。［ステップＳ２］ｎが１であるか否かを判断する。ｎが１である場合ステップＳ９に進み、ｎが１でない場合ステップＳ３に進む。［ステップＳ３］ｎが２であるか否か判断する。ｎが２である場合ステップＳ１１に進み、ｎが２でない場合ステップＳ４へ進む。［ステップＳ４］前回読み込んだブロックはＧｂｂであるか否か判断する。Ｇｂｂの場合ステップＳ１６へ進み、Ｇｂｂでない場合ステップＳ５へ進む。
【００５２】
［ステップＳ５］ｎが３であるか否か判断する。ｎが３である場合ステップＳ１３へ進み、ｎが３でない場合ステップＳ６へ進む。［ステップＳ６］１ブロック読み込む。［ステップＳ７］読み込んだブロックがＧｂｂであるか否か判断する。Ｇｂｂの場合ステップＳ１４に進み、Ｇｂｂでない場合ステップＳ８へ進む。［ステップＳ８］数５式による工具方向指令の補正を行い、ステップＳ１５へ移行する。［ステップＳ９］ステップＳ２でｎが１である場合、１ブロック読み込み、ステップＳ１０へ進む。
【００５３】
［ステップＳ１０］数３式による工具方向指令の補正を行い、ステップＳ１５へ移行する。［ステップＳ１１］２ブロック読み込み、ステップＳ１２へ進む。［ステップＳ１２］数４式により工具方向指令の補正を行い、ステップＳ１５へ移行する。［ステップＳ１３］２ブロック読み込み、ステップＳ７へ移行する。［ステップＳ１４］数６式による工具方向指令の補正を行い、ステップＳ１５へ進む。［ステップＳ１５］ｎに１を加算し、ステップＳ２へ戻る。［ステップＳ１６］数７式による工具方向指令の補正を行い、終了する。
【００５４】
図１３は先願発明の実施形態を実行する数値制御装置（ＣＮＣ）１００の要部ブロック図である。ＣＰＵ１１は数値制御装置１００を全体的に制御するプロセッサである。ＣＰＵ１１は、ＲＯＭ１２に格納されたシステムプログラムをバス２０を介して読み出し、該システムプログラムに従って数値制御装置全体を制御する。ＲＡＭ１３には一時的な計算データや表示データ及び表示器／ＭＤＩユニット７０を介してオペレータが入力した各種データが格納される。
【００５５】
ＣＭＯＳメモリ１４は図示しないバッテリでバックアップされ、数値制御装置１００の電源がオフされても記憶状態が保持される不揮発性メモリとして構成される。ＣＭＯＳメモリ１４中には、インターフェイス１５を介して読み込まれた加工プログラムや表示器／ＭＤＩユニット７０を介して入力された加工プログラムなどが記憶される。また、ＲＯＭ１２には、加工プログラムの作成及び編集のために必要とされる編集モードの処理や自動運転のための処理を実施するための各種システムプログラムがあらかじめ書き込まれている。
【００５６】
ＣＡＤ／ＣＡＭ装置や倣い装置などを使って作成した指令点列データおよびベクトル列データを含む加工プログラムがインターフェイス１５を介して入力され、ＣＭＯＳメモリ１４に格納されている。先願発明の実施形態の工具方向指令補正モードを有する加工プログラムもＣＭＯＳメモリ１４に格納されている。
【００５７】
また、数値制御装置１００内で編集した加工プログラムは、インターフェイス１５を介して外部記憶装置に記憶させることができる。ＰＭＣ（プログラマブル・マシン・コントローラ）１６は、数値制御装置１００に内蔵されたシーケンスプログラムで工作機械の補助装置（例えば、工具交換用のロボットハンドのようなアクチュエータ）にＩ／Ｏユニット１７を介して信号を出力し制御する。また、工作機械の本体に配備された操作盤７５の各種スイッチ等の信号を受け、必要な信号処理をした後、ＣＰＵ１１に渡す。
【００５８】
表示器／ＭＤＩユニット７０はディスプレイやキーボード等を備えた手動データ入力装置であり、インターフェイス１５は表示器／ＭＤＩユニット７０のキーボードからの指令、データを受けてＣＰＵ１１に渡す。インターフェイス１９は手動パルス発生器などを備えた操作盤７５に接続されている。
【００５９】
各軸の軸制御回路３０〜３４はＣＰＵ１１からの各軸の移動指令量を受けて、各軸の指令をサーボアンプ４０〜４４に出力する。サーボアンプ４０〜４４はこの指令を受けて、各軸のサーボモータ５０〜５４を駆動する。各軸のサーボモータ５０〜５４は位置・速度制御検出器を内蔵し、この位置・速度検出器からの位置・速度フィードバック信号を軸制御回路３０〜３４にフィードバックし、位置・速度のフィードバック制御を行なう。
【００６０】
サーボモータ５０〜５４は、５軸加工機のＸ、Ｙ、Ｚ、Ｂ（Ａ）、Ｃ軸を駆動するものである。また、スピンドル制御回路６０は主軸回転指令を受け、スピンドルアンプ６１にスピンドル速度信号を出力する。スピンドルアンプ６１はスピンドル速度信号を受けて、主軸モータ６２を指令された回転速度で回転させる。ポジションコーダ６３は、主軸モータ６２の回転に同期して帰還パルスをスピンドル制御回路６０にフィードバックし、速度制御を行う。  
以上のような数値制御装置１００によって、図１０に示される５軸加工機を駆動制御することができる。  
【００６１】
次に、本発明の数値制御装置の実施形態を図面と共に説明する。  
先願発明の数値制御装置Ａに、加工プログラムの各ブロックにおいて最適な工具方向と元の工具方向との差（以下、「理想補正量」という）を計算し、理想補正量の度数分布を作成して出力する機能を付加する。また、必要に応じて理想補正量の度数分布の統計量（最小値、最大値、平均値、分散など）も計算し出力する機能、実際の補正量の度数分布を作成して出力する機能を付加したり、実際の補正量の度数分布の統計量（最小値、最大値、平均値、分散など）も計算し出力する機能を付加してもよい。なお、本発明における数値制御装置Ａを以降、数値制御装置Ｂという。
【００６２】
作業者はこれらの情報や機械構成の情報などを元に適切な許容補正量を設定することができる。ここで機械構成の情報について説明する。許容補正量は大きい方が補正がかかり易いため、大きい値の方が望ましい。一般的に、許容補正量が大きいと実際にかかる補正量も大きくなる。機械によっては工具方向に大きな補正をかけると工具が治具やワークに干渉してしまう場合がある。作業者は、加工プログラム中の工具方向が治具やワークに干渉するまでの余裕を考慮してそれが許す限りのできるだけ大きい値を指定するのが望ましい。つまり、機械構成の情報とは、端的には、加工プログラム中において工具が治具やワークに干渉するまでに、工具方向にどれほど変化可能な余裕があるかという情報である。
【００６３】
理想補正量のばらつきが大きい場合、全てのブロックを最適な工具方向に十分近づけるためには、許容補正量に非常に大きな値を設定しなければならなくなる。そのため、本発明において数値制御装置Ｂは、理想補正量の度数分布において、累積相対度数が指定された値（０．０以上１．０以下）になる補正量の値（以下、「推奨補正量」という）を出力する。例えば累積相対度数が０．９の場合の推奨補正量を許容補正量に設定することで、加工プログラム全体の９０％のブロックにおいて、補正後の工具方向が最適な工具方向に十分に近づく。作業者は、これらの情報と機械構成の情報を元に適切な許容補正量を設定することができる。また、数値制御装置Ｂの計算した推奨補正量を自動で許容補正量として設定することもできる。
【００６４】
本発明において数値制御装置Ｂは、補正後の工具方向と元の工具方向との差である実際の補正量の度数分布表または度数分布図も出力する機能を付加することにより、工具方向の補正がどのように施されたかを確認することができる。
【００６５】
前述した表１は加工プログラムにおけるプログラム指令例である。ここでは、Ｇａａが工具方向指令補正モード、Ｇｂｂが工具方向指令補正モード解除を指令するＧコードである。ＧａａからＧｂｂの間は１０ブロックの指令の例としているが、ブロック数に制限はない。Ｘ、Ｙ、Ｚは直線３軸を表し、Ｂ、Ｃは回転２軸を示す。各軸位置指令はアブソリュート指令としている。また、回転軸２軸をＢ軸、Ｃ軸で表しているが他の軸名称、例えば、Ａ、Ｂ軸、あるいはＡ、Ｃ軸であっても同様である。
【００６６】
数値制御装置Ｂは、Ｇａａを読み込んで工具方向指令補正モードに入り、Ｇｂｂを読み込んで工具方向指令補正モードが解除されるまでの間、読み込んだ各ブロックにおいて、最適な工具方向を計算する。また、指定された補正許容量に基づいて、準最適な工具方向も計算する。各ブロックの工具方向をアドレスＢ、Ｃの値の組で表し、Ｖｎ（Ｐｂｎ、Ｐｃｎ）（ｎ＝１〜１０）とする。数値制御装置Ｂの計算した各ブロックでの工具方向Ｖｎに対応する最適な工具方向をＶｎ’（Ｐｂｎ’、Ｐｃｎ’）（ｎ＝１〜１０）とし、準最適な工具方向をＶｎ’’（Ｐｂｎ’’、Ｐｃｎ’’）（ｎ＝１〜１０）とする。
【００６７】
数値制御装置Ｂは、次のように各ブロックの理想補正量βｎ’、γｎ’を計算し、それを度数分布表（図１４参照）にまとめる。
１）βｎ’＝｜Ｐｂｎ’―Ｐｂｎ｜、γｎ’＝｜Ｐｃｎ’―Ｐｃｎ｜（ｎ＝１〜１０）を計算する。
２）βｎ’（ｎ＝１〜１０）を元に、Ｂ軸の理想補正量の度数分布表を作成する。
３）γｎ’（ｎ＝１〜１０）を元に、Ｃ軸の理想補正量の度数分布表を作成する。
数値制御装置Ｂは、作成した度数分布表に基づき各統計量を計算する。
４）Ｂ軸、Ｃ軸の理想補正量の度数分布表それぞれの平均値、最大値、最小値を計算する。
５）Ｂ軸、Ｃ軸の理想補正量の度数分布表において、指定された累積相対度数となる理想補正量の値を計算する。
また、数値制御装置Ｂは次のように各ブロックでの実際の補正量を計算し、それを度数分布表にまとめる。  
６）βｎ’’＝｜Ｐｂｎ’’―Ｐｂｎ｜、γｎ’’＝｜Ｐｃｎ’’―Ｐｃｎ｜（ｎ＝１〜１０）を計算する。
７）βｎ’’（ｎ＝１〜１０）を元に、Ｂ軸の実際の補正量の度数分布表を作成する。
８）γｎ’’（ｎ＝１〜１０）を元に、Ｃ軸の実際の補正量の度数分布表を作成する。
【００６８】
図１４は、本発明における理想補正量の度数分布表を説明する図である。横軸は補正量（角度）であり、縦軸は各補正量に対応した工具方向指令の数である。横軸は０．１度刻みで工具方向指数の数の度数分布を示している。図１４では０．７度までの範囲で工具方向の補正が行われることを示している。図１４では補正量が大きくなるに従って工具方向指令の数は減少している。
【００６９】
図１５は、ファンクションキーを押して度数分布のデータを外部装置に出力することを説明する図である。符号７０は数値制御装置Ｂが備える入力装置付き表示装置の概略図である。  
キーボード７３は数字キー、アルファベットキーなどを備えている。累積相対度数（％）を入力するためにプロンプト７４が表示画面７１に表示される。外部装置は例えばパーソナルコンピュータのように度数分布のデータを記憶する記憶手段と度数分布を表示する表示装置を備えている。  
例えば、ファンクションキー７２の「Ｆ５」に、工具方向指令の何パーセントを十分に補正したいかを作業者が設定する命令が割り当てられている。キーボード７３の数字キーで入力した値はプロンプト７４に表示され、Ｆ５を押して数値を設定することができる。また、ファンクションキー７２の「Ｆ６」に度数分布のデータを外部装置（図示省略）に出力する命令が割り当てられ、Ｆ６を押して度数分布のデータを外部装置に送信することができる。
【００７０】
図１６は、図１５においてプロンプトに５０％を入力しファンクションキーのＦ５により設定したとき、０．２度までの累積度数が全体分布の５０％を超え、０．２度が許容補正量として自動的に設定されることを示している。本発明の数値制御装置Ｂは、許容補正量を何度にすればその許容補正量と同値の補正値までの累積度数が度数分布全体の指定された割合を超えるか最小値を計算し、その値を最適な許容補正量として自動設定する機能を有する。
【００７１】
図１７は、理想補正量の累積度数分布を表すグラフである。このグラフは図１４に示される理想補正量の度数分布を元にして求められる。横軸は補正量、０．１度刻みの所定補正量毎の工具方向指令の数を縦軸としている。図１８は、理想補正量の累積相対度数分布を表すグラフである。図１７に示される累積度数分布のグラフを元に縦軸として０から１．０の累積相対度数で表す。
【００７２】
次に、本発明の処理のアルゴリズムのフローチャートを説明する。この処理は図１３に示される数値制御装置のプロセッサ（ＣＰＵ）で実行される。  
図１９および図２０は、毎回ブロックを補正する度に補正量の度数分布を更新し度数分布の統計量を計算し直す処理のアルゴリズムを示すフローチャートである。このフローチャートでは、毎回ブロックを補正する度に補正量の度数分布を更新し、度数分布の統計量を計算しなおす。このフローチャートではどの時点で中断しても、それまでのブロックの度数分布の統計量を知ることができる。また、このフローチャートでは表１のＧａａを読み込んだ後の処理を示している。なお、ＧａａとＧｂｂの間には少なくとも５ブロックは指令されているとする。以下、各ステップに従って説明する。  
【００７３】
●［ステップＳＡ１］ｎを１にセットする。ここでｎは工具方向指令の数に対応する。
●［ステップＳＡ２］ｎが１であるか否かを判断する。ｎが１である場合ステップＳＡ９に進み、ｎが１でない場合ステップＳＡ３に進む。
●［ステップＳＡ３］ｎが２であるか否か判断する。ｎが２である場合ステップＳＡ１１に進み、ｎが２でない場合ステップＳＡ４へ進む。
●［ステップＳＡ４］前回読み込んだブロックはＧｂｂであるか否か判断する。Ｇｂｂの場合ステップＳＡ２０へ進み、Ｇｂｂでない場合ステップＳＡ５へ進む。
【００７４】
●［ステップＳＡ５］ｎが３であるか否か判断する。ｎが３である場合ステップＳＡ１３へ進み、ｎが３でない場合ステップＳＡ６へ進む。
●［ステップＳＡ６］１ブロック読み込む。
●［ステップＳＡ７］読み込んだブロックがＧｂｂであるか否か判断する。Ｇｂｂの場合ステップＳＡ１４に進み、Ｇｂｂでない場合ステップＳＡ８へ進む。
●［ステップＳＡ８］数５式による工具方向指令の補正を行い、ステップＳＡ１５へ進む。
●［ステップＳＡ９］ステップＳＡ２でｎが１である場合、１ブロック読み込み、ステップＳＡ１０へ進む。
【００７５】
●［ステップＳＡ１０］数３式による工具方向指令の補正を行い、ステップＳＡ１５へ進む。
●［ステップＳＡ１１］２ブロック読み込み、ステップＳＡ１２へ進む。
●［ステップＳＡ１２］数４式により工具方向指令の補正を行い、ステップＳＡ１５へ移行する。
●［ステップＳＡ１３］２ブロック読み込み、ステップＳＡ７へ移行する。
●［ステップＳＡ１４］数６式による工具方向指令の補正を行い、ステップＳＡ１５へ進む。
【００７６】
●［ステップＳＡ１５］ｎに１を加算する。
●［ステップＳＡ１６］許容範囲の設定値を読み込む。
●［ステップＳＡ１７］工具方向指令の理想補正量はステップＳＡ１６で読み込んだ予め設定された許容範囲内であるか否か判断し、許容範囲内の場合にはステップＳＡ１９へ進み、許容範囲外であればステップＳＡ１８へ進む。
●［ステップＳＡ１８］準最適な工具方向を計算する。
●［ステップＳＡ１９］今回計算された元の工具方向、最適な工具方向、および準最適な工具方向のデータを用いて、理想補正量、実際の補正量を求め、メモリに記憶する。理想補正量と実際の補正量について所定補正量毎の度数分布、累積度数分布を更新する。各度数分布の統計量を再計算し、メモリに記憶し、ステップＳＡ２へ移行する。
●［ステップＳＡ２０］数７式による工具方向指令の補正を行い、終了する。
【００７７】
ここで、ステップＳＡ１９の処理について説明する。元の工具方向は、工具方向指令によって指令される工具補正を行う前の工具方向である。最適な工具方向は、数３式から数６式により工具方向指令が補正された工具方向である。準最適な工具方向は、予め設定された許容範囲内で工具方向の補正を行う場合の工具方向である。準最適な工具方向は例えば、最適な工具方向が許容範囲を超える場合には許容範囲の限度の補正量で制限した工具方向とする演算によって求める。
また、許容範囲を実質的に制限しない、または、予め設定しないようにし、最適な工具方向に関する理想補正量の算出と理想補正量の度数分布を求め、実際の補正量に関する度数分布を求めない処理の形態もある。
なお、理想補正量と実際の補正量の算出方法は前述したとおりである。
【００７８】
図２１および図２２は、指定したｍブロックを読み込むまで補正量度数分布を更新し指定したｍブロックを読み込んだ時点で度数分布の統計量を計算し、それ以降は度数分布の更新をしない処理のアルゴリズムを示すフローチャートである。  
このフローチャートでは、Ｇａａを読み込んだ後、指定したｍブロックを読み込むまで補正量度数分布を更新し、ｍブロックを読み込んだ時点で度数分布の統計量を計算し、それ以降は度数分布の更新を行わない例である。このフローチャートでは毎ブロックでの統計量の計算は行わないため、図１９および図２０に示されるフローチャートに比較して毎回の計算量が少なく済み、統計量の計算を行うブロック数ｍを設定できる効果がある。  
また、このフローチャートでは表１のＧａａを読み込んだ後の処理を示している。なお、ＧａａとＧｂｂの間には少なくとも５ブロックは指令されているとする。以下、各ステップに従って説明する。  
【００７９】
●［ステップＳＢ１］ｎを１にセットする。ここでｎは工具方向指令の数に対応する。
●［ステップＳＢ２］ｎが１であるか否かを判断する。ｎが１である場合ステップＳＢ９に進み、ｎが１でない場合ステップＳＢ３に進む。
●［ステップＳＢ３］ｎが２であるか否か判断する。ｎが２である場合ステップＳＢ１１に進み、ｎが２でない場合ステップＳＢ４へ進む。
●［ステップＳＢ４］前回読み込んだブロックはＧｂｂであるか否か判断する。Ｇｂｂの場合ステップＳＢ２４へ進み、Ｇｂｂでない場合ステップＳＢ５へ進む。
【００８０】
●［ステップＳＢ５］ｎが３であるか否か判断する。ｎが３である場合ステップＳＢ１３へ進み、ｎが３でない場合ステップＳＢ６へ進む。
●［ステップＳＢ６］１ブロック読み込む。
●［ステップＳＢ７］読み込んだブロックがＧｂｂであるか否か判断する。Ｇｂｂの場合ステップＳＢ１４に進み、Ｇｂｂでない場合ステップＳＢ８へ進む。
●［ステップＳＢ８］数５式による工具方向指令の補正を行い、ステップＳＢ１５へ進む。
●［ステップＳＢ９］ステップＳＢ２でｎが１である場合、１ブロック読み込み、ステップＳＢ１０へ進む。
【００８１】
●［ステップＳＢ１０］数３式による工具方向指令の補正を行い、ステップＳＢ１５へ進む。
●［ステップＳＢ１１］２ブロック読み込み、ステップＳＢ１２へ進む。
●［ステップＳＢ１２］数４式により工具方向指令の補正を行い、ステップＳＢ１５へ移行する。
●［ステップＳＢ１３］２ブロック読み込み、ステップＳＢ７へ移行する。
●［ステップＳＢ１４］数６式による工具方向指令の補正を行い、ステップＳＢ１５へ進む。
●［ステップＳＢ１５］ｎに１を加算する。
【００８２】
●［ステップＳＢ１６］許容範囲の設定値を読み込む。
●［ステップＳＢ１７］ｍを読み込む。ｍは何ブロック読み込んだら度数分布の統計量の計算を実行するかを設定する数値である。
●［ステップＳＢ１８］工具方向指令の理想補正量はステップＳＢ１６で読み込んだ予め設定された許容範囲内であるか否か判断し、許容範囲内の場合にはステップＳＢ２０へ進み、許容範囲外であればステップＳＢ１９へ進む。
●［ステップＳＢ１９］準最適な工具方向を計算する。
●［ステップＳＢ２０］ｎはｍ＋１より大きいか否か判断し、大きい場合にはステップＳＢ２へ進み、大きくない場合にはステップＳＢ２１へ進む。
●［ステップＳＢ２１］今回計算された元の工具方向、最適な工具方向、および準最適な工具方向のデータを用いて、理想補正量、実際の補正量を求め、メモリに記憶する。理想補正量と実際の補正量について所定補正量毎の度数分布、累積度数分布を更新する。
●［ステップＳＢ２２］ｎはｍ＋１であるか否か判断し、ｎがｍ＋１でない場合にはステップＳＢ２へ進み、ｎがｍ＋１である場合にはステップＳＢ２３へ進む。
●［ステップＳＢ２３］各度数分布の統計量を計算する。
●［ステップＳＢ２４］数７式による工具方向指令の補正を行い、終了する。
【００８３】
ここで、ステップＳＢ２１の処理について説明する。元の工具方向は、工具方向指令によって指令される工具補正を行う前の工具方向である。最適な工具方向は、数３式から数６式により工具方向指令が補正された工具方向である。準最適な工具方向は、予め設定された許容範囲内で工具方向の補正を行う場合の工具方向である。準最適な工具方向は例えば、最適な工具方向が許容範囲を超える場合には許容範囲の限度の補正量で制限した工具方向とする演算によって求める。またステップＳＢ２３の各度数分布とは、理想補正量の度数分布、実際の補正量の度数分布である。
【００８４】
図２３および図２４は、プログラムの終了時に度数分布の統計量を計算する処理のアルゴリズムを示すフローチャートである。このフローチャートでは、加工プログラムの終了時に度数分布の統計量を計算する。毎ブロックの統計量を計算する場合に比較して処理が少なく済む効果がある。なお、表１のＧａａを読み込んだ後の工具方向指令が読み込まれた後の処理を示している。以下、各ステップに従って説明する。
【００８５】
●［ステップＳＣ１］ｎを１にセットする。ここでｎは工具方向指令の数に対応する。
●［ステップＳＣ２］ｎが１であるか否かを判断する。ｎが１である場合ステップＳＣ９に進み、ｎが１でない場合ステップＳＣ３に進む。
●［ステップＳＣ３］ｎが２であるか否か判断する。ｎが２である場合ステップＳＣ１１に進み、ｎが２でない場合ステップＳＣ４へ進む。
●［ステップＳＣ４］前回読み込んだブロックはＧｂｂであるか否か判断する。Ｇｂｂの場合ステップＳＣ２０へ進み、Ｇｂｂでない場合ステップＳＣ５へ進む。
【００８６】
●［ステップＳＣ５］ｎが３であるか否か判断する。ｎが３である場合ステップＳＣ１３へ進み、ｎが３でない場合ステップＳＣ６へ進む。
●［ステップＳＣ６］１ブロック読み込む。
●［ステップＳＣ７］読み込んだブロックがＧｂｂであるか否か判断する。Ｇｂｂの場合ステップＳＣ１４に進み、Ｇｂｂでない場合ステップＳＣ８へ進む。
●［ステップＳＣ８］数５式による工具方向指令の補正を行い、ステップＳＣ１５へ進む。
●［ステップＳＣ９］ステップＳＣ２でｎが１である場合、１ブロック読み込み、ステップＳＣ１０へ進む。
【００８７】
●［ステップＳＣ１０］数３式による工具方向指令の補正を行い、ステップＳＣ１５へ進む。
●［ステップＳＣ１１］２ブロック読み込み、ステップＳＣ１２へ進む。
●［ステップＳＣ１２］数４式により工具方向指令の補正を行い、ステップＳＣ１５へ移行する。
●［ステップＳＣ１３］２ブロック読み込み、ステップＳＣ７へ移行する。
●［ステップＳＣ１４］数６式による工具方向指令の補正を行い、ステップＳＣ１５へ進む。
●［ステップＳＣ１５］ｎに１を加算する。
【００８８】
●［ステップＳＣ１６］許容範囲の設定値を読み込む。
●［ステップＳＣ１７］工具方向指令の理想補正量はステップＳＣ１６で読み込んだ予め設定された許容範囲内であるか否か判断し、許容範囲内の場合にはステップＳＣ１９へ進み、許容範囲外であればステップＳＣ１８へ進む。
●［ステップＳＣ１８］準最適な工具方向を計算する。
●［ステップＳＣ１９］今回計算された元の工具方向、最適な工具方向、および準最適な工具方向のデータを用いて、理想補正量、実際の補正量を求め、メモリに記憶する。理想補正量と実際の補正量について所定補正量毎の度数分布、累積度数分布を更新する。
●［ステップＳＣ２０］数７式による工具方向指令の補正を行い、ステップＳＣ２１へ進む。
●［ステップＳＣ２１］ステップＳＣ１９の各度数分布の統計量を計算し、終了する。
【００８９】
ここで、ステップＳＣ１９の処理について説明する。元の工具方向は、工具方向指令によって指令される工具補正を行う前の工具方向である。最適な工具方向は、数３式から数６式により工具方向指令が補正された工具方向である。準最適な工具方向は、予め設定された許容範囲内で工具方向の補正を行う場合の工具方向である。準最適な工具方向は例えば、最適な工具方向が許容範囲を超える場合には許容範囲の限度の補正量で制限した工具方向とする演算によって求める。
【００９０】
また、許容範囲を実質的に制限しない、または、予め設定しないようにし、最適な工具方向に関する理想補正量の算出と理想補正量の度数分布を求め、実際の補正量に関する度数分布を求めない処理の形態もある。なお、理想補正量と実際の補正量の算出方法は前述したとおりである。
【００９１】
なお、上述のフローチャートで「ｎ」の積算は工具方向指令の数を累積する累積手段に対応する。図１５に示されるプロンプト７４への累積度数の割合の入力は、工具指令の数に対する割合を指定する割合指定手段に対応する。累積度数分布は、所定補正量毎の工具方向指令の数を累積することにより求めることができる。プロンプト７４から入力された値に対応する累積度数を求めることは工具方向指令の理想補正量を取得する取得手段に対応する。許容範囲として設定する設定手段は前記取得手段により取得された値を数値制御装置のメモリに格納される。
【符号の説明】
【００９２】
１  指令読み取り手段
２  工具方向指令補正手段
３  補間手段
４Ｘ、４Ｙ、４Ｚ、４Ｂ（Ａ）、４Ｃ  各軸サーボ
７０  表示器／ＭＤＩユニット
７１  表示画面
７２  ファンクションキー
７３  キーボード
７４  プロンプト
【図１】
2010167516.tif 000014
【図２】
2010167516.tif 000015
【図３】
2010167516.tif 000016
【図４】
2010167516.tif 000017
【図５】
2010167516.tif 000018
【図６】
2010167516.tif 000019
【図７】
2010167516.tif 000020
【図８】
2010167516.tif 000021
【図９】
2010167516.tif 000022
【図１０】
2010167516.tif 000023
【図１１】
2010167516.tif 000024
【図１２】
2010167516.tif 000025
【図１３】
2010167516.tif 000026
【図１４】
2010167516.tif 000027
【図１５】
2010167516.tif 000028
【図１６】
2010167516.tif 000029
【図１７】
2010167516.tif 000030
【図１８】
2010167516.tif 000031
【図１９】
2010167516.tif 000032
【図２０】
2010167516.tif 000033
【図２１】
2010167516.tif 000034
【図２２】
2010167516.tif 000035
【図２３】
2010167516.tif 000036
【図２４】
2010167516.tif 000037