(57)【特許請求の範囲】
【請求項１】
テーブルに取付られたワーク（加工物）に対して少なくとも直線軸３軸と回転軸１軸によって加工する多軸工作機械を制御する数値制御装置において、
加工プログラムで指令されたワークに対する工具先端点の相対的経路である指令経路におけるワークに対する工具先端点の指令経路速度および指令経路許容加速度を指令経路速度条件として入力する指令経路速度条件入力部と、
駆動軸に対する駆動軸許容速度および駆動軸許容加速度を駆動軸速度条件として入力する駆動軸速度条件入力部と、
前記指令経路を複数の区間に分割した分割区間ごとに、前記指令経路速度条件から指令経路区間許容速度および指令経路区間許容加速度、および前記駆動軸速度条件から駆動軸区間許容速度および駆動軸区間許容加速度を演算し、前記指令経路区間許容速度または前記駆動軸区間許容速度のうち小さい方を速度クランプ値とし、かつ前記指令経路区間許容加速度または前記駆動軸区間許容加速度のうち小さい方を加速度クランプ値とするクランプ値演算部と、
前記速度クランプ値および前記加速度クランプ値を越えない最大の前記指令経路上の速度として速度曲線を求める速度曲線演算部と、
前記速度曲線にもとづく速度によって前記指令経路の補間を行い補間された指令経路補間位置を駆動軸位置に変換することで駆動軸移動量を演算する補間部を有し、
前記駆動軸移動量によって各軸を駆動することを特徴とする数値制御装置。
【請求項２】
前記指令経路速度条件入力部は、前記指令経路速度および前記指令経路許容加速度に加えてワークに対する工具先端点の指令経路許容加加速度をも指令経路速度条件として入力する指令経路速度条件入力部であり、
前記駆動軸速度条件入力部は、前記駆動軸許容速度および前記駆動軸許容加速度に加えて駆動軸許容加加速度をも駆動軸速度条件として入力する駆動軸速度条件入力部であり、
前記クランプ値演算部は、前記分割区間ごとに、前記指令経路速度条件から指令経路区間許容速度および指令経路区間許容加速度に加えて指令経路区間許容加加速度をも演算し、また前記駆動軸速度条件から前記駆動軸区間許容速度および前記駆動軸区間許容加速度に加えて駆動軸区間許容加加速度をも演算し、前記速度クランプ値および前記加速度クランプ値に加えて前記指令経路区間許容加加速度または前記駆動軸区間許容加加速度のうち小さい方を加加速度クランプ値とするクランプ値演算部であり、
前記速度曲線演算部は、前記速度クランプ値および前記加速度クランプ値に加えて前記加加速度クランプ値をも越えない最大の前記指令経路上の速度として速度曲線を求める前記速度曲線演算部であることを特徴とする請求項１に記載の数値制御装置。
【請求項３】
前記工具先端点とは相違する工具上の基準点である工具基準点のワークに対する相対的経路である工具基準点経路における工具基準点のワークに対する工具基準点経路許容速度および工具基準点経路許容加速度を工具基準点経路速度条件として入力する工具基準点経路速度条件入力部を有し、
前記クランプ値演算部は、前記分割区間ごとに、前記指令経路区間許容速度、前記指令経路区間許容加速度、前記駆動軸区間許容速度および前記駆動軸区間許容加速度に加えて、前記工具基準点経路速度条件から工具基準点経路区間許容速度および工具基準点経路区間許容加速度をも演算し、前記指令経路区間許容速度、前記駆動軸区間許容速度または前記工具基準点経路区間許容速度のうち最も小さいものを速度クランプ値とし、かつ前記指令経路区間許容加速度、前記駆動軸区間許容加速度または前記工具基準点経路区間許容加速度のうち最も小さいものを加速度クランプ値とするクランプ値演算部であることを特徴とする請求項１に記載の数値制御装置。
【請求項４】
前記工具基準点経路速度条件入力部は、前記工具基準点経路許容速度および前記工具基準点経路許容加速度に加えて工具先端点のワークに対する工具基準点経路許容加加速度をも工具基準点速度条件として入力する工具基準点経路速度条件入力部であり、
前記クランプ値演算部は、前記分割区間ごとに、前記指令経路区間許容速度、前記指令経路区間許容加速度、前記指令経路区間許容加加速度、前記駆動軸区間許容速度、前記駆動軸区間許容加速度、前記駆動軸区間許容加加速度、前記工具基準点経路区間許容速度および前記工具基準点経路区間許容加速度に加えて、前記工具基準点経路速度条件から工具基準点経路区間許容加加速度をも演算し、前記速度クランプ値および前記加速度クランプ値に加えて、前記指令経路区間許容加加速度、前記駆動軸区間許容加加速度または前記工具基準点経路区間許容加加速度のうち最も小さいものを加加速度クランプ値とするクランプ値演算部であり、
前記速度曲線演算部は、前記速度クランプ値および前記加速度クランプ値に加えて前記加加速度クランプ値をも越えない最大の前記指令経路上の速度として速度曲線を求める前記速度曲線演算部であることを特徴とする請求項３に記載の数値制御装置。
【請求項５】
前記多軸工作機械は直線軸３軸とテーブルを回転する回転軸２軸を持つテーブル回転型５軸工作機械である請求項１乃至請求項４の何れか一つに記載の数値制御装置。
【請求項６】
前記多軸工作機械は直線軸３軸と工具ヘッドを回転する回転軸２軸を持つ工具ヘッド回転型５軸工作機械である請求項１乃至請求項４の何れか一つに記載の数値制御装置。  
【請求項７】
前記多軸工作機械は直線軸３軸と工具ヘッドを回転する回転軸１軸とテーブルを回転する回転軸１軸を持つ混合型５軸工作機械である請求項１乃至請求項４の何れか一つに記載の数値制御装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、テーブルに取付られたワーク（加工物）に対して少なくとも直線軸３軸と回転軸１軸によって加工する多軸工作機械を制御するとともに、ワークに対する工具の相対的経路である指令経路における許容加速度および許容加加速度にもとづく速度制御、各駆動軸における許容速度、許容加速度および許容加加速度にもとづく速度制御、および後述の工具基準点経路における工具基準点経路許容速度、工具基準点経路許容加速度および工具基準点経路許容加加速度にもとづく速度制御を行う数値制御装置に関する。
【背景技術】
【０００２】
工作機械において実際に動作する駆動軸には駆動軸許容速度、駆動軸許容加速度および駆動軸許容加加速度などの駆動軸速度条件がある。特許文献１に、それらの駆動軸速度条件を満たす指令経路上の速度を求めて指令経路を補間することにより駆動軸が許容速度、許容加速度および許容加加速度を越えないようにする技術が開示されている。なお、ここで加加速度は加速度の時間微分、つまり加速度の変化度であり、この特許文献１ではジャークと呼んでいる。  
特許文献２には、駆動軸許容速度、駆動軸許容加速度および駆動軸許容加加速度などの駆動軸速度条件を満たす最大の指令経路上の加加速度（特許文献では軌道衝撃ｒ（ｓ）と記載されている）を求め、それを積分して指令経路上の加速度を求め、さらにそれを積分して指令経路上の速度（軌道速度ｖ（ｓ））を求め、その速度によって指令経路を補間する技術が開示されている（請求項１など）。  
また、特許文献３には、駆動軸経路が指令される場合にワークに対する工具先端点の速度が許容速度（特許文献では基準速度と記載されている）となるような駆動軸経路上の送り速度を求めて補間する技術が開示されている（請求項６など）。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２００８−２２５８２５号公報
【特許文献２】特許第４６７３３７７号明細書
【特許文献３】国際公開２０１１／０６４８１６号
【発明の概要】
【発明が解決しようとする課題】
【０００４】
特許文献１の（１２）式において、駆動軸許容速度、駆動軸許容加速度および駆動軸許容加加速度（ジャーク）を越えないように指令経路上の移動距離ｓに対する時間微分である一次微分、二次微分、三次微分を求め、それらにもとづいてｓを変化させて指令経路を補間し逆運動学変換を行って駆動軸を動作する。しかし、特許文献１には、ワークに対する工具の相対的経路である指令経路における指令経路許容加速度および指令経路許容加加速度にもとづく速度制御を行う技術思想はない。  
特許文献２においては、文献中の図２からも明らかなように、少なくとも直線軸３軸と回転軸１軸によって加工する多軸工作機械を制御することを想定しておらず、そのため、駆動軸の速度と指令経路の速度という区別がない。したがって、多軸工作機械において駆動軸経路と指令経路が相違することが想定されていないため、駆動軸許容速度、駆動軸許容加速度および駆動軸許容加加速度と相違するワークに対する工具の相対的経路である指令経路における指令経路許容加速度および指令経路許容加加速度制御にもとづく速度制御を行う技術思想はない。
【０００５】
特許文献３においては、ワークに対する工具の相対的経路である指令経路における指令経路許容加速度および指令経路許容加加速度にもとづく速度制御を行う技術思想はない。
上記特許文献１や２で開示されているように、駆動軸許容速度、駆動軸許容加速度および駆動軸許容加加速度を越えないように速度制御を行うことは従来技術として知られている。一般に、これらの駆動軸許容速度、駆動軸許容加速度および駆動軸許容加加速度は工作機械製造時に各駆動軸の許容速度、許容加速度および許容加加速度を測定し、設定値として設定する。つまり、一般に工作機械の条件として数値制御装置内のパラメータなどに設定値として設定する。それに対して、より高精度、より高品位の加工を行うために、加工プログラムで指令された指令経路での指令経路許容加速度および指令経路許容加加速度にもとづく速度制御も必要になってきている。特に、少なくとも直線軸３軸と回転軸１軸によって加工する多軸工作機械での加工においては、駆動軸の動作経路とワークに対する工具の移動経路である指令経路とが大きく相違することが多く、より高精度、より高品位の加工を行うために、加工プログラムで指令されたワークに対する工具先端点の相対的経路である指令経路での工具先端点の指令経路許容加速度および指令経路許容加加速度にもとづく速度制御が重要となってきている。指令経路での加速度、加加速度が大きすぎると加工面に縞目ができてしまったり、工具の切り込みすぎによる溝ができてしまったりするためである。
【０００６】
例えば、図１のようにプログラム座標系に置かれたワークに対する工具先端点の相対的経路である指令経路がプログラム座標系上の加工プログラムによって指令され、実際のワークは図２のような回転軸２軸（Ａ，Ｃ軸）で回転するテーブル上に置かれて加工される場合で説明する。この時、加工プログラムにおいて工具先端点の指令経路がプログラム座標系上のＸ，Ｙ，Ｚ位置で指令されかつ指令経路速度が速度Ｆで指令されるとともに、工具方向が回転軸位置（Ａ，Ｃ軸位置）や工具方向ベクトルで指令される（図１）。
【０００７】
ここで加工プログラムにおいてＸ，Ｙ，Ｚ指令は直線指令であっても、実際の加工においては駆動軸としてのＸ，Ｙ，Ｚ軸はＡ，Ｃ軸の回転移動と共に図２の駆動軸経路のように機械座標系上で曲線的に移動する。この時、従来技術において各駆動軸は許容速度、許容加速度、許容加加速度以内で移動するように制御されていた。しかし、ワークに対する工具先端点の相対的経路である指令経路での許容加速度、許容加加速度の制御は行われていなかった。そのため、特に加工プログラムのコーナ部や曲率の大きな曲線部分において、ワークに対する工具先端点の経路上での大きな加速度や加加速度が発生することがあり、そのような場合、特に工具側面で加工する時に加工面に工具方向の縞目ができてしまったり、工具の切り込みすぎによる溝などができてしまったりした。また工具先端点で加工する時にも切り込みすぎによるくぼみができてしまったりした（図３参照）。特に各駆動軸の許容速度、許容加速度、許容加加速度を大きく設定している高剛性かつ高速性能を持つ工作機械では各駆動軸は高速、高加速度、高加加速度で動作するため、ワークに対する工具先端点の経路においても大きな加速度や加加速度が発生しそのような加工面上の縞目や溝またはくぼみが発生することがあった。
【０００８】
また、工具側面で加工する場合は、工具先端点の加速度や加加速度による速度制御とともに、工具先端点とは相違する工具上の他の基準点位置（例えば加工上面に対応する工具位置）を工具基準点とし、ワークに対する工具基準点の相対的経路である工具基準点経路での許容速度、許容加速度、許容加加速度による速度制御も必要になることがある（図１、図２参照）。図２の加工においては工具先端点と工具基準点の間の切刃で切削しているので、工具先端点での速度制御と同様に工具基準点での速度制御がなければ、やはり図３のように加工面に縞目ができてしまったり、工具の切り込みすぎによる溝などができてしまったりした。
【０００９】
そこで、本発明の課題は、ワークに対する工具先端点の経路で大きな加速度や加加速度が発生したりワークに対する工具基準点の経路で大きな速度、加速度、加加速度が発生することによって加工面の縞目や工具の切り込みすぎによる溝などが生じることを防ぎ、その結果、より高精度、より高品位の加工を実現できる数値制御装置を提供することである。  
請求項１に記載の発明の課題は、テーブルに取付られたワーク（加工物）に対して少なくとも直線軸３軸と回転軸１軸によって加工する多軸工作機械を制御するとともに、ワークに対する工具の相対的経路である指令経路における指令経路許容加速度および指令経路許容加加速度にもとづく速度制御を行う数値制御装置を提供することを課題とし、さらに、請求項３に記載の発明の課題は、工具先端点とは相違する工具基準点のワークに対する相対的経路である工具基準点経路における工具基準点経路許容速度、工具基準点経路許容加速度および工具基準点経路許容加加速度にもとづく速度制御を行う数値制御装置を提供することである。
【課題を解決するための手段】
【００１０】
請求項１に係る発明は、テーブルに取付られたワーク（加工物）に対して少なくとも直線軸３軸と回転軸１軸によって加工する多軸工作機械を制御する数値制御装置において、加工プログラムで指令されたワークに対する工具先端点の相対的経路である指令経路におけるワークに対する工具先端点の指令経路速度および指令経路許容加速度を指令経路速度条件として入力する指令経路速度条件入力部と、駆動軸に対する駆動軸許容速度および駆動軸許容加速度を駆動軸速度条件として入力する駆動軸速度条件入力部と、前記指令経路を複数の区間に分割した分割区間ごとに、前記指令経路速度条件から指令経路区間許容速度および指令経路区間許容加速度、および前記駆動軸速度条件から駆動軸区間許容速度および駆動軸区間許容加速度を演算し、前記指令経路区間許容速度または前記駆動軸区間許容速度のうち小さい方を速度クランプ値とし、かつ前記指令経路区間許容加速度または前記駆動軸区間許容加速度のうち小さい方を加速度クランプ値とするクランプ値演算部と、前記速度クランプ値および前記加速度クランプ値を越えない最大の前記指令経路上の速度として速度曲線を求める速度曲線演算部と、前記速度曲線にもとづく速度によって前記指令経路の補間を行い補間された指令経路補間位置を駆動軸位置に変換することで駆動軸移動量を演算する補間部を有し、前記駆動軸移動量によって各軸を駆動することを特徴とする数値制御装置である。  
請求項２に係る発明は、前記指令経路速度条件入力部は、前記指令経路速度および前記指令経路許容加速度に加えてワークに対する工具先端点の指令経路許容加加速度をも指令経路速度条件として入力する指令経路速度条件入力部であり、前記駆動軸速度条件入力部は、前記駆動軸許容速度および前記駆動軸許容加速度に加えて駆動軸許容加加速度をも駆動軸速度条件として入力する駆動軸速度条件入力部であり、前記クランプ値演算部は、前記分割区間ごとに、前記指令経路速度条件から指令経路区間許容速度および指令経路区間許容加速度に加えて指令経路区間許容加加速度をも演算し、また前記駆動軸速度条件から前記駆動軸区間許容速度および前記駆動軸区間許容加速度に加えて駆動軸区間許容加加速度をも演算し、前記速度クランプ値および前記加速度クランプ値に加えて前記指令経路区間許容加加速度または前記駆動軸区間許容加加速度のうち小さい方を加加速度クランプ値とするクランプ値演算部であり、前記速度曲線演算部は、前記速度クランプ値および前記加速度クランプ値に加えて前記加加速度クランプ値をも越えない最大の前記指令経路上の速度として速度曲線を求める前記速度曲線演算部であることを特徴とする請求項１に記載の数値制御装置である。
【００１１】
請求項３に係る発明は、前記工具先端点とは相違する工具上の基準点である工具基準点のワークに対する相対的経路である工具基準点経路における工具基準点のワークに対する工具基準点経路許容速度および工具基準点経路許容加速度を工具基準点経路速度条件として入力する工具基準点経路速度条件入力部を有し、前記クランプ値演算部は、前記分割区間ごとに、前記指令経路区間許容速度、前記指令経路区間許容加速度、前記駆動軸区間許容速度および前記駆動軸区間許容加速度に加えて、前記工具基準点経路速度条件から工具基準点経路区間許容速度および工具基準点経路区間許容加速度をも演算し、前記指令経路区間許容速度、前記駆動軸区間許容速度または前記工具基準点経路区間許容速度のうち最も小さいものを速度クランプ値とし、かつ前記指令経路区間許容加速度、前記駆動軸区間許容加速度または前記工具基準点経路区間許容加速度のうち最も小さいものを加速度クランプ値とするクランプ値演算部であることを特徴とする請求項１に記載の数値制御装置である。
請求項４に係る発明は、前記工具基準点経路速度条件入力部は、前記工具基準点経路許容速度および前記工具基準点経路許容加速度に加えて工具基準点のワークに対する工具基準点経路許容加加速度をも工具基準点速度条件として入力する工具基準点経路速度条件入力部であり、前記クランプ値演算部は、前記分割区間ごとに、前記指令経路区間許容速度、前記指令経路区間許容加速度、前記指令経路区間許容加加速度、前記駆動軸区間許容速度、前記駆動軸区間許容加速度、前記駆動軸区間許容加加速度、前記工具基準点経路区間許容速度および前記工具基準点経路区間許容加速度に加えて、前記工具基準点経路速度条件から工具基準点経路区間許容加加速度をも演算し、前記速度クランプ値および前記加速度クランプ値に加えて、前記指令経路区間許容加加速度、前記駆動軸区間許容加加速度または前記工具基準点経路区間許容加加速度のうち最も小さいものを加加速度クランプ値とするクランプ値演算部であり、前記速度曲線演算部は、前記速度クランプ値および前記加速度クランプ値に加えて前記加加速度クランプ値をも越えない最大の前記指令経路上の速度として速度曲線を求める前記速度曲線演算部であることを特徴とする請求項３に記載の数値制御装置である。
【００１２】
請求項５に係る発明は、前記多軸工作機械は直線軸３軸とテーブルを回転する回転軸２軸を持つテーブル回転型５軸工作機械である請求項１乃至請求項４の何れか一つに記載の数値制御装置である。  
請求項６に係る発明は、前記多軸工作機械は直線軸３軸と工具ヘッドを回転する回転軸２軸を持つ工具ヘッド回転型５軸工作機械である請求項１乃至請求項４の何れか一つに記載の数値制御装置である。  
請求項７に係る発明は、前記多軸工作機械は直線軸３軸と工具ヘッドを回転する回転軸１軸とテーブルを回転する回転軸１軸を持つ混合型５軸工作機械である請求項１乃至請求項４の何れか一つに記載の数値制御装置である。
【発明の効果】
【００１３】
本発明により、テーブルに取付られたワーク（加工物）に対して少なくとも直線軸３軸と回転軸１軸によって加工する多軸工作機械を制御するとともに、ワークに対する工具の相対的経路である指令経路における指令経路許容加速度および指令経路許容加加速度にもとづく速度制御を行う数値制御装置を提供できると共に、工具先端点とは相違する工具基準点のワークに対する相対的経路である工具基準点経路における工具基準点経路許容速度、工具基準点経路許容加速度および工具基準点経路許容加加速度にもとづく速度制御を行う数値制御装置を提供できる。そのことにより、ワークに対する工具先端点の経路で大きな加速度や加加速度が発生したりワークに対する工具基準点の経路で大きな速度、加速度、加加速度が発生することによって加工面の縞目や工具の切り込みすぎによる溝などが生じることを防ぎ、その結果、より高精度、より高品位の加工を実現できる。
【図面の簡単な説明】
【００１４】
【図１】プログラム座標系に置かれたワークに対する工具先端点の相対的経路である指令経路を説明する図である。
【図２】回転軸２軸（Ａ，Ｃ軸）で回転するテーブル上に置かれて加工される場合を説明する図である。
【図３】加工面に縞目ができてしまったり、工具の切り込みすぎによる溝やくぼみなどができてしまったりすることを説明する図である。
【図４】直線軸３軸とテーブルを回転する回転軸２軸を持つテーブル回転型５軸工作機械においてワークを加工するための加工プログラムの例を説明する図である。
【図５】指令経路を指令経路積算長ｓによって複数の区間に分割した分割区間ごとにｓｖｐを求め指令経路区間許容速度とし、前記分割区間ごとにｓｖｒを求め駆動軸区間許容速度とし、それらの小さい方を速度クランプ値とすることを説明する図である。
【図６】指令経路積算長ｓを区間で分割した分割区間ごとにｓａｐ、ｓａｒを求め、それぞれ指令経路区間許容加速度、駆動軸区間許容加速度とし、それらの小さい方を加速度クランプ値ｓａｃとすることを説明する図である。
【図７】指令経路積算長ｓを区間で分割した分割区間ごとにｓｊｐ、ｓｊｒを求め、それぞれ指令経路区間許容加加速度、駆動軸区間許容加加速度とし、小さい方を加加速度クランプ値ｓｊｃとすることを説明する図である。
【図８】求められた各分割区間のｓｖｃ、ｓａｃから、それらを満たす最大の速度となる速度曲線ｓｖｌを作成することを説明する図である。
【図９】追加条件によってｓｊｃが求められている場合に、各分割区間のｓｖｃ、ｓａｃ、ｓｊｃからそれらを満たす最大の速度となる速度曲線ｓｖｌを作成することを説明する図である。
【図１０】直線軸３軸と工具ヘッドを回転する回転軸２軸を持つ工具ヘッド回転型５軸工作機械を説明する図である。
【図１１】直線軸３軸と工具ヘッドを回転する回転軸１軸とテーブルを回転する回転軸１軸を持つ混合型５軸工作機械を説明する図である。
【図１２】本発明に係る指令経路速度条件による速度制御を行う数値制御装置を説明するブロック図である。
【図１３】本発明の第１の実施形態におけるクランプ値演算部のフローチャートを説明する図である。
【図１４】本発明の第２の実施形態におけるクランプ値演算部のフローチャートを説明する図である。
【発明を実施するための形態】
【００１５】
以下、本発明の実施形態を図面と共に説明する。  
＜第１の実施形態＞
図２のような直線軸３軸とテーブルを回転する回転軸２軸を持つテーブル回転型５軸工作機械とする。テーブルがＡ，Ｃ軸で回転し、工具ヘッドがＸ，Ｙ，Ｚ軸で動作する。ここではテーブルがＡ，Ｃ軸で回転するとしているが、他の回転軸（Ｂ，Ｃ軸やＡ，Ｂ軸）で回転する場合もある。また、Ｘ，ＹまたはＺ軸にテーブルが載って動作する場合もある。加工プログラム例としては図４のように指令される。ここで、Ｇ４３．４はワークに対する工具先端点の相対的経路を指令する工具先端点制御を開始するＧコードである。Ｇ４９は工具先端点制御をキャンセルするＧコードであり、その間の各ブロックのＸ＿＿，Ｙ＿＿，Ｚ＿＿がワークに対する工具先端点の相対的経路としての指令経路の指令である。
Ａ＿＿，Ｃ＿＿は、工具先端点の移動とともに工具方向を変更するために回転軸を移動する指令である。Ｉ＿＿，Ｊ＿＿，Ｋ＿＿のように工具方向をベクトルで指令することもできる。その場合は、指令された工具方向ベクトルをＡ＿＿，Ｃ＿＿の回転軸位置に変換することにより図４と同様の指令とみなすことができるため、本発明を適用できる。Ｆは指令経路における指令経路速度（F指令）の指令であり、速度が変化するブロックで指令する。Ｈ＿＿は工具長補正量を指令する。本発明は工具先端点制御に対して、つまりＧ４３．４からＧ４９指令までのプログラム指令に適用される。
【００１６】
図１のようにプログラム座標系上の工具先端点位置として指令される指令経路をｐとし、指令経路積算長ｓを媒介変数とする関数ｐ（ｓ）で表す。ｐ（ｓ）は、数１式のようにプログラム座標系上のＸ，Ｙ，Ｚ，Ａ，Ｃ要素がｓの３次式で表されるベクトルとする。
図１では簡便のためｐ（ｓ）は直線のように描いているが、ここではより一般化して数１式で表される３次式とする。この３次式は図４におけるＸ＿＿，Ｙ＿＿，Ｚ＿＿，Ａ＿＿，Ｃ＿＿の指令群から作成する。Ｘ＿＿，Ｙ＿＿，Ｚ＿＿，Ａ＿＿，Ｃ＿＿の指令群から３次式を作成する方法は従来技術なので詳述しない。ａｘ，ｂｘ，ｃｘ，ｄｘなどは各ｓ3，ｓ2，ｓなどの係数である。もちろん、直線、円弧、ＮＵＲＢＳ曲線など様々な他の関数形式で表すことも可能である。  
なお、ｐａ（ｓ），ｐｃ（ｓ）は計算表記における便宜のため、以降では明細書の数式を含む本文中および図面においてそれぞれＡ，Ｃと表す。
【００１７】
【数１】
0005255108.tif 000002
【００１８】
特許文献１では、数２式のように、指令経路（文献上は工具パスと記載している）ｐ（ｓ）から関数ｆでプログラム座標系上の主軸経路（文献上は主軸パス）ｑ（ｓ）を作成し、ｑ（ｓ）から関数ｇで駆動軸経路（文献上は駆動軸パス）ｒ（ｓ）を作成している。数２式は特許文献１中の（１）式、（２）式に対応し、特許文献１中の（１）式、（２）式では他の要素（段取り情報や機械構成など）を含めて記載しているが、ここでは簡単のため位置関係のみの記載としている。ｑ（ｓ），ｒ（ｓ）はそれぞれＸ，Ｙ，Ｚ，Ａ，Ｃ要素を持つベクトルである。
【００１９】
【数２】
0005255108.tif 000003
【００２０】
特許文献１では、指令経路ｐ（ｓ）から主軸経路ｑ（ｓ）までは機械構成によらず、主軸経路ｑ（ｓ）から駆動軸経路ｒ（ｓ）を作成する関数ｇには機械構成要素が入ってくるので、ｐ→ｑ→ｒと２段階に分けることによりｐ→ｑまでを機械構成によらず共通化できるとしている。もちろん、ｐ→ｒをそのように２段階にしてもよいが、本発明では、ｐ（ｓ）とｒ（ｓ）の関係が重要であるため、駆動軸経路ｒ（ｓ）を関数ｈから作成するとしてｐ（ｓ）とｒ（ｓ）の関係を数３式のように表す。
【００２１】
【数３】
0005255108.tif 000004
【００２２】
図２の機械構成の場合、数３式は具体的には次の数４式のようになる。ここで、Ｔｈは工具長補正ベクトルでありＬは工具長補正量である。ここではＺ軸方向のみのベクトルとしたが、工具径なども考慮してＸ，Ｙ要素も持つベクトルとしてもよい。Ｍｔはテーブル回転を表すマトリックスであり、その構成要素ＲＡ-1，ＲＣ-1はＸ軸周りにＡ，Ｚ軸周りにＣだけ逆回転するマトリックスである。
【００２３】
【数４】
0005255108.tif 000005
【００２４】
ｐ（ｓ），ｒ（ｓ）のｓによる１次微分、２次微分、３次微分ｐ’，ｐ’’，ｐ’’’、r’，r’’，r’’’は次の数５式、数６式、数７式、数８式、数９式、数１０式のようになる。以降、簡便のため（ｓ）の表記は自明の場合省略する。Ｍｔ’、（ＲＡ-1）’’、Ａ’’’などの「’」「’’」「’’’」記号は、それぞれｓによる１次微分、２次微分、３次微分を表す。「＊」は乗算を表す。また、ｓｉｎＡＡ’は（ｓｉｎＡ）＊Ａ’を意味する。他の三角関数の表記も同様である。
【００２５】
【数５】
0005255108.tif 000006
【００２６】
【数６】
0005255108.tif 000007
【００２７】
【数７】
0005255108.tif 000008
【００２８】
【数８】
0005255108.tif 000009
【００２９】
【数９】
0005255108.tif 000010
【００３０】
【数１０】
0005255108.tif 000011
【００３１】
これらの計算結果を使って指令経路における指令経路許容加速度、指令経路許容加加速度から、数１１式（指令経路許容加速度条件）、数１２式（指令経路許容加加速度条件）を演算する。ｐｉはｐの各軸要素（ｉ＝ｘ，ｙ，ｚ，ａ，ｃ）、ｓｖはｓの１次時間微分（速度）、ｓａはｓの２次時間微分（加速度）、ｓｊはｓの３次時間微分（加加速度）である。ここで、数１１式（指令経路許容加速度条件）は必要な条件である。数１２式（指令経路許容加加速度条件）はより高精度、高品位加工を必要とする場合に追加する条件である。なお、ｓ、ｓｖ、ｓａ、ｓｊはスカラー量である。
【００３２】
【数１１】
0005255108.tif 000012
【００３３】
【数１２】
0005255108.tif 000013
【００３４】
Ａｐｉは指令経路における各軸の許容加速度であり、指令経路許容加速度という。Ｊｐｉは指令経路における各軸の許容加加速度であり、指令経路許容加加速度という。Ａｐｉ，Ｊｐｉが指令経路速度条件であり、それらは前もって設定値として設定しておく、またはプログラム指令として指令する。そのようにしてＡｐｉ，Ｊｐｉを入力するのが指令経路速度条件入力部である。ただし、上記のように、数１１式（指令経路許容加速度条件）は必要な条件であるが、数１２式（指令経路許容加加速度条件）は必要な場合に演算する追加条件である。したがって、指令経路速度条件入力部においても、指令経路許容加速度は必要な入力データであるが、指令経路許容加加速度は必要な場合に入力する追加入力データである。なお、通常、Ｘ，Ｙ，ＺのＡｐｉ，Ｊｐｉ（ｉ＝ｘ，ｙ，ｚ）はｉに関係せず同一である。あるいはＸ，Ｙ，ＺのＡｐｉ，ＪｐｉはＸ，Ｙ，Ｚの合成加速度、合成加加速度であるとして演算をすることもできる。ここで、ワークに対する工具先端点の相対的経路である指令経路での許容加速度、許容加加速度は加工条件（目標加工精度、使用工具、ワーク材質など）にもよるため、加工ごとに指令したり設定できる。これは後述の工具基準点経路許容速度、許容加速度、許容加加速度についても同様である。
【００３５】
これらとｓｖは指令経路速度（指令Ｆ）を越えないという条件から、数１３式、数１４式、数１５式が得られる。指令経路速度はプログラムで速度指令として指令される指令Ｆである。ただし、ここではｓｖは指令経路速度（指令Ｆ）を越えないとしたが、Ａｐｉ，Ｊｐｉと同様Ｖｐｉという指令経路における各軸の許容速度を前もって設定しておき、数１３式ではｓｖを指令経路速度（指令Ｆ）またはＶｐｉの小さい方を越えないとしてもよい。
【００３６】
【数１３】
0005255108.tif 000014
【００３７】
【数１４】
0005255108.tif 000015
【００３８】
【数１５】
0005255108.tif 000016
【００３９】
これらを指令経路上で満たす最大のｓｖおよび指令経路の各軸に対して満たす最大のｓａ，ｓｊが、指令経路速度条件によるｓの許容速度ｓｖｐ、許容加速度ｓａｐ、許容加加速度ｓｊｐである。ただし、上記のように、数１１式（指令経路許容加速度条件）は必要な条件であるが、数１２式（指令経路許容加加速度条件）は追加条件である。したがって、数１３式、数１４式は必ず導かれるが、指令経路速度条件入力部において指令経路許容加速度のみ入力されていて指令経路許容加加速度は入力されていない場合、数１５式は導かれない。その場合、ｓｊｐには条件はなく、どのように大きな値（正値），小さな値（負値）もとり得る。
【００４０】
同様に、駆動軸における駆動軸許容速度、駆動軸許容加速度、駆動軸許容加加速度から、数１６式（駆動軸許容速度条件）、数１７式（駆動軸許容加速度条件）、数１８式（駆動軸許容加加速度条件）を演算する。ここで、ｒｉはｒの各軸要素（ｉ＝ｘ，ｙ，ｚ，ａ，ｃ）であり、またすでに述べたようにｓｖはｓの１次時間微分（速度）、ｓａはｓの２次時間微分（加速度）、ｓｊはｓの３次時間微分（加加速度）である。
【００４１】
【数１６】
0005255108.tif 000017
【００４２】
【数１７】
0005255108.tif 000018
【００４３】
【数１８】
0005255108.tif 000019
【００４４】
Ｖｒｉ，Ａｒｉ，Ｊｒｉは各駆動軸（Ｘ，Ｙ，Ｚ，Ａ，Ｃ軸）の駆動軸許容速度、駆動軸許容加速度、駆動軸許容加加速度（ｉ＝ｘ，ｙ，ｚ，ａ，ｃ）である。Ｖｒｉ，Ａｒｉ，Ｊｒｉが駆動軸速度条件であり、それらは前もって設定値として設定しておく、またはプログラム指令として指令する。そのようにしてＶｒｉ，Ａｒｉ，Ｊｒｉを入力するのが駆動軸速度条件入力部である。ただし、上記のように、数１６式（駆動軸許容速度条件）、数１７式（駆動軸許容加速度条件）は必要な条件であるが、数１８式（駆動軸許容加加速度条件）は必要な場合に演算する追加条件である。したがって、駆動軸速度条件入力部においても、駆動軸許容速度、駆動軸許容加速度は必要な入力データであるが駆動軸許容加加速度は必要な場合に入力する追加入力データである。ただし、これらの駆動軸速度条件を入力することおよびそれらに対応した数１６式、数１７式、数１８式を演算することは従来技術である。これらから、数１９式、数２０式、数２１式が得られる。
【００４５】
【数１９】
0005255108.tif 000020
【００４６】
【数２０】
0005255108.tif 000021
【００４７】
【数２１】
0005255108.tif 000022
【００４８】
これらを各駆動軸に対して満たす最大のｓｖ，ｓａ，ｓｊが、駆動軸速度条件によるｓの許容速度ｓｖｒ、許容加速度ｓａｒ、許容加加速度ｓｊｒである。ただし、上述のように、数１６式（駆動軸許容速度条件）、数１７式（駆動軸許容加速度条件）は必要な条件であるが、数１８式（駆動軸許容加加速度条件）は追加条件である。したがって、数１９式、数２０式は必ず導かれるが、駆動軸速度条件入力部においてＶｒｉ駆動軸許容速度とＡｒｉ駆動軸許容加速度のみ入力されていてＪｒｉ駆動軸許容加加速度は入力されていない場合、数２１式は導かれない。その場合、ｓｊｒには条件はなく、どのように大きな値（正値）小さな値（負値）もとり得る。
【００４９】
数１３式によって、図５のように指令経路をｓによって複数の区間で分割した分割区間ごとにｓｖｐを求め指令経路区間許容速度とする。また、同様に数１９式によって分割区間ごとにｓｖｒを求め駆動軸区間許容速度とする。ここで、区間とは、一定距離ごとの区間とする、加工プログラム上の指令ブロック単位を区間とする、曲率が大きいところでは短距離の区間とするように曲率に反比例する長さの区間とするなど様々な方法がある。ただし各区間内ではｐ（ｓ）は数１式のようなある一定の関数形式で表される。（数１式は３次式であるが、数１式の説明でも述べたように他の関数形式も可能である。）ただし、数１３式、数１９式から導かれるため、ｓｖｐ，ｓｖｒは各分割区間内でｓによって変化するｓｖｐ（ｓ），ｓｖｒ（ｓ）のように表される値であるが、ここでは以降の計算の簡便化を考慮して各分割区間内では定数としている。つまり、ある分割区間におけるｓの始点をｓｓ、終点をｓｅとすると、数２２式のように始点または終点でのｓｖｐ（ｓｓ），ｓｖｐ（ｓｅ）およびｓｖｒ（ｓｓ），ｓｖｒ（ｓｅ）のより小さい値とする、あるいは数２３式のように始点と終点の中点でのｓｖｐ（ｓ），ｓｖｐ（ｓ）およびｓｖｒ（ｓ），ｓｖｒ（ｓ）の値とするなどの方法によって定数とする。他にもｓｓ，ｓｅ間の適当な代表点でのｓｖｐ（ｓ），ｓｖｒ（ｓ）の値とすることもできる。もちろん、各分割区間内で定数とせずｓｖｐ（ｓ），ｓｖｒ（ｓ）のようにｓによる変数としてもよい。ｓａｐ、ｓａｒ、ｓｊｐ、ｓｊｒ、および後述（第２の実施形態）のｓｖｑｓ、ｓａｑｓ、ｓｊｑｓについても同様である。
【００５０】
【数２２】
0005255108.tif 000023
【００５１】
【数２３】
0005255108.tif 000024
【００５２】
図５では、各分割区間ごとに一点鎖線が指令経路区間許容速度ｓｖｐ、実線が駆動軸区間許容速度ｓｖｒとして表され、小さい方を速度クランプ値ｓｖｃとしている。つまり、ｓｖｃ＝Ｍｉｎ（ｓｖｐ，ｓｖｒ）とする。なお、図５では分割区間ごとにｓｖｐが変化するように描いているが、これは指令Ｆが分割区間ごとに変更されて指令されている場合を想定しているためである。
【００５３】
同様に、数１４式、数２０式によって、図６のようにｓを区間で分割した分割区間ごとにｓａｐ、ｓａｒを求め、それぞれ指令経路区間許容加速度、駆動軸区間許容加速度とする。そして、それらの小さい方を加速度クランプ値ｓａｃとする。つまり、ｓａｃ＝Mｉｎ（ｓａｐ，ｓａｒ）とする。図６では、各分割区間ごとに一点鎖線が指令経路区間許容加速度ｓａｐ、実線が駆動軸区間許容加速度ｓａｒとして表され、小さい方を加速度クランプ値ｓａｃとしている。
【００５４】
さらに、追加条件によって数１５式、数２１式が導かれている場合は、同様に、数１５式、数２１式によって、図７のようにｓを区間で分割した分割区間ごとにｓｊｐ、ｓｊｒを求め、それぞれ指令経路区間許容加加速度、駆動軸区間許容加加速度とする。そして、小さい方を加加速度クランプ値ｓｊｃとする。つまり、ｓｊｃ＝Ｍｉｎ（ｓｊｐ，ｓｊｒ）とする。図７では、各分割区間ごとに一点鎖線がｓｊｐ、実線がｓｊｒとして表され、小さい方を加加速度クランプ値ｓｊｃとしている。
【００５５】
求められた各分割区間のｓｖｃ、ｓａｃから、それらを満たす最大の速度となる速度曲線ｓｖｌを作成する。例えば、図８破線のようにｓｖｃ、ｓａｃが求められた場合、それらを満たす最大の速度としての速度曲線ｓｖｌを図８上図の実線のように求めることができる。ｓｖｌを求める方法は、ｓｖｃの局所最小域から右側と左側にｓａ（加速度）をｓａｃ内の最大値としながらｓａｌとして作成し、そのｓａｌを時間積分することでｓｖｌを作成していく。  
ｓｖｌがｓｖｃに達するとｓａｌ＝０とするとともにｓｖｌ＝ｓｖｃとする。そのようにして局所最小域の右側と左側からのｓｖｌが同じｓにおいて同じｓｖｌの値となるところまで到達すると速度曲線ｓｖｌが作成される。局所最小域とは、図８のＭ１、Ｍ２，Ｍ３、Ｍ４のようにその左右でｓｖｃが増加するところであり、指令経路の始点、終点も含む。なお、ｓｖｃは正側のみだが、ｓａｃは加速と同様減速にも有効であるため上述で求めた加速度クランプ値を絶対値として正負に配置する。
【００５６】
具体的には、図８においては、始点の局所最小域Ｍ１から右側にｓａとしては正のｓａｃをとりながらｓａｌを作成しｓａｌを時間積分してｓｖｌを作成していく。ｓｖｌがｓｖｃに達すればｓａｌ＝０、ｓｖｌ＝ｓｖｃとする。同様に、局所最小域Ｍ３から左にｓａとしては負のｓａｃをとりながらｓａｌを作成しｓａｌを時間積分してｓｖｌを作成していく。ｓｖｌがｓｖｃに達するとｓａｌ＝０，ｓｖｌ＝ｓｖｃとする。
【００５７】
Ｍ１から右側に作成したｓｖｌとＭ３から左側に作成したｓｖｌの値が同じｓで同じ値になるとＭ１〜Ｍ３間のｓｖｌが作成される。この時、局所最小域Ｍ２については、Ｍ２から作成するｓｖｌはＭ１から作成したｓｖｌより等しいか大きいため、Ｍ１から作成されるｓｖｌに含まれ使用されない。同様に、局所最小域Ｍ３から右に、終点Ｍ４から左にｓｖｌを作成する。局所最小域Ｍ３のところではｓｖｌ＝ｓｖｃである。これらのＭ１〜Ｍ３〜Ｍ４間で作成されたｓｖｌが求める速度曲線ｓｖｌである。なお、図８（後述の図９も同様）において、ｓとｔは一対一に対応するので便宜上横軸をｓ，ｔとしているが、ｓとｔのスケールは同じではない。
【００５８】
さらに追加条件によってｓｊｃが求められている場合は、各分割区間のｓｖｃ、ｓａｃ、ｓｊｃからそれらを満たす最大の速度となる速度曲線ｓｖｌを作成する。ｓａｃについて同じ絶対値で正負に配置したように、ｓｊｃについても求めた加加速度クランプ値を絶対値として正負に配置する。
【００５９】
例えば、図９破線のようにｓｖｃ、ｓａｃ、ｓｊｃが求められた場合、それらを満たす最大の速度としての速度曲線ｓｖｌを図９上図の実線のように求めることができる。ｓｖｌを求める方法は、ｓｖｃの局所最小域から右側と左側にｓｊ（加加速度）をｓｊｃ内の最大値としながらｓｊｌを作成し、そのｓｊｌを時間積分することでｓａｌを作成する。
ｓａｌがｓａｃに達すればｓａｌ＝ｓａｃ，ｓｊｌ＝０とする。さらにｓａｌを時間積分することでｓｖｌを作成する。ｓｖｌがｓｖｃに達すればｓｖｌ＝ｓｖｃ，ｓａｌ＝０，ｓｊｌ＝０とする。そのようにして局所最小域の右側と左側からのｓｖｌについて、図９Ｍ１からとＭ３からのように、同じｓであるｓ１（同様にＭ３からとＭ４からではｓ２）においてｓｖｌが同じ値ｓｖ１１（同様にｓｖｌ２）として得られれば速度曲線ｓｖｌが作成される。ｓ１（ｓ２）とｓｖ１１（ｓｖｌ２）は二分法など数値計算で求める。具体的な方法は、特許文献２に記載されている従来技術なのでここでは詳述しない。ただし、特許文献２では加加速度（特許文献２では軌道衝撃ｒ（ｓ））を求めることを目的としているが、本発明は速度曲線を求めて補間することを目的としている。
【００６０】
このようにして求めた速度曲線ｓｖｌにもとづいて指令経路積算長（指令経路ｐ上の移動距離）ｓにおける速度を求め、その速度によって指令経路ｐの補間を行い指令経路補間位置を求める。そして、指令経路補間位置を駆動軸位置に変換することによって駆動軸移動量を求める。つまり、前回補間周期で求めたｓの位置ｓ０に対応するｓｖｌによって速度ｓｖ０を求め、ｓ１＝ｓ０＋ｓｖ０＊Δｔを今回補間周期におけるｓの位置とする。ここでΔｔは補間周期時間である。ｐ（ｓ１）が今回補間周期における指令経路補間位置である。指令経路補間位置に対して数３式によるｒ（ｓ）＝ｈ（ｐ（ｓ１））が駆動軸位置である。この演算は補間部で行われる。この補間部の演算は従来技術であるので詳述しない。
【００６１】
＜第２の実施形態＞  
すでに述べたように、工具側面で加工する場合は、工具先端点の加速度や加加速度による速度制御とともに、工具先端点とは相違する工具上の他の基準点位置（例えば加工上面に対応する工具上の位置）を工具基準点とし、ワークに対する工具基準点の相対的経路である工具基準点経路での許容速度、許容加速度、許容加加速度による速度制御も必要になることがある（図１、図２参照）。つまり、指令経路にはその速度が指令Ｆで指令されているため指令経路での工具先端点の移動速度はその指令値より大きくはならないので、指令経路に対する許容速度（前述のＶｐｉ）は通常不要である。一方、工具基準点経路においては工具先端点でのＦ指令の指令速度より大きな速度となる可能性があるので、工具基準点経路許容速度による速度制御が必要である。
【００６２】
そこで、第２の実施形態は、工具先端点位置から基準点長（Ｌｓ）分離れた工具上の位置を工具基準点とし、第１の実施形態に対してさらに工具基準点での速度制御を行う実施形態である。  
プログラム座標系上の工具先端点位置として指令される指令経路ｐ（ｓ）に対して工具基準点の経路である工具基準点経路ｑｓ（ｓ）は次の数２４式のようになる。数２４式は、基準長ＬｓのベクトルＴｓに対して回転軸Ａ，Ｃ軸による傾斜分の回転を表すマトリックスＭｈの乗算を行いｐ（ｓ）に加算したものである（図１参照）。
【００６３】
【数２４】
0005255108.tif 000025
【００６４】
これを数４式の代わりとして第１の実施形態と同様の計算を行えば、ｑｓ（ｓ）のｓによる１次微分、２次微分、３次微分ｑｓ’，ｑｓ’’，ｑｓ’’’を求めることができる。これらから、数１６式、数１７式、数１８式と同様に、工具基準点経路の工具基準点経路許容速度、工具基準点経路許容加速度、工具基準点経路許容加加速度から、数２５式（工具基準点経路許容速度条件）、数２６式（工具基準点経路許容加速度条件）、数２７式式（工具基準点経路許容加加速度条件）を演算する。ここで、ｑｓｉはｑｓの各軸要素（ｉ＝ｘ，ｙ，ｚ，ａ，ｃ）であり、またすでに述べたようにｓｖはｓの１次時間微分（速度）、ｓａはｓの２次時間微分（加速度）、ｓｊはｓの３次時間微分（加加速度）である。
【００６５】
【数２５】
0005255108.tif 000026
【００６６】
【数２６】
0005255108.tif 000027
【００６７】
【数２７】
0005255108.tif 000028
【００６８】
Ｖｑｓｉ，Ａｑｓｉ，Ｊｑｓｉは各工具基準点経路における各軸（Ｘ，Ｙ，Ｚ，Ａ，Ｃ軸）の工具基準点経路許容速度、工具基準点経路許容加速度、工具基準点経路許容加加速度（ｉ＝ｘ，ｙ，ｚ，ａ，ｃ）である。Ｖｑｓｉ，Ａｑｓｉ，Ｊｑｓｉが工具基準点経路速度条件であり、それらは前もって設定値（既定値）として設定しておく、またはプログラム指令として指令する。そのようにしてＶｑｓｉ，Ａｑｓｉ，Ｊｑｓｉを入力するのが工具基準点経路速度条件入力部である。ただし、工具基準点経路速度条件と同様、数２５式（工具基準点経路許容速度条件）、数２６式（工具基準点経路許容加速度条件）は必要な条件であるが、数２７式（工具基準点経路許容加加速度条件）は必要な場合に演算する追加条件である。したがって、工具基準点経路速度条件入力部においても、工具基準点経路許容速度、工具基準点経路許容加速度は必要な入力データであるが工具基準点経路許容加加速度は必要な場合に入力する追加入力データである。なお、通常Ｘ，Ｙ，ＺのＶｑｓｉ，Ａｑｓｉ，Ｊｑｓｉ（ｉ＝ｘ，ｙ，ｚ）は同じである。あるいはＸ，Ｙ，ＺのＶｑｓｉ，Ａｑｓｉ，ＪｑｓｉはＸ，Ｙ，Ｚの合成速度、合成加速度、合成加加速度であるとして演算をすることもできる。  
これらから、数２８式、数２９式、数３０式が得られる。
【００６９】
【数２８】
0005255108.tif 000029
【００７０】
【数２９】
0005255108.tif 000030
【００７１】
【数３０】
0005255108.tif 000031
【００７２】
これらを各軸に対して満たす最大のｓｖ，ｓａ，ｓｊが、工具基準点経路速度条件によるｓの許容速度ｓｖｑｓ、許容加速度ｓａｑｓ、許容加加速度ｓｊｑｓである。ただし、上述のように、数２５式（工具基準点経路許容速度条件）、数２６式（工具基準点経路許容加速度条件）は必要な条件であるが、数２７式（工具基準点経路許容加加速度条件）は追加条件である。したがって、数２８式、数２９式は必ず導かれるが、工具基準点経路速度条件入力部においてＶｑｓｉ工具基準点経路許容速度とＡｑｓｉ工具基準点経路許容加速度のみ入力されていてＪｑｓｉ工具基準点経路許容加加速度は入力されていない場合、数２７式、数３０式は導かれない。その場合、ｓｊｑｓには条件はなく、どのように大きな値（正値）小さな値（負値）もとり得る。
【００７３】
第１の実施形態では、ｓを区間で分割した分割区間ごとに指令経路区間許容速度ｓｖｐ，駆動軸区間許容速度ｓｖｒを求め、それらの小さい方を速度クランプ値ｓｖｃとしたが、本実施形態では同様に分割区間ごとにさらに工具基準点経路区間許容速度ｓｖｑｓを求める。そして、ｓｖｐ，ｓｖｒ，ｓｖｑｓの中の一番小さいものを速度クランプ値ｓｖｃとする。つまり、ｓｖｃ＝Ｍｉｎ（ｓｖｐ，ｓｖｒ，ｓｖｑｓ）とする。また、第１の実施形態では、分割区間ごとに指令経路区間許容速度ｓａｐ，駆動軸区間許容速度ｓａｒを求め、それらの小さい方を加速度クランプ値ｓａｃとしたが、本実施形態では同様に分割区間ごとにさらに工具基準点経路区間許容加速度ｓａｑｓを求める。そして、ｓａｐ，ｓａｒ，ｓａｑｓの中の一番小さいものを加速度クランプ値ｓａｃとする。つまり、ｓａｃ＝Ｍｉｎ（ｓａｐ，ｓａｒ，ｓａｑｓ）とする。同様に、第１の実施形態では、分割区間ごとに指令経路区間許容加加速度ｓｊｐ，駆動軸区間許容加加速度ｓｊｒを求め、それらの小さい方を加加速度クランプ値ｓｊｃとしたが、本実施形態では同様に分割区間ごとにさらに工具基準点経路区間許容加加速度ｓｊｑｓを求める。そして、ｓｊｐ，ｓｊｒ，ｓｊｑｓの中の一番小さいものを加加速度クランプ値ｓｊｃとする。つまり、ｓｊｃ＝Ｍｉｎ（ｓｊｐ，ｓｊｒ，ｓｊｑｓ）とする。後は第１の実施形態と同様であるので説明を省略する。
【００７４】
＜第３の実施形態＞  
第１および第２の実施形態ではテーブル回転型５軸工作機械を対象としたが、同様に図１０のような直線軸３軸と工具ヘッドを回転する回転軸２軸を持つ工具ヘッド回転型５軸工作機械にも適用可能である。  
この場合、ｐ（ｓ）とｒ（ｓ）の関係は、第１の実施形態の数４式に代わって数３１式のようになる。Ｍｈは工具ヘッド回転を表すマトリックスであり、その構成要素ＲＢ，ＲＣはＹ軸周りにＢ，Ｚ周りにＣだけ回転するマトリックスである。
【００７５】
【数３１】
0005255108.tif 000032
【００７６】
後は第１の実施形態および第２の実施形態と同様であるので、説明を省略する。
【００７７】
＜第４の実施形態＞  
同様に、工具ヘッド側に数３１式と同様の計算を行い、回転テーブル側に数４式と同様の計算を行うことによって、図１１のような直線軸３軸と工具ヘッドを回転する回転軸１軸とテーブルを回転する回転軸1軸を持つ混合型５軸工作機械にも適用可能である。この場合、ｐ（ｓ）とｒ（ｓ）の関係は、第１の実施形態の数４式に代わって数３２式のようになる。後は第１の実施形態および第２の実施形態と同様であるので、説明を省略する。
【００７８】
【数３２】
0005255108.tif 000033
【００７９】
なお、第１〜第４の実施形態においては回転軸２軸持つ５軸工作機械の例としたが、それらの実施形態における回転軸２軸のうち１軸の位置を固定位置にすることによりその回転軸は不要とし、回転軸を１軸持つ４軸工作機械にも適用可能である。
【００８０】
＜ブロック図＞  
次に、図１２を用いて本発明第１の実施形態および第２の実施形態での数値制御装置を説明する。数値制御装置は一般に、指令解析部１０で加工プログラムの指令を解析して補間用データを作成し、補間部１２で補間用データにもとづいて補間を行って各軸の移動すべき位置を求め、その位置によって各軸のサーボ（１４Ｘ，１４Ｙ，１４Ｚ，１４Ａ（Ｂ），１４Ｃ）を駆動する。
【００８１】
本発明では、指令経路速度条件入力部２０で、指令経路速度（指令Ｆ）、指令経路許容加速度、指令経路許容加加速度を入力し、駆動軸速度条件入力部２２で駆動軸許容速度、駆動軸許容加速度、駆動軸許容加加速度を入力し、工具基準点経路速度条件入力部２４で工具基準点経路許容速度、工具基準点経路許容加速度、工具基準点経路許容加加速度を入力する。クランプ値演算部１８で、それらの速度条件から分割区間ごとに速度クランプ値、加速度クランプ値、加加速度クランプ値を演算する。速度曲線演算部１６で、速度クランプ値、加速度クランプ値、加加速度クランプ値を越えない最大の速度として速度曲線を演算する。補間部１２で、その速度曲線にもとづく速度によって補間を行い補間された指令経路補間位置を駆動軸位置に変換して駆動軸移動量を演算し、その駆動軸移動量によって各軸サーボ（１４Ｘ，１４Ｙ，１４Ｚ，１４Ａ（Ｂ），１４Ｃ）を駆動する。なお、補間部１２の補間および変換の演算は従来技術である。
なお、工具側面でワークを加工しない実施形態の場合、工具基準点経路速度条件入力部２４を省略することができる。
【００８２】
図１３に第１の実施形態におけるクランプ値演算部のフローチャートを示す。図４のＧ４３．４のブロックから開始しＧ４９のブロックで終了する。ここでは分割区間は指令ブロック単位とする。分割区間の番号をｋとし、ｋを各分割区間におけるｓｖｃ，ｓａｃ，ｓｊｃのインデックスとして各分割区間のｓｖｃ，ｓａｃ，ｓｊｃを表している。以下、各ステップに従って説明する。  
●［ステップＳＡ０１］ｋ＝０とし、１ブロック（Ｇ４３．４ブロック）読み込む。  
●［ステップＳＡ０２］Ｇ４９のブロックであるか否か判断し、Ｇ４９のブロックの場合（ＹＥＳの場合）処理を終了し、Ｇ４９のブロックではない場合（ＮＯの場合）ステップＳＡ０３へ移行する。  
●［ステップＳＡ０３］数４式〜数２２式から、第ｋ区間（第ｋブロック）におけるｓｖｐ，ｓｖｒ，ｓａｐ，ｓａｒ，ｓｊｐ，ｓｊｒを求める。  
●［ステップＳＡ０４］ｓｖｃ（ｋ）＝Ｍｉｎ（ｓｖｐ，ｓｖｒ），ｓａｃ（ｋ）＝Ｍｉｎ（ｓａｐ，ｓａｒ），ｓｊｃ（ｋ）＝Ｍｉｎ（ｓｊｐ，ｓｊｒ）によって、ｓｖｃ（ｋ），ｓａｃ（ｋ），ｓｊｃ（ｋ）を求める。
●［ステップＳＡ０５］ｋ＝ｋ＋１とし次のブロックを読み込み、ステップＳＡ０２に戻る。
【００８３】
図１４に第２の実施形態におけるクランプ値演算部のフローチャートを示す。図４のＧ４３．４のブロックから開始しＧ４９のブロックで終了する。ここでは分割区間は指令ブロック単位とする。分割区間の番号をｋとし、ｋを各分割区間におけるｓｖｃ，ｓａｃ，ｓｊｃのインデックスとして各分割区間のｓｖｃ，ｓａｃ，ｓｊｃを表している。以下、各ステップに従って説明する。  
●［ステップＳＢ０１］ｋ＝０とし、１ブロック（Ｇ４３．４ブロック）読み込む。  
●［ステップＳＢ０２］Ｇ４９のブロックであるか否か判断し、Ｇ４９のブロックの場合（ＹＥＳの場合）処理を終了し、Ｇ４９のブロックではない場合（ＮＯの場合）ステップＳＢ０３へ移行する。  
●［ステップＳＢ０３］数４式〜数２２式、数２４式〜数３０式から、第ｋ区間（第ｋブロック）におけるｓｖｐ，ｓｖｒ，ｓｖｑｓ，ｓａｐ，ｓａｒ，ｓａｑｓ，ｓｊｐ，ｓｊｒ，ｓｊｑｓを求める。  
●［ステップＳＢ０４］ｓｖｃ（ｋ）＝Ｍｉｎ（ｓｖｐ，ｓｖｒ，ｓｖｑｓ），ｓａｃ（ｋ）＝Ｍｉｎ（ｓａｐ，ｓａｒ，ｓａｑｓ），ｓｊｃ（ｋ）＝Ｍｉｎ（ｓｊｐ，ｓｊｒ，ｓｊｑｓ）によって、ｓｖｃ（ｋ），ｓａｃ（ｋ），ｓｊｃ（ｋ）を求める。  
●［ステップＳＢ０５］ｋ＝ｋ＋１とし次のブロックを読み込み、ステップＳＢ０２に戻る。
【符号の説明】
【００８４】
ｓ  指令経路積算長
１０  指令解析部
１２  補間部
１４Ｘ  Ｘ軸サーボ
１４Ｙ  Ｙ軸サーボ
１４Ｚ  Ｚ軸サーボ
１４Ａ（Ｂ）  Ａ（Ｂ）軸サーボ
１４Ｃ  Ｃ軸サーボ
１６  速度曲線演算部
１８  クランプ値演算部
２０  指令経路速度条件入力部
２２  駆動軸速度条件入力部
２４  工具基準点経路速度条件入力部
【図１】
0005255108.tif 000034
【図２】
0005255108.tif 000035
【図３】
0005255108.tif 000036
【図４】
0005255108.tif 000037
【図５】
0005255108.tif 000038
【図６】
0005255108.tif 000039
【図７】
0005255108.tif 000040
【図８】
0005255108.tif 000041
【図９】
0005255108.tif 000042
【図１０】
0005255108.tif 000043
【図１１】
0005255108.tif 000044
【図１２】
0005255108.tif 000045
【図１３】
0005255108.tif 000046
【図１４】
0005255108.tif 000047