(57)【要約】【課題】工具が被加工物やジグに干渉しない場合のみ工具を待機位置まで工具交換前に移動できる数値制御装置及び制御方法を提供する。【解決手段】ＣＰＵは加工プログラム中に軸移動指令がある場合、主軸ヘッドの軸移動パラメータを算出しＲＡＭに記憶する（Ｓ１９）。軸移動パラメータは次工具の送り軸毎の最小座標値と最大座標値である。加工プログラム中に工具交換指令がある場合、工具交換前の軸移動を指示するブロックの軸移動パラメータをＲＡＭから取得する（Ｓ１５）。工具が被加工物又はジグ装置に干渉する領域を示す干渉パラメータは不揮発性記憶装置に記憶されている。干渉パラメータに基づき、軸移動パラメータが非干渉条件を満たすか否か判断し（Ｓ１６）、非干渉条件を満たす場合（Ｓ１６：ＹＥＳ）、工具交換前の軸移動指令にポット加工指令を追加する（Ｓ１７）。【選択図】図９
2013071203.tif 000002
【特許請求の範囲】
【請求項１】
被加工物に対して近接／離隔可能に設け、工具を装着した主軸を駆動して該被加工物を加工する主軸ヘッドと、
前記主軸ヘッドを移動するヘッド制御部と、
前記主軸ヘッドに設け、工具を保持する複数のポットを格納し、前記主軸に装着してある現工具と工具交換を行う次工具を保持する前記ポットを工具交換の準備位置まで移動する工具マガジンと、
前記準備位置にある前記ポットを工具交換が可能な待機位置に移動するポット駆動機構と、
前記ヘッド制御部が前記主軸ヘッドを工具交換位置まで移動した状態で、前記主軸に装着してある前記現工具と、前記待機位置にある前記次工具とを把持して旋回することにより工具交換を行う工具交換アームと
を備えた工作機械を制御する数値制御装置であって、
複数のブロックで構成した加工プログラムを読み込んで、前記加工プログラム中に工具交換を指示する工具交換指令が有るか否か判断する工具交換指令判断部と、
前記工具交換指令判断部が前記加工プログラム中に前記工具交換指令があると判断した場合、前記工具交換指令を含むブロックまでの送り軸が移動する範囲における前記送り軸毎の最小座標値と最大座標値とを取得する座標値取得部と、
前記送り軸毎に工具交換時の工具の移動によって工具と被加工物又はジクとが干渉する領域を記憶する記憶手段と、
前記記憶手段に記憶した干渉する領域と座標値取得部で取得した座標値とに基づいて工具と被加工物又はジクが干渉するか否か判断する干渉判断部と、
前記干渉判断部が干渉しないと判断した場合、前記ヘッド制御部が前記主軸ヘッドを前記工具交換位置に移動する前に、前記準備位置にある前記ポットを前記待機位置に移動するように前記ポット駆動機構を制御するポット移動制御部と
を備えたことを特徴とする数値制御装置。
【請求項２】
前記送り軸が前記現工具の長手方向に対して直交する方向に移動する範囲における前記最小座標値及び前記最大座標値は、
前記工具交換指令を含むブロックまでの前記主軸ヘッドの移動経路において前記主軸ヘッドの最も小さい座標値及び最も大きい座標値から前記主軸と前記次工具間の距離を差し引いた座標値であることを特徴とする請求項１に記載の数値制御装置。
【請求項３】
前記送り軸が前記現工具の長手方向に対して平行に移動する範囲における前記最小座標値は、前記工具交換指令を含むブロックまでの前記主軸ヘッドの移動経路において前記主軸ヘッドの最も小さい座標値から前記現工具の工具長から前記次工具の工具長の差分を差し引いた座標値であることを特徴とする請求項１又は２に記載の数値制御装置。
【請求項４】
被加工物に対して近接／離隔可能に設け、工具を装着した主軸を駆動して該被加工物を加工する主軸ヘッドと、
前記主軸ヘッドを移動するヘッド制御部と、
前記主軸ヘッドに設け、工具を保持する複数のポットを格納し、前記主軸に装着してある現工具と工具交換を行う次工具を保持する前記ポットを工具交換の準備位置まで移動する工具マガジンと、
前記準備位置にある前記ポットを工具交換が可能な待機位置に移動するポット駆動機構と、
前記ヘッド制御部が前記主軸ヘッドを工具交換位置まで移動した状態で、前記主軸に装着してある前記現工具と、前記待機位置にある前記次工具とを把持して旋回することにより工具交換を行う工具交換アームと
を備えた工作機械を制御する数値制御装置の制御方法であって、
複数のブロックで構成した加工プログラムを読み込んで、前記加工プログラム中に工具交換を指示する工具交換指令が有るか否か判断する工具交換指令工程と、
前記工具交換指令判断工程において前記加工プログラム中に前記工具交換指令があると判断した場合、前記工具交換指令を含むブロックまでの送り軸が移動する範囲における前記送り軸毎の最小座標値と最大座標値とを取得する座標値取得工程と、
前記送り軸毎に工具交換時の工具の移動によって工具と被加工物又はジクとが干渉する領域を記憶する記憶手段に記憶した干渉する領域と座標値取得部で取得した座標値とに基づいて工具と被加工物又はジクが干渉するか否か判断する干渉判断工程と、
前記干渉判断工程が干渉しないと判断した場合、前記ヘッド制御部が前記主軸ヘッドを前記工具交換位置に移動する前に、前記準備位置にある前記ポットを前記待機位置に移動するように前記ポット駆動機構を制御するポット移動制御工程と
を備えたことを特徴とする制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は工作機械を制御する数値制御装置及び制御方法に関する。
【背景技術】
【０００２】
数値制御装置は工作機械を制御する。工作機械は工具を加工プログラムに従って交換し、連続的に被加工物の加工を実行する。工作機械は工具交換装置を備える。工具は工具交換装置の工具マガジンに収納してある。工具マガジンは寸法と形状の異なるタップ、ドリル等の各種工具を収納する。工具は工具ポットに支持してある。特許文献１に記載の工作機械は、工具マガジンと工具交換アームを備え、主軸ヘッドと工具マガジンは一体である。工作機械は工具交換アームの旋回動作により、現工具と次工具とを入れ替え交換する。現工具は主軸に現在装着する工具である。次工具は工具マガジン内の割出位置に割り出した次に使用する工具である。
【０００３】
工具交換工程は以下の手順である。主軸ヘッドは工具交換位置まで上昇する。工具マガジン内において次工具の工具ポットは準備位置から待機位置まで下降する。待機位置は工具交換可能な位置である。工具交換アームは現工具と次工具を掴んで両工具を引き抜く。工具交換アームは１８０度旋回する。工具交換アームは交換した次工具を主軸に装着する。工具マガジン内において工具ポットは準備位置まで上昇する。主軸ヘッドと工具マガジンは被加工物に向けて下降する。工具交換時間の短縮は加工時間の短縮になる。例えば工具ポットの下降動作を工具交換前に実行する対策は工具交換時間の短縮になる。本件出願人は加工プログラム中において工具交換前に工具交換指令（Ｍ４２９）を挿入することを検討した。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開平３−９２２３５号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
上述の通り、主軸ヘッドと工具マガジンは一体で動く。故に作業者は工具交換前に下降する工具が被加工物やジグに干渉しない位置を予め計算する必要があった。
【０００６】
本発明の目的は、工具が被加工物やジグに干渉しない場合のみ工具を待機位置まで工具交換前に移動できる数値制御装置及び制御方法を提供することである。
【課題を解決するための手段】
【０００７】
本発明の第１態様に係る数値制御装置は、被加工物に対して近接／離隔可能に設け、工具を装着した主軸を駆動して該被加工物を加工する主軸ヘッドと、前記主軸ヘッドを移動するヘッド制御部と、前記主軸ヘッドに設け、工具を保持する複数のポットを格納し、前記主軸に装着してある現工具と工具交換を行う次工具を保持する前記ポットを工具交換の準備位置まで移動する工具マガジンと、前記準備位置にある前記ポットを工具交換が可能な待機位置に移動するポット駆動機構と、前記ヘッド制御部が前記主軸ヘッドを工具交換位置まで移動した状態で、前記主軸に装着してある前記現工具と、前記待機位置にある前記次工具とを把持して旋回することにより工具交換を行う工具交換アームとを備えた工作機械を制御する数値制御装置であって、複数のブロックで構成した加工プログラムを読み込んで、前記加工プログラム中に工具交換を指示する工具交換指令が有るか否か判断する工具交換指令判断部と、前記工具交換指令判断部が前記加工プログラム中に前記工具交換指令があると判断した場合、前記工具交換指令を含むブロックまでの送り軸が移動する範囲における前記送り軸毎の最小座標値と最大座標値とを取得する座標値取得部と、前記送り軸毎に工具交換時の工具の移動によって工具と被加工物又はジクとが干渉する領域を記憶する記憶手段と、前記記憶手段に記憶した干渉する領域と座標値取得部で取得した座標値とに基づいて工具と被加工物又はジクが干渉するか否か判断する干渉判断部と、前記干渉判断部が干渉しないと判断した場合、前記ヘッド制御部が前記主軸ヘッドを前記工具交換位置に移動する前に、前記準備位置にある前記ポットを前記待機位置に移動するように前記ポット駆動機構を制御するポット移動制御部とを備える。
【０００８】
第１態様の数値制御装置では、記憶手段は送り軸毎に工具交換時の工具の移動によって工具と被加工物又はジクとが干渉する領域を記憶する。干渉判断部は、記憶手段に記憶した干渉する領域と座標値取得部で取得した座標値とに基づき、工具と被加工物又はジクが干渉するか否か判断する。ポット移動制御部は、干渉判断部が干渉しないと判断した場合、ヘッド制御部が主軸ヘッドを工具交換位置に移動する前に、準備位置にあるポットを待機位置に移動するようにポット駆動機構を制御する。故に第１態様は工具が被加工物やジグに干渉しない場合のみ次工具を準備位置まで工具交換前に移動できる。工具交換時間は短縮する。加工プログラム中への工具交換指令の挿入は不要である。
【０００９】
また第１態様では、前記送り軸が前記工具の長手方向に対して直交する方向に移動する範囲における前記最小座標値及び前記最大座標値は、前記工具交換指令を含むブロックまでの前記主軸ヘッドの移動経路において前記主軸ヘッドの最も小さい座標値及び最も大きい座標値から前記主軸と前記次工具間の距離を差し引いた座標値であってもよい。故に干渉判断部は工具交換前の軸移動において次工具が被加工物又はジクに干渉するか否かを判断できる。
【００１０】
また第１態様では、前記送り軸が前記現工具の長手方向に対して平行に移動する範囲における前記最小座標値は、前記工具交換指令を含むブロックまでの前記主軸ヘッドの移動経路において前記主軸ヘッドの最も小さい座標値から前記現工具の工具長から前記次工具の工具長の差分を差し引いた座標値であってもよい。故に干渉判断部は送り軸が現工具の長手方向に対して平行に移動する範囲における最小座標値について現工具と次工具の工具長の差分を考慮できる。故に現工具と次工具の工具長の差によって工具が被加工物又はジクに干渉するのを防止できる。
【００１１】
本発明の第２態様に係る制御方法は、被加工物に対して近接／離隔可能に設け、工具を装着した主軸を駆動して該被加工物を加工する主軸ヘッドと、前記主軸ヘッドを移動するヘッド制御部と、前記主軸ヘッドに設け、工具を保持する複数のポットを格納し、前記主軸に装着してある現工具と工具交換を行う次工具を保持する前記ポットを工具交換の準備位置まで移動する工具マガジンと、前記準備位置にある前記ポットを工具交換が可能な待機位置に移動するポット駆動機構と、前記ヘッド制御部が前記主軸ヘッドを工具交換位置まで移動した状態で、前記主軸に装着してある前記現工具と、前記待機位置にある前記次工具とを把持して旋回することにより工具交換を行う工具交換アームとを備えた工作機械を制御する数値制御装置の制御方法であって、複数のブロックで構成した加工プログラムを読み込んで、前記加工プログラム中に工具交換を指示する工具交換指令が有るか否か判断する工具交換指令工程と、前記工具交換指令判断工程において前記加工プログラム中に前記工具交換指令があると判断した場合、前記工具交換指令を含むブロックまでの送り軸が移動する範囲における前記送り軸毎の最小座標値と最大座標値とを取得する座標値取得工程と、前記送り軸毎に工具交換時の工具の移動によって工具と被加工物又はジクとが干渉する領域を記憶する記憶手段に記憶した干渉する領域と座標値取得部で取得した座標値とに基づいて工具と被加工物又はジクが干渉するか否か判断する干渉判断工程と、前記干渉判断工程が干渉しないと判断した場合、前記ヘッド制御部が前記主軸ヘッドを前記工具交換位置に移動する前に、前記準備位置にある前記ポットを前記待機位置に移動するように前記ポット駆動機構を制御するポット下降制御工程とを備える。
【００１２】
第２態様の制御方法では、記憶手段は送り軸毎に工具交換時の工具の移動によって工具と被加工物又はジクとが干渉する領域を記憶する。干渉判断工程は、記憶手段に記憶した干渉する領域と座標値取得工程で取得した座標値とに基づき、工具と被加工物又はジクが干渉するか否か判断する。ポット移動制御工程は、干渉判断工程が干渉しないと判断した場合、ヘッド制御部が主軸ヘッドを工具交換位置に移動する前に、準備位置にあるポットを待機位置に移動するようにポット駆動機構を制御する。故に第２態様は工具が被加工物やジグに干渉しない場合のみ次工具を準備位置まで工具交換前に移動できる。工具交換時間は短縮する。加工プログラム中への工具交換指令の挿入は不要である。
【図面の簡単な説明】
【００１３】
【図１】工作機械１の斜視図。
【図２】工具交換工程の流れ図。
【図３】工作機械１の電気的構成を示すブロック図。
【図４】ＲＡＭ２３の記憶領域を示す図。
【図５】被加工物５及びジグ装置１６の平面図。
【図６】被加工物５及びジグ装置１６の正面図。
【図７】主軸工具長Ｐ１、次工具長Ｐ２、主軸次工具間距離Ｌを示す図。
【図８】加工プログラムの一例を示す図。
【図９】加工制御処理のフローチャート。
【発明を実施するための形態】
【００１４】
以下本発明の一実施形態である数値制御装置２０及び制御方法について図面を参照して説明する。図３に示す数値制御装置２０は図１に示す工作機械１を制御する。工作機械１は工具Ｔを高速回転して被加工物５に切削加工を施す機械である。以下説明において、図１の上方、下方、右斜め下方、左斜め上方、左斜め下方、右斜め上方を、夫々、工作機械１の上方、下方、右方、左方、前方、後方とする。工作機械１の左右方向をＸ軸方向、前後方向をＹ方向、上下方向をＺ軸方向とする。
【００１５】
図１を参照して、工作機械１の構造について説明する。工作機械１は基台２、コラム３、主軸ヘッド７、主軸９（図２参照）、作業台１５、ジグ装置１６、操作部（図示略）、工具交換装置３０等を備える。コラム３は基台２の上部に立設する。コラム３は角柱状である。主軸ヘッド７はコラム３の前面に昇降可能に設けてある。主軸ヘッド７はＺモータ５１にてＺ軸方向に駆動する。Ｚモータ５１はコラム３の上部に設けてある。主軸９は主軸ヘッド７の下部に設けてある。主軸９は工具Ｔを装着する装着穴（図示略）を有し主軸モータ５２の駆動により回転する。主軸モータ５２は主軸ヘッド７の上部に設けてある。作業台１５は主軸９の下方に設けてある。作業台１５はガイド機構（図示省略）にてＸ軸方向とＹ軸方向に移動可能である。Ｘモータ５３とＹモータ５４（図３参照）は作業台１５をＸ軸方向とＹ軸方向に駆動する。ジグ装置１６は作業台１５の上面に設けてある。
【００１６】
図１に示す如く、ジグ装置１６は固定台１７、右側支持部１８、左側支持部１９を備える。固定台１７は作業台１５の上面に固定してある。右側支持部１８と左側支持部１９は固定台１７の上面にＸ軸方向に互いに離間して立設する。右側支持部１８と左側支持部１９は被加工物５を両側から回転可能に支持する。
【００１７】
操作部は工作機械１を取り囲むカバー（図示略）の壁面に設けてある。操作部は表示部１１と入力部１２（図３参照）等を備える。表示部１１は例えば操作画面、設定画面、加工プログラム等の各種画面を表示する。入力部１２は例えば各種入力、指示、設定等を行う。
【００１８】
次に、工具交換装置３０について説明する。以下説明は、主軸９に現在装着する工具を現工具Ｔ１と称する。工具マガジン３１内の割出位置に割り出した次に使用する工具を次工具Ｔ２と称する。工具を総称する場合は工具Ｔと称する。図１に示す如く、工具交換装置３０は工具マガジン３１、マガジンモータ５５、工具交換アーム４０、工具交換モータ５７等を備える。工具マガジン３１は複数の工具ポット３２（図２の第一工程参照）を格納する。工具ポット３２は工具Ｔを支持する。工具ポット３２は横方向に向けた状態で格納してある。故に工具Ｔは横向きである（図１参照）。工具マガジン３１は移送機構を備える。移送機構は複数の工具ポット３２を搬送経路に沿って搬送する。搬送経路は側面視横長円形状である。マガジンモータ５５は工具マガジン３１の上部に設けてある。マガジンモータ５５は移送機構を駆動する。
【００１９】
図１に示す如く、工具マガジン３１は割出口３７、ポット駆動機構５６（図３参照）を更に備える。割出口３７は搬送経路の下部に設けてある。割出口３７に対応する工具ポット３２は準備位置から待機位置まで回動可能である。準備位置の工具Ｔは横向きである。待機位置の工具Ｔは割出口３７において下向きである。ポット駆動機構５６は割出口３７にある次工具Ｔ２の工具ポット３２を準備位置又は待機位置に回動する。
【００２０】
図１，図２に示す如く、工具交換アーム４０はアーム旋回軸４１とアーム部４２を備える。アーム旋回軸４１はＺ軸方向に対して平行に延設する。アーム旋回軸４１は回転可能及び上下動可能に設けてある。アーム部４２はアーム旋回軸４１の下端部に直交し且つ略水平に延設している。アーム部４２は両端部に一対の把持部４３を備える。各把持部４３は工具を把持可能である。アーム部４２はアーム旋回軸４１を中心に旋回可能である。工具交換モータ５７は工具交換アーム４０を駆動する。工具交換アーム４０は１８０°旋回して現工具Ｔ１と次工具Ｔ２を入れ替え交換する。
【００２１】
次に、工具交換工程の一般的な流れについて説明する。図２に示す如く、工具交換工程は例えば第一工程、第二工程、第三工程、第四工程、第五工程を備える。第一工程では、被加工物５の加工後において、主軸ヘッド７と工具マガジン３１が工具交換位置まで上昇する。第二工程では、工具マガジン３１の割出口３７において次工具Ｔ２の工具ポット３２が準備位置から待機位置まで回動する。次工具Ｔ２は割出口３７から下降する。第三工程では、工具交換アーム４０が現工具Ｔ１と次工具Ｔ２を掴んで両工具を引き抜いて１８０°旋回する。第四工程では、工具交換アーム４０が次工具Ｔ２を主軸９に装着し、工具マガジン３１内に戻した工具Ｔを準備位置まで回動して上昇する。第五工程は、主軸ヘッド７と工具マガジン３１を被加工物５に向けて下降し加工を再開する。
【００２２】
後述するが、本実施形態の数値制御装置２０は加工プログラムを先読みする。本実施形態は工具交換前の最後の軸移動時に、工具ポット３２を下降した状態の次工具Ｔ２が被加工物５又はジグ装置１６に干渉しない場合のみ、工具交換前の軸移動時に工具ポット３２を先に倒して下降しておく。故に本実施形態は工具交換時の第二工程を省略できるので加工時間を短縮できる。
【００２３】
次に、工作機械１の電気的構成について説明する。図３に示す如く、工作機械１は数値制御装置２０を備える。数値制御装置２０はＣＰＵ２１、ＲＯＭ２２、ＲＡＭ２３、不揮発性記憶装置２４、入力インタフェース２５、出力インタフェース２６等を備える。ＣＰＵ２１は工作機械１の動作を統括制御する。ＲＯＭ２１は制御プログラム等を記憶する。ＲＡＭ２３は後述する各種記憶領域を備える。不揮発性記憶装置２４は加工プログラム及び後述する干渉パラメータ等の各種情報を記憶する。
【００２４】
入力インタフェース２５には例えば入力部１２、アームセンサ６１、Ｚ軸原点センサ６２、ポット上昇センサ６３、ポット下降センサ６４等が接続してある。アームセンサ６１は、工具交換アーム４０のアーム旋回動作の１サイクルの動作終了を検出する。Ｚ軸原点センサ６２は、主軸ヘッド７のＺ軸原点を検出する。Ｚ軸原点は主軸ヘッド７の工具交換高さ位置である。ポット上昇センサ６３は、工具ポット３２が準備位置にあることを検出する。ポット下降センサ６４は、工具ポット３２が下降して待機位置にあることを検出する。ＣＰＵ２１はアームセンサ６１の検出信号に基づき工具交換アーム４０の動作制御を行う。ＣＰＵ２１はＺ軸原点センサ６２の検出信号に基づき主軸ヘッド７の位置決め制御を行う。ＣＰＵ２１はポット上昇センサ６３とポット下降センサ６４の各検出信号に基づきポット駆動機構５６の制御を行う。
【００２５】
出力インタフェース２６には例えばＺモータ５１、主軸モータ５２、Ｘモータ５３、Ｙモータ５４、マガジンモータ５５、ポット駆動機構５６、工具交換モータ５７、表示部１１等が接続してある。Ｚモータ５１にはエンコーダ５１Ａが接続してある。主軸モータ５２にはエンコーダ５２Ａが接続してある。Ｘモータ５３にはエンコーダ５３Ａが接続してある。Ｙモータ５４にはエンコーダ５３Ａが接続してある。マガジンモータ５５にはエンコーダ５５Ａが接続してある。工具交換モータ５７にはエンコーダ５７Ａが接続してある。エンコーダ５１Ａ〜５５Ａ，５７Ａは各モータ５１〜５７の各回転角を検出する。エンコーダ５１Ａ〜５５Ａ，５７Ａは入力インタフェース２５に接続してある。エンコーダ５１Ａ〜５５Ａ、５７Ａからの信号は入力インタフェース２５に入力する。故にＣＰＵ２１は、Ｚモータ５１、主軸モータ５２、Ｘモータ５３、Ｙモータ５４、マガジンモータ５５、ポット駆動機構５６、工具交換モータ５７等の速度制御を行う。
【００２６】
各工具ポット３２はポット識別板６６を備える。ポット識別板６６は工具ポット３２と一体的に移動する。ポット識別板６６は光透過部（図示略）を備える。光透過部は工具ポット３２毎に異なるパターンを有する。工具マガジン３１は識別センサ６５を備える。識別センサ６５は投光素子６７と受光素子６８を備える。投光素子６７と受光素子６８はポット識別板６６を挟んで対向配置する。投光素子６７は出力インタフェース２６に接続してある。受光素子６８は入力インタフェース２５に接続してある。識別センサ６５は受光素子６８からの信号に基づき工具マガジン３１の割出口３７に何れの工具ポット３２を搬送したかを検出する。ＣＰＵ２１は受光素子６８からの信号に基づき工具Ｔの位置決め制御を行う。
【００２７】
次に、ＲＡＭ２３の各種記憶領域について説明する。図４に示す如く、ＲＡＭ２３は、先読みブロック記憶領域２３１、軸移動ブロック記憶領域２３２、軸移動範囲記憶領域２３３、生成指令記憶領域２３４等を備える。先読みブロック記憶領域２３１は先読みブロック番号Ｊを記憶する。先読みブロック番号ＪはＣＰＵ２１が加工プログラムを先読み中のブロック番号である。軸移動ブロック記憶領域２３２は軸移動ブロック番号Ｋを記憶する。軸移動ブロック番号Ｋは主軸９の軸移動を指示するブロック番号である。軸移動範囲記憶領域２３３は後述する送り軸毎の軸移動パラメータを記憶する。生成指令記憶領域２３４は先読みしたブロックに基づき生成した指令を記憶する。
【００２８】
次に、干渉パラメータについて説明する。図１に示す如く、作業台１５上にはジグ装置１６を設けている。上述の通りジグ装置１６は被加工物５を回転可能に支持する。本実施形態は、工具ポット３２を下げた状態の次工具Ｔ２が被加工物５又はジグ装置１６に干渉する干渉領域の大きさを干渉パラメータで予め設定する。干渉パラメータは入力部１２で入力する。入力した干渉パラメータは不揮発性記憶装置２４（図３参照）に記憶してある。
【００２９】
図５，図６は被加工物５及びジグ装置１６の干渉領域を示す。干渉領域は二点鎖線の内側の領域である。干渉領域を示す干渉パラメータは、干渉領域Ｘｍａｘ、干渉領域Ｘｍｉｎ、干渉領域Ｙｍａｘ、干渉領域Ｙｍｉｎ、干渉領域Ｚである。干渉領域Ｘｍａｘは加工原点ＱからＸの＋方向（右方向）におけるジグ装置１６の右側支持部１８の最端部までの領域である。干渉領域Ｘｍｉｎは加工原点ＱからＸの−方向（左方向）におけるジグ装置１６の左側支持部１９の最端部までの領域である。干渉領域Ｙｍａｘは加工原点ＱからＹの＋方向（後方）におけるジグ装置１６又は被加工物５の最端部までの領域である。干渉領域Ｙｍｉｎは加工原点ＱからＹの−方向（前方）におけるジグ装置１６又は被加工物５の最端部までの領域である。干渉領域Ｚは加工原点ＱからＺ方向（上方向）におけるジグ装置１６の左側支持部１９又は被加工物５の最端部までの領域である。
【００３０】
なお本実施形態では、工具ポット３２が下降した状態の次工具Ｔ２はジグ装置１６の右側支持部１８までは移動しない。次工具Ｔ２はジグ装置１６の右側支持部１８には干渉しない。故に干渉領域Ｚは右側支持部１８を考慮する必要はない。
【００３１】
次に、主軸工具長Ｐ１、次工具長Ｐ２、主軸次工具間距離Ｌについて説明する。図７に示す如く、主軸工具長Ｐ１は例えば主軸９の先端から下方に突出する工具Ｔ１の先端までの長さである。次工具長Ｐ２は例えば工具マガジン３１の割出位置から下方に突出する状態の工具Ｔ２の先端までの長さである。主軸次工具間距離Ｌは主軸９の軸中心と次工具Ｔ２の軸中心との間の距離である。
【００３２】
次に、軸移動範囲について説明する。軸移動範囲は、ＣＰＵ２１が実行する加工プログラムのブロック毎において実際に軸移動する範囲である。軸移動範囲はＮＸｍａｘ、ＮＸｍｉｎ、ＮＹｍａｘ、ＮＹｍｉｎ、ＮＺｍｉｎの軸移動パラメータで示す。軸移動パラメータの算出方法は以下の通りである。算出した軸移動パラメータはＲＡＭ２３の軸移動範囲記憶領域２３３（図４参照）に記憶する。
・ＮＸｍａｘ＝（主軸ヘッド７移動時の最大Ｘ座標）−主軸次工具間距離Ｌ
・ＮＸｍｉｎ＝（主軸ヘッド７移動時の最小Ｘ座標）−主軸次工具間距離Ｌ
・ＮＹｍａｘ＝（主軸ヘッド７移動時の最大Ｙ座標）
・ＮＹｍｉｎ＝（主軸ヘッド７移動時の最小Ｙ座標）
・ＮＺｍｉｎ＝（主軸ヘッド７移動時の最小Ｚ座標）−（主軸工具長Ｐ１−次工具長Ｐ２）
【００３３】
次に、ＣＰＵ２１による加工制御処理について図９のフローチャートを参照して説明する。本実施例は説明の便宜上、図８の加工プログラムを実行する場合を一例として説明する。先ず本実施例の前提条件を以下説明する。
【００３４】
図８に示す加工プログラムの内容について説明する。尚、主軸９には既に工具番号４８番が装着されている。加工プログラムは表示部１１に表示可能である。加工開始位置は加工原点設定時の位置である。加工開始位置は（Ｘ＝０，Ｙ＝０，Ｚ＝２５）とする。加工プログラムはＮ０１〜Ｎ０８の計八個のブロックを備える。Ｇ５５は加工原点の設定。「Ｇ００  Ｘ５５．  Ｙ０．  Ｚ５．」は（Ｘ＝５５，Ｙ＝０，Ｚ５）の位置へ移動。「Ｇ００  Ｚ２０．」は（Ｘ＝５５，Ｙ＝０，Ｚ２０）の位置へ移動。「Ｇ１００  Ｔ４９  Ｌ１４  Ｚ２０．」は工具番号４８番から４９番に工具交換し、工具交換後工具１４番を次工具Ｔ２に設定。「Ｇ００  Ｘ−６５．  Ｙ０．Ｚ８．」は（Ｘ＝−６５，Ｙ＝０，Ｚ８）の位置へ移動。「Ｇ００  Ｚ２０．」は（Ｘ＝−６５，Ｙ＝０，Ｚ２０）の位置へ移動。「Ｇ１００  Ｔ１４」は工具番号４９番から１４番に工具交換。Ｍ３０は運転終了を示す指令である。
【００３５】
干渉パラメータは図５，図６に示す如く設定する。
・干渉領域Ｘｍａｘ  ＝    １５０ｍｍ
・干渉領域Ｘｍｉｎ  ＝  −１５０ｍｍ
・干渉領域Ｙｍａｘ  ＝    １００ｍｍ
・干渉領域Ｙｍｉｎ  ＝  −１００ｍｍ
・干渉領域Ｚ        ＝      １０ｍｍ
【００３６】
加工プログラム中に設定した工具番号４８、４９、１４の各工具について説明する。工具番号４８は主軸９に装着済みの現工具Ｔ１である。主軸工具長Ｐ１は９０ｍｍである。工具番号４９は工具マガジン３１の割出位置に割り出した次工具Ｔ２である。次工具長Ｐ２は１００ｍｍである。工具番号１４の工具長９８ｍｍである。主軸９と次工具Ｔ２との間の距離Ｌは２００ｍｍである。
【００３７】
本実施例は上記各種条件を前提とする。作業者は操作部の入力部１２にて加工プログラムの実行を指示する。ＣＰＵ２１はＲＯＭ２２に記憶した制御プログラムを読み込んで本処理を開始する。ＣＰＵ２１は不揮発性記憶装置２４に記憶した加工プログラムを読み出し先読みを開始する（Ｓ１０）。ＣＰＵ２１は先読みしたブロック（以下先読みブロックと称す）が先頭ブロックか否か判断する（Ｓ１１）。先読みブロックはＮ０１の先頭ブロックであるので（Ｓ１１：ＹＥＳ）、各種パラメータ等を初期化する（Ｓ１２）。ＣＰＵ２１は、ＲＡＭ２３に記憶した先読みブロック番号Ｊ、軸移動パラメータ等の各種情報を全てリセットする。
【００３８】
ＣＰＵ２１は先読みブロック番号Ｊに１加算する（Ｓ１３）。Ｊの初期値は０なので、先読みブロック番号Ｊは１となる。ＣＰＵ２１は先読みブロックがＧ１００を含むか否か判断する（Ｓ１４）。ＣＰＵ２１は先読みブロックがＧ１００を含んでいないと判断した場合は（Ｓ１４：ＮＯ）、軸移動の指令（Ｇ００）を含むか否か判断する（Ｓ１８）。Ｎ０１はＧ５５である。Ｇ５５は加工原点の設定であるので（Ｓ１４：ＮＯ、Ｓ１８：ＮＯ）、加工原点の設定の制御指令を生成する（Ｓ２１）。ＣＰＵ２１は生成指令をＲＡＭ２３の生成指令記憶領域２３４にブロック毎に記憶する（Ｓ２２）。ＣＰＵ２１は先読みブロック番号Ｊは２以上か否か判断する（Ｓ２３）。本実施例は先頭ブロックを先読みしただけであるので（Ｓ２３：ＮＯ）、次ブロックに移行する（Ｓ２７）。
【００３９】
ＣＰＵ２１はＮ０２のブロックを先読みし（Ｓ１１：ＮＯ）、ＲＡＭ２３に記憶した先読みブロック番号Ｊに１加算する（Ｓ１３）。先読みブロック番号Ｊは２となる。Ｎ０２のブロックはＧ００を含む軸移動のブロックである（Ｓ１４：ＮＯ、Ｓ１８：ＹＥＳ）。故にＣＰＵ２１は軸移動パラメータを算出してＲＡＭ２３の軸移動範囲記憶領域２３３に記憶する（Ｓ１９）。始点は（Ｘ＝０，Ｙ＝０，Ｚ＝２５）、終点は（Ｘ＝５５，Ｙ＝０，Ｚ＝５）である。軸移動パラメータの算出方法は以下の通りである。
・ＮＸｍａｘ＝５５−２００＝−１４５
・ＮＸｍｉｎ＝０−２００＝−２００
・ＮＹｍａｘ＝０
・ＮＹｍｉｎ＝０
・ＮＺｍｉｎ＝（２５）−（９０−１００）＝１５
【００４０】
ブロック番号Ｎ０２は軸移動のブロックである。故にＣＰＵ２１は軸移動ブロック番号Ｋに、先読みブロック番号Ｊ＝２を代入し、ＲＡＭ２３の軸移動ブロック記憶領域２３２に記憶する（Ｓ２０）。軸移動ブロック番号Ｋは２となる。ＣＰＵ２１は（Ｘ＝５５，Ｙ＝０，Ｚ＝５）の軸移動指令を生成する（Ｓ２１）。ＣＰＵ２１は生成した軸移動指令をブロック番号に対応付けてＲＡＭ２３の生成指令記憶領域２３４に記憶する（Ｓ２２）。
【００４１】
ＣＰＵ２１は先読みブロック番号Ｊは２以上か否か判断する（Ｓ２３）。本実施例は２ブロック目まで先読みしたので（Ｓ２３：ＹＥＳ）、Ｊ−１番目のブロックの生成指令を実行する（Ｓ２４）。先読みブロック番号Ｊは２であるのでＪ−１は１である。Ｎ０１のブロックの生成指令はＲＡＭ２３の生成指令記憶領域２３４に記憶してある。ＣＰＵ２１はＮ０１のブロックの指令を実行する。ＣＰＵ２１は加工原点（Ｘ＝０，Ｙ＝０，Ｚ＝２５）を設定する。ＣＰＵ２１は先読みする次ブロックがあるか否か判断する（Ｓ２５）。ＣＰＵ２１は先読みするＮ０３のブロックがあるので（Ｓ２５：ＹＥＳ）、次ブロックに移行する（Ｓ２７）。
【００４２】
ＣＰＵ２１はＮ０３のブロックを先読みし（Ｓ１１：ＮＯ）、ＲＡＭ２３に記憶した先読みブロック番号Ｊに１加算する（Ｓ１３）。先読みブロック番号Ｊは３となる。Ｎ０３のブロックもＧ００を含む軸移動のブロックである（Ｓ１４：ＮＯ、Ｓ１８：ＹＥＳ）。故にＣＰＵ２１は軸移動パラメータを算出してＲＡＭ２３の軸移動範囲記憶領域２３３に記憶する（Ｓ１９）。始点は（Ｘ＝５５，Ｙ＝０，Ｚ＝５）、終点は（Ｘ＝５５，Ｙ＝０，Ｚ＝２０）である。軸移動パラメータの算出方法は以下の通りである。
・ＮＸｍａｘ＝５５−２００＝−１４５
・ＮＸｍｉｎ＝５５−２００＝−１４５
・ＮＹｍａｘ＝０
・ＮＹｍｉｎ＝０
・ＮＺｍｉｎ＝５＋（９０−１００）＝−５
【００４３】
ブロック番号Ｎ０３は軸移動のブロックである。故にＣＰＵ２１は軸移動ブロック番号Ｋに、先読みブロック番号Ｊ＝３を代入して更新し、ＲＡＭ２３の軸移動ブロック記憶領域２３２に記憶する（Ｓ２０）。軸移動ブロック番号Ｋは３となる。ＣＰＵ２１は（Ｘ＝５５，Ｙ＝０，Ｚ＝２０）の軸移動指令を生成する（Ｓ２１）。ＣＰＵ２１は生成した軸移動指令をブロック番号に対応付けてＲＡＭ２３の生成指令記憶領域２３４に記憶する（Ｓ２２）。
【００４４】
ＣＰＵ２１は先読みブロック番号Ｊは２以上か否か判断する（Ｓ２３）。本実施例は３ブロック目まで先読みしたので（Ｓ２３：ＹＥＳ）、Ｊ−１番目のブロックの生成指令を実行する（Ｓ２４）。先読みブロック番号Ｊは３であるのでＪ−１は２である。Ｎ０２のブロックの生成指令はＲＡＭ２３の生成指令記憶領域２３４に記憶してある。ＣＰＵ２１は（Ｘ＝５５，Ｙ＝０，Ｚ＝５）の位置への軸移動を実行する。ＣＰＵ２１は先読みする次ブロックがあるか否か判断する（Ｓ２５）。ＣＰＵ２１は先読みするＮ０４のブロックがあるので（Ｓ２５：ＹＥＳ）、次ブロックに移行する（Ｓ２７）。
【００４５】
ＣＰＵ２１はＮ０４のブロックを先読みし（Ｓ１１：ＮＯ）、ＲＡＭ２３に記憶した先読みブロック番号Ｊに１加算する（Ｓ１３）。先読みブロック番号Ｊは４となる。Ｎ０４のブロックはＧ１００を含むブロックである（Ｓ１４：ＹＥＳ）。Ｇ１００は工具交換の指令である。ＣＰＵ２１は軸移動ブロック番号Ｋの軸移動パラメータをＲＡＭ２３の軸移動範囲記憶領域２３３から取得する（Ｓ１５）。現在の軸移動ブロック番号Ｋは３である。故にＣＰＵ２１はＮ０３の軸移動パラメータを取得する。ＣＰＵ２１は取得した軸移動パラメータが非干渉条件を満たすか否か判断する（Ｓ１６）。非干渉条件は、工具ポット３２が下降した状態の次工具Ｔ２が軸移動時に被加工物５及びジグ装置１６に干渉しない為の条件である。非干渉条件は五つの条件を備える。五つの条件は軸移動パラメータで以下の様に示すことができる。
【００４６】
・条件１：ＮＸｍｉｎとＮＸｍａｘともに干渉領域Ｘｍｉｎより小さい。
・条件２：ＮＸｍｉｎとＮＸｍａｘともに干渉領域Ｘｍａｘより大きい。
・条件３：ＮＹｍｉｎとＮＹｍａｘともに干渉領域Ｙｍｉｎより小さい。
・条件４：ＮＹｍｉｎとＮＹｍａｘともに干渉領域Ｙｍｉｎより大きい。
・条件５：ＮＺｍｉｎが干渉領域Ｚよりも大きい。
軸移動パラメータが条件１〜５の何れか一つでも満たす場合、次工具Ｔ２は干渉しない。軸移動パラメータが条件１〜５の全てを満たさない場合、次工具Ｔ２は干渉する。
【００４７】
上述の通り、Ｎ０３の軸移動パラメータは、ＮＸｍｉｎ＝−１４５、ＮＸｍａｘ＝−１４５、ＮＹｍｉｎ＝０、Ｎｍａｘ＝０、ＮＺｍｉｎ＝−５である。干渉パラメータは、上述の通り、干渉領域Ｘｍｉｎ＝−１５０、干渉領域Ｘｍａｘ＝１５０、干渉領域Ｙｍｉｎ＝−１００、干渉領域Ｙｍａｘ＝１００、干渉領域Ｚ＝１０である。
【００４８】
条件１〜５にあてはめると、Ｎ０３の軸移動パラメータは条件１〜５の何れも満たさない。Ｎ０３で工具ポット３２を下降すると、次工具Ｔ２が被加工物５及びジグ装置１６に干渉する。故にＣＰＵ２１はＮ０３の生成指令にポット加工指令を追加することなく、Ｎ０４の制御指令を生成する（Ｓ２１）。Ｎ０４の制御指令は、工具番号４８番から４９番に工具交換し、工具交換後１４番を次工具Ｔ２に設定する指令である。ＣＰＵ２１は生成した工具交換指令をブロック番号に対応付けてＲＡＭ２３の生成指令記憶領域２３４に記憶する（Ｓ２２）。
【００４９】
ＣＰＵ２１は先読みブロック番号Ｊは２以上か否か判断する（Ｓ２３）。本実施例は４ブロック目まで先読みしたので（Ｓ２３：ＹＥＳ）、Ｊ−１番目のブロックの生成指令を実行する（Ｓ２４）。先読みブロック番号Ｊは４であるのでＪ−１は３である。Ｎ０３のブロックの生成指令はＲＡＭ２３の生成指令記憶領域２３４に記憶してある。ＣＰＵ２１は（Ｘ＝５５，Ｙ＝０，Ｚ＝２０）の位置への軸移動を実行する。ＣＰＵ２１は先読みする次ブロックがあるか否か判断する（Ｓ２５）。ＣＰＵ２１は先読みするＮ０５のブロックがあるので（Ｓ２５：ＹＥＳ）、次ブロックに移行する（Ｓ２７）。
【００５０】
ＣＰＵ２１はＮ０５のブロックを先読みし（Ｓ１１：ＮＯ）、ＲＡＭ２３に記憶した先読みブロック番号Ｊに１加算する（Ｓ１３）。先読みブロック番号Ｊは５となる。Ｎ０５のブロックはＧ００を含む軸移動のブロックである（Ｓ１４：ＮＯ、Ｓ１８：ＹＥＳ）。故にＣＰＵ２１は軸移動パラメータを算出してＲＡＭ２３の軸移動範囲記憶領域２３３に記憶する（Ｓ１９）。始点は（Ｘ＝５５，Ｙ＝０，Ｚ＝２０）、終点は（Ｘ＝−６５，Ｙ＝０，Ｚ＝８）である。軸移動パラメータの算出方法は以下の通りである。
・ＮＸｍａｘ＝５５−２００＝−１４５
・ＮＸｍｉｎ＝−６５−２００＝−２６５
・ＮＹｍａｘ＝０
・ＮＹｍｉｎ＝０
・ＮＺｍｉｎ＝８＋（１００−９８）＝１０
【００５１】
ブロック番号Ｎ０５は軸移動のブロックである。故にＣＰＵ２１は軸移動ブロック番号Ｋに、先読みブロック番号Ｊ＝５を代入して更新し、ＲＡＭ２３の軸移動ブロック記憶領域２３２に記憶する（Ｓ２０）。軸移動ブロック番号Ｋは５となる。ＣＰＵ２１は（Ｘ＝−６５，Ｙ＝０，Ｚ＝８）の軸移動指令を生成する（Ｓ２１）。ＣＰＵ２１は生成した軸移動指令をブロック番号に対応付けてＲＡＭ２３の生成指令記憶領域２３４に記憶する（Ｓ２２）。
【００５２】
ＣＰＵ２１は先読みブロック番号Ｊは２以上か否か判断する（Ｓ２３）。本実施例は５ブロック目まで先読みしたので（Ｓ２３：ＹＥＳ）、Ｊ−１番目のブロックの生成指令を実行する（Ｓ２４）。先読みブロック番号Ｊは５であるのでＪ−１は４である。Ｎ０４のブロックの生成指令はＲＡＭ２３の生成指令記憶領域２３４に記憶してある。ＣＰＵ２１はＮ０４のブロックの指令を実行する。ＣＰＵ２１は工具交換装置３０を制御して、図２に示す工具交換工程を行う。工作機械１は工具交換工程の第一〜第五工程まで行い、工具番号４８番から４９番への工具交換を実行する。ＣＰＵ２１は更に工具交換後１４番を次工具Ｔ２に設定する。ＣＰＵ２１は先読みする次ブロックがあるか否か判断する（Ｓ２５）。ＣＰＵ２１は先読みするＮ０６のブロックがあるので（Ｓ２５：ＹＥＳ）、次ブロックに移行する（Ｓ２７）。
【００５３】
ＣＰＵ２１はＮ０６のブロックを先読みし（Ｓ１１：ＮＯ）、ＲＡＭ２３に記憶した先読みブロック番号Ｊに１加算する（Ｓ１３）。先読みブロック番号Ｊは６となる。Ｎ０６のブロックはＧ００を含む軸移動のブロックである（Ｓ１４：ＮＯ、Ｓ１８：ＹＥＳ）。故にＣＰＵ２１は軸移動パラメータを算出してＲＡＭ２３の軸移動範囲記憶領域２３３に記憶する（Ｓ１９）。始点は（Ｘ＝−６５，Ｙ＝０，Ｚ＝８）、終点は（Ｘ＝−６５，Ｙ＝０，Ｚ＝２０）である。軸移動パラメータの算出方法は以下の通りである。
・ＮＸｍａｘ＝−６５−２００＝−２６５
・ＮＸｍｉｎ＝−６５−２００＝−２６５
・ＮＹｍａｘ＝０
・ＮＹｍｉｎ＝０
・ＮＺｍｉｎ＝８＋（１００−９８）＝１０
【００５４】
ブロック番号Ｎ０６は軸移動のブロックである。故にＣＰＵ２１は軸移動ブロック番号Ｋに、先読みブロック番号Ｊ＝６を代入して更新し、ＲＡＭ２３の軸移動ブロック記憶領域２３２に記憶する（Ｓ２０）。軸移動ブロック番号Ｋは６となる。ＣＰＵ２１は（Ｘ＝−６５，Ｙ＝０，Ｚ＝２０）の軸移動指令を生成する（Ｓ２１）。ＣＰＵ２１は生成した軸移動指令をブロック番号に対応付けてＲＡＭ２３の生成指令記憶領域２３４に記憶する（Ｓ２２）。
【００５５】
ＣＰＵ２１は先読みブロック番号Ｊは２以上か否か判断する（Ｓ２３）。本実施例は６ブロック目まで先読みしたので（Ｓ２３：ＹＥＳ）、Ｊ−１番目のブロックの生成指令を実行する（Ｓ２４）。先読みブロック番号Ｊは６であるのでＪ−１は５である。Ｎ０５のブロックの生成指令はＲＡＭ２３の生成指令記憶領域２３４に記憶してある。ＣＰＵ２１は（Ｘ＝−６５，Ｙ＝０，Ｚ＝８）の位置への軸移動を実行する。ＣＰＵ２１は先読みする次ブロックがあるか否か判断する（Ｓ２５）。ＣＰＵ２１は先読みするＮ０７のブロックがあるので（Ｓ２５：ＹＥＳ）、次ブロックに移行する（Ｓ２７）。
【００５６】
ＣＰＵ２１はＮ０７のブロックを先読みし（Ｓ１１：ＮＯ）、ＲＡＭ２３に記憶した先読みブロック番号Ｊに１加算する（Ｓ１３）。先読みブロック番号Ｊは７となる。Ｎ０７のブロックはＧ１００を含むブロックである（Ｓ１４：ＹＥＳ）。ＣＰＵ２１は軸移動ブロック番号Ｋの軸移動パラメータをＲＡＭ２３の軸移動範囲記憶領域２３３から取得する（Ｓ１５）。現在の軸移動ブロック番号Ｋは６である。故にＣＰＵ２１はＮ０６の軸移動パラメータを取得する。ＣＰＵ２１は取得した軸移動パラメータが非干渉条件を満たすか否か判断する（Ｓ１６）。非干渉条件は上記の通りである。
【００５７】
上述の通り、Ｎ０６の軸移動パラメータは、ＮＸｍｉｎ＝−２６５、ＮＸｍａｘ＝−２６５、ＮＹｍｉｎ＝０、Ｎｍａｘ＝０、ＮＺｍｉｎ＝１０である。干渉パラメータは、上述の通り、干渉領域Ｘｍｉｎ＝−１５０、干渉領域Ｘｍａｘ＝１５０、干渉領域Ｙｍｉｎ＝−１００、干渉領域Ｙｍａｘ＝１００、干渉領域Ｚ＝１０である。
【００５８】
条件１〜５にあてはめると、Ｎ０６の軸移動パラメータは条件１を満たしている。即ち、ＮＸｍｉｎ（−２６５）とＮＸｍａｘ（−２６５）ともに干渉領域Ｘｍｉｎ（−１５０）より小さい。Ｎ０６で工具ポット３２を先に下方に倒しても、次工具Ｔ２は被加工物５及びジグ装置１６に干渉しない。故にＣＰＵ２１は軸移動を含むＮ０６の生成指令にポット下降指令を追加する（Ｓ１７）。ＣＰＵ２１はＮ０７の制御指令を生成する（Ｓ２１）。Ｎ０７の制御指令は、工具番号４９番から１４番に工具交換を行う指令である。ＣＰＵ２１は生成した工具交換指令をブロック番号に対応付けてＲＡＭ２３の生成指令記憶領域２３４に記憶する（Ｓ２２）。
【００５９】
ＣＰＵ２１は先読みブロック番号Ｊは２以上か否か判断する（Ｓ２３）。本実施例は７ブロック目まで先読みしたので（Ｓ２３：ＹＥＳ）、Ｊ−１番目のブロックの生成指令を実行する（Ｓ２４）。先読みブロック番号Ｊは７であるのでＪ−１は６である。Ｎ０６のブロックの生成指令はＲＡＭ２３の生成指令記憶領域２３４に記憶してある。Ｎ０６のブロックの指令にはポット下降指令が追加してある。ＣＰＵ２１は（Ｘ＝−６５，Ｙ＝０，Ｚ＝２０）の位置への軸移動と同時に、次工具Ｔ２の工具ポット３２を下降する。工具ポット３２を下方に倒しても、次工具Ｔ２は被加工物５及びジグ装置１６に干渉しない。ＣＰＵ２１は先読みする次ブロックがあるか否か判断する（Ｓ２５）。ＣＰＵ２１は先読みするＮ０８のブロックがあるので（Ｓ２５：ＹＥＳ）、次ブロックに移行する（Ｓ２７）。
【００６０】
ＣＰＵ２１はＮ０８のブロックを先読みし（Ｓ１１：ＮＯ）、ＲＡＭ２３に記憶した先読みブロック番号Ｊに１加算する（Ｓ１３）。先読みブロック番号Ｊは８となる。Ｎ０８のブロックはＭ３０を含むブロックである（Ｓ１４：ＮＯ、Ｓ１８：ＮＯ）。ＣＰＵ２１は終了指令を生成する（Ｓ２１）。ＣＰＵ２１は生成した終了指令をブロック番号に対応付けてＲＡＭ２３の生成指令記憶領域２３４に記憶する（Ｓ２２）。
【００６１】
ＣＰＵ２１は先読みブロック番号Ｊは２以上か否か判断する（Ｓ２３）。本実施例は８ブロック目まで先読みしたので（Ｓ２３：ＹＥＳ）、Ｊ−１番目のブロックの生成指令を実行する（Ｓ２４）。先読みブロック番号Ｊは８であるのでＪ−１は７である。Ｎ０７のブロックの生成指令はＲＡＭ２３の生成指令記憶領域２３４に記憶してある。ＣＰＵ２１はＮ０６の軸移動時に、次工具Ｔ２の工具ポット３２を先に倒している。故にＣＰＵ２１は図２に示す工具交換工程の第二工程を行う必要はない。ＣＰＵ２１は第二工程を除く工具交換工程を行い、工具番号４９番から１４番への工具交換を実行する。ＣＰＵ２１は第二工程をすることなく工具交換を実行するので加工時間を短縮できる。
【００６２】
ＣＰＵ２１は先読みする次ブロックがあるか否か判断する（Ｓ２５）。ＣＰＵ２１は先読みするブロックが無いので（Ｓ２５：ＮＯ）、先読みブロック番号Ｊの指令を実行するする（Ｓ２６）。先読みブロック番号Ｊは８である。Ｎ０８のブロックの生成指令はＲＡＭ２３の生成指令記憶領域２３４に記憶してある。ＣＰＵ２１はＮ０８のブロックの終了指令を実行し、本処理を終了する。
【００６３】
以上説明において、図３の不揮発性記憶装置２４が本発明の「記憶手段」の一例である。Ｓ１４の処理を実行するＣＰＵ２１が本発明の「工具交換指令判断部」の一例である。Ｓ１５の処理を実行するＣＰＵ２１が本発明の「座標値取得部」の一例である。Ｓ１６の処理を実行するＣＰＵ２１が本発明の「干渉判断部」の一例である。Ｓ１７、Ｓ２１、Ｓ２２、Ｓ２４の処理を実行するＣＰＵ２１が本発明の「ポット移動制御部」の一例である。
【００６４】
以上説明したように、本実施形態の数値制御装置２０は工作機械１を制御する。数値制御装置２０はＣＰＵ２１を備える。ＣＰＵ２１は加工プログラムを先読みする。加工プログラム中に軸移動指令がある場合、主軸ヘッド７の軸移動パラメータを算出する。軸移動パラメータは次工具Ｔ２の送り軸毎の最小座標値と最大座標値である。算出した軸移動パラメータはＲＡＭ２３に記憶する。ＣＰＵ２１は加工プログラム中に工具交換指令がある場合、工具交換前の軸移動を指示するブロックの軸移動パラメータをＲＡＭ２３から取得する。不揮発性記憶装置２４は干渉パラメータを予め記憶する。干渉パラメータは次工具Ｔ２と被加工物５又はジグ装置１６とが干渉する領域を送り軸毎に示す。ＣＰＵ２１は干渉パラメータと軸移動パラメータとに基づき、次工具Ｔ２が被加工物５又はジグ装置１６に干渉するか否か判断する。ＣＰＵ２１は次工具Ｔ２が被加工物５又はジグ装置１６に干渉しないと判断した場合、主軸ヘッド７を工具交換位置に移動する前に、準備位置にある工具ポット３２を待機位置に移動するようにポット駆動機構５６を駆動する。故に本実施形態は次工具Ｔ２が被加工物５やジグ装置１６に干渉しない場合のみ次工具Ｔ２を準備位置まで工具交換前に移動できる。故に工具交換時間は短縮する。加工プログラム中への工具交換指令の挿入は不要である。
【００６５】
本実施形態では特に、図９のＳ１９の軸移動パラメータの算出において、Ｘ軸方向及びＹ軸方向における最小座標値及び最大座標値は、工具交換指令を含むブロックまでの主軸ヘッド７の移動経路において主軸ヘッド７の最も小さい座標値及び最も大きい座標値から主軸次工具間距離Ｌを差し引いた座標値である。故にＣＰＵ２１は工具交換前の軸移動において次工具Ｔ２が被加工物５又はジグ装置１６に干渉するか否かを判断できる。
【００６６】
本実施形態では特に、Ｚ軸方向における最小座標値は、工具交換指令を含むブロックまでの主軸ヘッド７の移動経路において主軸ヘッド７の最も小さい座標値から現工具Ｔ１の工具長から次工具Ｔ２の工具長の差分を差し引いた座標値である。故にＣＰＵ２１はＺ軸方向における最小座標値について現工具Ｔ１と次工具Ｔ２の工具長の差分を考慮できる。故に現工具Ｔ１と次工具Ｔ２の工具長の差によって工具が被加工物５又はジグ装置１６に干渉するのを防止できる。
【００６７】
なお本発明は上記実施の形態に限定されず、様々な変形が可能である。例えば、上記実施形態は、図９のＳ１９の軸移動パラメータの算出において、Ｘ軸方向及びＹ軸方向における最小座標値及び最大座標値から主軸次工具間距離Ｌを差し引いている。例えば主軸次工具間距離Ｌを差し引かなくても上述と同様の効果を得ることができる。特に現工具Ｔ１と次工具Ｔ２の間で被加工物５の加工面の高さに変化が無ければ、現工具Ｔ１の位置で被加工物５又はジグ装置１６に干渉するか否かを判断すればよい。
【００６８】
また上記実施形態は、図９のＳ１９の軸移動パラメータの算出において、Ｚ軸方向における最小座標値から現工具長Ｐ１と次工具長Ｐ２の差分を引いている。例えば現工具長Ｐ１と次工具長Ｐ２の差分を差し引かなくても上述と同様の効果を得ることができる。特に現工具長Ｐ１と次工具長Ｐ２が同じであれば、Ｚ軸方向における最小座標値をそのままＮＺｍｉｎとしてもよい。
【００６９】
また上記実施形態は、作業台１５上にジグ装置１６を設けているが、作業台１５に被加工物５を着脱可能に取り付けるものでもよい。その場合、干渉パラメータは被加工物５に干渉する範囲で設定すればよい。
【符号の説明】
【００７０】
１  工作機械
５  被加工物
７  主軸ヘッド
９  主軸
１６  ジグ装置
２０  数値制御装置
２１  ＣＰＵ
２３  ＲＡＭ
２４  不揮発性記憶装置
３０  工具交換装置
３１  工具マガジン
３２  工具ポット
４０  工具交換アーム
５６  ポット駆動機構
【図１】
2013071203.tif 000003
【図２】
2013071203.tif 000004
【図３】
2013071203.tif 000005
【図４】
2013071203.tif 000006
【図５】
2013071203.tif 000007
【図６】
2013071203.tif 000008
【図７】
2013071203.tif 000009
【図８】
2013071203.tif 000010
【図９】
2013071203.tif 000011