(57)【特許請求の範囲】
【請求項１】
ワーク又はそのワークを加工する工具を移送対象物としてその移送対象物を前記ワークを加工するために複数の移送軸に沿って動かす複数の移送装置と、前記ワークを支持するテーブルとを備え、前記移送装置には、特定方向に延びる第１軸を中心とした揺動移送軸方向に前記工具を揺動させる揺動装置と、前記第１軸に対して垂直な方向に延びる第２軸を中心とした回動移送軸方向において前記揺動装置及び前記工具と前記テーブルとを相対的に回動させる回動装置とが含まれている工作機械に設けられ、前記各移送装置の数値制御を行う数値制御装置であって、
前記ワークの加工を指示する加工プログラムを記憶する記憶部と、
前記記憶部に記憶された前記加工プログラムを読み取り、その読み取った加工プログラムに基づいて、前記テーブル上に固定され且つ前記第２軸に垂直な特定平面を含む基準座標系における前記工具の先端点の位置座標と前記工具の移動の軌跡の積算長である媒介変数によって前記ワークの加工時における前記先端点の動きを表した先端パスと、前記先端点から前記工具の軸心に沿ってその工具の基端側へ一定距離だけ離れた点である上空点の動きを前記基準座標系における当該上空点の位置座標と前記媒介変数によって表した上空パスとを求めるパス導出部と、
前記パス導出部によって求められた前記先端パスと前記上空パスのうち前記先端点からその先端点に対応する前記上空点へ向かう工具軸ベクトルを前記特定平面に射影した射影工具軸ベクトルの向きの前記媒介変数の増分に対する変化率が一定の変化率を超える箇所である姿勢調整箇所を特定し、その特定した姿勢調整箇所の前記媒介変数の前後に亘る特定の区間を姿勢調整区間として設定し、前記射影工具軸ベクトルの向きの変化が前記姿勢調整区間において緩やかになる方向にその姿勢調整区間における前記工具の姿勢を調整するための姿勢調整情報を求める姿勢調整情報導出部と、
前記移送対象物を動かすときの前記各移送軸毎の許容加速度を含む加減速条件と、前記パス導出部によって導出された前記先端パス及び前記上空パスと、前記姿勢調整情報導出部によって導出された前記姿勢調整情報とに基づいて、基準時刻の経過に対する前記媒介変数の変化を表す媒介変数時間関数を求める媒介変数時間関数導出部と、
前記媒介変数時間関数導出部によって求められた前記媒介変数時間関数から前記基準時刻の単位時間毎の各時点に対応する前記媒介変数を求めるとともに、その求めた各時点の媒介変数のうち前記姿勢調整区間内の媒介変数については、その媒介変数に対応する前記先端パス上の前記先端点の位置座標と、その先端点から当該先端点に対する相対的な位置関係を前記姿勢調整情報に基づいて前記射影工具軸ベクトルの向きの変化が緩やかになる方向に調整した前記上空パス上の前記上空点へ向かう工具軸ベクトルとを求め、前記各時点の媒介変数のうち前記姿勢調整区間外の媒介変数については、その媒介変数に対応する前記先端パス上の前記先端点の位置座標と、その先端点からその媒介変数に対応する前記上空パス上の前記上空点へ向かう工具軸ベクトルとを求め、その各時点の媒介変数について求めた先端点の位置座標を前記工具の先端点が通り且つその各時点の媒介変数について求めた工具軸ベクトルに前記工具の工具軸ベクトルが一致するように前記移送対象物を動かすための前記各移送軸方向への前記移送対象物の前記単位時間毎の移送量を求めて、その各移送軸方向への単位時間毎の移送量を移送指令とする移送指令導出部と、
前記各移送装置に対して、前記移送指令導出部によって求められた前記移送指令のうちその移送装置に対応する前記移送軸方向への移送量を示す移送指令を出力し、その各移送装置に出力した移送指令に応じて前記移送対象物を移送させる制御部とを備えた、数値制御装置。
【請求項２】
前記姿勢調整情報導出部は、前記特定平面に垂直な方向から見て前記先端パスが示す軌跡と前記上空パスが示す軌跡が交差する交点が前記姿勢調整箇所に含まれる場合には、前記工具の前記先端点が前記交点に対応する前記先端パス上の点に位置する前記媒介変数においてその工具の前記上空点が前記交点に対応する前記上空パス上の点に位置するという条件を満たす前記姿勢調整情報を求める、請求項１に記載の数値制御装置。
【請求項３】
前記姿勢調整情報導出部は、前記パス導出部によって求められた前記先端パスを前記特定平面へ射影した射影先端パスと前記パス導出部によって求められた前記上空パスを前記特定平面へ射影した射影上空パスとを求め、前記射影先端パス上の点とその点に対応する前記射影上空パス上の点を通る直線である制御ラインと前記特定平面上の基準方向との間の角度が前記姿勢調整区間の始点から終点に至るまで均等な割合で変化するように当該制御ラインと当該基準方向との間の角度である方向特定角度と前記姿勢調整区間内の前記媒介変数との関係を規定した方向特定関数を前記姿勢調整情報として導出し、
前記移送指令導出部は、前記方向特定関数に基づいて前記姿勢調整区間内の媒介変数に対応する前記方向特定角度を求め、その媒介変数に対応する前記射影先端パス上の点を通り且つ前記基準方向との間の角度がその求めた方向特定角度に一致する直線と前記射影上空パスとの交点に対応する前記上空パス上の上空点を求め、前記姿勢調整区間内の媒介変数に対応する前記先端パス上の前記先端点からこの求めた上空点へ向かう工具軸ベクトルを前記射影工具軸ベクトルの向きの変化が緩やかになる方向に調整した工具軸ベクトルとして導出する、請求項１又は２に記載の数値制御装置。
【請求項４】
前記移送指令導出部は、前記姿勢調整箇所に前記工具軸ベクトルが前記特定平面に対して垂直となる特異点が含まれている場合には、その特異点の前記媒介変数に対応する前記方向特定角度を前記方向特定関数から求め、その求めた方向特定角度を前記特異点の前記媒介変数に対応する前記回動移送軸方向の位置座標として用いて当該回動移送軸方向への前記移送対象物の前記単位時間毎の移送量を求める、請求項３に記載の数値制御装置。
【請求項５】
前記姿勢調整情報導出部は、前記先端パスのうち前記姿勢調整区間の始点に対応する点からその姿勢調整区間内の任意の前記媒介変数に対応する任意の点までの当該先端パスに沿った移動距離と前記上空パスのうち前記姿勢調整区間の始点に対応する点から前記先端パス上の前記任意の点に対応させる当該上空パス上の所定の点までの当該上空パスに沿った移動距離とが一定の比率に維持されるように前記任意の媒介変数と前記上空パス上の前記所定の点を特定するための媒介変数である上空点特定用媒介変数との相関関係を規定した先端上空対応関係を前記姿勢調整情報として導出し、
前記移送指令導出部は、前記先端パスについての前記姿勢調整区間内の特定の媒介変数に対して前記先端上空対応関係を満たすような前記上空点特定用媒介変数を求め、前記特定の媒介変数に対応する前記先端パス上の点からこの求めた上空点特定用媒介変数に対応する前記上空パス上の点へ向かう工具軸ベクトルを前記射影工具軸ベクトルの向きの変化が緩やかになる方向に調整した工具軸ベクトルとして導出する、請求項１又は２に記載の数値制御装置。
【請求項６】
前記パス導出部は、前記記憶部に記憶された前記加工プログラムを読み取り、その読み取った加工プログラムが指示する前記先端点の動きを当該先端点の前記基準座標系での位置座標と前記媒介変数との関数によって表す補間前先端パスと、その読み取った加工プログラムが指示する前記上空点の動きを当該上空点の前記基準座標系での位置座標と前記媒介変数との関数によって表す補間前上空パスとを求める補間前パス導出部と、前記補間前パス導出部によって求められた前記補間前先端パスにおいて前記媒介変数による一次微分値の変化が連続で且つ前記媒介変数による二次微分値の変化が不連続になっている点と前記媒介変数による一次微分値の変化が不連続になっている点とのうち少なくとも一方の点を先端パス補間対象点とし、前記補間前先端パスのうち前記先端パス補間対象点の前後に亘る特定の区間である先端パス補間区間のみを前記先端パス補間対象点において不連続となっている微分値の変化が連続的な変化となるように局部補間することによって前記先端パスを求め、前記補間前パス導出部によって求められた前記補間前上空パスにおいて前記媒介変数による一次微分値の変化が連続で且つ前記媒介変数による二次微分値の変化が不連続になっている点と前記媒介変数による一次微分値の変化が不連続になっている点とのうち少なくとも一方の点を上空パス補間対象点とし、前記補間前上空パスのうち前記上空パス補間対象点の前後に亘る特定の区間である上空パス補間区間のみを前記上空パス補間対象点において不連続となっている微分値の変化が連続的な変化となるように局部補間することによって前記上空パスを求めるパス補間部とを含む、請求項１〜５のいずれか１項に記載の数値制御装置。
【請求項７】
前記記憶部は、前記テーブル上に設置されたワークに固定されるワーク座標系の前記基準座標系に対する相対的な位置及び傾きを表すワーク設置情報を記憶し、当該記憶部に記憶された前記加工プログラムには、前記ワークの加工時における前記工具の前記ワーク座標系上での動きを表すワーク座標系ツールパスが含まれ、
前記パス導出部は、前記加工プログラムに含まれる前記ワーク座標系ツールパスを読み取り、その読み取ったワーク座標系ツールパスを前記ワーク設置情報に基づいて前記基準座標系上のパスに変換することによって基準座標系ツールパスを導出し、その導出した基準座標系ツールパスに基づいて前記先端パス及び前記上空パスを導出する、請求項１〜６のいずれか１項に記載の数値制御装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、数値制御装置に関するものである。
【背景技術】
【０００２】
従来、各種工作機械では、ワークやそのワークを加工するための工具を移動させる移送装置を加工プログラム（ＮＣプログラム）に従って数値制御することによりワークの加工が行われている。従来の工作機械としては、ワークを支持するテーブル上の特定平面に対して平行な軸を中心として工具を揺動させる揺動装置と、その特定平面に対して垂直な軸回りに工具及び揺動装置をテーブルに対して相対的に回動させる回動装置と、前記特定平面上のＸ軸方向に工具を移送する移送装置と、前記特定平面上でＸ軸に直交するＹ軸方向に工具を移送する移送装置と、Ｘ軸及びＹ軸の両方に垂直なＺ軸方向に工具を移送する移送装置とを備えた５軸加工機が知られており、下記特許文献１には、このような５軸加工機の数値制御を行う数値制御装置が示されている。
【０００３】
特許文献１に開示された数値制御装置では、工具の先端の加工点の軌跡を滑らかに補間した加工点曲線と、加工点から工具の基端側へ一定距離だけ離間した基準工具長位置の軌跡を滑らかに補間した基準工具長位置曲線とを求め、工具の先端の加工点が加工点曲線上を通り且つ基準工具長位置が基準工具長位置曲線上を通るように、回動装置による工具の回動及び揺動装置による工具の揺動と、Ｘ軸、Ｙ軸及びＺ軸方向への対応する移送装置による工具の移送とを制御することによってワークの滑らかな加工を行っている。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２０１０−１４６１７６号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
しかしながら、上記の制御では、工具の先端の加工点から基準工具長位置へ向かう工具軸ベクトルがわずかしか変化しない場合でも、工具軸ベクトルを前記特定平面へ射影した射影工具軸ベクトルの向きが大きく変化し、その結果、テーブルに対する工具及び揺動装置の急回転が生じる虞があることについて想定していない。
【０００６】
具体的には、例えば、加工プログラムによって指示される工具軸ベクトル（ｘ，ｙ，ｚ）が（０．０００１，０，１）から（０，０．０００１，１）へわずかに変化する場合であっても、射影工具軸ベクトルの向きは、９０度も変化する。この場合には、回動装置が、工具及び揺動装置を９０度回転させるため、工具及び揺動装置の急回転が生じる。このような急回転により、工具による実際の加工点の位置が加工プログラムによって指示されている加工点の位置に対してずれを生じてワークの加工精度が低下したり、その急回転による機械ショックが工作機械に与えられたりする。
【０００７】
本発明は、上記の課題を解決するためになされたものであり、その目的は、加工プログラムに射影工具軸ベクトルの向きが急変するような移送対象物の動きを指示する部分が含まれている場合でも、工具とテーブルが相対的に急回転するのを防いでワークの加工精度の低下及び機械ショックの発生を抑制することである。
【課題を解決するための手段】
【０００８】
上記目的を達成するために、本発明による数値制御装置は、ワーク又はそのワークを加工する工具を移送対象物としてその移送対象物を前記ワークを加工するために複数の移送軸に沿って動かす複数の移送装置と、前記ワークを支持するテーブルとを備え、前記移送装置には、特定方向に延びる第１軸を中心とした揺動移送軸方向に前記工具を揺動させる揺動装置と、前記第１軸に対して垂直な方向に延びる第２軸を中心とした回動移送軸方向において前記揺動装置及び前記工具と前記テーブルとを相対的に回動させる回動装置とが含まれている工作機械に設けられ、前記各移送装置の数値制御を行う数値制御装置であって、前記ワークの加工を指示する加工プログラムを記憶する記憶部と、前記記憶部に記憶された前記加工プログラムを読み取り、その読み取った加工プログラムに基づいて、前記テーブル上に固定され且つ前記第２軸に垂直な特定平面を含む基準座標系における前記工具の先端点の位置座標と前記工具の移動の軌跡の積算長である媒介変数によって前記ワークの加工時における前記先端点の動きを表した先端パスと、前記先端点から前記工具の軸心に沿ってその工具の基端側へ一定距離だけ離れた点である上空点の動きを前記基準座標系における当該上空点の位置座標と前記媒介変数によって表した上空パスとを求めるパス導出部と、前記パス導出部によって求められた前記先端パスと前記上空パスのうち前記先端点からその先端点に対応する前記上空点へ向かう工具軸ベクトルを前記特定平面に射影した射影工具軸ベクトルの向きの前記媒介変数の増分に対する変化率が一定の変化率を超える箇所である姿勢調整箇所を特定し、その特定した姿勢調整箇所の前記媒介変数の前後に亘る特定の区間を姿勢調整区間として設定し、前記射影工具軸ベクトルの向きの変化が前記姿勢調整区間において緩やかになる方向にその姿勢調整区間における前記工具の姿勢を調整するための姿勢調整情報を求める姿勢調整情報導出部と、前記移送対象物を動かすときの前記各移送軸毎の許容加速度を含む加減速条件と、前記パス導出部によって導出された前記先端パス及び前記上空パスと、前記姿勢調整情報導出部によって導出された前記姿勢調整情報とに基づいて、基準時刻の経過に対する前記媒介変数の変化を表す媒介変数時間関数を求める媒介変数時間関数導出部と、前記媒介変数時間関数導出部によって求められた前記媒介変数時間関数から前記基準時刻の単位時間毎の各時点に対応する前記媒介変数を求めるとともに、その求めた各時点の媒介変数のうち前記姿勢調整区間内の媒介変数については、その媒介変数に対応する前記先端パス上の前記先端点の位置座標と、その先端点から当該先端点に対する相対的な位置関係を前記姿勢調整情報に基づいて前記射影工具軸ベクトルの向きの変化が緩やかになる方向に調整した前記上空パス上の前記上空点へ向かう工具軸ベクトルとを求め、前記各時点の媒介変数のうち前記姿勢調整区間外の媒介変数については、その媒介変数に対応する前記先端パス上の前記先端点の位置座標と、その先端点からその媒介変数に対応する前記上空パス上の前記上空点へ向かう工具軸ベクトルとを求め、その各時点の媒介変数について求めた先端点の位置座標を前記工具の先端点が通り且つその各時点の媒介変数について求めた工具軸ベクトルに前記工具の工具軸ベクトルが一致するように前記移送対象物を動かすための前記各移送軸方向への前記移送対象物の前記単位時間毎の移送量を求めて、その各移送軸方向への単位時間毎の移送量を移送指令とする移送指令導出部と、前記各移送装置に対して、前記移送指令導出部によって求められた前記移送指令のうちその移送装置に対応する前記移送軸方向への移送量を示す移送指令を出力し、その各移送装置に出力した移送指令に応じて前記移送対象物を移送させる制御部とを備えている。
【０００９】
この数値制御装置では、姿勢調整情報導出部が、媒介変数の増分に対する射影工具軸ベクトルの向きの変化率が一定の変化率を超える姿勢調整箇所の前後に亘る姿勢調整区間において射影工具軸ベクトルの向きの変化が緩やかになる方向に工具の姿勢を調整するための姿勢調整情報を求め、移送指令導出部が、姿勢調整区間内の媒介変数に対応する先端点からその先端点に対応する相対的な位置関係を姿勢調整情報に基づいて射影工具軸ベクトルの向きの変化が緩やかになる方向に調整した上空パス上の上空点へ向かう工具軸ベクトルを求めて、姿勢調整区間内についてはこの求めた工具軸ベクトルに基づいて移送指令を導出するため、前記姿勢調整箇所において射影工具軸ベクトルの向きが急変するのを防ぐことができる。そして、射影工具軸ベクトルの向きは、揺動移送軸方向と対応しているので、当該数値制御装置によれば、回動装置が前記回動移送軸方向において工具及び揺動装置をテーブルに対して相対的に急回転させるのを防ぐことができ、その結果、この急回転に起因するワークの加工精度の低下及び機械ショックの発生を抑制することができる。しかも、この数値制御装置では、移送指令導出部が、姿勢調整区間内の媒介変数に対応する先端点の位置座標を先端パス上で求めるとともに、その先端点から当該先端点に対する相対的な位置関係を射影工具軸ベクトルの向きの変化が緩やかになる方向に調整した上空パス上の上空点へ向かう工具軸ベクトルを求め、その求めた先端点の位置座標及び工具軸ベクトルに基づいて移送指令を導出するため、姿勢調整区間における射影工具軸ベクトルの向きの変化が緩やかになるように調整した後でも、工具の姿勢が先端パス上の各先端点とその各先端点に対応する上空パス上の各上空点とを繋いだ曲面に対して垂直な方向に振れるのを抑制することができる。従って、このことによっても、ワークの加工精度の低下を抑制することができる。
【００１０】
上記数値制御装置において、前記姿勢調整情報導出部は、前記特定平面に垂直な方向から見て前記先端パスが示す軌跡と前記上空パスが示す軌跡が交差する交点が前記姿勢調整箇所に含まれる場合には、前記工具の前記先端点が前記交点に対応する前記先端パス上の点に位置する前記媒介変数においてその工具の前記上空点が前記交点に対応する前記上空パス上の点に位置するという条件を満たす前記姿勢調整情報を求めることが好ましい。
【００１１】
この構成によれば、特に、前記特定平面に垂直な方向から見て先端パスが示す軌跡と上空パスが示す軌跡が交差する交点を通過する時に、特定平面に垂直な方向から見て工具の先端点と上空点が重なるような姿勢、すなわち工具軸ベクトルが特定平面に対して垂直となる姿勢を工具に取らせることができ、当該交点を通過する過程で工具及び揺動装置がテーブルに対して相対的に急回転するのを有効に防ぐことができる。具体的には、仮に、先端パス上の前記交点に対応する点に先端点が位置するときに上空点が上空パス上の前記交点に対応する点からずれた位置にあるような場合には、工具軸ベクトルを特定平面に射影した射影工具軸ベクトルが交点の前後に亘って常に向きを持っているため、その向きの変化に合わせて工具及び揺動装置が回動移送軸方向に回動される。このため、特定平面に垂直な方向から見て工具の先端点と上空点が交点に近づくにつれて接近し、交点の通過後、互いに離れていくという動作がなされるときに、工具及び揺動装置の急回転が生じる。これに対して、本構成のように前記交点において工具軸ベクトルが特定平面に対して垂直となる姿勢を工具に取らせれば、特定平面に垂直な方向から見て先端点と上空点が交点に近づくにつれて互いに接近し、交点の通過後、互いに離れていくという動作を、交点の通過時に揺動移送軸方向における工具の傾きを逆向きに変化させることで実現することができ、その結果、前記交点の通過時に工具及び揺動装置が回動移送軸方向に急回転するのを防ぐことができる。
【００１２】
上記数値制御装置において、前記姿勢調整情報導出部は、前記パス導出部によって求められた前記先端パスを前記特定平面へ射影した射影先端パスと前記パス導出部によって求められた前記上空パスを前記特定平面へ射影した射影上空パスとを求め、前記射影先端パス上の点とその点に対応する前記射影上空パス上の点を通る直線である制御ラインと前記特定平面上の基準方向との間の角度が前記姿勢調整区間の始点から終点に至るまで均等な割合で変化するように当該制御ラインと当該基準方向との間の角度である方向特定角度と前記姿勢調整区間内の前記媒介変数との関係を規定した方向特定関数を前記姿勢調整情報として導出し、前記移送指令導出部は、前記方向特定関数に基づいて前記姿勢調整区間内の媒介変数に対応する前記方向特定角度を求め、その媒介変数に対応する前記射影先端パス上の点を通り且つ前記基準方向との間の角度がその求めた方向特定角度に一致する直線と前記射影上空パスとの交点に対応する前記上空パス上の上空点を求め、前記姿勢調整区間内の媒介変数に対応する前記先端パス上の前記先端点からこの求めた上空点へ向かう工具軸ベクトルを前記射影工具軸ベクトルの向きの変化が緩やかになる方向に調整した工具軸ベクトルとして導出してもよい。
【００１３】
この構成によれば、姿勢調整区間において方向特定角度が均等な割合で変化するように姿勢調整区間内の各媒介変数に対応する方向特定角度が求められて、その方向特定角度に基づいて先端点に対する上空点の位置関係が調整された工具軸ベクトルが求められるため、この工具軸ベクトルに基づいて移送指令が求められ、その移送指令に応じて各移送装置に移送対象物を移送させることにより、回動装置によって相対的に回動されるテーブルと工具及び揺動装置との回動角度の変化を直接的に緩やかな変化にすることができる。このため、方向特定角度を求めずに先端点に対する上空点の位置座標を調整して間接的にテーブルに対する工具及び揺動装置の回動角度の変化を緩やかにしようとする場合に比べて、確実に工具及び揺動装置の回動角度の変化を緩やかにすることができる。
【００１４】
この場合において、前記移送指令導出部は、前記姿勢調整箇所に前記工具軸ベクトルが前記特定平面に対して垂直となる特異点が含まれている場合には、その特異点の前記媒介変数に対応する前記方向特定角度を前記方向特定関数から求め、その求めた方向特定角度を前記特異点の前記媒介変数に対応する前記回動移送軸方向の位置座標として用いて当該回動移送軸方向への前記移送対象物の前記単位時間毎の移送量を求めることが好ましい。
【００１５】
この構成によれば、前記特異点における回動移送軸方向の座標の不定状態を解消しつつ、姿勢調整区間において射影工具軸ベクトルの向きを緩やかに変化させることができる。具体的には、工具軸ベクトルが特定平面に対して垂直となる特異点では、その特定平面に対して垂直な軸回りの回動移送軸方向について位置座標が一意的に定まらない不定状態となる。これに対して、本構成では、この特異点の媒介変数について方向特定関数から求めた方向特定角度を当該特異点における回動移送軸方向の位置座標として用いるため、当該特異点において回動移送軸方向の位置座標が一意的に定まり、不定状態を解消することができる。しかも、その特異点の方向特定角度は、姿勢調整区間において方向特定角度を均等な割合で変化させる方向特定関数から求められるので、姿勢調整区間において射影工具軸ベクトルの向きを緩やかに変化させるという条件を満たす。このため、本構成では、特異点における回動移送軸方向の位置座標の不定状態を解消しつつ、姿勢調整区間において工具軸ベクトルの向きを緩やかに変化させることができる。
【００１６】
上記数値制御装置において、前記姿勢調整情報導出部は、前記先端パスのうち前記姿勢調整区間の始点に対応する点からその姿勢調整区間内の任意の前記媒介変数に対応する任意の点までの当該先端パスに沿った移動距離と前記上空パスのうち前記姿勢調整区間の始点に対応する点から前記先端パス上の前記任意の点に対応させる当該上空パス上の所定の点までの当該上空パスに沿った移動距離とが一定の比率に維持されるように前記任意の媒介変数と前記上空パス上の前記所定の点を特定するための媒介変数である上空点特定用媒介変数との相関関係を規定した先端上空対応関係を前記姿勢調整情報として導出し、前記移送指令導出部は、前記先端パスについての前記姿勢調整区間内の特定の媒介変数に対して前記先端上空対応関係を満たすような前記上空点特定用媒介変数を求め、前記特定の媒介変数に対応する前記先端パス上の点からこの求めた上空点特定用媒介変数に対応する前記上空パス上の点へ向かう工具軸ベクトルを前記射影工具軸ベクトルの向きの変化が緩やかになる方向に調整した工具軸ベクトルとして導出してもよい。
【００１７】
この構成によれば、姿勢調整区間において当該姿勢調整区間の始点から先端パスに沿った先端点の移動距離と当該姿勢調整区間の始点から上空パスに沿った上空点の移動距離とが常に一定の比率に維持された状態で工具の先端点と上空点を移動させることができる。このため、先端点に対して遅れていた上空点が先端点を急に追い越すような工具の姿勢変化や、その逆のような工具の姿勢変化が生じるのを防ぐことができ、回動装置がそのような工具の姿勢変化を実現するために工具及び揺動装置とテーブルとを相対的に大きく急回転させるのを防ぐことができる。
【００１８】
上記数値制御装置において、前記パス導出部は、前記記憶部に記憶された前記加工プログラムを読み取り、その読み取った加工プログラムが指示する前記先端点の動きを当該先端点の前記基準座標系での位置座標と前記媒介変数との関数によって表す補間前先端パスと、その読み取った加工プログラムが指示する前記上空点の動きを当該上空点の前記基準座標系での位置座標と前記媒介変数との関数によって表す補間前上空パスとを求める補間前パス導出部と、前記補間前パス導出部によって求められた前記補間前先端パスにおいて前記媒介変数による一次微分値の変化が連続で且つ前記媒介変数による二次微分値の変化が不連続になっている点と前記媒介変数による一次微分値の変化が不連続になっている点とのうち少なくとも一方の点を先端パス補間対象点とし、前記補間前先端パスのうち前記先端パス補間対象点の前後に亘る特定の区間である先端パス補間区間のみを前記先端パス補間対象点において不連続となっている微分値の変化が連続的な変化となるように局部補間することによって前記先端パスを求め、前記補間前パス導出部によって求められた前記補間前上空パスにおいて前記媒介変数による一次微分値の変化が連続で且つ前記媒介変数による二次微分値の変化が不連続になっている点と前記媒介変数による一次微分値の変化が不連続になっている点とのうち少なくとも一方の点を上空パス補間対象点とし、前記補間前上空パスのうち前記上空パス補間対象点の前後に亘る特定の区間である上空パス補間区間のみを前記上空パス補間対象点において不連続となっている微分値の変化が連続的な変化となるように局部補間することによって前記上空パスを求めるパス補間部とを含むことが好ましい。
【００１９】
この構成によれば、補間前先端パス及び補間前上空パスにおいて媒介変数による一次微分値が不連続になっていることにより速度が不連続になっている点を速度が連続するように補間することができ、補間前先端パス及び補間前上空パスにおいて媒介変数による二次微分値が不連続になっていることにより加速度が不連続になっている点を加速度が連続するように補間することができる。このため、補間前先端パス及び補間前上空パス中の異常データ等により媒介変数による微分値が不連続になっていてそのことに起因して急激な速度変化や加速度変化が生じる箇所について、その急激な速度変化や加速度変化を抑制し、当該箇所における機械ショックの発生を抑制できる。しかも、この構成では、移送指令導出部が各移送軸についての移送指令を導出する前に、補間前先端パス及び補間前上空パスのうち微分値が不連続になっている箇所を補間してそれらのパスから機械ショックの要因を取り除くことができる。このため、移送指令導出部が移送指令を導出した後、その移送指令のうち機械ショックの要因となる箇所を補間するような加減速処理を不要とすることができる。
【００２０】
上記数値制御装置において、前記記憶部は、前記テーブル上に設置されたワークに固定されるワーク座標系の前記基準座標系に対する相対的な位置及び傾きを表すワーク設置情報を記憶し、当該記憶部に記憶された前記加工プログラムには、前記ワークの加工時における前記工具の前記ワーク座標系上での動きを表すワーク座標系ツールパスが含まれ、前記パス導出部は、前記加工プログラムに含まれる前記ワーク座標系ツールパスを読み取り、その読み取ったワーク座標系ツールパスを前記ワーク設置情報に基づいて前記基準座標系上のパスに変換することによって基準座標系ツールパスを導出し、その導出した基準座標系ツールパスに基づいて前記先端パス及び前記上空パスを導出することが好ましい。
【００２１】
この構成によれば、基準座標系に対してワーク座標系が傾くような姿勢でワークがテーブル上に設置された場合でも、ワーク座標系ツールパスを基準座標系ツールパスに変換した上でその基準座標系ツールパスから先端パス及び上空パスを求めることができる。このため、その求めた先端パス及び上空パスから上記姿勢調整箇所の特定、上記姿勢調整情報の導出、上記媒介変数時間関数の導出、上記移送指令の導出を行い、その導出した移送指令に応じて移送装置に移送対象物を移送させれば、テーブル上でワークが傾いていても、そのワークの姿勢に応じた姿勢調整箇所の位置を的確に特定して、その姿勢調整箇所近傍の動作における工具とテーブルとの相対的な急回転を防止することができる。
【発明の効果】
【００２２】
以上説明したように、本発明によれば、加工プログラムに射影工具軸ベクトルの向きが急変するような移送対象物の動きを指示する部分が含まれている場合でも、工具とテーブルが相対的に急回転するのを防いでワークの加工精度の低下及び機械ショックの発生を抑制することができる。
【図面の簡単な説明】
【００２３】
【図１】本発明の一実施形態による数値制御装置が適用される工作機械の概略的な斜視図である。
【図２】本発明の一実施形態による数値制御装置の機能ブロック図である。
【図３】本発明の一実施形態による数値制御装置による数値制御プロセスを示すフローチャートである。
【図４】図３に示した数値制御プロセスのうちの局部補間の詳細なプロセスを示すフローチャートである。
【図５】図３に示した数値制御プロセスのうちの姿勢調整情報の導出の詳細なプロセスを示すフローチャートである。
【図６】図３に示した数値制御プロセスのうちの基準時刻の導出、パルス補間及び移送装置へのパルス出力の詳細なプロセスを示すフローチャートである。
【図７】図６中のパス上の工具位置及び各移送軸の位置座標ｎｅｗｐ［］の導出の詳細なプロセスを示すフローチャートである。
【図８】本発明の一実施形態における分配区間幅の算出方法を説明するための図である。
【図９】先端パスのうち局部補間の対象となるコーナー部を示す模式図である。
【図１０】先端パスのうち局部補間の対象となる異常データ部を示す模式図である。
【図１１】補間ブロックの区間幅が補間区間幅よりも大きい場合の一例を示す図である。
【図１２】補間ブロックの区間幅が補間区間幅よりも大きい場合の他例を示す図である。
【図１３】補間ブロックの区間幅が補間区間幅よりも小さい場合を示す図である。
【図１４】先端上空対応調整関数の導出方法を説明するための図である。
【図１５】局部補間後先端パスの進行方向に対して工具軸ベクトルが成す角度が短い移動距離の間で増減する箇所が局部補間後先端パスと局部補間後上空パスに存在する例を示す図である。
【図１６】射影先端パスが示す軌跡と射影上空パスが示す軌跡が互いに離れており且つ射影工具軸ベクトルの向きの変化率がパラメータとして設定された一定の変化率以上となる区間が射影先端パス及び射影上空パスに存在する例を示す図である。
【図１７】射影先端パスと射影上空パスが交差し且つ姿勢調整区間の始点及び終点において制御ラインが射影先端パスの接線方向に対して平行に近くない例を示す図である。
【図１８】射影先端パスと射影上空パスが交差し且つ姿勢調整区間の始点において制御ラインが射影先端パスの接線方向に対して平行に近くなく且つ姿勢調整区間の終点において制御ラインが射影先端パスの接線方向に対して平行に近い例を示す図である。
【図１９】射影先端パスと射影上空パスが交差し且つ姿勢調整区間の始点及び終点において制御ラインが射影先端パスの接線方向に対して平行に近い例を示す図である。
【図２０】射影先端パスと射影上空パスが１点で接し且つ姿勢調整区間の始点及び終点において制御ラインが射影先端パスの接線方向に対して平行に近い例を示す図である。
【図２１】姿勢調整区間内に特異点連続区間が存在し且つ姿勢調整区間の始点及び終点において制御ラインが射影先端パスの進行方向に対して平行に近くない例を示す図である。
【図２２】姿勢調整区間内に特異点連続区間が存在し且つ姿勢調整区間の始点において制御ラインが射影先端パスの進行方向に対して平行に近くなく且つ姿勢調整区間の終点において制御ラインが射影先端パスの進行方向に対して平行に近い例を示す図である。
【図２３】姿勢調整区間内に特異点連続区間が存在し且つ姿勢調整区間の始点及び終点において制御ラインが射影先端パスの進行方向に対して平行に近い例を示す図である。
【図２４】媒介変数時間関数を導出するための階段状速度曲線と加減速曲線を示す図である。
【図２５】目標点に達する前に速度が速度上限値に達する場合の速度曲線の一例を示す図である。
【図２６】目標点に達する前に速度が速度上限値に達する場合の速度曲線の別の例を示す図である。
【図２７】許容ジャークに従って加速度を低下させている途中で目標点に達するとともに速度が速度上限値に達する場合の速度曲線の一例を示す図である。
【図２８】許容ジャークに従って加速度を低下させている途中で目標点に達するとともに速度が速度上限値に達する場合の速度曲線の別の例を示す図である。
【図２９】許容ジャークに従って加速度を低下させている途中で目標点に達するとともに速度が速度上限値に達する場合の速度曲線のさらに別の例を示す図である。
【図３０】目標点に対応する媒介変数に達しても速度が速度上限値まで上昇しない場合の速度曲線の一例を示す図である。
【図３１】目標点に達するまでに速度が速度上限値を超えてしまう場合の速度曲線の一例を示す図である。
【発明を実施するための形態】
【００２４】
以下、本発明の実施形態を図面を参照して説明する。
【００２５】
まず、図１及び図２を参照して、本発明の一実施形態による数値制御装置２が適用される工作機械の構成について説明する。
【００２６】
この工作機械は、門型の工作機械であり、テーブル１０１ａ上にセットされた加工物としてのワーク１００上で工具１０６を動かしながら、その工具１０６によってワーク１００の加工を行うものである。工作機械は、図１に示すように、テーブル１０１ａと、ベッド１０１ｂと、テーブル移送装置１０２（図２参照）と、２本のコラム１０４と、クロスレール１０５と、工具１０６と、主軸ヘッド１０８と、揺動装置１１０と、回動装置１１２と、鉛直移送装置１１４と、水平移送装置１１６と、制御ボックス１２０とを備えている。なお、テーブル移送装置１０２、揺動装置１１０、回動装置１１２、鉛直移送装置１１４及び水平移送装置１１６は、ワーク１００又は工具１０６を移送対象物としてその移送対象物をワーク１００を加工するために複数の移送軸に沿って動かすものであり、それぞれ、本発明の移送装置の概念に含まれるものである。
【００２７】
テーブル１０１ａは、その上にセットされたワーク１００を下から支持するものである。ベッド１０１ｂは、所定の設置場所に設置されており、テーブル１０１ａが水平面内において特定方向に延びるＸ軸方向に移動可能となるように当該テーブル１０１ａを下から支持している。
【００２８】
テーブル移送装置１０２は、ベッド１０１ｂ内に設けられており、前記Ｘ軸に沿ってテーブル１０１ａを移送し、それによって、テーブル１０１ａ上にセットされたワーク１００をＸ軸に沿って移送する。なお、Ｘ軸は、本発明の移送軸の概念に含まれるものである。テーブル移送装置１０２は、駆動源として図略のサーボモータを有しており、そのモータの動力によってテーブル１０１ａを移送する。
【００２９】
２本のコラム１０４は、テーブル１０１ａの移動方向（Ｘ軸方向）に直交する方向（テーブル１０１ａの幅方向）においてそのテーブル１０１ａ及びベッド１０１ｂの両側に分かれて立設されている。
【００３０】
クロスレール１０５は、テーブル１０１ａの上方に配置され、テーブル１０１ａの幅方向（水平方向でＸ軸と直交する方向）に延びる姿勢をとるように前記２本のコラム１０４に掛け渡されている。
【００３１】
工具１０６は、ワーク１００を切削加工するためのものであり、主軸ヘッド１０８によって保持される。主軸ヘッド１０８は、保持した工具１０６をその軸回りに回転させる。この主軸ヘッド１０８によって回転させられた工具１０６がワーク１００に当接することによってワーク１００の加工が行われる。
【００３２】
揺動装置１１０は、本実施形態では、テーブル１０１ａの上面に平行な水平方向に延びる軸を中心としたＡ軸方向に工具１０６を揺動させる。なお、前記水平方向に延びる軸は、本発明の第１軸の概念に含まれ、Ａ軸は、本発明の移送軸及び揺動移送軸の概念に含まれる。この揺動装置１１０は、揺動支持体１１０ａと、揺動支持体移送部１１０ｂ（図２参照）とを有する。揺動支持体１１０ａは、前記水平方向に延びる軸を中心として揺動可能となるように回動装置１１２に支持されている。また、揺動支持体１１０ａは、主軸ヘッド１０８が当該主軸ヘッド１０８によって保持された工具１０６の回転軸が当該揺動支持体１１０ａの揺動中心となる軸に対して直交するような姿勢を取るようにその主軸ヘッド１０８を支持している。揺動支持体移送部１１０ｂは、揺動支持体１１０ａをＡ軸方向に揺動させることにより、当該揺動支持体１１０ａとともに主軸ヘッド１０８及び工具１０６をＡ軸方向に揺動させる。揺動支持体移送部１１０ｂは、駆動源として図略のサーボモータを有しており、そのモータの動力によって揺動支持体１１０ａを揺動させる。
【００３３】
回動装置１１２は、前記揺動装置１１０による工具１０６の揺動中心となる軸に対して垂直な方向に延びる軸を中心としたＣ軸方向に工具１０６及び揺動装置１１０をテーブル１０１ａに対して相対的に回動させる。なお、前記工具１０６の揺動中心となる軸に対して垂直な方向に延びる軸は、本発明の第２軸の概念に含まれ、Ｃ軸は、本発明の移送軸及び回動移送軸の概念に含まれる。回動装置１１２は、回動支持体１１２ａと、回動支持体移送部１１２ｂ（図２参照）とを有する。回動支持体１１２ａは、前記工具１０６の揺動中心となる軸に対して垂直な軸回りに回転可能となるように鉛直移送装置１１４に支持されている。また、回動支持体１１２ａは、その下部において揺動装置１１０を支持している。回動支持体移送部１１２ｂは、回動支持体１１２ａをＣ軸方向に回動させることにより、当該回動支持体１１２ａとともにその回動支持体１１２ａが支持する揺動装置１１０、主軸ヘッド１０８及び工具１０６をＣ軸方向に回動させる。回動支持体移送部１１２ｂは、駆動源として図略のサーボモータを有しており、そのモータの動力によって回動支持体１１２ａを回動させる。
【００３４】
鉛直移送装置１１４は、Ｘ軸に直交し、鉛直方向に延びるＺ軸に沿って工具１０６を移送するためのものである。なお、Ｚ軸は、本発明の移送軸の概念に含まれる。この鉛直移送装置１１４は、ラム１１４ａと、ラム移送部１１４ｂ（図２参照）とを有する。ラム１１４ａは、テーブル１０１ａの上方に配置され、Ｚ軸に沿って鉛直方向（上下方向）に移動可能となるように水平移送装置１１６に支持されている。また、ラム１１４ａは、その下部によって、テーブル１０１ａよりも上方で且つクロスレール１０５よりも下方の位置において回動装置１１２を支持している。ラム移送部１１４ｂは、ラム１１４ａをＺ軸方向に移送することにより、当該ラム１１４ａとともにそのラム１１４ａが支持する回動装置１１２、揺動装置１１０、主軸ヘッド１０８及び工具１０６をＺ軸方向に移送する。ラム移送部１１４ｂは、駆動源として図略のサーボモータを有しており、そのモータの動力によってラム１１４ａを移送する。
【００３５】
水平移送装置１１６は、Ｘ軸とＺ軸の両方に直交するＹ軸に沿って工具１０６を移送するためのものである。なお、Ｙ軸は、本発明の移送軸の概念に含まれる。この水平移送装置１１６は、サドル１１６ａと、サドル移送部１１６ｂ（図２参照）とを有する。サドル１１６ａは、テーブル１０１ａの上方でＹ軸に沿って移動可能となるようにクロスレール１０５に支持されている。すなわち、サドル１１６ａは、テーブル１０１ａの上方においてテーブル１０１ａを幅方向に横切るように移動可能となっている。また、サドル１１６ａは、その下部において鉛直移送装置１１４を支持している。サドル移送部１１６ｂは、サドル１１６ａをＹ軸方向に移送することにより、当該サドル１１６ａとともにそのサドル１１６ａが支持する鉛直移送装置１１４、回動装置１１２、揺動装置１１０、主軸ヘッド１０８及び工具１０６をＹ軸方向に移送する。サドル移送部１１６ｂは、駆動源として図略のサーボモータを有しており、そのモータの動力によってサドル１１６ａを移送する。
【００３６】
制御ボックス１２０は、テーブル移送装置１０２、揺動装置１１０、回動装置１１２、鉛直移送装置１１４及び水平移送装置１１６の制御や、主軸ヘッド１０８の制御、その他、工作機械の各部の制御を行うための機能を有する。この制御ボックス１２０内に本実施形態による数値制御装置２が組み込まれている。
【００３７】
次に、本実施形態による数値制御装置２の構成について説明する。
【００３８】
本実施形態による数値制御装置２は、テーブル移送装置１０２及び前記各移送部１１０ｂ，１１２ｂ，１１４ｂ，１１６ｂに特定周期毎の指令パルス（移送指令）を出力することにより各移送装置１０２，１１０，１１２，１１４，１１６の数値制御を行う。この数値制御装置２は、図２に示すように、記憶部４と、メモリ５と、演算処理部６とを有する。
【００３９】
記憶部４は、ワーク設置情報と、後述する特定平面の情報と、加工プログラム（ＮＣプログラム）と、一定値である距離パラメータと、移送軸座標算出関数とを記憶している。
【００４０】
ワーク設置情報は、テーブル１０１ａ上でのワーク１００の位置及び姿勢を表す情報である。具体的には、ワーク設置情報は、テーブル１０１ａ上に設置されたワーク１００に固定されるプログラム座標系としてのワーク座標系の基準座標系に対する相対的な位置及び傾きを表す。なお、基準座標系は、テーブル１０１ａ上に固定（設定）され、移送対象物の移送の基準となる座標系である。この基準座標系は、水平面内におけるテーブル１０１ａの移送方向（Ｘ軸方向）に平行なｘ軸と、水平面内においてｘ軸に直交し、前記Ｙ軸に平行なｙ軸と、ｘ軸及びｙ軸の両方に直交し、前記Ｚ軸に平行なｚ軸とからなる。また、基準座標系は、前記工具１０６の揺動中心となる軸に対して垂直な方向に延びる軸（工具１０６の回動方向であるＣ軸方向の中心となる軸）に垂直な特定平面（ｘｙ平面）を含んでいる。また、ワーク座標系は、互いに直交するｘ’軸、ｙ’軸及びｚ’軸からなる。
【００４１】
ワーク設置情報は、基準座標系（ｘｙｚ座標系）におけるワーク座標系の相対的な位置（基準座標系に対するワーク座標系の平行シフト量）及び基準座標系に対するワーク座標系の傾きの情報からなる。具体的には、ワーク設置情報は、ワーク座標系（ｘ’ｙ’ｚ’座標系）と基準座標系（ｘｙｚ座標系）との相対的な関係によって表され、（ｘ０，ｙ０，ｚ０，α，β，γ）からなる。ここで、（ｘ０，ｙ０，ｚ０）は、基準座標系上におけるワーク座標系の原点の座標値であり、（α，β，γ）は、基準座標系に対するワーク座標系の回転の姿勢を表すオイラー角である。このワーク設置情報は、ワーク１００をテーブル１０１ａ上に設置するときに図略の入力装置を用いて入力され、記憶部４に記憶される。
【００４２】
加工プログラムは、ワーク１００の加工を指示する加工指令である。加工プログラムには、ワーク座標系におけるツールパスが含まれる。ツールパスは、ワーク１００の加工時における基準時刻の経過に応じた工具１０６の移動の軌跡を表すものである。このツールパスには、ワーク１００の加工時に工具１０６の先端が通るワーク座標系での多数の指令点の位置座標と、その各指令点における工具１０６の姿勢（傾き）を規定する工具軸ベクトルの情報と、工具１０６の移動軌跡に沿った速度を示す送り速度指令とが含まれている。そして、ツールパスが示す工具の移動軌跡は、当該ツールパスに含まれる多数の指令点の隣り合うもの同士を繋ぎ、且つ、各指令点における工具軸ベクトルの傾きを満たすルールド曲面を構成する。
【００４３】
前記距離パラメータは、工具１０６の先端点から対応する上空点（後述）までの離間距離を表す制御用パラメータである。
【００４４】
前記移送軸座標算出関数は、任意の媒介変数に対応する先端点の基準座標系における位置座標及びその媒介変数に対応し且つこの先端点を始点とする工具軸ベクトルと、各移送軸座標との相関関係を規定する関数である。工具１０６の先端点が所定の位置座標に位置し且つその工具１０６の工具軸ベクトルが所定の工具軸ベクトルとなるような位置及び姿勢を工具１０６に取らせるために、各移送装置１０２，１１０，１１２，１１４，１１６が移送対象物を対応する移送軸方向において配置する位置座標を算出するための関数である。
【００４５】
また、記憶部４は、ワーク１００の加工時に移送対象物を動かすときの加減速条件やその他の設定値（パラメータ）を記憶している。加減速条件には、例えば、各移送装置１０２，１１０，１１２，１１４，１１６が移送対象物を移送するときの各移送軸方向それぞれについての許容速度、許容加速度及び許容ジャークや、ワーク１００に対する工具１０６の姿勢変化を含む移動の許容速度、許容加速度及び許容ジャークや、工具１０６の姿勢変化を含む移動量の積算値である媒介変数の速度の上限値や、媒介変数の加速度の上限値、媒介変数のジャークの上限値などが含まれる。なお、媒介変数は、工具１０６の姿勢変化を含む移動量の積算値である。具体的には、媒介変数は、工具１０６の先端点の移動量に工具１０６の姿勢（傾き）の変化量を加味した値の積算値であり、本実施形態では、工具１０６の先端点の移動量とその先端点から工具１０６の軸心に沿って当該工具１０６の基端側へ前記距離パラメータだけ離れた上空点の移動量との平均値からなる。
【００４６】
メモリ５は、各種情報を一次的に記憶するものであり、例えば、後述する局部補間後先端パス、姿勢調整情報、その他の情報を記憶する。
【００４７】
演算処理部６は、各種演算処理を行うものであり、機能ブロックとして、パス導出部１２と、姿勢調整情報導出部１６と、媒介変数時間関数導出部１８と、移送指令導出部２０と、制御部２２とを有する。
【００４８】
パス導出部１２は、記憶部４に記憶されている加工プログラムを読み取り、その読み取った加工プログラムに基づいて工具１０６の先端パス及び上空パスを求める。先端パスは、ワーク１００の加工時における工具１０６の先端点の動きを基準座標系での当該先端点の位置座標と媒介変数の関数によって表すものであり、上空パスは、ワーク１００の加工時における工具１０６の上空点の動きを基準座標系での当該上空点の位置座標と媒介変数の関数によって表すものである。パス導出部１２は、機能ブロックとして、補間前パス導出部１３及びパス補間部１４を有する。
【００４９】
補間前パス導出部１３は、加工プログラムに含まれるツールパスから補間前先端パスと補間前上空パスを算出するものである。具体的には、補間前パス導出部１３は、記憶部４から読み取った加工プログラムからその加工プログラムに含まれているワーク座標系でのツールパス（ワーク座標系ツールパス）を読み取る。そして、補間前パス導出部１３は、読み取ったワーク座標系ツールパスを記憶部４に記憶されているワーク設置情報に基づいて基準座標系上のツールパス（基準座標系ツールパス）に変換し、その変換後の基準座標系ツールパスから補間前先端パスと補間前上空パスを算出する。補間前パス導出部１３は、算出した補間前先端パス及び補間前上空パスを記憶部４に記憶させる。
【００５０】
パス補間部１４は、補間前パス導出部１３によって算出された補間前先端パス及び補間前上空パスをそれぞれ補間する。なお、ここでいう補間とは、補間前先端パスと補間前上空パスが示す軌跡が滑らかな曲線となるようにそれら各パスを修正することをいう。パス補間部１４は、機能ブロックとして、滑らか補間部１４ａと、パス局部フィルタ１４ｂとを有する。
【００５１】
滑らか補間部１４ａは、補間前パス導出部１３によって算出された補間前先端パスをそのパスが表す先端点の動きが滑らかになるように補間するとともに補間前パス導出部１３によって算出された補間前上空パスをそのパスが表す上空点の動きが滑らかになるように補間する滑らか補間を行う。具体的には、滑らか補間部１４ａは、補間前パス導出部１３によって算出された前記両パスのうち指令点を通る滑らかな曲線となるように解析的に補間可能な部分について、いわゆるブロック滑らか補間を実施する。具体的には、滑らか補間部１４ａは、補間前先端パスのうちの隣り合う指令点間の区間を指令ブロックとしてその指令ブロックと隣接する指令ブロックとがそれらの境界の指令点において滑らかに繋がるように補間前先端パスを補間する。詳しくは、滑らか補間部１４ａは、隣接する指令ブロックの境界の指令点の前後において補間前先端パスの媒介変数による一次微分値と二次微分値がそれぞれ連続変化し、かつ、その指令点を通るようなパスとなるように先端パスを補間する。ただし、補間前先端パスには、媒介変数の変化に対する先端パスの軌跡の変化が急激で、このようなブロック滑らか補間によっては指令点を通る滑らかな曲線となるように当該先端パスを補間できない箇所が含まれている場合がある。このような箇所としては、微小単位で増減を繰り返す異常データ部や、加工プログラムにおいて意図して指示されているコーナー部がある。また、補間前先端パスには、二次微分が不連続であっても、直線と円弧の接点部や、円と円の接点部などのように、当該滑らか補間部１４ａでは補間せずにそのまま放置する箇所もある。滑らか補間部１４ａは、補間前先端パスのうち以上のような箇所については補間せずに元のパスのまま残し、上記のように指令点を通り、その指令点の前後で媒介変数による一次微分値と二次微分値がそれぞれ連続変化するような曲線に補間できる部分を滑らか補間する。また、滑らか補間部１４ａは、補間前上空パスについて、補間前先端パスと同様の滑らか補間を実施する。
【００５２】
パス局部フィルタ１４ｂは、補間前先端パス及び補間前上空パスのうち滑らか補間部１４ａによって補間されなかった、一次微分又は二次微分が不連続に変化する箇所で、且つ、その箇所が示す速度が０でない箇所を対象として前記局部補間を行う。
【００５３】
具体的には、パス局部フィルタ１４ｂは、補間前先端パスのうち速度が０になる箇所（加工上、一端停止させたい箇所）を除いて、媒介変数による一次微分値が連続で且つ媒介変数による二次微分値が不連続になっている指令点と、媒介変数による一次微分値が不連続になっている指令点とを補間対象点とする。そして、パス局部フィルタ１４ｂは、補間前先端パスのうち補間対象点の前後に亘り、後述する補間区間幅を有し、且つ、その補間区間幅の中央に補間対象点が位置する補間区間を当該補間対象点で不連続となっている微分値が連続となるように局部補間する。
【００５４】
より詳しくは、パス局部フィルタ１４ｂは、補間前先端パスについて以下の局部補間処理を実施する。パス局部フィルタ１４ｂによって局部補間される箇所としては、補間前先端パスのうち、例えば、図９に示すようなコーナー部や図１０に示すような異常データ部が挙げられる。コーナー部の頂点に位置する指令点（図９のｔ［３］）や異常データ部の各頂点に位置する各指令点（図１０のｔ［２］〜ｔ［６］）では、媒介変数による一次微分値及び二次微分値が不連続になっており、これらの指令点は補間対象点となる。また、パス局部フィルタ１４ｂは、補間前先端パスに補間対象点が複数存在し、隣り合う補間対象点の補間区間同士が重複している場合（図１０のような場合）には、それら重複している補間区間のうち最も補間前先端パスの始点寄りに位置する補間区間の始点から最も補間前先端パスの終点寄りに位置する補間区間の終点までを１つの補間区間として、その補間区間内の先端パスを局部補間する。なお、以下、パス局部フィルタ１４ｂによって全ての補間区間が局部補間された後の先端パスを局部補間後先端パスという。また、パス局部フィルタ１４ｂは、局部補間後先端パスが各補間区間（隣り合う補間区間同士が重複している場合はそれらを結合した補間区間）の始点の前後及び終点の前後でそれぞれ連続して繋がるようにその補間区間を局部補間する。また、パス局部フィルタ１４ｂは、補間前上空パスについて補間前先端パスと同様の局部補間処理を実施する。以下、パス局部フィルタ１４ｂによって全ての補間区間が局部補間された後の上空パスを局部補間後上空パスという。局部補間後先端パスは、パス導出部１２が加工プログラムに基づいて求める先端パスに相当し、局部補間後上空パスは、パス導出部１２が加工プログラムに基づいて求める上空パスに相当する。
【００５５】
パス局部フィルタ１４ｂの具体的な構成として、当該パス局部フィルタ１４ｂは、局部補間部１４ｃ及び誤差補正部１４ｄを機能ブロックとして有している（図２参照）。
【００５６】
局部補間部１４ｃは、先端パスの補間区間を前後に拡大した調整区間にかかる複数の補間ブロックのそれぞれについて補間処理を行うことにより各補間ブロックの補間後関数を求めるとともに、それらの補間後関数を積算して補間後積算関数を求め、その求めた補間後積算関数から補間区間に相当する区間を抜き出すことによって、補間区間内の補間対象点において不連続となっている微分の変化が連続的な変化となるように補間した誤差付き先端補間パスを求める。また、局部補間部１４ｃは、同様の処理により、上空パスについて補間区間内の補間対象点において不連続になっている微分の変化が連続的な変化となるように補間した誤差付き上空補間パスを求める。
【００５７】
誤差補正部１４ｄは、局部補間部１４ｃによって求められた誤差付き先端補間パスの補間区間の始点に対応する値が局部補間していない先端パスの補間区間の始点の値と一致し、かつ、その誤差付き先端補間パスの補間区間の終点に対応する値が局部補間していない先端パスの補間区間の終点の値に一致するように誤差付き先端補間パスを補正し、その補正後の先端補間パスを先端パスの補間区間と置換することによって局部補間後先端パスを導出する。また、誤差補正部１４ｄは、同様の処理により、誤差付き上空補間パスを補正し、その補正後の上空補間パスを上空パスの補間区間と置換することによって局部補間後上空パスを導出する。
【００５８】
姿勢調整情報導出部１６は、局部補間後先端パスと局部補間後上空パスのうち先端点からその先端点に対応する上空点へ向かう工具軸ベクトルの向きが急変する姿勢調整箇所を特定し、その特定した姿勢調整箇所の前後に亘る媒介変数の区間である姿勢調整区間を抽出し、その姿勢調整区間において工具軸ベクトルの向きの変化が緩やかになる方向にその姿勢調整区間における工具１０６の姿勢を調整するための姿勢調整情報を求める。なお、姿勢調整情報導出部１６は、工具１０６の姿勢を調整すべき前記姿勢調整箇所として、局部補間後先端パスと局部補間後上空パスのうち局部補間後先端パスの進行方向に対して工具軸ベクトルが成す角度が工具１０６の短い移動距離の間で増減する箇所と、局部補間後先端パスと局部補間後上空パスのうち工具軸ベクトルを前記特定平面に射影した射影工具軸ベクトルの向きの媒介変数の増分に対する変化率がパラメータとして設定された一定の変化率を超える箇所とを特定する。また、射影工具軸ベクトルの向きの媒介変数の増分に対する変化率が一定の変化率を超える箇所には、例えば、局部補間後先端パスを前記特定平面に射影した射影先端パスが示す軌跡と局部補間後上空パスを前記特定平面に射影した射影上空パスが示す軌跡とが互いに離れていて且つ前記特定平面における射影工具軸ベクトルと基準方向（本実施形態では、ｙ軸方向）との間の角度の媒介変数の増分に対する変化率が一定の変化率を超える区間や、前記特定平面に垂直な方向からみて局部補間後先端パスが示す軌跡と局部補間後上空パスが示す軌跡が重なる点（両軌跡の交点及び接点）を含む区間や、その両軌跡が重なる点が連続する箇所を含む区間などが含まれる。また、姿勢調整情報導出部１６は、特定平面に垂直な方向から見て局部補間後先端パスが示す軌跡と局部補間後上空パスが示す軌跡が交差する交点を含む姿勢調整箇所については、工具１０６の先端点がその交点に対応する局部補間後先端パス上の点に位置する媒介変数においてその工具１０６の上空点が当該交点に対応する局部補間後上空パス上の点に位置するという条件を満たす姿勢調整情報を求める。
【００５９】
姿勢調整情報導出部１６は、具体的には、局部補間後先端パスと局部補間後上空パスによって表される工具１０６の姿勢の変化を追跡し、局部補間後先端パス上の先端点に対応させる局部補間後上空パス上の上空点の対応関係を調整すべき箇所、及び／又は、射影工具軸ベクトルの向き（射影工具軸ベクトルの長さが０になる特異点では、Ｃ軸座標の角度算出の基準）を調整すべき箇所を見つけ、姿勢調整区間の情報と、先端上空対応調整関数Ｓ（ｓ）及び／又は方向特定関数Ｃ（ｓ）とを含む姿勢調整情報を求め、その姿勢調整情報をメモリ５に登録する。先端上空対応調整関数Ｓ（ｓ）は、局部補間後先端パス上の先端点に対応させる局部補間後上空パス上の上空点を調整するために用いられる関数である。この先端上空対応調整関数Ｓ（ｓ）は、本発明の先端上空対応関係の概念に含まれる。先端上空対応調整関数Ｓ（ｓ）は、局部補間後先端パスのうち姿勢調整区間の始点に対応する点からその姿勢調整区間内の任意の媒介変数に対応する任意の点までの当該局部補間後先端パスに沿った移動距離と局部補間後上空パスのうち姿勢調整区間の始点に対応する点から局部補間後先端パス上の前記任意の点に対応させる当該局部補間後上空パス上の所定の点までの当該局部補間後上空パスに沿った移動距離とが一定の比率に維持されるように、前記任意の媒介変数と局部補間後上空パス上の前記所定の点を特定するための媒介変数である上空点特定用媒介変数との相関関係を規定する。また、方向特定関数Ｃ（ｓ）は、射影工具軸ベクトルの向き（射影工具軸ベクトルの長さが０となる特異点では、Ｃ軸座標の角度算出の基準）を調整するために用いられる関数である。この方向特定関数Ｃ（ｓ）は、射影先端パス上の点とその点に対応する射影上空パス上の点を通る直線である制御ラインと前記特定平面上の前記基準方向との間の角度が姿勢調整区間の始点から終点に至るまで均等な割合で変化するように当該制御ラインと基準方向との間の角度である方向特定角度と姿勢調整区間内の媒介変数との関係を規定する。
【００６０】
媒介変数時間関数導出部１８は、記憶部４に記憶されている加減速条件と、局部補間後先端パス及び局部補間後上空パスと、姿勢調整情報導出部１６によって導出されてメモリ５に登録された姿勢調整情報とに基づいて、基準時刻の経過に対する媒介変数の変化を表す媒介変数時間関数（媒介変数の速度曲線）を求める。具体的には、媒介変数時間関数導出部１８は、記憶部４に記憶されている移送軸座標算出関数を用いて、局部補間後先端パス、局部補間後上空パス及び姿勢調整情報に基づいて各移送軸パス（Ｘ軸パス、Ｙ軸パス、Ｚ軸パス、Ａ軸パス及びＣ軸パス）を算出する。そして、媒介変数時間関数導出部１８は、その算出した各移送軸パスの媒介変数による一次微分の近似値及び媒介変数による二次微分の近似値を求め、各指令点間の各ブロックにおける一次微分近似値及び二次微分近似値から、移送対象物の各移送軸方向の加速度が加減速条件に含まれたその移送軸方向の許容加速度を超えないという条件を満たすように各ブロックの媒介変数ｓの速度の上限値を設定し、移送対象物の各移送軸方向への速度が各ブロックの速度の上限値を超えず且つ移送対象物を許容加速度の範囲内で局部補間後先端パス及び局部補間後上空パスに従って移送し得る最大の加速度を示すような媒介変数時間関数を導出する。
【００６１】
移送指令導出部２０は、媒介変数時間関数導出部１８によって導出された媒介変数時間関数と、局部補間後先端パスと、局部補間後上空パスと、姿勢調整情報と、移送軸座標算出関数とに基づいて各移送軸方向への移送対象物の基準単位時間毎（特定周期毎）の移送量を求め、その求めた各移送軸方向への移送対象物の基準単位時間毎の移送量を指令パルスとする。なお、基準単位時間は、基準時刻の単位時間のことである。また、指令パルスは、本発明の移送指令の概念に含まれる。
【００６２】
具体的には、移送指令導出部２０は、媒介変数時間関数導出部１８によって導出された媒介変数時間関数に基づいて基準時刻の基準単位時間毎の各時点に対応する媒介変数を導出する。また、移送指令導出部２０は、その導出した各時点の媒介変数のうち姿勢調整区間内の媒介変数については、その媒介変数に対応する局部補間後先端パス上の先端点の位置座標と、その先端点から当該先端点に対する相対的な位置関係を姿勢調整情報に基づいて射影工具軸ベクトルの向きの変化が緩やかになる方向に調整した局部補間後上空パス上の上空点へ向かう工具軸ベクトルとを求める。また、移送指令導出部２０は、前記導出した各時点の媒介変数のうち姿勢調整区間外の媒介変数については、その媒介変数に対応する局部補間後先端パス上の先端点の位置座標と、その先端点からその媒介変数に対応する局部補間後上空パス上の上空点へ向かう工具軸ベクトルとを求める。また、移送指令導出部２０は、これらの各時点の媒介変数について求めた先端点の位置座標を工具１０６の先端点が通り且つこれらの各時点の媒介変数について求めた工具軸ベクトルに工具１０６の工具軸ベクトルが一致するように移送対象物を動かすための各移送軸方向への移送対象物の基準単位時間毎の移送量を求める。具体的には、移送指令導出部２０は、上記のように各時点の媒介変数について求めた先端点の位置座標及び工具軸ベクトルから移送軸座標算出関数を用いて各時点の媒介変数に対応する各移送軸上の位置座標を求め、その求めた各時点における各移送軸上の位置座標からそれらの移送軸上での位置座標の基準単位時間当たりの変化量を求め、その変化量を対応する移送軸方向への移送対象物の基準単位時間毎の移送量とする。移送指令導出部２０は、このようにして求めた各移送軸方向への移送対象物の基準単位時間毎の移送量を基準単位時間毎（特定周期毎）の指令パルスとする。
【００６３】
制御部２２は、各移送装置１０２，１１０，１１２，１１４，１１６の動作を制御するものである。この制御部２２は、移送指令導出部２０によって求められた特定周期毎の指令パルスに応じて各移送装置１０２，１１０，１１２，１１４，１１６に移送対象物を移送させる。具体的には、制御部２２は、移送指令導出部２０によって求められた各移送軸方向についての前記特定周期毎の指令パルスのうちテーブル移送装置１０２のサーボモータ及び各移送部１１０ｂ，１１２ｂ，１１４ｂ，１１６ｂのサーボモータのそれぞれに対応する移送軸方向への移送量を示す指令パルスをそれら各サーボモータに出力する。それによって、各移送装置１０２，１１０，１１２，１１４，１１６に出力した指令パルスに応じて移送対象物を移送させる。
【００６４】
次に、図３〜図７のフローチャートを参照して、本実施形態の数値制御装置２による数値制御プロセスについて説明する。
【００６５】
まず、パス導出部１２は、記憶部４に記憶された加工プログラム（ＮＣプログラム）を読み取り（図３のステップＳ１）、補間前パス導出部１３がその加工プログラムから補間前先端パス及び補間前上空パスを求める（ステップＳ２）。この際、補間前パス導出部１３は、加工プログラムに含まれているワーク座標系ツールパスを読み取り、そのワーク座標系ツールパスを記憶部４に記憶されているワーク設置情報に基づいて基準座標系ツールパスに変換し、その変換後の基準座標系ツールパスから補間前先端パス及び補間前上空パスを求める。なお、補間前パス導出部１３は、この時、任意の媒介変数ｓに対する先端点ｐ（ｓ）の基準座標系における位置座標を表す関数を補間前先端パスとして導出し、その任意の媒介変数ｓに対する上空点Ｐ（ｓ）に対する上空点Ｐ（ｓ）の基準座標系における位置座標を表す関数を補間前上空パスとして導出する。すなわち、特定の媒介変数に対して補間前先端パス上の特定の先端点と補間前上空パス上の特定の上空点とが１対１で対応するように補間前先端パス及び補間前上空パスが求められる。
【００６６】
次に、パス補間部１４の滑らか補間部１４ａが、補間前パス導出部１３によって求められた補間前先端パスと補間前上空パスのそれぞれについてブロック滑らか補間を行う（ステップＳ３）。
【００６７】
滑らか補間部１４ａは、補間前先端パスのうちの隣接する指令ブロック同士の境界に位置する指令点の前後において一次微分と二次微分がそれぞれ連続変化し、かつ、その指令点を補間後の先端パスが通るように補間前先端パスを補間する。この際、滑らか補間部１４ａは、補間前先端パスのうちこのような補間が解析的に可能な部分についてのみブロック滑らか補間を行い、このような補間が解析的に不可能な部分については補間せずに元の補間前先端パスの軌跡のまま残す。詳しくは、滑らか補間部１４ａは、指令点における補間前先端パスの折れ曲がりの角度が予め設定された一定角度よりも大きい部分、及び、補間前先端パスに対してブロック滑らか補間を行った後の先端パスに生じた誤差が予め設定された許容誤差よりも大きくなる部分については、補間せずに元の軌跡のまま残す。滑らか補間部１４ａは、補間前上空パスについても同様にブロック滑らか補間を行う。
【００６８】
次に、パス局部フィルタ１４ｂが、ブロック滑らか補間後の先端パス及び上空パスのそれぞれについて局部補間を行う（ステップＳ４）。パス局部フィルタ１４ｂは、滑らか補間後の先端パスのうち媒介変数による一次微分の変化が連続でかつ媒介変数による二次微分の変化が不連続となっている指令点と媒介変数による一次微分の変化が不連続になっている指令点とを補間対象点とし、滑らか補間後の先端パスのうちその補間対象点の前後に亘り、特定の区間幅を有する補間区間のみを局部補間する。これにより、先端パスのうち前記ブロック滑らか補間が行われなかった指令点付近が局部補間され、その指令点において不連続であった微分値の変化が連続的な変化となるように補間される。このパス局部フィルタ１４ｂによって行われる局部補間の詳細なプロセスが図４に示されている。
【００６９】
この局部補間では、まず、パス局部フィルタ１４ｂの局部補間部１４ｃが、補間区間の区間幅である補間区間幅をまだ算出していない補間対象点が滑らか補間後の先端パスに存在するか否かを判断する（ステップＳ１２）。局部補間部１４ｃは、そのような補間対象点が滑らか補間後の先端パスに存在すると判断した場合には、その補間区間幅をまだ算出していない補間対象点について分配区間幅及び補間区間幅の算出を行う（ステップＳ１４）。なお、分配区間幅は、パスの媒介変数による一次微分を分配関数に基づいて分配する区間幅のことである。
【００７０】
このステップＳ１４では、局部補間部１４ｃは、まず、分配区間幅を算出し、その後、補間区間幅をその算出した分配区間幅以上の区間幅として求める。なお、本実施形態では、局部補間部１４ｃは、補間区間幅として分配区間幅と等しい大きさの区間幅を求める。局部補間部１４ｃは、補間対象点の前後で先端パスの媒介変数による一次微分値が異なる場合には、その前後の一次微分値の差が最大となる基準座標系の座標軸について、局部補間前の先端パスと局部補間後の先端パスとの補間対象点における位置誤差がその座標軸における許容誤差に等しくなるという条件を満たすように分配区間幅が求められる。詳しくは、例えば、次のようにして分配区間幅が算出される。
【００７１】
分配区間幅の算出式は、後述のパスの一次微分の分配に用いる分配関数によって異なるが、ここでは、後述のパスの一次微分の分配に直線型の分配関数を用いるものとして、分配区間幅の算出方法について説明する。
【００７２】
基準座標系の各座標軸のうちｘ軸において、先端パスの媒介変数ｓによる一次微分の補間対象点直前の値ｂ１と補間対象点直後の値ｂ２との差が最大となるとする。ここで、このｘ軸における先端パスの位置座標ｘの媒介変数ｓによる一次微分関数ｘ’（ｓ）は、次式（１）で表せる。なお、この一次微分関数ｘ’（ｓ）は、図８に太線で示されている。
【００７３】
ｘ’（ｓ）＝ｄｘ／ｄｓ＝αｓ＋ｂ１・・・（１）
なお、αは、所定の係数である。ここで、局部補間前の先端パスに対する局部補間後の先端パスの補間対象点での位置誤差は、図８中のハッチングを付した領域の面積に相当する。この位置誤差をＥとすると、当該位置誤差Ｅは、次式（２）で求められる。
【００７４】
Ｅ＝Ａ×（ｂ２−ｂ１）／８・・・（２）
ここで、ｘ軸における許容誤差をτとすると、前記誤差Ｅが許容誤差τに等しいという条件を満たす分配区間幅Ａは、上記式（２）から次式（３）のように求められる。
【００７５】
Ａ＝８τ／（ｂ２−ｂ１）・・・（３）
なお、上記式（３）で求められる分配区間幅の値が予め設定された上限パラメータを超える場合には、その上限パラメータの値を分配区間幅Ａとする。そして、本実施形態では、以上のようにして算出された分配区間幅Ａに等しい区間幅を補間区間幅とする。
【００７６】
次に、局部補間部１４ｃは、現在対象としている補間対象点についての補間区間が他の補間対象点の補間区間と重なるか否かを判断する（ステップＳ１６）。ここで、局部補間部１４ｃは、補間区間が重ならないと判断した場合には、上記ステップＳ１２に戻り、以降のプロセスを繰り返し行う。一方、局部補間部１４ｃは、補間区間が重なると判断した場合には、重なった補間区間同士を結合して１つの補間区間とする（ステップＳ１８）。具体的には、局部補間部１４ｃは、重なった各補間区間のうち最も先端パスの始点寄りに位置する補間区間の始点から最も先端パスの終点寄りに位置する補間区間の終点までの区間を１つの補間区間とする。なお、この場合、結合した後の１つの補間区間について後述の分配の際に用いる分配区間幅としては、各補間区間に対応する分配区間幅のうち最も小さい分配区間幅が採用される。この後、上記ステップＳ１２に戻り、以降のプロセスが繰り返し行われる。
【００７７】
そして、ステップＳ１２において、局部補間部１４ｃが滑らか補間後の先端パスに補間区間幅を算出していない補間対象点がもう存在しないと判断した場合には、局部補間部１４ｃは、次に、以降の局部補間処理を行う１つの補間区間を抽出する（ステップＳ２０）。ここで、滑らか補間後の先端パスに局部補間処理を行っていない複数の補間区間が存在する場合には、局部補間部１４ｃは、それらの補間区間のうち最も先端パスの始点寄りに位置する補間区間を抽出する。なお、上記ステップＳ１８で結合された補間区間は、１つの補間区間として扱われる。
【００７８】
その後、局部補間部１４ｃは、抽出した補間区間について調整区間を求める（ステップＳ２２）。この調整区間（図９及び図１０参照）は、補間区間を前後に分配区間幅Ａの半分の区間幅ａずつ拡大した区間であり、後述する補間後関数の算出対象となる補間ブロックを判断する基準となる。この後、局部補間部１４ｃは、メモリ５に記憶されている補間後積算関数を０に初期セットする（ステップＳ２４）。
【００７９】
次に、局部補間部１４ｃは、後述の補間後関数を求める補間処理を実施するための先端パスの指令ブロックである補間ブロックを抽出する（ステップＳ２６）。具体的には、局部補間部１４ｃは、上記ステップＳ２２で求めた調整区間内に少なくとも区間の一部が含まれる複数の指令ブロック（図９では先端パスの指令ブロックｐ０（ｓ）〜ｐ５（ｓ）、図１０では先端パスの指令ブロックｐ０（ｓ）〜ｐ７（ｓ））を選択するとともに、それらの指令ブロックのうち後述の補間後関数を求める補間処理が終わっていないブロックでかつ最も先端パスの始点寄りに位置するブロックを補間ブロックとして抽出する。
【００８０】
次に、局部補間部１４ｃは、抽出した補間ブロックの補間後関数を求める（ステップＳ２８）。本実施形態では、局部補間部１４ｃは、直線型の分配関数ｆ（ｓ）を用いて補間後関数を求める。直線型の分配関数ｆ（ｓ）は、次式（４）で表される。
【００８１】
ｆ（ｓ）＝１／Ａ  （−Ａ／２≦ｓ≦Ａ／２）・・・（４）
なお、分配区間−Ａ／２≦ｓ≦Ａ／２の外側では、ｆ（ｓ）＝０である。
【００８２】
局部補間部１４ｃは、補間後関数の算出に当たって、まず、上記抽出した補間ブロック内の媒介変数が異なる各第１位置ｓを中央とし且つ分配区間幅Ａと等しい区間幅を有する積分区間［ｓ−Ａ／２，ｓ＋Ａ／２］を設定する。そして、局部補間部１４ｃは、その設定した積分区間［ｓ−Ａ／２，ｓ＋Ａ／２］内の媒介変数が異なる各第２位置Ｓでの先端パスの媒介変数による一次微分ｐｉ’（Ｓ）を求め、その各第２位置Ｓでの一次微分ｐｉ’（Ｓ）をその第２位置Ｓを中央とし且つ前記分配区間幅Ａを有する分配区間内に分配関数ｆ（ｓ）に基づいて分配した場合に得られる分配後微分関数ｐｉ’（Ｓ）・ｆ（ｓ−Ｓ）を積分区間［ｓ−Ａ／２，ｓ＋Ａ／２］にわたって積分し、それによって補間後関数ｑｉ’（ｓ）を求める。換言すれば、局部補間部１４ｃは、次式（５）によって補間ブロックｐｉ（ｓ）の補間後関数ｑｉ’（ｓ）を求める。
【００８３】
【数１】
0005417391.tif 000002
【００８４】
このようにして得られた補間後関数ｑｉ’（ｓ）は、補間ブロックｐｉ（ｓ）の区間幅が補間区間幅Ａよりも大きい場合と小さい場合とで異なった形で表される。その各場合における補間後関数ｑｉ’（ｓ）は、以下の通りである。
【００８５】
補間ブロックｐｉ（ｓ）の区間幅が補間区間幅Ａ（＝２ａ）よりも大きい場合には、その補間ブロックｐｉ（ｓ）の両端を規定する２つの指令点のうち先端パスの始点寄りの指令点をｔ［ｉ］、先端パスの終点寄りの指令点をｔ［ｉ＋１］とし、補間区間幅Ａの半分の区間幅をａとすると、当該補間ブロックｐｉ（ｓ）に対応する区間はｔ［ｉ］＜ｓ＜ｔ［ｉ＋１］で表され、ｔ［ｉ］−ａ＜ｔ［ｉ］＋ａ＜ｔ［ｉ＋１］−ａ＜ｔ［ｉ＋１］＋ａの関係が成り立つ（図１１参照）。この場合における補間ブロックｐｉ（ｓ）の媒介変数ｓによる一次微分ｐｉ’（ｓ）は、図１１中の太線で表される。
【００８６】
この場合において、上記補間処理によって得られる補間後関数ｑｉ’（ｓ）は、下記のｔ［ｉ］−ａ＜ｓ＜ｔ［ｉ］＋ａの区間の関数ｑｉ１１’（ｓ）と、ｔ［ｉ］＋ａ＜ｓ＜ｔ［ｉ＋１］−ａの区間の関数ｑｉ１２’（ｓ）と、ｔ［ｉ＋１］−ａ＜ｓ＜ｔ［ｉ＋１］＋ａの区間の関数ｑｉ１３’（ｓ）とに細分化される。
【００８７】
ｔ［ｉ］−ａ＜ｓ＜ｔ［ｉ］＋ａの区間の関数ｑｉ１１’（ｓ）は、次式（６）で表される。
【００８８】
【数２】
0005417391.tif 000003
【００８９】
ｔ［ｉ］＋ａ＜ｓ＜ｔ［ｉ＋１］−ａの区間の関数ｑｉ１２’（ｓ）は、次式（７）で表される。
【００９０】
【数３】
0005417391.tif 000004
【００９１】
ｔ［ｉ＋１］−ａ＜ｓ＜ｔ［ｉ＋１］＋ａの区間の関数ｑｉ１３’（ｓ）は、次式（８）で表される。
【００９２】
【数４】
0005417391.tif 000005
【００９３】
次に、補間ブロックｐｉ（ｓ）の区間幅が補間区間幅Ａ＝２ａよりも小さい場合には、その補間ブロックｐｉ（ｓ）の両端を規定する２つの指令点のうち先端パスの始点寄りの指令点をｔ［ｉ］、先端パスの終点寄りの指令点をｔ［ｉ＋１］とし、補間区間幅Ａの半分の区間幅をａとすると、当該補間ブロックｐｉ（ｓ）に対応する区間はｔ［ｉ］＜ｓ＜ｔ［ｉ＋１］で表され、ｔ［ｉ］−ａ＜ｔ［ｉ＋１］−ａ＜ｔ［ｉ］＋ａ＜ｔ［ｉ＋１］＋ａの関係が成り立つ（図１２及び図１３参照）。なお、図１２は、補間ブロックｐｉ（ｓ）の区間幅が補間区間幅Ａよりも小さく且つ補間区間幅Ａの半分の区間幅ａよりも大きい場合を示しており、図１３は、補間ブロックｐｉ（ｓ）の区間幅が補間区間幅Ａの半分の区間幅ａよりも小さい場合を示している。これらの場合における補間ブロックｐｉ（ｓ）の媒介変数ｓによる一次微分関数ｐｉ’（ｓ）は、図１２及び図１３中の太線で表される。
【００９４】
これらの場合において、上記補間処理によって得られる補間後関数ｑｉ’（ｓ）は、下記のｔ［ｉ］−ａ＜ｓ＜ｔ［ｉ＋１］−ａの区間の関数ｑｉ２１’（ｓ）と、ｔ［ｉ＋１］−ａ＜ｓ＜ｔ［ｉ］＋ａの区間の関数ｑｉ２２’（ｓ）と、ｔ［ｉ］＋ａ＜ｓ＜ｔ［ｉ＋１］＋ａの区間の関数ｑｉ２３’（ｓ）とに細分化される。
【００９５】
ｔ［ｉ］−ａ＜ｓ＜ｔ［ｉ＋１］−ａの区間の関数ｑｉ２１’（ｓ）は、次式（９）で表される。
【００９６】
【数５】
0005417391.tif 000006
【００９７】
ｔ［ｉ＋１］−ａ＜ｓ＜ｔ［ｉ］＋ａの区間の関数ｑｉ２２’（ｓ）は、次式（１０）で表される。
【００９８】
【数６】
0005417391.tif 000007
【００９９】
ｔ［ｉ］＋ａ＜ｓ＜ｔ［ｉ＋１］＋ａの区間の関数ｑｉ２３’（ｓ）は、次式（１１）で表される。
【０１００】
【数７】
0005417391.tif 000008
【０１０１】
次に、局部補間部１４ｃは、求めた補間後関数をメモリ５に記憶されている補間後積算関数に加算する（ステップＳ３０）。ここでは、ステップＳ２４で０にセットされた補間後積算関数に補間後関数が加算されるので、加算後の補間後積算関数は、上記ステップＳ２８で求められた補間後関数に等しくなる。
【０１０２】
次に、局部補間部１４ｃは、調整区間に少なくとも区間の一部が含まれる全ての補間ブロックについて補間後関数を求めてその補間後関数を補間後積算関数に加算する補間処理を行ったか否かを判断する（ステップＳ３２）。ここで、局部補間部１４ｃは、まだ全ての補間ブロックの補間処理を終了していないと判断した場合には、上記ステップＳ２６に戻り、次に補間処理を行う補間ブロックを抽出する。この際に抽出される補間ブロックは、調整区間に少なくとも区間の一部が含まれる指令ブロックのうち先に補間処理された補間ブロックに対して先端パスの終点側に隣り合う指令ブロックとなる。その後、局部補間部１４ｃは、その抽出した補間ブロックについてステップＳ２８の補間後関数の算出を行い、それによって得られた補間後関数を補間後積算関数に加算する。局部補間部１４ｃは、このようなステップＳ２６〜Ｓ３０のプロセスを、ステップＳ３２において調整区間に少なくとも一部が含まれる全ての補間ブロックの補間処理（分配、積分、加算）を終了したと判断するまで繰り返し行う。
【０１０３】
そして、局部補間部１４ｃは、ステップＳ３２において調整区間に少なくとも一部が含まれる全ての補間ブロックの補間処理を終了したと判断した場合には、次に、誤差付き先端補間パスを求める（ステップＳ３４）。具体的には、局部補間部１４ｃは、上記補間後関数の加算によって得られた補間後積算関数から上記ステップＳ２０で抽出した補間区間に相当する区間を抜き出すことによって誤差付き先端補間パスを求める。
【０１０４】
次に、パス局部フィルタ１４ｂの誤差補正部１４ｄが、誤差付き先端補間パスのうち補間区間の始点に対応する点と終点に対応する点とにおける先端パスとの誤差を補正するための先端誤差補正パスを求める（ステップＳ３６）。具体的には、誤差補正部１４ｄは、補間区間の始点における先端誤差補正パスの値が当該始点における誤差付き先端補間パスの値から当該始点における先端パスの値を減じて得た値に等しく、かつ、補間区間の終点における先端誤差補正パスの値が当該終点における誤差付き先端補間パスの値から当該終点における先端パスの値を減じて得た値に等しいという条件を満たす先端誤差補正パスを求める。より具体的には、誤差補正部１４ｄは、先端誤差補正パスをＥ（ｓ）とし、誤差付き先端補間パスをｒ（ｓ）とし、先端パスをｐ（ｓ）とし、補間区間の始点をＳｓとし、補間区間の終点をＳｅとすると、以下の式（１２），（１３）を満たす先端誤差補正パスＥ（ｓ）を求める。本実施形態では、誤差補正部１４ｄは、この条件を満たす先端誤差補正パスＥ（ｓ）の一例として、Ｅ（Ｓｓ）とＥ（Ｓｅ）を直線で繋いだ先端誤差補正パスを求める。
【０１０５】
Ｅ（Ｓｓ）＝ｒ（Ｓｓ）−ｐ（Ｓｓ）・・・（１２）
Ｅ（Ｓｅ）＝ｒ（Ｓｅ）−ｐ（Ｓｅ）・・・（１３）
次に、誤差補正部１４ｄは、誤差付き先端補間パスをステップＳ３６で求めた先端誤差補正パスによって補正し、その補正後の先端補間パスを先端パスの補間区間と置換して局部補間後の補間区間の先端パスとする（ステップＳ３８）。具体的には、誤差補正部１４ｄは、誤差付き先端補間パスから先端誤差補正パスを差し引くことによって誤差付き先端補間パスを補正し、当該補正により、補間区間の始点での先端パスに対する誤差付き先端補間パスの誤差と、補間区間の終点での先端パスに対する誤差付き先端補間パスの誤差とを除去する。このため、補正後の先端補間パスは、補間区間の始点において先端パスと連続して繋がり、補間区間の終点において先端パスと連続して繋がるパスとなる。以上のプロセスにより、先端パスのうちの１つの補間区間が、当該補間区間内の補間対象点において不連続となっている微分値の変化が連続的な変化となるように局部補間される。
【０１０６】
この後、局部補間部１４ｃは、先端パスの全ての補間区間の局部補間が終了したか否かを判断する（ステップＳ４０）。ここで、局部補間部１４ｃが、まだ局部補間が終了していない補間区間が存在すると判断した場合には、上記ステップＳ２０以降のプロセスが繰り返し行われる。具体的には、局部補間部１４ｃは、局部補間が終了していない補間区間のうち最も先端パスの始点寄りに位置する補間区間を抽出し、その抽出した補間区間について補間後関数の算出、補間後積算関数への加算、誤差付き先端補間パスの導出、先端誤差補正パスの導出及び誤差付き先端補間パスの補正等が行われる。
【０１０７】
一方、局部補間部１４ｃが先端パスの全ての補間区間の局部補間が終了したと判断した場合には、パス局部フィルタ１４ｂによる先端パスについての局部補間処理のプロセスが終了する。このようにして、パス局部フィルタ１４ｂは、全ての補間区間が局部補間された先端パスである局部補間後先端パスを導出する。また、パス局部フィルタ１４ｂは、以上の先端パスの局部補間処理と同様に上空パスの局部補間を行い、全ての補間区間を局部補間した上空パスである局部補間後上空パスを導出する。
【０１０８】
次に、姿勢調整情報導出部１６が、姿勢調整情報の導出を行う（図３のステップＳ５）。この姿勢調整情報導出部１６による姿勢調整情報の導出の詳細なプロセスは、図５に示されている。
【０１０９】
この姿勢調整情報の導出プロセスでは、姿勢調整情報導出部１６は、まず、局部補間後先端パスの媒介変数ｓによる一次微分が連続変化している区間を対象として、局部補間後先端パス及び局部補間後上空パスに工具軸ベクトルの向きの変化が緩やかになるように工具１０６の姿勢を調整すべき姿勢調整箇所が存在しないかを調べ、姿勢調整箇所が存在すれば、その姿勢調整箇所を含む姿勢調整区間を接続条件及びその姿勢調整区間の区間タイプと共に抽出し、それらの情報を姿勢調整情報としてメモリ５に登録する（ステップＳ４２）。
【０１１０】
具体的には、姿勢調整情報導出部１６は、図１５に示すように局部補間後先端パスの進行方向に対して工具軸ベクトルが成す角度が短い移動距離（パラメータとして設定）の間で増減する箇所が局部補間後先端パスと局部補間後上空パスに存在する場合には、その箇所の前後に一定のパラメータ分の区間幅を加えた媒介変数ｓの区間（ｓｓ，ｓｅ）を姿勢調整区間として設定し、その設定した姿勢調整区間（ｓｓ，ｓｅ）の情報をメモリ５に登録するとともに、その姿勢調整区間（ｓｓ，ｓｅ）の区間タイプは区間タイプ２に該当するという情報をメモリ５に登録する。また、姿勢調整情報導出部１６は、姿勢調整区間（ｓｓ，ｓｅ）の始点ｓｓにおける射影先端パス上の点とその始点ｓｓにおける射影上空パス上の点を通る直線からなる制御ラインと前記特定平面（ｘｙ平面）上の前記基準方向（ｙ軸方向）との間の角度Ｃｓと、姿勢調整区間（ｓｓ，ｓｅ）の終点ｓｅにおける射影先端パス上の点とその終点ｓｅにおける射影上空パス上の点を通る直線からなる制御ラインと前記特定平面上の前記基準方向との間の角度Ｃｅとを共にＮＵＬＬとしてメモリ５に登録する。
【０１１１】
また、姿勢調整情報導出部１６は、前記特定平面上において射影先端パスが示す軌跡と射影上空パスが示す軌跡が互いに離れており且つ局部補間後先端パス上の先端点からその先端点に対応する局部補間後上空パス上の上空点へ向かう工具軸ベクトルを前記特定平面に射影した射影工具軸ベクトルの向きの媒介変数の増分に対する変化率（媒介変数の増分に対する射影工具軸ベクトル（制御ライン）と前記基準方向との間の角度の変化率）がパラメータとして設定された一定の変化率を超える姿勢調整箇所が存在する場合（図１６参照）には、その箇所の前後に亘る区間（ｓｓ，ｓｅ）を姿勢調整区間として設定し、その設定した姿勢調整区間（ｓｓ，ｓｅ）の情報をメモリ５に登録するとともに、その姿勢調整区間（ｓｓ，ｓｅ）の区間タイプは区間タイプ１に該当するという情報をメモリ５に登録する。また、姿勢調整情報導出部１６は、姿勢調整区間（ｓｓ，ｓｅ）の始点ｓｓに対応する射影先端パス上の点とその点に対応する射影上空パス上の点（始点ｓｓにおける射影上空パス上の点）を通る直線である制御ラインと前記基準方向との間の角度Ｃｓ（以下、姿勢調整区間の始点における制御ラインの角度Ｃｓという）と、姿勢調整区間（ｓｓ，ｓｅ）の終点ｓｅに対応する射影先端パス上の点とその点に対応する射影上空パス上の点（終点ｓｅにおける射影上空パス上の点）を通る直線である制御ラインと前記基準方向との間の角度Ｃｅ（以下、姿勢調整区間の終点における制御ラインの角度Ｃｅという）とを求め、姿勢調整区間（ｓｓ，ｓｅ）における制御ラインの角度範囲（Ｃｓ，Ｃｅ）の情報をメモリ５に登録する。
【０１１２】
また、姿勢調整情報導出部１６は、図１７〜図２０に示すように、射影先端パスと射影上空パスが交差又は接する場合には、その交差又は接する点に対応する局部補間後先端パス上の媒介変数ｓｍに局部補間後上空パス上の媒介変数Ｓｍを一致させることでその点を特異点とし、その特異点の媒介変数の前後に亘り且つ特定の区間幅（パラメータとして設定）を有する区間を姿勢調整区間として設定し、その姿勢調整区間（ｓｓ，ｓｅ）の情報をメモリ５に登録する。そして、姿勢調整情報導出部１６は、この場合には、始点ｓｓ及び終点ｓｅにおける制御ラインと射影先端パスの接線方向との間の角度を求め、その角度に基づいてその始点ｓｓ及び終点ｓｅにおいて制御ラインが射影先端パスの接線方向に対して平行に近いか否かを判別し、その判別結果に応じて以下のように姿勢調整区間を複数の区間に分割してその各分割区間毎の区間情報、制御ラインの角度範囲及び区間タイプを求めてメモリ５に登録する。なお、姿勢調整情報導出部１６は、姿勢調整区間の始点ｓｓ及び終点ｓｅにおける制御ラインと射影先端パスの接線方向との間の角度のうち小さい方の角度が記憶部４に記憶されたパラメータとしての判別角度（例えば１０度〜３０度の間の特定の角度）以上である場合には、制御ラインは射影先端パスの接線方向に対して平行に近くないと判別し、当該角度が判別角度未満である場合には、制御ラインは射影先端パスの接線方向に対して平行に近いと判別する。
【０１１３】
そして、姿勢調整情報導出部１６は、射影先端パスと射影上空パスが交差する場合において、姿勢調整区間の始点ｓｓ及び終点ｓｅの両方で制御ラインが射影先端パスの接線方向に対して平行に近くない場合（図１７参照）には、姿勢調整区間をその始点から射影先端パスと射影上空パスの交点の媒介変数までの始点側区間とその交点の媒介変数から当該姿勢調整区間の終点までの終点側区間とに分割し、その始点側区間及び終点側区間は、共に区間タイプ１に該当すると判定する。また、姿勢調整情報導出部１６は、姿勢調整区間の始点における制御ラインの角度Ｃｓと姿勢調整区間の終点における制御ラインの角度Ｃｅとを求めるとともに、その求めた両角度Ｃｓ，Ｃｅの平均の角度を前記交点における制御ラインの角度Ｃｍとして求める。そして、姿勢調整情報導出部１６は、以上のように求めた情報から、先端パスについての始点側区間（ｓｓ，ｓｍ）、上空パスについての始点側区間（Ｓｓ，Ｓｍ）（Ｓｓ＝ｓｓである）、始点側区間における制御ラインの角度範囲（Ｃｓ，Ｃｍ）及び始点側区間が区間タイプ１に該当するという情報を姿勢調整情報としてメモリ５に登録し、先端パスについての終点側区間（ｓｍ，ｓｅ）、上空パスについての終点側区間（Ｓｍ，Ｓｅ）（Ｓｅ＝ｓｅである）、終点側区間における制御ラインの角度範囲（Ｃｍ，Ｃｅ）及び終点側区間が区間タイプ１に該当するという情報を姿勢調整情報としてメモリ５に登録する。
【０１１４】
また、姿勢調整情報導出部１６は、射影先端パスと射影上空パスが交差する場合において、姿勢調整区間の始点ｓｓで制御ラインが射影先端パスの接線方向に対して平行に近くなく且つ姿勢調整区間の終点ｓｅで制御ラインが射影先端パスの接線方向に対して平行に近い場合（図１８参照）には、姿勢調整区間の始点から射影先端パスと射影上空パスの交点の媒介変数までの始点側区間と、その交点の媒介変数から当該交点の媒介変数と当該姿勢調整区間の終点との間の分割点までの終点側第１区間と、前記分割点から姿勢調整区間の終点までの終点側第２区間とに姿勢調整区間を分割し、その始点側区間は区間タイプ１に該当し、終点側第１区間は区間タイプ１に該当し、終点側第２区間は区間タイプ２に該当すると判定する。また、姿勢調整情報導出部１６は、射影先端パスと射影上空パスの交点における射影先端パスについての媒介変数ｓｍと当該交点における射影上空パスについての媒介変数Ｓｍを求め、射影先端パスについての分割点ｓｋをｓｋ＝（ｓｍ＋ｓｅ）／２として求める。また、姿勢調整情報導出部１６は、姿勢調整区間の始点における制御ラインの角度Ｃｓと姿勢調整区間の終点における制御ラインの角度Ｃｅを求めるとともに、その求めた両角度Ｃｓ，Ｃｅの平均の角度を射影先端パスと射影上空パスの交点における制御ラインの角度Ｃｍとして求める。また、姿勢調整情報導出部１６は、分割点における制御ラインの角度Ｃｋとして姿勢調整区間の終点における制御ラインの角度Ｃｅに等しい角度を導出する。また、姿勢調整情報導出部１６は、前記分割点ｓｋに対応する射影先端パス上の点を通り且つ前記基準方向との間の角度が前記Ｃｋとなる直線と射影上空パスとの交点に対応する媒介変数位置を射影上空パスの分割点Ｓｋとして求める。そして、姿勢調整情報導出部１６は、以上のように求めた情報から、先端パスについての始点側区間（ｓｓ，ｓｍ）、上空パスについての始点側区間（Ｓｓ，Ｓｍ）（Ｓｓ＝ｓｓである）、始点側区間における制御ラインの角度範囲（Ｃｓ，Ｃｍ）及び始点側区間が区間タイプ１に該当するという情報を姿勢調整情報としてメモリ５に登録し、先端パスについての終点側第１区間（ｓｍ，ｓｋ）、上空パスについての終点側第１区間（Ｓｍ，Ｓｋ）、終点側第１区間における制御ラインの角度範囲（Ｃｍ，Ｃｋ）及び終点側第１区間が区間タイプ１に該当するという情報を姿勢調整情報としてメモリ５に登録し、先端パスについての終点側第２区間（ｓｋ，ｓｅ）、上空パスについての終点側第２区間（Ｓｋ，Ｓｅ）（Ｓｅ＝ｓｅである）、終点側第２区間における制御ラインの角度範囲（Ｃｋ，Ｃｅ）及び終点側第２区間が区間タイプ２に該当するという情報を姿勢調整情報としてメモリ５に登録する。
【０１１５】
また、姿勢調整情報導出部１６は、図１８の場合とは逆に、姿勢調整区間の始点ｓｓで制御ラインが射影先端パスの接線方向に対して平行に近く且つ姿勢調整区間の終点ｓｅで制御ラインが射影先端パスの接線方向に対して平行に近くない場合には、姿勢調整区間の始点から当該始点と射影先端パスと射影上空パスの交点の媒介変数との間の分割点までの始点側第１区間と、その分割点から射影先端パスと射影上空パスの交点の媒介変数までの始点側第２区間と、前記交点から姿勢調整区間の終点までの終点側区間とに姿勢調整区間を分割し、その始点側第１区間は区間タイプ２に該当し、始点側第２区間は区間タイプ１に該当し、終点側区間は区間タイプ１に該当すると判定する。そして、姿勢調整情報導出部１６は、射影先端パスと射影上空パスの交点における射影先端パスについての媒介変数ｓｍ及び射影上空パスについての媒介変数Ｓｍを上記と同様に求め、分割点ｓｋをｓｋ＝（ｓｓ＋ｓｍ）／２として求める。また、姿勢調整情報導出部１６は、姿勢調整区間の始点における制御ラインの角度Ｃｓ、姿勢調整区間の終点における制御ラインの角度Ｃｅ及び射影先端パスと射影上空パスの交点における制御ラインの角度Ｃｍを上記と同様にして求め、分割点における制御ラインの角度Ｃｋとして姿勢調整区間の始点における制御ラインの角度Ｃｓに等しい角度を導出する。また、姿勢調整情報導出部１６は、射影上空パスの分割点Ｓｋを上記と同様にして求める。そして、姿勢調整情報導出部１６は、以上のように求めた情報から、先端パスについての始点側第１区間（ｓｓ，ｓｋ）、上空パスについての始点側第１区間（Ｓｓ，Ｓｋ）（Ｓｓ＝ｓｓである）、始点側第１区間における制御ラインの角度範囲（Ｃｓ，Ｃｋ）及び始点側第１区間が区間タイプ２に該当するという情報を姿勢調整情報としてメモリ５に登録し、先端パスについての始点側第２区間（ｓｋ，ｓｍ）、上空パスについての始点側第２区間（Ｓｋ，Ｓｍ）、始点側第２区間における制御ラインの角度範囲（Ｃｋ，Ｃｍ）及び始点側第２区間が区間タイプ１に該当するという情報を姿勢調整情報としてメモリ５に登録し、先端パスについての終点側区間（ｓｍ，ｓｅ）、上空パスについての終点側区間（Ｓｍ，Ｓｅ）（Ｓｅ＝ｓｅである）、終点側区間における制御ラインの角度範囲（Ｃｍ，Ｃｅ）及び終点側区間が区間タイプ１に該当するという情報を姿勢調整情報としてメモリ５に登録する。
【０１１６】
また、姿勢調整情報導出部１６は、射影先端パスと射影上空パスが交差する場合において、姿勢調整区間の始点ｓｓ及び終点ｓｅの両方で制御ラインが射影先端パスの接線方向に対して平行に近い場合（図１９参照）には、姿勢調整区間をその始点から射影先端パスと射影上空パスの交点の媒介変数までの始点側区間とその交点の媒介変数から当該姿勢調整区間の終点までの終点側区間とに分割し、その始点側区間及び終点側区間は、共に区間タイプ２に該当すると判定する。また、姿勢調整情報導出部１６は、射影先端パスと射影上空パスの交点における射影先端パスについての媒介変数ｓｍ及び射影上空パスについての媒介変数Ｓｍと、姿勢調整区間の始点における制御ラインの角度Ｃｓ及び姿勢調整区間の終点における制御ラインの角度Ｃｅと、前記交点における制御ラインの角度Ｃｍとを上記と同様にして求める。そして、姿勢調整情報導出部１６は、求めた情報から、先端パスについての始点側区間（ｓｓ，ｓｍ）、上空パスについての始点側区間（Ｓｓ，Ｓｍ）（Ｓｓ＝ｓｓである）、始点側区間における制御ラインの角度範囲（Ｃｓ，Ｃｍ）及び始点側区間が区間タイプ２に該当するという情報を姿勢調整情報としてメモリ５に登録し、先端パスについての終点側区間（ｓｍ，ｓｅ）、上空パスについての終点側区間（Ｓｍ，Ｓｅ）（Ｓｅ＝ｓｅである）、終点側区間における制御ラインの角度範囲（Ｃｍ，Ｃｅ）及び終点側区間が区間タイプ２に該当するという情報を姿勢調整情報としてメモリ５に登録する。
【０１１７】
また、姿勢調整情報導出部１６は、射影先端パスと射影上空パスがある１点で接する場合において、姿勢調整区間の始点ｓｓ及び終点ｓｅの両方で制御ラインが射影先端パスの接線方向に対して平行に近い場合（図２０参照）には、姿勢調整区間をその始点から射影先端パスと射影上空パスとの接点の媒介変数までの始点側区間とその接点の媒介変数から当該姿勢調整区間の終点までの終点側区間とに分割し、その始点側区間及び終点側区間は、共に区間タイプ２に該当すると判定する。そして、姿勢調整情報導出部１６は、上空パスについての姿勢調整区間の始点Ｓｓ及び終点Ｓｅと、姿勢調整区間の始点における制御ラインの角度Ｃｓ及び姿勢調整区間の終点における制御ラインの角度Ｃｅを上記と同様に求め、前記接点における射影先端パスについての媒介変数ｓｍ及び射影上空パスについての媒介変数Ｓｍを図１９の場合における上記交点についての媒介変数ｓｍ，Ｓｍと同様に求め、前記接点における制御ラインの角度Ｃｍを図１９の場合における上記交点における制御ラインの角度Ｃｍと同様に求める。そして、姿勢調整情報導出部１６は、求めた情報から、始点側区間についての姿勢調整情報として図１９の場合と同様の内容の情報をメモリ５に登録し、終点側区間についての姿勢調整情報として図１９の場合と同様の内容の情報をメモリ５に登録する。
【０１１８】
また、姿勢調整情報導出部１６は、局部補間後先端パス及び局部補間後上空パスに射影工具軸ベクトルの長さが０になる特異点（工具軸ベクトルが特定平面に対して垂直となる特異点）が連続する区間（以下、特異点連続区間という）が存在する場合には、その特異点連続区間の前後に亘り且つ特定の区間幅を有する区間を姿勢調整区間として設定する。
【０１１９】
そして、姿勢調整情報導出部１６は、この特異点連続区間を含む姿勢調整区間の始点ｓｓ及び終点ｓｅの両方で制御ラインが射影先端バスの接線方向（進行方向）に対して平行に近くない場合（図２１参照）には、先端パスについての姿勢調整区間（ｓｓ，ｓｅ）、上空パスについての姿勢調整区間（Ｓｓ，Ｓｅ）（Ｓｓ＝ｓｓ、Ｓｅ＝ｓｅである）、姿勢調整区間における制御ラインの角度範囲（Ｃｓ，Ｃｅ）及び姿勢調整区間が区間タイプ１に該当するという情報を姿勢調整情報としてメモリ５に登録する。
【０１２０】
また、姿勢調整情報導出部１６は、特異点連続区間を含む姿勢調整区間の始点ｓｓで制御ラインが射影先端パスの接線方向（進行方向）に対して平行に近くなく且つその姿勢調整区間の終点ｓｅで制御ラインが射影先端パスの接線方向（進行方向）に対して平行に近い場合（図２２参照）には、姿勢調整区間の始点ｓｓと特異点連続区間の始点から少し終点寄りに位置する第１分割点ｓｍとの間の始点側区間と、第１分割点ｓｍと特異点連続区間の終点から少し始点寄りに位置する第２分割点ｓｎとの間の中間区間と、第２分割点ｓｎから姿勢調整区間の終点ｓｅまでの終点側区間とに姿勢調整区間を分割し、その始点側区間及び中間区間は区間タイプ１に該当し、終点側区間は区間タイプ２に該当すると判定する。そして、姿勢調整情報導出部１６は、上空パスにおける第１分割点Ｓｍを前記第１分割点ｓｍに等しい媒介変数として求め、上空パスにおける第２分割点Ｓｎを前記第２分割点ｓｍに等しい媒介変数として求める。また、姿勢調整情報導出部１６は、姿勢調整区間の始点における制御ラインの角度Ｃｓと姿勢調整区間の終点における制御ラインの角度Ｃｅを求め、第１分割点における制御ラインの角度Ｃｍを姿勢調整区間の始点における制御ラインの角度Ｃｓに等しい角度とし、第２分割点における制御ラインの角度Ｃｎをその第２分割点における射影先端パスの進行方向と前記基準方向との間に等しい角度とする。そして、姿勢調整情報導出部１６は、このように求めた情報から、先端パスについての始点側区間（ｓｓ，ｓｍ）、上空パスについての始点側区間（Ｓｓ，Ｓｍ）（Ｓｓ＝ｓｓである）、始点側区間における制御ラインの角度範囲（Ｃｓ，Ｃｍ）及び始点側区間が区間タイプ１に該当するという情報を姿勢調整情報としてメモリ５に登録し、先端パスについての中間区間（ｓｍ，ｓｎ）、上空パスについての中間区間（Ｓｍ，Ｓｎ）、中間区間における制御ラインの角度範囲（Ｃｍ，Ｃｎ）及び中間区間が区間タイプ１に該当するという情報を姿勢調整情報としてメモリ５に登録し、先端パスについての終点側区間（ｓｎ，ｓｅ）、上空パスについての終点側区間（Ｓｎ，Ｓｅ）（Ｓｅ＝ｓｅである）、終点側区間における制御ラインの角度範囲（Ｃｎ，Ｃｅ）及び終点側区間が区間タイプ２に該当するという情報を姿勢調整情報としてメモリ５に登録する。
【０１２１】
また、姿勢調整情報導出部１６は、特異点連続区間を含む姿勢調整区間の始点ｓｓ及び終点ｓｅの両方で制御ラインが射影先端パスの接線方向（進行方向）に対して平行に近い場合（図２３参照）には、姿勢調整区間の始点ｓｓと特異点連続区間の始点から少し終点寄りに位置する第１分割点ｓｍとの間の始点側区間と、第１分割点ｓｍと特異点連続区間の終点から少し始点寄りに位置する第２分割点ｓｎとの間の中間区間と、第２分割点ｓｎから姿勢調整区間の終点ｓｅまでの終点側区間とに姿勢調整区間を分割し、その始点側区間及び終点側区間は区間タイプ２に該当し、中間区間は区間タイプ１に該当すると判定する。そして、姿勢調整情報導出部１６は、図２２の場合と同様にして、上空パスにおける第１分割点Ｓｍ、上空パスにおける第２分割点Ｓｎ、姿勢調整区間の始点における制御ラインの角度Ｃｓ及び姿勢調整区間の終点における制御ラインの角度Ｃｅを求める。また、姿勢調整情報導出部１６は、第１分割点における制御ラインの角度Ｃｍをその第１分割点における射影先端パスの進行方向と前記基準方向との間の角度に等しい角度とし、第２分割点における制御ラインの角度Ｃｎをその第２分割点における射影先端パスの進行方向と前記基準方向との間の角度に等しい角度とする。そして、姿勢調整情報導出部１６は、このように求めた情報から、先端パスについての始点側区間（ｓｓ，ｓｍ）、上空パスについての始点側区間（Ｓｓ，Ｓｍ）（Ｓｓ＝ｓｓである）、始点側区間における制御ラインの角度範囲（Ｃｓ，Ｃｍ）及び始点側区間が区間タイプ２に該当するという情報を姿勢調整情報としてメモリ５に登録し、先端パスについての中間区間（ｓｍ，ｓｎ）、上空パスについての中間区間（Ｓｍ，Ｓｎ）、中間区間における制御ラインの角度範囲（Ｃｍ，Ｃｎ）及び中間区間が区間タイプ１に該当するという情報を姿勢調整情報としてメモリ５に登録し、先端パスについての終点側区間（ｓｎ，ｓｅ）、上空パスについての終点側区間（Ｓｎ，Ｓｅ）（Ｓｅ＝ｓｅである）、終点側区間における制御ラインの角度範囲（Ｃｎ，Ｃｅ）及び終点側区間が区間タイプ２に該当するという情報を姿勢調整情報としてメモリ５に登録する。
【０１２２】
次に、姿勢調整情報導出部１６は、メモリ５に登録した各区間に、方向特定関数Ｃ（ｓ）と先端上空対応調整関数Ｓ（ｓ）を設定していない区間が存在するか否かを判別する（ステップＳ４４）。姿勢調整情報導出部１６がメモリ５に登録された区間に両関数Ｃ（ｓ），Ｓ（ｓ）を設定していない区間はないと判断した場合には、姿勢調整情報の導出プロセスは終了する。一方、姿勢調整情報導出部１６は、メモリ５に登録した区間に両関数Ｃ（ｓ），Ｓ（ｓ）を設定していない区間が存在すると判断した場合には、次に、それら両関数Ｃ（ｓ），Ｓ（ｓ）をまだ設定していない区間から１つの区間を抽出して、その抽出した区間の区間タイプが区間タイプ１であるか否かを判断する（ステップＳ４６）。このとき、姿勢調整情報導出部１６は、メモリ５にその区間について登録された区間タイプの情報に基づいて、抽出した区間の区間タイプを判断する。姿勢調整情報導出部１６は、抽出した区間の区間タイプが区間タイプ１であると判断した場合には、その区間の方向特定関数Ｃ（ｓ）を導出し、その導出した関数Ｃ（ｓ）をメモリ５に当該区間の姿勢調整情報として追加登録する（ステップＳ４８）。
【０１２３】
具体的には、姿勢調整情報導出部１６は、以下の式（１４）によって方向特定関数Ｃ（ｓ）を算出する。
【０１２４】
Ｃ（ｓ）＝Ｃｓ＋（Ｃｅ−Ｃｓ）×（ｓ−ｓｓ）／（ｓｅ−ｓｓ）・・・（１４）
ただし、ｓｓ≦ｓ≦ｓｅ
そして、姿勢調整情報導出部１６は、算出した方向特定関数Ｃ（ｓ）を対応する区間の情報と関連付けてメモリ５に姿勢調整情報として追加登録する。このステップＳ４８の後、上記ステップＳ４４に戻り、以降の処理が繰り返し行われる。
【０１２５】
一方、上記ステップＳ４６において、姿勢調整情報導出部１６が、抽出した区間の区間タイプが区間タイプ１ではない、すなわち区間タイプ２であると判断した場合には、姿勢調整情報導出部１６は、その抽出した区間について先端上空対応調整関数Ｓ（ｓ）を導出し、その導出した関数Ｓ（ｓ）を当該区間の姿勢調整情報としてメモリ５に追加登録する（ステップＳ５２）。ここで、姿勢調整情報導出部１６は、先端上空対応調整関数Ｓ（ｓ）の導出に際して、局部補間後上空パスのうち前記抽出した区間の始点に対応する点からその区間内の媒介変数が異なる各点に対応する点までの局部補間後上空パスに沿った移動距離が局部補間後先端パスのうち前記抽出した区間の始点に対応する点から前記媒介変数が異なる前記各点に対応する点までの局部補間後先端パスに沿った移動距離に対して一定の比率に維持されるように局部補間後先端パスについての媒介変数と局部補間後上空パスについての媒介変数との相関関係を規定した先端上空対応調整関数Ｓ（ｓ）を求める。
【０１２６】
具体的には、姿勢調整情報導出部１６は、姿勢調整区間（ｓｓ，ｓｅ）内に複数の中間点を設定して、局部補間後先端パスのうち姿勢調整区間の始点ｓｓに対応する点から各中間点に対応する点及び終点ｓｅに対応する点までの当該局部補間後先端パスに沿った移動距離と、局部補間後上空パスの姿勢調整区間の始点ｓｓに対応する点から各中間点に対応する点及び終点ｓｅに対応する点までの当該局部補間後上空パスに沿った移動距離とをそれぞれ導出する。例えば、図１４に示すように、始点ｓ０を姿勢調整区間の始点ｓｓに等しい点として設定するとともに、終点ｓ５を姿勢調整区間の終点ｓｅに等しい点として設定し、その始点ｓ０と終点ｓ５との間に４つの中間点ｓ１，ｓ２，ｓ３，ｓ４を設定する。そして、姿勢調整情報導出部１６は、始点ｓ０に対応する局部補間後先端パス上の点ｐ（ｓ０）から各中間点ｓ１，ｓ２，ｓ３，ｓ４及び終点ｓ５に対応する局部補間後先端パス上の各点ｐ（ｓ１），ｐ（ｓ２），ｐ（ｓ３），ｐ（ｓ４），ｐ（ｓ５）までの局部補間後先端パスに沿った移動距離ｌｅｎｉ（ｉ＝０，１，２，３，４，５）を算出する。また、姿勢調整情報導出部１６は、始点ｓ０に対応する局部補間後上空パス上の点Ｐ（ｓ０）から各中間点ｓ１，ｓ２，ｓ３，ｓ４及び終点ｓ５に対応する局部補間後上空パス上の各点Ｐ（ｓ１），Ｐ（ｓ２），Ｐ（ｓ３），Ｐ（ｓ４），Ｐ（ｓ５）までの局部補間後上空パスに沿った移動距離ＬＥＮｉ（ｉ＝０，１，２，３，４，５）を算出する。そして、姿勢調整情報導出部１６は、姿勢調整区間内における任意の媒介変数と姿勢調整区間の始点からその任意の媒介変数までの区間に対応する局部補間後先端パスに沿った移動距離との相関関係を示す先端パス上距離算出関数ｌｅｎ（ｓ）を導出する。具体的には、姿勢調整情報導出部１６は、点（ｓ０，ｌｅｎ０）、（ｓ１，ｌｅｎ１）、（ｓ２，ｌｅｎ２）、（ｓ３，ｌｅｎ３）、（ｓ４，ｌｅｎ４）、（ｓ５，ｌｅｎ５）を順番に結ぶ曲線を表す関数を先端パス上距離算出関数ｌｅｎ（ｓ）（ｓ０≦ｓ≦ｓ５）として導出する。また、姿勢調整情報導出部１６は、姿勢調整区間の始点に対応する局部補間後上空パス上の点からその局部補間後上空パスに沿った任意の移動距離とその移動距離だけ局部補間後上空パスの姿勢調整区間の始点に対応する点から局部補間後上空パスに沿って離れた点の媒介変数との相関関係を示す上空パス上距離−媒介変数対応関数ＳＳ（ＬＥＮ）を導出する。具体的には、姿勢調整情報導出部１６は、点（ＬＥＮ０，ｓ０）、（ＬＥＮ１，ｓ１）、（ＬＥＮ２，ｓ２）、（ＬＥＮ３，ｓ３）、（ＬＥＮ４，ｓ４）、（ＬＥＮ５，ｓ５）を順番に結ぶ曲線を表す関数を上空パス上距離−媒介変数対応関数ＳＳ（ＬＥＮ）（ＬＥＮ０≦ＬＥＮ≦ＬＥＮ５）として導出する。そして、姿勢調整情報導出部１６は、導出した先端パス上距離算出関数ｌｅｎ（ｓ）及び上空パス上距離−媒介変数対応関数ＳＳ（ＬＥＮ）に基づいて、先端上空対応調整関数Ｓ（ｓ）を導出する。具体的には、姿勢調整情報導出部１６は、以下の式（１５）によって、当該関数Ｓ（ｓ）を導出する。
【０１２７】
Ｓ（ｓ）＝ＳＳ（ｌｅｎ（ｓ）×ＬＥＮ５／ｌｅｎ５）・・・（１５）
姿勢調整情報導出部１６は、以上のようにして導出した先端上空対応調整関数Ｓ（ｓ）をメモリ５に姿勢調整情報の一部として追加登録する。この後、上記ステップＳ４４に戻って以降の処理が繰り返し行われる。
【０１２８】
以上のような姿勢調整情報の導出プロセスが行われた後、次に、媒介変数時間関数導出部１８が、基準時刻Ｔの経過に対する媒介変数の変化を表す媒介変数時間関数を導出する（図３のステップＳ６）。
【０１２９】
具体的には、媒介変数時間関数導出部１８は、記憶部４に記憶されている各移送軸毎の許容加速度を含む加減速条件と、局部補間後先端パス及び局部補間後上空パスと、メモリ５に登録された姿勢調整情報とに基づいて前記移送軸座標算出関数を用いて媒介変数時間関数（媒介変数の速度曲線）を求める。詳しくは、媒介変数時間関数導出部１８は、以下のようにして媒介変数時間関数を求める。
【０１３０】
媒介変数時間関数導出部１８は、まず、図２４中の階段状速度曲線で表される媒介変数速度上限関数を求める。媒介変数速度上限関数は、各移送軸パスの各指令点間のブロック毎の媒介変数ｓの速度ｄｓ／ｄＴの上限値を表す関数である。図２４中の階段状速度曲線のうち水平になっている各部分がブロックを表し、当該部分の速度ｄｓ／ｄＴがそのブロックの媒介変数ｓの速度ｄｓ／ｄＴの上限値に相当する。なお、各ブロックは、それぞれについての媒介変数ｓの増分が等しくなるように元々設定されているが、その各ブロックの媒介変数ｓの増分に相当する距離を進むのに要する時間は様々であり、図２４では、媒介変数ｓの増加を時間ｔの進行に換算して横軸に表している。そして、媒介変数時間関数導出部１８は、以下のようにして各ブロックの媒介変数ｓの速度ｄｓ／ｄＴの上限値を求めることによって媒介変数速度上限関数を求める。
【０１３１】
媒介変数時間関数導出部１８は、対象とするブロックがメモリ５に姿勢調整情報として登録されていない区間に該当する場合には、局部補間後先端パス及び局部補間後上空パスに基づいて、その対象とするブロック内の所定の媒介変数ｓａの点とその点の近傍の前後２点ずつの合計５点（ｓａ−２ｅ，ｓａ−ｅ，ｓａ，ｓａ＋ｅ，ｓａ＋２ｅ）における局部補間後先端パス上の各先端点の位置座標及びその各先端点から局部補間後上空パス上の対応する上空点へ向かう各工具軸ベクトルを求め、その求めた各先端点の位置座標及び各工具軸ベクトルから移送軸座標算出関数を用いて前記５点（ｓａ−２ｅ，ｓａ−ｅ，ｓａ，ｓａ＋ｅ，ｓａ＋２ｅ）における各移送軸座標ｋｐ［ｉ］［］（ｉ＝０，１，２，３，４）を求める。
【０１３２】
また、媒介変数時間関数導出部１８は、対象とするブロックがメモリ５に姿勢調整情報として登録されている区間に該当し且つその区間について方向特定関数Ｃ（ｓ）がメモリ５に登録されている場合には、対象とするブロック内の所定の媒介変数ｓａの点とその点の近傍の前後２点ずつの合計５点（ｓａ−２ｅ，ｓａ−ｅ，ｓａ，ｓａ＋ｅ，ｓａ＋２ｅ）における局部補間後先端パス上の各先端点の位置座標を求めるとともに、その区間の方向特定関数Ｃ（ｓ）を用いて前記５点の媒介変数位置に対応する方向特定角度を求め、前記求めた各先端点を前記特定平面へ射影した射影先端点を通り且つ基準方向に対して前記求めた各方向特定角度を成す直線が射影上空パスと交差する各交点に対応する局部補間後上空パス上の各上空点の位置座標を求める。そして、前記５点（ｓａ−２ｅ，ｓａ−ｅ，ｓａ，ｓａ＋ｅ，ｓａ＋２ｅ）の媒介変数位置に対応する各先端点からこの求めた各上空点のうちの対応する点へ向かう工具軸ベクトルをそれぞれ求める。また、媒介変数時間関数導出部１８は、対象とするブロックがメモリ５に姿勢調整情報として登録されている区間に該当し且つその区間について先端上空対応調整関数Ｓ（ｓ）がメモリ５に登録されている場合には、対象とするブロック内の所定の媒介変数ｓａの点とその点の近傍の前後２点ずつの合計５点（ｓａ−２ｅ，ｓａ−ｅ，ｓａ，ｓａ＋ｅ，ｓａ＋２ｅ）における局部補間後先端パス上の各先端点の位置座標を求めるとともに、対象とするブロックが該当する区間についての先端上空対応調整関数Ｓ（ｓ）に基づいてその５点の媒介変数に対応する局部補間後上空パスについての５点の媒介変数を求めてその求めた５点の媒介変数に対応する局部補間後上空パス上の上空点の位置座標を求め、前記５点（ｓａ−２ｅ，ｓａ−ｅ，ｓａ，ｓａ＋ｅ，ｓａ＋２ｅ）に対応する各先端点から５点の媒介変数に対応する局部補間後上空パス上の各上空点へ向かう工具軸ベクトルをそれぞれ求める。そして、媒介変数時間関数導出部１８は、以上のように求めた各先端点の位置座標及び各工具軸ベクトルから移送軸座標算出関数を用いて５点（ｓａ−２ｅ，ｓａ−ｅ，ｓａ，ｓａ＋ｅ，ｓａ＋２ｅ）における各移送軸座標ｋｐ［ｉ］［］（ｉ＝０，１，２，３，４）を求める。
【０１３３】
なお、前記ｅは、媒介変数における微小距離を示すパラメータである。また、ｉ＝０は点（ｓａ−２ｅ）に、ｉ＝１は点（ｓａ−ｅ）に、ｉ＝２は点ｓａに、ｉ＝３は点（ｓａ＋ｅ）に、ｉ＝４は点（ｓａ＋２ｅ）にそれぞれ対応している。また、［］は、各移送軸それぞれについての値であることを意味する。
【０１３４】
そして、媒介変数時間関数導出部１８は、下記式（１６）によって点（ｓａ−ｅ）における移送軸パスの媒介変数による一次微分の近似値ｄｓ１［ａｘ］を求め、下記式（１７）によって点（ｓａ＋ｅ）における移送軸パスの媒介変数による一次微分の近似値ｄｓ２［ａｘ］を求め、この求めた２つの近似値ｄｓ１［ａｘ］，ｄｓ２［ａｘ］と下記式（１８）を用いて前記媒介変数ｓａに対応する点における移送軸パスの媒介変数による二次微分の近似値ｄｄｓｓ［ａｘ］を求める。なお、ａｘは、各移送軸を表すインデックスである。
【０１３５】
ｄｓ１［ａｘ］＝（ｋｐ［２］［ａｘ］−ｋｐ［０］［ａｘ］）／２ｅ・・・（１６）
ｄｓ２［ａｘ］＝（ｋｐ［４］［ａｘ］−ｋｐ［２］［ａｘ］）２ｅ・・・（１７）
ｄｄｓｓ［ａｘ］＝（ｄｓ２［ａｘ］−ｄｓ１［ａｘ］）／２ｅ・・・（１８）
仮に、媒介変数ｓａの点を等速度ｖで通過するとした場合には、各移送軸毎の加速度ａ［］は、ｖ２×ｄｄｓｓ［］で近似できることから、記憶部４に記憶されている加減速条件中の各移送軸毎の許容加速度をＡ［］とすると、媒介変数時間関数導出部１８は、対象とするブロックの速度上限値ｖｍを次式（１９）によって求める。
【０１３６】
ｖｍ＝（Ａ［ａｘ］／ｄｄｓｓ［ａｘ］）１／２・・・（１９）
そして、媒介変数時間関数導出部１８は、このようにして求めた各移送軸毎の対応するブロックの速度上限値ｖｍと加工プログラムに含まれる速度指令のうちそのブロックに対応する速度との中で最も低い値をそのブロックの媒介変数ｓの速度ｄｓ／ｄＴの上限値とする。媒介変数時間関数導出部１８は、全てのブロックの媒介変数ｓの速度ｄｓ／ｄＴの上限値を以上のような方法でそれぞれ求め、その求めた各ブロックの上限値を繋いで媒介変数速度上限関数を求める。
【０１３７】
次に、媒介変数時間関数導出部１８は、記憶部４に記憶された加減速条件に含まれる媒介変数ｓの許容速度、許容加速度及び許容ジャークに基づいて、媒介変数速度上限関数が表す階段状速度曲線を超えないように連続変化する加減速曲線ｄｓ（Ｔ）／ｄTを求め、その求めた加減速曲線ｄｓ（Ｔ）／ｄＴを基準時刻Ｔで積分することにより媒介変数時間関数ｓ（Ｔ）を算出する。
【０１３８】
具体的には、媒介変数時間関数導出部１８は、まず、加減速曲線ｄｓ（Ｔ）／ｄＴのうちの加速領域の速度曲線（速度関数）を始点側から終点側へ向かって所定の時刻区間毎にその時刻区間の時刻区間幅ｔｓとともに順次求めてメモリ５に登録していく。この時、媒介変数時間関数導出部１８は、それまでにメモリ５に登録した速度曲線の最終点（ｓ１，ｆ１，ｔ１）から目標点（ｓ２，ｆ２）として設定したブロックの終点へ到達する過程でその最終点における速度ｆ１がそのブロックの速度ｄｓ／ｄＴの上限値（速度上限値ｆ２）まで上昇し得るような速度曲線を各時刻区間毎にその区間の時刻区間幅ｔｓとともに求める。なお、このとき求められる速度曲線の形態は、前記最終点と目標点との媒介変数の差（ｓ２−ｓ１）、前記最終点における速度ｆ１、速度上限値ｆ２、前記最終点における加速度ａ１、許容加速度及び許容ジャーク等の条件によって異なる。その各条件に応じた速度曲線の求め方が図２５〜図３１に示されている。
【０１３９】
図２５及び図２６には、最終点（ｓ１，ｆ１，ｔ１）から目標点（ｓ２，ｆ２）に達する前に速度が速度上限値ｆ２に達する場合が示されている。なお、ｔ２は、ｓ２に到達したときの時刻である。具体的には、図２５は、最終点（ｓ１，ｆ１，ｔ１）から許容ジャークに従って加速度がａ１から許容加速度まで増加するように速度をｆ１から上昇させ（時刻区間ｔｓ１）、その後、許容加速度に等しい加速度で速度が上昇し（時刻区間ｔｓ２）、その後、速度が速度上限値ｆ２を超えないように許容ジャークに従って加速度を低下させて速度が速度上限値ｆ２に達し（時刻区間ｔｓ３）、その後、速度上限値ｆ２に等しい速度で目標点（ｓ２，ｆ２）に到達する（時刻区間ｔｓ４）という形態の速度曲線を示しており、媒介変数時間関数導出部１８は、このような条件に従って各時刻区間毎の速度曲線（速度関数）をその各区間の時刻区間幅ｔｓ１〜ｔｓ４とともに算出し、その算出した速度曲線を対応する時刻区間とともにメモリ５に登録する。また、図２６は、最終点（ｓ１，ｆ１，ｔ１）から許容ジャークに従って加速度がａ１から増加するように速度をｆ１から上昇させる（時刻区間ｔｓ５）が、速度上限値ｆ２が近いため、速度が許容加速度に達する前に許容ジャークに従って加速度を低下させて速度上限値ｆ２に達し（時刻区間ｔｓ６）、その後、速度上限値ｆ２に等しい速度で目標点（ｓ２，ｆ２）に到達する（時刻区間ｔｓ７）という形態の速度曲線を示しており、媒介変数時間関数導出部１８は、このような条件に従って各時刻区間毎の速度曲線（速度関数）をその各区間の時刻区間幅ｔｓ５〜ｔｓ７とともに算出し、その算出した速度曲線を対応する時刻区間とともにメモリ５に登録する。
【０１４０】
また、図２７〜図２９には、許容ジャークに従って加速度が低下している途中に目標点（ｓ２，ｆ２）に達する場合が示されている。具体的には、図２７は、最終点（ｓ１，ｆ１，ｔ１）から許容ジャークに従って加速度がａ１から増加するように速度をｆ１から上昇させる（時刻区間ｔｓ８）が、最終点から目標点（ｓ２，ｆ２）までの距離（ｓ２−ｓ１）が小さいため、速度が許容加速度に達する前に、許容ジャークに従って加速度を低下させて速度が速度上限値ｆ２に達するとともに目標点（ｓ２，ｆ２）に到達する（時刻区間ｔｓ９）という形態の速度曲線を示しており、媒介変数時間関数導出部１８は、このような条件に従って各時刻区間毎の速度曲線（速度関数）をその各区間の時刻区間幅ｔｓ８，ｔｓ９とともに算出し、その算出した速度曲線を対応する時刻区間とともにメモリ５に登録する。また、図２８は、最終点（ｓ１，ｆ１，ｔ１）から許容ジャークに従って加速度がａ１から許容加速度まで増加するように速度をｆ１から上昇させ（時刻区間ｔｓ１０）、その後、許容加速度に等しい加速度で速度が上昇し（時刻区間ｔｓ１１）、その後、速度が速度上限値ｆ２を超えないように許容ジャークに従って加速度を低下させている途中で目標点（ｓ２，ｆ２）に到達する（時刻区間ｔｓ１２）という形態の速度曲線を示しており、媒介変数時間関数導出部１８は、このような条件に従って各時刻区間毎の速度曲線（速度関数）をその各区間の時刻区間幅ｔｓ１０〜ｔｓ１２とともに算出し、その算出した速度曲線を対応する時刻区間とともにメモリ５に登録する。また、図２９は、最終点（ｓ１，ｆ１，ｔ１）から目標点（ｓ２，ｆ２）までが非常に近いとともにその最終点における速度ｆ１と速度上限値ｆ２とが非常に近く、且つ、最終点における加速度ａ１が大きいため、その最終点から許容ジャークに従って加速度をａ１から低下させながら速度がｆ１から上昇して速度上限値ｆ２に達するとともに目標点（ｓ２，ｆ２）に到達する（時刻区間ｔｓ１３）という形態の速度曲線を示しており、媒介変数時間関数導出部１８は、このような条件に従って時刻区間幅ｔｓ１３とともにその区間の速度曲線（速度関数）を算出し、その算出した速度曲線を時刻区間ｔｓ１３とともにメモリ５に登録する。
【０１４１】
また、図３０には、媒介変数ｓが目標点に対応する値ｓ２に達しても速度上限値ｆ２まで速度を上げることができない場合が示されている。媒介変数時間関数導出部１８は、速度曲線を算出していてこのような場合に該当する場合には、その算出した速度曲線をメモリ５に登録しない。
【０１４２】
また、図３１には、最終点（ｓ１，ｆ１，ｔ１）における速度ｆ１と速度上限値ｆ２が非常に接近しているとともにその最終点における加速度ａ１が比較的大きいため、最終点（ｓ１，ｆ１，ｔ１）から許容ジャークに従って加速度を低下させても速度が速度上限値ｆ２を超えてしまう場合が示されている。媒介変数時間関数導出部１８は、速度曲線の算出に際してこのような場合に該当する場合には、１つ前にメモリ５に登録された速度曲線のデータを取り消すとともに、さらにその１つ前にメモリ５に登録された速度曲線の最終点から今回の目標点に至り、且つ、速度が今回の目標点に対応する速度上限値に達し得るような速度曲線を求めるための再計算を行う。この場合の再計算の方法は、上記各場合と同様である。
【０１４３】
そして、媒介変数時間関数導出部１８は、上記のような速度曲線の算出と登録を順次行う。媒介変数時間関数導出部１８は、求めた速度曲線をメモリ５に登録する際、併せて、目標点に到達時の時刻ｔ２及び加速度ａ２をメモリ５に登録しておき、次の目標点を設定して速度曲線を算出するときには、その登録した時刻ｔ２を最終点における時刻ｔ１として用いるとともにその登録した加速度ａ２を最終点における加速度ａ１として用いて次の速度曲線を算出する。このように最終点における速度に対して次の目標点に対応する速度上限値が小さくなるまで求めた速度曲線によって、加減速曲線のうち加速領域の速度曲線が得られる。
【０１４４】
次に、媒介変数時間関数導出部１８は、加減速曲線のうちの減速領域についてパスの終点側から始点側へ向かって上記と同様の速度曲線の算出と登録を順次行い、それによってその減速領域の速度曲線を求める。そして、媒介変数時間関数導出部１８は、求めた加速領域の速度曲線の終点と減速領域の速度曲線の始点を繋ぎ合わせることによって加減速曲線ｄｓ（Ｔ）／ｄＴを求める。そして、媒介変数時間関数導出部１８は、その求めた加減速曲線ｄｓ（Ｔ）／ｄＴを基準時刻Ｔで積分することにより媒介変数時間関数ｓ（Ｔ）を算出する。
【０１４５】
次に、移送指令導出部２０による基準時刻Ｔの導出及びパルス補間と、制御部２２によるテーブル移送装置１０２及び各移送部１１０ｂ，１１２ｂ，１１４ｂ，１１６ｂへのパルス出力が行われる（図３のステップＳ７）。
【０１４６】
このステップＳ７の詳細なプロセスは、図６のフローチャートに示されている。このプロセスでは、まず、移送指令導出部２０は、基準時刻Ｔが上記ステップＳ６で求められた媒介変数時間関数の始点となる時刻に合うように当該基準時刻Ｔを初期セットするとともに、現在の各移送軸の位置座標をｏｌｄｐ［］に設定する（図６のステップＳ５６）。
【０１４７】
次に、移送指令導出部２０は、初期セットした基準時刻Ｔに対応する媒介変数位置ｓを求める（ステップＳ５８）。具体的には、移送指令導出部２０は、媒介変数時間関数導出部１８によって求められた媒介変数時間関数ｓ（Ｔ）を用いて、初期セットした基準時刻Ｔに対応する媒介変数位置ｓを求める。
【０１４８】
次に、移送指令導出部２０は、求めた媒介変数位置ｓに対応する各移送軸座標ｎｅｗｐ［］を移送軸座標算出関数を用いて求める（ステップＳ６０）。当該ステップの詳細なプロセスは、図７のフローチャートに示されている。
【０１４９】
具体的には、移送指令導出部２０は、上記ステップＳ５８で導出された媒介変数位置ｓがメモリ５に登録されている姿勢調整情報の区間内の媒介変数であるか否かを判断する（ステップＳ７６）。ここで、移送指令導出部２０は、上記ステップＳ５８で導出された媒介変数位置ｓがメモリ５に登録されている区間内の媒介変数であると判断した場合には、次に、その媒介変数位置ｓが該当した区間に対応する姿勢調整情報として先端上空対応調整関数Ｓ（ｓ）がメモリ５に登録されているか否かを判断する（ステップＳ７８）。ここで、移送指令導出部２０は、その区間に対応する姿勢調整情報として先端上空対応調整関数Ｓ（ｓ）がメモリ５に登録されていないと判断した場合には、次に、上記ステップＳ５８で導出された媒介変数位置ｓに対応させる局部補間後上空パスについての媒介変数位置として、その区間に対応する方向特定関数Ｃ（ｓ）に基づいて調整した局部補間後上空パス上の上空点の媒介変数ｓｓを求める（ステップＳ８０）。具体的には、移送指令導出部２０は、その区間に対応する姿勢調整情報に含まれる方向特定関数Ｃ（ｓ）を用いて上記ステップＳ５８で導出された媒介変数位置ｓに対応する制御ラインと基準方向との間の角度である方向特定角度を求め、上記ステップＳ５８で導出された媒介変数位置ｓに対応する局部補間後先端パス上の先端点を前記特定平面へ射影した射影先端点を通り且つ前記基準方向に対して前記求めた方向特定角度を成す直線が射影上空パスと交差する交点に対応する局部補間後上空パス上の上空点についての媒介変数ｓｓを算出する。
【０１５０】
次に、移送指令導出部２０は、上記ステップＳ８０で求めた方向特定角度Ｃ（ｓ）±ｎ×１８０度（ｎ＝０，１，２，３，・・・）で求められる各角度の中から、上記ステップＳ５６で設定された移送軸座標ｏｌｄｐ［］のうちの回動移送軸座標（Ｃ軸座標ｏｌｄｐ［Ｃｉ］）に最も近い角度を回動軸座標候補値に設定する（ステップＳ８２）。
【０１５１】
次に、移送指令導出部２０は、上記ステップＳ５８で導出された媒介変数位置ｓに対応する局部補間後先端パス上の先端点ｐ（ｓ）の基準座標系での座標と、この先端点ｐ（ｓ）から上記ステップＳ８０で求めた媒介変数ｓｓに対応する上空点Ｐ（ｓｓ）へ向かう工具軸ベクトルとからなる工具位置を求める（ステップＳ８４）。
【０１５２】
そして、移送指令導出部２０は、求めた工具位置に対応する各移送軸の位置座標ｎｅｗｐ［］を算出する（ステップＳ８６）。具体的には、移送指令導出部２０は、工具１０６の先端点がステップＳ８４で求めた先端点ｐ（ｓ）の位置座標に配置され、且つ、その工具１０６の工具軸ベクトル（軸心）がステップＳ８４で求めた工具軸ベクトルに一致するような位置及び姿勢を工具１０６に取らせるために、テーブル移送装置１０２がテーブル１０１ａを、揺動支持体移送部１１０ｂが揺動支持体１１０ａを、回動支持体移送部１１２ｂが回動支持体１１２ａを、ラム移送部１１４ｂがラム１１４ａを、サドル移送部１１６ｂがサドル１１６ａをそれぞれ対応する移送軸上で配置する位置座標を算出する。なお、工具位置が特異点に該当する場合には、Ｃ軸座標は不定となるため、移送指令導出部２０は、上記ステップＳ８２で求めた回動軸座標候補値をＣ軸座標とする。
【０１５３】
上記ステップＳ７８において、移送指令導出部２０は、上記ステップＳ５８で導出した媒介変数位置ｓが含まれる区間に対応する姿勢調整情報として先端上空対応調整関数Ｓ（ｓ）がメモリ５に登録されていると判断した場合には、上記ステップＳ５８で導出した媒介変数位置ｓに対応させる局部補間後上空パスについての媒介変数ｓｓ（上空点特定用媒介変数）を、その区間に対応する先端上空対応調整関数Ｓ（ｓ）に基づいて求める（ステップＳ８８）。すなわち、移送指令導出部２０は、上記ステップＳ５８で導出した媒介変数ｓを先端上空対応調整関数Ｓ（ｓ）に代入して得た値を当該媒介変数ｓｓとする。
【０１５４】
次に、移送指令導出部２０は、上記ステップＳ５８で導出した媒介変数位置ｓが含まれる区間に対応する姿勢調整情報として方向特定関数Ｃ（ｓ）がメモリ５に登録されているか否かを判断する（ステップＳ９０）。ここで、移送指令導出部２０は、その区間に対応する姿勢調整情報として方向特定関数Ｃ（ｓ）がメモリ５に登録されていると判断した場合には、上記ステップＳ８２以降の処理を行う。一方、移送指令導出部２０は、その区間に対応する姿勢調整情報として方向特定関数Ｃ（ｓ）がメモリ５に登録されていないと判断した場合には、次に、上記ステップＳ５６で設定された移送軸座標ｏｌｄｐ［］のうちの回動移送軸座標（Ｃ軸座標ｏｌｄｐ［Ｃｉ］）に等しい角度に回動軸座標候補値を設定し（ステップＳ９２）、その後、上記ステップＳ８４，Ｓ８６の処理を行う。
【０１５５】
また、移送指令導出部２０は、上記ステップＳ７６において、上記ステップＳ５８で導出した媒介変数位置ｓがメモリ５に登録されている区間内の媒介変数ではないと判断した場合には、上記ステップＳ５８で導出した媒介変数位置ｓに対応する局部補間後上空パス上の上空点についての媒介変数位置ｓｓとして、上記ステップＳ５８で導出した媒介変数位置ｓに等しい位置（媒介変数）を設定し（ステップＳ９４）、その後、上記ステップＳ９２の処理を行う。
【０１５６】
次に、移送指令導出部２０は、以上のようにして求めた各移送軸毎の位置座標ｎｅｗｐ［］を旧座標ｏｌｄｐ［］とする（図６のステップＳ６２）。
【０１５７】
次に、移送指令導出部２０は、上記ステップＳ５６で初期セットした基準時刻Ｔに基準単位時間ｄＴを加算して新たな基準時刻Ｔを求める（ステップＳ６４）。
【０１５８】
次に、移送指令導出部２０は、新たな基準時刻Ｔに対応する媒介変数位置ｓを上記ステップＳ５８と同様にして求め（ステップＳ６６）、その求めた媒介変数位置ｓに対応する各移送軸上の位置座標ｎｅｗｐ［］を求める（ステップＳ６８）。当該ステップＳ６８では、移送指令導出部２０は、基本的には、上記ステップＳ６０のと同様、ずなわち、図７のフローチャートに従って各移送軸上の位置座標ｎｅｗｐ［］を求める。ただし、当該ステップＳ６８において上記ステップＳ８２に対応するプロセスで回動軸座標候補値を求めるときには、上記ステップＳ６２で設定した旧座標ｏｌｄｐ［］のＣ軸座標ｏｌｄｐ［Ｃｉ］に最も近い角度を回動軸座標候補値とし、上記ステップＳ９２に対応するプロセスで回動軸座標候補値を求めるときには、上記ステップＳ６２で設定した旧座標ｏｌｄｐ［］のＣ軸座標ｏｌｄｐ［Ｃｉ］に等しい角度に回動軸座標候補値を設定する。
【０１５９】
次に、移送指令導出部２０は、指令パルスを算出する（ステップＳ７０）。具体的には、移送指令導出部２０は、ステップＳ６８で求めた各移送軸毎の位置座標ｎｅｗｐ［］から上記ステップＳ６２で設定された各移送軸毎の旧座標ｏｌｄｐ［］の対応するものを差し引くことによって、基準単位時間ｄＴ当たりの各移送軸における位置座標の変化量、すなわち各移送軸についての移送対象物の基準単位時間ｄＴ当たりの移送量を求め、その求めた移送量を実時刻の単位時間毎（前記特定周期毎）の指令パルスとする。
【０１６０】
その後、制御部２２が、テーブル移送装置１０２及び各移送部１１０ｂ，１１２ｂ，１１４ｂ，１１６ｂのサーボモータへ、移送指令導出部２０によって求められた前記特定周期当たりの指令パルスのうち対応する移送軸についての移送量を示す指令パルスを出力する（ステップＳ７２）。これにより、テーブル移送装置１０２はテーブル１０１ａを、揺動支持体移送部１１０ｂは揺動支持体１１０ａを、回動支持体移送部１１２ｂは回動支持体１１２ａを、ラム移送部１１４ｂはラム１１４ａを、サドル移送部１１６ｂはサドル１１６ａを、それぞれ制御部２２からの指令パルスが示す移送量の分だけ、前記特定周期当たりに対応する移送軸に沿って動かす。
【０１６１】
次に、移送指令導出部２０は、シャットダウンの処理を行うか否かを判断する（ステップＳ７４）。ここで、移送指令導出部２０がシャットダウンの処理を行うと判断した場合には、シャットダウンの処理が実行されて本実施形態の数値制御プロセスは終了し、移送指令導出部２０がシャットダウンを行わないと判断した場合には、上記ステップＳ６２以降の処理が繰り返し行われる。再度行われるステップＳ６２では、移送指令導出部２０は、上記ステップＳ６８で求めた各移送軸毎の位置座標ｎｅｗｐ［］を旧座標ｏｌｄｐ［］に設定する。
【０１６２】
以上のようにして、本実施形態の数値制御装置２による制御プロセスが行われる。
【０１６３】
以上説明したように、本実施形態では、姿勢調整情報導出部１６が、媒介変数の増分に対する射影工具軸ベクトルの向きの変化率が一定の変化率を超える姿勢調整箇所の前後に亘る姿勢調整区間において射影工具軸ベクトルの向きの変化が緩やかになる方向に工具１０６の姿勢を調整するための姿勢調整情報を求め、移送指令導出部２０が、姿勢調整区間内の媒介変数に対応する局部補間後先端パス上の先端点からその先端点に対応する相対的な位置関係を姿勢調整情報に基づいて射影工具軸ベクトルの向きの変化が緩やかになる方向に調整した局部補間後上空パス上の上空点へ向かう工具軸ベクトルを求めて、姿勢調整区間内についてはこの求めた工具軸ベクトルと先端点の位置座標に基づいて指令パルスを導出するため、姿勢調整箇所において射影工具軸ベクトルの向きが急変するのを防ぐことができる。この射影工具軸ベクトルの向きは、Ａ軸方向と対応しているので、本実施形態によれば、回動装置１１２が揺動装置１１０、主軸ヘッド１０８及び工具１０６をテーブル１０１ａに対して急回転させるのを防ぐことができる。その結果、この急回転に起因するワークの加工精度の低下及び機械ショックの発生を抑制することができる。
【０１６４】
また、本実施形態では、移送指令導出部２０が、姿勢調整区間内の媒介変数に対応する先端点の位置座標を先端パス上で求めるとともに、その先端点から当該先端点に対する相対的な位置関係を射影工具軸ベクトルの向きの変化が緩やかになる方向に姿勢調整情報に基づいて調整した上空パス上の上空点へ向かう工具軸ベクトルを求め、その求めた先端点の位置座標及び工具軸ベクトルに基づいて指令パルスを導出するため、姿勢調整区間における射影工具軸ベクトルの向きの変化が緩やかになるように調整した後でも、工具１０６の姿勢が先端パス上の各先端点とその各先端点に対応する上空パス上の各上空点とを繋いだ曲面に対して垂直な方向に振れるのを抑制することができる。このことによっても、ワークの加工精度の低下を抑制することができる。
【０１６５】
また、本実施形態では、特に、前記特定平面に垂直な方向から見て局部補間後先端パスが示す軌跡と局部補間後上空パスが示す軌跡が交差する交点を通過する時に、特定平面に垂直な方向から見て工具の先端点と上空点が重なるような姿勢、すなわち工具軸ベクトルが特定平面に対して垂直となる姿勢を工具１０６に取らせることができ、当該交点を通過する過程で工具１０６及び揺動装置１１０がテーブル１０１ａに対して相対的に急回転するのを有効に防ぐことができる。具体的には、本実施形態のように前記交点において工具軸ベクトルが特定平面に対して垂直となる姿勢を工具１０６に取らせれば、特定平面に垂直な方向から見て先端点と上空点が交点に近づくにつれて互いに接近し、交点の通過後、互いに離れていくという動作を、交点の通過時にＡ軸方向における工具１０６の傾きを逆向きに変化するように揺動装置１１０に工具１０６を揺動させることで実現することができる。その結果、前記交点の通過時に工具１０６及び揺動装置１１０がＣ軸方向に急回転するのを防ぐことができる。
【０１６６】
また、本実施形態では、区間タイプ１に該当する区間については、制御ラインと基準方向との間の角度が均等な割合で変化するように当該区間内の各媒介変数に対応する制御ラインと基準方向との間の角度が求められて、その角度に基づいて先端点に対する上空点の位置関係が調整された工具軸ベクトルが求められる。そして、この工具軸ベクトルに基づいて指令パルスが求められ、その指令パルスに応じて移送対象物の移送が行われるため、回動装置１１２によってテーブル１０１ａに対して相対的に回動される工具１０６及び揺動装置１１０の回動角度の変化を直接的に緩やかな変化にすることができる。このため、当該区間については、確実に工具１０６及び揺動装置１１０の回動角度の変化を緩やかにすることができる。
【０１６７】
また、本実施形態では、工具軸ベクトルが特定平面に対して垂直となる特異点について、方向特定関数Ｃ（ｓ）から求めた方向特定角度を当該特異点におけるＣ軸座標として用いるため、当該特異点においてＣ軸座標が一意的に定まり、不定状態を解消することができる。しかも、この特異点の方向特定角度は、対象とする区間において制御ラインと基準方向との間の角度を均等な割合で変化させる方向特定関数から求められるので、その対象区間において射影工具軸ベクトルの向きを緩やかに変化させるという条件を満たす。このため、本実施形態では、区間タイプ１に該当する区間において、特異点における回動移送軸方向の位置座標の不定状態を解消しつつ、工具１０６及び回動装置１１２の向きを緩やかに変化させることができる。
【０１６８】
また、本実施形態では、区間タイプ２に該当する区間については、当区間の始点から局部補間後先端パスに沿った先端点の移動距離と当該区間の始点から局部補間後上空パスに沿った上空点の移動距離とが常に一定の比率に維持された状態で工具１０６の先端点と上空点を移動させることができる。このため、先端点に対して遅れていた上空点が先端点を急に追い越すような工具１０６の姿勢変化や、その逆のような工具１０６の姿勢変化が生じるのを防ぐことができ、回動装置１１２がそのような工具１０６の姿勢変化を実現するために工具１０６及び揺動装置１１０をテーブル１０１ａに対して相対的に大きく急回転させるのを防ぐことができる。
【０１６９】
また、本実施形態では、パス補間部１４のパス局部フィルタ１４ｂの局部補間部１４ｃによる補間前先端パス及び補間前上空パスの局部補間によって、補間前先端パス及び補間前上空パスにおいて媒介変数による一次微分値が不連続になっていることにより速度が不連続になっている点を速度が連続するように補間することができ、補間前先端パス及び補間前上空パスにおいて媒介変数による二次微分値が不連続になっていることにより加速度が不連続になっている点を加速度が連続するように補間することができる。このため、補間前先端パス及び補間前上空パス中の異常データ等により媒介変数による微分値が不連続になっていてそのことに起因して急激な速度変化や加速度変化が生じる箇所について、その急激な速度変化や加速度変化を抑制し、当該箇所における機械ショックの発生を抑制できる。しかも、本実施形態では、移送指令導出部２０が各移送軸についての指令パルスを導出する前に、補間前先端パス及び補間前上空パスのうち微分値が不連続になっている箇所を補間してそれらのパスから機械ショックの要因を取り除くことができる。このため、移送指令導出部２０が指令パルスを導出した後、その指令パルスのうち機械ショックの要因となる箇所を補間するような加減速処理を不要とすることができる。
【０１７０】
また、本実施形態では、補間前パス導出部１３が、加工プログラムに含まれるワーク座標系ツールパスを読み取り、その読み取ったワーク座標系ツールパスをワーク設置情報に基づいて基準座標系上のパスに変換することによって基準座標系ツールパスを導出し、その導出した基準座標系ツールパスに基づいて補間前先端パス及び補間前上空パスを導出するため、基準座標系に対してワーク座標系が傾くような姿勢でワーク１００がテーブル１０１ａ上に設置された場合でも、そのワーク１００の姿勢に応じた姿勢調整箇所の位置を的確に特定して、その姿勢調整箇所近傍の動作におけるテーブル１０１ａに対する工具１０６及び揺動装置１１０の急回転を防止することができる。
【０１７１】
なお、今回開示された実施形態は、すべての点で例示であって制限的なものではないと考えられるべきである。本発明の範囲は、上記した実施形態の説明ではなく特許請求の範囲によって示され、さらに特許請求の範囲と均等の意味及び範囲内でのすべての変更が含まれる。
【０１７２】
例えば、本発明による数値制御装置は、上記実施形態で示した工作機械以外の各種工作機械に適用することが可能である。例えば、機械テーブルが回転する５軸工作機械にも、本発明による数値制御装置を適用することができる。
【０１７３】
また、数値制御装置は、パス補間部を備えていなくてもよく、加工プログラムのツールパスから求めた補間していない先端パス及び上空パスに基づいて、姿勢調整情報の導出、媒介変数時間関数の導出、指令パルスの導出を行ってもよい。
【０１７４】
また、上記実施形態では、直線型の分配関数を用いて先端パス及び上空パスの媒介変数による一次微分を分配区間へ分配したが、その分配方式に限定されるものではない。すなわち、先端パス及び上空パスの媒介変数による一次微分の分配に、直線型の分配関数以外の種々の分配関数を用いてもよい。
【０１７５】
なお、この分配に用いる分配関数は、区間［−Ａ／２，Ａ／２］における積分が１となり、且つ、その区間の中央に対して左右対称の形状を示す関数が望ましい。このような分配関数の一例として、次式で表されるベル型の分配関数ｆ（ｓ）が挙げられる。
【０１７６】
【数８】
0005417391.tif 000009
【０１７７】
なお、分配区間−Ａ／２≦ｓ≦Ａ／２の外側では、ｆ（ｓ）＝０である。
【０１７８】
このベル型の分配関数を用いた場合には、上記直線型の分配関数を用いた場合よりも補間区間をより滑らかな曲線となるように補間することができる。また、パスのうち媒介変数による一次微分が連続で二次微分が不連続な部分については、直線型の分配関数を用いて一次微分の分配を行い、パスのうち媒介変数による一次微分が不連続に変化する部分については、ベル型の分配関数を用いて一次微分の分配を行えば、局部補間後のパスの媒介変数による二次微分の変化の連続性を保障することができる。
【０１７９】
また、上記実施形態では、方向特定関数Ｃ（ｓ）を一次関数として算出したが、姿勢調整区間の始点及び終点における制御ラインの角度の媒介変数による一次微分及び二次微分を近似的に算出して、その算出した微分に基づいて、姿勢調整区間の始点でその前後の方向特定関数が滑らかに繋がり、且つ、姿勢調整区間の終点でその前後の方向特定関数が滑らかに繋がるような方向特定関数を求めることが好ましい。
【０１８０】
また、姿勢調整情報導出部は、射影先端パスが示す軌跡と射影上空パスが示す軌跡とが互いに離れていて且つ特定平面における射影工具軸ベクトルと基準方向との間の角度の媒介変数の増分に対する変化率が一定の変化率を超える姿勢調整箇所が先端パス及び上空パスに存在する場合（図１６に示すような場合）において、その姿勢調整箇所の前後に亘る姿勢調整区間を区間タイプ２に該当すると判別するとともにその姿勢調整区間について先端上空対応調整関数Ｓ（ｓ）を導出し、移送指令導出部は、その先端上空対応調整関数Ｓ（ｓ）に基づいて当該姿勢調整区間において射影工具軸ベクトルの向きが緩やかになる方向に調整した工具軸ベクトルを求めてもよい。
【０１８１】
また、前記分配区間幅及び前記補間区間幅の導出方法は、上記した方法に限定されるものではなく、上記方法以外の種々の導出方法により分配区間幅及び補間区間幅を求めてもよい。また、上記実施形態では、補間区間幅を分配区間幅に等しい大きさの区間幅としたが、補間区間幅はこのような区間幅に限定されない。すなわち、補間区間幅は、分配区間幅よりも大きい区間幅であってもよい。
【０１８２】
また、パスの局部補間においては、補間区間内の補間対象点において必ずしも媒介変数による二次微分値が連続となるように補間する必要はない。例えば、パスの補間区間内の補間対象点において媒介変数による一次微分値は連続となるが、二次微分値は依然不連続である状態にその補間区間を局部補間してもよい。
【０１８３】
また、滑らか補間後のパスにおいて媒介変数による二次微分値が上限値を超える区間が一定区間連続して存在する場合には、その一定区間分だけ分配区間を広げた区間を補間区間としてもよい。
【０１８４】
また、姿勢調整情報導出部は、方向特定関数Ｃ（ｓ）を導出してメモリに登録した場合には、媒介変数時間関数の導出時における媒介変数時間関数導出部の演算負荷及び指令パルスの導出時（パルス補間時）における移送指令導出部の演算負荷を軽減するために、その方向特定関数Ｃ（ｓ）を導出した区間の先端上空対応調整関数Ｓ（ｓ）を、その方向特定関数Ｃ（ｓ）と射影先端パスと射影上空パスとに基づいて導出し、この導出した関数Ｓ（ｓ）をメモリに登録してもよい。
【０１８５】
具体的には、図５に示したフローチャートにおいて、姿勢調整情報導出部が、ステップＳ４８の方向特定関数Ｃ（ｓ）の導出及び当該関数Ｃ（ｓ）のメモリへの登録の後、その方向特定関数Ｃ（ｓ）を算出した区間について先端上空対応調整関数Ｓ（ｓ）を導出し、その導出した関数Ｓ（ｓ）をメモリ５に当該区間の姿勢調整情報として追加登録するステップを追加してもよい。具体的には、姿勢調整情報導出部は、区間内の媒介変数ｓが異なる複数の点について上記ステップＳ４８で算出した方向特定関数Ｃ（ｓ）から制御ラインの角度をそれぞれ求めるとともに、その媒介変数ｓが異なる各点に対応する射影先端パス上の点を通り、且つ、前記基準方向に対して求めた制御ラインの角度を成す直線が射影上空パスと交差する交点の媒介変数Ｓをそれぞれ算出する。そして、姿勢調整情報導出部は、その算出した各媒介変数Ｓと対応する各媒介変数ｓとを対応付ける関数を先端上空対応調整関数Ｓ（ｓ）として導出し、その関数Ｓ（ｓ）を対応する区間の情報と関連付けてメモリ５に登録する。このように姿勢調整情報導出部が先端上空対応調整関数Ｓ（ｓ）を導出する場合には、媒介変数時間関数導出部では、必ず先端上空対応調整関数Ｓ（ｓ）に基づいて媒介変数時間関数の導出を行い、移送指令導出部では、必ず先端上空対応調整関数Ｓ（ｓ）に基づいて指令パルスの導出を行う。
【符号の説明】
【０１８６】
２  数値制御装置
４  記憶部
１２  パス導出部
１３  補間前パス導出部
１４  パス補間部
１６  姿勢調整情報導出部
１８  媒介変数時間関数導出部
２０  移送指令導出部
２２  制御部
１００  ワーク
１０１ａ  テーブル
１０２  テーブル移送装置（移送装置）
１０６  工具
１１０  揺動装置（移送装置）
１１２  回動装置（移送装置）
１１４  鉛直移送装置（移送装置）
１１６  水平移送装置（移送装置）
【図１】
0005417391.tif 000010
【図２】
0005417391.tif 000011
【図３】
0005417391.tif 000012
【図４】
0005417391.tif 000013
【図５】
0005417391.tif 000014
【図６】
0005417391.tif 000015
【図７】
0005417391.tif 000016
【図８】
0005417391.tif 000017
【図９】
0005417391.tif 000018
【図１０】
0005417391.tif 000019
【図１１】
0005417391.tif 000020
【図１２】
0005417391.tif 000021
【図１３】
0005417391.tif 000022
【図１４】
0005417391.tif 000023
【図１５】
0005417391.tif 000024
【図１６】
0005417391.tif 000025
【図１７】
0005417391.tif 000026
【図１８】
0005417391.tif 000027
【図１９】
0005417391.tif 000028
【図２０】
0005417391.tif 000029
【図２１】
0005417391.tif 000030
【図２２】
0005417391.tif 000031
【図２３】
0005417391.tif 000032
【図２４】
0005417391.tif 000033
【図２５】
0005417391.tif 000034
【図２６】
0005417391.tif 000035
【図２７】
0005417391.tif 000036
【図２８】
0005417391.tif 000037
【図２９】
0005417391.tif 000038
【図３０】
0005417391.tif 000039
【図３１】
0005417391.tif 000040