(57)【特許請求の範囲】
【請求項１】
所定の空間内で所定の軸方向に移動可能または所定の軸回りに回転可能に構成されて予め基準点が設定された単数または複数の可動体と、前記所定の空間内に固定された単数または複数の固定体と、を有する工作機械の干渉検出装置であって、
前記所定の空間内には予め複数のマップ点が設定されており、各マップ点には前記可動体の基準点がマップ点と一致する位置となった場合に前記可動体が周囲の固定体と干渉するか否かを示す干渉情報が、各マップ点に対応させて設定されており、
前記可動体の各々に対応付けられているとともに当該可動体における可動状態に関する信号である可動状態信号の入力時に、対応付けられた可動体を移動させる移動方向情報または移動位置情報または移動量情報の少なくとも１つを含む移動情報が記憶された移動情報記憶部と、
前記可動体毎の複数のマップ点が設定された干渉マップが前記可動体毎に記憶された干渉マップ記憶部と、
前記可動状態信号と前記移動情報とに基づいて、前記可動体の基準点の移動先の位置である移動先位置を予測する可動体位置予測部と、
予測した前記移動先位置と前記干渉マップとに基づいて、前記可動体が前記移動先で前記固定体と干渉するか否かを判定する干渉マップ判定部と、
前記可動体と前記固定体と、の各々のポリゴンデータを含む３次元データが記憶された３次元データ記憶部と、
前記３次元データに基づいて仮想３次元空間に前記可動体と前記固定体とを組み付けた工作機械の仮想３次元モデルを作成可能であり、前記３次元データと前記可動状態信号と前記移動情報とに基づいて、前記工作機械の動作に同期させて、前記仮想３次元モデル中の前記可動体を動作させることが可能なモデル制御部と、
前記可動体の基準点の位置が、前記干渉マップ内の領域内であるが前記マップ点と一致しない位置となった場合、前記基準点の位置の周囲に近接している複数のマップ点を抽出し、抽出したマップ点の数と、抽出した各マップ点における前記干渉情報と、前記基準点と前記抽出したマップ点までの各々の距離と、に基づいて、当該基準点の位置においてどの程度の干渉可能性があるかを数値で示した干渉度合いを求める干渉度合い演算部と、
求めた干渉度合いに基づいて前記可動体が干渉する可能性があるか否かを判定するための干渉閾値が記憶された干渉閾値記憶部と、
前記干渉度合いが前記干渉閾値以上である場合に前記可動体が干渉する可能性があると判定する干渉可能性判定部と、
前記干渉可能性判定部にて干渉する可能性があると判定された場合に、前記ポリゴンデータに基づいた前記可動体と前記固定体の詳細形状と、前記可動体の移動先位置と、を用いて前記可動体と前記固定体と、が干渉するか否かを判定する詳細干渉判定部と、
を有し、
前記工作機械における前記可動体が前記固定体と干渉する前に、干渉することを予測可能である、
工作機械の干渉検出装置。
【請求項２】
所定の空間内で所定の軸方向に移動可能または所定の軸回りに回転可能に構成されて予め基準点が設定された、少なくとも第１可動体と第２可動体の２つを含む可動体を有する工作機械の干渉検出装置であって、
前記可動体の各々に対応付けられているとともに当該可動体における可動状態に関する信号である可動状態信号の入力時に、対応付けられた可動体を移動させる移動方向情報または移動位置情報または移動量情報の少なくとも１つを含む移動情報が記憶された移動情報記憶部と、
前記第１可動体の基準点の位置に対する前記第２可動体の基準点の複数の相対位置に設定した複数のマップ点を有し、当該マップ点の各々に対して前記第１可動体と前記第２可動体とが干渉するか否かを示す干渉情報が設定された可動体相互干渉マップ、あるいは前記第２可動体の基準点の位置に対する前記第１可動体の基準点の複数の相対位置に設定した複数のマップ点を有し、当該マップ点の各々に対して前記第１可動体と前記第２可動体とが干渉するか否かを示す干渉情報が設定された可動体相互干渉マップ、の少なくとも一方が記憶された干渉マップ記憶部と、
前記可動状態信号と前記移動情報とに基づいて、各々の可動体の基準点の移動先の位置である移動先位置を予測する可動体位置予測部と、
前記第１可動体の移動先位置と、前記第２可動体の移動先位置と、前記可動体相互干渉マップと、に基づいて前記第１可動体と前記第２可動体とが干渉するか否かを判定する可動体相互干渉判定部と、
前記第１可動体と前記第２可動体と、の各々のポリゴンデータを含む３次元データが記憶された３次元データ記憶部と、
前記３次元データに基づいて仮想３次元空間に少なくとも前記第１可動体と前記第２可動体とを組み付けた仮想３次元モデルを作成可能であり、前記３次元データと前記可動状態信号と前記移動情報とに基づいて、前記工作機械の動作に同期させて、前記仮想３次元モデル中の前記可動体を動作させることが可能なモデル制御部と、
前記可動体の基準点の位置が、前記可動体相互干渉マップ内の領域内であるが前記マップ点と一致しない位置となった場合、前記基準点の位置の周囲に近接している複数のマップ点を抽出し、抽出したマップ点の数と、抽出した各マップ点における前記干渉情報と、前記基準点と前記抽出したマップ点までの各々の距離と、に基づいて、当該基準点の位置においてどの程度の干渉可能性があるかを数値で示した干渉度合いを求める干渉度合い演算部と、
求めた干渉度合いに基づいて前記可動体が干渉する可能性があるか否かを判定するための干渉閾値が記憶された干渉閾値記憶部と、
前記干渉度合いが前記干渉閾値以上である場合に前記可動体が干渉する可能性があると判定する干渉可能性判定部と、
前記干渉可能性判定部にて干渉する可能性があると判定された場合に、前記ポリゴンデータに基づいた前記第１可動体と前記第２可動体の詳細形状と、前記可動体の移動先位置と、を用いて前記第１可動体と前記第２可動体と、が干渉するか否かを判定する詳細干渉判定部と、
を有し、
前記第１可動体が前記第２可動体と干渉する前に、干渉することを予測可能である、
工作機械の干渉検出装置。
【請求項３】
請求項１または２に記載の工作機械の干渉検出装置であって、
前記可動体は、前記工作機械における加工工具を含む加工ユニットと、当該加工工具によって加工されるワークを含むワークユニットと、を少なくとも含む、
工作機械の干渉検出装置。
【請求項４】
請求項３に記載の工作機械の干渉検出装置であって、
前記ワークユニットにおける前記ワークは、所定の軸回りに回転可能であり、
前記干渉マップ記憶部には、前記ワークユニットの基準点の位置に対する前記加工ユニットの基準点の複数の相対位置に設定した複数のマップ点を有し、当該マップ点の各々に対して前記加工ユニットと前記ワークユニットとが干渉するか否かを示す干渉情報が設定された可動体相互干渉マップが記憶されているとともに、前記ワークの回転角度に対応させて複数の可動体相互干渉マップが記憶されており、
前記可動体相互干渉判定部は、前記ワークの回転角度に応じた可動体相互干渉マップを選択して、前記加工ユニットの移動先位置と、前記ワークユニットの移動先位置と、選択した可動体相互干渉マップと、に基づいて前記加工ユニットと前記ワークユニットとが干渉するか否かを判定する、
工作機械の干渉検出装置。
【請求項５】
請求項１〜４のいずれか一項に記載の工作機械の干渉検出装置であって、
前記詳細干渉判定部にて前記詳細形状を用いて干渉するか否かを判定した前記可動体の基準点の位置と、当該位置に対応させた前記判定の結果である干渉情報とを、新たなマップ点として対象となる干渉マップあるいは可動体相互干渉マップに追加して記憶するマップ点追加部を有する、
工作機械の干渉検出装置。
【請求項６】
請求項１〜４のいずれか一項に記載の工作機械の干渉検出装置であって、
前記仮想３次元空間内に作成した仮想３次元モデルを用いて、前記仮想３次元空間における前記所定の空間内で前記可動体の詳細形状を前記所定の軸方向にスイープまたは前記所定の軸回りに回転させて前記干渉マップまたは前記可動体相互干渉マップを作成する干渉マップ作成部を有する、
工作機械の干渉検出装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、工作機械における可動部の移動や回転による干渉（衝突）を検出する、工作機械の干渉検出装置に関する。
【背景技術】
【０００２】
従来より、数値制御装置（ＮＣ装置）を備えた工作機械を用いてワークを加工する場合、ワークまたは加工工具の少なくとも一方を移動させて加工を行う。この場合、予めプログラムされた加工軌跡に従ってワークまたは加工工具を自動的に移動させて加工を行う自動運転モードと、作業者が手動でワークまたは加工工具を移動させて加工を行う手動運転モードとがある。
どちらの運転モードも、限られた空間内でワークまたは加工工具を複雑に移動させるため、移動させたワークや加工工具が、互いに干渉（衝突）したり、いずれかが工作機械内の他の部品（固定体に相当）に干渉したりする可能性がある。
このため、従来から種々の干渉検出装置あるいは干渉検出方法が提案されている。
【０００３】
例えば、特許文献１に記載された従来技術では、加工工具、ワーク、工作機械を構成する構造体（固定体に相当）に係る３次元モデルデータを記憶し、工具、ワーク、構造体の相互間における干渉関係を定義した干渉データを記憶している。そして、少なくとも１ブロック分進んだブロックの動作指令を受信して、実際の工作機械の動作の一歩先の動作を３次元モデルデータで動作させて、干渉するか否かを確認している。
【特許文献１】特開２００６−００４１２８号公報
【発明の開示】
【発明が解決しようとする課題】
【０００４】
特許文献１に記載された従来技術では、３次元モデルデータを用いた詳細な形状で干渉するか否かを確認しているが、ポリゴンデータに基づいた詳細形状の３次元モデルデータを用いた場合は演算量が非常に多く、処理に時間がかかる。干渉しないことが明らかな位置に可動体が移動している場合にポリゴンデータに基づいた詳細形状で干渉判定を行うことは、処理時間の無駄であるとともに、本当に干渉するかも知れない場合の判定処理が遅れる可能性がある。
本発明は、このような点に鑑みて創案されたものであり、実際の工作機械で干渉が発生する前に干渉が発生することを予測可能とするために、より短い処理時間にて干渉判定を可能とする、工作機械の干渉検出装置を提供することを課題とする。
【課題を解決するための手段】
【０００５】
上記課題を解決するための手段として、本発明の第１発明は、請求項１に記載されたとおりの工作機械の干渉検出装置である。
請求項１に記載の工作機械の干渉検出装置は、所定の空間内で所定の軸方向に移動可能または所定の軸回りに回転可能に構成されて予め基準点が設定された単数または複数の可動体と、前記所定の空間内に固定された単数または複数の固定体と、を有する工作機械の干渉検出装置であって、前記所定の空間内には予め複数のマップ点が設定されており、各マップ点には前記可動体の基準点がマップ点と一致する位置となった場合に前記可動体が周囲の固定体と干渉するか否かを示す干渉情報が、各マップ点に対応させて設定されており、前記工作機械における前記可動体が前記固定体と干渉する前に、干渉することを予測可能な、以下の構成を有する工作機械の干渉検出装置である。
前記可動体の各々に対応付けられているとともに当該可動体における可動状態に関する信号である可動状態信号の入力時に、対応付けられた可動体を移動させる移動方向情報または移動位置情報または移動量情報の少なくとも１つを含む移動情報が記憶された移動情報記憶部。
前記可動体毎の複数のマップ点が設定された干渉マップが前記可動体毎に記憶された干渉マップ記憶部。
前記可動状態信号と前記移動情報とに基づいて、前記可動体の基準点の移動先の位置である移動先位置を予測する可動体位置予測部。
予測した前記移動先位置と前記干渉マップとに基づいて、前記可動体が前記移動先で前記固定体と干渉するか否かを判定する干渉マップ判定部。
前記可動体と前記固定体と、の各々のポリゴンデータを含む３次元データが記憶された３次元データ記憶部。
前記３次元データに基づいて仮想３次元空間に前記可動体と前記固定体とを組み付けた工作機械の仮想３次元モデルを作成可能であり、前記３次元データと前記可動状態信号と前記移動情報とに基づいて、前記工作機械の動作に同期させて、前記仮想３次元モデル中の前記可動体を動作させることが可能なモデル制御部。
前記可動体の基準点の位置が、前記干渉マップ内の領域内であるが前記マップ点と一致しない位置となった場合、前記基準点の位置の周囲に近接している複数のマップ点を抽出し、抽出したマップ点の数と、抽出した各マップ点における前記干渉情報と、前記基準点と前記抽出したマップ点までの各々の距離と、に基づいて、当該基準点の位置においてどの程度の干渉可能性があるかを数値で示した干渉度合いを求める干渉度合い演算部。
求めた干渉度合いに基づいて前記可動体が干渉する可能性があるか否かを判定するための干渉閾値が記憶された干渉閾値記憶部。
前記干渉度合いが前記干渉閾値以上である場合に前記可動体が干渉する可能性があると判定する干渉可能性判定部。
前記干渉可能性判定部にて干渉する可能性があると判定された場合に、前記ポリゴンデータに基づいた前記可動体と前記固定体の詳細形状と、前記可動体の移動先位置と、を用いて前記可動体と前記固定体と、が干渉するか否かを判定する詳細干渉判定部。
【０００６】
また、本発明の第２発明は、請求項２に記載されたとおりの工作機械の干渉検出装置である。
請求項２に記載の工作機械の干渉検出装置は、所定の空間内で所定の軸方向に移動可能または所定の軸回りに回転可能に構成されて予め基準点が設定された、少なくとも第１可動体と第２可動体の２つを含む可動体を有し、前記第１可動体が前記第２可動体と干渉する前に、干渉することを予測可能な、以下の構成を有する工作機械の干渉検出装置である。
前記可動体の各々に対応付けられているとともに当該可動体における可動状態に関する信号である可動状態信号の入力時に、対応付けられた可動体を移動させる移動方向情報または移動位置情報または移動量情報の少なくとも１つを含む移動情報が記憶された移動情報記憶部。
前記第１可動体の基準点の位置に対する前記第２可動体の基準点の複数の相対位置に設定した複数のマップ点を有し、当該マップ点の各々に対して前記第１可動体と前記第２可動体とが干渉するか否かを示す干渉情報が設定された可動体相互干渉マップ、あるいは前記第２可動体の基準点の位置に対する前記第１可動体の基準点の複数の相対位置に設定した複数のマップ点を有し、当該マップ点の各々に対して前記第１可動体と前記第２可動体とが干渉するか否かを示す干渉情報が設定された可動体相互干渉マップ、の少なくとも一方が記憶された干渉マップ記憶部。
前記可動状態信号と前記移動情報とに基づいて、各々の可動体の基準点の移動先の位置である移動先位置を予測する可動体位置予測部。
前記第１可動体の移動先位置と、前記第２可動体の移動先位置と、前記可動体相互干渉マップと、に基づいて前記第１可動体と前記第２可動体とが干渉するか否かを判定する可動体相互干渉判定部。
前記第１可動体と前記第２可動体と、の各々のポリゴンデータを含む３次元データが記憶された３次元データ記憶部。
前記３次元データに基づいて仮想３次元空間に少なくとも前記第１可動体と前記第２可動体とを組み付けた仮想３次元モデルを作成可能であり、前記３次元データと前記可動状態信号と前記移動情報とに基づいて、前記工作機械の動作に同期させて、前記仮想３次元モデル中の前記可動体を動作させることが可能なモデル制御部。
前記可動体の基準点の位置が、前記可動体相互干渉マップ内の領域内であるが前記マップ点と一致しない位置となった場合、前記基準点の位置の周囲に近接している複数のマップ点を抽出し、抽出したマップ点の数と、抽出した各マップ点における前記干渉情報と、前記基準点と前記抽出したマップ点までの各々の距離と、に基づいて、当該基準点の位置においてどの程度の干渉可能性があるかを数値で示した干渉度合いを求める干渉度合い演算部。
求めた干渉度合いに基づいて前記可動体が干渉する可能性があるか否かを判定するための干渉閾値が記憶された干渉閾値記憶部。
前記干渉度合いが前記干渉閾値以上である場合に前記可動体が干渉する可能性があると判定する干渉可能性判定部。
前記干渉可能性判定部にて干渉する可能性があると判定された場合に、前記ポリゴンデータに基づいた前記第１可動体と前記第２可動体の詳細形状と、前記可動体の移動先位置と、を用いて前記第１可動体と前記第２可動体と、が干渉するか否かを判定する詳細干渉判定部。
【０００７】
また、本発明の第３発明は、請求項３に記載されたとおりの工作機械の干渉検出装置である。
請求項３に記載の工作機械の干渉検出装置は、請求項１または２に記載の工作機械の干渉検出装置であって、前記可動体は、前記工作機械における加工工具を含む加工ユニットと、当該加工工具によって加工されるワークを含むワークユニットと、を少なくとも含む。
【０００８】
また、本発明の第４発明は、請求項４に記載されたとおりの工作機械の干渉検出装置である。
請求項４に記載の工作機械の干渉検出装置は、請求項３に記載の工作機械の干渉検出装置であって、前記ワークユニットにおける前記ワークは、所定の軸回りに回転可能であり、前記干渉マップ記憶部には、前記ワークユニットの基準点の位置に対する前記加工ユニットの基準点の複数の相対位置に設定した複数のマップ点を有し、当該マップ点の各々に対して前記加工ユニットと前記ワークユニットとが干渉するか否かを示す干渉情報が設定された可動体相互干渉マップが記憶されているとともに、前記ワークの回転角度に対応させて複数の可動体相互干渉マップが記憶されている。
そして、前記可動体相互干渉判定部は、前記ワークの回転角度に応じた可動体相互干渉マップを選択して、前記加工ユニットの移動先位置と、前記ワークユニットの移動先位置と、選択した可動体相互干渉マップと、に基づいて前記加工ユニットと前記ワークユニットとが干渉するか否かを判定する。
【０００９】
【００１０】
また、本発明の第５発明は、請求項５に記載されたとおりの工作機械の干渉検出装置である。
請求項５に記載の工作機械の干渉検出装置は、請求項１〜４のいずれか一項に記載の工作機械の干渉検出装置であって、前記詳細干渉判定部にて前記詳細形状を用いて干渉するか否かを判定した前記可動体の基準点の位置と、当該位置に対応させた前記判定の結果である干渉情報とを、新たなマップ点として対象となる干渉マップあるいは可動体相互干渉マップに追加して記憶するマップ点追加部を有する。
【００１１】
また、本発明の第６発明は、請求項６に記載されたとおりの工作機械の干渉検出装置である。
請求項６に記載の工作機械の干渉検出装置は、請求項１〜４のいずれか一項に記載の工作機械の干渉検出装置であって、前記仮想３次元空間内に作成した仮想３次元モデルを用いて、前記仮想３次元空間における前記所定の空間内で前記可動体の詳細形状を前記所定の軸方向にスイープまたは前記所定の軸回りに回転させて前記干渉マップまたは前記可動体相互干渉マップを作成する干渉マップ作成部を有する。
【００１２】
また、本実施の形態に記載の干渉マップは、所定の空間内で所定の軸方向に移動可能または所定の軸回りに回転可能に構成されて予め基準点が設定された単数または複数の可動体と、前記所定の空間内に固定された単数または複数の固定体と、の干渉判定に使用可能な干渉マップである。
そして、前記所定の空間内には予め複数のマップ点が設定されており、各マップ点には前記可動体の基準点がマップ点と一致する位置となった場合に前記可動体が周囲の固定体と干渉するか否かを示す干渉情報が、各マップ点に対応させて設定されているとともに前記可動体毎に設定されており、前記マップ点のいずれかと前記可動体の基準点の位置とが一致した場合に当該マップ点に対応する干渉情報から、当該可動体が前記固定体と干渉するか否かを判定することに使用可能な、干渉マップである。
【発明の効果】
【００１３】
請求項１に記載の工作機械の干渉検出装置では、予め設定した干渉マップを用いて、可動体が固定体に接近した場合に、非常に短い処理時間で干渉するか否かを判定することができる。
【００１４】
また、請求項２に記載の工作機械の干渉検出装置によれば、第１可動体が第２可動体と干渉するか否かを、可動体相互干渉マップを用いて、各々の可動体の基準点の相対位置に応じて適切に判定することができる。
【００１５】
また、請求項３に記載の工作機械の干渉検出装置によれば、実際の加工条件に、より近い状態の干渉マップとなるので、より適切に干渉を判定できる。
【００１６】
また、請求項４に記載の工作機械の干渉検出装置によれば、例えば、工作機械が円筒研削盤の場合、回転するワークの回転角度に応じて可動体相互干渉マップを選択する。
これにより、ワークが回転してワークユニットと加工ユニットとが干渉する相対位置が変化する工作機械であっても、ワークユニットと加工ユニットとの干渉を適切に判定することができる。
【００１７】
また、請求項１または請求項２に記載の工作機械の干渉検出装置によれば、可動体の基準点がマップ点と一致しない位置となった場合であっても、可動体が固定体と干渉する可能性があるか否か、または第１可動体が第２可動体と干渉する可能性があるか否か、を適切に判定することが可能である。そして、干渉の可能性があると判定された場合に、ポリゴンデータに基づいた詳細形状で干渉するか否かを判定することで、無駄な処理時間を費やすことなく、干渉するか否かを適切に判定することができる。
【００１８】
また、請求項５に記載の工作機械の干渉検出装置によれば、請求項１または請求項２にて行ったポリゴンデータの詳細形状による干渉判定結果、及びその位置（可動体の基準点の位置）を、新たなマップ点として干渉マップあるいは可動体相互干渉マップに追加することで、干渉マップを自動的に充実させていくことができる。
これにより、干渉マップによる判定時間の短縮化（追加したマップ点に基準点が位置した場合）、及び判定精度の向上（マップ点の追加で干渉度合いの演算精度の向上が期待できる）に効果がある。
【００１９】
また、請求項６に記載の工作機械の干渉検出装置によれば、仮想３次元モデルを用いて、干渉マップまたは可動体相互干渉マップを、比較的容易に得ることができる。
【００２０】
また、本実施の形態に記載の干渉マップによれば、請求項１〜６のいずれかに記載の工作機械の干渉検出装置を含めて、干渉検出を行う必要がある種々の装置において、所定空間内で移動する可動体と、当該所定空間内の固定体との干渉判定を短時間に行うことが容易である。
【発明を実施するための最良の形態】
【００２１】
以下に本発明を実施するための最良の形態を図面を用いて説明する。図１は、本発明の「工作機械の干渉検出装置４１（以下、干渉検出装置４１と記載する）」を備えた工作機械１の一実施の形態における外観の斜視図を示している。なお、本実施の形態では、干渉検出装置４１は工作機械制御装置４０に組み込まれている例を説明する。
また、全ての図において、Ｚ軸は加工工具７０がワークＷに切込む方向を示し、Ｙ軸は鉛直方向（上向き）を示し、Ｘ軸は、Ｚ軸とＹ軸の双方に直交する方向を示している。
また、本実施の形態の説明では、加工工具としてドリルを用い、ワークＷをドリルで加工する工作機械１を例として説明するが、これに限定されず、加工工具として砥石を用い、ワークＷを砥石で研削する円筒研削盤等、種々の工作機械に適用できるものである。
【００２２】
●［工作機械１の外観（図１）］
図１の例に示す工作機械１は、基台２上でＸ軸方向（水平方向）に移動可能なワークテーブル２０、及びＺ軸方向（Ｘ軸に直交する水平方向）に移動可能なコラム５０を備えている。
Ｘ軸方向に移動可能なワークテーブル２０には、ワークＷ（図１中に点線で示している）が載置（固定）されている。
また、コラム５０はＹ軸方向（鉛直方向）に移動可能なサドル６０を備えており、サドル６０には、加工工具７０を把持して回転させる主軸１０を収容している主軸ハウジング１２が固定されている。そして主軸１０と主軸ハウジング１２とで主軸ユニット１５を形成する。
工作機械制御装置４０（数値制御装置等）は、処理手段（ＣＰＵ）、記憶手段、入力手段（キーボードやタッチパネル方式モニタ等）、表示手段４２等を備えており、記憶手段に記憶された加工プログラムに基づいて、主軸１０、ワークテーブル２０、コラム５０、サドル６０を制御して、加工工具７０を用いてワークＷを加工する。なお、主軸１０の先端には、主軸１０の回転軸（Ｚ軸方向に平行）と同軸上に、先端部でワークＷを加工する加工工具７０（この場合、ドリル）が取り付けられている。
なお、加工工具７０は工具ホルダ７２に取り付けられており、工具ホルダ７２が主軸１０の先端に取り付けられている。
【００２３】
ワークテーブル２０は、Ｘ軸移動手段ＭＸ（モータ等）によって回転するボールネジに嵌合されたナット（図示省略）を備えており、案内部材２０Ａに沿ってＸ軸方向に移動可能である。なお、工作機械制御装置４０は、検出手段ＥＸ（エンコーダ等）からの検出信号に基づいてワークテーブル２０の移動距離や位置等を把握可能であり、目標位置に位置決めするようにＸ軸移動手段ＭＸに駆動信号を出力する。
同様に、コラム５０は、Ｚ軸移動手段ＭＺ（モータ等）にて、案内部材５０Ａに沿ってＺ軸方向に移動可能であり、工作機械制御装置４０は、検出手段ＥＺ（エンコーダ等）からの検出信号に基づいて、目標位置に位置決めするようにＺ軸移動手段ＭＺに駆動信号を出力する。なお、サドル６０、Ｙ軸移動手段ＭＹ（モータ等）、案内部材６０Ａ、検出手段ＥＹも同様であるので説明を省略する。
【００２４】
工具マガジン９０には、種々の形状の加工工具７０と種々の形状の工具ホルダ７２を組み合わせた種々の工具ユニット７５が用意されている。各工具ユニット７５は、主軸１０に対して交換可能に構成されており、例えば工作機械制御装置４０は、加工プログラムにて指示された工具ユニット７５を、工具マガジン９０の回転式収容体９２の各収容部９４から自動的に選択して主軸１０に取り付けて加工を行う。なお、作業者が工具ユニット７５を選択して取り付けてもよい。
また、実際の工作機械１は全体をカバーで覆われており、この内部に図１に示すＺ軸移動手段ＭＺ等、工作機械１を構成する各パーツや、ＰＬＣ等の各周辺機器が収められており、通常ではカバーの内部を見ることはできない。
また、本実施の形態にて説明する表示手段４２はタッチパネル方式のモニタであり、入力手段４４と兼用されている。表示手段４２の表示画面４２ａには、仮想３次元座標上に表示した工作機械１の仮想３次元モデルＶ１が表示される。また、例えば、領域Ａ４４には、工作機械１の動作状態の表示や、各種の指示を入力するための操作ボタンを示すブロックが複数表示され、一部のブロックには、選択中の加工プログラムが表示され、現在どの行を実行中であるか識別可能に表示される。また、例えば別のブロックには、仮想３次元モデルＶ１を表示する視点位置の変更や、拡大表示または縮小表示の指示を入力するための操作ボタンとして設定されている。
【００２５】
●［工作機械制御装置４０の構成（図２）］
次に図２を用いて、工作機械制御装置４０の構成について説明する。
工作機械制御装置４０は、機能的には、図１に示す工作機械１を制御する工作機械（本体）制御機能４０ｅと、工作機械１及び周辺に設けられたＰＬＣ（プログラマブルロジックコントローラ）や各種のセンサ及びスイッチ等を含む周辺機器１Ｂを制御する周辺機器制御機能４０ｆと、仮想３次元モデルの表示及び動作を制御する仮想３次元モデル機能４０ｃと、工作機械１及び周辺機器１Ｂの異常を検出する故障診断機能４０ｄと、工作機械制御機能４０ｅ、周辺機器制御機能４０ｆ、仮想３次元モデル機能４０ｃ、故障診断機能４０ｄを管理する総合管理機能４０ａと、を有している。なお図２の例では、工作機械（本体）制御機能４０ｅと周辺機器制御機能４０ｆを合わせて工作機械制御機能４０ｂとしている。
また、工作機械制御装置４０は、物理的には工作機械（本体）制御機能４０ｅを実現するＣＮＣ装置と、周辺機器制御機能４０ｆを実現する第１パーソナルコンピュータと、仮想３次元モデル機能４０ｃと故障診断機能４０ｄを実現する第２パーソナルコンピュータと、作業者からの指示等を入力する入力手段４４と、工作機械１の動作状態や仮想３次元モデルを表示する表示手段４２等で構成されている。
【００２６】
総合管理機能４０ａは、入力手段４４から指示された入力に基づいて、工作機械１及び周辺機器１Ｂを所定の加工プログラムに従って動作させる制御信号を工作機械（本体）制御機能４０ｅ及び周辺機器制御機能４０ｆに出力する。なお、加工プログラムは、記憶手段（図示省略）に記憶されている。
そして工作機械（本体）制御機能４０ｅは、加工プログラムに基づいてＺ軸移動手段ＭＺ等を制御する駆動信号を出力するとともに位置検出器ＥＺ等からの検出信号を取り込む。また、周辺機器制御機能４０ｆも同様に、加工プログラムに基づいてＰＬＣ等に駆動信号を出力するとともに各種センサ等からの検出信号を取り込む。
【００２７】
なお、図２の例に示すように、仮想３次元モデル機能４０ｃと故障診断機能４０ｄを実現する第２パーソナルコンピュータは、工作機械（本体）制御機能４０ｅを実現するＣＮＣ装置と周辺機器制御機能４０ｆを実現する第１パーソナルコンピュータから、各パーツ（可動パーツ）の位置を示す現在位置情報や、各種の固有の設定情報を示すパラメータ情報や、工作機械１や周辺機器１Ｂのシステムに固有の変数を示すシステム変数情報や、ＰＬＣ装置の入力と出力の状態を示すＰＬＣのＩ／Ｏ情報等、種々の情報を取り込み、仮想３次元モデルの表示に使用することができる。
また、故障診断機能４０ｄは、工作機械１及び周辺機器１Ｂへの駆動信号、及び工作機械１及び周辺機器１Ｂからの検出信号を取り込み、各種の異常判定を行う。異常が判定されると、総合管理機能４０ａから工作機械（本体）制御機能４０ｅ及び周辺機器制御機能４０ｆを停止させるための制御信号が出力される。
【００２８】
●［干渉検出装置の構成と、可動体と固定体との干渉判定処理の手順（図３〜図５）］
図３に示すように、干渉検出装置４１は、工作機械制御装置４０に組み込まれている仮想３次元モデル機能４０ｃと、記憶手段４８にて構成される。
記憶手段４８には、工作機械１（及び周辺機器１Ｂ）を構成する各パーツ（可動体、及び固定体）に対応させて、パーツ識別データとポリゴンデータ（パーツの形状やサイズに関するデータ及びパーツの組み付け位置や方向に関するデータ）を含む３次元データが３次元データ記憶部４８Ａに記憶されている。
仮想３次元モデル機能４０ｃのモデル制御部４６Ａは、仮想３次元空間において、パーツ識別データに対応するパーツを、ポリゴンデータに基づいた形状及びサイズで表現し、ポリゴンデータに基づいた位置や方向に組み付け、仮想３次元空間で工作機械１の仮想３次元モデルを形成し、総合管理機能４０ａを介して表示手段４２に表示する。
【００２９】
［可動状態信号と移動情報］
また、モデル制御部４６Ａは、可動するパーツに対しては、実際の工作機械１（及び周辺機器１Ｂ）に出力される駆動信号や、前記駆動信号を出力する前に工作機械（本体）制御機能４０ｅが求めた指令値や、実際の工作機械１に設けられたセンサ等からの検出信号等、可動状態に関する信号である可動状態信号を取り込み、仮想３次元空間で可動させて表示することで、実際の工作機械１（及び周辺機器１Ｂ）の動作に合わせて（同期させて）仮想３次元モデルをシミュレート動作させて表示手段４２に表示する。
上記に説明したように、可動状態信号は、可動体を可動させるための信号（駆動信号や指令値等）、及び可動体が可動した結果として現れる信号（エンコーダやリミットセンサ等からの信号）であり、可動体が可動している状態を検出可能な信号を指す。
なお、記憶手段４８には、可動体に対応させて、可動状態信号と、当該可動状態信号が入力時に移動する方向を示す移動方向情報または移動先の位置を示す移動位置情報または移動量情報の少なくとも１つを含む移動情報が移動情報記憶部４８Ｂに記憶されている。
上記に説明したように、移動情報は、可動状態信号が入力されたときに、当該可動状態信号に対応する可動体の仮想３次元モデルを、仮想３次元空間内で、どの方向に、どれだけ（あるは、どこまで）移動または回転等させて表示すればよいか、を示す情報である。
これらの可動状態信号と移動情報により、例えば、モデル制御部４６Ａは、Ｚ軸移動手段ＭＺの指令値（値＝Ａ）が入力されると、仮想３次元空間内で、当該指令値に対応するコラム５０を、Ｚ軸方向に、（値＝Ａ）に相当する距離だけ移動させて表示する。
なお、工作機械１における可動体は、加工工具７０またはワークＷを保持するとともに、所定の空間内で所定の軸方向に移動可能または所定の軸回りに回転可能に構成された構造体である。
【００３０】
次に、可動体α（この場合、ワークＷとワークテーブル２０にて構成されたワークユニット）の干渉判定を行う手順を、図３及び図４を用いて説明する。なお、可動体β（この場合、工具ユニット７５と主軸ユニット１５とサドル６０にて構成された加工ユニット）の処理手順も同様であるので、可動体βについては説明を省略する。
図４に示すフローチャートのステップＳ１０にて、可動体位置予測部４６Ｃが、可動状態信号を取得し、ステップＳ２０に進む。
ステップＳ２０にて可動体位置予測部４６Ｃは、取得した可動状態信号と、移動情報記憶部４８Ｂに記憶されている移動情報から、可動体αの基準点の移動先の位置である移動先位置を予測する。この場合、可動体αはワークユニットであり、基準点ＷＫは、図１の例に示すように予めワークテーブル２０の所定位置に設定されている。また、可動体βの基準点ＴＫは、図１の例に示すように工具ユニット７５の回転軸上における主軸ユニット１５の先端部を、予め基準点ＴＫに設定する。
なお、ステップＳ３００またはステップＳ３１０の処理が完了するまで、実際の工作機械１の可動体α（または可動体β）の基準点が移動先位置に到達しないタイミングで、可動体α（または可動体β）の位置を予測し、ステップＳ３０に進む。
【００３１】
ステップＳ３０にて干渉マップ判定部４６Ｄは、干渉判定対象の可動体αに対応する干渉マップを選択（この例ではワークユニット用の干渉マップを選択）してステップＳ４０に進む。
ここで、図５を用いて干渉マップについて説明する。干渉マップには、可動体が移動する範囲内（空間内）に複数のマップ点が予め設定されている。各マップ点は、図５における（Ｘ座標、Ｙ座標、Ｚ座標）が設定された位置であり、Ｘ軸方向の間隔、Ｙ軸方向の間隔、Ｚ軸方向の間隔は任意の値に設定されており、可動体毎の複数のマップ点が設定された干渉マップが、可動体毎に干渉マップ記憶部４８Ｄに記憶されている。
そして、各マップ点には、可動体の基準点がマップ点と一致する位置となった場合に可動体が周囲の固定体と干渉するか否かを示す干渉情報が、各マップ点に対応させて設定されている。例えば図５の例では、可動体αがマップ点（Ｘ０、Ｙｋ、Ｚ０）の位置となった場合では非干渉であることが設定（例えば「０」）されており、可動体αがマップ点（Ｘｐ、Ｙ０、Ｚ０）の位置となった場合では干渉することが設定（例えば「１」）されている。
【００３２】
そしてステップＳ４０にて干渉マップ判定部４６Ｄは、可動体αの基準点の移動先位置と一致するマップ点が干渉マップにあるか否かを判定する。移動先位置と一致するマップ点がない場合（Ｎｏ）はステップＳ５０に進み、当該マップ点がある場合（Ｙｅｓ）はステップＳ５５に進む。
ステップＳ５５に進んだ場合、干渉マップ判定部４６Ｄは、可動体αの移動先位置がマップ点と一致する位置であるため、当該マップ点に対応する干渉情報を、干渉マップ記憶部４８Ｄに記憶されている干渉マップから読み出し、干渉するか否かを判定する。この場合、読み出した干渉情報が「０」の場合（Ｎｏ）は干渉しないと判定してステップＳ３００に進み、読み出した干渉情報が「１」の場合（Ｙｅｓ）は干渉すると判定してステップＳ３１０に進む。
ステップＳ５０に進んだ場合、干渉度合い演算部４６Ｅは、可動体の基準点の移動先位置に近接する複数のマップ点を抽出する。そして、抽出したマップ点の数、各マップ点の干渉情報、可動体の基準点の位置とマップ点の各々までの距離、に基づいて予め設定された演算式を用いて、どの程度の干渉可能性があるかを示す干渉度合いを求め、ステップＳ６０に進む。この場合、干渉しない場合の干渉情報が「０」、干渉する場合の干渉情報が「１」であるので、干渉度合いは０〜１の範囲の値として求める。
【００３３】
例えば、図１０（Ａ）の例に示すように、干渉マップ上のマップ点Ｘ1、Ｘ2の２点を結ぶ直線上に干渉度合いが不明な点Ｘがあり、Ｘ1、Ｘ2、Ｘの座標が各々（ｘ1、０、０）、（ｘ2、０、０）、（ｘ、０、０）であり、Ｘ1とＸ2の干渉度合いが各々Ｖ1、Ｖ2である場合、点Ｘの干渉度合いＶは、以下の式で演算することができる。
Ｖ＝［（ｘ2−ｘ）＊Ｖ1＋（ｘ−ｘ1）＊Ｖ2］／（ｘ2−ｘ1）    （式１）
また、図１０（Ｂ）の例に示すように、干渉マップ上のマップ点Ａ〜Ｈの８点で形成される立方体の中に干渉度合いが不明な点Ｐ0がある場合、点Ｐ0の干渉度合いＶ0を、以下のようにして求めることができる。
Ｐ0を挟む面ＡＢＣＤ及び面ＥＦＧＨと、Ｐ0からの各面への垂線との交点を、各々Ｐ12、Ｐ34とする。線ＡＢ及び線ＣＤと、Ｐ12からの各線への垂線との交点を、各々Ｐ1、Ｐ2とする。同様にして、線ＥＦ及び線ＧＨと、Ｐ34からの各線への垂線との交点を、各々Ｐ3、Ｐ4とする。
点Ａ〜点Ｈの干渉度合いをそれぞれＶA〜ＶH（マップ点であり、既知）とする。また、点Ｐ0、Ｐ12、Ｐ34、Ｐ1〜Ｐ4の干渉度合いをそれぞれＶ0、Ｖ12、Ｖ34、Ｖ1〜Ｖ4（未知）とする。
上記の（式１）と同様にして、点Ａ、Ｂ、Ｐ1のＸ座標と、干渉度合いＶA、ＶBから干渉度合いＶ1を求める。同様にして、干渉度合いＶ2〜Ｖ4を求める。
（式１）と同様にして、点Ｐ1、Ｐ2、Ｐ12のＺ座標と、干渉度合いＶ1、Ｖ2から干渉度合いＶ12を求める。同様にして、干渉度合いＶ34を求める。
（式１）と同様にして、点Ｐ12、Ｐ34、Ｐ0のＹ座標と、干渉度合いＶ12、Ｖ34から、Ｐ0の干渉度合いＶ0を求めることができる。
なお、マップ点にない位置の干渉度合いを求める演算方法は、上記の方法に限定されるものではなく、別の方法を用いて求めてもよい。
【００３４】
ステップＳ６０にて干渉可能性判定部４６Ｆは、干渉閾値記憶部４８Ｆに記憶されている干渉閾値と、求めた干渉度合いを比較して、干渉する可能性があるか否かを判定する。この場合、干渉度合いを０〜１の範囲の値としたので、干渉閾値は「０」より大きく、「１」より小さい値であり、「０」に近くなるほど、精度は低いが判定時間が短くなり（後述するステップＳ７０〜Ｓ９０をスキップする頻度が高いため）、「１」に近くなるほど、精度が高いが判定時間が長くなる（後述するステップＳ７０〜Ｓ９０をスキップする頻度が低いため）。
干渉度合いが干渉閾値以上である場合（Ｙｅｓ）は、干渉する可能性があると判定し、干渉するか否かを更に詳細に判定する必要があるため、ステップＳ７０に進む。干渉度合いが干渉閾値未満である場合（Ｎｏ）は、干渉する可能性がないと判定し、ステップＳ３００に進む。
【００３５】
ステップＳ７０に進んだ場合、詳細干渉判定部４６Ｇは、３次元データ記憶部４８Ａに記憶されているポリゴンデータ（３次元データ）から可動体αの詳細形状と固定体の詳細形状を作成し、可動体αの詳細形状の位置を前記移動先位置と一致させ、詳細形状で表した可動体αと固定体とが干渉するか否かを判定し、ステップＳ８０に進む。この場合の干渉判定は、ポリゴンデータに基づいた判定であるので、２つの物体が重なるか否か（接触するか否か）、あるいは２つの物体の最も近接する部分においてその間の距離が、比較的小さな値に設定した閾値未満であるか否か、を判定する。
ステップＳ８０ではマップ点追加部４６Ｈは、ステップＳ７０にて使用した可動体αの基準点の位置をマップ点として干渉マップに追加し、ステップＳ７０にて行った干渉判定の結果（干渉する、または干渉しない）を干渉情報として追加したマップ点に対応させて記憶し、ステップＳ９０に進む。ステップＳ７０にて、マップ点にない位置で干渉判定を行ったので、この結果を干渉マップに追加して干渉マップを充実させる。この追加したマップ点は、次回以降の干渉判定に利用可能である。
そして、ステップＳ９０にて詳細干渉判定部４６Ｇは、ステップＳ７０の干渉判定の結果、干渉すると判定した場合（Ｙｅｓ）はステップＳ３１０に進み、干渉しないと判定した場合（Ｎｏ）はステップＳ３００に進む。
ステップＳ３１０に進んだ場合、工作機械（本体）制御機能４０ｅにおける、可動体を移動または回転させる出力指令のいずれかによって、可動体が干渉すると予測されたため、例えば工作機械１の動作を停止させる信号を総合管理機能４０ａに出力し、工作機械（本体）制御機能４０ｅからの出力指令を禁止させる。
また、ステップＳ３００に進んだ場合は、可動体を移動または回転させる工作機械（本体）制御機能４０ｅからの出力指令の出力を許可する信号（出力を禁止させない信号）を総合管理機能４０ａに出力する。
【００３６】
以上に説明したように、本実施の形態では、各マップ点の位置で固定体と干渉するか否かを予め設定した干渉マップを可動体毎に用意しておき、当該干渉マップを用いて可動体と固定体の干渉判定を行うことで、仮想３次元モデルを用いてポリゴンデータに基づいた詳細形状で判定するよりも、非常に短時間に行うことができる。なお、マップ点にない位置の場合は、既存のマップ点を用いて干渉の可能性があるか否かを判定し、干渉の可能性がある場合はポリゴンデータを用いて詳細に判定する。そしてポリゴンデータを用いた位置、及び干渉判定の結果を干渉マップに追加する、という処理を行う。
このため、明らかに干渉する場合、あるいは明らかに干渉しない場合を干渉マップで判定し、無用な処理を行わず、更に、詳細形状を用いて干渉するまたは干渉しない、と明確に判定した結果を干渉マップに追加し、同じ位置の場合は２回目から干渉マップのみで短時間に判定できるので、処理時間を短縮化することができる。また、マップ点を増やすことで、干渉度合いの精度の向上が期待できる。
【００３７】
上記に説明した実施の形態では、仮想３次元モデルを作成可能なモデル制御部４６Ａを備え、可動体の移動先位置が干渉マップに用意したマップ点と一致しない位置に来た場合、詳細干渉判定部４６Ｇにてポリゴンデータに基づいた詳細形状で干渉するか否かを判定した。しかし、図３のブロックから、モデル制御部４６Ａ、干渉度合い演算部４６Ｅ、干渉可能性判定部４６Ｆ、詳細干渉判定部４６Ｇ、マップ点追加部４６Ｈを省略して（更にマップ点の間隔を要求精度以上に小さく設定し）、可動体の移動先位置がマップ点に一致しない場合は、最も近接しているマップ点の干渉情報を用いて干渉するか否かを判定してもよい。また、この状態から干渉度合い演算部４６Ｅと干渉可能性判定部４６Ｆを追加して、干渉度合いに応じて干渉するか否かを判定してもよい（仮想３次元モデルは使用しない）。
このように、仮想３次元モデルの機能がなくても、可動体の移動先位置と干渉マップとに基づいて可動体が固定体と干渉するか否かを短時間に判定することができる。
【００３８】
●［可動体（第１可動体）と別の可動体（第２可動体）との干渉判定処理の手順（図６〜図９）］
上記の説明では、可動体の移動または回転等によって、当該可動体が固定体と干渉するか否かを判定する方法について説明したが、複数の可動体を有する工作機械では、可動体同士が干渉する（第１可動体が第２可動体と干渉する）場合が考えられる。
例えば、種々の位置に移動する可動体α（第１可動体）について、この可動体αが移動した種々の位置の各々に対して、上記に説明した干渉マップを予め作成すれば、上記と同様の処理にて、可動体β（第２可動体）との干渉判定を行うことができる。（この場合、図４のステップＳ３０にて、可動体αの位置に応じた干渉マップを選択する。）
【００３９】
しかし、可動体αの種々の位置に対して干渉マップを持つ場合、可動体αの移動範囲が広い場合は干渉マップの数が多くなり、予め用意することが大変である。
そこで、可動体αの位置及び固定体とは関係なく、可動体αと可動体βとの相対位置に対応させた可動体相互干渉マップを用いることで、可動体αと可動体βとが干渉するか否かを判定する。以下、図６〜図８を用いて説明するが、図６のブロック図は、図３のブロック図に対して、可動体αと可動体βとの干渉を判定する可動体相互干渉判定部４６Ｊ〜マップ点追加部４６Ｎまでが追加されている。また、図７に示すフローチャートは、図４のフローチャートに対して、可動体αと可動体βとの干渉を判定するステップＳ１２０〜ステップＳ１９０までが追加されている。
【００４０】
また図８は、可動体α（この場合、ワークユニット）の基準点の位置に対する可動体β（この場合、加工ユニット）の基準点の複数の相対位置に設定した複数のマップ点を有し、当該マップ点の各々に対して可動体αと可動体βとが干渉するか否かを示す干渉情報を設定した可動体相互干渉マップの例を示している。
図８に示す可動体相互干渉マップは、Ｘ軸方向、Ｙ軸方向、Ｚ軸方向に任意の間隔で設定した複数のマップ点を有しており、中心のマップ点（図８の例では、座標（Ｘ０、Ｙ０、Ｚ０）のマップ点）を可動体α（この例ではワークユニット）の基準点の位置と想定している。そして、各マップ点の位置に可動体β（この場合、加工ユニット）の基準点が位置した場合に当該位置（相対位置）で、可動体αと可動体βとが干渉するか否かを対応付けて記憶している。
図８の例では、ワークユニットの基準点が（Ｘ０、Ｙ０、Ｚ０）であると想定した場合に、加工ユニットの基準点の相対位置が（Ｘ−１、Ｙ１、Ｚ１）、（Ｘ０、Ｙ０、Ｚ２）、（Ｘ２、Ｙ−１、Ｚ２）である場合、それぞれ非干渉、干渉、非干渉であることを示している。
【００４１】
次に図７のフローチャートと図６のブロック図を用いて処理手順を説明する。
以下、可動体α（この場合、ワークユニット）が、固定体と干渉するか否か、そして当該可動体αが可動体β（この場合、加工ユニット）と干渉するか否かを求める処理手順を説明する。なお、可動体βの処理手順も同様であるので、可動体βについては説明を省略する。
図７のフローチャートにおいて、ステップＳ１０〜ステップＳ９０（ステップＳ１２０の手前）までの処理は既に説明した通りであるので省略する。
ステップＳ１２０に進んだ場合は、可動体αと固定体とは干渉しないと判定されたことを示している。ステップＳ１２０以降では、可動体αが可動体βと干渉するか否かを判定する。
【００４２】
ステップＳ１２０にて可動体相互干渉判定部４６Ｊは、可動体αの基準点の移動先位置（以下、移動先αと記載する）と可動体βの基準点の移動先位置（以下、移動先βと記載する）を可動体位置予測部４６Ｃから取得する。そして、移動先αと移動先βの相対位置を算出し、ステップＳ１３０に進む。
ステップＳ１３０にて可動体相互干渉判定部４６Ｊは、可動体αを基準とした可動体αと可動体βとの可動体相互干渉マップを選択してステップＳ４０に進む。
ステップＳ４０にて可動体相互干渉判定部４６Ｊは、可動体相互干渉マップの所定位置に移動先αを想定し、当該移動先αに対する移動先βの相対位置と一致するマップ点があるか否かを判定する。一致するマップ点がある場合（Ｙｅｓ）はステップＳ１５５に進み、一致するマップ点がない場合（Ｎｏ）はステップＳ１５０に進む。
ステップＳ１５５に進んだ場合、可動体相互干渉判定部４６Ｊは、移動先βの相対位置がマップ点と一致する位置であるため、当該マップ点に対応する干渉情報を、干渉マップ記憶部４８Ｄに記憶されている可動体相互干渉マップから読み出し、干渉するか否かを判定する。この場合、読み出した干渉情報が「０」の場合（Ｎｏ）は干渉しないと判定してステップＳ３００に進み、読み出した干渉情報が「１」の場合（Ｙｅｓ）は干渉すると判定してステップＳ３１０に進む。
ステップＳ１５０に進んだ場合、干渉度合い演算部４６Ｋは、移動先βの相対位置に近接する複数のマップ点を抽出する。そして、抽出したマップ点の数、各マップ点の干渉情報、移動先βの相対位置とマップ点の各々までの距離、に基づいて予め設定された演算式を用いて、どの程度の干渉可能性があるかを示す干渉度合いを求め、ステップＳ１６０に進む。この場合、干渉しない場合の干渉情報が「０」、干渉する場合の干渉情報が「１」であるので、干渉度合いは０〜１の範囲の値として求める。
【００４３】
ステップＳ１６０にて干渉可能性判定部４６Ｌは、干渉閾値記憶部４８Ｆに記憶されている干渉閾値（干渉可能性判定部４６Ｆで用いた干渉閾値と同じでもよいし、異なる干渉閾値としてもよい）と、求めた干渉度合いを比較して、可動体αと可動体βとが干渉する可能性があるか否かを判定する。この場合、干渉閾値は「０」より大きく、「１」より小さい値であり、「０」に近くなるほど、精度は低いが判定時間が短くなり（後述するステップＳ１７０〜Ｓ１９０をスキップする頻度が高いため）、「１」に近くなるほど、精度が高いが判定時間が長くなる（後述するステップＳ１７０〜Ｓ１９０をスキップする頻度が低いため）。
干渉度合いが干渉閾値以上である場合（Ｙｅｓ）は、干渉する可能性があると判定し、干渉するか否かを更に詳細に判定する必要があるため、ステップＳ１７０に進む。干渉度合いが干渉閾値未満である場合（Ｎｏ）は、干渉する可能性がないと判定し、ステップＳ３００に進む。
【００４４】
ステップＳ１７０に進んだ場合、詳細干渉判定部４６Ｍは、３次元データ記憶部４８Ａに記憶されているポリゴンデータ（３次元データ）から可動体αの詳細形状と可動体βの詳細形状を作成し、可動体αの詳細形状の位置に対する可動体βの詳細形状の相対位置を前記移動先αと移動先βと一致させ、詳細形状で表した可動体αと可動体βとが干渉するか否かを判定し、ステップＳ１８０に進む。この場合の干渉判定は、ポリゴンデータに基づいた判定であるので、２つの物体が重なるか否か（接触するか否か）、あるいは２つの物体の最も近接する部分においてその間の距離が、比較的小さな値に設定した閾値未満であるか否か、を判定する。
ステップＳ１８０ではマップ点追加部４６Ｎは、ステップＳ１７０にて使用した移動先αに対する移動先βの相対位置をマップ点として可動体相互干渉マップに追加し、ステップＳ１７０にて行った干渉判定の結果（干渉する、または干渉しない）を干渉情報として追加したマップ点に対応させて記憶し、ステップＳ１９０に進む。ステップＳ１７０にて、マップ点にない位置で干渉判定を行ったので、この結果を可動体相互干渉マップに追加して、可動体相互干渉マップを充実させる。
そして、ステップＳ１９０にて詳細干渉判定部４６Ｍは、ステップＳ１７０の干渉判定の結果、干渉すると判定した場合（Ｙｅｓ）はステップＳ３１０に進み、干渉しないと判定した場合（Ｎｏ）はステップＳ３００に進む。
ステップＳ３１０に進んだ場合、工作機械（本体）制御機能４０ｅにおける、可動体α及び可動体βを移動または回転させる出力指令のいずれかによって、可動体αと可動体βとが干渉すると予測されたため、例えば工作機械１の動作を停止させる信号を総合管理機能４０ａに出力し、工作機械（本体）制御機能４０ｅからの出力指令を禁止させる。
また、ステップＳ３００に進んだ場合は、可動体α及び可動体βを移動または回転させる工作機械（本体）制御機能４０ｅからの出力指令の出力を許可する信号（出力を禁止させない信号）を総合管理機能４０ａに出力する。
【００４５】
以上に説明したように、可動体αと可動体βについても、無用な処理を行わないため、干渉判定の処理時間を短縮化することができる。
なお、上記の説明は可動体αと固定体との干渉判定、続いて可動体αと可動体βとの干渉判定を行ったので、あとは可動体βと固定体との干渉判定を行えば、可動体βと可動体αとの干渉判定は行う必要はない。なお、ワークＷを加工工具７０で加工しているときは、可動体αと可動体βとが干渉している状態となる。従って、可動体αと可動体βとの干渉判定は、加工を行っていない移動時等にて行う。
なお上記の説明では、可動体αの基準点の位置に対する可動体βの基準点の相対位置の可動体相互干渉マップを用いたが、可動体βの基準点の位置に対する可動体αの基準点の相対位置の可動体相互干渉マップを用いてもよく、少なくとも一方の可動体相互干渉マップを用いればよい。
また、上記の説明では、可動体が２つの場合の例で説明したが、可動体が３つの場合であっても同様に、第１可動体と第２可動体、第１可動体と第３可動体、第２可動体と第３可動体、との間で、可動体の相互の干渉を判定すればよい。
また、可動体αと固定体、及び可動体βと固定体、とが干渉しないことがわかっている場合等では、可動体αと固定体との干渉判定、及び可動体βと固定体との干渉判定を省略し、可動体αと可動体βの可動体同士の干渉判定を行うようにすることもできる。
【００４６】
上記に説明した実施の形態では、仮想３次元モデルを作成可能なモデル制御部４６Ａを備え、可動体の移動先位置が干渉マップまたは可動体相互干渉マップに用意したマップ点と一致しない位置に来た場合、詳細干渉判定部４６Ｇ及び４６Ｍにてポリゴンデータに基づいた詳細形状で干渉するか否かを判定した。しかし、図６のブロックから、モデル制御部４６Ａ、干渉度合い演算部４６Ｅ及び４６Ｋ、干渉可能性判定部４６Ｆ及び４６Ｌ、詳細干渉判定部４６Ｇ及び４６Ｍ、マップ点追加部４６Ｈ及び４６Ｎ、を省略して（更にマップ点の間隔を要求精度以上に小さく設定し）、可動体の移動先位置がマップ点に一致しない場合は、最も近接しているマップ点の干渉情報を用いて干渉するか否かを判定してもよい。また、この状態から干渉度合い演算部４６Ｅ及び４６Ｋと、干渉可能性判定部４６Ｆ及び４６Ｌを追加して、干渉度合いに応じて干渉するか否かを判定してもよい（仮想３次元モデルは使用しない）。
このように、仮想３次元モデルの機能がなくても、可動体の移動先位置と干渉マップとに基づいて可動体が固定体と干渉するか否かを短時間に判定することができる。
【００４７】
●［工作機械が円筒研削盤の場合（図９）の可動体α（ワークユニット）と可動体β（加工ユニット）との干渉判定手順］
次に、工作機械１が図９の例に示す円筒研削盤の場合について説明する。
［工作機械１の構成］
図９に示す工作機械１Ａは、基台２上に主軸ＭＣ、心押し台３０が固定されており、主軸ＭＣの回転軸であるＣ軸（Ｘ軸方向と平行）と同軸上に心押し台３０のセンタ３２が位置するように配置されている。また、主軸ＭＣにもセンタが設けられている（図示省略）。そして主軸ＭＣは、主軸ＭＣのセンタと心押し台３０のセンタ３２との間で挟持したワークＷを、Ｃ軸回りに回転可能である。また、主軸ＭＣの回転は工作機械制御装置４０から制御され、工作機械制御装置４０は、検出手段ＥＣ（エンコーダ等）からの検出信号に基づいて、主軸ＭＣの回転角度を検出することが可能である。なお、センタ３２はワークＷのＸ軸方向の長さに応じて、Ｘ軸方向に移動可能に構成されている。この場合、ワークＷ、主軸ＭＣ、心押し台３０、にてワークユニットを構成しており、ワークユニットの基準点ＷＫは、主軸ＭＣのセンタの先端とワークＷとの当接部に設定されている。
【００４８】
基台２上には、Ｘ軸移動手段ＭＸを駆動させることにより案内部材２２Ａに沿ってＸ軸方向に移動可能な砥石台２２が載置されている。工作機械制御装置４０は、検出手段ＥＸからの検出信号に基づいて砥石台２２のＸ軸方向の位置及びＸ軸方向の移動速度を制御可能である。
砥石台２２上には、Ｚ軸移動手段ＭＺを駆動させることにより案内部材２４Ａに沿ってＺ軸方向に移動可能な砥石テーブル２４が載置されている。工作機械制御装置４０は、検出手段ＥＺからの検出信号に基づいて砥石テーブル２４のＺ軸方向の位置及びＺ軸方向の移動速度を制御可能である。
砥石テーブル２４上には、砥石駆動手段ＭＴを駆動させることで回転する加工工具７０（この場合、回転砥石）が載置されている。
この工作機械１では、加工工具７０、砥石駆動手段ＭＴ、砥石テーブル２４、砥石台２２、Ｚ軸移動手段ＭＺ、検出手段ＥＺ、にて加工ユニットを構成しており、加工工具７０の中心を加工ユニットの基準点ＴＫに設定している。
なお、工作機械制御装置４０の構成は、図２と同様であるので説明を省略する。
【００４９】
［干渉判定手順］
図９の例に示す工作機械１Ａでは、ワークＷは主軸ＭＣによって回転するが周囲の固定体とは干渉しない（干渉すると円筒研削できない）が、加工ユニットは周囲の固定体と干渉する可能性がある。また、加工時を除き、ワークユニットと加工ユニットが干渉する可能性がある。
従って、図９の例に示す工作機械１にて可動体（この場合、ワークユニットと加工ユニット）の干渉判定を行う場合、加工ユニットと固定体との干渉判定と、ワークユニットと加工ユニットとの干渉判定を行う。以下、干渉判定の処理手順を説明する。
【００５０】
加工ユニットと固定体との干渉判定の処理手順は、すでに図４を用いて説明した処理手順のとおりであるので、説明を省略する。
ワークユニットと加工ユニットとの干渉判定の処理手順については、すでに図７を用いて説明した処理手順から、可動体相互干渉マップの形式と選択が異なる。
図１に示す工作機械１の場合では、ワークユニットの基準点の位置に対する加工ユニットの基準点の複数の相対位置に設定した複数のマップ点を有する可動体相互干渉マップ（図８参照）を１つ用意すればよかったが、図９に示す工作機械１Ａでは、ワークＷが円筒でない場合（図９の例では円筒でないクランク形状）、ワークＷの回転角度に応じて加工ユニットが干渉する位置が変化する。そこで、可動体相互干渉マップを、ワークＷの回転角度に応じて複数用意する。そして、図７のフローチャートにおけるステップＳ１３０にて、可動体相互干渉マップを選択する際、ワークＷの回転角度に応じた可動体相互干渉マップを選択する。なお、ワークＷの回転角度に一致する回転角度の可動体相互干渉マップがない場合は、対象とする回転角度の前後に相当する２つの可動体相互干渉マップを選択し、どちらの可動体相互干渉マップを用いても非干渉の場合はワークユニットと加工ユニットは干渉しないと判定し、どちらを用いても、あるいはどちらか一方のみが干渉する場合にワークユニットと加工ユニットは干渉すると判定する。
また、すでに説明した方法等を用いて、マップ点にない位置の干渉度合いを求め、ポリゴンデータに基づいた詳細形状の判定を行うこともできる。
その他の処理手順は図７を用いて説明したとおりであるので、説明を省略する。
【００５１】
●［干渉マップ、可動体相互干渉マップの作成方法］
次に、干渉マップ、可動体相互干渉マップの作成方法について説明する。
例えば可動体αの干渉マップを作成する場合、仮想３次元モデルを用いて、可動体α（詳細形状）の移動可能な空間内（工作機械１を構成する固定体を含む空間内）で、可動体αを移動させる軸方向に、ポリゴンデータに基づいた可動体α（詳細形状）をスイープさせて、マップ点及び当該マップ点で固定体と干渉するか否かを記憶して干渉マップを作成する。このとき、マップ点の間隔は任意に設定できる。
可動体αが回転する場合は、可動体αを回転させる軸回りに、ポリゴンデータに基づいた可動体αの詳細形状を回転させて、マップ点及び当該マップ点で固定体と干渉するか否かを記憶して干渉マップを作成する。
また、例えば可動体αに対する可動体βの相対位置の可動体相互干渉マップを作成する場合、仮想３次元モデルを用いて、可動体αと可動体βのみを抽出し、可動体αの位置を固定して、当該可動体αの周囲で可動体βをスイープさせて、マップ点及び当該マップ点で可動体αが可動体βと干渉するか否かを記憶して可動体相互干渉マップを作成する。このとき、マップ点の間隔は任意に設定できる。また、可動体αが回転する場合は、可動体αを所定角度回転させて可動体αの周囲で可動体βをスイープさせる作業を繰り返し、可動体αの回転角度に応じた可動体相互干渉マップを作成する。
【００５２】
本発明の工作機械の干渉検出装置４１は、本実施の形態で説明した構成、処理等に限定されず、本発明の要旨を変更しない範囲で種々の変更、追加、削除が可能である。
また、本実施の形態にて説明した処理手順は、図４及び図７の例に示したフローチャートに限定されるものではなく、干渉マップ及び可動体相互干渉マップは、図５及び図８の例に限定されるものではない。
本実施の形態にて説明した工作機械の干渉検出装置は、どんな場合であってもポリゴンデータを用いて干渉判定する方法と比較して、ポリゴンデータを使った干渉チェックを行わなければならない対象物が減るため、干渉チェック演算量が減り、実際に衝突してしまう前に干渉判定を完了させて工作機械の動作を停止させることができる。
【産業上の利用可能性】
【００５３】
本実施の形態の説明では、加工工具としてドリルを用い、加工工具に対してワークＷを相対的にＸ軸方向、Ｙ軸方向、Ｚ軸方向に移動させて加工を行う工作機械１（図１参照）、及び加工工具として回転砥石を用い、ワークＷを回転させながら加工工具に対してワークＷを相対的にＸ軸方向、Ｚ軸方向に移動させて加工を行う工作機械１Ａ（図９参照）を例として説明したが、ワークＷを回転させて加工工具としてバイトを用いた工作機械等、種々の工作機械に適用することができる。
また、以上（≧）、以下（≦）、より大きい（＞）、未満（＜）等は、等号を含んでも含まなくてもよい。
【図面の簡単な説明】
【００５４】
【図１】工作機械１の外観の例を説明する図である。
【図２】工作機械制御装置４０の構成の例を説明する図である。
【図３】可動体αと固定体との干渉を検出する干渉検出装置４１の構成の例を説明する図である。
【図４】可動体αと固定体との干渉を検出する干渉検出装置４１による干渉判定の処理手順を説明するフローチャートである。
【図５】干渉マップを説明する図である。
【図６】可動体αと固定体、及び可動体αと可動体βとの干渉を検出する干渉検出装置４１の構成の例を説明する図である。
【図７】可動体αと固定体、及び可動体αと可動体βとの干渉を検出する干渉検出装置４１による干渉判定の処理手順を説明するフローチャートである。
【図８】可動体相互干渉マップを説明する図である。
【図９】可動体の構造が図１に示した工作機械１とは異なり、ワークＷが回転する工作機械１Ａの例を説明する図である。
【図１０】干渉度合いの求め方の例を説明する図である。
【符号の説明】
【００５５】
１        工作機械
１Ｂ      周辺機器
２        基台
１０      主軸
１２      主軸ハウジング
１５      主軸ユニット
２０      ワークテーブル
４０      工作機械制御装置
４１      干渉検出装置
４２      表示手段
４２ａ    表示画面
４４      入力手段
４８      記憶手段
５０      コラム
６０      サドル
２０Ａ、５０Ａ、６０Ａ    案内部材
７０      加工工具
７２      工具ホルダ
７５      工具ユニット
９０      工具マガジン
ＭＸ      Ｘ軸移動手段
ＭＹ      Ｙ軸移動手段
ＭＺ      Ｚ軸移動手段
ＥＸ、ＥＹ、ＥＺ    検出手段
Ｗ        ワーク
Ｖ１      仮想３次元モデル
ＴＫ      （加工ユニットの）基準点
ＷＫ      （ワークユニットの）基準点
【図１】
0005167788.tif 000002
【図２】
0005167788.tif 000003
【図３】
0005167788.tif 000004
【図４】
0005167788.tif 000005
【図５】
0005167788.tif 000006
【図６】
0005167788.tif 000007
【図７】
0005167788.tif 000008
【図８】
0005167788.tif 000009
【図９】
0005167788.tif 000010
【図１０】
0005167788.tif 000011