(57)【要約】【課題】  加工物に対して工具が傾斜して加工する４軸、５軸加工機において、滑らかな曲線で補間し加工する数値制御装置及び方法を提供する。【解決手段】  指令点列、ベクトル列より内挿点、内挿ベクトルを求める。該内挿点、内挿ベクトルより、加工点用近似曲線、ベクトル先端点用近似曲線を生成する。加工点用近似曲線上の内挿点に対応する修正指令点及びその点の１階微分値を求める。ベクトル先端点用近似曲線上の内挿ベクトルに対応する修正ベクトル先端点とその点の１階微分値を求める。修正指令点、その点の１階微分値より加工点用曲線Ｃｅを求める。同様に修正ベクトル先端点、その点の１階微分値よりベクトル先端点用曲線を求める。加工点用曲線、ベクトル先端点用曲線を一定周期毎に補間し加工点、ベクトル先端点を求める。指令された工具の傾き角、工具径補正量等に基づいて直線移動軸と回転軸の位置を求め加工する。【選択図】          図１１
2005182437.tif 000002
【特許請求の範囲】
【請求項１】
複数個の直線移動軸及び回転移動軸を少なくとも１軸有する工作機械を制御して、テーブル上に固定された加工物を工具により連続的に加工するための数値制御装置において、
工具径補正量、工具長補正量を設定する設定手段と、
指令された点列とベクトル列から、加工点が指令点列から生成される滑らかな曲線上を移動し、ベクトル先端点が指令ベクトル列から生成される滑らかな曲線上を変化するように前記加工点と前記ベクトル先端点を補間する補間手段と、
補間された前記加工点、補間された前記ベクトル先端点、設定された前記工具径補正量および設定された前記工具長補正量から直線移動軸と回転軸の位置を生成する軸位置生成手段と、
前記生成された軸位置への移動を行う軸移動手段とを有することを特徴とする数値制御装置。
【請求項２】
複数個の直線移動軸及び回転移動軸を少なくとも１軸有する工作機械を制御して、テーブル上に固定された加工物を工具により連続的に加工するための数値制御装置において、
加工するための点列とベクトル列、工具径補正量、工具長補正量、前記指令されたベクトルに対する工具の傾き角を設定する設定手段と、
指令点列間の各点間に内挿点を求めると共に指令ベクトル列の各ベクトル間に内挿ベクトルを求める手段と、
前記内挿点に基づいて加工点用近似曲線を得る手段と、
前記内挿ベクトルに基づいてベクトル先端点用近似曲線を得る手段と、
前記加工点用近似曲線上の前記内挿点に対応する修正指令点とその位置における１階微分値を求める手段と、
前記ベクトル先端点用近似曲線上の前記内挿ベクトルに対応する修正ベクトル先端点とその位置における１階微分値を求める手段と、
前記修正指令点とその１階微分値に基づいて前記修正指令点を通る加工点用曲線を求める手段と、
前記修正ベクトル先端点とその位置における１階微分値に基づいて前記修正ベクトル先端点を通るベクトル先端点用曲線を求める手段と、
前記加工点用曲線及びベクトル先端点用曲線を一定周期毎に補間し、各補間点における加工点とベクトル先端点を求め、設定された工具径補正量、工具長補正量及び工具の傾き角に基づいて前記直線移動軸と回転軸の位置を求める手段と、
求められた軸位置への移動を行う軸移動手段とを有することを特徴とする数値制御装置。
【請求項３】
複数個の直線移動軸及び回転移動軸を少なくとも１軸有する工作機械を制御して、テーブル上に固定された加工物を工具により連続的に加工する数値制御方法であって、
加工するための点列とベクトル列を指令すると共に、工具径補正量、工具長補正量を指令し、且つ、指令されたベクトルに対する工具の傾き角を指令し、
前記指令点列の各点間に内挿点を求め、それを実指令点とする第１の工程と、
前記指令ベクトル列に対して内挿ベクトルを求め、それを実指令ベクトルとする第２の工程と、
前記実指令点の各点について順に着目し、着目した点とその前後の予め決められた点数の実指令点を選択する第３の工程と、
前記選択した実指令点に対して加工点用近似曲線を生成する第４の工程と、
前記着目した実指令点を前記加工点用近似曲線に向かって移動し、修正指令点とする第５の工程と、
前記選択した実指令点に対応する実指令ベクトルを選択する第６の工程と、
前記選択した実指令ベクトルのベクトル先端点に対してベクトル先端点用近似曲線を生成する第７の工程と、
前記着目した実指令点に対応するベクトル先端点を前記ベクトル先端点用近似曲線に向かって移動し、修正ベクトル先端点とする第８の工程と、 
前記第２の工程から第８の工程までを各実指令点と実指令ベクトルについて繰り返し実行する第９の工程と、
前記修正指令点の点列を通る加工点用曲線を生成する第１０の工程と、
前記修正ベクトル先端点を通るベクトル先端点用曲線を生成する第１１の工程と、
前記加工点用曲線を一定周期毎に補間して加工点を求めるとともに前記ベクトル先端点用曲線を一定周期毎に補間しベクトル先端点を求め、指令された前記傾き角、設定された前記工具径補正量、設定された前記工具長補正量、前記加工点および前記ベクトル先端点から、前記直線移動軸と前記回転軸の位置を生成する第１２の工程と、
前回の周期における前記直線移動軸と前記回転軸の位置から今回の周期における前記直線移動軸と前記回転軸の位置へ移動する第１３の工程を
有する数値制御方法。
【請求項４】
実指令ベクトルについては内挿ベクトルを求めずに指令されたベクトルを使用する請求項３に記載の数値制御方法。
【請求項５】
実指令点については内挿点を求めずに指令された点を使用する請求項３に記載の数値制御方法。
【請求項６】
修正指令点については加工点用近似曲線を生成せず実指令点を使用する請求項３乃至５の内いずれか１項に記載の数値制御方法。
【請求項７】
修正ベクトル先端点についてはベクトル先端点用近似曲線を生成せずに実指令ベクトルのベクトル先端点を使用する請求項３乃至５の内いずれか１項に記載の数値制御方法。
【請求項８】
傾き角については指令しない請求項３又は請求項７に記載の数値制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
数値制御装置を使用した４軸、５軸加工機による加工、特に金型加工などCAD/CAM装置を使って作成した指令点列データと加工物と工具との傾斜角度を指令する指令ベクトル列によって加工点に対する曲線補間を行って曲面を加工するとともに加工物に対する工具の傾斜角度を変化させながら加工を行う数値制御方法及び数値制御装置に関する。
【背景技術】
【０００２】
CAD／CAM装置や倣い装置などを使って作成した指令点列データに基づいて数値制御工作機械等で金型等の曲面を加工する場合、指令点列データから曲線補間を行って曲面加工が行われている。この指令点列データから生成される曲線は、指令点列の位置を必ず通過する。そのため、指令点列データにCAD／CAMでの計算誤差があったり、設定単位への丸め誤差があると、その誤差が生成曲線に反映し、加工面の面精度が良くないことや加工時において機械の振動の原因となることがある。このことから、指令点列間の内挿点を求め該内挿手点に基づいて近似曲線を求め、この近似曲線に向かって、各内挿点を移動させて修正して、修正した点を通る曲線を求めて該曲線を補間して加工することにより、所期の曲線に近い滑らかな曲線で補間できるようにしたものを先の特許出願で提案した（特願２００２−２３７３３９号参照）。
【０００３】
又、直交するＸ，Ｙ，Ｚ軸の直線移動軸以外にテーブル又は工具の回転用に１軸又は２軸を備えた４軸加工機や５軸加工機における加工プログラムの作成を容易にすることを目的とし、加工物に対する工具方向を方向ベクトルで指令し、工具先端点が指令された移動経路上を移動すると共に、工具方向がベクトルで指令された方向になるように回転軸を移動させるよう制御する数値制御装置は公知である（特許文献１参照）。
【０００４】
【特許文献１】特開２００３−１９５９１７号公報
【発明の開示】
【発明が解決しようとする課題】
【０００５】
直交するＸ，Ｙ，Ｚ軸の直線移動軸以外に少なくとも１つの回転軸を有する加工機で加工する場合、特許文献１に記載された数値制御装置による加工では、単に指令点を結んで補間して加工するものであり、より滑らかな曲線を生成して補間するという技術思想はなく、より精度の高い滑らかな曲線の加工が難しい。  
また、上述した特願２００２−２３７３３９号で提案した方法では、加工物に対して工具が傾斜することは考慮されておらず、工具又はテーブルが回転する回転軸を備える４軸、５軸加工機には適用ができない。  
そこで、本発明の目的は、加工物に対して工具が傾斜して加工するような４軸又は５軸加工機においても、所期の曲線に近い滑らかな曲線で補間する数値制御装置及び数値制御方法を提供することにある。
【課題を解決するための手段】
【０００６】
本願請求項１に係わる発明は、複数個の直線移動軸及び回転移動軸を少なくとも１軸有する工作機械を制御して、テーブル上に固定された加工物を工具により連続的に加工するための数値制御装置において、工具径補正量、工具長補正量を設定する設定手段と、
指令された点列とベクトル列から、加工点が指令点列から生成される滑らかな曲線上を移動し、ベクトル先端点が指令ベクトル列から生成される滑らかな曲線上を変化するように前記加工点と前記ベクトル先端点を補間する補間手段と、補間された前記加工点、補間された前記ベクトル先端点、設定された前記工具径補正量および設定された前記工具長補正量から直線移動軸と回転軸の位置を生成する軸位置生成手段と、前記生成された軸位置への移動を行う軸移動手段とを備えることを特徴とするものである。  
又、請求項２に係わる発明は、複数個の直線移動軸及び回転移動軸を少なくとも１軸有する工作機械を制御して、テーブル上に固定された加工物を工具により連続的に加工するための数値制御装置において、加工するための点列とベクトル列、工具径補正量、工具長補正量、前記指令されたベクトルに対する工具の傾き角を設定する設定手段と、指令点列間の各点間に内挿点を求めると共に指令ベクトル列の各ベクトル間に内挿ベクトルを求める手段と、前記内挿点に基づいて加工点用近似曲線を得る手段と、前記内挿ベクトルに基づいてベクトル先端点用近似曲線を得る手段と、前記加工点用近似曲線上の前記内挿点に対応する修正指令点とその位置における１階微分値を求める手段と、前記ベクトル先端点用近似曲線上の前記内挿ベクトルに対応する修正ベクトル先端点とその位置における１階微分値を求める手段と、前記修正指令点とその１階微分値に基づいて前記修正指令点を通る加工点用曲線を求める手段と、前記修正ベクトル先端点とその位置における１階微分値に基づいて前記修正ベクトル先端点を通るベクトル先端点用曲線を求める手段と、前記加工点用曲線及びベクトル先端点用曲線を一定周期毎に補間し、各補間点における加工点とベクトル先端点を求め、設定された工具径補正量、工具長補正量及び工具の傾き角に基づいて前記直線移動軸と回転軸の位置を求める手段と、求められた軸位置への移動を行う軸移動手段とを有することを特徴とするものである。
【０００７】
又、請求項３に係わる発明は、複数個の直線移動軸及び回転移動軸を少なくとも１軸有する工作機械を制御して、テーブル上に固定された加工物を工具により連続的に加工する数値制御方法であって、加工するための点列とベクトル列を指令すると共に、工具径補正量、工具長補正量を指令し、且つ、指令されたベクトルに対する工具の傾き角を指令し、前記指令点列の各点間に内挿点を求め、それを実指令点とする第１の工程と、
前記指令ベクトル列に対して内挿ベクトルを求め、それを実指令ベクトルとする第２の工程と、前記実指令点の各点について順に着目し、着目した点とその前後の予め決められた点数の実指令点を選択する第３の工程と、前記選択した実指令点に対して加工点用近似曲線を生成する第４の工程と、前記着目した実指令点を前記加工点用近似曲線に向かって移動し、修正指令点とする第５の工程と、前記選択した実指令点に対応する実指令ベクトルを選択する第６の工程と、前記選択した実指令ベクトルのベクトル先端点に対してベクトル先端点用近似曲線を生成する第７の工程と、前記着目した実指令点に対応するベクトル先端点を前記ベクトル先端点用近似曲線に向かって移動し、修正ベクトル先端点とする第８の工程と、前記第２の工程から第８の工程までを各実指令点と実指令ベクトルについて繰り返し実行する第９の工程と、前記修正指令点の点列を通る加工点用曲線を生成する第１０の工程と、前記修正ベクトル先端点を通るベクトル先端点用曲線を生成する第１１の工程と、前記加工点用曲線を一定周期毎に補間して加工点を求めるとともに前記ベクトル先端点用曲線を一定周期毎に補間しベクトル先端点を求め、指令された前記傾き角、設定された前記工具径補正量、設定された前記工具長補正量、前記加工点および前記ベクトル先端点から、前記直線移動軸と前記回転軸の位置を生成する第１２の工程と、前回の周期における前記直線移動軸と前記回転軸の位置から今回の周期における前記直線移動軸と前記回転軸の位置へ移動する第１３の工程とを有することを特徴とするものである。
【０００８】
又、請求項４に係わる発明は、実指令ベクトルについては内挿ベクトルを求めずに指令されたベクトルを使用する数値制御方法であり、請求項５に係わる発明は、実指令点については内挿点を求めずに指令された点を使用する数値制御方法である。さらに、請求項６に係わる発明は、修正指令点については加工点用近似曲線を生成せず実指令点を使用する用にしたものであり、請求項７に係わる発明は、修正ベクトル先端点についてはベクトル先端点用近似曲線を生成せずに実指令ベクトルのベクトル先端点を使用するようにした数値制御方法である。また、請求項８に係わる発明は、傾き角については指令しない数値制御方法である。
【発明の効果】
【０００９】
加工点が滑らかに補間されるとともに工具と加工物の相対関係も滑らかに変化する。そのことによって、より滑らかな加工面が得られる。
【発明を実施するための最良の形態】
【００１０】
図１、図２は本発明の数値制御装置又は数値制御方法を適用する５軸加工機の説明図である。図１に示す５軸加工機は、テーブル１が直交するＸ，Ｙ軸方向に駆動され、該Ｘ，Ｙ軸と直交するＺ軸方向に工具２が駆動され、さらに、Ｘ軸周りの回転軸Ａにより工具２が回動制御されると同時に、Ｚ軸周りの回転軸Ｃによりテーブル１が制御され、テーブル１に載置固定された加工物３を加工するものである。  
図２に示す５軸加工機においては、工具２が直交するＸ，Ｙ，Ｚ軸方向に駆動され、テーブル１は、Ｘ軸回りの回転軸Ａ、Ｚ軸回りの回転軸Ｃにより回転制御され、このテーブル１に載置固定された加工物３を工具２で加工するようにしたものである。
【００１１】
この図１，図２に示した５軸加工機は従来から公知のものであり、さらに、図１においてテーブルが回転するかわりに工具ヘッドが２軸の回転軸を持った５軸加工機も公知である。また、２つの回転軸Ａ軸、Ｃ軸のいずれか１つの軸のみを備える４軸加工機も公知である。本発明は、このような４軸、５軸加工機を制御する数値制御装置、数値制御方法である。
【００１２】
図３は本発明の一実施形態における数値制御装置（ＣＮＣ）１００のブロック図である。ＣＰＵ１１は数値制御装置１００を全体的に制御するプロセッサである。ＣＰＵ１１は、ＲＯＭ１２に格納されたシステムプログラムを、バス２０を介して読み出し、該システムプログラムに従って数値制御装置全体を制御する。ＲＡＭ１３には一時的な計算データや表示データ及び表示器／ＭＤＩユニット７０を介してオペレータが入力した各種データが格納される。ＣＭＯＳメモリ１４は図示しないバッテリでバックアップされ、数値制御装置１００の電源がオフされても記憶状態が保持される不揮発性メモリとして構成される。ＣＭＯＳメモリ１４中には、インターフェイス１５を介して読み込まれた加工プログラムや表示器／ＭＤＩユニット７０を介して入力された加工プログラム等が記憶される。また、ＲＯＭ１２には、加工プログラムの作成及び編集のために必要とされる編集モードの処理や自動運転のための処理を実施するための各種システムプログラムがあらかじめ書き込まれている。
【００１３】
CAD／CAM装置や倣い装置などを使って作成された指令点列データ及びベクトル列データを含む加工プログラムがインターフェイス１５を介して入力され、ＣＭＯＳメモリ１４に格納されている。
【００１４】
また、数値制御装置１００内で編集した加工プログラムは、インターフェイス１５を介して外部記憶手段に記憶させることができる。ＰＭＣ（プログラマブル・マシン・コントローラ）１６は、数値制御装置１００に内蔵されたシーケンスプログラムで工作機械の補助装置（例えば、工具交換用のロボットハンドといったアクチュエータ）にＩ／Ｏユニット１７を介して信号を出力し制御する。また、工作機械の本体に配備された操作盤の各種スイッチ等の信号を受け、必要な信号処理をした後、ＣＰＵ１１に渡す。
【００１５】
表示器／ＭＤＩユニット７０はディスプレイやキーボード等を備えた手動データ入力装置であり、インターフェイス１８は表示器／ＭＤＩユニット７０のキーボードからの指令，データを受けてＣＰＵ１１に渡す。インターフェイス１９は手動パルス発生器等を備えた操作盤７１に接続されている。
【００１６】
各軸の軸制御回路３０〜３４はＣＰＵ１１からの各軸の移動指令量を受けて、各軸の指令をサーボアンプ４０〜４４に出力する。サーボアンプ４０〜４４はこの指令を受けて、各軸のサーボモータ５０〜５４を駆動する。各軸のサーボモータ５０〜５４は位置・速度検出器を内蔵し、この位置・速度検出器からの位置・速度フィードバック信号を軸制御回路３０〜３４にフィードバックし、位置・速度のフィードバック制御を行う。なお、図８では、位置・速度のフィードバックについては省略している。
【００１７】
サーボモータ５０〜５４は、工作機械のＸ，Ｙ，Ｚ，Ａ，Ｃ軸を駆動するもので、図１、図２に示した５軸工作機械を駆動制御するものである。また、スピンドル制御回路６０は主軸回転指令を受け、スピンドルアンプ６１にスピンドル速度信号を出力する。スピンドルアンプ６１はスピンドル速度信号を受けて、主軸モータ６２を指令された回転速度で回転させる。ポジションコーダ６３は、主軸モータ６２の回転に同期して帰還パルスをスピンドル制御回路６０にフィードバックし、速度制御を行う。
【００１８】
以上のような数値制御装置１００の構成は従来の数値制御装置の構成とは変りはなく、この数値制御装置１００によって、図１、図２に示すような５軸加工機を駆動制御するものである。
【００１９】
CAD／CAM装置や倣い装置などを使って作成された指令点列データ及びベクトル列データを含む加工プログラムが入力され、ＣＭＯＳメモリ１４に記憶されているものとする。滑らかな曲線を生成する補間の開始を指令する工具先端点制御指令のＧコードとこの指令を解除するＧコードが用意されており、加工プログラムには、後述するように、滑らかな曲線を生成して補間すべき対象の指令点列の最初に、工具先端点制御指令のＧコードがプログラムされ、この指令をキャンセルする位置に工具先端点制御キャンセル指令のＧコードがプログラムされている。
【００２０】
又、工具先端点制御指令のＧコードを用いずに、この工具先端点制御（滑らか曲線を生成して補間する処理）をなす区間を自動的に判断するようにしてもよい。この場合は、先の特願２００２−２３７３３９号の発明と同様に、プロセッサ１１は加工プログラムより点列を読み、各点列間を結ぶ線分野角度や長さから滑らか曲線を生成して補間するか否かを自動的に判断するようにする。隣り合う線分間の屈折角度は基準値より小さいときは、工具先端点制御を実施し、屈折角度は基準値より大きいときは、工具先端点制御を実施しないように制御する。また、指令点間の距離が基準値以下の指令点列の場合には、工具先端点制御を行い、基準値より長い指令点間の場合には、工具先端点制御を行わないものと自動的に判断するようにしてもよいものである。
【００２１】
図４〜図６は、数値制御装置１００のプロセッサ１１が実行する工具先端点制御のアルゴリズムである。以下、この図４〜図６に基づいて本発明の一実施形態を説明する。  
CAD／CAM装置や倣い装置などを使って作成された指令点列データ及びベクトル列データが例えば図８に示すようなものであったとする。プロセッサ１１は加工プログラムより工具先端点制御のＧコードが読まれると、指令点列Ｐ0，Ｐ1，Ｐ2，Ｐn-1，Ｐnと、各指令点列に対応するベクトル列Ｖ１，Ｖ２，…Ｖｎを読込む（ステップＳ１）。
【００２２】
次に、各点間（Ｐ0，Ｐ1） ，(Ｐ1，Ｐ2)…(Ｐn-1，Ｐn)に２点の内挿点(Ｑ1，Ｑ2)，（Ｑ3，Ｑ4）…（Ｑ2n-1，Ｑ2n）を求め、それを実指令点とする。また、この内挿点を求めたと同じ比率で各指令ベクトル間（Ｖ0，Ｖ1） ，(Ｖ1，Ｖ2)…(Ｖn-1，Ｖn)に２点ずつ内挿点(Ｕ1，Ｕ2)，（Ｕ3，Ｕ4）…（Ｕ2n-1，Ｕ2n）を求め、それを実指令ベクトルとする（ステップＳ２）。この実施形態においては、図９に示すように、内挿比を0.15：0.7：0.15としている。すなわち、各点間(Ｐi，Ｐi+1)の内挿点(Ｑ2i+1，Ｑ2i+2)の内挿比は、線分(Ｐi，Ｐi+1)の距離を内挿点Ｑ2i+1、Ｑ2i+2で0.15：0.7：0.15の比率に分割した例を示している。同様に、指令ベクトル列が図１２に示すようなＶ１，Ｖ２，…Ｖｎの場合、図１３に示すように、指令点列間の内挿被と同じ内挿比の0.15：0.7：0.15で指令ベクトル間を図１３に示すように内挿し、内挿ベクトル(Ui :i=0・・・2n+1)を求め、それを実指令ベクトルとする。
【００２３】
そして、Ｑ0=Ｐ0，Ｑ2n+1=Ｐn、Ｕ０＝Ｖ０，Ｕ２ｎ＋１＝Ｖｎとし（ステップＳ３）、これによって内挿点の点列Ｑ0，Ｑ1，Ｑ2，…Ｑ2n，Ｑ2n+1からなる実指令点列とベクトル列Ｕ0，Ｕ1，Ｕ2，…Ｕ2n，Ｕ2n+1からなる実指令ベクトル列を生成する。
【００２４】
指標ｉを「１」にセットし（ステップＳ４）、前記実指令点の各点について順に着目し、着目した点とその前後の予め決められた点数の実指令点を選択する。また、前記選択された実指令点に対応する実指令ベクトルを選択する。該指標ｉの値に対応する実指令点を着目点とし、該指標ｉの値を判断し（ステップＳ５，Ｓ６）、指標ｉが「１」の場合には、実指令点列Ｑi-1，Ｑi，Ｑi+1，Ｑi+2（＝Ｑ０，Ｑ１，Ｑ２，Ｑ３）、実指令ベクトル列Ｕi-1，Ｕi，Ｕi+1，Ｕi+2（＝Ｕ０，Ｕ１，Ｕ２，Ｕ３）を取り出す（ステップＳ７）。また、指標ｉが「２〜２n-1」の場合には、実指令点列Ｑi-2，Ｑi-1，Ｑi，Ｑi+1，Ｑi+2、実指令ベクトル列Ｕi-2，Ｕi-1，Ｕi，Ｕi+1，Ｕi+2を取出し（ステップＳ８）。指標ｉが「２n」の場合には、実指令点列Ｑi-2，Ｑi-1，Ｑi，Ｑi+1（＝Ｑ２ｎ−２，Ｑ２ｎ−１，Ｑ２ｎ，Ｑ２ｎ＋１）を取出す（ステップＳ９）。なお、指標ｉが「２n+1」の場合には後述する。
【００２５】
こうして取出した実指令点列に対して、最小２乗法にて加工点用近似曲線Ｃｍを作成する。つまり、取出した点列からの距離の２乗和が最も小さくなる加工点用近似曲線Ｃｍを作成する（ステップＳ１０）。この加工点用近似曲線Ｃｍが図１０に示す一点鎖線の曲線であったとする。次に、この時点の指標ｉに対応する着目した実指令点Ｑｉを近似曲線Ｃｍに向かって、点列指令の設定単位以下の細かさでかつ設定トレランス量以内で移動させ、修正指令点Ｑi’を求め、ＣＭＯＳ１４に設けられた図７に示すような曲線構成表に、指標ｉに対応させてセットする（ステップＳ１１）。そして、実指令点Ｑiに対応する加工点用近似曲線Ｃｍ上の修正指令点Ｑi’における１階微分値Ｑi(1)’を求め、該１階微分値Ｑi(1)’も指標ｉに対応して曲線構成表に記憶する（ステップＳ１２）。
【００２６】
また、取得した実指令ベクトル列をベクトル先端点列と考え、このベクトル先端点列に対して最小２乗法によりベクトル最先端点用近似曲線Ｃｖｍを求める（ステップＳ１３）。図１４に示すように、この時点の指標ｉに対応する着目した実指令ベクトルＵｉをベクトル最先端点用近似曲線Ｃｖｍに向かって、設定単位以下の細かさでかつ設定トレランス量以内で移動させ、修正ベクトル先端点Ｕi’を求め、指標ｉに対応させて図７に示す曲線構成表に記憶する（ステップＳ１４）。そして、修正ベクトル先端点Ｕi’における１階微分値Ｑi(1)’を求め、この１階微分値Ｑi(1)’も曲線構成表に記憶する（ステップＳ１５）。
【００２７】
指標ｉを「１」インクリメントし（ステップＳ１６）、ステップＳ５に戻り該指標ｉが「２ｎ＋１」に達するまでステップＳ５からステップＳ１６の処理を繰り返し実行し、加工点用近似曲線Ｃｍ、ベクトル最先端点用近似曲線Ｃｖｍを求め、修正指令点Ｑi’、修正ベクトル先端点Ｕi’を求めて曲線構成表に記憶すると共に、近似曲線Ｃｍ，Ｃｖｍ上の１階微分値Ｑｉ（１）’，Ｕｉ（１）’をも求め曲線構成表に記憶する。
【００２８】
指標ｉが２ｎ＋１に達すると、指令点Ｐｎを修正指令点Ｑ２ｎ＋１’とし、修正指令点Ｑ２ｎ’から指令点Ｐｎへの方向ベクトルを修正指令点Ｑ２ｎ＋１’の１階微分値Ｑ２ｎ＋１（１）’とし、指標ｉ＝２ｎ＋１に対応して曲線構成表に格納する。（ステップＳ１７）。又、指令点Ｐ０を修正指令点Ｑ０’とし、指令点Ｐ０から修正指令点Ｑ１’への方向ベクトルを修正指令点Ｑ０’のへの方向ベクトルを１階微分値Ｑ０（１）’とし、指標ｉ＝０に対応させて、修正指令点Ｑ０’及び１階微分値Ｑ０（１）’を曲線構成表にセットする（ステップＳ１８）。
【００２９】
こうして図７に示すような曲線構成表が作成され、この曲線構成表にセットされた修正指令点列Ｑ0’，Ｑ1’…Ｑ2n+1’および各１階微分値Ｑ0(1)’，Ｑ1(1)’…Ｑ2n+1(1)’から、修正指令点列Ｑ0’，Ｑ1’…Ｑ2n+1’を通る加工点用曲線Ｃｅを図１１に示すように３次曲線で生成する（ステップＳ１９）。
【００３０】
この生成方法の一例として、修正指令点Ｑｉ’〜Ｑｉ＋１’のセグメントを指標ｉに対応させてセグメントｉとし、このセグメントｉの加工点用曲線の関数を次の１式で示す３次多項式で表すとする。なお、他にもＮＵＲＢＳ曲線、他の多項式、三角関数による表現でもよい。
ｆｉ（ｔ）＝Ａｆｉ×ｔ３＋Ｂｆｉ×ｔ２＋Ｃｆｉ×ｔ＋Ｄｆｉ    …（１）
但しｔはパラメータで０≦ｔ≦１である。  
上記（１）式の係数Ａｆｉ，Ｂｆｉ，Ｃｆｉ，Ｄｆｉは、空間座標系の直交するＸ，Ｙ，Ｚ軸の要素を持つ３次元ベクトルである。
式において、
ｆｉ（０）＝Ｑｉ’，ｆｉ（１）＝Ｑｉ＋１’
であり、
ｆｉ（０）＝Ｑｉ’
ｆｉ（１）＝Ｑｉ＋１’
ｆｉ（０）（１）＝Ｑｉ（１）’
ｆｉ（１）（１）＝Ｑｉ＋１（１）’
の連立方程式を解くことにより係数Ａｆｉ，Ｂｆｉ，Ｃｆｉ，Ｄｆｉを求め、曲線構成表にセットする。ここで、ｆｉ（０）（１），ｆｉ（１）（１）はそれぞれｆｉ（ｔ）の導関数ｆｉ（ｔ）（１）のｔ＝０，ｔ＝１における値である。このようにして、図７に示すように、（１）式の３次多項式の係数Ａｆｉ，Ｂｆｉ，Ｃｆｉ，Ｄｆｉが求められて、３次多項式の（１）式が求められ加工用曲線Ｃｅが求められる。
【００３１】
次に、指令ベクトルＶｎを修正ベクトル先端点Ｕ２ｎ＋１’とし、修正ベクトル先端点Ｕ２ｎ’から指令ベクトルＰｎへの方向ベクトルを修正ベクトル先端点Ｕ２ｎ＋１’の１階微分値Ｕ２ｎ＋１（１）’として指標ｉ＝２ｎ＋１に対応して曲線構成表にセットする。（ステップＳ２０）。さらに、指令ベクトルＶ０を修正ベクトル先端点Ｕ０’とし、指令ベクトルＶ０から修正ベクトル先端点Ｕ１’への方向ベクトルを修正ベクトル先端点Ｕ０’のへの方向ベクトルを１階微分値Ｕ０（１）’として、指標ｉ＝０に対応させて修正ベクトル先端点Ｕ０’、１階微分値Ｕ０（１）’を曲線構成表にセットする（ステップＳ２１）。
【００３２】
この曲線構成表にセットされた修正ベクトル先端点列Ｕ0’，Ｕ1’…Ｕ2n+1’および各１階微分値Ｕ0(1)’，Ｕ1(1)’…Ｕ2n+1(1)’から、加工点用曲線Ｃｅを求めた方法と同じ方法により、修正ベクトル先端点列Ｕ0’，Ｕ1’…Ｕ2n+1’を通るベクトル先端点用曲線Ｃｖｅを、図１５に示すように３次曲線で生成する（ステップＳ２２）。
【００３３】
ベクトル先端点用曲線Ｃｖｅの関数も加工点用曲線Ｃｅの関数を求める方法と同一の方法で求めるとすると、修正ベクトル先端点Ｕｉ’〜Ｕｉ＋１’のセグメントをセグメントｉとし、セグメントｉのベクトル先端点用曲線Ｃｖｅの関数を次の（２）式で示す３次多項式で表す。なお、この場合でも、ＮＵＲＢＳ曲線、他の多項式、三角関数により求めてもよい。
ｇｉ（ｔ）＝Ａｇｉ×ｔ３＋Ｂｇｉ×ｔ２＋Ｃｇｉ×ｔ＋Ｄｇｉ    …（２）
但しｔはパラメータで０≦ｔ≦１であり、係数Ａｇｉ，Ｂｇｉ，Ｃｇｉ，Ｄｇｉは、空間座標系の直交するＸ，Ｙ，Ｚ軸の要素を持つ３次元ベクトルである。又、ｇｉ（０）＝Ｕｉ’，ｇｉ（１）＝Ｕｉ＋１’であり、（１）式と同様に４つ方程式より４つの未知係数Ａｇｉ，Ｂｇｉ，Ｃｇｉ，Ｄｇｉは求まり、ベクトル先端点用曲線Ｃｖｅの関数は求まる。
【００３４】
つぎに、こうして求めた加工点用曲線Ｃｅ及びをベクトル先端点用曲線Ｃｖｅに対して補間を行い加工点（ＣＸｔ，ＣＹｔ，ＣＺｔ）、ベクトル（Ｉｔ，Ｊｔ，Ｋｔ）を求める。まず、加工点用曲線Ｃｅ及びをベクトル先端点用曲線Ｃｖｅを表す関数ｆｉ（ｔ），ｇｉ（ｔ）のパラメータｔを「０」、指標ｉを「０」にセットし（ステップＳ２３）、設定移動速度（オーバライド等で変化する場合があり、その時点での指令速度である）Ｆに補間を行う周期τを乗じた値を加工点用曲線Ｃｅの関数の指標ｉ、パラメータｔにおける微分値ｆｉ（ｔ）（１）で割り、補間周期におけるパラメータｔの変化分Δｔを求め（ステップＳ２４）、パラメータｔにこの変化分Δｔを加算して更新し（ステップＳ２５）、更新されたパラメータｔが１以上が判断し（ステップＳ２６）、１以上でなければ、このパラメータの値をｆｉ（ｔ），ｇｉ（ｔ）に代入し、加工点用曲線Ｃｅ及びをベクトル先端点用曲線Ｃｖｅ上の補間点の値、すなわち、加工点（ＣＸｔ，ＣＹｔ，ＣＺｔ）及びそのときのベクトル（Ｉｔ，Ｊｔ，Ｋｔ）を求める（ステップＳ２７）。
【００３５】
こうして求められた加工点（ＣＸｔ，ＣＹｔ，ＣＺｔ）とベクトル（Ｉｔ，Ｊｔ，Ｋｔ）、及びプログラム等で設定されている工具径補正量ＴＲ、工具長補正量ＬＲ等から、直線移動軸Ｘ，Ｙ，Ｚ軸の位置（Ｘｔ，Ｙｔ，Ｚｔ）と回転軸Ａ，Ｃの位置（Ａｔ，Ｃｔ）を求める（ステップＳ２８）。前回の周期における直線移動軸と回転軸の位置から今回の周期における直線移動軸と回転軸の位置（Ｘｔ，Ｙｔ，Ｚｔ）、（Ａｔ，Ｃｔ）への移動指令を各軸制御回路３０〜３４に出力し各軸を移動させる（ステップＳ２９）。そして、ステップＳ２４に戻り、パラメータｔが１以上になるまで、補間周期毎、ステップＳ２４〜ステップＳ２９の処理を行い、図１６に示すように補間した加工点（ＣＸｔ，ＣＹｔ，ＣＺｔ）及びベクトル（Ｉｔ，Ｊｔ，Ｋｔ）を求め、加工点用曲線Ｃｅに沿って加工することになる。
【００３６】
パラメータｔが１以上になるとステップＳ２６からステップＳ３０に移行し、パラメータｔから１を減じ、且つ、指標ｉを１インクリメントし、次の加工点用曲線Ｃｅ、ベクトル先端点用曲線Ｃｖｅ上のセグメントに進む。そして指標ｉが最終加工点（最終指令点）に対応する「２ｎ＋１」の値に達したか判断し（ステップＳ３１）、達してなければ、ステップＳ２７に移行する。次のセグメントに移行した直後では、パラメータはステップＳ３０で「１」が減じられているから、前のセグメントでのパラメータｔが１を越えた超過分に基づいて加工点（ＣＸｔ，ＣＹｔ，ＣＺｔ）及びベクトル（Ｉｔ，Ｊｔ，Ｋｔ）が求められることになる。なお、この実施形態では、１回の補間でまたがるセグメント数は最大２つとしている。
【００３７】
以下ステップＳ２４〜Ｓ２９の処理を繰り返し実行し、加工点用曲線Ｃｅに沿って加工を行い、バラメータｔが１以上になると、ステップＳ３０，Ｓ３１を実行し、ステップＳ２７に戻る処理を繰り返し実行し、補間された加工点（ＣＸｔ，ＣＹｔ，ＣＺｔ）及びベクトル（Ｉｔ，Ｊｔ，Ｋｔ）を求め、加工点用曲線Ｃｅに沿って加工を行う。そして、指標ｉが２ｎ＋１に達すると、ステップＳ３１からステップＳ３２に移行して、最後の加工点（ＣＸｔ，ＣＹｔ，ＣＺｔ）を修正指令点Ｑ２ｎ＋１’（指令点Ｐｎ）、対応するベクトル（Ｉｔ，Ｊｔ，Ｋｔ）を修正ベクトル先端点Ｕ2n+1’（指令ベクトルＶｎ）とし、ステップＳ２８，ステップＳ２９と同じ処理のステップＳ３３、ステップＳ３４の処理を実行して工具先端点制御処理を終了する。
【００３８】
以上が、本実施形態における工具先端点制御処理のアルゴリズムである。  
上述した処理において、ステップＳ２８、ステップＳ３３での直線移動軸と回転軸の位置（Ｘｔ，Ｙｔ，Ｚｔ）、（Ａｔ，Ｃｔ）を求める算出方法は、ボールエンドミル、スクエアエンドミル、コーナＲエンドミルなどの使用する工具の工具形状（種類）によって異なり、加工プログラムによって指令された工具によってその計算方法が選択されて求められることになる。
【００３９】
図１７は、使用される工具がボールエンドミルであるときの直線移動軸と回転軸の位置（Ｘｔ，Ｙｔ，Ｚｔ）、（Ａｔ，Ｃｔ）を求める算出方法の説明図である。又、このときの、加工プログラムは、例えば図１８（ａ）に示すようなプログラムとなる。又、工具補正量を記憶するメモリには、補正番号毎に図１８（ｂ）に示すように設定されているものとする。
【００４０】
なお、図１８（ａ）において、加工プログラムの右側にプログラムの指令の意味を記載している。すなわち、「Ｇ４３．５」は工具先端点制御指令であり、Ｑは工具の傾き角度を指令するコードでこのプログラム例では５．０度が指令されている。また、Ｈは、工具長補正指令のコード、Ｄは工具径補正のコードで、共に補正番号０１が指令された例を示している。また、「Ｇ４９」はこの工具先端点制御をキャンセルする指令である。そして、この工具先端点制御指令「Ｇ４３．５」からキャンセル指令「Ｇ４９」までの間で指令された「Ｘ□，Ｙ□，Ｚ□，Ｉ□，Ｊ□，Ｋ□」の「Ｘ□，Ｙ□，Ｚ□」はステップＳ１で読み出す指令点Ｐに対応し、「Ｉ□，Ｊ□，Ｋ□」は、同様にステップＳ１で読み出す指令ベクトルＶに対応するものである。
【００４１】
ステップＳ２８、Ｓ３３の処理においては、ステップＳ２７、Ｓ３２で求めた加工点用曲線Ｃｅ上の補間された加工点（ＣＸｔ，ＣＹｔ，ＣＺｔ）と、１周期前に求めた加工点との差により、進行方向ベクトルを求める。また、ステップＳ２７，Ｓ３２で求めた補間されたベクトル（Ｉｔ，Ｊｔ，Ｋｔ）に、プログラムで指令された工具径補正量ＴＲの長さを持ったベクトルを工具先端中心ベクトルとして求める。さらに、補間ベクトル（Ｉｔ，Ｊｔ，Ｋｔ）と進行方向ベクトルとのなす平面上において、補間ベクトルをプログラムで指令された傾き角（図１８では５．０度）だけ回転させ、且つ、プログラムで指令された工具長補正量ＴＬ分の長さを持った工具方向ベクトルを求める。加工点（ＣＸｔ，ＣＹｔ，ＣＺｔ）に工具先端中心ベクトル及び工具方向ベクトルを加算することによって、直線移動軸Ｘ，Ｙ，Ｚの位置（Ｘｔ，Ｙｔ，Ｚｔ）を求める。また、工具方向ベクトルから回転軸Ａ，Ｃの位置（Ａｔ，Ｃｔ）を求める。
【００４２】
図１９は、スクエアンドミルでの直線移動軸と回転軸の位置（Ｘｔ，Ｙｔ，Ｚｔ）、（Ａｔ，Ｃｔ）を求める算出方法の説明図である。ステップＳ２７，Ｓ３２で求めた加工点（ＣＸｔ，ＣＹｔ，ＣＺｔ）と、１周期前に求めた加工点との差により、進行方向ベクトルを求める。又、求められた補間ベクトル（Ｉｔ，Ｊｔ，Ｋｔ）を「９０度−（設定傾き角）」分回転した方向に工具径補正量の長さを持ったベクトルを工具先端点ベクトルとする。補間ベクトル（Ｉｔ，Ｊｔ，Ｋｔ）と進行方向ベクトルとのなす平面上において、補間ベクトルをプログラムで指令された傾き角だけ回転させ、且つ、プログラムで指令された工具長補正量ＴＬ分の長さを持った工具方向ベクトルを求める。加工点（ＣＸｔ，ＣＹｔ，ＣＺｔ）に工具先端中心ベクトル及び工具方向ベクトルを加算することによって、直線移動軸Ｘ，Ｙ，Ｚの位置（Ｘｔ，Ｙｔ，Ｚｔ）を求める。また、工具方向ベクトルから回転軸Ａ，Ｃの位置（Ａｔ，Ｃｔ）を求める。
【００４３】
図２０は、コーナＲ付エンドミルでの回転軸の位置（Ｘｔ，Ｙｔ，Ｚｔ）、（Ａｔ，Ｃｔ）を求める算出方法の説明図である。また、このコーナＲ付エンドミルを使用する場合、図２１に示すようなプログラムとなる。  
この場合も、ステップＳ２７，Ｓ３２で求めた加工点（ＣＸｔ，ＣＹｔ，ＣＺｔ）と、１周期前に求めた加工点との差により、進行方向ベクトルを求める。また、求められた補間ベクトル（Ｉｔ，Ｊｔ，Ｋｔ）の方向にプログラムで設定されたコーナＲ補正量の長さを持ったコーナＲ中心ベクトルを求める。補間ベクトル（Ｉｔ，Ｊｔ，Ｋｔ）を「９０度−（設定傾き角）」分回転した方向で、（工具径補正量−コーナＲ補正量）の長さを持った工具先端中心ベクトルを求める。補間ベクトル（Ｉｔ，Ｊｔ，Ｋｔ）と進行方向ベクトルとのなす平面上において、補間ベクトルを傾き角分回転し、（工具径補正量−コーナＲ補正量）の長さを持った工具方向ベクトルを求める。加工点（ＣＸｔ，ＣＹｔ，ＣＺｔ）に、コーナＲ中心ベクトル、工具先端中心ベクトル及び工具方向ベクトルを加算することによって、直線移動軸Ｘ，Ｙ，Ｚの位置（Ｘｔ，Ｙｔ，Ｚｔ）を求める。また、工具方向ベクトルから回転軸Ａ，Ｃの位置（Ａｔ，Ｃｔ）を求める。
【００４４】
なお、図１７，図１９，図２０においては、工具ヘッドが回転する機械構成について説明しているが、テーブルが回転軸２軸によって回転する機械（図２），や工具ヘッドが回転軸１軸で回転すると共にテーブルが回転軸１軸によって回転する機械（図１）においても同様に、加工物と工具が指令された相対関係になるように、設定されている工具径補正量、工具長補正量、前記加工点、前記ベクトル先端点から、直線移動軸と回転軸の位置を生成することができる。
【００４５】
又、上述した実施形態では、ステップＳ１〜ステップＳ２２で指令点列とベクトル列をすべて読み込み加工点用曲線とベクトル先端点用曲線を生成してからステップＳ２３〜ステップＳ３４で補間を行って軸を移動するようにしているが、すべての指令点列とベクトル列のうち必要な部分の指令点列とベクトル列のみを読み込みそれらから部分的に加工点用曲線とベクトル先端点用曲線を求めてそれらの曲線に対して補間を行って軸を移動するようにしてもよい。そうすることによって、大きなプログラム指令であっても部分的に読み込みながら補間と軸の移動を行うようにすることもできる。
【００４６】
また、ステップＳ２において内挿点を求めて実指令点とし、内挿ベクトルを求めて実指令ベクトルとしているが、内挿は行わず指令点をそのまま実指令点とし、指令ベクトルをそのまま実指令ベクトルとしてもよい。  
また、ステップＳ１０〜ステップＳ１２で加工点用近似曲線を生成し着目した指令点を加工点用近似曲線に向かって移動して修正指令点を求め修正指令点に対応する加工点用近似曲線上の位置における１階微分を求め、ステップＳ１３〜ステップＳ１５でベクトル先端点用近似曲線を生成し着目した指令点に対応するベクトル先端点をベクトル先端点用近似曲線に向かって移動して修正ベクトル先端点を求め修正ベクトル先端点に対応するベクトル先端点用近似曲線上の位置における１階微分を求めているが、次のようにすることもできる。
【００４７】
ステップＳ１０〜ステップＳ１２において加工点用近似曲線を生成せず、着目した指令点をそのまま修正指令点とし、選択された実指令点から生成される曲線上の着目した指令点における１階微分を求め、１階微分とし、ステップＳ１３〜ステップＳ１５においてベクトル先端点用近似曲線を生成せず、着目した指令点に対応するベクトル先端点をそのまま修正ベクトル先端点とし、選択された実指令ベクトルのベクトル先端点から生成される曲線上の着目した指令点に対応するベクトル先端点における１階微分を求め、１階微分とするようにしてもよい。
【図面の簡単な説明】
【００４８】
【図１】テーブル回転用に１軸と工具ヘッド回転用に１軸を有する５軸加工機の説明図である。
【図２】テーブルがＸ軸回りの回転軸Ａ、Ｚ軸回りの回転軸Ｃにより回転制御される５軸加工機の説明図である。
【図３】本発明の一実施形態の要部ブロック図である。
【図４】同実施形態における工具先端点制御のアルゴリズムを示す処理フローチャートである。
【図５】同図４に示すフローチャートの続きである。
【図６】同図５に示すフローチャートの続きである。
【図７】同実施形態における曲線構成表の説明図である。
【図８】同実施形態における指令された点列とベクトル列の一例の説明図である。
【図９】同実施形態における指令点列に対して内挿点を求める説明図である。
【図１０】同実施形態における加工点用近似曲線と修正指令点を求める説明図である。
【図１１】同実施形態における加工点用曲線の説明図である。
【図１２】同実施形態における指令ベクトル列の説明図である。
【図１３】同実施形態における指令ベクトル先端点列に対して内挿ベクトルを求める説明図である。
【図１４】同実施形態におけるベクトル先端点用近似曲線と修正ベクトル先端点を求める説明図である。
【図１５】同実施形態におけるベクトル先端点用曲線の説明図である。
【図１６】同実施形態における加工点用曲線に対する補間の説明図である。
【図１７】同実施形態におけるボールエンドミルにおいて直線移動軸と回転軸の位置を求める説明図である。
【図１８】同実施形態におけるボールエンドミル使用時におけるプログラムの一例の説明図である。
【図１９】同実施形態におけるスクエアエンドミルにおいて直線移動軸と回転軸の位置を求める説明図である。
【図２０】同実施形態におけるコーナＲ付エンドミルにおいて直線移動軸と回転軸の位置を求める説明図である。
【図２１】同実施形態におけるコーナＲ付エンドミル使用時におけるプログラムの一例の説明図である。
【符号の説明】
【００４９】
１  テーブル
２  工具
３  加工物
１００  数値制御装置
Ｐｉ  指令点
Ｖｉ  指令ベクトル
Ｑｉ  内挿点（実指令点）
Ｕｉ  内挿ベクトル（実指令ベクトル）
Ｑｉ’  修正指令点
Ｑｉ（１）’  修正指令点に対応する１階微分
Ｕｉ’  修正ベクトル先端点
Ｕｉ（１）’   修正ベクトル先端点に対応する１階微分
Ｃｍ  加工点用近似曲線
Ｃｅ  加工点用曲線
Ｃｖｍ  ベクトル先端点用近似曲線
Ｃｖｅ  ベクトル先端点用曲線
【図１】
2005182437.tif 000003
【図２】
2005182437.tif 000004
【図３】
2005182437.tif 000005
【図４】
2005182437.tif 000006
【図５】
2005182437.tif 000007
【図６】
2005182437.tif 000008
【図７】
2005182437.tif 000009
【図８】
2005182437.tif 000010
【図９】
2005182437.tif 000011
【図１０】
2005182437.tif 000012
【図１１】
2005182437.tif 000013
【図１２】
2005182437.tif 000014
【図１３】
2005182437.tif 000015
【図１４】
2005182437.tif 000016
【図１５】
2005182437.tif 000017
【図１６】
2005182437.tif 000018
【図１７】
2005182437.tif 000019
【図１８】
2005182437.tif 000020
【図１９】
2005182437.tif 000021
【図２０】
2005182437.tif 000022
【図２１】
2005182437.tif 000023