(57)【要約】  連続した複数の指令経路で構成された加工プログラム（１０）に従って被加工物（３）への工具（２）の工具姿勢を変更可能な工作機械を制御する数値制御装置（１００）が、加工プログラム（１０）により指令された被加工物（３）への工具（２）の送り速度指令、工具先端の指令経路及び回転軸移動指令を読み取る加工プログラム読み取り部（１１）と、工作機械の第１の機械経路を計算する第１機械経路計算部（１２）と、第１の機械経路が圧縮可能かを判定する圧縮可否判定部（１３）と、圧縮可能と判定された場合に圧縮後指令経路及び圧縮後回転軸移動指令を作成する圧縮処理部（１４）と、圧縮後指令経路及び圧縮後回転軸移動指令を補間し、補間周期毎に被加工物（３）への工具先端の移動経路及び回転軸角度を計算する補間処理部（１５）と、工作機械の第２の機械経路を計算する第２機械経路計算部（１６）とを備える。
2016021076.tif 000002
【特許請求の範囲】
【請求項１】
連続した複数の指令経路で構成された加工プログラムに従って被加工物への工具の工具姿勢を変更することが可能な回転自由度を有する工作機械を制御し、前記被加工物を前記工具により加工する数値制御装置において、  前記加工プログラムにより指令された前記被加工物への工具の送り速度指令、工具先端の指令経路、及び工具姿勢を決定する回転軸移動指令を読み取る加工プログラム読み取り部と、  前記被加工物への前記工具先端の指令経路及び前記回転軸移動指令を近似座標変換することにより、前記工作機械の第１の機械経路を近似計算する第１機械経路計算部と、  前記第１の機械経路がコーナ形状か否かを判定することにより、前記複数の指令経路及び前記複数の回転軸移動指令を、１つの指令経路及び１つの回転軸移動指令に圧縮可能か否かを判定する圧縮可否判定部と、  前記圧縮可否判定部により圧縮可能と判定された場合には、前記複数の指令経路及び前記複数の回転軸移動指令を１つの指令経路及び１つの回転軸移動指令に圧縮して圧縮後指令経路及び圧縮後回転軸移動指令を作成する圧縮処理部と、  前記圧縮後指令経路及び前記圧縮後回転軸移動指令を補間し、補間周期毎に前記被加工物への前記工具先端の移動経路及び回転軸角度を計算する補間処理部と、  前記補間周期毎の前記被加工物への前記工具先端の移動経路及び前記回転軸角度を座標変換することにより前記工作機械の第２の機械経路を計算する第２機械経路計算部とを備えることを特徴とする数値制御装置。
【請求項２】
前記圧縮可否判定部は、前記第１の機械経路に基づいてクランプ速度を計算し、前記クランプ速度が前記加工プログラムにより指令された前記被加工物への前記工具の送り速度よりも小さい場合にはコーナ形状であり圧縮不可と判定することを特徴とする請求項１に記載の数値制御装置。
【請求項３】
前記圧縮可否判定部は、１つの経路に圧縮した前記複数の指令経路及び前記複数の回転軸移動指令に対応する前記第１の機械経路の合成移動量の総和が、予め設定された前記補間周期毎の移動量よりも大きい場合には圧縮不可と判定することを特徴とする請求項１または請求項２に記載の数値制御装置。
【請求項４】
前記圧縮可否判定部は、１つの経路に圧縮した前記複数の指令経路の合成移動量の総和が、前記加工プログラムにより指令された前記被加工物への前記工具の前記送り速度における前記補間周期毎の移動量よりも大きい場合には圧縮不可と判定することを特徴とする請求項１または請求項２に記載の数値制御装置。
【発明の詳細な説明】
【技術分野】
【０００１】  本発明は、回転自由度を有する工作機械の軌跡制御を行う数値制御装置に関し、特に連続した複数の指令経路を含む加工プログラムに従って工作機械を制御する数値制御装置に関するものである。
【背景技術】
【０００２】  数値制御装置が搭載された工作機械に３次元形状の加工を行わせる場合には、連続した複数の指令経路で自由曲面が近似された加工プログラムに従って加工が行なわれることがある。加工プログラムは、簡単な形状であれば手動で作成されることもあるが、自由曲面を含む３次元形状の場合には、例えば数値制御装置とは異なる外部装置上のＣＡＭ（Ｃｏｍｐｕｔｅｒ  Ａｉｄｅｄ  Ｍａｎｕｆａｃｔｕｒｉｎｇ）で作成されることが一般的である。ＣＡＭを用いて加工プログラムを作成する際には、自由曲面をできるだけ正確に表現するために、１つの指令経路の長さ（以下、経路長という）を短くする必要がある。しかしながら、一定時間内に処理できる指令経路数は数値制御装置のデータ処理能力により制限されるため、経路長が短くなると、一定時間内に工具が移動できる距離、つまり工具の送り速度が制限されることになる。【０００３】  そこで、従来の数値制御装置では、同一直線区間にある連続した複数の指令経路を一つの経路に置き換えて経路長を長くすることで高速加工を実現している。なお、以下の説明では、複数の指令経路を一つの経路に置き換えることを「圧縮する」と表現し、圧縮された経路を「圧縮後指令経路」と表現する。ここで、複数の連続した指令経路が同一直線上にあるか否かの判定、すなわち圧縮の可否判定は、単に加工プログラムで指令された指令経路の形状情報に基づいて行われている。【０００４】  例えば、特許文献１には、「加工形状の大きさに応じたパラメータの設定を必要とせず、単純かつ高速な方法で加工形状データを圧縮し、無駄な（異常な）経路となる線分を確実に排除することのできる、形状加工システムにおける加工形状データの圧縮処理方法を提供する」ことを目的とし、「ｎ個の連続した線分で構成された加工形状データ」に「ついて、各線分Ｓ（１〜ｎ）の直線係数の類似性により、連続した線分Ｓｉ（ｉ：１〜ｎ−１）〜Ｓｊ（ｊ：ｉ＋１〜ｎ）が同一直線区間にあるか否かを判定し、連続した線分Ｓｉ（ｉ：１〜ｎ−１）〜Ｓｊ（ｊ：ｉ＋１〜ｎ）が同一直線区間にあると判定された場合には、線分Ｓｉ（ｉ：１〜ｎ−１）の始点とＳｊ（ｊ：ｉ＋１〜ｎ）の終点とを直線で結んで新たな線分とし、線分Ｓｉ（ｉ：１〜ｎ−１）〜Ｓｊ（ｊ：ｉ＋１〜ｎ）を消去する」加工形状データの圧縮処理方法が開示されている。特許文献１では、加工プログラムに記述された経路の傾きの変化量が所定値以上である場合に圧縮不可と判定する。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開平１０−４９２１５号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】  回転自由度を有する工作機械では、工具先端の指令経路、工具姿勢及び被加工物と工具との相対送り速度を加工プログラムにより指令する加工が一般的となりつつある。このような加工では、数値制御装置は加工プログラムに基づいて補間周期毎に工具先端の指令経路及び工具姿勢を決定する回転軸移動経路を補間し、各補間点を座標変換して工作機械を駆動するためのサーボモータの移動量を求め、その移動量を各直線軸及び回転軸を駆動するサーボモータに指令することで所望の加工を行う。このような工具先端の指令経路を指令した加工プログラムで加工を行う数値制御装置の機能を「工具先端点制御」と呼んでいる。工具先端点制御では、工具先端の指令経路と各軸サーボモータの移動経路（以下、機械経路という）が異なる経路となる。【０００７】  工具先端点制御では、加工プログラムに記述された工具先端の指令経路に加えて機械経路も考慮して圧縮の判定を行わないと圧縮により機械経路または工具姿勢が変化してしまい削り残しまたは削りすぎが生じてしまう。【０００８】  しかしながら、上記従来の技術によれば、加工プログラムに記述された工具先端の指令経路でのみ圧縮の判定を行っているため、工具先端点制御の加工プログラムに適用すると、削り残しまたは削りすぎが生じる可能性がある。また、単純に指令経路毎に機械経路を計算して機械経路での圧縮の判定を行うと、機械経路の計算には、例えば三角関数または逆三角関数を用いており処理負荷が重いため、処理負荷が増大し、一定時間内に処理できる経路数が減少してしまう。そのため、圧縮により経路長を長くしても、工具の送り速度を高速化することができない、という問題があった。【０００９】  本発明は、上記に鑑みてなされたものであって、加工精度を低下させることなく、従来よりも加工を高速化することが可能な数値制御装置を得ることを目的とする。
【課題を解決するための手段】
【００１０】  上述した課題を解決し、目的を達成するために、本発明は、連続した複数の指令経路で構成された加工プログラムに従って被加工物への工具の工具姿勢を変更することが可能な回転自由度を有する工作機械を制御し、前記被加工物を前記工具により加工する数値制御装置において、前記加工プログラムにより指令された前記被加工物への工具の送り速度指令、工具先端の指令経路、及び工具姿勢を決定する回転軸移動指令を読み取る加工プログラム読み取り部と、前記被加工物への前記工具先端の指令経路及び前記回転軸移動指令を近似座標変換することにより、前記工作機械の第１の機械経路を近似計算する第１機械経路計算部と、前記第１の機械経路がコーナ形状か否かを判定することにより、前記複数の指令経路及び前記複数の回転軸移動指令を、１つの指令経路及び１つの回転軸移動指令に圧縮可能か否かを判定する圧縮可否判定部と、前記圧縮可否判定部により圧縮可能と判定された場合には、前記複数の指令経路及び前記複数の回転軸移動指令を１つの指令経路及び１つの回転軸移動指令に圧縮して圧縮後指令経路及び圧縮後回転軸移動指令を作成する圧縮処理部と、前記圧縮後指令経路及び前記圧縮後回転軸移動指令を補間し、補間周期毎に前記被加工物への前記工具先端の移動経路及び回転軸角度を計算する補間処理部と、前記補間周期毎の前記被加工物への前記工具先端の移動経路及び前記回転軸角度を座標変換することにより前記工作機械の第２の機械経路を計算する第２機械経路計算部とを備えることを特徴とする。
【発明の効果】
【００１１】  この発明によれば、加工精度を低下させることなく、従来よりも加工を高速化することが可能な数値制御装置を得ることができる、という効果を奏する。
【図面の簡単な説明】
【００１２】
【図１】実施の形態にかかる数値制御装置により制御される５軸工作機械の一例を示す図
【図２】実施の形態にかかる数値制御装置の構成の一例を示すブロック図
【図３】圧縮後指令経路及び圧縮後回転軸移動指令の作成処理を示すフローチャート
【図４】Ｎ（ｉ）とＮ’（ｊ）との関係及びＴ（ｉ）とＴ’（ｊ）との関係の一例を示す図
【図５】工具方向ベクトル指令を示す図
【図６】機械経路を計算するための座標系を示す図
【図７】圧縮可否を判定する処理の一例を示すフローチャート
【図８】クランプ速度の計算方法を示す図
【図９】圧縮後経路におけるクランプ速度の計算方法を示す図
【図１０】コーナ形状を圧縮した場合の圧縮後形状を示す図
【図１１】補間点の計算方法を示す図
【図１２】比較例の指令経路と機械経路とを示す図
【図１３】比較例の指令経路と機械経路とを示す図
【図１４】比較例の指令経路と機械経路とを示す図
【図１５】比較例の指令経路と機械経路とを示す図
【図１６】機械経路を考慮して圧縮の可否判定を行う数値制御装置の比較例の構成の一例を示すブロック図
【発明を実施するための形態】
【００１３】  以下に、本発明にかかる数値制御装置の実施の形態を図面に基づいて詳細に説明する。なお、この実施の形態によりこの発明が限定されるものではない。
【００１４】  被加工物を基準とした工具姿勢を変更可能な回転自由度を有する工作機械には、直線軸３軸と回転軸２軸を有する５軸工作機械を例示することができる。
【００１５】実施の形態．  図１は、本発明にかかる数値制御装置により制御される５軸工作機械の一例を示す図である。図１に示す５軸工作機械では、互いに直交するＸ軸、Ｙ軸、Ｚ軸方向に工具２が駆動され、さらに、Ｙ軸周りの回転軸Ｂにより工具２が回転し、Ｚ軸周りの回転軸Ｃによりテーブル１が回転することにより、テーブル１に固定された被加工物３が加工される。このように、テーブル側に回転軸１軸を有し、工具側に回転軸１軸を有する機械を混合型の５軸工作機械と呼ぶ。
【００１６】  なお、５軸工作機械は図１に例示するもの以外にもテーブルチルト型または工具チルト型と呼ばれるものがある。テーブルチルト型はテーブル側に回転軸２軸を有し、工具チルト型は工具側に回転軸２軸を有し、Ｘ軸方向の回転軸はＡ軸と呼ばれ、Ｙ軸方向の回転軸はＢ軸と呼ばれ、Ｚ軸方向の回転軸はＣ軸と呼ばれる。このように、５軸工作機械にはさまざまなタイプが存在する。本実施の形態では、図１に示す混合型の回転軸Ｂ軸及びＣ軸を有する工作機械を例示して説明するが、これに限定されず、本発明は、その他のタイプの工作機械を含む。
【００１７】  図２は、本発明にかかる数値制御装置の実施の形態の構成の一例を示すブロック図である。図２に示す数値制御装置１００は、回転自由度を有する工作機械を制御する。図２に示す数値制御装置１００は、加工プログラム読み取り部１１、第１機械経路計算部１２、圧縮可否判定部１３、圧縮処理部１４、補間処理部１５及び第２機械経路計算部１６を備える。加工プログラム読み取り部１１には加工プログラム１０が記憶され、または加工プログラム１０が入力される。
【００１８】  加工プログラム読み取り部１１は、加工プログラム１０により指令された工具先端の指令経路、工具姿勢を決定するための回転軸移動指令及び加工情報を１経路ずつ読み取り、第１機械経路計算部１２及び圧縮可否判定部１３へ出力する。ここで、加工情報とは、補間に必要な動作を示す情報であり、具体的には、被加工物への工具の送り速度指令及び機械の動作を指令するためのＧコード指令及びＭコード指令を含む。
【００１９】  第１機械経路計算部１２は、加工プログラム読み取り部１１から出力された指令経路及び回転軸移動指令を用いて座標変換の近似式により第１の機械経路を算出し、圧縮可否判定部１３に出力する。
【００２０】  圧縮可否判定部１３は、加工プログラム読み取り部１１から出力された加工情報及び第１機械経路計算部１２より出力された第１の機械経路に基づいて圧縮の可否を判定する。
【００２１】  圧縮可否判定部１３により圧縮可能と判定された場合には、圧縮処理部１４は、加工プログラム読み取り部１１から圧縮可否判定部１３を経由して出力された連続した複数の指令経路及び複数の回転軸移動指令の始点と終点とを結ぶ新たな１つの圧縮後指令経路及び圧縮後回転軸移動指令を作成する。その後、再度、加工プログラム読み取り部１１に戻り、次の指令経路、回転軸移動指令及び加工情報が読み取られる。
【００２２】  圧縮可否判定部１３により圧縮不可と判定された場合には、補間処理部１５は、圧縮後指令経路及び圧縮後回転軸移動指令を指令送り速度で補間周期毎に補間し、被加工物への工具先端の移動経路及び回転軸角度を出力する。ここで、指令送り速度は、加工プログラム読み取り部１１から圧縮可否判定部１３を経由して出力された加工情報に含まれる送り速度指令とする。また、指令送り速度は、工作機械の各軸を駆動するサーボモータに加わる加速度が許容値以内になるように第１の機械経路に基づいて計算したクランプ速度と送り速度指令とのうち小さいほうを採用してもよい。
【００２３】  第２機械経路計算部１６は、補間処理部１５から出力された補間周期毎の被加工物への工具先端の移動経路及び回転軸角度を用いて座標変換を行い、第２の機械経路を算出し、図示しない加減速処理部及びサーボ制御装置へ出力することで、図示しない各軸のサーボモータを駆動させることができる。
【００２４】  次に、数値制御装置１００の動作について説明する。まず、加工プログラム読み取り部１１、第１機械経路計算部１２、圧縮可否判定部１３及び圧縮処理部１４の動作について説明する。最初に、圧縮処理部１４から出力される圧縮後指令経路及び圧縮後回転軸移動指令の作成手順について説明する。
【００２５】  図３は、圧縮後指令経路及び圧縮後回転軸移動指令の作成処理を示すフローチャートである。なお、加工プログラム１０により指令されたｉ番目の指令経路をＮ（ｉ）とし、回転軸移動指令をＴ（ｉ）とし、Ｎ（ｉ），Ｔ（ｉ）に対応する機械経路をＭ（ｉ）とする。また、複数の指令経路及び回転軸移動指令Ｎ（ｉ），Ｔ（ｉ）を圧縮したｊ番目の圧縮後指令経路をＮ’（ｊ）とし、圧縮後回転軸移動指令をＴ’（ｊ）とし、Ｎ’（ｊ），Ｔ’（ｊ）に対応する圧縮後機械経路をＭ’（ｊ）とする。
【００２６】  図４は、Ｎ（ｉ）とＮ’（ｊ）との関係及びＴ（ｉ）とＴ’（ｊ）との関係の一例を示す図である。なお、図４において、工具姿勢を決定する回転軸移動指令Ｔ（ｉ）及び圧縮後回転軸移動指令Ｔ’（ｊ）は終点の工具姿勢のみを示しているが、始点の工具姿勢は１つ前の経路の終点の姿勢と等しい。すなわち、ｉ番目の経路の始点における工具姿勢はｉ−１番目の終点における工具姿勢Ｔ（ｉ−１）と等しく、ｊ番目の圧縮経路の始点における工具姿勢はｊ−１番目の終点における工具姿勢Ｔ’（ｊ−１）と等しい。
【００２７】  図３において、まず、処理をスタートし、加工プログラム読み取り部１１が、加工プログラム１０の実行が初回か否かを判定する（Ｓ１）。加工プログラム１０の実行が初回である場合、すなわち、Ｓ１においてＹｅｓに分岐する場合には、指令経路Ｎ（ｉ）及び回転軸移動指令Ｔ（ｉ）の指令経路番号ｉを０とし、圧縮後指令経路Ｎ’（ｊ）及び圧縮後回転軸移動指令Ｔ’（ｊ）の圧縮後経路番号ｊを１として初期化する（Ｓ２）。
【００２８】  Ｓ２において初期化を行った後、または加工プログラム１０の実行が初回でない場合、すなわち、Ｓ１においてＮｏに分岐する場合には、加工プログラム読み取り部１１は、指令経路番号ｉをインクリメントする（Ｓ３）。
【００２９】  加工プログラム読み取り部１１は、Ｓ３において指令経路番号ｉをインクリメントした後、加工プログラム１０から指令された工具先端の指令経路Ｎ（ｉ）及び工具姿勢を決定する回転軸移動指令Ｔ（ｉ）を読み取る（Ｓ４）。
【００３０】  指令経路Ｎ（ｉ）及び回転軸移動指令Ｔ（ｉ）の読み取り後、第１機械経路計算部１２は、工具先端の指令経路Ｎ（ｉ）及び回転軸移動指令Ｔ（ｉ）を座標変換の近似式にて第１の機械経路Ｍ（ｉ）に変換する近似計算を行い、第１の機械経路Ｍ（ｉ）を指令毎に保存する（Ｓ５）。ここで、工具先端の指令経路Ｎ（ｉ）は工具先端の直線軸３軸の経路であり、回転軸移動指令Ｔ（ｉ）は工具姿勢を決定する回転軸への指令であるが、第１の機械経路Ｍ（ｉ）は直線軸及び回転軸を駆動するサーボモータへの指令である。
【００３１】  その後、圧縮可否判定部１３は、ｊ番目の圧縮経路である圧縮後指令経路Ｎ’（ｊ）及び圧縮後回転軸移動指令Ｔ’（ｊ）の圧縮処理が初回か否か、すなわち、圧縮後指令経路Ｎ’（ｊ）及び圧縮後回転軸移動指令Ｔ’（ｊ）に含まれる指令経路Ｎ（ｉ）及び回転軸移動指令Ｔ（ｉ）が１つであるか否かを判定する（Ｓ６）。
【００３２】  圧縮処理が初回である場合、すなわち、Ｓ６においてＹｅｓに分岐する場合には、圧縮可否判定部１３は、圧縮後指令経路Ｎ’（ｊ）の始点を指令経路Ｎ（ｉ）の始点で初期化し、圧縮後回転軸移動指令Ｔ’（ｊ）の始点を回転軸移動指令Ｔ（ｉ）の始点で初期化し、圧縮後機械経路Ｍ’（ｊ）の始点を機械経路Ｍ（ｉ）の始点で初期化する（Ｓ７）。
【００３３】  その後、圧縮可否判定部１３は、圧縮後指令経路Ｎ’（ｊ）の終点に指令経路Ｎ（ｉ）の終点を設定し、圧縮後回転軸移動指令Ｔ’（ｊ）の終点に回転軸移動指令Ｔ（ｉ）の終点を設定し、圧縮後機械経路Ｍ’（ｊ）の終点に機械経路Ｍ（ｉ）の終点を設定する（Ｓ９）。そして、設定後にはＳ３に戻る。
【００３４】  ここまでの処理で圧縮後指令経路Ｎ’（ｊ）、圧縮後回転軸移動指令Ｔ’（ｊ）及び圧縮後機械経路Ｍ’（ｊ）が作成される。なお、Ｓ６の判定において、ｊ番目の圧縮経路である圧縮後指令経路Ｎ’（ｊ）及び圧縮後回転軸移動指令Ｔ’（ｊ）の圧縮処理が初回であると判定された場合、すなわち、Ｓ６においてＹｅｓに分岐する場合には、圧縮後指令経路Ｎ’（ｊ）と指令経路Ｎ（ｉ）は等しく、圧縮後回転軸移動指令Ｔ’（ｊ）と回転軸移動指令Ｔ（ｉ）も等しく、また、圧縮後機械経路Ｍ’（ｊ）と機械経路Ｍ（ｉ）も等しい。
【００３５】  加工プログラム読み取り部１１は、Ｓ９を経た後のＳ３においても指令経路番号ｉをインクリメントし（Ｓ３）、加工プログラム１０から指令された指令経路Ｎ（ｉ）及び回転軸移動指令Ｔ（ｉ）を読み取る（Ｓ４）。すなわち、加工プログラム読み取り部１１は、前回のＳ４で読み取った指令経路及び回転軸移動指令の次の指令経路及び回転軸移動指令を読み取る。その後、第１機械経路計算部１２は、今回のＳ４で読み取った指令経路Ｎ（ｉ）及び回転軸移動指令Ｔ（ｉ）を座標変換の近似式にて算出して第１の機械経路Ｍ（ｉ）に変換し、保存する（Ｓ５）。その後、圧縮可否判定部１３は、ｊ番目の圧縮経路である圧縮後指令経路Ｎ’（ｊ）及び圧縮後回転軸移動指令Ｔ’（ｊ）の圧縮処理が初回であるか否か、すなわち、圧縮後指令経路Ｎ’（ｊ）及び圧縮後回転軸移動指令Ｔ’（ｊ）に含まれる指令経路Ｎ（ｉ）及び回転軸移動指令Ｔ（ｉ）が１つであるか否かを再び判定する（Ｓ６）。ここでは既に前回の指令経路Ｎ（ｉ−１）及び回転軸移動指令Ｔ（ｉ−１）の圧縮処理を行っているため、Ｎｏに分岐する。
【００３６】  その後、圧縮可否判定部１３は、ｊ番目の圧縮経路である圧縮後指令経路Ｎ’（ｊ）及び圧縮後回転軸移動指令Ｔ’（ｊ）と、ｉ番目の指令である指令経路Ｎ（ｉ）及び回転軸移動指令Ｔ（ｉ）とが圧縮可能か否かを判定する（Ｓ８）。圧縮可能である場合、すなわちＳ８においてＹｅｓに分岐する場合には、圧縮後指令経路Ｎ’（ｊ）の終点を指令経路Ｎ（ｉ）の終点で更新し、圧縮後回転軸移動指令Ｔ’（ｊ）の終点を回転軸移動指令Ｔ（ｉ）の終点で更新し、また、圧縮後機械経路Ｍ’（ｊ）の終点を機械経路Ｍ（ｉ）の終点で更新する（Ｓ９）。そして、その後、Ｓ９以降の処理を繰り返すことで、複数の指令経路及び複数の回転軸移動指令を圧縮した圧縮後指令経路、圧縮後回転軸移動指令及び圧縮後機械経路が作成される。
【００３７】  一方で、圧縮不可と判定された場合、すなわちＳ８においてＮｏに分岐する場合には、圧縮可否判定部１３が指令経路番号ｉをデクリメントし、圧縮後経路番号ｊをインクリメントして圧縮処理を終了する（Ｓ１０）。
【００３８】  なお、本実施の形態では、指令経路番号ｉをデクリメントすることで、圧縮不可と判定されたｉ番目の指令は一旦破棄され、次回圧縮処理でＳ４にて再度ｉ番目の指令を読み込むようにしているが、圧縮不可と判定されたｉ番目の指令も保存しておき、次回圧縮処理のＳ４では加工プログラム１０からｉ番目の指令を読み込むのではなく、保存したｉ番目の指令を使用するように設定してもよい。
【００３９】  ここで、Ｓ５において第１機械経路計算部１２が行う第１の機械経路Ｍ（ｉ）の近似計算方法について述べる。加工プログラム１０により指令された工具先端の指令経路Ｎ（ｉ）及び回転軸移動指令Ｔ（ｉ）から第１の機械経路Ｍ（ｉ）への座標変換には三角関数及び逆三角関数の計算が必要となる。しかしながら、三角関数及び逆三角関数の計算では処理負荷が重く、計算に処理時間がかかる。そのため、Ｓ５の第１の機械経路Ｍ（ｉ）の計算では、三角関数及び逆三角関数を使用することなく、近似式によって第１の機械経路Ｍ（ｉ）を計算する。なお、第１の機械経路Ｍ（ｉ）は、Ｓ８において圧縮可否判定部１３が行う圧縮可否判定に使用し、補間処理部１５では使用しない。
【００４０】  回転軸移動指令Ｔ（ｉ）を工具方向ベクトルで指令した場合について説明する。図５は、工具方向ベクトル指令を示す図である。まず、図５に示すように、回転軸移動指令Ｔ（ｉ）が工具方向ベクトル（Ｉｉ，Ｊｉ，Ｋｉ）で指令された場合について説明する。ここで、工具方向ベクトルは単位ベクトルとする。
【００４１】  回転軸移動指令Ｔ（ｉ）が工具方向ベクトルで指令された場合には、まず、工具姿勢が指令された工具方向ベクトルとなる回転軸の角度を近似計算する。
【００４２】  圧縮後回転軸移動指令Ｔ’（ｊ）の始点における工具ベクトル、すなわち圧縮後回転軸移動指令Ｔ’（ｊ−１）の工具方向ベクトルを（Ｉｊ−１，Ｊｊ−１，Ｋｊ−１）とし、このときのＢ軸角度をｂｊ−１、Ｃ軸角度をｃｊ−１とする。工具側にＢ軸回転軸があり、テーブル側にＣ軸回転軸がある機械構成の場合には、工具方向ベクトルと回転軸角度の関係は以下の式（１）〜（３）で表される。
【００４３】
【数１】
2016021076.tif 000003
【００４４】
【数２】
2016021076.tif 000004
【００４５】
【数３】
2016021076.tif 000005
【００４６】  同様に、ｉ番目の回転軸移動指令Ｔ（ｉ）の工具ベクトルを（Ｉｉ，Ｊｉ，Ｋｉ）とし、そのときのＢ軸角度をｂｊ＝ｂｊ−１＋Δｂとし、Ｃ軸角度をｃｊ＝ｃｊ−１＋Δｃとすると、下記の式（４）〜（６）が成り立つ。
【００４７】
【数４】
2016021076.tif 000006
【００４８】
【数５】
2016021076.tif 000007
【００４９】
【数６】
2016021076.tif 000008
【００５０】  ここで、ｓｉｎ（ｂｊ−１）またはｓｉｎ（ｂｊ−１＋Δｂ）が０の点は特異点と呼ばれ、Ｃ軸角度が任意となる。特異点付近では工具方向の変化は小さくてもＣ軸が大きく移動することがあるため、本実施の形態では特異点から予めパラメータで設定された範囲内の工具方向ベクトルが指令された場合には、その時点で圧縮不可と判定するものとする。以降では特異点でない場合について説明する。
【００５１】  式（１）〜（３）を式変換すると、圧縮後回転軸移動指令Ｔ’（ｊ）の始点での各回転軸角度での三角関数は、下記の式（７）〜（１０）で表される。
【００５２】
【数７】
2016021076.tif 000009
【００５３】
【数８】
2016021076.tif 000010
【００５４】
【数９】
2016021076.tif 000011
【００５５】
【数１０】
2016021076.tif 000012
【００５６】  また、式（４），（５）から以下の式（１１）が導出される。
【００５７】
【数１１】
2016021076.tif 000013
【００５８】  Δｂ及びΔｃが無視できるほどに十分に小さいとすると、式（６），（１１）を式展開して下記の式（１２），（１３）を導くことができる。なお、Δｂ及びΔｃが大きい場合には、例えば、予めパラメータで設定された工作機械の回転軸最高送り速度の補間周期あたりの移動量よりもΔｂ及びΔｃの合成移動量が大きい場合には圧縮不可であると判定してもよい。
【００５９】
【数１２】
2016021076.tif 000014
【００６０】
【数１３】
2016021076.tif 000015
【００６１】  式（１２），（１３）に式（７）〜（１０）を代入すると、下記の式（１４），（１５）が得られる。
【００６２】
【数１４】
2016021076.tif 000016
【００６３】
【数１５】
2016021076.tif 000017
【００６４】  圧縮後回転軸移動指令Ｔ’（ｊ）の始点でのＢ軸角度ｂｊ−１及びＣ軸角度ｃｊ−１は前回の圧縮処理で計算済みのため、ｉ番目の回転軸移動指令Ｔ（ｉ）が指令されたときのｂｉ，ｃｉは下記の式（１６），（１７）で算出することができる。
【００６５】
【数１６】
2016021076.tif 000018
【００６６】
【数１７】
2016021076.tif 000019
【００６７】  式（１６），（１７）で表されるｂｉ、ｃｉが回転軸の第１の機械経路Ｍ（ｉ）となる。
【００６８】  次に、工具先端の指令経路Ｎ（ｉ）に直線軸の位置（Ｘｔｉ，Ｙｔｉ，Ｚｔｉ）が指令されたときの直線軸Ｘ軸，Ｙ軸，Ｚ軸の機械経路Ｍ（ｉ）を近似計算する。
【００６９】  図６は、機械経路を計算するための座標系を示す図である。本実施の形態では、図６に示す座標系にて説明を行う。すなわち、予め設定されている機械座標系ΣＭからベクトルＷ１（Ｘｗ１，Ｙｗ１，Ｚｗ１）だけオフセットした場所にＣ軸の回転中心Ｃｏが存在し、回転中心ＣｏからベクトルＷ２（Ｘｗ２，Ｙｗ２，Ｚｗ２）だけオフセットした場所にワーク座標系ΣＷが設定されている場合を想定している。ここで、ベクトルＷ１，Ｗ２は、予めパラメータで設定されている値である。なお、ワーク座標系ΣＷは空間に固定された座標系とし、Ｃ軸が回転してもワーク座標系ΣＷは回転しないものとする。一方、テーブル１に固定され、Ｃ軸の回転に連動して回転する座標系をＣ軸連動座標系ΣＷ＊とする。また、加工プログラム１０により指令された指令経路Ｎ（ｉ）はＣ軸連動座標系ΣＷ＊で工具先端点Ｔｐの経路を指令しているものとし、工具先端点Ｔｐから制御点Ｐまでの距離を工具長Ｈとする。
【００７０】  Ｃ軸連動座標系ΣＷ＊で指令された工具先端点をＴｐｗ（Ｘｔｗｉ，Ｙｔｗｉ，Ｚｔｗｉ）とすると、機械座標系ΣＭでの工具先端点位置Ｔｐｍ（Ｘｔｍｉ，Ｙｔｍｉ，Ｚｔｍｉ）は下記の式（１８）〜（２０）で表される。
【００７１】
【数１８】
2016021076.tif 000020
【００７２】
【数１９】
2016021076.tif 000021
【００７３】
【数２０】
2016021076.tif 000022
【００７４】  ここで、式（７）〜（１０）の「ｊ−１」を「ｉ」に置き換えると、ｉ番目の回転軸移動指令Ｔ（ｉ）が指令されたときのｂｉ，ｃｉの三角関数は、下記の式（２１）〜（２４）で表すことができる。
【００７５】
【数２１】
2016021076.tif 000023
【００７６】
【数２２】
2016021076.tif 000024
【００７７】
【数２３】
2016021076.tif 000025
【００７８】
【数２４】
2016021076.tif 000026
【００７９】  式（２３），（２４）を式（１８）〜（２０）に代入すると、下記の式（２５）〜（２７）が得られる。
【００８０】
【数２５】
2016021076.tif 000027
【００８１】
【数２６】
2016021076.tif 000028
【００８２】
【数２７】
2016021076.tif 000029
【００８３】  式（２５）〜（２７）で表される機械座標系ΣＭにおける工具先端点位置Ｔｐｍ（Ｘｔｍｉ，Ｙｔｍｉ，Ｚｔｍｉ）に工具先端点Ｔｐが移動するためには、制御点Ｐ（Ｘｍｉ，Ｙｍｉ，Ｚｍｉ）を以下の式（２８）〜（３０）で表される位置に移動する必要がある。
【００８４】
【数２８】
2016021076.tif 000030
【００８５】
【数２９】
2016021076.tif 000031
【００８６】
【数３０】
2016021076.tif 000032
【００８７】  さらに、式（２１），（２２）を式（２８）〜（３０）に代入すると、下記の式（３１）〜（３３）が得られる。
【００８８】
【数３１】
2016021076.tif 000033
【００８９】
【数３２】
2016021076.tif 000034
【００９０】
【数３３】
2016021076.tif 000035
【００９１】  式（３１）〜（３３）で表されるＸｍｉ、Ｙｍｉ、Ｚｍｉが、直線軸の第１の機械経路Ｍ（ｉ）となる。ここで、回転軸の第１の機械経路Ｍ（ｉ）を導出する式（１４）〜（１７）、直線軸の第１の機械経路Ｍ（ｉ）を導出する式（２５）〜（２７）及び式（３１）〜（３３）から明らかなように、回転軸及び直線軸の第１の機械経路Ｍ（ｉ）の計算には三角関数及び逆三角関数を用いることなく、Ｓ５において第１機械経路計算部１２が指令毎に√（１−（Ｋｉ）２）を計算し、Ｓ１０において圧縮可否判定部１３が圧縮後経路毎に√（１−（Ｋｊ）２）を計算し、計算結果を保存しておくことで、回転軸及び直線軸の第１の機械経路Ｍ（ｉ）を計算することができる。
【００９２】  なお、直線軸の第１の機械経路Ｍ（ｉ）を導出する式（２５）〜（２７）及び式（３１）〜（３３）では、加工プログラム１０により指令された指令経路Ｎ（ｉ）がＣ軸の回転に連動して回転する座標系をＣ軸連動座標系ΣＷ＊で指令された場合について説明したが、指令経路Ｎ（ｉ）をＣ軸に連動して回転しないワーク座標系ΣＷで指令してもよい。ワーク座標系ΣＷで指令した場合には、式（２５）〜（２７）に代えて下記の式（３４）〜（３６）を用いてワーク座標系ΣＷで指令された工具先端点Ｔｐｗ（Ｘｔｗｉ，Ｙｔｗｉ，Ｚｔｗｉ）を機械座標系ΣＭでの工具先端点位置Ｔｐｍ（Ｘｔｍｉ，Ｙｔｍｉ，Ｚｔｍｉ）に座標変換し、式（３１）〜（３３）により直線軸の第１の機械経路Ｍ（ｉ）を導出すればよい。
【００９３】
【数３４】
2016021076.tif 000036
【００９４】
【数３５】
2016021076.tif 000037
【００９５】
【数３６】
2016021076.tif 000038
【００９６】  次に、回転軸移動指令Ｔ（ｉ）が回転軸角度（ｂｉ，ｃｉ）で指令された場合について説明する。回転軸移動指令Ｔ（ｉ）が工具方向ベクトルで指令された場合には、回転軸角度（ｂｉ，ｃｉ）を計算する必要があるが、回転軸移動指令Ｔ（ｉ）により回転軸角度（ｂｉ，ｃｉ）が加工プログラム１０から直接に指令されるため、回転軸の第１の機械経路Ｍ（ｉ）は加工プログラム１０により指令された回転軸角度（ｂｉ，ｃｉ）となる。
【００９７】  圧縮後回転軸移動指令Ｔ’（ｊ）の始点におけるＢ軸角度及びＣ軸角度、すなわち、圧縮後回転軸移動指令Ｔ’（ｊ−１）におけるＢ軸角度をｂｊ−１とし、Ｃ軸角度をｃｊ−１とし、ｂｊ−１，ｃｊ−１からｉ番目の指令の回転軸角度（ｂｉ，ｃｉ）までの回転角度量をΔｂ，Δｃとする。ここで、ｂｉ＝ｂｊ−１＋Δｂ、ｃｉ＝ｃｊ−１＋Δｃである。回転角度量Δｂ，Δｃが無視できる程度に十分に小さいとすると、ｉ番目の指令の回転軸角度（ｂｉ，ｃｉ）の三角関数は式（３７）〜（４０）で表すことができる。なお、回転角度量Δｂ，Δｃが大きい場合、例えば、予めパラメータで設定された工作機械の回転軸最高送り速度の補間周期あたりの移動量よりもΔｂ，Δｃの合成移動量が大きい場合には、圧縮不可と判定してもよい。
【００９８】
【数３７】
2016021076.tif 000039
【００９９】
【数３８】
2016021076.tif 000040
【０１００】
【数３９】
2016021076.tif 000041
【０１０１】
【数４０】
2016021076.tif 000042
【０１０２】  式（３７）〜（４０）より、Ｓ１０において圧縮可否判定部１３が圧縮後経路毎に各回転軸（Ｂ軸及びＣ軸）の回転軸角度での三角関数の値を計算し、計算結果を保存しておけば、加工プログラム１０により指令された回転軸角度（ｂｉ，ｃｉ）の三角関数の値は、加工プログラム１０の指令毎に三角関数を用いることなく、近似式で計算することができる。
【０１０３】  式（３７）〜（４０）により計算した三角関数の値を用いて、式（１８）〜（２０）及び式（２８）〜（３０）により直線軸の第１の機械経路Ｍ（ｉ）であるＸｍｉ、Ｙｍｉ、Ｚｍｉを計算すると、加工プログラム１０の指令毎に三角関数を用いることなく直線軸の第１の機械経路Ｍ（ｉ）を計算することができる。
【０１０４】  なお、加工プログラム１０により指令された指令経路Ｎ（ｉ）がＣ軸の回転に連動して回転する座標系をＣ軸連動座標系ΣＷ＊で指令された場合について説明したが、指令経路Ｎ（ｉ）をＣ軸に連動して回転しないワーク座標系ΣＷで指令してもよい。ワーク座標系ΣＷで指令した場合には、式（１８）〜（２０）に代えて式（３４）〜（３６）を用いてワーク座標系ΣＷにおいて指令された工具先端点Ｔｐｗ（Ｘｔｗｉ，Ｙｔｗｉ，Ｚｔｗｉ）を機械座標系ΣＭにおいて工具先端点位置Ｔｐｍ（Ｘｔｍｉ，Ｙｔｍｉ，Ｚｔｍｉ）に座標変換し、式（３７）〜（４０）により計算した三角関数の値を用いて式（２８）〜（３０）により直線軸の第１の機械経路Ｍ（ｉ）を求めればよい。
【０１０５】  次に、Ｓ８において、圧縮可否判定部１３が行う圧縮の可否判定の方法について説明する。Ｓ８において、圧縮可否判定部１３は、Ｓ５で計算した第１の機械経路Ｍ（ｉ）がコーナか否かを判定することで、ｊ番目の圧縮経路である圧縮後指令経路Ｎ’（ｊ）及び圧縮後回転軸移動指令Ｔ’（ｊ）と、ｉ番目の指令である指令経路Ｎ（ｉ）及び回転軸移動指令Ｔ（ｉ）とが圧縮可能か否かを判定する。すなわち、第１の機械経路Ｍ（ｉ）がコーナの場合には圧縮不可と判定し、圧縮を一時的に中断する。
【０１０６】  数値制御装置では、コーナのような経路の方向が急峻に変化する形状では自動的に工具の送り速度をクランプし、工作機械が振動することを防止している。そこで、本実施の形態では、第１の機械経路Ｍ（ｉ）及び圧縮後機械経路Ｍ’（ｊ）におけるクランプ速度を計算し、第１の機械経路Ｍ（ｉ）及び圧縮後機械経路Ｍ’（ｊ）におけるクランプ速度が加工プログラム１０により指令された指令送り速度よりも小さい場合にはコーナであると判定し、圧縮を一時的に中断する。
【０１０７】  図７は、Ｓ８における圧縮可否を判定する処理の一例を示すフローチャートである。図７において、まず、処理をスタートし、ｉ番目の指令経路Ｎ（ｉ）及び回転軸移動指令Ｔ（ｉ）に対応する第１の機械経路Ｍ（ｉ）のクランプ速度Ｖｃ（ｉ）を計算する（Ｓ１１）。
【０１０８】  図８は、クランプ速度の計算方法を示す図である。図８に示すように、機械経路Ｍ（ｉ−１）と機械経路Ｍ（ｉ）とのなす角がΘ（ｉ）であり、機械経路Ｍ（ｉ−１）と機械経路Ｍ（ｉ）とのつなぎ目を単位時間あたりの送り速度Ｆｃ（ｉ）で通過するときに単位時間あたりの加速度Ａｃ（ｉ）が発生する場合には、加速度Ａｃ（ｉ）は下記の式（４１）で求めることができる。
【０１０９】
【数４１】
2016021076.tif 000043
【０１１０】  したがって、機械経路Ｍ（ｉ−１）と機械経路Ｍ（ｉ）のつなぎ目で発生する単位時間あたりの加速度が許容加速度Ａｏとなるクランプ速度Ｆｏ（ｉ）は下記の式（４２）で求めることができる。
【０１１１】
【数４２】
2016021076.tif 000044
【０１１２】  次に、ｉ番目の指令経路Ｎ（ｉ）及び回転軸移動指令Ｔ（ｉ）に対応する第１の機械経路Ｍ（ｉ）をｊ番目の圧縮後機械経路Ｍ’（ｊ）に暫定的に圧縮した場合の暫定圧縮後機械経路Ｍ’’（ｊ）を作成する。具体的には、暫定圧縮後機械経路Ｍ’’（ｊ）の始点に圧縮後機械経路Ｍ’（ｊ）の始点を設定し、暫定圧縮後機械経路Ｍ’’（ｊ）の終点に機械経路Ｍ（ｉ）の終点を設定する（Ｓ１２）。
【０１１３】  次に、ｊ番目の暫定圧縮後機械経路Ｍ’’（ｊ）の圧縮クランプ速度Ｖｃ’（ｊ）を計算する（Ｓ１３）。図９は、圧縮後経路におけるクランプ速度の計算方法を示す図である。図９に示すように、圧縮後機械経路Ｍ’（ｊ−１）と暫定圧縮後機械経路Ｍ’’（ｊ）とのなす角がΘ’（ｊ）であり、圧縮後機械経路Ｍ’（ｊ−１）と暫定圧縮後機械経路Ｍ’’（ｊ）とのつなぎ目を単位時間あたりの送り速度Ｆｃ’（ｊ）で通過するときに単位時間あたりの加速度Ａｃ’（ｊ）が発生する場合について説明する。このとき、加速度Ａｃ’（ｊ）は下記の式（４３）で求めることができる。
【０１１４】
【数４３】
2016021076.tif 000045
【０１１５】  したがって、圧縮後機械経路Ｍ’（ｊ−１）と暫定圧縮後機械経路Ｍ’’（ｊ）とのつなぎ目で発生する単位時間あたりの加速度が許容加速度Ａｏとなる圧縮クランプ速度Ｆｏ’（ｊ）は、下記の式（４４）で求めることができる。
【０１１６】
【数４４】
2016021076.tif 000046
【０１１７】  次に、Ｓ１１及びＳ１３で計算したクランプ速度に基づいて、圧縮によりクランプ速度が変化したか否かを判定し、圧縮によりクランプ速度が変化しない場合には圧縮可能と判定する（Ｓ１４）。一方、圧縮によりクランプ速度が変化する場合には圧縮不可と判定する。具体的には、クランプ速度Ｆｏ（ｉ）が加工プログラム１０により指令された指令送り速度よりも小さい場合、または、圧縮クランプ速度Ｆｏ’（ｊ）が加工プログラム１０により指令された指令送り速度よりも小さい場合には圧縮不可と判定し、Ｓ１４においてＮｏに分岐して圧縮可否判定部１３が指令経路番号ｉをデクリメントし、圧縮後経路番号ｊをインクリメントして（Ｓ１０）、補間処理部１５へと移る。
【０１１８】  図１０は、コーナ形状を圧縮した場合の圧縮後形状を示す図である。すなわち、機械経路Ｍ（ｉ）の経路方向が急峻に変化するコーナ形状ではクランプ速度Ｆｏ（ｉ）が小さくなり圧縮不可とすることで、図１０に示すように、圧縮によりコーナを潰した形状となりクランプ速度が変化しない範囲で圧縮を行う。また、図９に示すように円弧形状を圧縮することで、圧縮クランプ速度Ｆｏ’（ｊ）が低くなり、不要な減速が発生しない範囲で圧縮を行う。また、クランプ速度Ｆｏ（ｉ）が加工プログラム１０により指令された指令送り速度よりも小さい場合には、クランプ速度Ｆｏ（ｉ）を新たな指令送り速度とし、補間処理部１５へと出力する。
【０１１９】  一方、クランプ速度Ｆｏ（ｉ）が加工プログラム１０により指令された指令送り速度よりも大きく、かつ、圧縮クランプ速度Ｆｏ’（ｊ）が加工プログラム１０により指令された指令送り速度よりも大きい場合には圧縮可能と判定し、Ｓ１４においてＹｅｓに分岐して圧縮処理部１４へと移る。
【０１２０】  なお、ここまではクランプ速度の変化による圧縮可否判定について説明したが、経路長に基づいて圧縮可否を判定してもよい。すなわち、ｊ番目の圧縮後指令経路Ｎ’（ｊ）及び圧縮後回転軸移動指令Ｔ’（ｊ）に圧縮された指令経路Ｎ（ｉ）及び回転軸移動指令Ｔ（ｊ）に対応する機械経路Ｍ（ｉ）の経路長の総和が、予めパラメータで設定された工作機械の最高送り速度における補間周期あたりの移動量よりも大きい場合には圧縮不可と判定してもよい。
【０１２１】  また、ｊ番目の圧縮後指令経路Ｎ’（ｊ）に圧縮された指令経路Ｎ（ｉ）の経路長の総和が加工プログラム１０により指令された指令送り速度における補間周期あたりの移動量よりも大きい場合には圧縮不可と判定してもよい。
【０１２２】  補間処理部１５は、圧縮後指令経路Ｎ’（ｊ）及び圧縮後回転軸移動指令Ｔ’（ｊ）を指令送り速度における補間周期あたりの移動量毎に補間して補間点（Ｘｃ，Ｙｃ，Ｚｃ，Ｂｃ，Ｃｃ）を求める。単位時間あたりの指令送り速度をＦとし、補間周期をｄｔとすると、指令送り速度における補間周期あたりの移動量はＦｄｔとなる。
【０１２３】  図１１は、補間点の計算方法を示す図である。まず、Ｃ軸連動座標系ΣＷ＊上の工具先端の補間点ｐｔ（Ｘｃ，Ｙｃ，Ｚｃ）を図１１に基づいて求める。ここで、圧縮後指令経路Ｎ’（ｊ）の経路長をＬ’（ｊ）とする。前回の工具先端の補間点をｐｔｏとすると、ｐｔｏからＦｄｔだけ進んだ点が今回の工具先端の補間点ｐｔ（Ｘｃ，Ｙｃ，Ｚｃ）となる。
【０１２４】  まず、補間点ｐｔのある圧縮後指令経路Ｎ’（ｊ）の圧縮後経路番号ｍを求める。ここでは、簡単のために前回の工具先端の補間点ｐｔｏが圧縮後指令経路Ｎ’（ｊ）の始点にあるものとする。まず、移動量Ｆｄｔが圧縮後指令経路Ｎ’（ｊ）の経路長Ｌ’（ｊ）よりも大きいか否かを判定する。移動量Ｆｄｔが経路長Ｌ’（ｊ）よりも小さい場合には、補間点ｐｔは圧縮後指令経路Ｎ’（ｊ）にある。一方、移動量Ｆｄｔが経路長Ｌ’（ｊ）よりも大きい場合には、移動量Ｆｄｔから経路長Ｌ’（ｊ）を差し引いた移動量Ｆｄｔ’と次の圧縮後指令経路Ｎ’（ｊ＋１）の経路長Ｌ’（ｊ＋１）との大小比較を行う。そして、差し引いた移動量Ｆｄｔ’の方が小さい場合には、補間点ｐｔは圧縮後指令経路Ｎ’（ｊ＋１）にあることになる。
【０１２５】  上記を繰り返すことで、補間点ｐｔのある圧縮後指令経路Ｎ’（ｍ）を求めることができる。以下、補間点ｐｔがある圧縮後指令経路をＮ’（ｍ）とする。また、上記の例では前回の補間点ｐｔｏが圧縮後指令経路Ｎ’（ｊ）の始点にあるものとして算出したが、前回の補間点ｐｔｏが圧縮後指令経路Ｎ’（ｊ）の始点にない場合には、改めて前回の補間点ｐｔｏがある圧縮後指令経路Ｎ’（ｊ）の残り経路長である前回の補間点ｐｔｏから圧縮後指令経路Ｎ’（ｊ）の終点までの長さをＬ’（ｊ）とすると、上記と同様の手順にて補間点ｐｔがある工具移動経路Ｎｔ’（ｍ）を求めることができる。
【０１２６】  次に、補間点ｐｔ（Ｘｃ，Ｙｃ，Ｚｃ）を求める。圧縮後指令経路Ｎ’（ｍ）の始点を（Ｘｓ’（ｍ），Ｙｓ’（ｍ），Ｚｓ’（ｍ））とし、終点を（Ｘｅ’（ｍ），Ｙｅ’（ｍ），Ｚｅ’（ｍ））とすると、補間点ｐｔ（Ｘｃ，Ｙｃ，Ｚｃ）は下記の式（４５）〜（４７）のように、圧縮後指令経路Ｎ’（ｍ）の始点と移動量Ｆｄｔ’による圧縮後指令経路Ｎ’（ｍ）の移動量との和で表される。
【０１２７】
【数４５】
2016021076.tif 000047
【０１２８】
【数４６】
2016021076.tif 000048
【０１２９】
【数４７】
2016021076.tif 000049
【０１３０】  次に、工具先端の補間点ｐｔの圧縮後指令経路Ｎ’（ｍ）での移動量と同じ分配比率で、圧縮後回転軸移動指令Ｔ’（ｍ）上の回転軸の補間点（Ｂｃ、Ｃｃ）を求める。すなわち、下記の式（４８），（４９）のように、圧縮後指令経路Ｎ’（ｍ）の経路長Ｌ’（ｍ）に対する移動量Ｆｄｔ’の比率分だけ、圧縮後回転軸移動指令Ｔ’（ｍ）上を移動した点を回転軸の補間点（Ｂｃ，Ｃｃ）とする。
【０１３１】
【数４８】
2016021076.tif 000050
【０１３２】
【数４９】
2016021076.tif 000051
【０１３３】  ここで、圧縮後回転軸移動指令Ｔ’（ｍ）の始点を（Ｂｓ’（ｍ），Ｃｓ’（ｍ））とし、終点を（Ｂｅ’（ｍ），Ｃｅ’（ｍ））としている。
【０１３４】  なお、加工プログラム１０により指令された指令経路Ｎ（ｉ）がＣ軸に連動しない座標系ΣＷで指令されている場合には、圧縮後指令経路Ｎ’（ｊ）もΣＷでの経路となるが、その場合には、圧縮後指令経路Ｎ’（ｊ）をＷ２だけオフセットし、下記の式（５０）に示す回転行列Ｒｗをかけ、さらに−Ｗ２に回転行列Ｒｗをかけた分だけオフセットすれば、Ｃ軸連動座標系ΣＷ＊での経路に変換することができる。
【０１３５】
【数５０】
2016021076.tif 000052
【０１３６】  このようにして、補間点（Ｘｃ，Ｙｃ，Ｚｃ，Ｂｃ，Ｃｃ）を計算し、第２機械経路計算部１６へ出力する。
【０１３７】  第２機械経路計算部１６は、補間処理部１５から出力された直線軸の補間点（Ｘｃ，Ｙｃ，Ｚｃ）を機械座標系ΣＭにおける制御点Ｐの補間点（Ｘｃｍ，Ｙｃｍ，Ｚｃｍ）に座標変換する。
【０１３８】  第１機械経路計算部１２と同様に、図６に示す座標系にて説明を行う。Ｃ軸連動座標系ΣＷ＊上の工具先端の補間点（Ｘｃ，Ｙｃ，Ｚｃ）から、機械座標系ΣＭでの工具先端の補間点（Ｘｃｔｍ，Ｙｃｔｍ，Ｚｃｔｍ）への座標変換は下記の式（５１）〜（５３）で表される。
【０１３９】
【数５１】
2016021076.tif 000053
【０１４０】
【数５２】
2016021076.tif 000054
【０１４１】
【数５３】
2016021076.tif 000055
【０１４２】  式（５１）〜（５３）で表される機械座標系ΣＭでの工具先端の補間点（Ｘｃｔｍ，Ｙｃｔｍ，Ｚｃｔｍ）に工具先端点Ｔｐが移動するためには、制御点Ｐの補間点（Ｘｃｍ，Ｙｃｍ，Ｚｃｍ）を下記の式（５４）〜（５６）で表される位置に移動する必要がある。
【０１４３】
【数５４】
2016021076.tif 000056
【０１４４】
【数５５】
2016021076.tif 000057
【０１４５】
【数５６】
2016021076.tif 000058
【０１４６】  なお、機械座標系ΣＭでの回転軸の補間点（Ｂｃｍ，Ｃｃｍ）は、補間処理部１５から出力された回転軸の補間点（Ｂｃ，Ｃｃ）と等しい。
【０１４７】  上記説明したように、機械座標系ΣＭでの補間点（Ｘｃｍ，Ｙｃｍ，Ｚｃｍ，Ｂｃｍ，Ｃｃｍ）が求まり、この値を、各軸を駆動するサーボモータへの指令値とし、出力する。
【０１４８】  以上説明した本実施の形態を比較例と対比しつつ以下に説明する。図１２〜１５は、比較例の指令経路と機械経路とを示す図である。例えば、図１２のような工具姿勢を滑らかに変化させた微小線分加工プログラムを用いて工具側面で加工を行う場合、指令経路は一直線となるが、機械経路は曲線形状を描く。ここで、指令経路にのみ着目して圧縮を行うと、加工開始点から加工終了点まで指令経路は一直線上にあるため、加工開始点から加工終了点までの微小経路が全て圧縮されてしまう。そのため、加工開始点から加工終了点までの工具姿勢の情報が圧縮により失われてしまい、その結果、図１３のように工具姿勢が変化せず、加工物の加工後形状が圧縮により変化してしまう（削り残し及び削り過ぎが生じる）。
【０１４９】  更に、図１４に示すように、指令経路を加工物鉛直方向にずらして加工面に沿うように工具先端を移動させて加工を行う場合、工具先端が加工物鉛直方向に上がるにつれて指令経路の曲率は大きくなる。そのため、図１５（ａ），（ｂ），（ｃ）に示すように指令経路毎に圧縮できる経路数が異なり、圧縮後の機械経路がなす角がばらついてしまう。
【０１５０】  数値制御装置では、経路方向が大きく異なる部分（コーナ形状部分）では機械振動を防止するために自動的に機械の送り速度を落として加工を行うため、指令経路毎に機械経路のなす角がばらつくと機械の送り速度も指令経路毎に変化し、加工面に傷が生じる。なお、機械経路のなす角は、工具先端が加工物鉛直方向に上がるにつれて大きくなるわけではないため、特定の指令経路でのみ機械の送り速度が大きく減速することも起こり得る。
【０１５１】  圧縮による加工後形状の変化及び加工面の傷の発生を防止するためには、工具姿勢の影響も考慮して機械経路でも圧縮の可否判定を行う必要がある。ここで、単純に機械経路を考慮して特許文献１の圧縮方法を適用した場合に考えられる構成を図１６に示す。
【０１５２】  図１６は、機械経路を考慮して圧縮の可否判定を行う数値制御装置の比較例の構成の一例を示すブロック図である。図１６の構成では、加工プログラム読み取り部により加工プログラムを１経路ずつ読み取り、機械経路計算部により加工プログラムから指令された指令経路毎に座標変換を行い、経路傾きによる圧縮可否判定部により機械経路の傾きの変化量がしきい値以下であれば圧縮可能と判定し、圧縮可能と判定した場合にはその指令経路を圧縮して、加工プログラム読み取り部にて次の経路を読み取って同様の処理を行う構成である。なお、経路傾きによる圧縮可否判定部により圧縮不可と判定された場合は経路の圧縮を終了し、補間処理へと移る。
【０１５３】  ここで、図１６に示す構成では、指令経路から機械経路への変換を指令経路毎に行っているが、指令経路から機械経路への座標変換には三角関数または逆三角関数を用いるために計算負荷が重い。そのため、指令経路毎に機械経路を計算すると処理負荷が増大し、一定時間内に処理できる経路数が減少してしまうため、圧縮により経路長を長くしても、工具の送り速度を高速化することができなくなってしまう。
【０１５４】  そこで、本実施の形態にて説明したように、工具先端点制御で経路長の短い複数の指令経路を含む加工プログラムを用いた場合においても、加工精度を低下させることなく、従来よりも加工の高速化を図ることが可能な数値制御装置を得ることを目的とし、連続した複数の指令経路で構成された加工プログラム１０に従って被加工物３への工具２の工具姿勢を変更することが可能な回転自由度を有する工作機械を制御し、被加工物３を工具２により加工する数値制御装置１００において、加工プログラム１０により指令された被加工物３への工具２の送り速度指令、工具先端の指令経路、及び工具姿勢を決定する回転軸移動指令を読み取る加工プログラム読み取り部１１と、被加工物３への工具先端の指令経路及び回転軸移動指令を近似座標変換することにより、工作機械の第１の機械経路を近似計算する第１機械経路計算部１２と、第１の機械経路がコーナ形状か否かを判定することにより、複数の指令経路及び複数の回転軸移動指令を、１つの指令経路及び１つの回転軸移動指令に圧縮可能か否かを判定する圧縮可否判定部１３と、圧縮可否判定部１３により圧縮可能と判定された場合には、複数の指令経路及び複数の回転軸移動指令を１つの指令経路及び１つの回転軸移動指令に圧縮して圧縮後指令経路及び圧縮後回転軸移動指令を作成する圧縮処理部１４と、圧縮後指令経路及び圧縮後回転軸移動指令を補間し、補間周期毎に被加工物３への工具先端の移動経路及び回転軸角度を計算する補間処理部１５と、補間周期毎の被加工物３への工具先端の移動経路及び回転軸角度を座標変換することにより工作機械の第２の機械経路を計算する第２機械経路計算部１６とを備える構成とする。
【０１５５】  このような構成の数値制御装置とすることで、各軸を駆動するサーボモータの移動経路である機械経路を指令経路毎に近似計算し、近似した第１の機械経路に基づいて圧縮の可否判定を行うため、圧縮による加工形状の変化及び加工面の傷の発生を防止しつつ、従来よりも高速な加工を行うことができる。なお、近似した第１の機械経路は圧縮の可否判定にのみ使用し、各軸を駆動するサーボモータへの指令は圧縮後経路上の補間点毎に座標変換を行った第２の機械経路とするため、座標変換の近似による実際の機械経路の誤差は発生しない。
【０１５６】  なお、圧縮可否判定部１３は、第１の機械経路に基づいてクランプ速度を計算し、クランプ速度が加工プログラム１０により指令された被加工物３への工具２の送り速度よりも小さい場合にはコーナ形状であり圧縮不可と判定することが好ましい。機械経路に基づいたクランプ速度により圧縮の判定を行うことによりコーナ部では圧縮不可と判定され、圧縮によるクランプ速度のばらつきを防止することができる。
【０１５７】  なお、圧縮可否判定部１３は、１つの経路に圧縮した複数の指令経路及び複数の回転軸移動指令に対応する第１の機械経路の合成移動量の総和が、予め設定された補間周期毎の移動量よりも大きい場合には圧縮不可と判定することが好ましい。機械経路の合成移動量が許容速度を超えた場合には圧縮する必要がないため、圧縮不可とすることができる。
【０１５８】  なお、圧縮可否判定部１３は、１つの経路に圧縮した複数の指令経路の合成移動量の総和が、加工プログラム１０により指令された被加工物３への工具２の送り速度における補間周期毎の移動量よりも大きい場合には圧縮不可と判定することが好ましい。先端点の移動量が指令送り速度を超えた場合には圧縮する必要がないため、圧縮不可とすることができる。
【０１５９】  以上説明したように、本実施の形態によれば、第１機械経路計算部１２にて機械経路を近似計算し、算出した機械経路でのクランプ速度が変化しない範囲で圧縮を行うため、先端点制御中においても圧縮によりクランプ速度がばらつき加工面に傷が生じることを防止することができる。また、工具先端の経路のみならず、機械経路での圧縮可否判定も行うため、工具先端の経路または工具姿勢が急峻に変化した点では圧縮不可とし、圧縮により加工形状が変化することも防止することができる。
【０１６０】  また、機械経路での移動量が予め設定された最高送り速度以上になる場合、または、工具先端の移動量が加工プログラムにより指令された指令送り速度以上になる場合には、圧縮不可とするため、必要以上に圧縮することがなく、圧縮により加工形状が変化し、削り残し及び削り過ぎが発生することを防止することができる。
【０１６１】  また、指令毎に計算する機械経路は近似式により計算するため、処理負荷を増大させることなく従来よりも高速な加工を実現することができる。
【０１６２】  なお、近似計算した機械経路は圧縮可否判定にのみ使用し、補間には別途座標変換を行うため、補間点には近似誤差は発生しない。
【符号の説明】
【０１６３】  １  テーブル、２  工具、３  被加工物、１０  加工プログラム、１１  加工プログラム読み取り部、１２  第１機械経路計算部、１３  圧縮可否判定部、１４  圧縮処理部、１５  補間処理部、１６  第２機械経路計算部。
【図１】
2016021076.tif 000059
【図２】
2016021076.tif 000060
【図３】
2016021076.tif 000061
【図４】
2016021076.tif 000062
【図５】
2016021076.tif 000063
【図６】
2016021076.tif 000064
【図７】
2016021076.tif 000065
【図８】
2016021076.tif 000066
【図９】
2016021076.tif 000067
【図１０】
2016021076.tif 000068
【図１１】
2016021076.tif 000069
【図１２】
2016021076.tif 000070
【図１３】
2016021076.tif 000071
【図１４】
2016021076.tif 000072
【図１５】
2016021076.tif 000073
【図１６】
2016021076.tif 000074
【手続補正書】
【提出日】平成28年8月24日(2016.8.24)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
連続した複数の指令経路で構成された加工プログラムに従って被加工物への工具の工具姿勢を変更することが可能な回転自由度を有する工作機械を制御し、前記被加工物を前記工具により加工する数値制御装置において、
前記加工プログラムにより指令された前記被加工物への工具の送り速度指令、工具先端の指令経路、及び工具姿勢を決定する回転軸移動指令を読み取る加工プログラム読み取り部と、
前記被加工物への前記工具先端の指令経路及び前記回転軸移動指令を近似座標変換することにより、前記工作機械の第１の機械経路を近似計算する第１機械経路計算部と、
前記第１の機械経路がコーナ形状か否かを判定することにより、前記複数の指令経路及び前記複数の回転軸移動指令を、１つの指令経路及び１つの回転軸移動指令に圧縮可能か否かを判定する圧縮可否判定部と、
前記圧縮可否判定部により圧縮可能と判定された場合には、前記複数の指令経路及び前記複数の回転軸移動指令を１つの指令経路及び１つの回転軸移動指令に圧縮して圧縮後指令経路及び圧縮後回転軸移動指令を作成する圧縮処理部と、
前記圧縮後指令経路及び前記圧縮後回転軸移動指令を補間し、補間周期毎に前記被加工物への前記工具先端の移動経路及び回転軸角度を計算する補間処理部と、
前記補間周期毎の前記被加工物への前記工具先端の移動経路及び前記回転軸角度を座標変換することにより前記工作機械の第２の機械経路を計算する第２機械経路計算部とを備え、
前記圧縮可否判定部は、前記第１の機械経路に基づいてクランプ速度を計算し、前記クランプ速度が前記加工プログラムにより指令された前記被加工物への前記工具の送り速度よりも小さい場合にはコーナ形状であり圧縮不可と判定することを特徴とする数値制御装置。
【請求項２】
連続した複数の指令経路で構成された加工プログラムに従って被加工物への工具の工具姿勢を変更することが可能な回転自由度を有する工作機械を制御し、前記被加工物を前記工具により加工する数値制御装置において、
前記加工プログラムにより指令された前記被加工物への工具の送り速度指令、工具先端の指令経路、及び工具姿勢を決定する回転軸移動指令を読み取る加工プログラム読み取り部と、
前記被加工物への前記工具先端の指令経路及び前記回転軸移動指令を近似座標変換することにより、前記工作機械の第１の機械経路を近似計算する第１機械経路計算部と、
前記第１の機械経路がコーナ形状か否かを判定することにより、前記複数の指令経路及び前記複数の回転軸移動指令を、１つの指令経路及び１つの回転軸移動指令に圧縮可能か否かを判定する圧縮可否判定部と、
前記圧縮可否判定部により圧縮可能と判定された場合には、前記複数の指令経路及び前記複数の回転軸移動指令を１つの指令経路及び１つの回転軸移動指令に圧縮して圧縮後指令経路及び圧縮後回転軸移動指令を作成する圧縮処理部と、
前記圧縮後指令経路及び前記圧縮後回転軸移動指令を補間し、補間周期毎に前記被加工物への前記工具先端の移動経路及び回転軸角度を計算する補間処理部と、
前記補間周期毎の前記被加工物への前記工具先端の移動経路及び前記回転軸角度を座標変換することにより前記工作機械の第２の機械経路を計算する第２機械経路計算部とを備え、
前記圧縮可否判定部は、１つの経路に圧縮した前記複数の指令経路及び前記複数の回転軸移動指令に対応する前記第１の機械経路の合成移動量の総和が、予め設定された前記補間周期毎の移動量よりも大きい場合には圧縮不可と判定することを特徴とする数値制御装置。
【請求項３】
連続した複数の指令経路で構成された加工プログラムに従って被加工物への工具の工具姿勢を変更することが可能な回転自由度を有する工作機械を制御し、前記被加工物を前記工具により加工する数値制御装置において、
前記加工プログラムにより指令された前記被加工物への工具の送り速度指令、工具先端の指令経路、及び工具姿勢を決定する回転軸移動指令を読み取る加工プログラム読み取り部と、
前記被加工物への前記工具先端の指令経路及び前記回転軸移動指令を近似座標変換することにより、前記工作機械の第１の機械経路を近似計算する第１機械経路計算部と、
前記第１の機械経路がコーナ形状か否かを判定することにより、前記複数の指令経路及び前記複数の回転軸移動指令を、１つの指令経路及び１つの回転軸移動指令に圧縮可能か否かを判定する圧縮可否判定部と、
前記圧縮可否判定部により圧縮可能と判定された場合には、前記複数の指令経路及び前記複数の回転軸移動指令を１つの指令経路及び１つの回転軸移動指令に圧縮して圧縮後指令経路及び圧縮後回転軸移動指令を作成する圧縮処理部と、
前記圧縮後指令経路及び前記圧縮後回転軸移動指令を補間し、補間周期毎に前記被加工物への前記工具先端の移動経路及び回転軸角度を計算する補間処理部と、
前記補間周期毎の前記被加工物への前記工具先端の移動経路及び前記回転軸角度を座標変換することにより前記工作機械の第２の機械経路を計算する第２機械経路計算部とを備え、
前記圧縮可否判定部は、１つの経路に圧縮した前記複数の指令経路の合成移動量の総和が、前記加工プログラムにより指令された前記被加工物への前記工具の前記送り速度における前記補間周期毎の移動量よりも大きい場合には圧縮不可と判定することを特徴とする数値制御装置。
【請求項４】
前記圧縮可否判定部は、前記第１の機械経路に基づいてクランプ速度を計算し、前記クランプ速度が前記加工プログラムにより指令された前記被加工物への前記工具の送り速度よりも小さい場合にはコーナ形状であり圧縮不可と判定することを特徴とする請求項２又は請求項３に記載の数値制御装置。
【手続補正２】
【補正対象書類名】明細書
【補正対象項目名】００１０
【補正方法】変更
【補正の内容】
【００１０】
上述した課題を解決し、目的を達成するために、本発明は、連続した複数の指令経路で構成された加工プログラムに従って被加工物への工具の工具姿勢を変更することが可能な回転自由度を有する工作機械を制御し、前記被加工物を前記工具により加工する数値制御装置において、前記加工プログラムにより指令された前記被加工物への工具の送り速度指令、工具先端の指令経路、及び工具姿勢を決定する回転軸移動指令を読み取る加工プログラム読み取り部と、前記被加工物への前記工具先端の指令経路及び前記回転軸移動指令を近似座標変換することにより、前記工作機械の第１の機械経路を近似計算する第１機械経路計算部と、前記第１の機械経路がコーナ形状か否かを判定することにより、前記複数の指令経路及び前記複数の回転軸移動指令を、１つの指令経路及び１つの回転軸移動指令に圧縮可能か否かを判定する圧縮可否判定部と、前記圧縮可否判定部により圧縮可能と判定された場合には、前記複数の指令経路及び前記複数の回転軸移動指令を１つの指令経路及び１つの回転軸移動指令に圧縮して圧縮後指令経路及び圧縮後回転軸移動指令を作成する圧縮処理部と、前記圧縮後指令経路及び前記圧縮後回転軸移動指令を補間し、補間周期毎に前記被加工物への前記工具先端の移動経路及び回転軸角度を計算する補間処理部と、前記補間周期毎の前記被加工物への前記工具先端の移動経路及び前記回転軸角度を座標変換することにより前記工作機械の第２の機械経路を計算する第２機械経路計算部とを備え、前記圧縮可否判定部は、前記第１の機械経路に基づいてクランプ速度を計算し、前記クランプ速度が前記加工プログラムにより指令された前記被加工物への前記工具の送り速度よりも小さい場合にはコーナ形状であり圧縮不可と判定することを特徴とする。
【国際調査報告】
2016021076.tif 000075
2016021076.tif 000076
2016021076.tif 000077
2016021076.tif 000078