(57)【要約】数値制御装置は、直線軸の位置により決定される工具先端位置の指令と回転軸の回転角度によって決定される工具姿勢の指令とを含む加工プログラムに従って数値制御する数値制御装置であって、作成された直線軸の指令位置列に基づいて、工具先端位置に関する工具先端位置曲線を生成する先端位置曲線生成手段と、前記作成された直線軸の指令位置列と作成された回転軸の指令位置列とに基づいて、工具先端位置の移動に連動した、工具姿勢に関する工具姿勢曲線を生成する工具姿勢曲線生成手段と、前記工具先端位置の補間点と工具姿勢の補間点とに応じて、直線軸の機械位置の補間点を演算する補間演算手段と、前記演算された機械位置の補間点に直線軸を移動させ、前記演算された工具姿勢の補間点に回転軸を移動させる補間出力手段とを備える。
2014016943.tif 000002
【特許請求の範囲】
【請求項１】
直線軸の位置により決定される工具先端位置の指令と回転軸の回転角度によって決定される工具姿勢の指令とを含む加工プログラムに従って、工具、直線軸、及び回転軸を有する機械を数値制御する数値制御装置であって、
前記加工プログラム中の連続したブロックで指令される工具先端位置及び工具姿勢を読み取って、直線軸の指令位置列と回転軸の指令位置列とを作成するプログラム入力手段と、
前記作成された直線軸の指令位置列に基づいて、工具先端位置に関する工具先端位置曲線を生成する先端位置曲線生成手段と、
前記作成された直線軸の指令位置列と前記作成された回転軸の指令位置列とに基づいて、工具先端位置の移動に連動した、工具姿勢に関する工具姿勢曲線を生成する工具姿勢曲線生成手段と、
各補間周期において、前記工具先端位置曲線から工具先端位置の補間点を演算し、前記工具姿勢曲線から工具姿勢の補間点を演算し、前記工具先端位置の補間点と工具姿勢の補間点とに応じて、直線軸の機械位置の補間点を演算する補間演算手段と、
前記演算された機械位置の補間点に直線軸を移動させ、前記演算された工具姿勢の補間点に回転軸を移動させる補間出力手段と、
を備えたことを特徴とする数値制御装置。
【請求項２】
前記工具姿勢曲線生成手段は、直線軸と回転軸との合成軸を用いて前記工具姿勢曲線を生成する
ことを特徴とする請求項１に記載の数値制御装置。
【請求項３】
前記工具姿勢曲線生成手段は、複数の回転軸のそれぞれに対して、回転軸１軸と直線軸との合成軸を用いて前記工具姿勢曲線を生成し、前記工具姿勢曲線の回転軸成分を抽出する処理を行う
ことを特徴とする請求項１に記載の数値制御装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、数値制御装置に関する。
【背景技術】
【０００２】
工作機械において、３軸の直線軸と２軸の回転軸とを持つ工作機械は５軸加工機と呼ばれ、直線軸の位置によって工具の先端位置を指令するとともに、回転軸によって工具の姿勢を指令することによって、被工作物に対して複雑な形状を加工することができる。【０００３】
被工作物に対して意匠的な曲面を加工する場合には、通常、ＣＡＤ／ＣＡＭ装置等によって、曲面にそって微小なブロックに分割した工具先端位置と工具姿勢との点列を作成し、数値制御装置によってこの点列間を直線で補間する加工が行われる。加工結果として得られる被工作物の加工面を滑らかにするためには、ブロックの分割をより細かくすればよいが、いたずらに分割を細かくすればプログラムデータ容量が過大になったり、数値制御装置のプログラム読み取り解析の演算に時間がかかり所定の加工速度を実現することが困難になったりする場合がある。【０００４】
それに対して、ブロックの分割を過度に細かくすることなく加工点列を作成し、数値制御装置によってその点列間を直線ではなく曲線で補間するという手法が提案されている。【０００５】
特許文献１には、数値制御装置において、加工点に対する曲線補間を行って曲面を加工するとともに、加工物に対する工具の傾斜角度を変化させることが記載されている。具体的には、加工プログラムから指令点列とベクトル列とをそれぞれ読み込む。読み込まれた指令点列に対して各点間に２点の内挿点を実指令点として求め、実指令点列に対して最小２乗法にて加工点用近似曲線を作成し、実指令点を加工点用近似曲線に向かって移動させて加工点用曲線を求め、加工点用曲線に対して補間を行い、加工点を求める。一方、読み込まれたベクトル列に対して２つの内挿ベクトルを実指令ベクトルとして求め、実指令ベクトルの先端点列に対して最小２乗法にてベクトル最先端点用近似曲線を作成し、実指令ベクトルをベクトル最先端点用近似曲線に向かって移動させてベクトル先端点用曲線を求め、ベクトル先端点用曲線に対して補間を行い、補間ベクトルを求める。そして、加工点と１周期前の加工点との差から進行方向ベクトルを求め、補間ベクトルから工具先端中心ベクトルを求め、補間ベクトル及び進行方向ベクトルから工具方向ベクトルを求める。さらに、加工点に工具先端中心ベクトル及び工具方向ベクトルを加算して直線移動軸Ｘ、Ｙ、Ｚの位置を求め、工具方向ベクトルから回転軸Ａ、Ｃの位置を求める。これにより、特許文献１によれば、加工点が滑らかに補間されるとともに工具と加工物の相対関係も滑らかに変化するので、滑らかな加工面が得られるとされている。【０００６】
特許文献２には、数値制御装置において、加工点が滑らかな曲線上を移動するとともに基準工具長位置が滑らかに変化するように制御することが記載されている。具体的には、加工プログラムを解析し加工点指令列と工具姿勢指令列とを作成する。作成された加工点指令列に対して最小二乗法により加工点近似曲線を作成し、加工点指令列を加工点近似曲線に向かって移動させて加工点曲線を求め、加工点曲線に対して補間を行い、補間加工位置を求める。一方、作成された工具姿勢指令列から工具姿勢単位ベクトル列を計算し基準工具長を積算して基準工具長ベクトルを求め、基準工具長ベクトルを加工点指令列に加算して基準工具長位置列を生成し、基準工具長位置列に対して最小二乗法により基準工具長位置近似曲線を作成し、基準工具長位置列を基準工具長位置近似曲線に向かって移動させて基準工具長位置曲線を求め、基準工具長位置曲線に対して補間を行い、補間基準工具長位置を求める。そして、補間加工位置と補間基準工具長位置とから補間工具姿勢を求める。さらに、補間加工位置、補間工具姿勢、及び実工具長から直線移動軸Ｘ、Ｙ、Ｚの位置を求め、補間工具姿勢から回転軸Ｂ、Ｃの位置を求める。これにより、特許文献２によれば、計算された工具姿勢となるように直線軸と回転軸とを制御することとにより工具姿勢が滑らかに変化しながら加工することができるとされている。
【先行技術文献】
【特許文献】
【０００７】
【特許文献１】特開２００５−１８２４３７号公報
【特許文献２】特開２０１０−１４６１７６号公報
【発明の概要】
【発明が解決しようとする課題】
【０００８】
特許文献１に記載の技術では、工具先端を滑らかに補間するための曲線（加工点用曲線）は工具先端位置の点列から生成し、工具姿勢を滑らかに補間するための曲線（ベクトル先端点用曲線）は工具姿勢の点列から生成するというように、工具先端の曲線と工具姿勢の曲線とを全く別個に生成することが前提になっている。そのため、特許文献１に記載の技術では、工具姿勢ベクトルの移動軌跡を考慮した場合、工具先端が加工点用曲線上を滑らかに移動するのに同期して工具姿勢ベクトルが滑らかに変化しない場合があり、加工の結果得られる加工面が滑らかにならない可能性がある。【０００９】
特許文献２に記載の技術では、工具先端を滑らかに補間するための曲線（加工点曲線）は工具先端位置の点列から生成し、工具先端から基準工具長オフセットした基準工具長位置を滑らかに補間するための曲線（基準工具長位置曲線）を工具先端点位置の点列と工具姿勢位置列から生成し、加工点曲線を補間する点と基準工長位置を補間する点を結ぶ補間工具姿勢から、その補間点における回転軸Ｂ、Ｃの位置を求めるとしている。そのため、特許文献２に記載の技術では、工具姿勢ベクトルの移動軌跡を考慮した場合、例えば工具姿勢が回転軸の１軸（例えばＢ軸）だけの動きで変化し、他の回転軸（例えばＣ軸）が移動しないプログラムの場合でも、加工点曲線を補間する点と基準工具長位置を補間する点を結ぶ補間工具姿勢から算出した回転軸の値には、本来動かないはずのＣ軸にも移動成分が現れ、特にこれが特異点の近傍にあると大きなＣ軸の動きとなり、加工の結果得られる加工面が滑らかにならない可能性がある。【００１０】
本発明は、上記に鑑みてなされたものであって、工具姿勢ベクトルの移動軌跡を滑らかにできる数値制御装置を得ることを目的とする。
【課題を解決するための手段】
【００１１】
上述した課題を解決し、目的を達成するために、本発明の１つの側面にかかる数値制御装置は、直線軸の位置により決定される工具先端位置の指令と回転軸の回転角度によって決定される工具姿勢の指令とを含む加工プログラムに従って、工具、直線軸、及び回転軸を有する機械を数値制御する数値制御装置であって、前記加工プログラム中の連続したブロックで指令される工具先端位置及び工具姿勢を読み取って、直線軸の指令位置列と回転軸の指令位置列とを作成するプログラム入力手段と、前記作成された直線軸の指令位置列に基づいて、工具先端位置に関する工具先端位置曲線を生成する先端位置曲線生成手段と、前記作成された直線軸の指令位置列と前記作成された回転軸の指令位置列とに基づいて、工具先端位置の移動に連動した、工具姿勢に関する工具姿勢曲線を生成する工具姿勢曲線生成手段と、各補間周期において、前記工具先端位置曲線から工具先端位置の補間点を演算し、前記工具姿勢曲線から工具姿勢の補間点を演算し、前記工具先端位置の補間点と工具姿勢の補間点とに応じて、直線軸の機械位置の補間点を演算する補間演算手段と、前記演算された機械位置の補間点に直線軸を移動させ、前記演算された工具姿勢の補間点に回転軸を移動させる補間出力手段とを備えたことを特徴とする。
【発明の効果】
【００１２】
本発明によれば、工具姿勢曲線が工具先端点の直線軸移動に関連付けて導出されるため、例えば、直線軸に基づいて作成された工具先端位置曲線と、直線軸と回転軸との両方に基づいて作成された工具姿勢曲線とを組み合わせて、直線軸及び回転軸をそれぞれ補間できる。この結果、工具先端の移動に伴って工具姿勢ベクトルを滑らかに移動させることができる。すなわち、工具姿勢ベクトルの移動軌跡を滑らかにできる。
【図面の簡単な説明】
【００１３】
【図１】図１は、実施の形態１にかかる数値制御装置の構成を示す図である。
【図２】図２は、実施の形態１にかかる工作機械の構成を示す図である。
【図３】図３は、実施の形態１における工具先端点および工具姿勢を表す図である。
【図４】図４は、実施の形態１における１つの区間のスプライン曲線を表す図である。
【図５】図５は、実施の形態１における直線軸と回転軸２軸を合成した曲線を表す図である。
【図６】図６は、実施の形態１における加工プログラムの内容を示す図である。
【図７】図７は、実施の形態１におけるデータテーブルの構成を示す図である。
【図８】図８は、実施の形態１における曲線上の補間点を示す図である。
【図９】図９は、実施の形態１における直線軸と回転軸１軸を合成した曲線を表す図である。
【図１０】図１０は、実施の形態２におけるデータテーブルの構成を示す図である。
【発明を実施するための形態】
【００１４】
以下に、本発明にかかる数値制御装置の実施の形態を図面に基づいて詳細に説明する。なお、この実施の形態によりこの発明が限定されるものではない。
【００１５】
実施の形態１．
実施の形態１にかかる数値制御装置１０について図１を用いて説明する。図１は、数値制御装置１０の構成を示す図である。
【００１６】
図１に示す数値制御装置１０は、サーボ駆動部９を介して、例えば図２に示す工作機械１００を数値制御する装置であり、例えば、工具１０２の先端位置と工具１０２の姿勢を制御する装置である。図２は、工作機械１００の構成を示す図である。
【００１７】
数値制御装置１０が搭載された工作機械１００では、加工プログラム（ＮＣプログラム、モーションプログラム）１にて指令された位置に移動するよう、各軸の制御を行うことで可動部を移動させながら加工が行われる。工作機械１００は、複数の直線軸と１以上の回転軸とを有する。
【００１８】
具体的には、工作機械１００は、例えば図２に示すように、３つの直線軸（並進軸）であるＸ軸、Ｙ軸、Ｚ軸と２つの回転軸であるＢ軸、Ｃ軸とを有する５軸加工機である。Ｘ軸は、Ｘ軸サーボモータ１０９Ｘが工具１０２を直線移動させるための軸である。Ｙ軸は、Ｙ軸サーボモータ１０９Ｙが工具１０２を直線移動させるための軸である。Ｚ軸は、Ｚ軸サーボモータ１０９Ｚが工具１０２を直線移動させるための軸である。Ｘ軸、Ｙ軸、及びＺ軸は、例えば、互いに直交する。Ｂ軸は、Ｂ軸サーボモータ１０９Ｂが工具１０２を回転移動させるための軸であり、例えばＹ軸の周りに回転移動させる。Ｃ軸は、Ｃ軸サーボモータ１０９Ｃが工具１０２を回転移動させるための軸であり、例えばＺ軸の周りに回転移動させる。テーブル１０１は、その主面１０１ａ上にワークＷＫが載置される。また、Ｂ軸の中心軸とＣ軸の中心軸との交点は、工作機械１００の中心を示す機械位置ＭＰとみなすことができる。
【００１９】
なお、図２は、回転軸（Ｂ軸、Ｃ軸）が工具側に２軸ある場合の５軸加工機の構成を例示的に示す図であるが、工作機械１００は、回転軸が工具側とワーク側とに１軸ずつある場合の５軸加工機であってもよいし、回転軸がワーク側に２軸ある場合の５軸加工機であってもよい。
【００２０】
加工プログラム１（図６参照）は、Ｇコードと呼ばれる指令コードを用いて記述されたプログラムであり、例えば、同時５軸制御機能として工具先端点制御（Ｇ４３．４／Ｇ４３．５）指令などを用いて記述されたプログラムである。
【００２１】
数値制御装置１０は、加工プログラム１を解析し、解析結果に応じてサーボ駆動部９を介して工作機械１００（例えば、５軸加工機）を制御して（図２参照）、テーブル１０１に載置されたワークＷＫに対する相対的な工具姿勢を制御しながら、ワークＷＫの加工を行う。例えば、数値制御装置１０は、工具１０２の位置や姿勢を所望の工具位置、工具姿勢となるように、Ｘ、Ｙ、Ｚ、Ｂ、Ｃ軸のそれぞれを適切に制御することで、ワークＷＫに対する複雑な加工を実現している。例えば、数値制御装置１０は、所定の移動指令をサーボ駆動部９におけるＸ軸駆動部９Ｘ、Ｙ軸駆動部９Ｙ、Ｚ軸駆動部９Ｚ、Ｂ軸駆動部９Ｂ、及びＣ軸駆動部９Ｃのそれぞれへ出力する（図１参照）。これにより、Ｘ軸駆動部９Ｘ、Ｙ軸駆動部９Ｙ、Ｚ軸駆動部９Ｚ、Ｂ軸駆動部９Ｂ、及びＣ軸駆動部９Ｃは、それぞれ、Ｘ軸サーボモータ１０９Ｘ、Ｙ軸サーボモータ１０９Ｙ、Ｚ軸サーボモータ１０９Ｚ、Ｂ軸サーボモータ１０９Ｂ、Ｃ軸サーボモータ１０９Ｃに電圧指令を出力し駆動する。
【００２２】
このように、工作機械１００に、直線軸の位置によって工具１０２の先端位置を指令するとともに、回転軸によって工具１０２の姿勢を指令することによって、ワークＷＫに対して、より複雑な形状を加工することができる。
【００２３】
ワークＷＫに対して意匠的な曲面を加工する場合には、通常、ＣＡＤ／ＣＡＭ装置等によって、曲面にそって微小なブロックに分割し、各ブロックにおいて工具１０２の先端位置１０２ａと工具１０２の姿勢との点列を指令する加工プログラムを作成する。そして、数値制御装置１０によってこの加工プログラムで指令された点列間を直線で補間する加工を行うことが一般的である。この場合、加工結果として得られるワークＷＫの加工面を滑らかにするためには、ブロックの分割をより細かくすればよいが、いたずらに分割を細かくすれば加工プログラムのデータ容量が過大になったり、数値制御装置のプログラム読み取り解析の演算に時間がかかり所定の加工速度を実現することが困難になる可能性がある。
【００２４】
それに対して、ブロックの分割を過度に細かくすることなく加工点列を作成し、数値制御装置１０によってその点列間を直線ではなく曲線で補間するという手法が考えられる。工具１０２の先端位置１０２ａと工具１０２の姿勢との点列で指令する加工プログラムの場合、工具１０２の先端位置１０２ａに対応する直線軸の移動を滑らかに補間しながら、工具１０２の姿勢に対応する回転軸の移動（回転）を直線軸の移動に同期しながら滑らかに曲線補間する必要があり、それを実現する技術が望まれる。
【００２５】
そこで、実施の形態１では、直線軸の指令位置の点列に基づいて、工具１０２の先端位置１０２ａに関する工具先端位置曲線を生成する一方で、回転軸の指令位置の点列だけでなく直線軸の指令位置の点列にも基づいて、工具１０２の姿勢に関する工具姿勢曲線を生成することで、工具先端１０２ａの移動軌跡を滑らかにしながら、その移動に同期しながら工具１０２の姿勢を示す工具姿勢ベクトルの移動軌跡を滑らかにすることを目指す。
【００２６】
すなわち、実施の形態１にかかる数値制御装置１０は、例えば、プログラム入力手段、先端位置曲線生成手段、工具姿勢曲線生成手段、補間演算手段、及び補間出力手段を有する。
【００２７】
プログラム入力手段は、加工プログラム中の連続したブロックで指令される先端位置と工具の姿勢とを読み取って、直線軸の指令位置列と回転軸の指令位置列とを作成する。工具先端位置曲線生成手段は、プログラム入力手段により作成された直線軸の指令位置列に基づいて、工具先端位置曲線を生成する。工具先端位置曲線は、工具１０２の先端位置１０２ａに関する曲線であり、例えば滑らかな曲線である。工具姿勢曲線生成手段は、プログラム入力手段により作成された直線軸の指令位置列とプログラム入力手段により作成された回転軸の指令位置列とに基づいて、工具姿勢曲線を生成する。工具姿勢曲線は、工具１０２の先端位置１０２ａの移動に連動した曲線であり、工具１０２の姿勢に関する曲線であり、例えば滑らかな曲線である。補間演算手段は、各補間周期において、工具先端位置曲線から工具１０２の先端位置１０２ａの補間点を演算する。補間演算手段は、各補間周期において、工具姿勢曲線から工具１０２の姿勢の補間点を演算する。補間演算手段は、各補間周期において、工具１０２の先端位置１０２ａの補間点と工具１０２の姿勢の補間点とに基づいて、直線軸の機械位置ＭＰの補間点を演算する。補間出力手段は、補間演算手段により演算された機械位置ＭＰの補間点に直線軸を移動させる。補間出力手段は、補間演算手段により演算された工具１０２の姿勢の補間点に回転軸を移動（回転）させる。
【００２８】
上述の構成手段のうち実施の形態１における特徴的な部分は、例えば、工具先端位置曲線生成手段と工具姿勢曲線生成手段とであり、これについて、まず、実施の形態１の考え方を説明する。
【００２９】
公知の曲線理論（例えば「形状処理工学（Ｉ）」山口富士夫著、日刊工業新聞社刊）によると、図３に示すようなｎ＋１個の指定点Ｐ０、Ｐ１、Ｐ２、・・・、Ｐｎを滑らかに通過する３次スプライン曲線上の点は、例えば、指定点Ｐｊ−１からＰｊの図４に示す区間において、次の数式（１）で表現される。
【００３０】
【数１】
2014016943.tif 000003
(j=1,2,3,・・・,n)
【００３１】
数式（１）において、ｑｊは指定点Ｐｊ（ｘｊ，ｙｊ，ｚｊ）における３次スプライン曲線の単位接線ベクトルであり、ｄｊは、Ｐｊ−１からＰｊまでの距離であり、例えば、次に数式（２）で表現される。
【００３２】
ｄｊ＝√｛（ｘｊ−ｘｊ−１）２＋（ｙｊ−ｙｊ−１）２＋（ｚｊ−ｚｊ−１）２｝・・・（２）
【００３３】
また、上記の数式（１）において、ｔは曲線のパラメータであり、０≦ｔ≦１の範囲内の値である。数式（１）により示されるスプライン曲線は、指定点Ｐｊを通過するが、単位接線ベクトルｑｊを適切に設定しないと、各指定点において２次微分が連続にならない。２次微分が各指定点において連続となる条件は、次の数式（３）で表現される。
【００３４】
ｄｊｑｊ−１＋２（ｄｊ＋１＋ｄｊ）ｑｊ＋ｄｊｑｊ＋１
＝（３／ｄｊｄｊ＋１）（ｄｊ２（Ｐｊ＋１−Ｐｊ）＋ｄｊ＋１２（Ｐｊ−Ｐｊ−１）
（ｊ＝１，２，３，・・・，ｎ）・・・（３）
【００３５】
なお、端点Ｐ０とＰｎについては、端点における曲率を０とし、次の数式（４ａ）、（４ｂ）で示される端点条件を追加する。
【００３６】
２ｄ２ｑ１＋ｄ２ｑ３＝３（Ｐ２−Ｐ１）・・・（４ａ）
【００３７】
ｄｎｑｎ−１＋２ｄｎｑｎ＝３（Ｐｎ−Ｐｎ−１）・・・（４ｂ）
【００３８】
数式（３）、（４ａ）、（４ｂ）のｎ＋１個の連立方程式を解くことによって、ｎ＋１個の接線ベクトルｑｊを求められれば、数式（１）によって全区間のスプライン曲線が求められる。
【００３９】
ここで、上記の解法において数式（１）のスプライン曲線は、直線軸の各軸（Ｘ軸、Ｙ軸、Ｚ軸）の成分に分解すると、次の数式（５）で表現される。
【００４０】
Ｐｊ（ｔ）＝［Ｐｘｊ（ｔ），Ｐｙｊ（ｔ），Ｐｚｊ（ｔ）］・・・（５）
【００４１】
数式（３）、（４ａ）、（４ｂ）は、指定点間の距離を示す数式（２）のｄｊを共通項とした直線軸の各軸成分について互いに独立した式であり、スプライン曲線は直線軸の各軸について独立に求められる。
【００４２】
次に、直線軸と回転軸との合成について考える。図３に示すように、点Ｐｊにおける工具１０２の姿勢を示す工具姿勢ベクトルＶｊが、２つの回転軸であるＢ軸とＣ軸の角度によって与えられているものとする。直線軸の指定点列Ｐｊ（ｘｊ、ｙｊ、ｚｊ）および工具１０２姿勢を表す角度の指定点列Ｖｊ（ｂｊ、ｃｊ）に対して、５次元空間の点間距離を以下の数式（６）で定義する。
【００４３】
ｄｊ’＝√｛（ｘｊ−ｘｊ−１）２＋（ｙｊ−ｙｊ−１）２＋（ｚｊ−ｚｊ−１）２
＋（ｂｊ−ｂｊ−１）２＋（ｃｊ−ｃｊ−１）２｝・・・（６）
【００４４】
数式（６）で、直線軸の長さと回転軸の角度との次元の違いは、例えば１°＝１ｍｍと換算することで次元を合わせるものとする。
【００４５】
このとき、数式（１）、（３）、（４ａ）、（４ｂ）は、点列間の距離ｄｊを数式（６）のｄｊ’とすることで、Ｘ軸、Ｙ軸、Ｚ軸、Ｂ軸、Ｃ軸の各軸成分について定義され、数式（１）のスプライン曲線は、各軸の成分に分解して、次の数式（７）に示すように求めることができる。
【００４６】
Ｐｊ（ｔ）＝［Ｐｘｊ（ｔ），Ｐｙｊ（ｔ），Ｐｚｊ（ｔ），Ｐｂｊ（ｔ），Ｐｃｊ（ｔ）］・・・（７）
【００４７】
ただし、数式（７）のｘ、ｙ、ｚの各成分Ｐｘｊ（ｔ）、Ｐｙｊ（ｔ）、Ｐｚｊ（ｔ）は、数式（５）のｘ、ｙ、ｚの各成分Ｐｘｊ（ｔ）、Ｐｙｊ（ｔ）、Ｐｚｊ（ｔ）とは異なる。
【００４８】
ここで、工具先端１０２ａの移動距離の積算値Ｌを考え、積算値Ｌを１つの軸とみなした場合の成分ｌを数式（８）に示すようにおく。
ｌｊ＝ｌｊ−１＋ｄｊ・・・（８）
【００４９】
このとき、図５に示すようにＬ−Ｂ−Ｃの３次元空間を考え、Ｌ−Ｂ−Ｃ空間内を滑らかに通過するスプライン曲線として、次の数式（９）で表される曲線を考える。
【００５０】
Ｐｊ（ｔ）＝［Ｐｌｊ（ｔ），Ｐｂｊ（ｔ），Ｐｃｊ（ｔ）］・・・（９）
【００５１】
このとき、点列間の距離ｄｊ”は、次の数式（１０）で示すように表される。
【００５２】
ｄｊ”＝√｛（ｌｊ−ｌｊ−１）２＋（ｂｊ−ｂｊ−１）２＋（ｃｊ−ｃｊ−１）２｝
・・・（１０）
【００５３】
数式（１０）において、明らかに、次の数式（１１）が成り立つ。
【００５４】
（ｌｊ−ｌｊ−１）２＝（ｘｊ−ｘｊ−１）２＋（ｙｊ−ｙｊ−１）２＋（ｚｊ−ｚｊ−１）２
・・・（１１）
【００５５】
数式（６）、（１０）、（１１）により、ｄｊ’＝ｄｊ”が成り立つことが分かる。これにより、数式（７）で求めるスプライン曲線のＢ軸、Ｃ軸の成分Ｐｂ（ｔ）、Ｐｃ（ｔ）は、数式（９）で求めるスプライン曲線のＢ軸、Ｃ軸の成分に一致する。すなわち、数式（７）で求めたスプライン曲線のＰｂ（ｔ）、Ｐｃ（ｔ）は、直線軸の指令点列間の移動に同期して滑らかに変化する曲線式とみなすことができる。
【００５６】
これにより、数式（５）から求めたスプライン曲線の直線軸の成分Ｐｘ（ｔ）、Ｐｙ（ｔ）、Ｐｚ（ｔ）と、数式（７）から求めたスプライン曲線の回転軸の成分Ｐｂ（ｔ）、Ｐｃ（ｔ）とを組み合わせて、
Ｐｊ（ｔ）＝［Ｐｘｊ（ｔ），Ｐｙｊ（ｔ），Ｐｚｊ（ｔ），Ｐｂｊ（ｔ），Ｐｃｊ（ｔ）］
とすれば、この曲線をもって直線軸Ｘ、Ｙ、Ｚを滑らかに移動しながら、その移動に同期して回転軸Ｂ、Ｃが滑らかに移動する曲線を得ることができる。
【００５７】
そこで、実施の形態１では、例えば、工具先端位置曲線生成手段は、直線軸の位置指令の点列から数式（５）によるスプライン曲線を導出し、工具姿勢曲線生成手段は、直線軸および回転軸の指令位置の点列から、直線軸と回転軸の合成軸をもとにして数式（７）による工具姿勢曲線を生成する。
【００５８】
具体的には、図１に示すように、数値制御装置１０は、プログラム入力部２、曲線生成部３、補間演算部６、補間出力部７、９はサンプリング時間ごとの位置指令に従って図示しないモータを駆動するサーボ駆動部、８は曲線生成処理用のデータを格納するデータテーブルである。曲線生成部３は、工具先端位置曲線生成部４及び工具姿勢曲線生成部５を有する。
【００５９】
プログラム入力部２は、加工プログラム１を読み取る。曲線生成部３は、プログラム入力部２により読み取られた加工プログラム１から、加工プログラム１の指令点列を滑らかに結ぶ曲線を生成する。例えば、曲線生成部３の工具先端位置曲線生成部４は、工具先端の指令位置を滑らかに結ぶ曲線を生成する。曲線生成部３の工具姿勢曲線生成部５は、工具の姿勢の指令角度を滑らかに結ぶ曲線を生成する。補間演算部６は、曲線生成部３で生成された曲線に沿ってサンプリング時間ごとの補間位置を演算する。補間出力部７は、サンプリング時間ごとに演算された補間位置を位置指令としてサーボ駆動部９に出力する。
【００６０】
加工プログラム１は、例えば図６に示すように規定された内容を含む。「Ｇ４３．４」は、工具先端点制御を表し、「Ｇ４３．４」の行以下に記述されるＸ、Ｙ、Ｚの座標値が図３に示す工具１０２の先端位置１０２ａの座標であることを表す。「Ｇ０１」は、直線補間を表し、各ブロックにおいて指令された各軸の座標値に直線で移動することを示す。ここで、滑らかな曲線に沿っての移動を指令するためのＧコードが「Ｇ０６．１」で準備されており、曲線補間を所望する箇所にきたら「Ｇ０６．１」を加工プログラム１で指令し、以下曲線が通過する点を各軸の座標値でプログラム指令していく。そして曲線補間を終了すると「Ｇ０１」の直線補間等他の補間モードをプログラム指令するとその時点で曲線補間はキャンセルされる。図６に示す加工プログラム１では、「Ｇ０６．１」が指令される前の最後の直線補間の終点Ｐ０を曲線の始点として、曲線補間の通過点としてＰ１、Ｐ２、Ｐ３、・・・Ｐｎがプログラムされ「Ｇ０１」で他の補間モードとなってＰｎで曲線補間が終了している。
【００６１】
なお、ここではＰｎの次に「Ｇ０１」で曲線補間をキャンセルしたが、他の「Ｇ０」（早送り）や「Ｇ２／Ｇ３」（円弧補間）などで曲線補間をキャンセルしてもよい。また、再度「Ｇ０６．１」を指令することによって、Ｐｎを始点とする新たな曲線をプログラム指令してもよい。また、曲線補間を明示的にキャンセルする特別なＧコードを割り当てることも可能である。
【００６２】
プログラム入力部２は、加工プログラム１を１行ずつ読み取り、曲線補間を示すＧコード（本実施例では「Ｇ０６．１」）を識別すると、一連の曲線補間がキャンセルされるまで加工プログラム１を読み取り、データテーブル８に各データを設定する。データテーブル８の内容を図７に示す。
【００６３】
ここで設定するデータは、Ｐ０からＰｎまでの（ｎ＋１）点のＸ、Ｙ、Ｚ、Ｂ、Ｃ各軸の座標値および、２点間の距離ｄｊおよびｄｊ’である。ここで、ｄｊはＰｊ−１からＰｊまでの距離であり、上記の数式（２）で表される。ｄｊ’は、直線軸の指定点列Ｐｊ（ｘｊ、ｙｊ、ｚｊ）および工具姿勢を表す角度の指定点列Ｖｊ（ｂｊ、ｃｊ）に対して、直線軸３軸と回転軸２軸との５軸を合成した、５次元空間の点間距離であり、上記の数式（６）で表される。ここで、直線軸の長さと回転軸の角度の次元の違いは、例えば１°＝１ｍｍと換算することで次元を合わせるものとする。
【００６４】
例えば図７に示すようなデータテーブル８を作成すると、図１に示すプログラム入力部２は、曲線生成部３を起動する。
【００６５】
曲線生成部３では、まず工具先端位置曲線生成部４が、データテーブル８から工具先端点を滑らかに通過する曲線式を生成する。生成の手順としては、工具先端の座標値Ｐｊ＝（Ｘｊ，Ｙｊ，Ｘｊ）および工具先端点の指令点列間の距離ｄｊから、各指令点Ｐｊにおける接線ベクトルｑｊ＝（ｑｘｊ，ｑｙｊ，ｑｚｊ）としたときに、曲線の２次微分が連続となる式である上記の数式（３）と、曲線の始点Ｐ０および終点Ｐｎで曲率０となる端点条件である数式（４ａ）、（４ｂ）とにより、Ｘ、Ｙ、Ｚそれぞれについて、上記（ｎ＋１）個の連立方程式を解く。これにより、（ｎ＋１）個の接線ベクトルｑｊ＝（ｑｘｊ，ｑｙｊ，ｑｚｊ）（ｎ＝０，１，・・・，ｎ）を算出する。算出した結果は、データテーブル８に、例えば直線軸の接線ベクトル（図７参照）として格納する。
【００６６】
次に、工具姿勢曲線生成部５が、データテーブル８から工具姿勢が指令点を通過しながら滑らかに変化する曲線式を生成する。生成の手順としては、工具先端の座標値および工具姿勢の座標値からなるＰｊ＝（Ｘｊ，Ｙｊ，Ｚｊ，Ｂｊ，Ｃｊ）、および直線軸３軸と回転軸２軸を合成した指令点列間の距離ｄｊ’をｄｊとして（数式６、図５参照）、各指令点Ｐｊにおける接線ベクトルｑｊ＝（ｑｘｊ，ｑｙｊ，ｑｚｊ，ｑｂｊ，ｑｃｊ）としたときに、曲線の２次微分が連続となる上記の数式（３）と、曲線の始点Ｐ０および終点Ｐｎで曲率０となる端点条件の数式（４ａ）、（４ｂ）とから、Ｂ軸、Ｃ軸の２つの回転軸の成分のみについてそれぞれに、上記（ｎ＋１）個の連立方程式から、（ｎ＋１）個の接線ベクトルｑｊ’＝（ｑｂｊ，ｑｃｊ）（ｎ＝０，１，・・・，ｎ）を算出する。算出した結果は、データテーブル８に、例えば回転軸の接線ベクトル（図７参照）として格納する。
【００６７】
このようにして、滑らかな曲線の接線ベクトルの各軸の成分が導出される。
【００６８】
次に、３次スプライン関数の式を、次の数式（１６）に示すようにおく。
【００６９】
ｆ（ｔ）＝Ａｔ３＋Ｂｔ２＋Ｃｔ＋Ｄ  （０≦ｔ≦１）・・・（１６）
【００７０】
数式（１６）を１階微分すると、数式（１７）のようになる。
ｆ’（ｔ）＝３Ａｔ２＋２Ｂｔ＋Ｃ・・・（１７）
【００７１】
数式（１６）により、曲線の始点の座標値は、次の数式（１８ａ）のようになる。
ｆ（０）＝Ｄ・・・（１８ａ）
【００７２】
数式（１６）により、曲線の終点の座標値は、次の数式（１８ｂ）のようになる。
ｆ（１）＝Ａ＋Ｂ＋Ｃ＋Ｄ・・・（１８ｂ）
【００７３】
数式（１７）により、曲線の始点の接線ベクトルの成分は、次の数式（１８ｃ）のようになる。
ｆ’（０）＝Ｃ・・・（１８ｃ）
【００７４】
数式（１７）により、曲線の終点の接線ベクトルの成分は、次の数式（１８ｄ）のようになる。
ｆ’（１）＝３Ａ＋２Ｂ＋Ｃ・・・（１８ｄ）
【００７５】
データテーブル８には各点の座標値および接線ベクトルの角軸成分が求まっているのでこれを用いて、ｎ個の区間の各軸の３次スプライン関数を導出する。
ｆｊｘ（ｔ）＝Ａｘｔ３＋Ｂｘｔ２＋Ｃｘｔ＋Ｄｘ
（ｊ＝０，１，・・・，ｎ）・・・（１９ａ）
ｆｊｙ（ｔ）＝Ａｙｔ３＋Ｂｙｔ２＋Ｃｙｔ＋Ｄｙ
（ｊ＝０，１，・・・，ｎ）・・・（１９ｂ）
ｆｊｚ（ｔ）＝Ａｚｔ３＋Ｂｚｔ２＋Ｃｚｔ＋Ｄｚ
（ｊ＝０，１，・・・，ｎ）・・・（１９ｃ）
ｆｊｂ（ｔ）＝Ａｂｔ３＋Ｂｂｔ２＋Ｃｂｔ＋Ｄｂ
（ｊ＝０，１，・・・，ｎ）・・・（１９ｄ）
ｆｊｃ（ｔ）＝Ａｃｔ３＋Ｂｃｔ２＋Ｃｃｔ＋Ｄｃ
（ｊ＝０，１，・・・，ｎ）・・・（１９ｅ）
【００７６】
曲線生成部３で全ての区間で各軸の曲線式が導出されると、補間演算部６で一定のサンプリング周期にしたがって補間処理を実行する。
【００７７】
補間処理は以下の手順で実行する。まず、プログラム１に記述された工具先端の移動速度指令Ｆ（ｍｍ／分）に対して、一定のサンプリング時間ΔＴ（秒）で移動する距離ΔＬ（ｍｍ）を求めると、数式（２０）のようになる。
ΔＬ＝Ｆ／６０×ΔＴ（ｍｍ）・・・（２０）
【００７８】
数式（２０）において、Ｆは、一定のプログラム指令速度としているが、所定の加減速を行うときは、加減速を施した速度をＦとしてもよい。
【００７９】
次に、現在の位置から曲線上をΔＬだけ進んだ位置を求める。図８において、現在の位置が曲線Ｐｊ（ｔ）上のｔ＝ｔａで与えられる位置Ａ＝Ｐｊ（ｔａ）にあるとして、ここからΔＬだけ進んだ位置Ｂを求める。これには、曲線上の位置Ｂ＝Ｐｊ（ｔｂ）を与える曲線のパラメータｔｂを求めればよい。曲線Ｐｊ（ｔ）の始点Ｐｊ−１＝Ｐｊ（０）、終点Ｐｊ＝Ｐｊ（１）、Ｐｊ−１からＰｊまでの距離ｄｊであるので、曲線上のパラメータｔが０から１まで変化すると、曲線Ｐｊ（ｔ）上を距離ｄｊだけ動くことになる。したがって、曲線上をΔＬだけ動くためにはパラメータｔを、まずΔｔ＝ΔＬ／ｄｊだけ変化させる。したがって、次の数式（２１）により、Ｐｊ（ｔｂ）を求める。
ｔｂ＝ｔａ＋Δｔ・・・（２１）
【００８０】
実際にＰｊ（ｔａ）から動いた距離Ｌｅｎｇを、次の数式（２２）によりを求める。
【００８１】
Ｌｅｎｇ＝｜Ｐｊ（ｔａ）−Ｐｊ（ｔｂ）｜・・・（２２）
【００８２】
数式（２２）で示される実際に動いた距離ＬｅｎｇとΔＬとの差が許容値以上のときは、
Δｔ＝Δｔ×ΔＬ／Ｌｅｎｇ
としてΔｔを修正し、修正したΔｔを用いて数式（２１）のｔｂを修正してＰｊ（ｔｂ）を求め直す。このような演算を、Ｐｊ（ｔａ）からＰｊ（ｔｂ）まで実際に動いた距離ＬｅｎｇとΔＬとの差が許容値以内となるまで繰り返す。
【００８３】
このようにして、曲線上を点ＡからΔＬだけ移動する点Ｂ＝Ｐｊ（ｔｂ）＝（ｆｊｘ（ｔｂ）、ｆｊｙ（ｔｂ）、ｆｊｚ（ｔｂ））を求めたら、その曲線パラメータｔｂを工具姿勢の曲線式（数式（１９ｄ）、（１９ｅ）参照）に入れて、点Ｐｊ（ｔｂ）に対応する工具姿勢曲線Ｖｊ（ｔｂ）＝（ｆｊｂ（ｔｂ），ｆｊｃ（ｔｂ））を求める。工具姿勢曲線Ｖｊ（ｔ）は工具先端の曲線Ｐｊ（ｔ）の移動に連動するように求めたものであるので、工具先端の位置を与える曲線パラメータｔと同一のパラメータｔを工具姿勢曲線式に与えて工具先端の姿勢を求めることにより、工具先端の滑らかな動きに連動して、工具姿勢を滑らかに動作する位置を求めることができる。
【００８４】
以上のように、サンプリング周期ごとに滑らかな曲線上を移動するＸ，Ｙ、Ｚ、Ｂ、Ｃの各軸の位置が求まると、補間演算部６では工具先端の位置Ｘ、Ｙ、Ｚと工具姿勢Ｂ、Ｃとの値から、図３に示す機械位置ＭＰを算出し、機械位置Ｘ、Ｙ、Ｚと工具姿勢の角度Ｂ、Ｃとの各軸の値をサーボ駆動部７に指令する。サーボ駆動部９は指令された位置となるよう各軸のサーボモータを駆動する。
【００８５】
なお、上記の処理の説明の過程で、現在の位置をＡ＝Ｐｊ（ｔａ）として説明したが、曲線を補間する処理に最初に入ってきたときは、ｊ＝０、ｔａ＝０である。すなわち、Ａ＝Ｐ０（０）であり一連の曲線の始点となる。
【００８６】
また、点Ａから当該区間の曲線終点Ｐｊ（１）までの残距離がΔＬより小さいときは、ΔＬから残距離を減じた値をΔＬ’とし、ΔＬ’を下記の数式（２３）から求め、点Ａを次の曲線Ｐｊ＋１（ｔ）の始点Ｐｊ＋１（０）として、Ｐｊ＋１（ｔ）上をΔＬ’だけ移動する位置Ｐｊ＋１（ｔｂ）を求めればよい。
【００８７】
ΔＬ’＝ΔＬ−｜Ｐｊ（ｔａ）−Ｐｊ（１）｜・・・（２３）
【００８８】
以上の過程により、プログラムで指令された先端位置を通過する滑らかな曲線に沿って工具先端位置を補間するとともに、工具姿勢に与える回転軸２軸を加工プログラムに指令された姿勢を通過しながら工具先端の移動に同期して滑らかに変化させる補間結果を得ることができる。すなわち、工具姿勢ベクトルＶの移動軌跡を滑らかにすることができる。
【００８９】
以上のように、実施の形態１では、数値制御装置１０において、工具先端位置曲線生成部４が、プログラム入力部２により作成された直線軸の指令位置列に基づいて、工具先端位置に関する工具先端位置曲線（例えば、数式（１９ａ）、（１９ｂ）、（１９ｃ））を生成する。工具姿勢曲線生成部５は、プログラム入力部２により作成された直線軸の指令位置列と、プログラム入力部２により作成された回転軸の指令位置列とに基づいて、工具先端位置の移動に連動した、工具姿勢に関する工具姿勢曲線（例えば、数式（１９ｄ）、（１９ｅ））を生成する。補間演算部６は、工具先端位置曲線生成部４により生成された工具先端位置曲線から工具１０２の先端位置１０２ａの補間点を演算し、工具姿勢曲線生成部５により生成された工具姿勢曲線から工具１０２の姿勢の補間点を演算し、工具１０２の先端位置１０２ａの補間点と工具１０２の姿勢の補間点とに応じて、直線軸の機械位置ＭＰの補間点を演算する。そして、補間出力部７は、補間演算部６により演算された機械位置の補間点に直線軸を移動させ、補間演算部６により演算された工具姿勢の補間点に回転軸を移動させる。これにより、工具姿勢曲線が工具先端点の直線軸移動に関連付けて導出されるため、例えば、直線軸に基づいて作成された工具先端位置曲線と、直線軸と回転軸との両方に基づいて作成された工具姿勢曲線とを組み合わせて、直線軸及び回転軸をそれぞれ補間できる。この結果、工具先端の移動に伴って工具姿勢ベクトルを滑らかに移動させることができる。すなわち、工具姿勢ベクトルの移動軌跡を滑らかにできる。
【００９０】
また、実施の形態１では、工具姿勢曲線生成部５が、直線軸と回転軸との合成軸を用いて、工具姿勢曲線を生成する。例えば、工具姿勢曲線生成部５は、直線軸３軸と回転軸２軸を合成した５次元空間において、工具先端の座標値および工具姿勢の座標値からなる各指令点における曲線の２次微分値が連続となるように、回転軸２軸の接線ベクトルを求め、その回転軸２軸の接線ベクトルを用いて工具姿勢曲線の曲線式を求める。これにより、直線軸の指令位置列と回転軸の指令位置列との両方に基づいて工具姿勢曲線を作成することができ、工具姿勢曲線を工具先端位置の移動に連動したものとすることができる。この結果、加工プログラムで指令された先端位置を通過する滑らかな曲線に沿って工具先端位置を補間できるとともに、工具姿勢を与える回転軸２軸を加工プログラムに指令された姿勢を通過しながら工具先端の移動に同期して滑らかに変化させる補間結果を得ることができる。
【００９１】
実施の形態２．
次に、実施の形態２にかかる数値制御装置１０ｉについて説明する。以下では、実施の形態１と異なる部分を中心に説明する。
【００９２】
実施の形態１では、例えば直線軸３軸と回転軸２軸を合成した合成軸５軸を用いて、工具姿勢曲線を生成しているが、実施の形態２では、直線軸に対して回転軸を１軸ずつ合成する。
【００９３】
まず、実施の形態２の考え方を説明する。例えば直線軸３軸に対して、回転軸２軸を１軸ずつ合成する場合について例示的に説明する。
【００９４】
直線軸の指定点列Ｐｊ（ｘｊ，ｙｊ，ｚｊ）および工具姿勢を表す角度の指定点列Ｖｊ（ｂｊ，ｃｊ）に対して、４次元空間の点間距離を、以下の数式（１２ａ）、（１２ｂ）で定義する。
【００９５】
ｄｂｊ＝√｛（ｘｊ−ｘｊ−１）２＋（ｙｊ−ｙｊ−１）２
＋（ｚｊ−ｚｊ−１）２＋（ｂｊ−ｂｊ−１）２｝・・・（１２ａ）
ｄｃｊ＝√｛（ｘｊ−ｘｊ−１）２＋（ｙｊ−ｙｊ−１）２
＋（ｚｊ−ｚｊ−１）２＋（ｃｊ−ｃｊ−１）２｝・・・（１２ｂ）
【００９６】
数式（１２ａ）において、ｄｂｊは回転軸のＢ軸を直線軸ｘ、ｙ、ｚに合成した４次元空間における点間距離であり、数式（１２ｂ）において、ｄｃｊは回転軸のＣ軸を直線軸ｘ、ｙ、ｚに合成した４次元空間における点間距離である。直線軸の長さと回転軸の角度の次元の違いは、例えば１°＝１ｍｍと換算することで次元を合わせるものとする。
【００９７】
このとき、上記の数式（１）、（３）、（４ａ）、（４ｂ）は、点列間の距離ｄｊを式（１２ａ）のｄｂｊとすることで、ｘ、ｙ、ｚ、ｂの各軸成分について定義され、数式（１）のスプライン曲線は、各軸の成分に分解して、次の数式（１３ａ）に示すように求めることができる。
【００９８】
Ｐｊ（ｔ）＝［Ｐｘｊ（ｔ），Ｐｙｊ（ｔ），Ｐｚｊ（ｔ），Ｐｂｊ（ｔ）］
・・・（１３ａ）
【００９９】
ここで、数式（１３ａ）のＸ，Ｙ，Ｚの各成分Ｐｘｊ（ｔ）、Ｐｙｊ（ｔ）、Ｐｚｊ（ｔ）は、数式（５）、（７）のＰｘｊ（ｔ）、Ｐｙｊ（ｔ）、Ｐｚｊ（ｔ）とは異なる。また数式（１３ａ）のＢの成分Ｐｂｊ（ｔ）は、数式（７）のＰｂｊ（ｔ）とは異なる。
【０１００】
ここで、工具先端の移動距離の積算値Ｌを考え、積算値Ｌを１つの軸とみなした場合の成分ｌを上記の数式（８）に示すようにおく。
【０１０１】
このとき、図９に示すようにＬ−Ｂの２次元平面を滑らかに通過するスプライン曲線として、次の数式（１４ａ）で表される曲線を考える。
【０１０２】
Ｐｊ（ｔ）＝［Ｐｌｊ（ｔ），Ｐｂｊ（ｔ）］・・・（１４ａ）
【０１０３】
このとき、点列間の距離ｄｂｊ’は、次の数式（１５ａ）で示すように表される。
【０１０４】
ｄｂｊ’＝√｛（ｌｊ−ｌｊ−１）２＋（ｂｊ−ｂｊ−１）２｝・・・（１５ａ）
【０１０５】
数式（１５ａ）において、明らかに、上記の数式（１１）が成り立つ。
【０１０６】
数式（６）、（１５ａ）、（１１）により、ｄｂｊ＝ｄｂｊ’  が成り立つことが分かる。これにより、数式（１４ａ）で求めるスプライン曲線のＢ軸成分Ｐｂｊ（ｔ）は、数式（１３ａ）で求めるスプライン曲線のＢ軸成分に一致する。すなわち、数式（１３ａ）で求めたスプライン曲線のＰｂｊ（ｔ）は、直線軸の指令点列間の移動に同期して回転軸のＢ軸が滑らかに変化する曲線式とみなすことができる。
【０１０７】
同様にＣ軸についても、数式（１）、（３）、（４ａ）、（４ｂ）は、点列間の距離ｄｊを式（１２ｂ）のｄｃｊとすることで、ｘ、ｙ、ｚ、ｃの各軸成分について定義され、数式（１）のスプライン曲線は、各軸の成分に分解して、次の数式（１３ｂ）に示すように求めることができる。
【０１０８】
Ｐｊ（ｔ）＝［Ｐｘｊ（ｔ），Ｐｙｊ（ｔ），Ｐｚｊ（ｔ），Ｐｃｊ（ｔ）］
・・・（１３ｂ）
【０１０９】
Ｂ軸の場合と同様に、数式（１３ｂ）のＣ軸成分Ｐｃｊ（ｔ）は、直線軸の指令点列間の移動に同期して回転軸のＣ軸が滑らかに変化する曲線式とみなすことができる。
【０１１０】
そこで、実施の形態２では、例えば、先端位置曲線生成手段は、直線軸の位置指令の点列から数式（５）によるスプライン曲線を導出し、工具姿勢曲線生成手段は、直線軸および回転軸の指令位置の点列から、直線軸に対して回転軸を１軸ずつ合成した合成軸をもとにして数式（１３ａ）（１３ｂ）による工具姿勢曲線を生成する。
【０１１１】
具体的には、工具姿勢曲線生成部５ｉの動作が、図９に示すように実施の形態１と異なり、データテーブル８ｉの内容が、図１０に示すように、実施の形態１と異なる。
【０１１２】
すなわち、プログラム入力部２によりデータテーブル８ｉに設定されるデータのうち、ｄｂｊは、直線軸の指定点列Ｐｊ（ｘｊ、ｙｊ、ｚｊ）および工具姿勢を表す角度の指定点列Ｖｊ（ｂｊ、ｃｊ）に対して、直線軸３軸と回転軸Ｂ軸との４軸を合成した４次元空間における点間距離であり、上記の数式（１２ａ）で表される。ｄｃｊは、直線軸の指定点列Ｐｊ（ｘｊ、ｙｊ、ｚｊ）および工具姿勢を表す角度の指定点列Ｖｊ（ｂｊ、ｃｊ）に対して、直線軸３軸と回転軸Ｃ軸との４軸を合成した４次元空間における点間距離であり、上記の数式（１２ｂ）で表される。
【０１１３】
また、曲線生成部３では、工具姿勢曲線生成部５ｉが、データテーブル８ｉから工具姿勢が指令点を通過しながら滑らかに変化する曲線式を生成する。生成の手順としては、工具先端の座標値および工具姿勢の一部の座標値からなるＰｊ’＝（Ｘｊ、Ｙｊ、Ｚｊ、Ｂｊ）、および直線軸３軸と回転軸Ｂ軸を合成した指令点列間の距離ｄｂｊをｄｊとして（数式（１２ａ）、図９参照）、各指令点Ｐｊ’における接線ベクトルｑｊ’＝（ｑｘｊ、ｑｙｊ、ｑｚｊ、ｑｂｊ）としたときに、曲線の２次微分が連続となる数式（３）と、曲線の始点Ｐ０’および終点Ｐｎ’で曲率０となる端点条件の数式（４ａ）、（４ｂ）とから、Ｂ軸の成分のみについて、上記（ｎ＋１）個の連立方程式から、（ｎ＋１）個の接線ベクトルの成分ｑｂｊ（ｎ＝０、１、・・・、ｎ）を算出する。算出した結果は、データテーブル８ｉに、回転軸の接線ベクトルのＢ軸成分ｑｂ（図１０参照）として格納する。
【０１１４】
次に、工具姿勢曲線生成部５ｉが、工具先端の座標値および工具姿勢の一部の座標値からなるＰｊ”＝（Ｘｊ、Ｙｊ、Ｚｊ、Ｃｊ）、および直線軸３軸と回転軸Ｃ軸を合成した指令点列間の距離ｄｃｊをｄｊとして（数式（１２ｂ）、図９参照）、各指令点Ｐｊ”における接線ベクトルｑｊ”＝（ｑｘｊ、ｑｙｊ、ｑｚｊ、ｑｃｊ）としたときに、曲線の２次微分が連続となる数式（３）と、曲線の始点Ｐ０”および終点Ｐｎ”で曲率０となる端点条件の数式（４ａ）、（４ｂ）とから、Ｃ軸の成分のみについて、上記（ｎ＋１）個の連立方程式から、（ｎ＋１）個の接線ベクトルの成分ｑｃｊ（ｎ＝０、１、・・・、ｎ）を算出する。算出した結果は、データテーブル８ｉに、回転軸の接線ベクトルのＣ軸成分ｑｃ（図１０参照）として格納する。
【０１１５】
以上のように、実施の形態２では、工具姿勢曲線生成部５ｉが、複数の回転軸のそれぞれに対して、回転軸１軸と直線軸との合成軸を用いて工具姿勢曲線を生成し、工具姿勢曲線の回転軸成分を抽出する処理を行う。これにより、工具姿勢曲線を構成する各回転軸の移動を工具先端位置の移動に連動した滑らかな移動とすることができる。この結果、加工プログラムで指令された先端位置を通過する滑らかな曲線に沿って工具先端位置を補間できるとともに、工具姿勢を与える回転軸２軸を加工プログラムに指令された姿勢を通過しながら工具先端の移動に同期して滑らかに変化させる補間結果を得ることができる。
【産業上の利用可能性】
【０１１６】
以上のように、本発明にかかる数値制御装置は、工作機械の数値制御に有用である。
【符号の説明】
【０１１７】
１  加工プログラム、  ２  プログラム入力部、  ３  曲線生成部、  ４  工具先端位置曲線生成部、  ５，５ｉ  工具姿勢曲線生成部、  ６  補間演算部、  ７  補間出力部、  ８，８ｉ  データテーブル、  ９  サーボ駆動部、  １０，１０ｉ  数値制御装置、  １００  工作機械、  １０１  テーブル、  １０２  工具、  １０２ａ  先端位置。
【図１】
2014016943.tif 000004
【図２】
2014016943.tif 000005
【図３】
2014016943.tif 000006
【図４】
2014016943.tif 000007
【図５】
2014016943.tif 000008
【図６】
2014016943.tif 000009
【図７】
2014016943.tif 000010
【図８】
2014016943.tif 000011
【図９】
2014016943.tif 000012
【図１０】
2014016943.tif 000013
【手続補正書】
【提出日】平成25年3月18日(2013.3.18)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
直線軸の位置により決定される工具先端位置の指令と回転軸の回転角度によって決定される工具姿勢の指令とを含む加工プログラムに従って、工具、直線軸、及び回転軸を有する機械を数値制御する数値制御装置であって、
前記加工プログラム中の連続したブロックで指令される工具先端位置及び工具姿勢を読み取って、直線軸の指令位置列と回転軸の指令位置列とを作成するプログラム入力手段と、
前記作成された直線軸の指令位置列に基づいて、工具先端位置に関する工具先端位置曲線を生成する先端位置曲線生成手段と、
前記作成された直線軸の指令位置列と前記作成された回転軸の指令位置列とに基づいて、工具先端位置の移動に連動した、工具姿勢に関する工具姿勢曲線を生成する工具姿勢曲線生成手段と、
各補間周期において、前記工具先端位置曲線から工具先端位置の補間点を演算し、前記工具姿勢曲線から工具姿勢の補間点を演算し、前記工具先端位置の補間点と工具姿勢の補間点とに応じて、直線軸の機械位置の補間点を演算する補間演算手段と、
前記演算された機械位置の補間点に直線軸を移動させ、前記演算された工具姿勢の補間点に回転軸を移動させる補間出力手段と、
を備え、
前記先端位置曲線生成手段は、前記作成された直線軸の指令点列間の距離に基づいて、曲線の２次微分が連続となるように前記工具先端位置曲線を生成し、
前記工具姿勢曲線生成手段は、直線軸と回転軸との合成軸の指令点列間の距離に基づいて、曲線の２次微分が連続となるように前記工具姿勢曲線を生成する
ことを特徴とする数値制御装置。
【請求項２】
前記工具姿勢曲線生成手段は、直線軸と回転軸複数軸との合成軸の指令点列間の距離に基づいて、曲線の２次微分が連続となるように前記工具姿勢曲線を生成する
ことを特徴とする請求項１に記載の数値制御装置。
【請求項３】
前記工具姿勢曲線生成手段は、複数の回転軸のそれぞれに対して、回転軸１軸と直線軸との合成軸の指令点列間の距離に基づいて、曲線の２次微分が連続となるように前記工具姿勢曲線を生成し、前記工具姿勢曲線の回転軸成分を抽出する処理を行う
ことを特徴とする請求項１に記載の数値制御装置。
【国際調査報告】
2014016943.tif 000014
2014016943.tif 000015
2014016943.tif 000016