(57)【特許請求の範囲】
【請求項１】
３次元形状の少なくとも一部が複数の多面体の組み合わせとして近似表現されている形状データを利用して３次元形状間の幾何学的な干渉の有無をチェックする干渉チェック装置において、
前記多面体の部分集合を解析曲面にフィットさせ、輪郭情報を含む解析曲面表現の形状データを求める解析曲面フィット処理手段と、
前記多面体近似表現されている３次元形状の形状データと、対応する前記解析曲面表現の形状データとを関連付けて記憶する記憶手段と、
前記干渉チェックを正確さ優先で行うか処理速度優先で行うかの計算モードを選択する計算モード選択手段と、
前記計算モード選択手段により選択された計算モードに基づいて、前記多面体近似表現の形状データ又は前記解析曲面表現の形状データのいずれか一方を前記記憶手段から選択する形状データ選択手段と、
前記形状データ選択手段により選択された形状データを使用して前記干渉チェックを実行する干渉チェック手段と、を具備することを特徴とする干渉チェック装置。
【請求項２】
前記解析曲面は、平面、球面、円筒面、円錐面、又はトーラス面の少なくともいずれかを含むことを特徴とする請求項５に記載の干渉チェック方法。
【請求項３】
前記計算モード選択手段は、前記３次元形状が動きを伴う場合は前記処理速度優先の計算モードを選択し、該３次元形状が動きを伴わない場合は前記正確さ優先の計算モードを選択することを特徴とする請求項１又は２のいずれかに記載の干渉チェック装置。
【請求項４】
前記形状データ選択手段は、解析曲面へのフィット誤差を含まない部分について、前記正確さ優先又は処理速度優先のいずれの計算モードにおいても当該解析曲面表現の形状データを選択し、解析曲面へのフィット誤差を含む部分について、前記正確さ優先の計算モードが選択されている場合は前記多面体近似表現の形状データを選択し、処理速度優先の計算モードが選択されている場合は、前記解析曲面表現の形状データを選択することを特徴とする請求項１乃至３のいずれかに記載の干渉チェック装置。
【請求項５】
３次元形状の少なくとも一部が複数の多面体の組み合わせとして近似表現されている形状データを入力し、該多面体の部分集合を解析曲面にフィットさせ、輪郭情報を含む解析曲面表現の形状データを求める解析曲面フィット処理手段と、
前記多面体近似表現されている３次元形状の形状データと、対応する前記解析曲面表現の形状データとを関連付けて記憶する記憶手段と、
干渉チェックを正確さ優先で行うか処理速度優先で行うかの計算モードを選択する計算モード選択手段と、
前記計算モード選択手段により選択された計算モードに基づいて、前記多面体近似表現の形状データ又は前記解析曲面表現の形状データのいずれか一方を前記記憶手段から選択する形状データ選択手段と、
前記形状データ選択手段により選択された形状データを使用して３次元形状間の幾何学的な干渉の有無をチェックする干渉チェック手段、としてコンピュータを動作させるためのプログラム。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明はコンピュータを利用してモデル化された３次元形状間における幾何学的な干渉の有無をチェックする干渉チェック方法、装置、およびプログラムに関する。
【０００２】
【従来の技術】
現在、機械や建築などの製品設計を効率的に行うための計算機援用設計（Computer Aided Design：ＣＡＤ）システムや、コンピュータグラフィックス用のモデル生成ソフトウエアシステム、コンピュータアニメーションのためのソフトウエアシステムなどが使われている。一方、インターネットなどを通じて、部品の３次元の形状情報を交換、利用するためにデータの標準規格であるＶＲＭＬ（Virtual Reality Modeling Language）などが提案され、実際に用いられている。これらソフトウエアシステムの一部には、部品間の幾何学的な干渉の有無を検出するなどの目的で、干渉チェック機能を持つものが知られている。
【０００３】
【発明が解決しようとする課題】
ＶＲＭＬなどの多面体（ポリゴン）近似では、そのポリゴン数が膨大になる傾向があり、これを計算機で処理して形状同士の幾何学的な干渉を検出すると多大な計算時間を要するので、多面体近似による形状データをそのままの態様で干渉チェックに供するのは不利な場合がある。
【０００４】
一方、多面体の部分集合に代えて、データ量の少ない解析曲面等に基づいて干渉チェックを行なう場合、計算時間の点では有利であるものの、解析曲面へのフィットに大きな誤差が含まれる場合はこの誤差に起因して干渉チェックに誤りが生じる可能性があり、当初の多面体近似による形状データの方が干渉検出の精度の点において有利な場合が起こり得る。
【０００５】
しかしながら、このような処理時間や精度の要求に応じて適切な形状データを柔軟に構築して干渉チェック機能に供給するような仕組みはこれまで提供されておらず、干渉チェック機能を有効に働かせることができなかった。
【０００６】
本発明はかかる事情を考慮してなされたものであり、処理時間や精度の要求に応じて３次元形状間における幾何学的な干渉の有無を柔軟にチェックする干渉チェック方法及び装置及びプログラムを提供することを目的とする。
【０００７】
【課題を解決するための手段】
上記課題を解決し目的を達成するために本発明は次のように構成されている。
【０００８】
本発明の請求項１に係る干渉チェック方法は、３次元形状の少なくとも一部が複数の多面体の組み合わせとして近似表現されている形状データを利用して３次元形状間の幾何学的な干渉の有無をチェックする干渉チェック方法において、前記多面体の部分集合を解析曲面にフィットさせ、解析曲面表現の形状データを求めるステップと、前記干渉チェックを正確さ優先で行うか処理速度優先で行うかの処理方法を選択するステップと、前記選択された処理方法に基づいて前記多面体近似表現の形状データ又は前記解析曲面表現の形状データを選択するステップと、前記選択された形状データを使用して前記干渉チェックを実行するステップと、を具備することを特徴とする干渉チェック方法である。
【０００９】
本発明の請求項５に係る干渉チェック装置は、３次元形状の少なくとも一部が複数の多面体の組み合わせとして近似表現されている形状データを利用して３次元形状間の幾何学的な干渉の有無をチェックする干渉チェック装置において、前記多面体の部分集合を解析曲面にフィットさせ、解析曲面表現の形状データを求める解析曲面フィット処理手段と、前記多面体近似表現されている３次元形状の形状データと、対応する前記解析曲面表現の形状データとを関連付けて記憶する記憶手段と、前記干渉チェックを正確さ優先で行うか処理速度優先で行うかの計算モードを選択する計算モード選択手段と、前記計算モード選択手段により選択された計算モードに基づいて、前記多面体近似表現の形状データ又は前記解析曲面表現の形状データのいずれか一方を前記記憶手段から選択する形状データ選択手段と、前記形状データ選択手段により選択された形状データを使用して前記干渉チェックを実行する干渉チェック手段と、を具備することを特徴とする干渉チェック装置である。
【００１０】
本発明の請求項９に係るプログラムは、３次元形状の少なくとも一部が複数の多面体の組み合わせとして近似表現されている形状データを入力し、該多面体の部分集合を解析曲面にフィットさせ、解析曲面表現の形状データを求める解析曲面フィット処理手段と、前記多面体近似表現されている３次元形状の形状データと、対応する前記解析曲面表現の形状データとを関連付けて記憶する記憶手段と、干渉チェックを正確さ優先で行うか処理速度優先で行うかの計算モードを選択する計算モード選択手段と、前記計算モード選択手段により選択された計算モードに基づいて、前記多面体近似表現の形状データ又は前記解析曲面表現の形状データのいずれか一方を前記記憶手段から選択する形状データ選択手段と、前記形状データ選択手段により選択された形状データを使用して３次元形状間の幾何学的な干渉の有無をチェックする干渉チェック手段、としてコンピュータを動作させるためのプログラムである。
【００１１】
【発明の実施の形態】
以下、図面を参照しながら本発明の実施形態を説明する。
図１は本発明の一実施形態に係り、多面体表現に係る形状データの読み込みから干渉チェック終了までの一連のステップを示すフローチャート、図２は、かかる一連のステップをコンピュータ上で実現するためのプログラムの構成例を示すブロック図である。
【００１２】
図２に示すように、形状データ読み込み部１、解析曲面フィット部２、形状データ記憶管理部３、ファイル出力部４、ファイル入力部５、磁気ディスク６、干渉チェック用データ供給部１０、干渉チェック部９、および結果表示部１１から構成されている。このうち、解析曲面フィット部２により生成された解析曲面表現の形状データを恒久的に記憶させない構成とする場合は、ファイル出力部４、ファイル入力部５、磁気ディスク６は不要である。
【００１３】
また、干渉チェック用データ供給部１０は、形状データ記憶管理部３、計算モード選択部７、および干渉計算用データ選択部８から構成されている。
【００１４】
図１に示すステップＳ１１において、多面体近似表現の形状データの読み込みが行われる。形状データ読み込み部１は、干渉チェック対象である機構部品に関する形状データを、例えば、図示しない機構部品シミュレーションシステムのデータベース等から読み込む。この機構部品の形状データは、３次元形状に相当するデータであって、３次元形状の一部または全部が、複数の多面体（ポリゴン）の組み合わせにより近似表現されている。３次元形状の全部が複数の多面体の組み合わせにより近似表現された形状データの一例を図３に示す。このデータは、無限の円筒面を２つの面で切り取ったような３次元形状に相当する。頂点データがＩＤ番号と座標値との組み合わせで列挙され、３角形が頂点のＩＤ番号列として記述されている。このような多面体近似表現の形状データは、頂点の数およびポリゴンの数が膨大になり、後述する解析曲面表現の形状データよりもデータ量が多い。
【００１５】
形状データ読み込み部１により読み込まれた多面体近似表現の形状データは、形状データ記憶管理部３に送られる一方、解析曲面フィット部２にも送られる。
【００１６】
ステップＳ１２においては、ステップＳ１１において読み込まれた多面体近似表現の形状データに基づく解析曲面のフィット処理が行われる。解析曲面フィット部２は、多面体の任意の部分集合について、平面、球面、円筒面、円錐面、又はトーラス面等の異なる解析曲面へのフィットを試み、適切な解析曲面表現の形状データを求める。このような解析曲面のフィット処理の詳細については、本願発明と同一出願人による出願に係る特願２０００―０９９８７４号の記載を参考にできる。
【００１７】
図４は、図３に示した多面体近似表現の形状データを元に作成された解析曲面表現の形状データの例を示したものである。円筒面については、その軸を表現するために軸上の１点の座標値と軸の方向ベクトルとが出力され、それに半径のデータが加わる。平面については、平面上の１点の座標と法線ベクトルとが出力される。これらのデータのみでは、無限円筒および無限平面になってしまうため、輪郭の情報がさらに加わる。輪郭に付随している右、または左の属性は、図中矢印のむき（エッジの軸まわりに反時計周り）に沿ってみた場合、面がどちら側にあるかを表している。円弧エッジについては、中心、軸、半径のデータであり、端点が同一座標であることは円弧全周であることを表している。楕円も同様であるが、楕円の長軸（主軸）のベクトルのデータが加わっている。
【００１８】
形状データ記憶管理手段３は、ステップＳ１２において生成された解析曲面表現の形状データを、該当する多面体近似表現の形状データに関連づけて記憶管理する。このような形状データ記憶管理手段３は、高速に書き込み／読み出し動作が可能なランダムアクセスメモリ等からなる主記憶装置を用いて構成される。解析曲面表現の形状データを、該当する多面体近似表現の形状データに関連づけて記憶管理することにより、解析曲面を指定して対応する当初のポリゴン集合を得るなどの処理が可能になる。
【００１９】
ステップＳ１３において、ステップＳ１２における解析曲面のフィット処理の結果を、主記憶装置のみならず磁気ディスクにも記憶するか否かを例えばユーザの指示等に基づいて判断する。記憶を行う場合（ステップＳ１３＝ＹＥＳ）、ファイル出力部４は解析曲面のフィット処理の結果として得られている解析曲面表現の形状データを磁気ディスク６に対して書き込む（ステップＳ１４）。一般に、解析曲面フィット処理は、後の干渉チェック処理に比べて計算時間を必要とするので、同じ形状データに対して繰り返し干渉チェックを行うような場合には、その都度解析曲面フィット処理を行うのではなく、磁気ディスク６に記憶しておいた解析曲面フィット結果をステップＳ２１において読み出して用いるようにし、冗長な計算を回避して処理を高速化する。
【００２０】
なお、ステップＳ１３において記憶を行わない場合は、そのままステップＳ１５に進む。
【００２１】
ステップＳ１５において、正確さ優先か処理速度優先かについての選択が行われる。計算モード選択手段７は干渉チェックの計算を正確さ優先で行う第１の計算モードと、処理速度優先で行う第２の計算モードとのどちらかを選択、決定する。
【００２２】
このような計算モードの選択における選択基準は任意に定めてもよいが、例えば本実施形態では、対象の３次元形状が動きを伴わない場合は正確さ優先の第１の計算モードを選択し、動きを伴う場合は処理速度優先の第２の計算モードを選択する。ここでいう３次元形状の動きについては、対象とする機構部品を計算機上のモデルを用いてシミュレーションしている際にユーザが与えた操作（例えばアニメーション表示中であるかどうか）などに基づいて所定の判断を行う。
【００２３】
そして、正確さ優先の計算モードの場合（ステップＳ１６＝ＹＥＳ）、干渉計算用データ選択部８は形状データ記憶管理部３にデータ要求を出し、解析曲面が誤差なくフィットされた以外の部分について、多面体近似表現の形状データ（ポリゴン）を選択する。すなわち、既に求めた解析曲面表現ではなく多面体近似表現の形状データを干渉チェックのためにそのまま用いるようにし、フィット処理に起因する誤差を発生しないようにする（ステップＳ１７）。
【００２４】
図５は、ＶＲＭＬなどで提供される３次元形状の多面体データの一例を示している。この多面体データは、解析曲面フィット処理（ステップＳ１２）の結果、図６に示すように解析曲面（平面、円筒面、円錐面、球面など）が正確に（誤差無く）フィットされている。この場合には、フィットされた解析曲面を用いて干渉チェックを行うのが処理速度の面でも正確さの面でも有利となる。したがって、解析曲面のフィットが正確に行われた場合、つまり解析曲面のフィットに誤差が生じなかった場合は、計算モードに依らず、後のいかなる処理においてもフィットされた解析曲面を用いて処理（干渉チェック）を行うようにする。
【００２５】
また、図７に示す多面体データは、図５のものとは若干異なる３次元形状についてのデータであり、解析曲面のフィットに誤差が含まれる場合を説明するためのものである。図７において、部分１１０が図５の近似形状とは異なる部分であり、ゆるやかなテーパー部分となっている。例えば、このテーパー部分の存在により、図８に示すように解析曲面のフィット結果に誤差（解析曲面１１１）が生じる場合がある。
【００２６】
解析曲面のフィット誤差については、例えば、該解析曲面上の点と基準点（例えば、この点に対応する多面体上の点）との距離計算により検出可能である。干渉計算用データ選択部８は、誤差を含む解析曲面１１１を特定し、この解析曲面１１１に相当する当初の多面体近似の形状データを選択する。
【００２７】
なお、解析曲面のフィット結果をディスプレイ画面上に表示させ、ユーザが視覚的にフィット誤差を検知する場合も考えられる。誤差が生じている解析曲面１１１をユーザが明示的に指定すると、干渉計算用データ選択部８は、指定された解析曲面１１１に相当する当初の多面体近似の形状データを選択する。
【００２８】
一方、図２において、処理速度優先の計算モードの場合（ステップＳ１６＝ＮＯ）は、解析曲面をできるかぎり多く選択する。解析曲面が選択された部分が多ければ、干渉チェック処理をより高速に実行可能になる。例えば本実施形態では、上述したフィット誤差の有無に依らず解析曲面を選択する。
【００２９】
以上のステップＳ１７又はＳ１８において選択された形状データが、干渉チェック部９に供給される。干渉チェック部９は、供給された形状データに基づいて干渉チェック処理を実行する（ステップＳ１９）。例えば、干渉チェック処理の実現に有用なソフトウエアライブラリとして、英国D-Cubed社のCDM(Collision Detection Manager)が知られており、同ソフトウエアライブラリを利用すれば解析曲面同士の干渉検出は極めて高速に実行できる。なお、同ソフトウエアライブラリの適用はあくまで一例であることは言うまでもない。ステップＳ１９における干渉チェック処理の結果は、結果表示部１１に表示される。
【００３０】
ステップＳ１５においては、干渉チェック処理の終了判定を行う。ユーザからの指示等に従い、条件を変えて干渉チェックをし直すような場合はステップＳ１５に戻る。このとき、磁気ディスク６に記録した解析曲面フィット結果を利用可能であることは上述したが、これを用いることなく、条件を変えて新たな解析曲面のフィット処理を行うように構成してもよい。
【００３１】
ここで、本実施形態の幾つかの変形例を説明する。
【００３２】
上記実施形態では、正確さ優先の計算モードにおいて、フィット誤差を含む解析曲面については、当該解析曲面表現の形状データではなく、多面体近似表現の形状データを選択することにより処理方法に応じた適切な形状データを構築するものとして説明した。しかし、解析曲面表現が多面体近似表現よりも干渉チェックの正確さに関して有利な場合もある。
【００３３】
図９は、この場合を説明するための図である。図９には、軸（円筒面）と穴との嵌め合い（軸穴対偶）の様子が、穴の軸方向から見た場合について示されている。実際には穴の径と軸の径とはほぼ一致するが、説明の都合上、軸を若干小さく示してある。
【００３４】
図９（ａ）に示すように、軸１５１と穴１５２に解析曲面としての円筒面がフィットされている場合は、軸１５１と穴１５２とを相対的に回転させた際（例えば静止した穴に対して軸を回転させる）に干渉が生じることはない。これに対し図９（ｂ）に示すように、軸１５３と穴１５４に解析曲面がフィットされておらず多面体表現のままである場合は、軸１５３と穴１６４とを相対的に回転させた際に、回転角度によっては干渉が生じる場合がある。この場合の干渉部分を例えば１５５や１５６に示す。図９（ｂ）は、多面体表現が原因で現実には起こり得ない干渉が誤って検出される例であり、機構部品のモデリング及びシミュレーションにおいて散見される。そこで、このような場合は解析曲面表現の形状データを計算モードによらず絶対的に用いることとしてもよい。
【００３５】
また、他の変形例として、許容される誤差の値に基づき、解析曲面のフィット結果や多面体近似表現の形状データを複数準備して用いるようにしてもよい。これら３次元形状の近似においては、誤差をより甘く設定すると近似曲面の数が少なくなって高速処理に適するが、その反面、精度は悪化していく。一方で、誤差をより厳しく設定すると近似曲面の数が多くなって精度が向上するが、その反面、処理時間は悪化していく。上記実施形態では形状データの選択枝は解析曲面表現と多面体近似表現との２種類であったが、選択肢を拡張してもよい。たとえば、正確なデータ、誤差の厳しいデータ、誤差の甘いデータを準備する。そして、対象とする部品のアニメーションにおける動きの速度等に応じてこれらのデータを使い分ける。例えば、高速に３次元物体が移動している状態では、高速に干渉チェックを行うために誤差の甘いデータを用い、動きが低速になった時点で誤差の厳しいデータに切り替え、最終的に動きが止まった時点で正確なデータに切り替えるような制御を行ってもよい。
【００３６】
また、さらに別の変形例として、解析曲面を利用して３次元形状を冗長的に近似表現し、干渉チェックの正確性、確実性をより向上する。
部品間の干渉有無の検出に、極めて厳密な正確さが要求される場合、図８のような解析曲面表現では、上述したようにフィット誤差を含んでいるので干渉チェックに不具合や見落としが生ずる可能性がある。そこで、３次元形状を冗長的に近似表現する。具体的には、図１０に示すように、近似円錐面の部分形状からなる解析曲面１１１と、解析曲面１１１と中心軸を共有する半径のより小さい新たな面との２つの面によりオリジナルのポリゴンを両側から挟み込むように表現する。いずれかの面で干渉があれば干渉があると判断する。この場合、近似曲面はポリゴンを挟み込むように表現するために必然的に２つになってしまい、干渉チェック処理に時間的な不利が生じるが、それでも多面体近似表現の形状データのみを用いる場合に比べて十分高速に実行可能でる。ポリゴン集合に対して障害物がいかなる方向から接近しても、かならず２つの近似曲面のうちいずれかの面が先に衝突するため、干渉チェックの不具合や見落としの可能性を排除することができる。
【００３７】
確実な干渉チェックのために、このような２つの面を求める考え方をさらに説明するのが図１１である。同図において、フィットされた円錐、円筒面の中心軸がそれぞれ１点鎖線で示されており、フィットされたポリゴンの頂点をこれら中心軸の周りに回転させるとともにこの軸を含む平面上に投影した状態が黒丸で示されている。点線はフィットされた円錐、円筒面を示しているが、黒丸で示された点は必ずしも厳密にフィット面の上に乗っておらず、わずかな干渉が見逃される可能性がある。そこで、円錐においては、フィットされた円筒を軸に沿って上下に動かし、擬似的に元の位置における半径を大きくしたり小さくしたりすることで実線で示されている２つの面を求める。円筒の場合は、半径を直接増減させることによって実線で示される２つの円筒の組を求めれば良い。
【００３８】
以上説明した本実施形態によれば、干渉チェックを高速に行うことが可能な解析曲面表現の形状データを有効に用い、正確な計算が必要な場合には、正確にフィットされた解析曲面以外に当初の多面体近似表現の形状データを用いるようにし、目的や要求に応じた柔軟な干渉チェックを実現できるようになる。
【００３９】
なお、本発明は上述した実施形態に限定されず種々変形して実施可能である。
【００４０】
【発明の効果】
以上説明したように、本発明によれば、処理時間や精度の要求に応じて３次元形状間における幾何学的な干渉の有無を柔軟にチェックする干渉チェック方法及び装置及びプログラムを提供できる。
【図面の簡単な説明】
【図１】本発明の一実施形態に係り、多面体近似表現に係る形状データの読み込みから干渉チェック終了までの一連のステップを示すフローチャート、
【図２】多面体近似表現に係る形状データの読み込みから干渉チェック終了までの一連のステップをコンピュータ上で実現するためのプログラムの構成例を示すブロック図
【図３】複数の多面体の組み合わせにより近似表現した３次元形状のデータの一例を示す図
【図４】図３に示した多面体近似表現の形状データを元に作成された解析曲面表現の形状データの例を示す図
【図５】ＶＲＭＬなどで提供される３次元形状の多面体データの一例を示す図
【図６】図５の３次元形状に解析曲面が正確に（誤差無く）フィットされた場合を示す図
【図７】図５のものとは若干異なる３次元形状についてのデータであって、解析曲面のフィットに誤差が含まれる場合を説明するための図
【図８】図７の３次元形状について、解析曲面のフィット誤差を示す図
【図９】軸（円筒面）と穴との嵌め合い（軸穴対偶）を示す図
【図１０】３次元形状の冗長的な近似表現を説明するための図
【図１１】３次元形状の他の冗長的な近似表現を説明するための図
【符号の説明】
１…形状データ読み込み部
２…解析曲面フィット部
３…形状データ記憶管理部
４…ファイル出力部
５…ファイル入力部
６…磁気ディスク
７…計算モード選択部
８…干渉計算用データ選択部
９…干渉チェック部
１０…干渉チェック用データ供給部
１１…結果表示部
【図１】
0003816753.tif 000002
【図２】
0003816753.tif 000003
【図３】
0003816753.tif 000004
【図４】
0003816753.tif 000005
【図５】
0003816753.tif 000006
【図６】
0003816753.tif 000007
【図７】
0003816753.tif 000008
【図８】
0003816753.tif 000009
【図９】
0003816753.tif 000010
【図１０】
0003816753.tif 000011
【図１１】
0003816753.tif 000012