(57)【要約】      （修正有）【課題】干渉しない範囲で、できるだけ短い工具取付け長さになるように工具と工具ホルダを決定する。【解決手段】工具形状に関するデータ、ホルダ取付長さに関するデータ、機械構造物の形状に関するデータ、ワークさに関するデータ、ジグの形状に関するデータと、を用いて、工具取付け長さとホルダの選定を行うことを指令し、加工プログラムのシミュレーションを実行すると共に、前記各データに基づいて前記工具および前記工具ホルダのいずれかと、機械構造物、ワークまたはジグのいずれかとの干渉チェックを開始し、加工プログラムのシミュレーション実行時に干渉チェック部により干渉が発生した場合、工具データあるいは工具ホルダデータに基づいて、工具の取付け長さあるいは工具ホルダのデータを変更し、変更されたデータに基づいて再度干渉チェックを行い工具ホルダと該工具ホルダへの工具取付け長さを決定する。【選択図】図７−１
2012218111.tif 000002
【特許請求の範囲】
【請求項１】
加工プログラムで指定された工具を保持するための工具ホルダ、および該工具ホルダへの工具の取付け長さを決定する機能を有する数値制御装置であって、
前記加工プログラムのシミュレーションを行う加工プログラムシミュレーション部と、
前記加工プログラムで使用される工具の形状に関するデータおよび該工具を工具ホルダに取付ける際の取付け長さのデータを格納する工具データ格納部と、
工具ホルダの形状に関するデータを複数格納する工具ホルダデータ格納部と、
機械構造物の形状に関するデータを格納する機械構造物データ格納部と、
ワークおよびワークを固定するためのジグの形状に関するデータを格納するワークデータ格納部と、
前記各格納部に格納された前記各データに基づいて前記工具および前記工具ホルダのいずれかと、前記機械構造物、前記ワークおよび前記ジグのいずれかとの干渉をチェックする干渉チェック部と、
前記加工プログラムシミュレーション部により加工プログラムのシミュレーション実行時に前記干渉チェック部により干渉が発生した場合、前記工具データあるいは工具ホルダデータに基づいて、工具の取付け長さあるいは工具ホルダのデータを変更し、該変更されたデータに基づいて再度干渉チェックを行い工具ホルダと該工具ホルダへの工具取付け長さを決定することを特徴とする工具ホルダおよび工具ホルダへの工具取付け長さを決定する機能を有する数値制御装置。
【請求項２】
前記干渉チェックは、工具交換指令あるいはプログラムの終了まで行い、干渉した場合に工具の取付け長さあるいは工具ホルダのデータを変更することを特徴とする請求項１に記載の工具ホルダおよび工具ホルダへの工具取付け長さを決定する機能を有する数値制御装置。
【請求項３】
前記工具交換指令時またはプログラム終了時の工具の取付け長さおよび工具ホルダのデータを記憶する記憶部を有することを特徴とする請求項２に記載の工具ホルダおよび工具ホルダへの工具取付け長さを決定する機能を有する数値制御装置。
【請求項４】
前記工具データ格納部は、工具取付け長さを使用可能な範囲で格納しており、
前記干渉チェック部は、前記工具データ格納部で格納した工具取付け長さで最も短い工具取付け長さを使用した状態で開始し、干渉が発生しなくなるまで順次工具取付け長さを長くすることを特徴とする請求項１〜３のいずれか１つに記載の工具ホルダおよび工具ホルダへの工具取付け長さを決定する機能を有する数値制御装置。
【請求項５】
前記工具ホルダデータ格納部は、複数の工具ホルダのホルダ部の径と長さのデータを格納しており、
前記干渉チェック部は、前記工具ホルダデータ格納部に格納された複数の工具ホルダの中で、干渉チェックを行う工具に適用可能なもののうち、ホルダ部の径が最も太く、長さが最も短いホルダを使用した状態で開始し、干渉が発生しなくなるまで、チェックを行う工具に適用可能なものの中から、よりホルダの直径が細く、長さが長いものを使って行うことを特徴とする請求項１〜４のうちのいずれか１つに記載の工具ホルダおよび工具ホルダへの工具取付け長さを決定する機能を有する数値制御装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、工具ホルダおよび工具ホルダへの工具取付け長さを決定する機能を備えた数値制御装置に関する。
【背景技術】
【０００２】
数値制御装置で使われるワーク加工用のプログラム（加工プログラム）を作成する場合、まず工具の形状（例：ボールエンドミルかエンドミルか？）やその直径を決めた後、それを用いて加工を行うための工具軌跡が決められる。なお、加工プログラムを作成する時点では、実際の工具の長さは考慮せず無限に長いとして工具の軌跡が作成されている。これは、オペレータが加工プログラムを作成する場合も、一般的なＣＡＭシステムが使われる場合でも同じである。  
このようにして加工プログラムが作成されるため、図１に示されるように加工プログラムはまず工具を特定するための工具番号（一般にＴコード）の指令があり、その後に、切削を行うための軌跡がプログラム記述されており、これが工具毎に行われる。
【０００３】
以上からわかるように、ある加工プログラムを使って、実際にワークの加工を行うには、加工プログラム中で指定される工具番号の指令により、その加工プログラムの作成時に想定された工具が選択される必要がある。このため、工具のデータの一部（先端形状と直径）は加工プログラムを作成した時点で確定しており、加工プログラムと共に工作機械オペレータに提供される。  
ここで、実際に数値制御装置付きの工作機械（以下、「工作機械」という。）で加工プログラムを用いて加工を行うには、加工を開始する前に、加工プログラムと共に与えられる工具のデータに従い、加工プログラムで使用される全ての工具を適切な工具ホルダ（以下、「ホルダ」という。）に取付けて、これを工作機械の工具交換装置に正しくセットしておく必要がある。換言すると、工作機械では、様々な形状の工具を、加工プログラムからの指令により、工具交換装置で自動的に交換可能とし、加工に使うことができるようにするためにホルダが介在している。
【０００４】
マシニングセンタを例に説明すると（図２参照）、工具３はホルダ２に装着され、工具交換装置８のマガジン７には様々な種類の工具３を装着した複数のホルダ２が格納されており、マガジン７にホルダ２に装着された状態で格納された工具３は工具番号で数値制御装置に特定される。なお、マガジン７に替えてラックも用いられている。様々な工具３が、工具交換装置８を経由して、主軸頭１の主軸に固定するためにホルダ２が使われる。このため、マシニングセンタで使われるホルダ２の場合、主軸頭１の主軸へ取付ける側の形状（主軸への取付け部２ａ）は一定であるが、工具３を固定する部位を含め、主軸と工具３の間の部位は様々な直径、長さのものが存在する。以降、この部位の形状（直径、長さなど）を、単にホルダ形状と称する。
【０００５】
また、図３に示されるように、実際の工具３には先端形状や直径に加えて長さが存在し、工具毎に、ホルダ２に取付け可能な長さの範囲が決まっている。符号１０は工具３の先端形状を表し、先端形状としてはボール形、スクエア形などがある。符号１１は工具３の直径を表し、符号１２は工具３の全長を表し、符号１３は工具３の刃長（刃部の長さ）を表し、符号１４は工具３の最小の把持用長さを表し、符号１５は工具３の最短の工具取付け長さを表し、符号１６は工具３の最長の工具取付け長さを表す。なお、最小の把持用長さ１４は工具３をホルダ２に取付ける時に工具を固定するためホルダ２に食い込ませる必要がある最小の長さである。また、一般に、刃長１３≦最短の工具取付け長さ１５、であるが、刃長１３と最短の工具取付け長さ１５とは図３では同じ長さで図示されている。
【０００６】
図４に示されるように、ホルダ２は、チャック２ｂと呼ばれる本体に、コレット２ｃと呼ばれるアダプタを内挿して、工具３を把持する。紙面右側の図はチャック２ｂにコレット２ｃを内挿し工具３を把持した状態を示す。コレット２ｃには様々な工具直径に対応したものがあり、把持した工具３の直径に適合するコレット２ｃをチャック２ｂに内挿して、このコレット２ｃに工具３を挿入し、固定する。符号２０はホルダ直径を表し、符号２１は工具直径を表し、符号２２はホルダ長さを表し、符号２３は工具取付け長さを表す。
【０００７】
この工具３のホルダ２への挿入量により、工具取付け長さ（＝工具の突き出し量）が決まる。ホルダ２に加工可能なように工具３を把持させるには、ある長さ以上の挿入が必要である。また、図４から明らかなように、挿入できる長さには限界がある。すなわち、使用可能な工具取付け長さは、使用するホルダ２（チャック２ｂやコレット２ｃ）によりその長さが変化する。また、チャック２ｂとコレット２ｃには適合関係があり、例えばＡ形式のチャックにはＡ形式用のコレットを、Ｂ形式のチャックにはＢ形式用のコレットを使う必要がある。  
つまり、工作機械のオペレータは、適切なホルダ２（チャック２ｂとコレット２ｃ）を選定し、そのホルダ２に指定された先端形状や直径をもつ工具３を、適切な長さで取付けて、加工プログラムの工具選択指令とその工具３が合致するように、工具交換装置８のマガジン７やラックにセットしなければならない。
【０００８】
この適切なホルダ形状、および、適切な工具取付け長さは、その工具による加工が行われる間、工具３、ホルダ２、機械構造物（主軸頭１、テーブル６など）、加工対象（ワーク４の非加工部分）、ジグ（ワーク固定具）の相互間での衝突や接触などの干渉（以降、単に「干渉」という。）が発生しないように選定される必要がある（図５参照）。最初に述べた加工プログラム作成時の過程のため、十分に長い工具を使うなら干渉は発生しない。しかし、実際の工具には長さがあり、極度に長い工具は高価である。また、工具取付け長さを長くすると、工具の剛性が低下する。  
これはホルダについても同様であり、一般に、ホルダ形状が細く、長いほど干渉は発生しにくくなる反面、ホルダが高価となる。また、ホルダ部の剛性が低下する。
工具やホルダの剛性の低下は、加工時のブレの発生、加工対象の加工精度や面品質の低下、工具自身の寿命、工作機械の寿命に悪影響を与えるなどの諸問題を引き起こす。  
したがって、干渉が発生しない範囲で、できるだけ太く短いホルダ形状、かつ、できるだけ短い工具取付け長さで実際の加工を行うことが理想である。
【０００９】
このために、機械オペレータは、図面で加工対象（ワークの非加工部分）の形状を把握したり、加工プログラムを解析して工具軌跡を推定したり、ホルダや工具を付けない状態で空運転させて工具軌跡を把握することで干渉を推測し、ホルダ形状と工具取付け長さを選定している。この作業は加工対象の形状の複雑さや工作機械の軸数増加（例：４軸や５軸の工作機械を使った加工）に伴って複雑化している。  
この作業を工作機械のオペレータが迅速かつ適切に行うことは困難であり、現実的には、この工具毎のホルダ形状、および、工具取付け長さの選定のために長大な検討時間や試切削の費用をかけたり、工作機械のオペレータが経験や勘でホルダ形状や工具取付け長さを決めていることによって、実加工で干渉を発生させてしまったり、干渉を恐れるあまり必要以上に細く長いホルダ形状、長い工具取付け長さを選定してしまい、結果的に剛性不足から起きる諸問題を引き起こしたりしている。  
なお、この問題解決のため、ＣＡＭシステムに工作機械や加工で使うジグの形状を与えておき、ＣＡＭシステムがホルダ形状、および、工具取付け長さのデータを生成し、それらのデータを機械オペレータに提供するものがある（特許文献１参照）。
【先行技術文献】
【特許文献】
【００１０】
【特許文献１】特開平１０−１５６６６２号公報
【発明の概要】
【発明が解決しようとする課題】
【００１１】
背景技術で説明した特許文献１に開示される技術では、機械オペレータは与えられたデータに従ってホルダを用意し、工具の取付けを行うだけでよく、負担は生じない。しかし、一般に、このようなデータの生成が可能な高機能ＣＡＭシステムは高価である。その上、生成されたホルダ形状や工具取付け長さのデータは、ＣＡＭシステムがデータ生成時に想定した以外の工作機械やジグに対しては適用できる保証がない。生成されたホルダ形状や工具取付け長さについても同様である。  
このため、例えば想定していた工作機械が故障したとか、指定されたホルダが何らかの理由で使えないなどの生産現場における状況の変化を、現場で代替品を使って対処することはできず、状況変化の内容とともに、ＣＡＭシステムによるホルダ形状と工具取付け長さのデータ生成の段階まで差し戻す必要がある。このようにＣＡＭシステム運用による対処は、一般に高価になる一方で、現場の状況を反映した自由度の高い運用は望めない。したがって、比較的小規模な生産には適さない。
【００１２】
工作機械、特にマシニングセンタやフライス盤による加工は、先端形状や直径に応じた工具（刃物）の種類を想定して加工プログラムを作成する。加工時には、工具をホルダに取付け、ホルダを主軸に結合して加工を行う。近年の５軸加工機ではワークの形状、機械構造物、工具とワークの相対軌跡が複雑になるので、オペレータが適切なホルダと工具取付け長さの選定の作業を手作業で行うことは非常に困難である。  
このとき、適切な工具の取付け長さ（突き出し量）で適切なホルダを使用しないと、ホルダや主軸の下部がワークや機械に干渉する可能性がある。ホルダや主軸とワークの干渉を防ぐには、できるだけ細く長いホルダ形状とし、かつ、できるだけ工具の取付け長さを長くすればよいが、細い長いホルダや長い工具は高額であり、剛性を低くしてしまうことになる。  
したがって、干渉しない範囲で、できるだけ太く短いホルダにできるだけ短い工具取付け長さで工具を取付けて使用することが望ましい。しかし、ワークや機械の形状が複雑になると、適切な選定を行うことは難しい。
【００１３】
そこで本発明の目的は、干渉しない範囲で、できるだけ太く短いホルダ、できるだけ短い工具取付け長さで加工することが可能なホルダおよびホルダへの工具取付け長さを決定する機能を有する数値制御装置を提供することである。
【課題を解決するための手段】
【００１４】
本願の請求項１に係る発明は、加工プログラムで指定された工具を保持するためのホルダ、および該ホルダへの工具の取付け長さを決定する機能を有する数値制御装置であって、前記加工プログラムのシミュレーションを行う加工プログラムシミュレーション部と、前記加工プログラムで使用される工具の形状に関するデータおよび該工具をホルダに取付ける際の取付け長さのデータを格納する工具データ格納部と、ホルダの形状に関するデータを複数格納するホルダデータ格納部と、機械構造物の形状に関するデータを格納する機械構造物データ格納部と、ワークおよびワークを固定するためのジグの形状に関するデータを格納するワークデータ格納部と、前記各格納部に格納された前記各データに基づいて前記工具および前記ホルダのいずれかと、前記機械構造物、前記ワークおよび前記ジグのいずれかとの干渉をチェックする干渉チェック部と、前記加工プログラムシミュレーション部により加工プログラムのシミュレーション実行時に前記干渉チェック部により干渉が発生した場合、前記工具データあるいはホルダデータに基づいて、工具の取付け長さあるいはホルダのデータを変更し、該変更されたデータに基づいて再度干渉チェックを行いホルダと該ホルダへの工具取付け長さを決定することを特徴とするホルダおよびホルダへの工具取付け長さを決定する機能を有する数値制御装置である。
【００１５】
請求項２に係る発明は、前記干渉チェックは、工具交換指令あるいはプログラムの終了まで行い、干渉した場合に工具の取付け長さあるいはホルダのデータを変更することを特徴とする請求項１に記載のホルダおよびホルダへの工具取付け長さを決定する機能を有する数値制御装置である。  
請求項３に係る発明は、前記工具交換指令時またはプログラム終了時の工具の取付け長さおよび工具ホルダのデータを記憶する記憶部を有することを特徴とする請求項２に記載のホルダおよびホルダへの工具取付け長さを決定する機能を有する数値制御装置である。
請求項４に係る発明は、前記工具データ格納部は、工具取付け長さを使用可能な範囲で格納しており、前記干渉チェック部は、前記工具データ格納部で格納した工具取付け長さで最も短い工具取付け長さを使用した状態で開始し、干渉が発生しなくなるまで順次工具取付け長さを長くすることを特徴とする請求項１〜３のいずれか１つに記載のホルダおよびホルダへの工具取付け長さを決定する機能を有する数値制御装置である。
【００１６】
請求項５に係る発明は、前記ホルダデータ格納部は、複数のホルダのホルダ部の径と長さのデータを格納しており、前記干渉チェック部は、前記ホルダデータ格納部に格納された複数のホルダの中で、干渉チェックを行う工具に適用可能なもののうち、ホルダ部の径が最も太く、長さが最も短いホルダを使用した状態で開始し、干渉が発生しなくなるまで、チェックを行う工具に適用可能なものの中から、よりホルダの直径が細く、長さが長いものを使って行うことを特徴とする請求項１〜４のうちのいずれか１つに記載のホルダおよびホルダへの工具取付け長さを決定する機能を有する数値制御装置である。
【発明の効果】
【００１７】
本発明により、干渉しない範囲で、できるだけ太く短いホルダ、できるだけ短い工具取付け長さで加工することが可能なホルダおよびホルダへの工具取付け長さを決定する機能を有する数値制御装置を提供できる。
【図面の簡単な説明】
【００１８】
【図１】加工プログラムの一例である。
【図２】マシニングセンタの工具、ホルダ、工具交換装置、主軸の概要を説明する図である。
【図３】マシニングセンタで使う工具の例である。
【図４】マシニングセンタで使うホルダの例である。
【図５】本発明に係る工具とホルダの長さの関係を決める論理を説明する図である。
【図６】各データの入力を行う処理のフローチャートである。
【図７−１】工具取付け長さとホルダの選定を行う処理のフローチャートである（その１）。
【図７−２】工具取付け長さとホルダの選定を行う処理のフローチャートである（その２）。
【図７−３】工具取付け長さとホルダの選定を行う処理のフローチャートである（その３）。
【図７−４】工具取付け長さとホルダの選定を行う処理のフローチャートである（その４）。
【図７−５】工具取付け長さとホルダの選定を行う処理のフローチャートである（その５）。
【図７−６】工具取付け長さとホルダの選定を行う処理のフローチャートである（その６）。
【図７−７】工具取付け長さとホルダの選定を行う処理のフローチャートである（その７）。
【図８】結果を利用する処理のフローチャートである。
【図９】メモリＭ１，メモリＭ２，メモリＭ３を説明する図である。
【図１０】メモリＭ４，メモリＭ５を説明する図である。
【図１１】本発明を適用した数値制御装置付き工作機械を説明する図である。
【発明を実施するための形態】
【００１９】
以下、本発明の実施形態を図面と共に説明する。  
「本発明の概要」
まず、本発明の概要を説明する。本発明は、工具とホルダに関する形状データを格納した数値制御装置で、目的の加工プログラムを実行した場合のシミュレーションにて、工具、ホルダ、機械構造物、加工対象物（ワークの非加工領域）、ワーク固定ジグの相互間の干渉チェックを行い、この干渉チェック中に、自動的に干渉の生じない工具取付け長さとホルダ形状のデータを抽出、記憶し、そのデータを結果として出力する。その結果のデータを参照して、オペレータは実際に加工を行う際に必要な段取り作業を行う。すなわち、オペレータはホルダを選定し、工具取付け長さを調整してから、工具交換装置に容易にセットすることができる。
【００２０】
機械加工は一般に短い工具取付け長さで、太く短いホルダを使うことが望ましいので、ある工具番号の加工に対し、一番短い工具取付け長さと一番太く短いホルダが装着された際の形状データを使ってシミュレーションによる干渉チェックを開始する。  
加工プログラムの進行による工具軌跡の進行により、干渉チェックが干渉を検出した時点で、加工プログラムの進行を一旦止める。そして、データに格納されている工具およびホルダの情報を使って工具取付け長さやホルダ形状を変更する。例えば、あらかじめ指定しておいた単位で工具取付け長さを長くする。データ内のホルダから、より細いもの、長いものを検索して、そのホルダ形状に変更する。この工具取付け長さやホルダ形状の変更により干渉が回避できることを干渉チェックで確認できたら、一旦止めておいた加工プログラムのシミュレーションを再開する。
【００２１】
工具取付け長さやホルダ形状のデータを例えば１段階変更した後、加工プログラムの実行（干渉のチェックのシミュレーション）を再開する。これを干渉が生じなくなるまで繰り返し、工具交換指令時点の工具取付け長さとホルダ形状のデータを、その工具で干渉が生じない工具取付け長さとホルダ形状のデータとして記録する。これを加工プログラムの終了まで自動的に繰り返すことにより、工具番号毎に干渉が生じない適切な工具取付け長さ、ホルダ形状のデータを得ることができ、オペレータは記録されたデータを参照するだけで容易に適切な加工段取りが行える。
【００２２】
図５は上述した本発明に係る工具とホルダの長さの関係を決める論理を説明する図である。単純化のため工具３はドリルとし、加工対象のワーク４に工具３で穴５を開ける２次元化した例で説明するが、他の工具にも適用可能である。  
図５の工具３は加工対象の穴５に十分な長さでホルダ２に取付けられているが、このまま穴５を加工すると（主軸頭１とテーブル６を近づける）と、やがて、ホルダ２とワーク４が干渉する。これを無視して加工を継続すると、やがて、主軸頭１もワーク４と干渉する。
【００２３】
工具３を長くすればこれらの干渉は回避できるが、それでは、工具３の剛性低下やブレが生じ易くなる。また、工具全長の制限、ホルダ２に工具を保持するための長さも必要なので、工具３を長くするにも限度がある。  
工具３とホルダ２の長さの関係を決める論理は色々なものが考えられるが、ここでは単純化して、ただ単純に１）工具３の長さ→２）ホルダ２の太さ→３）ホルダ２の長さの順に決めていくものとする。  
上記１）により工具３の長さは図５で既に限界状態と仮定する。この先では２）によりホルダ２がワーク４に干渉しなくなるまでホルダ直径のデータをより細いものに変更しながら干渉チェックを行う。その結果、ホルダ２とワーク４の干渉は回避できるようになるが、加工が進むと、次に主軸頭１とワーク４とが干渉するようになる。これを感知したら、３）によりホルダ２の長さをより長いもののデータに変更しながら干渉チェックを行い、最終的に干渉の発生しない工具長さ、ホルダ形状（直径・長さ）のデータを得る。
【００２４】
本発明は、図５で説明した論理で、工作機械の主軸やテーブルなどの機械構造物、加工対象物（ワーク）、ジグ（ワーク固定具）、工具とホルダ形状に関するデータを格納した数値制御装置で、目的の加工プログラムを実行した場合の機械構造物、加工対象物、ジグ、工具、ホルダ相互間の干渉の有無を、これらの形状データを使って計算（シミュレーション）によって確認する。
【００２５】
上記の機械構造物、加工対象物（ワーク）、ジグ（ワーク固定具）、工具とホルダの形状データを用いて、常時相互間の干渉の有無をチェックする手法は既知である（これ以降、「干渉チェック」と称する）。加工プログラムのシミュレーション実行時に、干渉チェックも行い、自動的に干渉の生じない工具取付け長さとホルダ形状のデータを抽出し、記憶し、その結果をデータとして出力する。そのデータを参照することで、機械オペレータは実加工を行う際に必要な工具の取付け作業を行う。（加工段取り作業、すなわち、ホルダを選定し、工具取付け長さを調整してから、工具交換装置にセットする。）
機械加工は一般に短い工具取付け長さで、太く短いホルダを使うことが機械的な剛性確保の観点から望ましいので、ある工具番号の加工に対して、一番短い（使用可能な最も短い）工具取付け長さと一番太く短い（使用可能な最も太く短い）ホルダが装着された際の工具、ホルダ形状データを使って干渉チェックを開始する。
【００２６】
加工プログラムの進行による工具軌跡の進行により、干渉チェックが干渉を検出した時点で、加工プログラムによる工具の軌跡の進行は一旦止める。  
そして、データに格納されている工具およびホルダの情報を使って、干渉チェックで使用しているデータの内、工具取付け長さやホルダ形状のデータを変更する。（例：予め指定しておいた単位で工具取付け長さを長くする。データ内のホルダから、より細いもの、長いものを検索して、そのホルダ形状に変更する。）この工具取付け長さやホルダ形状の変更により干渉が回避できることを干渉チェックで確認できたら、先に一旦止めておいた加工プログラムのシミュレーションを再開する。
【００２７】
上記処理を、干渉発生が検出されなくなるまで自動的に繰り返し行う。これを、その工具による加工が終わるところまで繰り返すことで、その工具を使った加工において、最後まで干渉が生じない工具取付け長さとホルダ形状のデータを得ることができるので、これを記録しておく。
【００２８】
これを加工プログラムの終了まで自動的に繰り返すことにより、工具番号毎に干渉が生じない適切な工具取付け長さ、ホルダ形状のデータを得ることができる。  
この方法で得られるデータは、データ登録されているホルダの形状、および、そのホルダを使うことを考慮した工具取付け長さになる。  
工具３は消耗品であり、加工プログラムに付属する工具の指定データに応じて用意する必要がある。一方、ホルダ２は、一般には汎用品を繰り返し使用し、かつ、複数の工作機械で共有されることも多い。また、ホルダ２は実際にはチャック２ｂとコレット２ｃから構成される。ホルダ形状（直径、長さ）はチャック２ｂで決まり、そのチャック２ｂで保持できる工具直径は、コレット２ｃで決まる。また、チャック２ｂは利用可能なコレット２ｃが定まっている。つまり、チャック２ｂとコレット２ｃには対応関係がある。加えて、チャック２ｂ側の仕様によっても、工具の取付け長さに制限が生じる。
これらを考慮して、本実施形態は以下の仕様で記載する。
【００２９】
工具３は、加工プログラムに対応するものを必ず入手することを前提として、工具番号毎に、その工具のデータ（使用可能な取付け長さなど）を入力する。ホルダ２は、チャック２ｂとコレット２ｃに分けて、使用可能な全個体のデータを入力するものである。さらに、その個体毎に使用状況のデータを加えることで、本発明の利用時に、適切なホルダ２（チャック２ｂ、コレット２ｃ）の形状の教示に加えて、その型番やその個体の使用状況（他の加工で使用中か？など）も教示可能とする。
【００３０】
予め機械構造物、加工対象物、ジグ、工具、ホルダのそれぞれの形状データを与えておき、これら相互の位置関係を常時計算することによって、これら相互間の干渉の有無を監視する技術は公知である。  
以降、この与えられた形状データと計算により相互間の干渉の有無を監視することを単に干渉チェックと記す。干渉チェックの実現には様々な技法が考えられるが、本発明では、干渉チェックの結果（干渉の有無、何が干渉したか）が分ればよいので、本発明で利用する干渉チェックは、公知の干渉チェックの技法を用いるとよい。
【００３１】
（１）各データの入力  
予め、以下のデータを数値制御装置のメモリに格納しておく。  
●（ａ）機械構造物の形状データ  
数値制御装置付きの工作機械（以下、「工作機械」という。）自身の機械構造物の形状データを前記数値制御装置が有するメモリに格納する。
●ホルダのデータ
チャックとコレットに分けて、本発明を利用する全てのチャック、および、コレットの個体毎に以下のデータを格納する。
（ｂ）チャック（ｂ−０）ＩＤ
（ｂ−１）直径（主軸取付け時の、主軸頭と工具の間にあたる部位の直径                              ）
（ｂ−２）長さ（主軸取付け時の、主軸頭と工具の間にあたる部位の長さ                              ）
（ｂ−３）工具の最短挿入長さ（把持のため最低限必要な工具挿入長さ）
（ｂ−４）工具の最長挿入長さ（工具挿入長さの最大値）
（ｂ−５）適用可能なコレットの形式名
（ｂ−６）使用状況
（ｂ−７）形式名
（ｃ）コレット（ｃ−０）ＩＤ
（ｃ−１）形式名
（ｃ−２）適用可能な工具直径範囲
（ｃ−３）使用状況
加工プログラム、および、その加工プログラムに対応する工具のデータを入手したら、その加工プログラム内に現れる工具番号毎に、以下のデータを格納する。  
【００３２】
●（ｄ）使用する工具の形状データ
（ｄ−１）先端形状
（ｄ−２）工具直径
（ｄ−３）最短取付け長さ
（ｄ−４）最長取付け長さ（指定なき場合は工具全長を設定）
（ホルダにも工具把持に必要な長さのデータがあるので、
工具側に最長取付け長さの指定がない場合は工具全長を入れ
ておけばよい。）
（ｄ−５）全長
●（ｅ）加工対象物の形状データ
その工具による加工終了時における加工対象物の非加工領域の形状データを入力
（全ての工具に対して、加工終了時の形状を使って干渉チェックを行ってもよいが、本実施例では、より厳密な干渉チェックを可能とするため、工具毎に、その工具による加工が終わった時点での加工対象物の形状データを設定し、これを使って干渉チェックを行うものとする。）
●（ｆ）ジグの形状データ
その工具による加工開始時点のジグの形状データを入力
（一般にジグの形状は加工終了まで一定だが、自動化の進んだ加工では加工の進展に合わせて、ジグでクランプされていた部位を加工するなどの目的で、ジグを変形させる場合もあるので、本実施例では、工具毎に、その工具による加工開始時点のジグの形状データを設定し、これを使って干渉チェックを行うものとする。）
【００３３】
上記（ａ）〜（ｆ）の各データは、数値制御装置内のメモリに格納する。もしくは、ＬＡＮ接続されたコンピュータなどの数値制御装置から参照可能なメモリに格納し、データを他の工作機械を制御する数値制御装置と共有して使用できるようにしてもよい。  
【００３４】
（２）工具取付け長さとホルダの選定の実施
本発明を利用するオペレータは以下を行う。
（２Ａ）干渉回避の試行１回あたりの変更量をパラメータに設定
工具の取付け長さの選定時に、工具長さを変更することで干渉回避を試行する際の１回あたりの変更量を設定する。パラメータで事前に設定する。このパラメータは全工具で共通、もしくは、工具毎に設定してもよい。
（２Ｂ）本発明の結果、すなわち、ホルダ選択結果と工具取付け長さを格納するメモリの
初期化の要否判定
新しい加工プログラムのために本発明を適用する際に実施する。もしくは先の（１）各データの入力によって格納されるいずれかのデータに更新や変更があり、それを反映させたい場合に実施する。
（２Ｃ）工具取付け長さとホルダの選定の開始を指令
工具取付け長さとホルダの選定を行うモードを選択し、対象の加工プログラムを指定して、その実行を指令する。
【００３５】
この場合、数値制御装置は、先の（１）各データの入力によって格納された（ａ）〜（ｆ）の各データを使い、加工プログラムを実行した場合のシミュレーションを行いつつ、機械構造物、加工対象物、ジグと、工具、ホルダの間の干渉チェックを行う。  
この際、数値制御装置は、加工プログラム内の工具交換指令で与えられる工具番号を監視しており、新たな工具番号が指令されると、以下の操作を行う。  
＜１＞加工対象およびジグの形状データを工具番号に合致するものに更新する。  
（加工対象物の形状データ（ｅ），および，ジグの形状データ（ｆ）の更新）  
＜２＞指令された工具番号に対応する使用する工具の形状データ（ｄ）を取り込む。  
＜３＞ホルダ選択結果と工具取付け長さを格納するメモリを参照し、既にデータが格納されている場合には、そのデータからチャックの直径データを取り込む。データが格納済みでない場合は、格納されている全てのチャックの直径データ（ｂ−１）の中から、最も直径が大きいものを検索する。なお、この時、使用状況（ｂ−６）も参照して、空き状態でないものは選択しないようにしてもよい。こうした場合には、所有品の現状（使用可否）も反映できるので、得られたデータで即座に加工が可能か否かの情報も加味したデータが得られる。
【００３６】
＜４＞参照するデータ内に同じ直径のチャックが複数存在する場合は、その中で、長さ（ｂ−２）が最も短いチャックを検索し、これを選択する。  
なお、この時、使用状況（ｂ−６）も参照し、空き状態でないものは選択しないようにしてもよい。こうした場合には、所有品の現状（使用可否）も反映できるので、得られたデータで即座に加工が可能か否かの情報も加味したデータが得られる。  
＜５＞選択したチャックが適用可能なコレット（ｂ−５）と合致する形式名（ｃ−１）を持つコレットを、データ内の全てのコレットから検索し、合致するコレットがあれば、さらに、そのコレットに適用可能な工具直径範囲データ（ｃ−２）を使って現在チェック対象の工具の工具直径（ｄ−２）を把持できるかチェックする。  
なお、この時、使用状況（ｃ−３）も参照し、空き状態でないものは選択しないようにしてもよい。こうした場合には、所有品の現状（使用可否）も反映できるので、得られたデータで即座に加工が可能か否かの情報も加味したデータが得られる。
＜６＞工具を把持できるチャックとコレットのペアが見つからない場合は、全てのチャックの中で、先の＜３＞でチェックしたチャック直径（ｂ−１）の次に細いチャック直径のチャック直径データを持つチャックを、上記＜３＞の方法で検索し、上記＜４＞，＜５＞を繰り返す。
【００３７】
これを繰り返した結果、工具を把持可能なチャックとコレットのペアが存在しなかった場合には、現在チェック中の工具番号の工具に対して適用可能なチャック，および，コレットが、チャック，および，コレットのデータ中に存在しないことになり、これ以上チェックする意味がないため、次の工具交換命令がある時点までは干渉が発生しても何もしないまま加工プログラムを進めて、上記＜１＞に戻る。  
もしも、工具交換指令が現れないまま加工プログラムが終了した場合には、後述の＜１２＞へ移る。
【００３８】
＜７＞上記＜５＞で選出したチャックに現在の工具を取付けた場合の最短取付け長さを確認する。（ｄ−３）と“（ｄ−５）−（ｂ−４）”の解を比較し、より大きい方が工具とチャックを組み合わせた時の、最短の工具取付け長さである。  
工具      ：（ｄ−３）最短取付け長さ
：（ｄ−５）全長
チャック  ：（ｂ−４）工具の最長挿入長さ（工具をチャック（コレット）に挿
入できる長さの最大値）
＜８＞上記＜５＞で選出したチャックが現在の工具を取付けた場合の最長取付け長さを確認する。“（ｄ−５）−（ｄ−４）”の解と（ｂ−３）を比較し、より大きい値を（ｄ−５）から引いた値が取付け可能な最大長さである。  
工具      ：（ｄ−４）最長取付け長さ（指定なき場合は工具全長を設定）
：（ｄ−５）全長  
チャック  ：（ｂ−３）工具の最短挿入長さ（把持に最低限必要な工具のチャック
（コレット）への挿入長さ）
＜９＞上記＜５＞で選定したチャックの形状、および、上記＜７＞で求めた最短の工具取付け長さのデータを使って、加工プログラムを実行した場合のシミュレーションを行いつつ、干渉チェックを行う。
【００３９】
＜１０＞加工プログラムの進行による干渉の発生が干渉チェックによって確認されたら、加工プログラムの進行（軌跡の進行）を一旦停止する。その後、前述の（２Ａ）でパラメータ設定した、「干渉回避の試行１回あたりの変更量」分だけ工具取付け長さを長くした形状データに変更した後、干渉チェックの結果を確認する。これを干渉が回避されるまで繰り返す。
＜１１＞上記＜１０＞の工具取付け長さの変更と干渉チェックを繰り返すうちに、工具取付け長さが上記＜８＞で求めた値より大きくなってしまった場合には、干渉が生じている部位にホルダが含まれているか否かの判定を行う。（干渉が生じている部位がホルダであるなら、ホルダ自体の太さのために、干渉が生じていると考えられる。また、ホルダが干渉していないのに干渉が生じているのであれば、主軸頭などの機械構造物が干渉を起こしていることになるため、ホルダの長さをより長くしないと干渉を回避できない。）  
干渉にホルダが含まれている場合は、全てのチャックの直径データ（ｂ−１）から、現在干渉チェックに使用しているチャック直径（ｂ−１）の次に細いチャック直径のチャックを検索し、上記＜４＞に移る。  
干渉にホルダが含まれていない場合には、現在干渉チェックに使用中のチャックの直径（ｂ−１）と同じ直径を持つチャックの中で、このチャックの次に長い，チャック長さ（ｂ−２）を持つチャックを選択する。
同じ直径のチャックの中に、現在より長いチャック長さ（ｂ−２）のチャックが無かった場合は、現在干渉チェックで使用中のチャック直径（ｂ−１）の次に細いチャック直径のチャックを検索し、その中から、現在干渉チェックで使用中のチャック長さ（ｂ−２）より長いものを検索し、上記＜５＞に移る。
【００４０】
＜１２＞加工プログラムのシミュレーションの進展で、新たな工具交換指令がなされた場合、もしくは、加工プログラムのシミュレーションが最後まで実行されて終了した場合には、その時点で干渉チェックに使っている工具取付け長さ、および、チャックの形状（ｂ−１，ｂ−２）を、工具長さおよびチャックの選定結果として、チェックしていた工具番号と共にメモリに記憶する。  
このとき、加工段取り作業の利便性向上のため、干渉チェックに使っていたチャックのＩＤ（ｂ−０）およびコレットのＩＤ（ｃ−０）も記録してもよい。また、複数の工作機械でホルダを共有している場合を考慮して、今回のホルダの選定で選定されたチャックとコレットそれぞれの使用状況（ｂ−６，ｃ−３）に対して、選定されたことによる状況の更新（例えば「使用中」「選定済み」など）を行ってもよい。
＜１３＞上記＜１２＞でデータをメモリへ記憶した後も、加工プログラム実行のシミュレーションに続きがある場合は、新たな工具が指令される状況に備えて、上記＜１＞に移る。これを加工プログラム実行のシミュレーション終了時まで行う。
【００４１】
（３）結果の利用
前述（１）各データの入力，（２）工具取付け長さとホルダの選定の実施により、工具取付け長さとホルダの選定結果がメモリに記憶されている。機械オペレータは、この保持メモリの内容を、数値制御装置上で参照、もしくは外部機器（パソコン等）に取り込んで参照することで、このデータを利用する。  
このデータは、工具番号毎に、最適なホルダ（チャック）の直径，および，長さと工具取付け長さを示すものである。計測，および，判定が容易なデータなので、オペレータはこのデータを使って加工段取りを行うことによって、適切な加工段取りを効率よく行うことができる。  
得られたデータの直径や長さに合致するホルダが手元に無い場合でも、できるだけ近い値で、より細く、かつ、より長いホルダを使えば、（最適ではないものの）干渉は生じないので、加工を行うことができる。  
なお、前記（２）の＜１２＞で述べた、チャック、コレットのＩＤ（ｂ−０，ｃ−０）を記録した場合には、データを参照する際に、このＩＤのチャック、コレットのデータを参照して、ＩＤ自体（ｂ−０，ｃ−０）、形式名（ｂ−７，ｃ−１）、使用状況（ｂ−６，ｃ−３）を参照可能としてもよい。
【００４２】
ＩＤもしくは形式名がわかるならば、現物を測定して確認することなく、所持品内からホルダ（チャック、コレット）を捜索し確保することが容易にできる。  
また、前記（１）、（２）で述べたように、複数の工作機械を運用している場合に、チャック、および、コレットの情報を共有し、かつ、使用状況のデータ更新も本発明の運用に含めることで、加工に必要なホルダの有無（すぐに加工を開始できるか否か）が判断でき、無駄にホルダを捜索することを避けられる。  
また、ホルダが使用中などで加工を開始できない場合においても、問題点が容易にわかるため、必要な行動（不足品の手配、該当ホルダが使用可能になる時期の確認，および，交渉、それに伴う納期・見積もりなどの変更など）を迅速に行える。
【００４３】
「フローチャートの説明」
以下、上記（１）各データの入力、（２）工具取付け長さとホルダの選定の実施、（３）結果の利用について、工作機械を制御する数値制御装置で実行されるプログラムのアルゴリズムをフローチャートにより説明する。なお、各フローチャートで用いられる＜＞付き数字、（）付きアルファベットは、「本発明の概要」の説明で用いたものと対応する。
【００４４】
図６は、（１）各データの入力を行う処理のフローチャートである。以下、各ステップに従って説明する。  
●［ステップＳＡ０１］機械構造物の形状データは設定済みか否か判断し、設定済みの場合にはステップＳＡ０３へ移行し、設定されていない場合にはステップＳＡ０２へ移行する。  
●［ステップＳＡ０２］機械構造物の形状データを入力しメモリに格納する。機械構造物の形状データが格納されたメモリ領域を“メモリＭ１”と称する。（図９参照）  
●［ステップＳＡ０３］ホルダのデータは設定済みか否か判断し、設定済みの場合にはステップＳＡ０５に移行し、設定済みでない場合にはステップＳＡ０４に移行する。  
●［ステップＳＡ０４］ホルダのデータを入力しメモリに格納する。ホルダのデータとはチャックのデータおよびコレットのデータである。ホルダのデータが格納されているメモリ領域を“メモリＭ２”と称する。（図９参照）  
●［ステップＳＡ０５］加工プログラム中に現れる工具番号毎に、使用する工具のデータ、前記工具による加工終了時の加工対象物形状データ、前記工具による加工時のジグ形状データを設定し、メモリに格納し、処理を終了する。設定したデータが格納されているメモリ領域を“メモリＭ３”と称する。（図９参照）
【００４５】
図７は、（２）工具取付け長さとホルダの選定を行う処理のフローチャートである。以下、各ステップに従って説明する。  
●［ステップＳＢ０１］対象の加工プログラムを数値制御装置のプログラム格納メモリに格納する。加工プログラムを格納したメモリの領域をＭ４と称する。（図１０参照）  
●［ステップＳＢ０２］干渉回避の試行１回当たりの変更量を設定する（パラメータに設定。設定済み、かつ、その値でよければ、再設定は不要である。）。  
●［ステップＳＢ０３］初めての加工プログラムか、もしくは、前回実施後に、図６で用意したデータに変更があった否か判断し、（ＹＥＳ）の場合にはステップＳＢ０４へ移行し、（ＮＯ）の場合にはステップＳＢ０５へ移行する。  
●［ステップＳＢ０４］工具取付け長さとホルダの選定をしたデータを格納するメモリＭ５を初期化する。  
●［ステップＳＢ０５］工具取付け長さとホルダの選定を行うモードを選択し、対象の加工プログラムを指定して、工具取付け長さとホルダの選定の実行を指令する。
【００４６】
●［ステップＳＢ０６］指定された加工プログラムのシミュレーション実行における干渉チェックを開始する。加工プログラムのシミュレーション進行による各部の移動を含め、機械構造物、加工対象物、ジグ、工具、ホルダの相互間の干渉の有無を、メモリＭ１〜Ｍ３に格納された（ａ）〜（ｆ）の各形状データ（図９参照）を使った計算で監視する。
●［ステップＳＢ０７］メモリＭ４に格納された対象の加工プログラムを解読（デコード）する。つまり、加工プログラムをその指令行（ブロック）間に解析し、シミュレーションを実行のためのデータを生成する。  
●［ステップＳＢ０８］これからシミュレーションを実行する指令行（ブロック）は工具番号指令を含むか否か判断し、含む場合にはステップＳＢ０９へ移行し、含まない場合にはステップＳＢ１０へ移行する。  
●［ステップＳＢ０９］干渉チェックのためのデータ中、工具番号毎にデータ登録されたものをメモリＭ３から読み込み、干渉チェックで使用中のデータを指令された工具番号に対応するものに更新する。更新するデータは以下のものである。
＜１＞加工対象物（ｅ）、および、ジグ（ｆ）の形状データ、＜２＞工具の形状データ（ｄ）  
●［ステップＳＢ１０］メモリＭ５を参照する。指令された工具番号の選定結果データを確認する。
【００４７】
●［ステップＳＢ１１］工具番号の合致する結果データはあるか否か判断し、ある場合にはステップＳＢ１２へ移行し、ない場合にはステップＳＢ１３へ移行する。  
●［ステップＳＢ１２］メモリＭ５内の工具番号の合致する結果データの中に、チャック直径の値はあるか否か判断し、ある場合にはステップＳＢ１４へ移行し、ない場合にはステップＳＢ２４へ移行する。  
●［ステップＳＢ１３］＜３＞メモリＭ２内の全チャックの直径データ（ｂ−１）中、最も大きい値を検出する（この値で、以降のチャックのデータ検索を行う。）。検出したデータを選択して、ステップＳＢ１５へ移行する。  
●［ステップＳＢ１４］メモリＭ５内の工具番号の合致する結果データ中のチャック直径を取り込む（この値で以降のチャックのデータ検索を行う。）。  
●［ステップＳＢ１５］＜４＞メモリＭ２内の全チャックデータ（ｂ）を検索する。データ検索の結果、同じ値の直径データ（ｂ−１）を持つチャックが複数存在する場合、その長さデータ（ｂ−２）が最も短いチャックを選択する。さらに、同じ値の長さデータ（ｂ−２）を持つチャックが複数存在する場合は、そのＩＤの値が最も小さいものを選択する。）
【００４８】
●［ステップＳＢ１６］＜５＞メモリＭ２内の全コレットデータ（ｃ）を検索する。選択中のチャックの、適用可能なコレットデータ（ｂ−５）と合致する形式名データ（ｃ−１）を持つコレットを検索する。合致するコレットがあれば、そのコレットを選択し、そのコレットの適用可能な工具直径範囲データ（ｃ−２）で現在チェック対象の工具の工具直径（ｄ−２）を把持できるか確認する。  
●［ステップＳＢ１７］＜６＞工具を把持できるチャックとコレットのペアを選択できたか否か判断し、選択できた場合にはステップＳＢ２０に移行し、選択できない場合にはステップＳＢ１８へ移行する。  
●［ステップＳＢ１８］メモリＭ２内の全チャックデータ（ｂ）を検索して、選択中のチャックのチャック直径の次に細いチャックデータがあるか否かを判断し、ある場合にはステップＳＢ１９へ移行し、ない場合にはステップＳＢ２４へ移行する。  
●［ステップＳＢ１９］選択中のチャックのチャック直径の次に細いチャック直径データを選択する。この値で以降のチャックデータの検索を行う。  
●［ステップＳＢ２０］＜７＞選択したチャックに現在の工具を取付けた場合の最短の工具取付け長さを求める。
【００４９】
●［ステップＳＢ２１］＜８＞選択したチャックに現在の工具を取付けた場合の最長の工具取付け長さを求める。  
●［ステップＳＢ２２］＜９＞干渉チェックのためのデータ中、工具とホルダのデータを変更する。  
●［ステップＳＢ２３］干渉チェックの結果監視フラグを“１”にし、ステップＳＢ２５へ移行する。  
●［ステップＳＢ２４］干渉チェックの結果監視フラグを“０”にし、ステップＳＢ２５へ移行する。  
●［ステップＳＢ２５］＜１０＞加工プログラムのシミュレーションを実行する。（一時停止中の場合は、停止箇所からの再開）、つまり、ステップＳＢ０７でデコードしておいたデータをシミュレーションで順次実行する。
【００５０】
●［ステップＳＢ２６］干渉チェックの結果監視フラグは“０”であるか“１”であるかを判断し、“０”の場合はステップＳＢ３８へ移行し、“１”の場合はステップＳＢ２７へ移行する。  
●［ステップＳＢ２７］干渉チェックを監視する。  
●［ステップＳＢ２８］干渉発生か否か判断し、干渉発生の場合にはステップＳＢ２９へ移行し、干渉発生でない場合にはステップＳＢ３８へ移行する。  
●［ステップＳＢ２９］加工プログラム実行のシミュレーションによる軸（加工軌跡）の移動を停止する。  
●［ステップＳＢ３０］ステップＳＢ０２で設定した「干渉回避の試行１回当たりの変更量」を、現在、干渉チェックで使っている工具取付け長さに加算する。
【００５１】
●［ステップＳＢ３１］加算後の値はステップＳＢ２１で求めた最長の工具取付け長さより短いか否か判断し、短い場合にはステップＳＢ３２へ移行し、短くない場合にはステップＳＢ３３へ移行する。  
●［ステップＳＢ３２］干渉チェック用データ中の工具取付け長さデータを、上記値に変更する。  
●［ステップＳＢ３３］＜１１＞干渉発生部位にホルダが含まれるか否か判断し、含まれる場合にはステップＳＢ３４へ移行し、含まれない場合にはステップＳＢ３６へ移行する。  
●［ステップＳＢ３４］メモリＭ２内の全チャックデータ（ｂ）を検索し、現在より、細い形状のチャックを選択する。（この値で以降のチャックのデータ検索を行う。）  
●［ステップＳＢ３５］より細い形状のチャックはあったか否か判断し、あった場合にはステップＳＢ１５へ移行し、なかった場合にはステップＳＢ２４へ移行する。
【００５２】
●［ステップＳＢ３６］メモリＭ２内の全チャックデータ（ｂ）を検索し、現在より長い形状のチャックを選択する。（この値で以降のチャックのデータ検索を行う。）  
●［ステップＳＢ３７］より長い形状のチャックはあったか否か判断し、あった場合にはステップＳＢ１６へ移行し、なかった場合にはステップＳＢ２４へ移行する。  
●［ステップＳＢ３８］シミュレーションの現ブロックは実行完了か否か判断し、実行完了の場合にはステップＳＢ３９へ移行し、実行完了ではない場合にはステップＳＢ２５へ戻る。  
●［ステップＳＢ３９］シミュレーションの次ブロックは新たな工具番号指令、または、加工プログラム終了か否か判断し、（ＹＥＳ）の場合にはステップＳＢ４０へ移行し、（ＮＯ）の場合にはステップＳＢ２５へ戻る。  
【００５３】
●［ステップＳＢ４０］干渉チェックの結果監視フラグは“０”であるか“１”であるかを確認し、“０”である場合にはステップＳＢ４２へ移行し、“１”である場合にはステップＳＢ４１へ移行する。
●［ステップＳＢ４１］現在処理中の工具番号、および、干渉チェックで使用している工具取付け長さ、チャック形状をメモリＭ５に格納する。（図１０参照）  
●［ステップＳＢ４２］シミュレーションの次ブロックは加工プログラム終了か否か判断し、終了ではない場合にはステップＳＢ０８へ戻り、終了の場合には処理を終了する。
【００５４】
図８は、（３）結果を利用する処理のフローチャートである。以下、各ステップに従って説明する。  
●［ステップＳＣ０１］工具取付け長さとホルダ（チャックとコレット）の選定結果はメモリＭ５に格納済みか否か判断し、格納済みの場合にはステップＳＣ０２へ移行し、格納済みでない場合にはステップＳＣ０６へ移行する。
●［ステップＳＣ０２］工具毎に、メモリＭ５（図７−７、図１０）中の、“工具取付け長さ”のデータを取得し、数値制御装置の表示装置に表示する。
●［ステップＳＣ０３］工具毎に、メモリＭ５（図７−７、図１０）中の、ホルダ（チャック）の径と長さのデータを取得し、数値制御装置の表示装置に表示する。
●［ステップＳＣ０４］チャックとコレットに関する付加情報を表示させるか否かを判断し、表示させる場合にはステップＳＣ０５へ移行し、表示させない場合には処理を終了する。  
●［ステップＳＣ０５］工具毎に、メモリＭ５（図７−７、図１０）中の、選定結果（チャックおよびコレットのＩＤ）で（１）のメモリＭ２（図６，図９参照）を参照し、チャックとコレットおよびコレットのＩＤと共に表示して処理を終了する。  
●［ステップＳＣ０６］工具取付け長さとホルダの選定結果が無いことを数値制御装置の表示装置に警告表示して、処理を終了する。
【００５５】
図１１は、本発明を適用した数値制御装置付き工作機械を説明する図である。プロセッサであるＣＰＵ１１１は、ＲＯＭ１１２に格納されたシステムプログラムに従って数値制御装置１００全体を制御する。ＲＡＭ１１３は各種のデータあるいは入出力信号が格納される。不揮発性メモリ１１４に格納された各種のデータは電源切断後もそのまま保存される。
グラフィック制御回路１１５はデジタル信号を表示用の信号に変換し、表示装置１１６に与える。キーボード１１７は、数値キー，文字キーなどを有する各種設定データを入力する手段である。軸制御回路１１８はＣＰＵ１１１から各軸の移動指令を受けて軸の指令をサーボアンプ１１９に出力する。このサーボアンプ１１９は、この移動指令を受けて、工作機械２００のサーボモータ（図示せず）を駆動する。これらの構成要素はバス１２１で互いに結合されている。
【００５６】
ＰＭＣ（プログラマブル・マシン・コントローラ）１２２は、加工プログラムの実行時に、バス１２１経由でＴ機能信号（工具選択指令）などを受け取る。そして、この信号を、シーケンスプログラムで処理して、動作指令として信号を出力し、工作機械２００を制御する。工作機械２００からの状態信号を受けて、ＣＰＵ１１１に必要な入力信号を転送する。  
さらに、バス１２１には、システムプログラム等によって機能が変化するソフトウェアキー１２３、ＮＣデータを記憶装置などの外部機器に送る，あるいは，外部機器から数値制御装置内に各種プログラムやデータを入力するためのインタフェース１２４が接続されている。このソフトウェアキー１２３は、表示装置１１６、キーボード１１７と共に、表示装置／ＭＤＩパネル１２５に設けられている。
【００５７】
本発明は工作機械のオペレータによって、現場の状況を反映させた柔軟な運用も可能である。すなわち、ホルダのデータの登録内容を工夫することで、以下のような使い方もできる。  
＜実際に使用可能なホルダのみデータ登録＞  
この場合、オペレータは本発明で得たデータで、直接、即座に適切な加工段取りが行える。（指定されたホルダが他で使用中などの理由で、データを得ても加工を開始できない事態を回避できる。）  
＜ホルダを１つのみ登録＞
そのホルダによる加工で干渉が起きるか確認し、干渉が無い場合、最適な工具取付け長さが得られる。（何らかの理由でホルダ形状が決まっている場合や、指定されたホルダが無いので、より細いものを使いたいなどの場合、干渉の有無を確認し、そのホルダで最適な（最も短い）工具取付け長さを得る。）  
＜ホルダのカタログなどを使って、入手可能なホルダのデータを全て登録＞  
得られたホルダ形状に、所持していないものが含まれていた場合、加工を行うにはそのホルダの入手が必要（もしくは、望ましい。）とわかる。この情報があれば、納期や価格の見積もりをより容易に正確に行える。
【００５８】
なお、ホルダは、一般には１つの工場内で、複数の工作機械によって共有使用される場合が多いと思われる。このような環境では、ホルダのデータをサーバ上で集中管理することで、毎回、もしくは、個々の工作機械にホルダのデータを入力する作業の手間を回避し、かつ、ホルダの使用状況（空きか、他で使用中か等）も考慮して本発明を利用することも考えられる。
【００５９】
上述した本発明の実施形態の説明では、ホルダは単純な円筒形としたが、実際に用いられるホルダはテーパ形状のものなどがある。また、より複雑な形状のものもある。必要に応じて登録するホルダの形状データ、および、それを使う選定処理を増やすことで、より複雑な形状のホルダも選定するようにしてもよい。
【００６０】
また、上述した本発明の実施形態においては、加工後の形状データを用いて干渉チェックを行っているが、切削シミュレーション機能（計算により、加工前の素材形状から、加工プログラムの進行により、切削された部位を削除した形状データを得る機能）を併用することによって、加工プログラムの進行に応じたワーク形状を使った干渉チェックが行われるので、より適切なホルダと工具取付け長さのデータを得ることができる。
【００６１】
干渉回避可能なホルダと工具取付け長さの組み合わせは複数ある場合が考えられる。例えば、谷底形状の底の部分を加工したい場合には、大別すると、太く短いホルダに、工具を長く取付けるパターンと、細く長いホルダに工具を短く取付けるパターンが考えられる。上述した本発明の実施形態では、工具取付け長さの選定後、ホルダを選定しているので、得られる選定結果データは、太く短いホルダに、工具を長く取付けるパターンとなるが、特に細い工具の場合など、工具取付け長さの短さを優先したい場合には、ホルダ形状の選定後、工具取付け長さの選定を行うようにすればよい。また、工具データの登録時に、工具取付け長さの短さを優先するかどうかのパラメータを追加し、ホルダ、および工具取付け長さの選定処理において、このパラメータ設定に従った順番でホルダおよび工具取付け長さの選定を行うようにしてもよい。
【符号の説明】
【００６２】
１  主軸頭
２  ホルダ
２ａ  主軸への取付け部
２ｂ  チャック
２ｃ  コレット
３  工具
４  ワーク
５  穴
６  テーブル
７  マガジン
８  工具交換装置
１００  数値制御装置
２００  工作機械
【図１】
2012218111.tif 000003
【図２】
2012218111.tif 000004
【図３】
2012218111.tif 000005
【図４】
2012218111.tif 000006
【図５】
2012218111.tif 000007
【図６】
2012218111.tif 000008
【図７−１】
2012218111.tif 000009
【図７−２】
2012218111.tif 000010
【図７−３】
2012218111.tif 000011
【図７−４】
2012218111.tif 000012
【図７−５】
2012218111.tif 000013
【図７−６】
2012218111.tif 000014
【図７−７】
2012218111.tif 000015
【図８】
2012218111.tif 000016
【図９】
2012218111.tif 000017
【図１０】
2012218111.tif 000018
【図１１】
2012218111.tif 000019