(57)【要約】【課題】加工点が滑らかな曲線上を移動するとともに基準工具長位置が滑らかに変化するように回転軸を有する工作機械を制御する数値制御装置を提供すること。【解決手段】数値制御装置１００はプログラム読み取り手段１によって指令プログラムを読み取り、読取ったプログラム中の各ブロックについてブロック解析２によって解析し、解析したデータによって補間３を行い、補間した各軸位置データに基づいて各軸サーボ４を動作させる。補正量指令手段５はプログラム読み取り手段１の一部として追加する。加工点曲線生成手段６、基準工具長位置列生成手段７、および基準工具長位置曲線生成手段８はブロック解析の一部として追加する。補間位置計算手段９、補間工具姿勢計算手段１０、および軸位置生成手段１１は補間の一部として追加する。【選択図】図１
2010146176.tif 000002
【特許請求の範囲】
【請求項１】
複数個の直線移動軸および回転移動軸を少なくとも１軸有する工作機械を制御して、テーブル上に固定された加工物を工具により連続的に加工するための数値制御装置において、
実工具長補正量および基準工具長補正量を指令または設定する補正量指令手段と、
加工プログラム上で連続して指令されるブロックを読み取り加工点指令列と工具姿勢指令列を作成する指令列作成手段と、
前記加工点指令列から滑らかな加工点曲線を生成する加工点曲線生成手段と、
前記工具姿勢指令列から工具姿勢単位ベクトル列を計算し前記基準工具長補正量を積算して基準工具長ベクトル列を求め前記加工点指令列に加算することにより基準工具長位置列を生成する基準工具長位置列生成手段と、
前記基準工具長位置列から滑らかな基準工具長位置曲線を生成する基準工具長位置曲線生成手段と、
前記加工点曲線と前記基準工具長位置曲線を一定周期毎補間し、各補間周期における補間加工位置と補間基準工具長位置を求める補間位置計算手段と、
前記補間位置計算手段で求めた前記補間加工位置と前記補間基準工具長位置から補間工具姿勢を求める補間工具姿勢計算手段と、
前記補間工具姿勢、前記補間加工位置、および前記実工具長補正量から直線移動軸の軸位置と回転移動軸の軸位置を生成する軸位置生成手段と、
前記生成された軸位置への移動を行う軸移動手段と、
を有することを特徴とする回転軸を有する工作機械用の数値制御装置。
【請求項２】
前記加工点曲線生成手段は、前記加工点指令列に基づいて加工点近似曲線を生成し、前記加工点指令列を前記加工点近似曲線上の一番近い位置に向かって第１設定トレランス量以内で移動することによって前記加工点指令列に対応する修正加工点列を求め、前記修正加工点列を通る曲線として前記加工点曲線を求めることを特徴とする請求項１に記載の回転軸を有する工作機械用の数値制御装置。
【請求項３】
前記加工点曲線生成手段は、前記加工点指令列に基づいて前記加工点指令列を通る曲線として前記加工点曲線を求めることを特徴とする請求項１に記載の回転軸を有する工作機械用の数値制御装置。
【請求項４】
前記基準工具長位置曲線生成手段は、前記基準工具長位置列に基づいて基準工具長位置近似曲線を生成し、前記基準工具長位置列を前記基準工具長位置近似曲線上の一番近い位置に向かって第２設定トレランス量以内で移動することによって前記基準工具長位置列に対応する修正基準工具長位置列を求め、前記修正基準工具長位置列を通る曲線として前記基準工具長位置曲線を求めることを特徴とする請求項１に記載の回転軸を有する工作機械用の数値制御装置。
【請求項５】
前記基準工具長位置曲線生成手段は、前記基準工具長位置列に基づいて前記基準工具長位置列を通る曲線として前記基準工具長位置曲線を求めることを特徴とする請求項１に記載の回転軸を有する工作機械用の数値制御装置。
【請求項６】
前記工具姿勢指令列は、回転移動軸２軸の位置によって指令されている請求項１〜請求項５のいずれか１つに記載の回転軸を有する工作機械用の数値制御装置。
【請求項７】
前記工具姿勢指令列は、工具姿勢ベクトルとして指令されている請求項１〜請求項５のいずれか１つに記載の回転軸を有する工作機械用の数値制御装置。
【請求項８】
前記補正量指令手段は、実工具径補正量および工具径補正方向をも指令または設定し、
前記指令列作成手段は、前後する前ブロック指令、後ブロック指令、実工具径補正量および工具径補正方向から前記前ブロックの終点における工具径補正ベクトルを求め、前記前ブロックの直線移動軸終点位置に前記工具径補正ベクトルを加算した位置を加工点とすることにより加工点指令列を作成することを特徴とする請求項１〜請求項７のいずれか１つに記載の回転軸を有する工作機械用の数値制御装置。
【請求項９】
前記補正量指令手段は、実工具径補正量および工具径補正方向をも指令または設定し、
前記加工点曲線生成手段は、前記加工点曲線を表す関数を１次微分した加工点導関数をも生成し、
前記基準工具長位置曲線生成手段は、前記基準工具長位置曲線を表す関数を１次微分した基準工具長位置導関数をも作成し、
前記補間位置計算手段は、前記加工点導関数および前記基準工具長位置導関数をも補間することにより加工点接線ベクトルおよび基準工具長位置接線ベクトルを計算し、
前記補間工具姿勢計算手段は、前記補間工具姿勢、前記加工点接線ベクトル、前記基準工具長位置接線ベクトル、前記実工具径補正量および前記工具径補正方向から径補正補間加工位置および径補正補間基準工具長位置を計算し前記径補正補間加工位置を前記補間加工位置に代入し前記径補正補間基準工具長位置を前記補間基準工具長位置に代入し、前記補間加工位置と前記補間基準工具長位置から再度工具姿勢を求め前記補間工具姿勢に代入することを特徴とする請求項１〜７のいずれか１つに記載の回転軸を有する工作機械用の数値制御装置。
【請求項１０】
前記補正量指令手段は、実工具径補正量および工具径補正方向をも指令または設定し、
前記補間位置計算手段は、前記補間加工位置、前記補間基準工具長位置、過去の補間周期における前記補間加工位置および過去の補間周期における前記補間基準工具長位置により加工点接線ベクトルおよび基準工具長位置接線ベクトルを計算し、
前記補間工具姿勢計算手段は、前記補間工具姿勢、前記加工点接線ベクトル、前記基準工具長位置接線ベクトル、前記実工具径補正量および前記工具径補正方向から径補正補間加工位置および径補正補間基準工具長位置を計算し前記径補正補間加工位置を前記補間加工位置に代入し前記径補正補間基準工具長位置を前記補間基準工具長位置に代入し、前記補間加工位置と前記補間基準工具長位置から再度工具姿勢を求め前記補間工具姿勢に代入することを特徴とする請求項１〜７のいずれか１つに記載の回転軸を有する工作機械用の数値制御装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、回転軸を有する工作機械用の数値制御装置に関する。
【背景技術】
【０００２】
３つの直線軸と２つの回転軸を備えた５軸加工機を用いて３軸加工ではできなかった複雑で難しい形状の加工が行われるようになっている。
【０００３】
特許文献１には、工具先端点の移動経路と工具方向（工具姿勢）の移動指令に対して、加工物と工具との相対移動速度に基づいてそれぞれを補間しながら移動経路の補間点を補正して、工具先端点が指令された移動経路上を指令された速度で移動するようにサーボモータを駆動する技術が開示されている。この文献に開示される技術には工具姿勢を滑らかに変化させる技術は含まれていない。
【０００４】
特許文献２には、指令された点列とベクトル列から、加工点が指令点列から生成される滑らかな曲線上を移動し、ベクトル先端点が指令ベクトル列から生成される滑らかな曲線上を変化するように前記加工点と前記ベクトル先端点を補間する補間手段と、補間された前記加工点、補間された前記ベクトル先端点、設定された工具径補正量および設定された工具長補正量から直線移動軸と回転軸の位置を生成して軸移動する技術が開示されている。
【０００５】
特許文献３には、指令点列から滑らかな曲線を生成しその曲線に沿って補間する方法において、直線軸３軸分の要素と２軸以上の回転軸分の要素に分割し、直線軸３軸分の要素に対して滑らかな曲線を生成し２軸以上の回転軸分の要素に対して滑らかな曲線を生成し、それらを補間することにより回転軸を滑らかに変化させる技術が開示されている。
【０００６】
【特許文献１】特開２００３−１９５９１７号公報
【特許文献２】特開２００５−１８２４３７号公報
【特許文献３】特開２００６−３０９６４５号公報
【発明の開示】
【発明が解決しようとする課題】
【０００７】
５軸加工機における加工では、特許文献１にあるような、工具先端点の移動経路と工具方向（工具姿勢）の移動指令に対して、指令された加工物と工具との相対移動速度に基づいて工具先端点の移動経路を補間しながら工具方向（工具姿勢）も補間し、工具方向（工具姿勢）が変化しながら工具先端点が指令された移動経路上を指令された速度で移動する加工が一般的になってきている。このような指令と加工方法を工具先端点制御という。通常、このプログラム指令はＣＡＭによって作成される。
【０００８】
ここで、工具先端点制御を行いながら工具側面で滑らかな曲面である加工物側面を加工する場合があり、その場合、工具姿勢（工具方向）が滑らかに変化しながら加工する必要がある。そのための１つの技術が特許文献２に開示されるものであり、他の１つが特許文献３に開示されるものである。
【０００９】
しかし、特許文献２の技術では、加工点が滑らかな曲線上を移動するとともに工具姿勢（工具方向）が滑らかに変化するように制御する。加工点の移動の滑らかさと工具姿勢（工具方向）の変化の滑らかさとを別々に制御するため、加工面自体が滑らかになるかどうかの保証がない。
【００１０】
また、特許文献３の技術では、加工点（直線軸３軸）が滑らかな曲線上を移動するとともに回転軸が滑らかに変化するように制御する。この技術には、回転軸も含めて滑らかに加工する点で後述する本発明と似ているが、本発明にあるような基準工具長の位置が滑らかな変化するように基準工具長位置を求めて工具姿勢を滑らかに変化させる技術は開示されない。やはり、この技術でも、加工点の移動の滑らかさと回転軸移動の滑らかさを別々に制御するため、加工面自体が滑らかになるかどうかの保証がない。
【００１１】
そこで本発明の目的は、加工点が滑らかな曲線上を移動するとともに基準工具長位置が滑らかに変化するように回転軸を有する工作機械を制御する数値制御装置を提供することである。
【課題を解決するための手段】
【００１２】
本願の請求項１に係る発明は、複数個の直線移動軸および回転移動軸を少なくとも１軸有する工作機械を制御して、テーブル上に固定された加工物を工具により連続的に加工するための数値制御装置において、実工具長補正量および基準工具長補正量を指令または設定する補正量指令手段と、加工プログラム上で連続して指令されるブロックを読み取り加工点指令列と工具姿勢指令列を作成する指令列作成手段と、前記加工点指令列から滑らかな加工点曲線を生成する加工点曲線生成手段と、前記工具姿勢指令列から工具姿勢単位ベクトル列を計算し前記基準工具長補正量を積算して基準工具長ベクトル列を求め前記加工点指令列に加算することにより基準工具長位置列を生成する基準工具長位置列生成手段と、前記基準工具長位置列から滑らかな基準工具長位置曲線を生成する基準工具長位置曲線生成手段と、前記加工点曲線と前記基準工具長位置曲線を一定周期毎補間し、各補間周期における補間加工位置と補間基準工具長位置を求める補間位置計算手段と、前記補間位置計算手段で求めた前記補間加工位置と前記補間基準工具長位置から補間工具姿勢を求める補間工具姿勢計算手段と、前記補間工具姿勢、前記補間加工位置、および前記実工具長補正量から直線移動軸の軸位置と回転移動軸の軸位置を生成する軸位置生成手段と、前記生成された軸位置への移動を行う軸移動手段と、を有することを特徴とする回転軸を有する工作機械用の数値制御装置である。
【００１３】
請求項２に係る発明は、前記加工点曲線生成手段は、前記加工点指令列に基づいて加工点近似曲線を生成し、前記加工点指令列を前記加工点近似曲線上の一番近い位置に向かって第１設定トレランス量以内で移動することによって前記加工点指令列に対応する修正加工点列を求め、前記修正加工点列を通る曲線として前記加工点曲線を求めることを特徴とする請求項１に記載の回転軸を有する工作機械用の数値制御装置である。  
請求項３に係る発明は、前記加工点曲線生成手段は、前記加工点指令列に基づいて前記加工点指令列を通る曲線として前記加工点曲線を求めることを特徴とする請求項１に記載の回転軸を有する工作機械用の数値制御装置である。  
請求項４に係る発明は、前記基準工具長位置曲線生成手段は、前記基準工具長位置列に基づいて基準工具長位置近似曲線を生成し、前記基準工具長位置列を前記基準工具長位置近似曲線上の一番近い位置に向かって第２設定トレランス量以内で移動することによって前記基準工具長位置列に対応する修正基準工具長位置列を求め、前記修正基準工具長位置列を通る曲線として前記基準工具長位置曲線を求めることを特徴とする請求項１に記載の回転軸を有する工作機械用の数値制御装置である。
【００１４】
請求項５に係る発明は、前記基準工具長位置曲線生成手段は、前記基準工具長位置列に基づいて前記基準工具長位置列を通る曲線として前記基準工具長位置曲線を求めることを特徴とする請求項１に記載の回転軸を有する工作機械用の数値制御装置である。
請求項６に係る発明は、前記工具姿勢指令列は、回転移動軸２軸の位置によって指令されている請求項１〜請求項５のいずれか１つに記載の回転軸を有する工作機械用の数値制御装置である。  
請求項７に係る発明は、前記工具姿勢指令列は、工具姿勢ベクトルとして指令されている請求項１〜請求項５のいずれか１つに記載の回転軸を有する工作機械用の数値制御装置である。  
請求項８に係る発明は、前記補正量指令手段は、実工具径補正量および工具径補正方向をも指令または設定し、前記指令列作成手段は、前後する前ブロック指令、後ブロック指令、実工具径補正量および工具径補正方向から前記前ブロックの終点における工具径補正ベクトルを求め、前記前ブロックの直線移動軸終点位置に前記工具径補正ベクトルを加算した位置を加工点とすることにより加工点指令列を作成することを特徴とする請求項１〜請求項７のいずれか１つに記載の回転軸を有する工作機械用の数値制御装置である。
【００１５】
請求項９に係る発明は、前記補正量指令手段は、実工具径補正量および工具径補正方向をも指令または設定し、前記加工点曲線生成手段は、前記加工点曲線を表す関数を１次微分した加工点導関数をも生成し、前記基準工具長位置曲線生成手段は、前記基準工具長位置曲線を表す関数を１次微分した基準工具長位置導関数をも作成し、前記補間位置計算手段は、前記加工点導関数および前記基準工具長位置導関数をも補間することにより加工点接線ベクトルおよび基準工具長位置接線ベクトルを計算し、前記補間工具姿勢計算手段は、前記補間工具姿勢、前記加工点接線ベクトル、前記基準工具長位置接線ベクトル、前記実工具径補正量および前記工具径補正方向から径補正補間加工位置および径補正補間基準工具長位置を計算し前記径補正補間加工位置を前記補間加工位置に代入し前記径補正補間基準工具長位置を前記補間基準工具長位置に代入し、前記補間加工位置と前記補間基準工具長位置から再度工具姿勢を求め前記補間工具姿勢に代入することを特徴とする請求項１〜７のいずれか１つに記載の回転軸を有する工作機械用の数値制御装置である。
【００１６】
請求項１０に係る発明は、前記補正量指令手段は、実工具径補正量および工具径補正方向をも指令または設定し、前記補間位置計算手段は、前記補間加工位置、前記補間基準工具長位置、過去の補間周期における前記補間加工位置および過去の補間周期における前記補間基準工具長位置により加工点接線ベクトルおよび基準工具長位置接線ベクトルを計算し、前記補間工具姿勢計算手段は、前記補間工具姿勢、前記加工点接線ベクトル、前記基準工具長位置接線ベクトル、前記実工具径補正量および前記工具径補正方向から径補正補間加工位置および径補正補間基準工具長位置を計算し前記径補正補間加工位置を前記補間加工位置に代入し前記径補正補間基準工具長位置を前記補間基準工具長位置に代入し、前記補間加工位置と前記補間基準工具長位置から再度工具姿勢を求め前記補間工具姿勢に代入することを特徴とする請求項１〜７のいずれか１つに記載の回転軸を有する工作機械用の数値制御装置である。
【発明の効果】
【００１７】
本発明により、加工点が滑らかな曲線上を移動するとともに基準工具長位置が滑らかに変化するように回転軸を有する工作機械を制御する数値制御装置を提供できる。  
【００１８】
本発明により、テーブルに取り付けられた加工物に対して、直線軸３軸と回転軸２軸によって加工する５軸加工機を制御する数値制御装置において、指令加工点を滑らかな曲線で補間するとともに、基準工具長位置を滑らかな曲線で補間し、補間された加工位置と補間された基準工具長位置とから工具姿勢を計算し、計算された工具姿勢となるように直線軸と回転軸を制御することにより工具姿勢が滑らかに変化しながら加工することができる数値制御装置が提供できる。このことにより、加工点が移動する滑らかな曲線と基準工具長位置が滑らかに変化する曲線で囲まれた加工面が必ず滑らかな曲面として得られる。
【発明を実施するための最良の形態】
【００１９】
以下、本発明の実施形態を図面とともに説明する。  
図１は、本発明の数値制御装置の概略の機能ブロック図である。  
数値制御装置１００はプログラム読み取り手段１によって指令プログラムを読み取り、読取ったプログラム中の各ブロックについてブロック解析２によって解析し、解析したデータによって補間３を行い、補間した各軸位置データに基づいて各軸サーボ４を動作させる。
【００２０】
補正量指令手段５はプログラム読み取り手段１の一部として追加する。ここでは、プログラム読み取り手段１の一部として追加したが、別途パラメータなどに設定することも可能である。加工点曲線生成手段６、基準工具長位置列生成手段７、および基準工具長位置曲線生成手段８はブロック解析の一部として追加する。補間位置計算手段９、補間工具姿勢計算手段１０、および軸位置生成手段１１は補間３の一部として追加する。
【００２１】
次に、実施形態１〜実施形態５を用いて、指令加工点を滑らかな曲線で補間するともに基準工具長位置を滑らかな曲線で補間し、補間された加工位置と補間された基準工具長位置から工具姿勢を計算し、計算された工具姿勢となるように５軸加工機の直線軸と回転軸とを制御することにより工具姿勢が滑らかに変化しながら加工することを実現する数値制御装置１００を説明する。
【００２２】
以下、５軸加工機としては図２に示されるような工具ヘッド回転型機械を例として本発明の実施形態を説明する。ただし、２軸の回転軸によってテーブルが回転し傾斜するテーブル回転型機械や、１軸の回転軸によってテーブルが回転し他の１軸の回転軸によって工具ヘッドが傾斜する混合型機械などの機械にも本発明を適用できる。なお、テーブル回転型機械や混合型機械は公知のものであるから図示を省略する。
【００２３】
●実施形態１  
次のプログラム指令列で説明する。
＜プログラム指令＞
G aa H hh Q qq ;
X Px1 Y Py1 Z Pz1 B Pb1 C Pc1 ;
X Px2 Y Py2 Z Pz2 B Pb2 C Pc2 ;
・・・
X Pxn-2 Y Pyn-2 Z Pzn-2 B Pbn-2 C Pcn-2 ;
X Pxn-1 Y Pyn-1 Z Pzn-1 B Pbn-1 C Pcn-1 ;
X Pxn Y Pyn Z Pzn B Pbn C Pcn ;
X Pxn+1 Y Pyn+1 Z Pzn+1 B Pbn+1 C Pcn+1 ;
X Pxn+2 Y Pyn+2 Z Pzn+2 B Pbn+2 C Pcn+2 ;
・・・
・・・
G bb ;
ここでは、Ｇａａは本発明による工具姿勢を滑らかに制御するモードにするＧコードであり、Ｇｂｂはそのモードを解除するＧコードである。Ｈｈｈは実工具長補正量を指令する補正番号であり、これによって実工具長が指令される。Ｑｑｑは基準工具長補正量を指令する補正番号コードであり、これによって基準工具長が指令される。実工具長と基準工具長について、ここではプログラムで指令するようにしたが、パラメータなどに設定するようにすることも可能である。
【００２４】
直線軸Ｘ軸、Ｙ軸、Ｚ軸に対する指令値が、加工点指令列（Ｐｉ（Ｐｘｉ，Ｐｙｉ，Ｐｚｉ）、ｉ＝１，２，．．．ｎ-２，ｎ-１，ｎ，ｎ+１，ｎ+２．．．）である。回転移動軸Ｂ軸、Ｃ軸に対する指令値が工具姿勢指令列（Ｖｉ（Ｐｃｉ，Ｐｂｉ）、ｉ＝１，２，．．．ｎ-２，ｎ-１，ｎ，ｎ+１，ｎ+２．．．）である。なお、回転移動軸については、ここでは、Ｂ軸，Ｃ軸としたが、Ａ軸，Ｃ軸の組み合わせや、Ａ軸，Ｂ軸の組み合わせも可能である。
【００２５】
数値制御装置１００はプログラム読み取り手段１によって実施形態１のプログラム指令の連続したブロックを読み取り、ブロック解析２により加工点指令列（Ｐｉ（Ｐｘｉ，Ｐｙｉ，Ｐｚｉ）、ｉ＝１，２，．．．ｎ-２，ｎ-１，ｎ，ｎ+１，ｎ+２．．．）および工具姿勢指令列（Ｖｉ（Ｐｃｉ，Ｐｂｉ）、ｉ＝１，２，．．．ｎ-２，ｎ-１，ｎ，ｎ+１，ｎ+２．．．）を作成する。
ここで、補正量指令手段５によって実工具長補正量および基準工具長補正量とを指令または設定される。
【００２６】
次に、図３に示される加工点指令列から加工点曲線生成手段６により滑らかな加工点曲線を生成することを説明する。まず、加工点指令列に対して最小二乗法によって近似曲線を作成する。近似曲線の作成に最小二乗法を用いることはよく知られている手法である。
【００２７】
次に、加工点指令列を加工点近似曲線上の一番近い位置に向かって第１設定トレランス量以内で移動することによって加工点指令列に対応する修正加工点列を求める。修正加工点が近似曲線上にあるなら修正加工点における近似曲線の一次微分値を使用し、修正加工点が近似曲線上にないなら修正加工点が一番近い近似曲線上の位置における近似曲線の１次微分値を使用し、各修正加工点における１次微分値を求める（図４参照）。ただし、図４は前者、つまり修正加工点が近似曲線上にあるケースを示しており、後者つまり修正加工点が近似曲線上にないケースは特に図示していない。
【００２８】
このようにして求まった各修正加工点の位置とそれに対応する１次微分値によって３次多項式曲線を生成できる。より具体的に言えば、加工点指令列がＰ1，Ｐ2，．．．Ｐn，Ｐn+1，．．．であるとし、それに対応する修正加工点列がＱ1，Ｑ2，．．．Ｑn，Ｑn+1，．．．であるとし、修正加工点列の１次微分値がＱ1'，Ｑ2'，．．．Ｑn'，Ｑn+1'，．．．であるとする。そうすると、修正加工点Ｑn，Ｑn+1の間のパラメータｔを媒介変数とする３次多項式曲線である数１式は、Ｑn，Ｑn+1、Ｑn'，Ｑn+1'から各係数Ａ、Ｂ、Ｃ、Ｄを計算することにより、求めることができる。
【００２９】
【数１】
2010146176.tif 000003
【００３０】
ここで、Ｐn(t)，Ａn，Ｂn，Ｃnはｘ，ｙ，ｚの要素をもつベクトルである（図５参照）。同様に各修正加工点間の３次多項式曲線を求めることができる。そして、これら各修正加工点間の３次多項式曲線を結合することにより、図６に示される加工点曲線を求めることができる。
【００３１】
なお、加工点指令列に対して最小二乗法によって近似曲線を作成し、加工点指令列を加工点近似曲線上の一番近い位置に向かって第１設定トレランス量以内で移動することによって加工点指令列に対応する修正加工点列を求めるとしたが、第１設定トレランス量を０（ゼロ）とすれば、全ての加工点指令列を通る曲線として加工点曲線を求めることができる。
【００３２】
以上の説明では３次多項式曲線を使用したが、他にもＮＵＲＢＳ曲線、スプライン曲線、ベジェ曲線などを使用し加工点曲線を求めることができる。
【００３３】
次に、基準工具長位置列生成手段７により基準工具長位置列を生成することを説明する。
まず、工具姿勢指令列（Ｖｉ（Ｐｃｉ，Ｐｂｉ）、ｉ＝１，２，．．．ｎ-２，ｎ-１，ｎ，ｎ+１，ｎ+２．．．）から数２式により工具姿勢単位ベクトル列（Ｕｉ（Ｉｉ，Ｊｉ，Ｋｉ）、ｉ＝１，２，．．．ｎ-２，ｎ-１，ｎ，ｎ+１，ｎ+２．．．）を計算する。なお、記号「*」は積算を意味する。
【００３４】
【数２】
2010146176.tif 000004
【００３５】
これにプログラム指令Ｑｑｑで指令される基準工具長Ｌｓを積算し基準工具長ベクトル列を求め、加工点指令列Ｐｉ（Ｐｘｉ，Ｐｙｉ，Ｐｚｉ）に加算することにより、基準工具長位置列Ｓｉ（Ｓｘｉ，Ｓｙｉ，Ｓｚｉ）を数３式により生成する。
【００３６】
【数３】
2010146176.tif 000005
【００３７】
次に、基準工具長位置曲線生成手段８により基準工具長位置曲線を生成することを説明する。  
上述した加工点指令列に対して加工点曲線を求めたのと同様に、基準工具長位置列に対して滑らかな基準工具長位置曲線を生成する（図７参照）。つまり、基準工具長位置列に基づいて基準工具長位置近似曲線を生成し、基準工具長位置列を基準工具長位置近似曲線上の一番近い位置に向かって第２設定トレランス量以内で移動することによって基準工具長位置列に対応する修正基準工具長位置列を求め、修正基準工具長位置列を通る曲線として基準工具長位置曲線を求める。加工点指令列に対して加工点曲線を求めた場合は第１設定トレランス量を使用したが、ここでは第２設定トレランス量を使用する。また、同様に、第２設定トレランス量を０（ゼロ）とすれば基準工具長指令列を通る曲線として基準工具長位置曲線を求めることができる。
【００３８】
次に、補間位置計算手段９により補間加工位置Ｃｐ（Ｃｐｘ，Ｃｐｙ，Ｃｐｚ）と補間基準工具長位置Ｓｐ（Ｓｐｘ，Ｓｐｙ，Ｓｐｚ）を求めることを説明する。  
得られた加工点曲線と基準工具長位置曲線を一定周期毎補間し、各補間周期における補間加工位置Ｃｐ（Ｃｐｘ，Ｃｐｙ，Ｃｐｚ）と補間基準工具長位置Ｓｐ（Ｓｐｘ，Ｓｐｙ，Ｓｐｚ）を求める。  
次に、補間工具姿勢計算手段１０により補間工具姿勢Ｔｐ（Ｔｐｘ，Ｔｐｙ，Ｔｐｚ）を計算することを説明する。前記補間加工位置Ｃｐと前記補間基準工具長位置Ｓｐから数４式により補間工具姿勢Ｔｐ（Ｔｐｘ，Ｔｐｙ，Ｔｐｚ）を求める。
【００３９】
【数４】
2010146176.tif 000006
【００４０】
次に、軸位置生成手段１１により直線移動軸の位置（ｘ，ｙ，ｚ）と回転移動軸の位置（Ｂ，Ｃ）を生成することを説明する。
補間加工位置Ｃｐ、補間工具姿勢Ｔｐ、およびプログラム指令Ｈｈｈで指令されている実工具長Ｌａから、数５式により直線移動軸の位置（ｘ，ｙ，ｚ）と回転移動軸の位置（Ｂ，Ｃ）を生成する。Ｂ，Ｃは一般に複数解を持つが、ここでは補間しているブロックのブロック指令におけるＢ，Ｃの指令値Ｐｂｉ，Ｐｃｉに近い解を選択することとする。
【００４１】
【数５】
2010146176.tif 000007
【００４２】
このようにして生成された軸位置へ図８に示されるように工具の移動を行う。  
本実施形態により、テーブルに取り付けられた加工物に対して、直線軸３軸と回転軸２軸によって加工する５軸加工機を制御する数値制御装置において、指令加工点を滑らかな曲線で補間するとともに、基準工具長位置を滑らかな曲線で補間し、補間された加工位置と補間された基準工具長位置とから工具姿勢を計算し、計算された工具姿勢となるように直線軸と回転軸を制御することにより工具姿勢が滑らかに変化しながら加工することができる数値制御装置が提供できる。
【００４３】
●実施形態２
次のプログラム指令列で説明する。
＜プログラム指令＞
G aa H hh Q qq ;
X Px1 Y Py1 Z Pz1 I Pi1 J Pj1 K Pk1 ;
X Px2 Y Py2 Z Pz2 I Pi2 J Pj2 K Pk2 ;
・・・
X Pxn-2 Y Pyn-2 Z Pzn-2 I Pin-2 J Pjn-2 K Pkn-2 ;
X Pxn-1 Y Pyn-1 Z Pzn-1 I Pin-1 J Pjn-1 K Pkn-1 ;
X Pxn Y Pyn Z Pzn I Pin J Pjn K Pkn ;
X Pxn+1 Y Pyn+1 Z Pzn+1 I Pin+1 J Pjn+1 K Pkn+1 ;
X Pxn+2 Y Pyn+2 Z Pzn+2 I Pin+2 J Pjn+2 K Pkn+2 ;
・・・
・・・
G bb ;
Ｇ、Ｈ、Ｑ、Ｘ、Ｙ、Ｚ指令については実施形態１と同様である。Ｉ、Ｊ、Ｋ指令は工具姿勢指令列（Ｖｍ（Ｐｉｍ，Ｐｊｍ，Ｐｋｍ），ｍ＝１，２，．．．ｎ−２，ｎ−１，ｎ，ｎ＋１，ｎ＋２．．．）、であり、工具姿勢（工具方向）を指令する。ここではＶｍは単位ベクトルとする。加工点曲線を実施形態１と同様に求める。実施形態１の工具姿勢単位ベクトル列を求めるところは、実施形態２では数２式の替わりに数６式として求める。
【００４４】
【数６】
2010146176.tif 000008
【００４５】
また、基準工具長位置曲線を実施形態１と同様に求める。次に、加工点曲線と基準工具長位置曲線を一定周期毎補間し、各補間周期における補間加工位置Ｃｐ（Ｃｐｘ，Ｃｐｙ，Ｃｐｚ）と補間基準工具長位置Ｓｐ（Ｓｐｘ，Ｓｐｙ，Ｓｐｚ）を求める。次に、補間加工位置Ｃｐと補間基準工具長位置Ｓｐから補間工具姿勢Ｔｐ（Ｔｐｘ，Ｔｐｙ，Ｔｐｚ）を求める。  
そして、補間工具姿勢Ｔｐ、補間加工位置Ｃｐ、およびプログラム指令Ｈｈｈで指令されている実工具長Ｌａから直線移動軸の位置（Ｘ，Ｙ，Ｚ）と回転移動軸の位置（Ｂ，Ｃ）を生成し、生成された軸位置への移動を行う。
【００４６】
●実施形態３
次のプログラム指令列で説明する。
＜プログラム指令＞
G aa G cc H hh Q qq D dd ;
X Px1 Y Py1 Z Pz1 B Pb1 C Pc1 ;
X Px2 Y Py2 Z Pz2 B Pb2 C Pc2 ;
．．．
X Pxn-2 Y Pyn-2 Z Pzn-2 B Pbn-2 C Pcn-2 ;
X Pxn-1 Y Pyn-1 Z Pzn-1 B Pbn-1 C Pcn-1 ;
X Pxn Y Pyn Z Pzn B Pbn C Pcn ;
X Pxn+1 Y Pyn+1 Z Pzn+1 B Pbn+1 C Pcn+1 ;
X Pxn+2 Y Pyn+2 Z Pzn+2 B Pbn+2 C Pcn+2 ;
．．．
．．．
G bb ;
Ｇａａ、Ｈ、Ｑ、Ｘ、Ｙ、Ｚ、Ｂ、Ｃ指令については実施形態１と同様である。Ｄｄｄは実工具径補正量を指令する補正番号であり、これによって実工具径を指令する。Ｇｃｃは工具径補正方向を指令する。実工具径および工具径補正方向について、ここではプログラムで指令するようにしたが、パラメータなどに設定するようにすることも可能である。
【００４７】
ここで、実工具径補正量がＲ、工具径補正方向が右とする。図９に示されるように、ある前ブロックと後ブロックに着目した場合、前ブロック指令における工具姿勢指令の方向に垂直な面に前ブロックと後ブロックの直線移動軸の移動指令を投影した形状において前ブロックの直線移動軸の移動形状に対して右側にＲだけ離れたオフセット経路と後ブロックの直線移動軸の移動形状に対して右側にＲだけ離れたオフセット経路に対して交点計算を行い、直線移動軸終点位置から交点へのベクトルを工具径補正ベクトルとして作成する技術が３次元工具径補正として知られている。なお、図９では工具ヘッドに対して工具径を大きく描いている。
【００４８】
実施形態３では、前ブロックの直線移動軸終点位置に工具径補正ベクトルを加算した位置を加工点とすることにより加工点指令列を作成する（図９参照）。つまり実施形態３は、実施形態１に対して工具径補正も加えた実施形態である。また、工具径補正方向が左であればＲだけ離れるオフセット経路が直線移動軸の移動指令に対して左側に作成される点が相違するのみである。
【００４９】
●実施形態４
次のプログラム指令列で説明する。
＜プログラム指令＞
G aa G cc H hh Q qq D dd ;
X Px1 Y Py1 Z Pz1 B Pb1 C Pc1 ;
X Px2 Y Py2 Z Pz2 B Pb2 C Pc2 ;
．．．
X Pxn-2 Y Pyn-2 Z Pzn-2 B Pbn-2 C Pcn-2 ;
X Pxn-1 Y Pyn-1 Z Pzn-1 B Pbn-1 C Pcn-1 ;
X Pxn Y Pyn Z Pzn B Pbn C Pcn ;
X Pxn+1 Y Pyn+1 Z Pzn+1 B Pbn+1 C Pcn+1 ;
X Pxn+2 Y Pyn+2 Z Pzn+2 B Pbn+2 C Pcn+2 ;
．．．
．．．
G bb ;
Ｇａａ、Ｈ、Ｑ、Ｘ、Ｙ、Ｚ、Ｂ、Ｃ指令については実施形態１と同様である。Ｄｄｄは実工具径補正量を指令する補正番号であり、これによって実工具径を指令する。Ｇｃｃは工具径補正方向を指令する。実工具径および工具径補正方向について、ここではプログラムで指令するようにしたが、パラメータなどに設定するようにすることも可能である。
【００５０】
加工点曲線と基準工具長曲線を求める部分までは実施形態１と同様である。ここで、加工点曲線を表す関数をｆ（ｔ）とするとｆ（ｔ）を１次微分した加工点導関数ｆ’（ｔ）を生成する（図１０参照）。
【００５１】
図１０では、加工点曲線上の１次微分値をベクトルとして描いている。加工点曲線ｆ（ｔ）は位置を表す関数であるが、加工点導関数ｆ’（ｔ）はその微分であるため同じディメンジョンではない。しかし、便宜上、図１０では１次微分ベクトルの先端を結んだ点線形状として仮想的に同じディメンジョンのイメージで描いている。同様に、基準工具長位置曲線を表す関数をｇ（ｔ）とするとｇ（ｔ）を１次微分した基準工具長位置導関数ｇ’（ｔ）を生成する（図１１参照）。
【００５２】
図１０と同様、図１１では基準工具長位置曲線上の１次微分値をベクトルとして描いている。基準工具長位置曲線ｇ（ｔ）は位置を表す関数であるが、基準工具長位置導関数ｇ’（ｔ）はその微分であるため同じディメンジョンではな。しかし便宜上、図１１では１次微分ベクトルの先端を結んだ点線形状として仮想的に同じディメンジョンのイメージで描写している。
【００５３】
次に、図１２を用いて、これらのデータから各軸の移動位置を求める方法を説明する。なお、図１２では理解を容易にするために工具径を大きく描いている。得られた加工点曲線と基準工具長位置曲線を一定周期毎補間し、各補間周期における補間加工位置Ｃｐ（Ｃｐｘ，Ｃｐｙ，Ｃｐｚ）と補間基準工具長位置Ｓｐ（Ｓｐｘ，Ｓｐｙ，Ｓｐｚ）を求める。この補間加工位置Ｃｐと補間基準工具長位置Ｓｐから、数４式によって補間工具姿勢Ｔｐ（Ｔｐｘ，Ｔｐｙ，Ｔｐｚ）を求める。これらの点は実施形態１と同様である。
【００５４】
さらに、加工点導関数ｆ’（ｔ）および基準工具長位置導関数ｇ’（ｔ）も補間し、それぞれ各補間周期における加工点接線ベクトルＶｃ（Ｖｃｘ，Ｖｃｙ，Ｖｃｚ）および基準工具長位置接線ベクトルＶｓ（Ｖｓｃ，Ｖｓｙ，Ｖｓｚ）を計算し求める。加工点接線ベクトルＶｃおよび基準工具長位置接線ベクトルＶｓを、数７式によりそれぞれ単位ベクトルＵｃ（Ｕｃｘ，Ｕｃｙ，Ｕｃｚ）、Ｕｓ（Ｕｓｘ，Ｕｓｙ，Ｕｓｚ）として求める。
【００５５】
【数７】
2010146176.tif 000009
【００５６】
工具径補正方向が右側である場合、実工具径補正量をＲａとすると、数８式により径補正補間加工位置Ｃｃおよび径補正補間基準工具長位置Ｓｃを計算する。ここで、記号「×」は外積を表す。
【００５７】
【数８】
2010146176.tif 000010
【００５８】
数９式により、径補正補間加工位置Ｃｃを補間加工位置Ｃｐに代入し、径補正補間基準工具長位置Ｓｃを補間基準工具長位置Ｓｐに代入する。
【００５９】
【数９】
2010146176.tif 000011
【００６０】
そして、これらの新たな補間加工位置Ｃｐおよび新たな補間基準工具長位置Ｓｐから再度数４式によって工具姿勢を求め、補間工具姿勢Ｔｐ（Ｔｐｘ，Ｔｐｙ，Ｔｐｚ）とする。  
そして、新たな補間工具姿勢Ｔｐ、新たな補間加工位置Ｃｐ、およびプログラム指令Ｈｈｈで指令されている実工具長Ｌａから数５式によって、直線移動軸の位置（Ｘ，Ｙ，Ｚ）と回転移動軸の位置（Ｂ，Ｃ）を生成する。Ｂ，Ｃは一般に複数解を持つが、補間しているブロックのブロック指令におけるＢ，Ｃの指令値Ｐｂｉ，Ｐｃｉに近い解を選択すること、および生成された軸位置への移動を行うことは実施形態１と同様である。また、工具径補正方向が左であれば数８式の外積の順が数１０式のように前後し、外積によるベクトルが進行方向左に作成される点が相違するのみである。
【００６１】
【数１０】
2010146176.tif 000012
【００６２】
●実施形態５
プログラム指令および加工点曲線と基準工具長曲線を求める部分までは実施形態４と同様である。実施形態５では、加工点接線ベクトルＶｃをその補間周期における補間加工位置と過去の補間周期における補間加工位置とから求める。
【００６３】
１つの方法としては、数１１式に示されるようにして求める。その補間周期における補間加工位置Ｃｐと１回前の補間周期における補間加工位置Ｃｑとの差分とする。同様に、基準工具長位置接線ベクトルＶｓをその補間周期における補間基準工具長位置Ｓｐと１回前の補間周期における補間基準工具長位置Ｓｑとの差分とする。
【００６４】
【数１１】
2010146176.tif 000013
【００６５】
他の方法としては、加工点接線ベクトルＶｃをその補間周期における補間加工位置Ｃｐと過去の補間周期における補間加工位置の平均位置Ｃａとの差分とし、同様に、基準工具長位置接線ベクトルＶｓをその補間周期における補間基準工具長位置Ｓｐと過去の複数の補間周期における補間加工位置の平均位置Ｃａとの差分とすることもできる。
なお、補間開始時にまだ過去の補間が存在しない場合は、過去の補間周期における補間加工位置および補間基準工具長位置としては、１回前の補間周期における加工位置および補間基準工具長位置、つまり開始時の加工位置および補間基準工具長位置とすればよい。
【００６６】
そして、加工点接線ベクトルＶｃと基準工具長位置接線ベクトルＶｓが求まれば、後は実施形態４と同様に、加工点接線ベクトルＶｃおよび基準工具長位置接線ベクトルＶｓをそれぞれ単位ベクトルＵｃ（Ｕｃｘ，Ｕｃｙ，Ｕｃｚ）、Ｕｓ（Ｕｓｘ，Ｕｓｙ，Ｕｓｚ）とし、径補正補間加工位置Ｃｃおよび径補正補間基準工具長位置Ｓｃを計算し、径補正補間加工位置Ｃｃを補間加工位置Ｃｐに代入し径補正補間基準工具長位置Ｓｃを補間基準工具長位置Ｓｐに代入し、これらの新たな補間加工位置Ｃｐおよび新たな補間基準工具長位置Ｓｐから再度数４式によって工具姿勢を求め補間工具姿勢Ｔｐとし、新たな補間工具姿勢Ｔｐ、新たな補間加工位置Ｃｐ、およびプログラム指令Ｈｈｈで指令されている実工具長Ｌａから数５式によって直線移動軸の位置（Ｘ，Ｙ，Ｚ）と回転移動軸の位置（Ｂ，Ｃ）を生成する。
【００６７】
上述した本発明の実施形態の説明から明らかなように、本発明により加工点が滑らかな曲線上を移動するとともに基準工具長位置が滑らかに変化するように回転軸を有する工作機械を制御する数値制御装置を提供できる。  
加工面は加工点が移動する滑らかな曲線と基準工具長位置が滑らかに移動する曲線で挟まれた曲面であるので、加工面自体が滑らかな曲線となる保証がある。例えば、航空機の翼のリブ（骨組み）などの薄くて高さのある滑らかな側面は、通常工具側面で加工することが多い。そのような場合、本発明により滑らかな加工面を得ることができる。
【００６８】
図１４は、本発明を実施する数値制御装置の一実施形態の要部ブロック図である。数値制御装置１００を全体的に制御するプロセッサ（ＣＰＵ）２０には、ＲＯＭ，ＲＡＭ，不揮発性メモリなどからなるメモリ２１、記憶媒体とデータを入出力するデータ入出力装置３６が接続されたインタフェース２２、表示器／ＭＤＩユニット３２が接続されたインタフェース２５、操作盤３３が接続されたインタフェース２６、ＰＭＣ（プログラマブル・マシン・コントローラ）２３、表示器／ＭＤＩユニット３２、各軸を制御する各軸制御回路２７、スピンドル制御回路２９がバス３１を介して接続されている。
【００６９】
この実施形態では、５軸加工機を数値制御装置１００で制御するものとし、直線軸のＸ軸、Ｙ軸、Ｚ軸の３軸と、回転軸のＢ（Ａ）軸、Ｃ軸の各軸を制御する手段を備える。この各５軸の各軸制御回路２７はプロセッサ２０からの移動指令量を受けて、各軸の指令をサーボアンプ２８に出力する。各軸のサーボアンプ２８はこの指令を受けて、各軸のサーボモータ３４を駆動する。各軸のサーボモータ３４は、位置・速度検出器を内蔵し、この位置・速度検出器からの位置・速度フィードバック信号を各軸制御回路２７にフィードバックし、位置・速度のフィードバック制御を行う。なお、図１４では、位置・速度のフィードバックについては記載を省略している。
【００７０】
また、スピンドル制御回路２９は主軸回転指令を受け、指令主軸速度とスピンドルモータ３５に設けられたポジションコーダからの速度フィードバック信号とにより、スピンドルアンプ３０にスピンドル速度信号を出力する。スピンドルアンプ３０はスピンドル速度信号により主軸であるスピンドルモータ３５の速度制御を行う。
【００７１】
データ入出力装置３６からインタフェースを介して、ＣＡＤ／ＣＡＭ装置や倣い装置などを使って作成された加工プログラムが入力され、メモリ２１を構成する不揮発性メモリ部分に格納されるものとする。
【００７２】
図１５は、補間における処理のアルゴリズムを示すフローチャートである。各ステップに従って説明する。
●［ステップＳＴ１］加工点曲線補間し補間加工位置を求める。
●［ステップＳＴ２］基準工具長位置曲線を補間し補間基準工具長位置を求める。
●［ステップＳＴ３］補間加工位置と補間基準工具長位置から数４式より補間工具姿勢を求める。
●［ステップＳＴ４］補間工具姿勢、補間加工位置、および実工具長補正量から、数５式により直線移動軸と回転移動軸の位置を生成し、終了する。
【図面の簡単な説明】
【００７３】
【図１】本発明の回転軸を有する工作機械用の数値制御装置の概略の機能ブロック図である。
【図２】工具ヘッド回転型機械の概略構成図である。
【図３】加工点指令列を示す図である。
【図４】加工点指令列を加工点近似曲線上の一番近い位置に向かって第１設定トレランス量以内で移動することによって加工点指令列に対応する修正加工点列を求めることを説明する図である。
【図５】修正加工点Ｑｎ，Ｑｎ+1の間の３次多項式曲線を求めることを説明する図である。
【図６】３次多項式曲線を結合することにより加工点曲線を求めることを説明する図である。
【図７】基準工具長位置列に対して滑らかな基準工具長位置曲線を生成することを説明する図である。
【図８】生成された軸位置への移動を説明する図である。
【図９】前ブロックの直線移動軸終点位置に工具径補正ベクトルを加算した位置を加工点とすることにより加工点指令列を作成することを説明する図である。
【図１０】加工点曲線を表す関数をｆ（ｔ）とするとｆ（ｔ）を１次微分した加工点導関数ｆ’（ｔ）を生成することを説明する図である。
【図１１】基準工具長位置曲線を表す関数をｇ（ｔ）とするとｇ（ｔ）を１次微分した基準工具長位置導関数ｇ’（ｔ）を生成することを説明する図である。
【図１２】各軸の移動位置を求める方法を説明する図である。
【図１３】加工点接線ベクトルＶｃと基準工具長位置接線ベクトルＶｓの求め方を説明する図である。
【図１４】本発明を実施する数値制御装置の一実施形態の要部ブロック図である。
【図１５】補間における処理のアルゴリズムを示すフローチャートである。
【符号の説明】
【００７４】
１  プログラム読み取り手段
２  ブロック解析
３  補間
４ｘ  Ｘ軸サーボ
４ｙ  Ｙ軸サーボ
４ｚ  Ｚ軸サーボ
４Ｂ（Ａ）  Ｂ（Ａ）軸サーボ
４Ｃ  Ｃ軸サーボ
５  補正量指令手段
６  加工点曲線生成手段
７  基準工具長位置列生成手段
８  基準工具長位置曲線生成手段
９  補間位置計算手段
１０  補間工具姿勢計算手段
１１  軸位置生成手段
Ｐｎ  加工点指令位置
Ｐｂｎ  Ｂ軸指令位置
Ｐｃｎ  Ｃ軸指令位置
Ｌｎ  実工具長
Ｃｐ  補間加工位置
Ｓｐ  補間基準工具長位置
Ｒ  実工具径補正量
ｆ（ｔ）  加工点曲線
ｆ’（ｔ）  加工点導関数
ｇ（ｔ）  基準工具長位置曲線
ｇ’（ｔ）  基準工具長位置導関数
【図１】
2010146176.tif 000014
【図２】
2010146176.tif 000015
【図３】
2010146176.tif 000016
【図４】
2010146176.tif 000017
【図５】
2010146176.tif 000018
【図６】
2010146176.tif 000019
【図７】
2010146176.tif 000020
【図８】
2010146176.tif 000021
【図９】
2010146176.tif 000022
【図１０】
2010146176.tif 000023
【図１１】
2010146176.tif 000024
【図１２】
2010146176.tif 000025
【図１３】
2010146176.tif 000026
【図１４】
2010146176.tif 000027
【図１５】
2010146176.tif 000028