"加工プログラムで指定された工具を保持するための工具ホルダ、および該工具ホルダへの工具の取付け長さを決定する機能を有する数値制御装置であって、前記加工プログラムのシミュレーションを行う加工プログラムシミュレーション部と、前記加工プログラムで使用される工具の形状に関するデータおよび該工具を工具ホルダに取付ける際の取付け長さのデータを格納する工具データ格納部と、工具ホルダの形状に関するデータを複数格納する工具ホルダデータ格納部と、機械構造物の形状に関するデータを格納する機械構造物データ格納部と、ワークおよびワークを固定するためのジグの形状に関するデータを格納するワークデータ格納部と、前記各格納部に格納された前記各データに基づいて前記工具および前記工具ホルダのいずれかと、前記機械構造物、前記ワークおよび前記ジグのいずれかとの干渉をチェックする干渉チェック部と、前記加工プログラムシミュレーション部により加工プログラムのシミュレーション実行時に前記干渉チェック部により干渉が発生した場合、前記工具データあるいは工具ホルダデータに基づいて、工具の取付け長さあるいは工具ホルダのデータを変更し、該変更されたデータに基づいて再度干渉チェックを行い工具ホルダと該工具ホルダへの工具取付け長さを決定することを特徴とする工具ホルダおよび工具ホルダへの工具取付け長さを決定する機能を有する数値制御装置。前記干渉チェックは、工具交換指令あるいはプログラムの終了まで行い、干渉した場合に工具の取付け長さあるいは工具ホルダのデータを変更することを特徴とする請求項1に記載の工具ホルダおよび工具ホルダへの工具取付け長さを決定する機能を有する数値制御装置。前記工具交換指令時またはプログラム終了時の工具の取付け長さおよび工具ホルダのデータを記憶する記憶部を有することを特徴とする請求項2に記載の工具ホルダおよび工具ホルダへの工具取付け長さを決定する機能を有する数値制御装置。前記工具データ格納部は、工具取付け長さを使用可能な範囲で格納しており、前記干渉チェック部は、前記工具データ格納部で格納した工具取付け長さで最も短い工具取付け長さを使用した状態で開始し、干渉が発生しなくなるまで順次工具取付け長さを長くすることを特徴とする請求項1~3のいずれか1つに記載の工具ホルダおよび工具ホルダへの工具取付け長さを決定する機能を有する数値制御装置。前記工具ホルダデータ格納部は、複数の工具ホルダのホルダ部の径と長さのデータを格納しており、前記干渉チェック部は、前記工具ホルダデータ格納部に格納された複数の工具ホルダの中で、干渉チェックを行う工具に適用可能なもののうち、ホルダ部の径が最も太く、長さが最も短いホルダを使用した状態で開始し、干渉が発生しなくなるまで、チェックを行う工具に適用可能なものの中から、よりホルダの直径が細く、長さが長いものを使って行うことを特徴とする請求項1~4のうちのいずれか1つに記載の工具ホルダおよび工具ホルダへの工具取付け長さを決定する機能を有する数値制御装置。背景技術で説明した特許文献1に開示される技術では、機械オペレータは与えられたデータに従ってホルダを用意し、工具の取付けを行うだけでよく、負担は生じない。しかし、一般に、このようなデータの生成が可能な高機能CAMシステムは高価である。その上、生成されたホルダ形状や工具取付け長さのデータは、CAMシステムがデータ生成時に想定した以外の工作機械やジグに対しては適用できる保証がない。生成されたホルダ形状や工具取付け長さについても同様である。このため、例えば想定していた工作機械が故障したとか、指定されたホルダが何らかの理由で使えないなどの生産現場における状況の変化を、現場で代替品を使って対処することはできず、状況変化の内容とともに、CAMシステムによるホルダ形状と工具取付け長さのデータ生成の段階まで差し戻す必要がある。このようにCAMシステム運用による対処は、一般に高価になる一方で、現場の状況を反映した自由度の高い運用は望めない。したがって、比較的小規模な生産には適さない。工作機械、特にマシニングセンタやフライス盤による加工は、先端形状や直径に応じた工具刃物の種類を想定して加工プログラムを作成する。加工時には、工具をホルダに取付け、ホルダを主軸に結合して加工を行う。近年の5軸加工機ではワークの形状、機械構造物、工具とワークの相対軌跡が複雑になるので、オペレータが適切なホルダと工具取付け長さの選定の作業を手作業で行うことは非常に困難である。このとき、適切な工具の取付け長さ突き出し量で適切なホルダを使用しないと、ホルダや主軸の下部がワークや機械に干渉する可能性がある。ホルダや主軸とワークの干渉を防ぐには、できるだけ細く長いホルダ形状とし、かつ、できるだけ工具の取付け長さを長くすればよいが、細い長いホルダや長い工具は高額であり、剛性を低くしてしまうことになる。したがって、干渉しない範囲で、できるだけ太く短いホルダにできるだけ短い工具取付け長さで工具を取付けて使用することが望ましい。しかし、ワークや機械の形状が複雑になると、適切な選定を行うことは難しい。そこで本発明の目的は、干渉しない範囲で、できるだけ太く短いホルダ、できるだけ短い工具取付け長さで加工することが可能なホルダおよびホルダへの工具取付け長さを決定する機能を有する数値制御装置を提供することである。本願の請求項1に係る発明は、加工プログラムで指定された工具を保持するためのホルダ、および該ホルダへの工具の取付け長さを決定する機能を有する数値制御装置であって、前記加工プログラムのシミュレーションを行う加工プログラムシミュレーション部と、前記加工プログラムで使用される工具の形状に関するデータおよび該工具をホルダに取付ける際の取付け長さのデータを格納する工具データ格納部と、ホルダの形状に関するデータを複数格納するホルダデータ格納部と、機械構造物の形状に関するデータを格納する機械構造物データ格納部と、ワークおよびワークを固定するためのジグの形状に関するデータを格納するワークデータ格納部と、前記各格納部に格納された前記各データに基づいて前記工具および前記ホルダのいずれかと、前記機械構造物、前記ワークおよび前記ジグのいずれかとの干渉をチェックする干渉チェック部と、前記加工プログラムシミュレーション部により加工プログラムのシミュレーション実行時に前記干渉チェック部により干渉が発生した場合、前記工具データあるいはホルダデータに基づいて、工具の取付け長さあるいはホルダのデータを変更し、該変更されたデータに基づいて再度干渉チェックを行いホルダと該ホルダへの工具取付け長さを決定することを特徴とするホルダおよびホルダへの工具取付け長さを決定する機能を有する数値制御装置である。請求項2に係る発明は、前記干渉チェックは、工具交換指令あるいはプログラムの終了まで行い、干渉した場合に工具の取付け長さあるいはホルダのデータを変更することを特徴とする請求項1に記載のホルダおよびホルダへの工具取付け長さを決定する機能を有する数値制御装置である。請求項3に係る発明は、前記工具交換指令時またはプログラム終了時の工具の取付け長さおよび工具ホルダのデータを記憶する記憶部を有することを特徴とする請求項2に記載のホルダおよびホルダへの工具取付け長さを決定する機能を有する数値制御装置である。請求項4に係る発明は、前記工具データ格納部は、工具取付け長さを使用可能な範囲で格納しており、前記干渉チェック部は、前記工具データ格納部で格納した工具取付け長さで最も短い工具取付け長さを使用した状態で開始し、干渉が発生しなくなるまで順次工具取付け長さを長くすることを特徴とする請求項1~3のいずれか1つに記載のホルダおよびホルダへの工具取付け長さを決定する機能を有する数値制御装置である。請求項5に係る発明は、前記ホルダデータ格納部は、複数のホルダのホルダ部の径と長さのデータを格納しており、前記干渉チェック部は、前記ホルダデータ格納部に格納された複数のホルダの中で、干渉チェックを行う工具に適用可能なもののうち、ホルダ部の径が最も太く、長さが最も短いホルダを使用した状態で開始し、干渉が発生しなくなるまで、チェックを行う工具に適用可能なものの中から、よりホルダの直径が細く、長さが長いものを使って行うことを特徴とする請求項1~4のうちのいずれか1つに記載のホルダおよびホルダへの工具取付け長さを決定する機能を有する数値制御装置である。本発明により、干渉しない範囲で、できるだけ太く短いホルダ、できるだけ短い工具取付け長さで加工することが可能なホルダおよびホルダへの工具取付け長さを決定する機能を有する数値制御装置を提供できる。以下、本発明の実施形態を図面と共に説明する。本発明の概要まず、本発明の概要を説明する。本発明は、工具とホルダに関する形状データを格納した数値制御装置で、目的の加工プログラムを実行した場合のシミュレーションにて、工具、ホルダ、機械構造物、加工対象物ワークの非加工領域、ワーク固定ジグの相互間の干渉チェックを行い、この干渉チェック中に、自動的に干渉の生じない工具取付け長さとホルダ形状のデータを抽出、記憶し、そのデータを結果として出力する。その結果のデータを参照して、オペレータは実際に加工を行う際に必要な段取り作業を行う。すなわち、オペレータはホルダを選定し、工具取付け長さを調整してから、工具交換装置に容易にセットすることができる。機械加工は一般に短い工具取付け長さで、太く短いホルダを使うことが望ましいので、ある工具番号の加工に対し、一番短い工具取付け長さと一番太く短いホルダが装着された際の形状データを使ってシミュレーションによる干渉チェックを開始する。加工プログラムの進行による工具軌跡の進行により、干渉チェックが干渉を検出した時点で、加工プログラムの進行を一旦止める。そして、データに格納されている工具およびホルダの情報を使って工具取付け長さやホルダ形状を変更する。例えば、あらかじめ指定しておいた単位で工具取付け長さを長くする。データ内のホルダから、より細いもの、長いものを検索して、そのホルダ形状に変更する。この工具取付け長さやホルダ形状の変更により干渉が回避できることを干渉チェックで確認できたら、一旦止めておいた加工プログラムのシミュレーションを再開する。工具取付け長さやホルダ形状のデータを例えば1段階変更した後、加工プログラムの実行干渉のチェックのシミュレーションを再開する。これを干渉が生じなくなるまで繰り返し、工具交換指令時点の工具取付け長さとホルダ形状のデータを、その工具で干渉が生じない工具取付け長さとホルダ形状のデータとして記録する。これを加工プログラムの終了まで自動的に繰り返すことにより、工具番号毎に干渉が生じない適切な工具取付け長さ、ホルダ形状のデータを得ることができ、オペレータは記録されたデータを参照するだけで容易に適切な加工段取りが行える。図5は上述した本発明に係る工具とホルダの長さの関係を決める論理を説明する図である。単純化のため工具3はドリルとし、加工対象のワーク4に工具3で穴5を開ける2次元化した例で説明するが、他の工具にも適用可能である。図5の工具3は加工対象の穴5に十分な長さでホルダ2に取付けられているが、このまま穴5を加工すると主軸頭1とテーブル6を近づけると、やがて、ホルダ2とワーク4が干渉する。これを無視して加工を継続すると、やがて、主軸頭1もワーク4と干渉する。工具3を長くすればこれらの干渉は回避できるが、それでは、工具3の剛性低下やブレが生じ易くなる。また、工具全長の制限、ホルダ2に工具を保持するための長さも必要なので、工具3を長くするにも限度がある。工具3とホルダ2の長さの関係を決める論理は色々なものが考えられるが、ここでは単純化して、ただ単純に1工具3の長さ→2ホルダ2の太さ→3ホルダ2の長さの順に決めていくものとする。上記1により工具3の長さは図5で既に限界状態と仮定する。この先では2によりホルダ2がワーク4に干渉しなくなるまでホルダ直径のデータをより細いものに変更しながら干渉チェックを行う。その結果、ホルダ2とワーク4の干渉は回避できるようになるが、加工が進むと、次に主軸頭1とワーク4とが干渉するようになる。これを感知したら、3によりホルダ2の長さをより長いもののデータに変更しながら干渉チェックを行い、最終的に干渉の発生しない工具長さ、ホルダ形状直径長さのデータを得る。本発明は、図5で説明した論理で、工作機械の主軸やテーブルなどの機械構造物、加工対象物ワーク、ジグワーク固定具、工具とホルダ形状に関するデータを格納した数値制御装置で、目的の加工プログラムを実行した場合の機械構造物、加工対象物、ジグ、工具、ホルダ相互間の干渉の有無を、これらの形状データを使って計算シミュレーションによって確認する。上記の機械構造物、加工対象物ワーク、ジグワーク固定具、工具とホルダの形状データを用いて、常時相互間の干渉の有無をチェックする手法は既知であるこれ以降、干渉チェックと称する。加工プログラムのシミュレーション実行時に、干渉チェックも行い、自動的に干渉の生じない工具取付け長さとホルダ形状のデータを抽出し、記憶し、その結果をデータとして出力する。そのデータを参照することで、機械オペレータは実加工を行う際に必要な工具の取付け作業を行う。加工段取り作業、すなわち、ホルダを選定し、工具取付け長さを調整してから、工具交換装置にセットする。機械加工は一般に短い工具取付け長さで、太く短いホルダを使うことが機械的な剛性確保の観点から望ましいので、ある工具番号の加工に対して、一番短い使用可能な最も短い工具取付け長さと一番太く短い使用可能な最も太く短いホルダが装着された際の工具、ホルダ形状データを使って干渉チェックを開始する。加工プログラムの進行による工具軌跡の進行により、干渉チェックが干渉を検出した時点で、加工プログラムによる工具の軌跡の進行は一旦止める。そして、データに格納されている工具およびホルダの情報を使って、干渉チェックで使用しているデータの内、工具取付け長さやホルダ形状のデータを変更する。例:予め指定しておいた単位で工具取付け長さを長くする。データ内のホルダから、より細いもの、長いものを検索して、そのホルダ形状に変更する。この工具取付け長さやホルダ形状の変更により干渉が回避できることを干渉チェックで確認できたら、先に一旦止めておいた加工プログラムのシミュレーションを再開する。上記処理を、干渉発生が検出されなくなるまで自動的に繰り返し行う。これを、その工具による加工が終わるところまで繰り返すことで、その工具を使った加工において、最後まで干渉が生じない工具取付け長さとホルダ形状のデータを得ることができるので、これを記録しておく。これを加工プログラムの終了まで自動的に繰り返すことにより、工具番号毎に干渉が生じない適切な工具取付け長さ、ホルダ形状のデータを得ることができる。この方法で得られるデータは、データ登録されているホルダの形状、および、そのホルダを使うことを考慮した工具取付け長さになる。工具3は消耗品であり、加工プログラムに付属する工具の指定データに応じて用意する必要がある。一方、ホルダ2は、一般には汎用品を繰り返し使用し、かつ、複数の工作機械で共有されることも多い。また、ホルダ2は実際にはチャック2bとコレット2cから構成される。ホルダ形状直径、長さはチャック2bで決まり、そのチャック2bで保持できる工具直径は、コレット2cで決まる。また、チャック2bは利用可能なコレット2cが定まっている。つまり、チャック2bとコレット2cには対応関係がある。加えて、チャック2b側の仕様によっても、工具の取付け長さに制限が生じる。これらを考慮して、本実施形態は以下の仕様で記載する。工具3は、加工プログラムに対応するものを必ず入手することを前提として、工具番号毎に、その工具のデータ使用可能な取付け長さなどを入力する。ホルダ2は、チャック2bとコレット2cに分けて、使用可能な全個体のデータを入力するものである。さらに、その個体毎に使用状況のデータを加えることで、本発明の利用時に、適切なホルダ2チャック2b、コレット2cの形状の教示に加えて、その型番やその個体の使用状況他の加工で使用中かなども教示可能とする。予め機械構造物、加工対象物、ジグ、工具、ホルダのそれぞれの形状データを与えておき、これら相互の位置関係を常時計算することによって、これら相互間の干渉の有無を監視する技術は公知である。以降、この与えられた形状データと計算により相互間の干渉の有無を監視することを単に干渉チェックと記す。干渉チェックの実現には様々な技法が考えられるが、本発明では、干渉チェックの結果干渉の有無、何が干渉したかが分ればよいので、本発明で利用する干渉チェックは、公知の干渉チェックの技法を用いるとよい。1各データの入力予め、以下のデータを数値制御装置のメモリに格納しておく。●a機械構造物の形状データ数値制御装置付きの工作機械以下、工作機械という。自身の機械構造物の形状データを前記数値制御装置が有するメモリに格納する。●ホルダのデータチャックとコレットに分けて、本発明を利用する全てのチャック、および、コレットの個体毎に以下のデータを格納する。bチャックb-0IDb-1直径主軸取付け時の、主軸頭と工具の間にあたる部位の直径b-2長さ主軸取付け時の、主軸頭と工具の間にあたる部位の長さb-3工具の最短挿入長さ把持のため最低限必要な工具挿入長さb-4工具の最長挿入長さ工具挿入長さの最大値b-5適用可能なコレットの形式名b-6使用状況b-7形式名cコレットc-0IDc-1形式名c-2適用可能な工具直径範囲c-3使用状況加工プログラム、および、その加工プログラムに対応する工具のデータを入手したら、その加工プログラム内に現れる工具番号毎に、以下のデータを格納する。●d使用する工具の形状データd-1先端形状d-2工具直径d-3最短取付け長さd-4最長取付け長さ指定なき場合は工具全長を設定ホルダにも工具把持に必要な長さのデータがあるので、工具側に最長取付け長さの指定がない場合は工具全長を入れておけばよい。d-5全長●e加工対象物の形状データその工具による加工終了時における加工対象物の非加工領域の形状データを入力全ての工具に対して、加工終了時の形状を使って干渉チェックを行ってもよいが、本実施例では、より厳密な干渉チェックを可能とするため、工具毎に、その工具による加工が終わった時点での加工対象物の形状データを設定し、これを使って干渉チェックを行うものとする。●fジグの形状データその工具による加工開始時点のジグの形状データを入力一般にジグの形状は加工終了まで一定だが、自動化の進んだ加工では加工の進展に合わせて、ジグでクランプされていた部位を加工するなどの目的で、ジグを変形させる場合もあるので、本実施例では、工具毎に、その工具による加工開始時点のジグの形状データを設定し、これを使って干渉チェックを行うものとする。上記a~fの各データは、数値制御装置内のメモリに格納する。もしくは、LAN接続されたコンピュータなどの数値制御装置から参照可能なメモリに格納し、データを他の工作機械を制御する数値制御装置と共有して使用できるようにしてもよい。2工具取付け長さとホルダの選定の実施本発明を利用するオペレータは以下を行う。2A干渉回避の試行1回あたりの変更量をパラメータに設定工具の取付け長さの選定時に、工具長さを変更することで干渉回避を試行する際の1回あたりの変更量を設定する。パラメータで事前に設定する。このパラメータは全工具で共通、もしくは、工具毎に設定してもよい。2B本発明の結果、すなわち、ホルダ選択結果と工具取付け長さを格納するメモリの初期化の要否判定新しい加工プログラムのために本発明を適用する際に実施する。もしくは先の1各データの入力によって格納されるいずれかのデータに更新や変更があり、それを反映させたい場合に実施する。2C工具取付け長さとホルダの選定の開始を指令工具取付け長さとホルダの選定を行うモードを選択し、対象の加工プログラムを指定して、その実行を指令する。この場合、数値制御装置は、先の1各データの入力によって格納されたa~fの各データを使い、加工プログラムを実行した場合のシミュレーションを行いつつ、機械構造物、加工対象物、ジグと、工具、ホルダの間の干渉チェックを行う。この際、数値制御装置は、加工プログラム内の工具交換指令で与えられる工具番号を監視しており、新たな工具番号が指令されると、以下の操作を行う。<1>加工対象およびジグの形状データを工具番号に合致するものに更新する。加工対象物の形状データe,および,ジグの形状データfの更新<2>指令された工具番号に対応する使用する工具の形状データdを取り込む。<3>ホルダ選択結果と工具取付け長さを格納するメモリを参照し、既にデータが格納されている場合には、そのデータからチャックの直径データを取り込む。データが格納済みでない場合は、格納されている全てのチャックの直径データb-1の中から、最も直径が大きいものを検索する。なお、この時、使用状況b-6も参照して、空き状態でないものは選択しないようにしてもよい。こうした場合には、所有品の現状使用可否も反映できるので、得られたデータで即座に加工が可能か否かの情報も加味したデータが得られる。<4>参照するデータ内に同じ直径のチャックが複数存在する場合は、その中で、長さb-2が最も短いチャックを検索し、これを選択する。なお、この時、使用状況b-6も参照し、空き状態でないものは選択しないようにしてもよい。こうした場合には、所有品の現状使用可否も反映できるので、得られたデータで即座に加工が可能か否かの情報も加味したデータが得られる。<5>選択したチャックが適用可能なコレットb-5と合致する形式名c-1を持つコレットを、データ内の全てのコレットから検索し、合致するコレットがあれば、さらに、そのコレットに適用可能な工具直径範囲データc-2を使って現在チェック対象の工具の工具直径d-2を把持できるかチェックする。なお、この時、使用状況c-3も参照し、空き状態でないものは選択しないようにしてもよい。こうした場合には、所有品の現状使用可否も反映できるので、得られたデータで即座に加工が可能か否かの情報も加味したデータが得られる。<6>工具を把持できるチャックとコレットのペアが見つからない場合は、全てのチャックの中で、先の<3>でチェックしたチャック直径b-1の次に細いチャック直径のチャック直径データを持つチャックを、上記<3>の方法で検索し、上記<4>,<5>を繰り返す。これを繰り返した結果、工具を把持可能なチャックとコレットのペアが存在しなかった場合には、現在チェック中の工具番号の工具に対して適用可能なチャック,および,コレットが、チャック,および,コレットのデータ中に存在しないことになり、これ以上チェックする意味がないため、次の工具交換命令がある時点までは干渉が発生しても何もしないまま加工プログラムを進めて、上記<1>に戻る。もしも、工具交換指令が現れないまま加工プログラムが終了した場合には、後述の<12>へ移る。<7>上記<5>で選出したチャックに現在の工具を取付けた場合の最短取付け長さを確認する。d-3とd-5-b-4の解を比較し、より大きい方が工具とチャックを組み合わせた時の、最短の工具取付け長さである。工具:d-3最短取付け長さ:d-5全長チャック:b-4工具の最長挿入長さ工具をチャックコレットに挿入できる長さの最大値<8>上記<5>で選出したチャックが現在の工具を取付けた場合の最長取付け長さを確認する。d-5-d-4の解とb-3を比較し、より大きい値をd-5から引いた値が取付け可能な最大長さである。工具:d-4最長取付け長さ指定なき場合は工具全長を設定:d-5全長チャック:b-3工具の最短挿入長さ把持に最低限必要な工具のチャックコレットへの挿入長さ<9>上記<5>で選定したチャックの形状、および、上記<7>で求めた最短の工具取付け長さのデータを使って、加工プログラムを実行した場合のシミュレーションを行いつつ、干渉チェックを行う。<10>加工プログラムの進行による干渉の発生が干渉チェックによって確認されたら、加工プログラムの進行軌跡の進行を一旦停止する。その後、前述の2Aでパラメータ設定した、干渉回避の試行1回あたりの変更量分だけ工具取付け長さを長くした形状データに変更した後、干渉チェックの結果を確認する。これを干渉が回避されるまで繰り返す。<11>上記<10>の工具取付け長さの変更と干渉チェックを繰り返すうちに、工具取付け長さが上記<8>で求めた値より大きくなってしまった場合には、干渉が生じている部位にホルダが含まれているか否かの判定を行う。干渉が生じている部位がホルダであるなら、ホルダ自体の太さのために、干渉が生じていると考えられる。また、ホルダが干渉していないのに干渉が生じているのであれば、主軸頭などの機械構造物が干渉を起こしていることになるため、ホルダの長さをより長くしないと干渉を回避できない。干渉にホルダが含まれている場合は、全てのチャックの直径データb-1から、現在干渉チェックに使用しているチャック直径b-1の次に細いチャック直径のチャックを検索し、上記<4>に移る。干渉にホルダが含まれていない場合には、現在干渉チェックに使用中のチャックの直径b-1と同じ直径を持つチャックの中で、このチャックの次に長い,チャック長さb-2を持つチャックを選択する。同じ直径のチャックの中に、現在より長いチャック長さb-2のチャックが無かった場合は、現在干渉チェックで使用中のチャック直径b-1の次に細いチャック直径のチャックを検索し、その中から、現在干渉チェックで使用中のチャック長さb-2より長いものを検索し、上記<5>に移る。<12>加工プログラムのシミュレーションの進展で、新たな工具交換指令がなされた場合、もしくは、加工プログラムのシミュレーションが最後まで実行されて終了した場合には、その時点で干渉チェックに使っている工具取付け長さ、および、チャックの形状b-1,b-2を、工具長さおよびチャックの選定結果として、チェックしていた工具番号と共にメモリに記憶する。このとき、加工段取り作業の利便性向上のため、干渉チェックに使っていたチャックのIDb-0およびコレットのIDc-0も記録してもよい。また、複数の工作機械でホルダを共有している場合を考慮して、今回のホルダの選定で選定されたチャックとコレットそれぞれの使用状況b-6,c-3に対して、選定されたことによる状況の更新例えば使用中選定済みなどを行ってもよい。<13>上記<12>でデータをメモリへ記憶した後も、加工プログラム実行のシミュレーションに続きがある場合は、新たな工具が指令される状況に備えて、上記<1>に移る。これを加工プログラム実行のシミュレーション終了時まで行う。3結果の利用前述1各データの入力,2工具取付け長さとホルダの選定の実施により、工具取付け長さとホルダの選定結果がメモリに記憶されている。機械オペレータは、この保持メモリの内容を、数値制御装置上で参照、もしくは外部機器パソコン等に取り込んで参照することで、このデータを利用する。このデータは、工具番号毎に、最適なホルダチャックの直径,および,長さと工具取付け長さを示すものである。計測,および,判定が容易なデータなので、オペレータはこのデータを使って加工段取りを行うことによって、適切な加工段取りを効率よく行うことができる。得られたデータの直径や長さに合致するホルダが手元に無い場合でも、できるだけ近い値で、より細く、かつ、より長いホルダを使えば、最適ではないものの干渉は生じないので、加工を行うことができる。なお、前記2の<12>で述べた、チャック、コレットのIDb-0,c-0を記録した場合には、データを参照する際に、このIDのチャック、コレットのデータを参照して、ID自体b-0,c-0、形式名b-7,c-1、使用状況b-6,c-3を参照可能としてもよい。IDもしくは形式名がわかるならば、現物を測定して確認することなく、所持品内からホルダチャック、コレットを捜索し確保することが容易にできる。また、前記1、2で述べたように、複数の工作機械を運用している場合に、チャック、および、コレットの情報を共有し、かつ、使用状況のデータ更新も本発明の運用に含めることで、加工に必要なホルダの有無すぐに加工を開始できるか否かが判断でき、無駄にホルダを捜索することを避けられる。また、ホルダが使用中などで加工を開始できない場合においても、問題点が容易にわかるため、必要な行動不足品の手配、該当ホルダが使用可能になる時期の確認,および,交渉、それに伴う納期見積もりなどの変更などを迅速に行える。フローチャートの説明以下、上記1各データの入力、2工具取付け長さとホルダの選定の実施、3結果の利用について、工作機械を制御する数値制御装置で実行されるプログラムのアルゴリズムをフローチャートにより説明する。なお、各フローチャートで用いられる<>付き数字、付きアルファベットは、本発明の概要の説明で用いたものと対応する。図6は、1各データの入力を行う処理のフローチャートである。以下、各ステップに従って説明する。●[ステップSA01]機械構造物の形状データは設定済みか否か判断し、設定済みの場合にはステップSA03へ移行し、設定されていない場合にはステップSA02へ移行する。●[ステップSA02]機械構造物の形状データを入力しメモリに格納する。機械構造物の形状データが格納されたメモリ領域をメモリM1と称する。図9参照●[ステップSA03]ホルダのデータは設定済みか否か判断し、設定済みの場合にはステップSA05に移行し、設定済みでない場合にはステップSA04に移行する。●[ステップSA04]ホルダのデータを入力しメモリに格納する。ホルダのデータとはチャックのデータおよびコレットのデータである。ホルダのデータが格納されているメモリ領域をメモリM2と称する。図9参照●[ステップSA05]加工プログラム中に現れる工具番号毎に、使用する工具のデータ、前記工具による加工終了時の加工対象物形状データ、前記工具による加工時のジグ形状データを設定し、メモリに格納し、処理を終了する。設定したデータが格納されているメモリ領域をメモリM3と称する。図9参照図7は、2工具取付け長さとホルダの選定を行う処理のフローチャートである。以下、各ステップに従って説明する。●[ステップSB01]対象の加工プログラムを数値制御装置のプログラム格納メモリに格納する。加工プログラムを格納したメモリの領域をM4と称する。図10参照●[ステップSB02]干渉回避の試行1回当たりの変更量を設定するパラメータに設定。設定済み、かつ、その値でよければ、再設定は不要である。。●[ステップSB03]初めての加工プログラムか、もしくは、前回実施後に、図6で用意したデータに変更があった否か判断し、YESの場合にはステップSB04へ移行し、NOの場合にはステップSB05へ移行する。●[ステップSB04]工具取付け長さとホルダの選定をしたデータを格納するメモリM5を初期化する。●[ステップSB05]工具取付け長さとホルダの選定を行うモードを選択し、対象の加工プログラムを指定して、工具取付け長さとホルダの選定の実行を指令する。●[ステップSB06]指定された加工プログラムのシミュレーション実行における干渉チェックを開始する。加工プログラムのシミュレーション進行による各部の移動を含め、機械構造物、加工対象物、ジグ、工具、ホルダの相互間の干渉の有無を、メモリM1~M3に格納されたa~fの各形状データ図9参照を使った計算で監視する。●[ステップSB07]メモリM4に格納された対象の加工プログラムを解読デコードする。つまり、加工プログラムをその指令行ブロック間に解析し、シミュレーションを実行のためのデータを生成する。●[ステップSB08]これからシミュレーションを実行する指令行ブロックは工具番号指令を含むか否か判断し、含む場合にはステップSB09へ移行し、含まない場合にはステップSB10へ移行する。●[ステップSB09]干渉チェックのためのデータ中、工具番号毎にデータ登録されたものをメモリM3から読み込み、干渉チェックで使用中のデータを指令された工具番号に対応するものに更新する。更新するデータは以下のものである。<1>加工対象物e、および、ジグfの形状データ、<2>工具の形状データd●[ステップSB10]メモリM5を参照する。指令された工具番号の選定結果データを確認する。●[ステップSB11]工具番号の合致する結果データはあるか否か判断し、ある場合にはステップSB12へ移行し、ない場合にはステップSB13へ移行する。●[ステップSB12]メモリM5内の工具番号の合致する結果データの中に、チャック直径の値はあるか否か判断し、ある場合にはステップSB14へ移行し、ない場合にはステップSB24へ移行する。●[ステップSB13]<3>メモリM2内の全チャックの直径データb-1中、最も大きい値を検出するこの値で、以降のチャックのデータ検索を行う。。検出したデータを選択して、ステップSB15へ移行する。●[ステップSB14]メモリM5内の工具番号の合致する結果データ中のチャック直径を取り込むこの値で以降のチャックのデータ検索を行う。。●[ステップSB15]<4>メモリM2内の全チャックデータbを検索する。データ検索の結果、同じ値の直径データb-1を持つチャックが複数存在する場合、その長さデータb-2が最も短いチャックを選択する。さらに、同じ値の長さデータb-2を持つチャックが複数存在する場合は、そのIDの値が最も小さいものを選択する。●[ステップSB16]<5>メモリM2内の全コレットデータcを検索する。選択中のチャックの、適用可能なコレットデータb-5と合致する形式名データc-1を持つコレットを検索する。合致するコレットがあれば、そのコレットを選択し、そのコレットの適用可能な工具直径範囲データc-2で現在チェック対象の工具の工具直径d-2を把持できるか確認する。●[ステップSB17]<6>工具を把持できるチャックとコレットのペアを選択できたか否か判断し、選択できた場合にはステップSB20に移行し、選択できない場合にはステップSB18へ移行する。●[ステップSB18]メモリM2内の全チャックデータbを検索して、選択中のチャックのチャック直径の次に細いチャックデータがあるか否かを判断し、ある場合にはステップSB19へ移行し、ない場合にはステップSB24へ移行する。●[ステップSB19]選択中のチャックのチャック直径の次に細いチャック直径データを選択する。この値で以降のチャックデータの検索を行う。●[ステップSB20]<7>選択したチャックに現在の工具を取付けた場合の最短の工具取付け長さを求める。●[ステップSB21]<8>選択したチャックに現在の工具を取付けた場合の最長の工具取付け長さを求める。●[ステップSB22]<9>干渉チェックのためのデータ中、工具とホルダのデータを変更する。●[ステップSB23]干渉チェックの結果監視フラグを1にし、ステップSB25へ移行する。●[ステップSB24]干渉チェックの結果監視フラグを0にし、ステップSB25へ移行する。●[ステップSB25]<10>加工プログラムのシミュレーションを実行する。一時停止中の場合は、停止箇所からの再開、つまり、ステップSB07でデコードしておいたデータをシミュレーションで順次実行する。●[ステップSB26]干渉チェックの結果監視フラグは0であるか1であるかを判断し、0の場合はステップSB38へ移行し、1の場合はステップSB27へ移行する。●[ステップSB27]干渉チェックを監視する。●[ステップSB28]干渉発生か否か判断し、干渉発生の場合にはステップSB29へ移行し、干渉発生でない場合にはステップSB38へ移行する。●[ステップSB29]加工プログラム実行のシミュレーションによる軸加工軌跡の移動を停止する。●[ステップSB30]ステップSB02で設定した干渉回避の試行1回当たりの変更量を、現在、干渉チェックで使っている工具取付け長さに加算する。●[ステップSB31]加算後の値はステップSB21で求めた最長の工具取付け長さより短いか否か判断し、短い場合にはステップSB32へ移行し、短くない場合にはステップSB33へ移行する。●[ステップSB32]干渉チェック用データ中の工具取付け長さデータを、上記値に変更する。●[ステップSB33]<11>干渉発生部位にホルダが含まれるか否か判断し、含まれる場合にはステップSB34へ移行し、含まれない場合にはステップSB36へ移行する。●[ステップSB34]メモリM2内の全チャックデータbを検索し、現在より、細い形状のチャックを選択する。この値で以降のチャックのデータ検索を行う。●[ステップSB35]より細い形状のチャックはあったか否か判断し、あった場合にはステップSB15へ移行し、なかった場合にはステップSB24へ移行する。●[ステップSB36]メモリM2内の全チャックデータbを検索し、現在より長い形状のチャックを選択する。この値で以降のチャックのデータ検索を行う。●[ステップSB37]より長い形状のチャックはあったか否か判断し、あった場合にはステップSB16へ移行し、なかった場合にはステップSB24へ移行する。●[ステップSB38]シミュレーションの現ブロックは実行完了か否か判断し、実行完了の場合にはステップSB39へ移行し、実行完了ではない場合にはステップSB25へ戻る。●[ステップSB39]シミュレーションの次ブロックは新たな工具番号指令、または、加工プログラム終了か否か判断し、YESの場合にはステップSB40へ移行し、NOの場合にはステップSB25へ戻る。●[ステップSB40]干渉チェックの結果監視フラグは0であるか1であるかを確認し、0である場合にはステップSB42へ移行し、1である場合にはステップSB41へ移行する。●[ステップSB41]現在処理中の工具番号、および、干渉チェックで使用している工具取付け長さ、チャック形状をメモリM5に格納する。図10参照●[ステップSB42]シミュレーションの次ブロックは加工プログラム終了か否か判断し、終了ではない場合にはステップSB08へ戻り、終了の場合には処理を終了する。図8は、3結果を利用する処理のフローチャートである。以下、各ステップに従って説明する。●[ステップSC01]工具取付け長さとホルダチャックとコレットの選定結果はメモリM5に格納済みか否か判断し、格納済みの場合にはステップSC02へ移行し、格納済みでない場合にはステップSC06へ移行する。●[ステップSC02]工具毎に、メモリM5図7-7、図10中の、工具取付け長さのデータを取得し、数値制御装置の表示装置に表示する。●[ステップSC03]工具毎に、メモリM5図7-7、図10中の、ホルダチャックの径と長さのデータを取得し、数値制御装置の表示装置に表示する。●[ステップSC04]チャックとコレットに関する付加情報を表示させるか否かを判断し、表示させる場合にはステップSC05へ移行し、表示させない場合には処理を終了する。●[ステップSC05]工具毎に、メモリM5図7-7、図10中の、選定結果チャックおよびコレットのIDで1のメモリM2図6,図9参照を参照し、チャックとコレットおよびコレットのIDと共に表示して処理を終了する。●[ステップSC06]工具取付け長さとホルダの選定結果が無いことを数値制御装置の表示装置に警告表示して、処理を終了する。図11は、本発明を適用した数値制御装置付き工作機械を説明する図である。プロセッサであるCPU111は、ROM112に格納されたシステムプログラムに従って数値制御装置100全体を制御する。RAM113は各種のデータあるいは入出力信号が格納される。不揮発性メモリ114に格納された各種のデータは電源切断後もそのまま保存される。グラフィック制御回路115はデジタル信号を表示用の信号に変換し、表示装置116に与える。キーボード117は、数値キー,文字キーなどを有する各種設定データを入力する手段である。軸制御回路118はCPU111から各軸の移動指令を受けて軸の指令をサーボアンプ119に出力する。このサーボアンプ119は、この移動指令を受けて、工作機械200のサーボモータ図示せずを駆動する。これらの構成要素はバス121で互いに結合されている。PMCプログラマブルマシンコントローラ122は、加工プログラムの実行時に、バス121経由でT機能信号工具選択指令などを受け取る。そして、この信号を、シーケンスプログラムで処理して、動作指令として信号を出力し、工作機械200を制御する。工作機械200からの状態信号を受けて、CPU111に必要な入力信号を転送する。さらに、バス121には、システムプログラム等によって機能が変化するソフトウェアキー123、NCデータを記憶装置などの外部機器に送る,あるいは,外部機器から数値制御装置内に各種プログラムやデータを入力するためのインタフェース124が接続されている。このソフトウェアキー123は、表示装置116、キーボード117と共に、表示装置/MDIパネル125に設けられている。本発明は工作機械のオペレータによって、現場の状況を反映させた柔軟な運用も可能である。すなわち、ホルダのデータの登録内容を工夫することで、以下のような使い方もできる。<実際に使用可能なホルダのみデータ登録>この場合、オペレータは本発明で得たデータで、直接、即座に適切な加工段取りが行える。指定されたホルダが他で使用中などの理由で、データを得ても加工を開始できない事態を回避できる。<ホルダを1つのみ登録>そのホルダによる加工で干渉が起きるか確認し、干渉が無い場合、最適な工具取付け長さが得られる。何らかの理由でホルダ形状が決まっている場合や、指定されたホルダが無いので、より細いものを使いたいなどの場合、干渉の有無を確認し、そのホルダで最適な最も短い工具取付け長さを得る。<ホルダのカタログなどを使って、入手可能なホルダのデータを全て登録>得られたホルダ形状に、所持していないものが含まれていた場合、加工を行うにはそのホルダの入手が必要もしくは、望ましい。とわかる。この情報があれば、納期や価格の見積もりをより容易に正確に行える。なお、ホルダは、一般には1つの工場内で、複数の工作機械によって共有使用される場合が多いと思われる。このような環境では、ホルダのデータをサーバ上で集中管理することで、毎回、もしくは、個々の工作機械にホルダのデータを入力する作業の手間を回避し、かつ、ホルダの使用状況空きか、他で使用中か等も考慮して本発明を利用することも考えられる。上述した本発明の実施形態の説明では、ホルダは単純な円筒形としたが、実際に用いられるホルダはテーパ形状のものなどがある。また、より複雑な形状のものもある。必要に応じて登録するホルダの形状データ、および、それを使う選定処理を増やすことで、より複雑な形状のホルダも選定するようにしてもよい。また、上述した本発明の実施形態においては、加工後の形状データを用いて干渉チェックを行っているが、切削シミュレーション機能計算により、加工前の素材形状から、加工プログラムの進行により、切削された部位を削除した形状データを得る機能を併用することによって、加工プログラムの進行に応じたワーク形状を使った干渉チェックが行われるので、より適切なホルダと工具取付け長さのデータを得ることができる。干渉回避可能なホルダと工具取付け長さの組み合わせは複数ある場合が考えられる。例えば、谷底形状の底の部分を加工したい場合には、大別すると、太く短いホルダに、工具を長く取付けるパターンと、細く長いホルダに工具を短く取付けるパターンが考えられる。上述した本発明の実施形態では、工具取付け長さの選定後、ホルダを選定しているので、得られる選定結果データは、太く短いホルダに、工具を長く取付けるパターンとなるが、特に細い工具の場合など、工具取付け長さの短さを優先したい場合には、ホルダ形状の選定後、工具取付け長さの選定を行うようにすればよい。また、工具データの登録時に、工具取付け長さの短さを優先するかどうかのパラメータを追加し、ホルダ、および工具取付け長さの選定処理において、このパラメータ設定に従った順番でホルダおよび工具取付け長さの選定を行うようにしてもよい。"