(57)【特許請求の範囲】
【請求項１】
主軸の位置を指示する複数の指令点及び該複数の指令点の間に設定される少なくとも一つの補間点に基づいた加工経路を設定し、前記加工経路に基づいて、前記主軸の移動を制御する制御装置であって、
隣り合う二つの前記指令点の間、隣り合う前記指令点及び補間点の間又は隣り合う二つの補間点の間の距離が閾値以下であるか否かを判定する判定部と、
該判定部にて、前記距離が前記閾値以下でないと判定した場合、隣り合う二つの前記指令点の間、隣り合う前記指令点及び補間点の間又は隣り合う二つの補間点の間に前記補間点を設定する補間点設定部と、
前記加工経路に交差する評価断面を設定する評価断面設定部と、
該評価断面設定部が設定した評価断面及び前記加工経路の複数の交点を演算する演算部と、
該演算部が演算した前記複数の交点の位置を修正する第１修正部と、
該第１修正部が修正した交点に基づいて、前記加工経路に交差する方向における前記指令点及び補間点の位置を修正する第２修正部と、
該第２修正部にて修正された補間点と前記第２修正部にて修正される前の補間点との間の第２距離が第２閾値以下であるか否かを判定する第２判定部と、
該第２判定部にて、前記第２距離が前記第２閾値以下であると判定された場合、前記第２修正部にて修正された後の補間点を削除する補間点削除部と
を備え、
前記第１修正部は、修正の対象である第一の交点の位置を、前記第一の交点の周囲にある複数の第二の交点を用いて修正することを特徴とする制御装置。
【請求項２】
主軸の位置を指示する複数の指令点及び該複数の指令点の間に設定される少なくとも一つの補間点に基づいた加工経路を設定し、前記加工経路に基づいて、前記主軸の移動を制御する制御装置であって、
隣り合う二つの前記指令点の間、隣り合う前記指令点及び補間点の間又は隣り合う二つの補間点の間の距離が閾値以下であるか否かを判定する判定部と、
該判定部にて、前記距離が前記閾値以下でないと判定した場合、隣り合う二つの前記指令点の間、隣り合う前記指令点及び補間点の間又は隣り合う二つの補間点の間に前記補間点を設定する補間点設定部と、
前記加工経路に交差する評価断面を設定する評価断面設定部と、
該評価断面設定部が設定した評価断面及び前記加工経路の複数の交点を演算する演算部と、
該演算部が演算した前記複数の交点の位置を修正する第１修正部と、
該第１修正部が修正した交点に基づいて、前記加工経路に交差する方向における前記指令点及び補間点の位置を修正する第２修正部と、
前記第２修正部にて修正された隣り合う二つの前記指令点を結ぶ線分と、前記第２修正部にて修正された隣り合う二つの前記指令点の間に位置し、前記第２修正部にて修正された補間点との間の第３距離が第３閾値以下であるか否かを判定する第３判定部と、
該第３判定部にて、前記第３距離が前記第３閾値以下であると判定された場合、前記第２修正部にて修正された補間点を削除する第２補間点削除部と
を備え、
前記第１修正部は、修正の対象である第一の交点の位置を、前記第一の交点の周囲にある複数の第二の交点を用いて修正することを特徴とする制御装置。
【請求項３】
前記補間点設定部は、
隣り合う二つの前記指令点の間、隣り合う前記指令点及び補間点の間又は隣り合う二つの補間点の間の中央に前記補間点を設定する中央設定部を備えること
を特徴とする請求項１又は２に記載の制御装置。
【請求項４】
前記補間点設定部は、
前記指令点又は補間点から前記閾値の距離分離れた位置に前記補間点を設定する離隔位置設定部を備えること
を特徴とする請求項１又は２に記載の制御装置。
【請求項５】
請求項１から４の何れか一つに記載の制御装置と、
前記主軸と
を備えることを特徴とする工作機械。
【請求項６】
主軸の位置を指示する複数の指令点及び該複数の指令点の間に設定される少なくとも一つの補間点に基づいた加工経路を設定し、前記加工経路に基づいて、前記主軸の移動を制御する制御方法であって、
隣り合う二つの前記指令点の間、隣り合う前記指令点及び補間点の間又は隣り合う二つの補間点の間の距離が閾値以下であるか否かを判定し、
前記距離が前記閾値以下であると判定した場合、隣り合う二つの前記指令点の間、隣り合う前記指令点及び補間点の間又は隣り合う二つの補間点の間に前記補間点を設定し、
前記加工経路に交差する評価断面を設定し、
設定した評価断面及び前記加工経路の複数の交点を演算し、
演算した前記複数の交点の位置を修正し、
修正した交点に基づいて、前記加工経路に交差する方向における前記指令点及び補間点の位置を修正し、
修正された補間点と修正される前の補間点との間の第２距離が第２閾値以下であるか否かを判定し、
前記第２距離が前記第２閾値以下であると判定された場合、修正された後の補間点を削除し、
前記複数の交点の位置の修正にて、修正の対象である第一の交点の位置を、前記第一の交点の周囲にある複数の第二の交点を用いて修正すること
を特徴とする制御方法。
【請求項７】
主軸の位置を指示する複数の指令点及び該複数の指令点の間に設定される少なくとも一つの補間点に基づいた加工経路を設定し、前記加工経路に基づいて、前記主軸の移動を制御する制御方法であって、
隣り合う二つの前記指令点の間、隣り合う前記指令点及び補間点の間又は隣り合う二つの補間点の間の距離が閾値以下であるか否かを判定し、
前記距離が前記閾値以下であると判定した場合、隣り合う二つの前記指令点の間、隣り合う前記指令点及び補間点の間又は隣り合う二つの補間点の間に前記補間点を設定し、
前記加工経路に交差する評価断面を設定し、
設定した評価断面及び前記加工経路の複数の交点を演算し、
演算した前記複数の交点の位置を修正し、
修正した交点に基づいて、前記加工経路に交差する方向における前記指令点及び補間点の位置を修正し、
修正された隣り合う二つの前記指令点を結ぶ線分と、修正された隣り合う二つの前記指令点の間に位置し、修正された補間点との間の第３距離が第３閾値以下であるか否かを判定し、
前記第３距離が前記第３閾値以下であると判定された場合、修正された補間点を削除し、
修正の対象である第一の交点の位置を、前記第一の交点の周囲にある複数の第二の交点を用いて修正すること
を特徴とする制御方法。
【請求項８】
加工プログラムに従って、主軸の位置を指示する複数の指令点及び該複数の指令点の間に設定される少なくとも一つの補間点に基づいた加工経路を設定し、前記加工経路に基づいて、前記主軸の移動を制御する制御装置で実行可能なコンピュータプログラムであって、
前記制御装置を、
隣り合う二つの前記指令点の間、隣り合う前記指令点及び補間点の間又は隣り合う二つ
の補間点の間の距離が閾値以下であるか否かを判定する判定部、
該判定部にて、前記距離が前記閾値以下であると判定した場合、隣り合う二つの前記指令点の間、隣り合う前記指令点及び補間点の間又は隣り合う二つの補間点の間に前記補間点を設定する補間点設定部、
前記加工経路に交差する評価断面を設定する評価断面設定部、
該評価断面設定部が設定した評価断面及び前記加工経路の複数の交点を演算する演算部、
該演算部が演算した前記複数の交点の位置を修正する第１修正部、
該第１修正部が修正した交点に基づいて、前記加工経路に交差する方向における前記指令点及び補間点の位置を修正する第２修正部、
該第２修正部にて修正された補間点と前記第２修正部にて修正される前の補間点との間の第２距離が第２閾値以下であるか否かを判定する第２判定部、及び
該第２判定部にて、前記第２距離が前記第２閾値以下であると判定された場合、前記第２修正部にて修正された後の補間点を削除する補間点削除部
として機能させ、
前記第１修正部は、修正の対象である第一の交点の位置を、前記第一の交点の周囲にある複数の第二の交点を用いて修正すること
を特徴とするコンピュータプログラム。
【請求項９】
加工プログラムに従って、主軸の位置を指示する複数の指令点及び該複数の指令点の間に設定される少なくとも一つの補間点に基づいた加工経路を設定し、前記加工経路に基づいて、前記主軸の移動を制御する制御装置で実行可能なコンピュータプログラムであって、
前記制御装置を、
隣り合う二つの前記指令点の間、隣り合う前記指令点及び補間点の間又は隣り合う二つ
の補間点の間の距離が閾値以下であるか否かを判定する判定部、
該判定部にて、前記距離が前記閾値以下であると判定した場合、隣り合う二つの前記指令点の間、隣り合う前記指令点及び補間点の間又は隣り合う二つの補間点の間に前記補間点を設定する補間点設定部、
前記加工経路に交差する評価断面を設定する評価断面設定部、
該評価断面設定部が設定した評価断面及び前記加工経路の複数の交点を演算する演算部、
該演算部が演算した前記複数の交点の位置を修正する第１修正部、
該第１修正部が修正した交点に基づいて、前記加工経路に交差する方向における前記指令点及び補間点の位置を修正する第２修正部、
前記第２修正部にて修正された隣り合う二つの前記指令点を結ぶ線分と、前記第２修正部にて修正された隣り合う二つの前記指令点の間に位置し、前記第２修正部にて修正された補間点との間の第３距離が第３閾値以下であるか否かを判定する第３判定部、及び
該第３判定部にて、前記第３距離が前記第３閾値以下であると判定された場合、前記第２修正部にて修正された補間点を削除する第２補間点削除部
として機能させ、
前記第１修正部は、修正の対象である第一の交点の位置を、前記第一の交点の周囲にある複数の第二の交点を用いて修正すること
を特徴とするコンピュータプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、工具を装着する主軸の移動を制御する制御装置、工作機械、制御方法及びコンピュータプログラムに関する。
【背景技術】
【０００２】
工作機械は、工具を装着する主軸の移動を制御する制御装置を備える。制御装置は、主軸の位置を指示する複数の指令点を設定し、加工経路を設定する。主軸に装着した工具が３次元の曲面をワークに形成する場合、制御装置は指令点間の微小線分が連続した複数の曲線を演算し、生成する。
【０００３】
例えば前後方向及び左右方向に平行な面（水平面）上に複数の曲線を生成する。複数の曲線は前後方向又は左右方向に並ぶ。制御装置は各曲線に上下方向の位置を設定する。また制御装置は、微小線分の繋ぎ目にて尖った部分が表れるので、スプライン曲線、ベジェ曲線等の滑らかな曲線に基づいて、生成した曲線を補間する。設定された各上下位置にて、補間した曲線に沿って主軸は移動し、ワークを加工する（例えば特許文献１参照）。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特許第３４６６１１１号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
しかし上述した補間を行っても、隣り合う曲線の傾きの差、制御装置での演算にて発生する量子化誤差等によって、ワーク表面に鱗状の模様が表れる。特許文献１は指令点を修正することなく、指令点間に滑らかな線となるように指令点を挿入している。従って、指令点そのものが誤っているにも関わらず、指令点を通ることになり、上述したワーク表面に鱗状の模様が表れるという問題があった。
【０００６】
本発明は斯かる事情に鑑みてなされたものであり、ワークに滑らかな曲面を形成することができる制御装置、工作機械、制御方法及びコンピュータプログラムを提供することを目的とする。
【課題を解決するための手段】
【０００７】
本発明に係る制御装置は、主軸の位置を指示する複数の指令点及び該複数の指令点の間に設定される少なくとも一つの補間点に基づいた加工経路を設定し、前記加工経路に基づいて、前記主軸の移動を制御する制御装置であって、隣り合う二つの前記指令点の間、隣り合う前記指令点及び補間点の間又は隣り合う二つの補間点の間の距離が閾値以下であるか否かを判定する判定部と、該判定部にて、前記距離が前記閾値以下でないと判定した場合、隣り合う二つの前記指令点の間、隣り合う前記指令点及び補間点の間又は隣り合う二つの補間点の間に前記補間点を設定する補間点設定部と、前記加工経路に交差する評価断面を設定する評価断面設定部と、該評価断面設定部が設定した評価断面及び前記加工経路の交点を演算する演算部と、該演算部が演算した交点の位置を修正する第１修正部と、該第１修正部が修正した交点に基づいて、前記加工経路に交差する方向における前記指令点及び補間点の位置を修正する第２修正部とを備えることを特徴とする。
【０００８】
本発明に係る制御装置は、前記補間点設定部は、隣り合う二つの前記指令点の間、隣り合う前記指令点及び補間点の間又は隣り合う二つの補間点の間の中央に前記補間点を設定する中央設定部を備えることを特徴とする。
【０００９】
本発明に係る制御装置は、前記補間点設定部は、前記指令点又は補間点から前記閾値離隔した位置に前記補間点を設定する離隔位置設定部を備えることを特徴とする。
【００１０】
本発明に係る制御装置は、前記第２修正部にて修正された補間点と前記第２修正部にて修正される前の補間点との間の第２距離が第２閾値以下であるか否かを判定する第２判定部と、該第２判定部にて、前記第２距離が前記第２閾値以下であると判定された場合、前記第２修正部にて修正された後の補間点を削除する補間点削除部とを備えることを特徴とする。
【００１１】
本発明に係る制御装置は、前記第２修正部にて修正された隣り合う二つの前記指令点を結ぶ線分と、前記第２修正部にて修正された隣り合う二つの前記指令点の間に位置し、前記第２修正部にて修正された補間点との間の第３距離が第３閾値以下であるか否かを判定する第３判定部と、該第３判定部にて、前記第３距離が前記第３閾値以下であると判定された場合、前記第２修正部にて修正された補間点を削除する第２補間点削除部とを備えることを特徴とする。
【００１２】
本発明に係る工作機械は、前述したいずれかの制御装置と、前記主軸とを備えることを特徴とする。
【００１３】
本発明に係る制御方法は、主軸の位置を指示する複数の指令点及び該複数の指令点の間に設定される少なくとも一つの補間点に基づいた加工経路を設定し、前記加工経路に基づいて、前記主軸の移動を制御する制御方法であって、隣り合う二つの前記指令点の間、隣り合う前記指令点及び補間点の間又は隣り合う二つの補間点の間の距離が閾値以下であるか否かを判定し、前記距離が前記閾値以下であると判定した場合、隣り合う二つの前記指令点の間、隣り合う前記指令点及び補間点の間又は隣り合う二つの補間点の間に前記補間点を設定し、前記加工経路に交差する評価断面を設定し、設定した評価断面及び前記加工経路の交点を演算し、演算した交点の位置を修正し、修正した交点に基づいて、前記加工経路に交差する方向における前記指令点及び補間点の位置を修正することを特徴とする。
【００１４】
本発明に係るコンピュータプログラムは、加工プログラムに従って、主軸の位置を指示する複数の指令点及び該複数の指令点の間に設定される少なくとも一つの補間点に基づいた加工経路を設定し、前記加工経路に基づいて、前記主軸の移動を制御する制御装置で実行可能なコンピュータプログラムであって、前記制御装置を、隣り合う二つの前記指令点の間、隣り合う前記指令点及び補間点の間又は隣り合う二つの補間点の間の距離が閾値以下であるか否かを判定する判定部、該判定部にて、前記距離が前記閾値以下であると判定した場合、隣り合う二つの前記指令点の間、隣り合う前記指令点及び補間点の間又は隣り合う二つの補間点の間に前記補間点を設定する補間点設定部、前記加工経路に交差する評価断面を設定する評価断面設定部、該評価断面設定部が設定した評価断面及び前記加工経路の交点を演算する演算部、該演算部が演算した交点の位置を修正する第１修正部、及び該第１修正部が修正した交点に基づいて、前記加工経路に交差する方向における前記指令点及び補間点の位置を修正する第２修正部として機能させることを特徴とする。
【００１５】
本発明においては、複数の指令点の間に補間点を設定し、指令点及び補間点に基づいて、加工経路を設定する。加工経路に交差する評価断面を設定し、評価断面と加工経路の交点の位置を修正し、修正した交点の位置に基づいて、前記加工経路に交差する方向における指令点及び補間点の位置を修正する。
【００１６】
本発明においては、隣り合う二つの指令点の間、隣り合う指令点及び補間点の間又は隣り合う二つの補間点の間の中央に、補間点を設定し、加工経路の設定を行う。
【００１７】
本発明においては、指令点又は補間点から閾値に相当する距離離隔した位置に補間点を設定し、加工経路の設定を行う。
【００１８】
本発明においては、修正前後の二つの補間点の間の第２距離が第２閾値よりも小さい場合に、修正後の補間点を削除する。補間点の削除により、加工時間及び加工プログラムの容量の増加を抑制する。
【００１９】
本発明においては、修正後の隣り合う二つの指令点を結ぶ線分と、前記二つの指令点の間に位置する修正後の補間点との間の第３距離が第３閾値よりも小さい場合に、修正後の補間点を削除する。補間点の削除により、加工時間及び加工プログラムの容量の増加を抑制する。
【発明の効果】
【００２０】
本発明に係る制御装置、工作機械、制御方法及びコンピュータプログラムにあっては、複数の指令点の間に補間点を設定し、指令点及び補間点に基づいて、加工経路を設定する。加工経路に交差する評価断面を設定し、評価断面と加工経路の交点の位置を修正し、修正した交点の位置に基づいて、前記加工経路に交差する方向における指令点及び補間点の位置を修正する。加工経路に交差する方向においても、指令点及び補間点の位置を修正することができるので、滑らかな曲面をワークに形成することができる。また指令点のみならず、指令点の間に設定した補間点をも加工経路の設定に使用するので、加工経路の精度が向上する。
【図面の簡単な説明】
【００２１】
【図１】実施の形態に係る工作機械を略示する斜視図である。
【図２】制御装置の構成を略示するブロック図である。
【図３】ワークに対する加工経路及び評価断面を略示する平面図である。
【図４】ワークに対する評価断面を略示する斜視図である。
【図５】制御装置による加工経路設定処理を説明するフローチャートである。
【図６】指令点、補間点及び加工経路を略示する模式図である。
【図７】第１の補間方法による補間点設定処理を説明するフローチャートである。
【図８】第２の補間方法による補間点設定処理を説明するフローチャートである。
【図９】指令点と、補間点と、評価断面及び加工経路の交点とを略示する模式図である。
【図１０】指令点及び補間点に共通識別子を割り当てた後の指令点と、補間点と、評価断面及び加工経路の交点とを略示する模式図である。
【図１１】交点テーブルの一例を示す概念図である。
【図１２】評価断面上における交点位置の第１の修正方法を説明する説明図である。
【図１３】評価断面上における交点位置の第２の修正方法を説明する説明図である。
【図１４】指令点及び補間点の修正方法を説明する説明図である。
【図１５】制御装置による指令点／補間点修正処理を説明するフローチャートである。
【図１６】補間点の第１の削除方法を説明する説明図である。
【図１７】第１の削除方法による補間点削除処理を説明するフローチャートである。
【図１８】補間点の第２の削除方法を説明する説明図である。
【図１９】第２の削除方法による補間点削除処理を説明するフローチャートである。
【図２０】変更例におけるワークに対する加工経路及び評価断面を略示する平面図である。
【発明を実施するための形態】
【００２２】
以下本発明を実施の形態に係る工作機械を示す図面に基づいて説明する。以下の説明では図において矢印で示す上下、左右及び前後を使用する。図１は工作機械を略示する斜視図である。
【００２３】
工作機械１００は前後に延びた矩形の基台１を備える。基台１上部の前側にワークを保持するワーク保持部３が設けてある。ワーク保持部３は左右方向を軸方向としたＡ軸及び上下方向を軸方向としたＣ軸回りに回転可能である。
【００２４】
基台１上部の後側に後述するコラム４を支持する為の支持台２が設けてある。支持台２上部に、前後方向に移動するＹ軸方向移動機構１０が設けてある。Ｙ軸方向移動機構１０は、前後に延びた二つのレール１１と、Ｙ軸螺子軸１２と、Ｙ軸モータ１３と、ベアリング１４とを備える。
【００２５】
レール１１は支持台２上部の左右夫々に設けてある。Ｙ軸螺子軸１２は前後に延び、二つのレール１１の間に設けてある。Ｙ軸螺子軸１２の前端部及び中途部夫々にベアリング１４が設けてある。なお中途部に設けたベアリングの図示は省略する。Ｙ軸モータ１３はＹ軸螺子軸１２の後端部に連結している。
【００２６】
Ｙ軸螺子軸１２には転動体（図示略）を介してナット（図示略）が螺合している。転動体は例えばボールである。各レール１１に複数の摺動子１５が摺動可能に設けてある。ナット及び摺動子１５の上部に移動板１６が連結している。移動板１６は水平方向に延びる。Ｙ軸モータ１３の回転によってＹ軸螺子軸１２は回転し、ナットは前後方向に移動し、移動板１６は前後方向に移動する。
【００２７】
移動板１６上面に左右方向に移動するＸ軸方向移動機構２０が設けてある。Ｘ軸方向移動機構２０は、左右に延びた二つのレール２１と、Ｘ軸螺子軸２２と、Ｘ軸モータ２３（図２参照）と、ベアリング２４とを備える。
【００２８】
レール２１は移動板１６上面の前後夫々に設けてある。Ｘ軸螺子軸２２は左右に延び、二つのレール２１の間に設けてある。Ｘ軸螺子軸２２の左端部及び中途部夫々にベアリング２４が設けてある。なおＸ軸螺子軸２２の中途部に設けたベアリングの記載は省略する。Ｘ軸モータ２３はＸ軸螺子軸２２の後端部に連結している。
【００２９】
Ｘ軸螺子軸２２には転動体（図示略）を介してナット（図示略）が螺合している。Ｘ軸螺子軸２２にグリスが塗布してある。各レール２１に複数の摺動子２６が摺動可能に設けてある。ナット及び摺動子２６の上部にコラム４が連結している。コラム４は柱状をなす。Ｘ軸モータ２３の回転によってＸ軸螺子軸２２は回転し、ナットは左右方向に移動し、コラム４は左右方向に移動する。
【００３０】
コラム４の前面に上下方向に移動するＺ軸方向移動機構３０が設けてある。Ｚ軸方向移動機構３０は、上下に延びた二つのレール３１と、Ｚ軸螺子軸３２と、Ｚ軸モータ３３と、ベアリング３４とを備える。
【００３１】
レール３１はコラム４前面の左右夫々に設けてある。Ｚ軸螺子軸３２は上下に延び、二つのレール３１の間に設けてある。Ｚ軸螺子軸３２の下端部及び中途部夫々にベアリング３４が設けてある。なお中途部に設けたベアリングの図示は省略する。Ｚ軸モータ３３はＺ軸螺子軸３２の上端部に連結している。
【００３２】
Ｚ軸螺子軸３２には転動体（図示略）を介してナット（図示略）が螺合している。Ｚ軸螺子軸３２にグリスが塗布してある。各レール３１に複数の摺動子３５が摺動可能に設けてある。ナット及び摺動子３５の前部に主軸ヘッド５が連結している。Ｚ軸モータ３３の回転によってＺ軸螺子軸３２は回転し、ナットは上下方向に移動し、主軸ヘッド５は上下方向に移動する。Ｚ軸モータ３３、Ｚ軸螺子軸３２、ナット及び転動体はボールねじ機構を構成する。
【００３３】
上下に延びた主軸５ａが主軸ヘッド５内に設けてある。主軸５ａは軸回りに回転する。主軸ヘッド５の上端部に主軸モータ６が設けてある。主軸５ａの下端部は工具を装着する。主軸モータ６の回転によって主軸５ａが回転し、工具が回転する。回転した工具は、ワーク保持部３に保持したワークを加工する。
【００３４】
工作機械１００は工具を交換する工具交換装置（図示略）を備える。工具交換装置は工具マガジン（図示略）に収容した工具と主軸５ａに装着した工具を交換する。
【００３５】
図２は制御装置５０の構成を略示するブロック図である。制御装置５０は、ＣＰＵ５１、記憶部５２、ＲＡＭ５３及び入出力インタフェース５４を備える。記憶部５２は書き換え可能なメモリであり、例えばＥＰＲＯＭ、ＥＥＰＲＯＭ等である。記憶部５２は後述する交点テーブル、経路番号ｉ、補間点Ｈj 、指令点Ｐk、共通識別子Ｆm 、交点Ｓid、ｊの最終番号、ｋの最終番号、閾値Ｌ、閾値Ｌ２（第２閾値）、閾値Ｌ３（第３閾値）、ｍの最終番号、変数Ｓ等を記憶する（ｄ、ｉ、ｊ、ｋ、ｍは自然数）。
【００３６】
作業者が操作部７を操作した場合、操作部７から入出力インタフェース５４に信号が入力する。操作部７は例えばキーボード、ボタン、タッチパネル等である。入出力インタフェース５４は表示部８に信号を出力する。表示部８は文字、図形、記号等を表示する。表示部８は例えば液晶表示パネルである。
【００３７】
制御装置５０は、Ｘ軸モータ２３に対応したＸ軸制御回路５５、サーボアンプ５５ａ及び微分器２３ｂを備える。Ｘ軸モータ２３はエンコーダ２３ａを備える。Ｘ軸制御回路５５はＣＰＵ５１からの指令に基づいて、電流量を示す命令をサーボアンプ５５ａに出力する。サーボアンプ５５ａは前記命令を受け、Ｘ軸モータ２３に駆動電流を出力する。
【００３８】
エンコーダ２３ａはＸ軸制御回路５５に位置フィードバック信号を出力する。Ｘ軸制御回路５５は位置フィードバック信号に基づいて、位置のフィードバック制御を実行する。
【００３９】
エンコーダ２３ａは微分器２３ｂに位置フィードバック信号を出力し、微分器２３ｂは位置フィードバック信号を速度フィードバック信号に変換して、Ｘ軸制御回路５５に出力する。Ｘ軸制御回路５５は、速度フィードバック信号に基づいて、速度のフィードバック制御を実行する。
【００４０】
サーボアンプ５５ａが出力した駆動電流の値を電流検出器５５ｂが検出する。電流検出器５５ｂは駆動電流の値をＸ軸制御回路５５にフィードバックする。Ｘ軸制御回路５５は駆動電流の値に基づいて、電流制御を実行する。一般にＸ軸モータ２３に流れる駆動電流とＸ軸モータ２３に作用する負荷トルクは略一致する。故に電流検出器５５ｂはＸ軸モータ２３に作用する負荷トルクを検出する。
【００４１】
制御装置５０は、Ｙ軸モータ１３に対応したＹ軸制御回路５６、サーボアンプ５６ａ及び微分器１３ｂを備える。Ｙ軸モータ１３はエンコーダ１３ａを備える。Ｙ軸制御回路５６はＣＰＵ５１からの指令に基づいて、電流量を示す命令をサーボアンプ５６ａに出力する。サーボアンプ５６ａは前記命令を受け、Ｙ軸モータ１３に駆動電流を出力する。
【００４２】
エンコーダ１３ａはＹ軸制御回路５６に位置フィードバック信号を出力する。Ｙ軸制御回路５６は位置フィードバック信号に基づいて、位置のフィードバック制御を実行する。
【００４３】
エンコーダ１３ａは微分器１３ｂに位置フィードバック信号を出力し、微分器１３ｂは位置フィードバック信号を速度フィードバック信号に変換して、Ｙ軸制御回路５６に出力する。Ｙ軸制御回路５６は、速度フィードバック信号に基づいて、速度のフィードバック制御を実行する。
【００４４】
サーボアンプ５６ａが出力した駆動電流の値を電流検出器５６ｂが検出する。電流検出器５６ｂは駆動電流の値をＹ軸制御回路５６にフィードバックする。Ｙ軸制御回路５６は駆動電流の値に基づいて、電流制御を実行する。一般にＹ軸モータ１３に流れる駆動電流とＹ軸モータ１３に作用する負荷トルクは略一致する。故に電流検出器５６ｂはＹ軸モータ１３に作用する負荷トルクを検出する。
【００４５】
制御装置５０は、Ｚ軸モータ３３に対応したＺ軸制御回路５７、サーボアンプ５７ａ及び微分器３３ｂを備える。Ｚ軸モータ３３はエンコーダ３３ａを備える。Ｚ軸制御回路５７はＣＰＵ５１からの指令に基づいて、電流量を示す命令をサーボアンプ５７ａに出力する。サーボアンプ５７ａは前記命令を受け、Ｚ軸モータ３３に駆動電流を出力する。
【００４６】
エンコーダ３３ａはＺ軸制御回路５７に位置フィードバック信号を出力する。Ｚ軸制御回路５７は位置フィードバック信号に基づいて、位置のフィードバック制御を実行する。
【００４７】
エンコーダ３３ａは微分器３３ｂに位置フィードバック信号を出力し、微分器３３ｂは位置フィードバック信号を速度フィードバック信号に変換して、Ｚ軸制御回路５７に出力する。Ｚ軸制御回路５７は、速度フィードバック信号に基づいて、速度のフィードバック制御を実行する。
【００４８】
サーボアンプ５７ａが出力した駆動電流の値を電流検出器５７ｂが検出する。電流検出器５７ｂは駆動電流の値をＺ軸制御回路５７にフィードバックする。Ｚ軸制御回路５７は駆動電流の値に基づいて、電流制御を実行する。一般にＺ軸モータ３３に流れる駆動電流とＺ軸モータ３３に作用する負荷トルクは略一致する。故に電流検出器５７ｂはＺ軸モータ３３に作用する負荷トルクを検出する。
【００４９】
制御装置５０は主軸モータ６に対しても、Ｘ〜Ｚ軸モータ２３、１３、３３と同様なフィードバック制御を実行する。
【００５０】
工作機械１００はマガジンモータ６０と、マガジン制御回路５８とを備える。マガジンモータ６０の回転によって工具マガジンが駆動する。マガジン制御回路５８はマガジンモータ６０の回転を制御する。
【００５１】
記憶部５２はワークを加工する加工プログラムを格納する。加工プログラムは、主軸５ａの位置を指示する複数の指令点Ｐk を有する。ｋは加工プログラムを構成する命令の順番を示す。主軸５ａは複数の指令点Ｐk を順次移動し、主軸５ａに装着した工具はワークを加工する。
【００５２】
記憶部５２は指令点Ｐk を予め記憶している。制御装置５０は、必要に応じて複数の指令点Ｐk の間に補間点を設定し、指令点Ｐk 及び補間点に基づいて、主軸５ａが移動する経路（加工経路）を設定する。制御装置５０は加工経路に基づいて、主軸５ａの移動を実行する。
【００５３】
加工経路の設定方法について説明する。図３はワークに対する加工経路及び評価断面を略示する平面図、図４はワークに対する評価断面を略示する斜視図である。なお図中Ｘ方向は左右方向を示し、Ｙ方向は前後方向を示し、Ｚ方向は上下方向を示す。また図３及び図４におけるワークの形状は加工後の形状を示している。
【００５４】
制御装置５０は、ワークに対して評価断面Ｄd （ｄは断面番号を示し、自然数である）を設定する。図３に示すように、主軸５ａはＸ方向に沿って大部分が往復移動する場合、加工経路はＸ方向に沿った経路となる。図３に示す如く、制御装置５０は加工経路に略直交する方向に沿った評価断面Ｄd を複数設定する。複数の評価断面はＸ方向に並ぶ。尚、作業者は、加工経路がＸ方向であることを予め指示する。
【００５５】
開始信号の入力後、制御装置５０は加工経路設定処理を実行する。例えば、ユーザは操作部７を操作して、開始信号を制御装置に入力する。図５は、制御装置５０による加工経路設定処理を説明するフローチャートである。制御装置５０のＣＰＵ５１は、補間点設定処理を実行し（ステップＳ１）、指令点／補間点修正処理を実行して（ステップＳ２）、補間点削除処理を実行する（ステップＳ３）。補間点設定処理、指令点／補間点修正処理及び補間点削除処理の詳細は後述する。
【００５６】
補間点設定処理について説明する。図６は、指令点Ｐk 、補間点Ｈj 及び加工経路を略示する模式図である。図６において、「ｉ」（ｉは自然数）は主軸５ａのＸ方向移動における経路番号を示す。図６に示すように、例えば経路番号１（ｉ＝１）の経路は、左から右に移動する経路を示し、経路番号２（ｉ＝２）の経路は経路番号１の経路を右端で折り返して、右から左に移動する経路を示す。経路番号３以下も同様である。主軸５ａは経路番号順に移動する。●は指令点を示し、○内に×が有る箇所は補間点を示す。矢印は加工経路の進行方向を示す。
【００５７】
「ｊ」（ｊは自然数）は補間点の番号を示す。隣り合う二点間（隣り合う二つの指令点の間、隣り合う指令点及び補間点の間又は隣り合う二つの補間点の間）の距離Ｄが閾値Ｌよりも大きい場合、ＣＰＵ５１は二点間に補間点を設定する。ＣＰＵ５１は、例えば第１の補間方法で補間点を設定する。
【００５８】
図７は、第１の補間方法による補間点設定処理を説明するフローチャートである。ＣＰＵ５１は、ｊ及びｋに１を設定し（ステップＳ１１）、指令点Ｐk 及び指令点Ｐk+1 を読み込む（ステップＳ１２）。ＣＰＵ５１は、指令点Ｐk 及び指令点Ｐk+1 の間の距離Ｄと閾値Ｌとを比較し、距離Ｄが閾値Ｌ以下であるか否かを判定する（ステップＳ１３）。
【００５９】
距離Ｄが閾値Ｌ以下である場合（ステップＳ１３：ＹＥＳ）、ＣＰＵ５１は、後述するステップＳ１８に処理を進める。距離Ｄが閾値Ｌ以下でない場合（ステップＳ１３：ＮＯ）、ＣＰＵ５１は、隣り合う二点間の中央に補間点Ｈj を設定する（ステップＳ１４）。ここで、隣り合う二点は隣り合う二つの指令点Ｐk 及び指令点Ｐk+1 とする。ただし、一又は複数の補間点を設定した後は、隣り合う二点は、隣り合う指令点及び補間点又は隣り合う二つの補間点となる場合がある。
【００６０】
ＣＰＵ５１は、補間点Ｈj の位置情報を、指令点Ｐk 及び指令点Ｐk+1 の位置情報に関連付けて記憶部５２に記憶する（ステップＳ１５）。
【００６１】
ＣＰＵ５１は、全ての隣り合う二点間の距離が閾値Ｌ以下であるか否かを判定する（ステップＳ１６）。ここで、全ての隣り合う二点間の距離は、指令点Ｐk 及び補間点Ｈj の間の距離、並びに補間点Ｈj 及び指令点Ｐk+1 の間の距離である。ただし、複数の補間点を設定した後は、全ての隣り合う二点には、隣り合う指令点及び補間点又は隣り合う二つの補間点が含まれる場合がある。
【００６２】
全ての隣り合う二点間の距離が閾値Ｌ以下でない場合（ステップＳ１６：ＮＯ）、ＣＰＵ５１は、ｊを一つインクリメントし（ステップＳ１７）、ステップＳ１４に処理を戻す。
【００６３】
全ての隣り合う二点間の距離が閾値Ｌ以下である場合（ステップＳ１６：ＹＥＳ）、ＣＰＵ５１は、指令点Ｐk+1 が最終の指令点であるか否かを判定する（ステップＳ１８）。例えば、ＣＰＵ５１は、ｋが、記憶部５２に記憶した最終番号以上であるか否かを判定し、最終番号以上である場合、指令点Ｐk+1 が最終の指令点であると判定し、最終番号以上でない場合、指令点Ｐk+1 が最終の指令点でないと判定する。
【００６４】
指令点Ｐk+1 が最終の指令点でない場合（ステップＳ１８：ＮＯ）、ＣＰＵ５１は、ｋを一つインクリメントし（ステップＳ１９）、ステップＳ１２に処理を戻す。
【００６５】
指令点Ｐk+1 が最終の指令点である場合（ステップＳ１８：ＹＥＳ）、ＣＰＵ５１は、処理を指令点／補間点修正処理に戻す（ステップＳ２、図５参照）。
【００６６】
図６に示す経路番号５（ｉ＝５）の加工経路を用いて、上述した第１の補間方法による補間点設定処理を具体的に説明する。なお指令点Ｐ15及び指令点Ｐ16の間の距離は、閾値Ｌを超過しているものとする。また補間点Ｈj の番号は、経路番号５の上側に表示されている番号を使用する。
【００６７】
ＣＰＵ５１は、指令点Ｐ15及び指令点Ｐ16の間の中央に、補間点Ｈ4 を設定する。なお指令点Ｐ15及び補間点Ｈ4 の間の距離、並びに補間点Ｈ4 及び指令点Ｐ1の間の距離は閾値Ｌを超過しているものとする。
【００６８】
ＣＰＵ５１は、指令点Ｐ15及び補間点Ｈ4 の間の中央に、補間点Ｈ5 を設定する。なお指令点Ｐ15及び補間点Ｈ5 の間の距離、並びに二つの補間点Ｈ4 、Ｈ5 の間の距離は、閾値Ｌを超過しているものとする。
【００６９】
ＣＰＵ５１は、指令点Ｐ15及び補間点Ｈ5 の間の中央に、補間点Ｈ6 を設定する。なお指令点Ｐ15及び補間点Ｈ6 の間の距離、並びに二つの補間点Ｈ6 、Ｈ5 の間の距離は、閾値Ｌ以下であるとする。
【００７０】
ＣＰＵ５１は、二つの補間点Ｈ5 、Ｈ4 の間の中央に補間点Ｈ7 を設定する。なお二つの補間点Ｈ5 、Ｈ7 の間の距離、並びに二つの補間点Ｈ7 、Ｈ4 の間の距離は、閾値Ｌ以下であるとする。
【００７１】
同様に、ＣＰＵ５１は、補間点Ｈ4 及び指令点Ｐ16の間に、補間点Ｈ8 、Ｈ9 、Ｈ10を設定する。なお二つの補間点Ｈ4 、Ｈ9の間の距離、二つの補間点Ｈ9 、Ｈ8の間の距離、二つの補間点Ｈ8 、Ｈ10の間の距離、並びに補間点Ｈ10及び指令点Ｐ16の間の距離は、閾値Ｌ以下であるとする。
【００７２】
ＣＰＵ５１は、例えば第２の補間方法で補間点を設定する。図８は、第２の補間方法による補間点設定処理を説明するフローチャートである。
【００７３】
ＣＰＵ５１は、ｊ及びｋに１を設定し（ステップＳ２１）、指令点Ｐk 及び指令点Ｐk+1 を読み込む（ステップＳ２２）。ＣＰＵ５１は、指令点Ｐk 及び指令点Ｐk+1 の間の距離Ｄと閾値Ｌとを比較し、距離Ｄが閾値Ｌ以下であるか否かを判定する（ステップＳ２３）。
【００７４】
距離Ｄが閾値Ｌ以下である場合（ステップＳ２３：ＹＥＳ）、ＣＰＵ５１は、後述するステップＳ２９に処理を進める。距離Ｄが閾値Ｌ以下でない場合（ステップＳ２３：ＮＯ）、ＣＰＵ５１は、変数Ｓに指令点Ｐk の位置情報を格納する（ステップＳ２４）。
【００７５】
ＣＰＵ５１は、変数Ｓに格納した位置から、指令点Ｐk+1 側に閾値Ｌ離隔した位置に、補間点Ｈj を設定する（ステップＳ２５）。ＣＰＵ５１は、補間点Ｈj の位置情報を、指令点Ｐk 及び指令点Ｐk+1 の位置情報に関連付けて記憶部５２に記憶する（ステップＳ２６）。
【００７６】
ＣＰＵ５１は、補間点Ｈj 及び指令点Ｐk+1 の間の距離が閾値Ｌ以下であるか否かを判定する（ステップＳ２７）。補間点Ｈj 及び指令点Ｐk+1 の間の距離が閾値Ｌ以下でない場合（ステップＳ２７：ＮＯ）、ＣＰＵ５１は、ｊを一つインクリメントし、変数Ｓに補間点Ｈj の位置情報を格納して（ステップＳ２８）、ステップＳ２５に処理を戻す。
【００７７】
補間点Ｈj 及び指令点Ｐk+1 の間の距離が閾値Ｌ以下である場合（ステップＳ２７：ＹＥＳ）、ＣＰＵ５１は、指令点Ｐk+1 が最終の指令点であるか否かを判定する（ステップＳ２９）。
【００７８】
指令点Ｐk+1 が最終の指令点でない場合（ステップＳ２９：ＮＯ）、ＣＰＵ５１は、ｋを一つインクリメントし（ステップＳ３０）、ステップＳ２２に処理を戻す。
【００７９】
指令点Ｐk+1 が最終の指令点である場合（ステップＳ２９：ＹＥＳ）、ＣＰＵ５１は、処理を指令点／補間点修正処理に進める（ステップＳ２、図５参照）。
【００８０】
図６に示す経路番号５（ｉ＝５）の加工経路を用いて、上述した第２の補間方法による補間点設定処理を具体的に説明する。なお指令点Ｐ15及び指令点Ｐ16の間の距離は、閾値Ｌを超過しているものとする。また補間点Ｈj の番号は、経路番号５の下側にて括弧内に表示されている番号を使用する。
【００８１】
ＣＰＵ５１は、指令点Ｐ16側に、指令点Ｐ15から閾値Ｌ離隔した位置に補間点（Ｈ4 ）を設定する。なお補間点（Ｈ4 ）と指令点Ｐ16の間の距離は、閾値Ｌを超過しているものとする。
【００８２】
ＣＰＵ５１は、補間点（Ｈ4 ）から、指令点Ｐ16側に閾値Ｌ離隔した位置に補間点（Ｈ5 ）を設定する。なお補間点（Ｈ5 ）と指令点Ｐ16の間の距離は、閾値Ｌを超過しているものとする。
【００８３】
同様に、ＣＰＵ５１は、補間点（Ｈ5 ）よりも指令点Ｐ16側において、閾値Ｌの距離を設けて補間点（Ｈ6 ）〜（Ｈ10）を順に設定する。なお補間点（Ｈ10）と指令点Ｐ16の間の距離は、閾値Ｌ以下であるとする。
【００８４】
次に指令点／補間点修正処理について説明する。図９は指令点Ｐk と、補間点Ｈj と、評価断面Ｄd 及び加工経路の交点とを略示する模式図、図１０は、指令点Ｐk 及び補間点Ｈj に共通識別子Ｆm (ｍは自然数)を割り当てた後の指令点と、補間点と、評価断面Ｄd 及び加工経路の交点とを略示する模式図である。ＣＰＵ５１は、指令点及び補間点に識別子Ｆm を割り当てる。このとき、ＣＰＵ５１は、指令点Ｐk 及び補間点Ｈj に関連付けて識別子Ｆm を記憶部５２に記憶する。
【００８５】
図１１は、交点テーブルの一例を示す概念図である。図１１に示すように、制御装置５０は、各評価断面Ｄd において、移動経路Ｆm −Ｆm+1 との交点Ｓidを演算し、経路番号ｉ、交点座標Ｓid及び移動経路Ｆm −Ｆm+1 を関連けて、交点テーブルに記憶する。なお前述したように、「ｉ」（ｉは自然数）は主軸５ａのＸ方向移動における経路番号を示す。
【００８６】
制御装置５０は、評価断面Ｄd 上における交点位置を例えば第１の修正方法で修正する。図１２は評価断面Ｄd 上における交点位置の第１の修正方法を説明する説明図である。制御装置５０は、例えばＺ方向の座標を漸次変更するように修正する。修正の対象となる交点座標Ｓidに対し、前後各二点の交点座標ｓi-2d、ｓi-1d、ｓi+1d、ｓi+2dを使用して修正点tidを決定する。
【００８７】
四つの交点座標ｓi-2d、ｓi-1d、ｓi+1d、ｓi+2dの各Ｚ座標値をｚi-2 、ｚi-1 、ｚi+1 、ｚi+2 とし、修正点tidのＺ座標値をzi′とし、Ｚ座標値の差分をd1 ＝ｚi-2 −ｚi-1、d2 ＝ｚi-1 −ｚi′、d3 ＝zi ′−ｚi+1、d4 ＝ｚi+1 −ｚi+2とし、Ｚ座標値の二回差分d12′、d23′、d34′（Ｚ座標値の差分d1 、d2 、d3 、d4 の差分）が線形に変化するようなzi′を演算する。
【００８８】
Ｚ座標値の二回差分d12′、d23′、d34′は次式で求まる。
d12′＝d2 −d1 ＝（ｚi-1 −zi ′）−（ｚi-2 −ｚi-1）＝２ｚi-1 −zi ′−ｚi-2 ・・・（１）
d23′＝d3 −d2 ＝（zi ′−ｚi+1）−（ｚi-1 −zi ′）＝２ｚi ′−zi+1 −ｚi-1 ・・・（２）
d34′＝d4 −d3 ＝（ｚi+1 −ｚi+2 ）−（zi ′−ｚi+1 ）＝２ｚi+1 −zi+2 −ｚi ′ ・・（３）
【００８９】
これらが線形に変化することから、
d23′＝（d12′＋d34′）／２                                  ・・・（４）
を満たす。
【００９０】
式（１）〜（４）に基づき、zi ′を解くと、
zi ′＝（−ｚi-2 ＋４ｚi-1 ＋４ｚi+1 −zi+2 ）／６
となる。
【００９１】
評価断面Ｄd 上における全ての交点Ｓidに対して上記修正を行う。なおＺ座標値が他の交点のＺ座標値と比較して、大きく離れた交点のみを修正してもよい。
【００９２】
制御装置５０は、評価断面Ｄd 上における交点位置を例えば第２の修正方法で修正する。図１３は評価断面Ｄd 上における交点位置の第２の修正方法を説明する説明図である。図１３において、ｕはＸＹ座標に相当し、ｖはＺ座標に相当する。制御装置５０は、例えば修正の対象となる交点Ｓidの周囲にある他の複数の交点を使用して、滑らかな曲線（スプライン曲線、ベジェ曲線、ＮＵＲＢＳ曲線等）を作成し、該曲線上に修正の対象となる交点Ｓidを投影する。
【００９３】
滑らかな曲線として四つの交点ｓi-2d、ｓi-1d、ｓi+1d、ｓi+2dを使用する場合、評価断面Ｄd （ｕｖ平面）上における区間ｓi-2d〜ｓi-1d、区間ｓi-1d〜ｓi+1d、区間ｓi+1d〜ｓi+2dの夫々の曲線式ｖ1(ｕ)、ｖ2(ｕ)、ｖ3(ｕ)は、以下の式となる。
ｖj(ｕ)＝ａj (ｕ-ｕj )3 ＋ｂj (ｕ-ｕj )2 ＋ｃj （ｕ-ｕj ）＋ｄj 
（ｊ＝１、２、３）
【００９４】
交点ｓi-2d、ｓi-1d、ｓi+1d、ｓi+2dを通り、且つ境界点における一次導関数及び二次導関数が連続であることに基づいて、制御装置５０はａj 〜ｄj を決定することができる。
【００９５】
四つの交点の選択は、上述したように、交点Ｓidの両隣に位置する連続した二点を使用する場合に限らない。例えば交点ｓi-3d、ｓi-1d、ｓi+1d、ｓi+3dのように、二点毎に不連続に交点を選択してもよい。
【００９６】
図１３に示すように、修正点tid位置は、滑らかな曲線上において、修正の対象となる交点Ｓidからの距離が最小となる位置である。
【００９７】
ｄ番目の評価断面Ｄd 上に存在する修正後の交点群Ｓd をＴd とする。
Ｔd ＝{tid|ｄ：断面番号、ｉ：経路番号}
【００９８】
制御装置５０は、交点群をＴd を使用して、指令点及び補間点の位置を修正する。図１４は指令点及び補間点の修正方法を説明する説明図である。図１４において、Ｆa 〜Ｆf は指令点又は補間点を示す。
【００９９】
例えば指令点又は補間点Ｆc が修正対象である場合、図１４Ａに示す如く、指令点又は補間点Ｆc は断面Ｄd-1 と断面Ｄd の間に位置し、経路番号はｉである。制御装置５０は前述した交点テーブルを参照し、指令点又は補間点Ｆc に関する断面位置及び経路番号を取得する。
【０１００】
図１４Ｂに示す如く、制御装置５０は指令点又は補間点Ｆc の周囲にある交点、例えば加工経路上に並んだ四つの交点tid+1、tid、tid-1、tid-2を探索する。制御装置５０は四つの交点tid+1、tid、tid-1、tid-2から滑らかな曲線（スプライン曲線、ベジェ曲線、ＮＵＲＢＳ曲線等）を作成し、該曲線上に指令点又は補間点Ｆc を投影し、修正点Ｆc ′を決定する。制御装置５０は、滑らかな曲線を前述した第２の修正方法と同様な方法で求める。修正点Ｆc ′の位置は、滑らかな曲線上において、指令点又は補間点Ｆc からの距離が最小となる位置である。制御装置５０は他の指令点又は補間点の位置を同様に修正する。
【０１０１】
図１５は、制御装置５０による指令点／補間点修正処理を説明するフローチャートである。ＣＰＵ５１は、評価断面Ｄd を設定し（ステップＳ４１）、指令点Ｐk 及び補間点Ｈj に共通識別子Ｆm (ｍは自然数)を割り当てる（ステップＳ４２、図９及び図１０参照）。次にＣＰＵ５１は交点テーブル作成する（図１１参照）。具体的には、ＣＰＵ５１は往復動作の経路番号を示す変数ｉ及び変数ｍに「１」を設定する（ステップＳ４３）。なお変数ｍは、加工プログラムを構成する命令の順番を示す。そしてＣＰＵ５１は移動経路Ｆm −Ｆm+1 を読み込む（ステップＳ４４）。ＣＰＵ５１は移動経路Ｆm −Ｆm+1 が評価断面Ｄd と交差するか否かを判定する（ステップＳ４５）。移動経路Ｆm −Ｆm+1 が評価断面Ｄd と交差しない場合（ステップＳ４５：ＮＯ）、ＣＰＵ５１はｍを一つインクリメントする（ステップＳ４９）。
【０１０２】
移動経路Ｆm −Ｆm+1 が評価断面Ｄd と交差する場合（ステップＳ４５：ＹＥＳ）、ＣＰＵ５１は、評価断面Ｄd と移動経路Ｆm −Ｆm+1 との交点Ｓidが既に存在しているか否かを判定する（ステップＳ４６）。
【０１０３】
評価断面Ｄd と移動経路Ｆm −Ｆm+1 との交点Ｓidが既に存在していない場合（ステップＳ４６：ＮＯ）、ＣＰＵ５１は記憶部５２の交点テーブル（図１１参照）に、経路番号ｉ、交点座標Ｓid及び移動経路Ｆm −Ｆm+1 を関連付けて記憶する（ステップＳ４８）。
【０１０４】
評価断面Ｄd と移動経路Ｆm −Ｆm+1 との交点Ｓidが既に存在している場合（ステップＳ４６：ＹＥＳ）、ＣＰＵ５１はｉを一つインクリメントし（ステップＳ４７）、ＣＰＵ５１は記憶部５２の交点テーブルに、経路番号ｉ、交点座標Ｓid及び移動経路Ｆm −Ｆm+1 を関連付けて記憶し（ステップＳ４８）、ｍをインクリメントする（ステップＳ４９）。ステップＳ４３〜Ｓ４９は演算部を構成する。
【０１０５】
ｍをインクリメントした後、ＣＰＵ５１はｍが最終番号であるか否かを判定する（ステップＳ５０）。ｍが最終番号でない場合（ステップＳ５０：ＮＯ）、ＣＰＵ５１はステップＳ４４に処理を戻す。ｍが最終番号である場合（ステップＳ５０：ＹＥＳ）、ＣＰＵ５１は、上述したように、交点の位置を修正する（ステップＳ５１、式（１）〜式（４）、図１２及び図１３参照）。
【０１０６】
ＣＰＵ５１は、上述したように、指令点の周囲にある交点を探索し（ステップＳ５２）、指令点の位置を修正し（ステップＳ５３、図１４Ａ及び図１４Ｂ参照）、処理を補間点削除処理に進める（ステップＳ３、図５参照）。
【０１０７】
次に補間点削除処理について説明する。制御装置５０は補間点を、例えば第１の削除方法で削除する。図１６は、補間点の第１の削除方法を説明する説明図である。図１６において、指令点/補間点修正処理による修正前の指令点をＰk 及びＰk+1 とし、修正後の指令点をＰk ′及びＰk+1 ′としている。また指令点/補間点修正処理による修正前の補間点をＨj 及びＨj+1 とし、修正後の補間点をＨj ′及びＨj+1 ′としている。なおＣＰＵ５１は、共通識別子Ｆm と修正後の指令点及び補間点とを関連付けて記憶部５２に記憶する。
【０１０８】
制御装置は、修正前の補間点Ｈj と修正後の補間点Ｈj ′との間の距離Ｄ２（第２距離）が閾値Ｌ２以下であるか否かを判定し、閾値Ｌ２以下である場合、修正後の補間点Ｈj ′を削除する。距離Ｄ２が閾値Ｌ２以下である場合、修正前の補間点Ｈj と修正後の補間点Ｈj ′との間の差分は小さい。そのため補間点Ｈj ′を削除し、指令点Ｐk ′から補間点Ｈj+1 ′に主軸５ａが直接移動したとしても、ワークの表面形状に与える影響は小さく、ワーク表面に鱗状の模様が表れる可能性は低い。一方、補間点を削除することによって、加工時間及び加工プログラムの容量の増加を抑制することができる。なお修正後の補間点が全て削除された場合、主軸５ａは指令点Ｐk ′から指令点Ｐk+1 ′に直接移動する。
【０１０９】
図１７は、第１の削除方法による補間点削除処理を説明するフローチャートである。ＣＰＵ５１は、ｊに１を設定し（ステップＳ６１）、修正前の補間点Ｈj 及び修正後の補間点Ｈj ′を読み込む（ステップＳ６２）。
【０１１０】
ＣＰＵ５１は、補間点Ｈj 及びＨj ′間の距離Ｄ２が閾値Ｌ２以下であるか否かを判定する（ステップＳ６３）。距離Ｄ２が閾値Ｌ２以下でない場合（ステッＳ６３：ＮＯ）、ＣＰＵ５１は、後述するステップＳ６５に処理を進める。
【０１１１】
距離Ｄ２が閾値Ｌ２以下である場合（ステッＳ６３：ＹＥＳ）、ＣＰＵ５１は、補間点Ｈj ′を削除し（ステップＳ６４）、補間点Ｈj ′が最終の補間点であるか否かを判定する（ステップＳ６５）。
【０１１２】
例えば、ＣＰＵ５１は、ｊが、記憶部５２に記憶した最終番号以上であるか否かを判定し、最終番号以上である場合、補間点Ｈj ′が最終の補間点であると判定し、最終番号以上でない場合、補間点Ｈj ′が最終の補間点でないと判定する。
【０１１３】
補間点Ｈj ′が最終の補間点でない場合（ステップＳ６５：ＮＯ）、ＣＰＵ５１は、ｊを一つインクリメントし（ステップＳ６６）、ステップＳ６２に処理を戻す。
【０１１４】
補間点Ｈj ′が最終の補間点である場合（ステップＳ６５：ＹＥＳ）、ＣＰＵ５１は処理を終了する。
【０１１５】
制御装置５０は補間点を、例えば第２の削除方法で削除する。図１８は、補間点の第２の削除方法を説明する説明図である。指令点/補間点修正処理による修正前の指令点をＰk 及びＰk+1 とし、指令点/補間点修正処理による修正前の補間点をＨj 及びＨj+1 とする。図１８において、指令点/補間点修正処理による修正後の指令点をＰk ′及びＰk+1 ′としている。また指令点/補間点修正処理による修正後の補間点をＨj ′及びＨj+1 ′としている。なおＣＰＵ５１は、共通識別子Ｆm と修正後の指令点及び補間点とを関連付けて記憶部５２に記憶する。
【０１１６】
制御装置は、修正後の指令点Ｐk ′及びＰk+1 ′を結ぶ線分と、修正後の補間点Ｈj ′との間の距離Ｄ３（第３距離）が閾値Ｌ３以下であるか否かを判定し、閾値Ｌ３以下である場合、修正後の補間点Ｈj ′を削除する。なお距離Ｄ３は、例えば、前記線分と修正後の補間点Ｈj ′との間の最短距離である。
【０１１７】
距離Ｄ３が閾値Ｌ３以下である場合、修正前の補間点Ｈj と修正後の補間点Ｈj ′との間の差分は小さい。そのため補間点Ｈj ′を削除し、指令点Ｐk ′から補間点Ｈj+1 ′に主軸５ａが直接移動したとしても、ワークの表面形状に与える影響は小さく、ワーク表面に鱗状の模様が表れる可能性は低い。一方、補間点を削除することによって、加工時間及び加工プログラムの容量の増加を抑制することができる。なお修正後の補間点が全て削除された場合、主軸５ａは指令点Ｐk ′から指令点Ｐk+1 ′に直接移動する。
【０１１８】
図１９は、第２の削除方法による補間点削除処理を説明するフローチャートである。ＣＰＵ５１は、ｊ及びｋに１を設定し（ステップＳ７１）、修正後の指令点Ｐk ′及びＰk+1′を読み込み（ステップＳ７２）、線分Ｐk ′Ｐk+1 ′を設定する（ステップＳ７３）。
【０１１９】
ＣＰＵ５１は、修正後の補間点Ｈj ′を読み込み（ステップＳ７４）、線分Ｐk ′Ｐk+1 ′と補間点Ｈj ′との間の距離Ｄ３が閾値Ｌ３以下であるか否かを判定する（ステップＳ７５）。距離Ｄ３が閾値Ｌ３以下でない場合（ステップＳ７５：ＮＯ）、ＣＰＵ５１は、加工経路Ｐk ′−Ｐk+1 ′において、補間点Ｈj ′が最終の補間点であるか否かを判定する（ステップＳ７７）。なお記憶部５２は、加工経路毎に、ｊの最終番号を記憶しているものとする。
【０１２０】
距離Ｄ３が閾値Ｌ３以下である場合（ステップＳ７５：ＹＥＳ）、ＣＰＵ５１は補間点Ｈj ′を削除し（ステップＳ７６）、加工経路Ｐk ′−Ｐk+1 ′において、補間点Ｈj ′が最終の補間点であるか否かを判定する（ステップＳ７７）。
【０１２１】
加工経路Ｐk ′−Ｐk+1 ′において、補間点Ｈj ′が最終の補間点でない場合（ステップＳ７７：ＮＯ）、ＣＰＵ５１はｊを一つインクリメントし（ステップＳ７８）、ステップＳ７４に処理を戻す。
【０１２２】
加工経路Ｐk ′−Ｐk+1 ′において、補間点Ｈj ′が最終の補間点である場合（ステップＳ７７：ＹＥＳ）ＣＰＵ５１は、指令点Ｐk+1 ′が最終の指令点であるか否かを判定する（ステップＳ７９）。
【０１２３】
指令点Ｐk+1 ′が最終の指令点でない場合（ステップＳ７９：ＮＯ）、ＣＰＵ５１は、ｋを一つインクリメントし（ステップＳ８０）、ステップＳ７２に処理を戻す。
【０１２４】
指令点Ｐk+1 ′が最終の指令点である場合（ステップＳ７９：ＹＥＳ）、ＣＰＵ５１は処理を終了する。
【０１２５】
実施の形態にあっては、複数の指令点Ｐk の間に補間点Ｈj を設定し、指令点Ｐk び補間点Ｈj に基づいて、加工経路を設定する。加工経路に交差する評価断面Ｄd を設定し、評価断面Ｄd 加工経路の交点Ｓidの位置を修正し、修正した交点Ｓidの位置に基づいて、前記加工経路に交差する方向における指令点Ｐk び補間点Ｈj 位置を修正する。加工経路に交差する方向においても、指令点Ｐk び補間点Ｈj 位置を修正することができるので、滑らかな曲面をワークに形成することができる。また指令点のみならず、指令点Ｐk 間に設定した補間点Ｈj も加工経路の設定に使用するので、加工経路の精度が向上する。
【０１２６】
また隣り合う二つの指令点の間、隣り合う指令点及び補間点の間又は隣り合う二つの補間点の間の中央に、補間点を設定し、加工経路の設定を行う。又は指令点又は補間点から閾値Ｌに相当する距離離隔した位置に補間点を設定し、加工経路の設定を行う。
【０１２７】
また修正前後の二つの補間点の間の距離Ｄ２（第２距離）が閾値Ｌ２（第２閾値）よりも小さい場合に、修正後の補間点を削除する。又は修正後の隣り合う二つの指令点を結ぶ線分と、前記二つの指令点の間に位置する修正後の補間点との間の距離Ｄ３（第３距離）が閾値Ｌ３（第３閾値）よりも小さい場合に、修正後の補間点を削除する。補間点の削除により、加工時間及び加工プログラムの容量の増加を抑制する。
【０１２８】
上述した実施の形態においては、補間点設定処理、指令点／補間点修正処理及び補間点削除処理を全て実行しているが、補間点設定処理及び指令点／補間点修正処理のみを実行してもよい。
【０１２９】
図２０は変更例におけるワークに対する加工経路及び評価断面を略示する平面図である。図２０に示す如く、加工経路が渦巻き状をなす場合、制御装置５０は渦巻きの中心及び該中心周りの角度を設定し、渦巻きの中心を基準として放射状に複数の評価断面を設定する。
【符号の説明】
【０１３０】
５ａ  主軸
５０  制御装置
５１  ＣＰＵ
５２  記憶部
５３  ＲＡＭ
１００  工作機械
【図１】
0006672702.tif 000002
【図２】
0006672702.tif 000003
【図３】
0006672702.tif 000004
【図４】
0006672702.tif 000005
【図５】
0006672702.tif 000006
【図６】
0006672702.tif 000007
【図７】
0006672702.tif 000008
【図８】
0006672702.tif 000009
【図９】
0006672702.tif 000010
【図１０】
0006672702.tif 000011
【図１１】
0006672702.tif 000012
【図１２】
0006672702.tif 000013
【図１３】
0006672702.tif 000014
【図１４】
0006672702.tif 000015
【図１５】
0006672702.tif 000016
【図１６】
0006672702.tif 000017
【図１７】
0006672702.tif 000018
【図１８】
0006672702.tif 000019
【図１９】
0006672702.tif 000020
【図２０】
0006672702.tif 000021