(57)【特許請求の範囲】
【請求項１】
CADシステムにおいて幾何図形対象(12,13)に関するブール演算を実行し、修正された幾何図形対象(14)を生成する方法であって、
a)記憶手段に格納された第１の幾何図形対象および第２の幾何図形対象に関するデータに基づき、第１の幾何図形対象および第２の幾何図形対象を表示手段上に表示するステップと、
b)入力手段を通して入力された前記第１の幾何図形対象の面(fa1)と前記第２の幾何図形対象の面(fa2)を交差させるコマンドに応じて、修正された幾何図形対象のエッジを形成するグラフ・エッジ(g)を処理手段によって計算するステップと、
からなり、
前記ステップbは、
b1)前記第１の幾何図形対象のエッジ(31)を前記第２の幾何図形対象の面を含む表面(sf2)と交差させ、交差点(33)を形成するステップと、
b2)前記第１の幾何図形対象の面を含む表面(sf1)を前記第２の幾何図形対象の面を含む表面(sf2)と交差させ、交差トラック(30)を形成するステップと、
b3)前記交差点(33)と前記交差トラック(30)の間の距離がそれぞれ、分解能の値(イプシロン)より小さいかどうかを判定するステップと、
b4)ステップb3で判定された距離がそれぞれ、前記分解能の値(イプシロン)より大きい場合、前記交差点(33)の空間位置を訂正するステップと、から成る方法。
【請求項２】
ステップb4は、前記交差点(33)をそれぞれ、前記第１の幾何図形対象の前記エッジ(31)に沿って、前記交差トラック(30)への距離が最小となる位置に移動させることを含む、請求項１の方法。
【請求項３】
ステップb4は、ステップb1で２つの前記交差点(39,40)が生成され、ステップb2で１本の交差トラック(38)が生成された場合、前記エッジ(37)と、前記第２の幾何図形対象の面を含む前記表面(sf2)との交差によって得られた２つの交差点(39,40)を、単一の訂正された交差点(41)にマージすることを含む、請求項１の方法。
【請求項４】
ステップb4は、ステップb1で１つの前記交差点(47)が生成され、ステップb2でｎ本の前記交差トラック(50,51)が生成された場合、前記エッジ(46)と、前記第２の幾何図形対象の面を含む前記表面(sf2)との交差によって得られる交差点(47)を、訂正されたｎ個の交差点(50,51)に分割することを含む、請求項１の方法。
【請求項５】
ステップbは、
b5)前記第１の対象の前記面(54)と前記交差トラック(53)の間の交差点(i1,i2)が順序付けられるステップと、
b6)ステップb5で定義される順序で交差トラック(53)に沿って各交差点(i1,i2)を進む際に、各交差点(i1,i2)に対し、前記面(54)が入れられるか、あるいは離されるかを表す面接近値を関連付けるステップと、
b7)ある交差点(i2)に関連付けられた面接近値が、ステップb5で定義した順序において１つ前の交差点(i1)に関係付けされる面接近値と等しいとき、この交差点(i2)の位置を訂正するステップと、
をさらに含む、請求項１〜４のいずれか一項に記載の方法。
【請求項６】
互いに分解能の値（イプシロン）より接近している複数の交差点が、単一の交差点として扱うためのクラスタに結合される、請求項５の方法。
【請求項７】
幾何図形対象(11,12,13)を作成し、修正するためのコマンド、及びデータを入力するための入力手段(7,8,9,10)と、
前記幾何図形対象(11,12,13)を作成し、修正するための計算を実行する処理手段(1,2)と、
前記幾何図形対象の表現を記憶し、対象の作成及び修正に関係する命令を記憶する記憶手段(5,6)と、
前記幾何図形対象(11,12,13)を表示し、前記幾何図形対象に対するブール演算の結果を表示する表示手段(3)とから成り、
前記処理手段(1,2)と前記記憶手段(5,6)は、第１の幾何対象物のエッジを第２の幾何対象物の面を含む表面と交差させて交差点を生成し、前記第１の幾何対象物の面を含む表面を前記第２の幾何対象物の面を含む表面と交差させて交差トラックを生成し、前記交差点と前記交差トラックとの間の距離がそれぞれ分解能の値（イプシロン）よりも小さいか否かを判定し、判定された距離が前記分解能の値（イプシロン）よりも大きかった場合前記交差点の空間位置を訂正することから成る方法を実施する、CADシステム。
【発明の詳細な説明】
【０００１】
【産業上の利用分野】
本発明は、計算機援用設計（ＣＡＤ）システムにおいて幾何図形対象に関するブール演算を実行する方法に関する。物理的対象、例えば、機械部品の設計において、対象を結合すること、ある対象を他の対象から減ずること、あるいは対象を交差させること等、２つ、又はいくつかの対象にブール演算を実行する必要があることが多い。本発明は、物理的対象のグラフィック表現を記憶し、それらを等角図で三次元的（３Ｄ）に表示することができる３Ｄ  ＣＡＤシステムにおけるブール演算の実行を扱う。
【０００２】
【従来の技術】
ＣＡＤシステムは、機械部品、又は電子部品、あるいはその他の対象の設計に広く使用されており、こうしたタイプのシステムがいくつか市販されている。こうしたシステムの共通の特徴は、対象がユーザによって対話モードで設計されることである。それは、ユーザが設計をしている間、対象が画面上に表示され、ユーザが、既存の構造に修正、及び／又は追加を適用するためのコマンドを入力できることを意味する。
【０００３】
設計中の幾何図形対象を表示するために、通常、陰極線管（ＣＲＴ）、又は液晶表示装置（ＬＣＤ）が使用される。その対象は等角図で表示され、結果的に、対象がコンピュータで生成された光源によって追加的に発光され、現実的な三次元イメージを生成する。対象を補足、又は修正するためのコマンドは、コンピュータ・マウス、グラフィックス・タブレット、又はライト・ペンによって入力される。編集処理が終了し、設計すべき対象がその最終形状となった時、プリンタ、又はプロッタによってハードコピーを作成することができる。
【０００４】
市販の３Ｄ  ＣＡＤシステムの一例は、Ｈｅｗｌｅｔｔ−Ｐａｃｋａｒｄ  Ｐｒｅｃｉｓｉｏｎ  Ｅｎｇｉｎｅｅｒｉｎｇ  Ｓｏｌｉｄ  Ｄｅｓｉｇｎｅｒ  Ｖｅｒｓｉｏｎ  ２．０である。３Ｄ  ＣＡＤシステムに関する記述は、Ｉ．Ｃ．Ｂｒａｉｄ著「Ｎｏｔｅｓ  ｏｎ  ａ  ｇｅｏｍｅｔｒｉｃ  ｍｏｄｅｌｌｅｒ」（Ｃ．Ａ．Ｄ．グループ  ドキュメントＮｏ．１０１、ケンブリッジ大学、１９７９年６月）でも知られている。他の３Ｄ  ＣＡＤシステムに関する記述は、Ｉ．Ｃ．Ｂｒａｉｄ他の論文「Ｓｔｅｐｗｉｓｅ  Ｃｏｎｓｔｒｕｃｔｉｏｎ  ｏｆ  Ｐｏｌｙｈｅｄｒａ  ｉｎ  Ｇｅｏｍｅｔｒｉｃ  Ｍｏｄｅｌｌｉｎｇ」、Ｋ．Ｗ．Ｂｒｏｄｌｉｅ編「Ｍａｔｈｅｍａｔｉｃａｌ  Ｍｅｔｈｏｄｓ  ｉｎ  Ｃｏｍｐｕｔｅｒ  Ｇｒａｐｈｉｃｓ  ａｎｄ  Ｄｅｓｉｇｎ」（Ａｃａｄｅｍｉｃ  Ｐｒｅｓｓ、１９８０年）で知られている。
【０００５】
この間に、例えば、Ｈｅｗｌｅｔｔ−Ｐａｃｋａｒｄ社による上述のシステム等、幾何図形対象に関するＵＮＩＴＥ、ＳＵＢＴＲＡＣＴ、又はＩＮＴＥＲＳＥＣＴのようなブール演算を実行可能ないくつかのＣＡＤシステムが開発されている。広範で複雑な対象を作成できるように、ソリッド・モデラはブール演算を強力に支援しなければならない。しかし、既存のＣＡＤシステムは、全ての所望の幾何図形構成に対してブール演算を実行できるわけではないため、全ての点で満足できるものではない。特に、ブール演算の実行に関して、表面を浅く交差させる必要がある接線方向、又はほぼ接線方向の幾何図形は、演算を失敗させるほど大きな数値的矛盾を引き起こす。交差に関する計算のそうした誤差のために、ＣＡＤシステムは、その演算を実行できないか、又は、その演算の結果得られる幾何図形対象が、理想的な状況において有するはずの形状を持たないことを示すエラー・メッセージを生成する。上述の問題は、幾何図形対象面のエッジと、その面を含む表面と他の幾何図形対象面を含む別の表面が交差する線がほぼ一致する、部分一致幾何図形の場合にも発生する。
【０００６】
上述のように、ブール演算の結果として定義された立体の境界の計算には、表面／表面交差、曲線／表面交差、及び曲線／曲線交差に関するアルゴリズムが必要である。正常な境界を生成するために、これらの交差は、モデルの分解能によって決定される程度に対して一貫性のあるものでなければならない。この分解能は、モデルが「分解する」前に許容されうる許容可能な誤差（イプシロン）を指定する。例えば、曲線が、特定の表面からイプシロン以下の距離しか離れていない場合、その表面に位置するものとみなされ、イプシロンより短い距離しか相互に離れていない３つのエッジは、共通の頂点で交差するとみなされる。立体の境界（例えば、ブール演算の結果）を計算する上で重要なステップは、交差する２つの面の交差部分にある表面／表面交差トラックのセグメントを表す交差グラフを構成することである。交差グラフの構成に関して、理想的には交差トラックに一致すべき交差点が、イプシロンを超える距離だけ離れており、そのため、一貫性のある幾何図形対象を構成できず、即ち、モデルが分解することがある。
【０００７】
上述の問題に対処するために、通常使用されている２つの方法がある。
１．曲線／表面交差の精度を向上させる数値的方法。このアプローチは、曲線と表面の非常に特殊な組合せにしか適用できない。対応するアルゴリズムは比較的低速であり、数値的な定義が不完全な状況では信頼できる結果が得られない。
２．曲線／表面交差の代わりに曲線／曲線交差を使用する方法。このような方法の欠点は、数値的分解能が限られており、三次元曲線が共通点で交わることが殆どないので、曲線／曲線交差が、曲線／表面交差よりも数値的な安定度が劣ることである。
【０００８】
【発明が解決しようとする課題】
本発明の課題は、幾何図形対象に関するブール演算を実行する方法と、高い信頼性を有する強力な、対応するＣＡＤシステムを提供することである。
【０００９】
本発明の他の課題は、ブール演算を高速かつ数値的に高い安定度で実行できるようにすることである。
【００１０】
【課題を解決するための手段】
本発明によれば、これらの課題は、ＣＡＤシステムにおいて幾何図形対象に関するブール演算を実行し、修正された幾何図形対象を生成する方法であって、第１の幾何図形対象面と第２の幾何図形対象面を交差させて、修正された幾何図形対象のエッジを形成するグラフ・エッジを生成し、
ａ）交差点を作成するために、第１の幾何図形対象のエッジを、第２の幾何図形対象面を含む表面と交差させるステップ、
ｂ）交差トラックを作成するために、第１の幾何図形対象面を含む表面を、第２の幾何図形対象面を含む表面と交差させるステップ、
ｃ）前記交差点と前記交差トラックの間の距離がそれぞれ、分解能の値（イプシロン）より小さいかどうかを判定するステップ、及び、
ｄ）ステップｃ）で判定された距離がそれぞれ、分解能の値（イプシロン）より大きい場合、前記交差点の空間位置を訂正するステップを含むことを特徴とする前記方法と、
ＣＡＤシステムであって、前記システムが、
幾何図形対象を作成し、修正するためのコマンド、及びデータを入力し、特に、幾何図形対象に関するブール演算に関係するコマンドを入力する入力手段、
前記幾何図形対象を作成し、修正するための計算を実行する処理手段、
前記幾何図形対象の表現を記憶し、対象の作成、及び修正に関係する命令を記憶するメモリ手段、及び、
前記幾何図形対象を表示し、前記幾何図形対象に関するブール演算の結果を表示する、表示手段を備え、
前記処理手段、及び前記メモリ手段が、項番１ないし６のいずれかに記載の方法を実行するように動作することを特徴とするＣＡＤシステムによって達成される。従って、本発明は、計算機援用設計（ＣＡＤ）システムにおいて幾何図形対象に関するブール演算を実行し、修正された幾何図形対象を生成する方法を提供する。
この方法では、第１の幾何図形対象面と第２の幾何図形対象面を交差させ、修正された幾何図形対象のエッジを形成するグラフ・エッジを生成し、前記方法が、
ａ）交差点を作成するために、第１の幾何図形対象のエッジを、第２の幾何図形対象面を含む表面に交差させるステップと、
ｂ）交差トラックを作成するために、第１の幾何図形対象面を含む表面を、第２の幾何図形対象面を含む表面に交差させるステップと、
ｃ）前記交差点と前記交差トラックの間の距離がそれぞれ、分解能の値（イプシロン）より小さいかどうかを判定するステップと、
ｄ）ステップｃ）で判定された距離がそれぞれ、分解能の値（イプシロン）より大きい場合、交差点の空間位置を訂正するステップを含む。
【００１１】
本発明の基本原理によれば、曲線／表面交差点に摂動方法を適用して幾何学的矛盾を解消する。基本的に、この矛盾は、矛盾した交差点を、所望の表面／表面交差、又は、少なくとも、表面／表面交差からの距離が分解能の値（イプシロン）以下である位置に再配置することによって解決される。再配置の目標点は、曲線／曲線交差方法によって決定されうる。この交差点を再配置（摂動）することによって、追加的な誤差が生じるが、全体的な誤差が最小化され、幾何図形対象の一貫性が確立されるという効果がある。
【００１２】
本発明は、任意のタイプのソリッド・モデリング方法、例えば、「境界表現（Ｂ−ｒｅｐ）」と呼ばれる方法と共に使用することができる。本発明の他の利点は、結果を安定させるために、例えば、交差ルーチンを含む標準幾何図形ライブラリの使用、又は交換を容易にすることである。
【００１３】
以下で、本発明の実施例を、図面に関して詳細に説明する。
【００１４】
【実施例】
図１は、３Ｄ  ＣＡＤシステムの典型的な構成要素を示す概略図である。メイン・プロセッサ１は、グラフィック・プロセッサ２を介して表示スクリーン３、例えばＣＲＴに接続されている。設計中の幾何図形対象１１は、スクリーン３上に表示される。メイン・プロセッサ１は、スクリーン３上に表示された幾何図形対象を作成し、修正するための計算を実行する。プリンタ４は、集線装置７を介してメイン・プロセッサ１に接続されている。プリンタ４は、スクリーン３上に表示されているイメージのハードコピー、又はＣＡＤシステムのデータ・メモリ５に記憶されている幾何図形対象のハードコピーを作成することができる。データ・メモリ５は、メイン・プロセッサ１に接続され、磁気ディスクや光ディスク等の大容量記憶装置から成る。プログラム・メモリ６は、設計中の幾何図形対象の作成、及び操作に使用される命令を含む。
【００１５】
ＣＡＤシステムとの対話のために、ユーザが使用できるいくつかの入力手段がある。図の実施例では、スクリーン３上に表示されるカーソルを制御するコンピュータ・マウス９がある。ユーザが、マウス９を適当に移動させることによって、表示されたオプションにカーソルを位置決めし、かつ活動化キーを押すことにより、所望のコマンドを選択できる、コマンド・メニューもスクリーン３上に表示される。表示されたメニュー・オプションの例は、対象に穴開け処理を施す等、スクリーン上に表示された対象へのある部分の追加、又は前記対象からのある部分の除去である。選択可能なオプションの他の例は、本発明によれば、表示されている対象に対するブール演算の実行である。コマンド、又はデータをプロセッサ１に入力するために、マウス９の他に、キーボード８も提供されている。他の入力手段は、スクリーン３上に表示された対象を様々な軸を中心に回転させ、特定の方向にそのままシフトさせるための複数のノブを備えるノブ・ボックス１０である。上述の入力手段の代わりに、あるいはそれに加えて、グラフィクス・タブレット、又はライト・ペン等の代替入力手段が提供されうることが理解されよう。唯一重要なことは、入力手段によって、ユーザが、スクリーン３上に表示された幾何図形を所望の方法で操作し、特にこれらの幾何図形に関するブール演算を実行できるようになることである。
【００１６】
図２は、立方体１２、及び円錐１３の例に関するブール演算ＵＮＩＴＥを示す。図２の左側の部分は、ＵＮＩＴＥ演算を実行する前の立方体１２、及び円錐１３の２つの異なる斜視図を示し、右側の部分は、やはり２つの異なる斜視図でＵＮＩＴＥ演算の結果を示す。図２の右側の部分に示されるＵＮＩＴＥ演算された対象１４には、最初の立方体と最初の円錐の間の共通のエッジ１５、及び１６、即ち交差エッジが示されている。
【００１７】
図３、及び図４は、以後の説明で重要な役割を果たす用語「分解能」を例示する。分解能（イプシロン）は、幾何図形対象（例えば、点、線、面）がＣＡＤシステムによって別々の要素とみなされる前に、そのシステムによって許容される最大許容誤差である。図３は、曲線１８の表面１７上における包含を示す。曲線１８は、表面１７からある距離（イプシロン）だけ離れているように示されている。曲線と表面の間の距離は、分解能（イプシロン）以下なので、ＣＡＤシステムは、曲線１８が表面１７に位置するとみなす。
【００１８】
図４は、共通の頂点２２で交差する３つのエッジ１９、２０、２１を示す。３つのエッジが実際に共通点２２で交わる理想的な状況が図の左側の部分に示されている。しかし、現実のＣＡＤシステムでは、数値的誤差、及び不安定性によって、図４の右側の部分に示したように、エッジ１９’、２０’、２１’が交わらないことがある。誤差が、半径（イプシロン）を有する球２３によって示された分解能（イプシロン）の範囲内である場合、この頂点は、依然矛盾がないものとみなされる。誤差が分解能より大きくなった場合、このモデルは「分解」し、システムは３つのエッジを共通の１つの頂点として関連付けしない。分解能は通常、ＣＡＤシステムによって作成されるモデルのタイプに依存し、通常、ユーザによって調整可能である。
【００１９】
本発明は、例えば、エッジが共通の頂点で正確に交わらないような矛盾を扱う。このような状況は一般に、ブール演算を実行して交差グラフを計算する時に発生する。ブール演算を実行するには、ブール演算を実行すべき幾何図形対象面が交差している必要がある。交差すべき面は表面に含まれる。交差グラフは、交差する２つの面の交差部分に位置する、こうした２つの表面の間の交差トラック（表面／表面交差トラック）のセグメントである。交差グラフの構成は、ブール演算の結果に対応した、立体の境界の計算における基本的なステップである。交差グラフの構成の信頼性は、ブール演算の成否に直接影響を及ぼす。
【００２０】
図５は、交差する２つの表面ｓｆ１、及びｓｆ２を示す。各表面はそれぞれ、面、即ち、表面内の限られた領域を備えている。表面ｓｆ１は面ｆａ１を含み、表面ｓｆ２は面ｆａ２を含む。表面／表面交差トラック２４全体のうちの一部だけが、面ｆａ１とｆａ２の交差部分に位置する。この部分が交差グラフｇである。以下では、交差は記号∩でも示される。従って、交差トラック２４はｓｆ１∩ｓｆ２に対応する。
【００２１】
通常、表面／表面交差トラック２４全体から交差グラフｇを定義するために必要な点は、面ｆａ１の境界曲線を表面ｓｆ２と交差させ、面ｆａ２の境界曲線を表面ｓｆ１と交差させることによって得られる。図５に示した例では、表面ｓｆ１と交差した面ｆａ２の境界曲線ａによって点２５が得られ、表面ｓｆ２と交差した面ｆａ１の境界曲線ｂによって点２６が得られる。点２５、及び２６は、面ｆａ１とｆａ２の交差部分にある交差グラフｇを定義するために必要な定義ポイントを表す。得られたこれらの定義ポイントの精度によって、ブール演算の成否が決定される。以下で説明するように、本発明は、立体の境界の一貫性ある表現を構成できるように不正確な定義ポイントを訂正する方法を提供する。
【００２２】
本発明の方法を詳細に説明する前に、数学的に正確な他の状況を図６に関して論じる。理想的には、特定の表面上の曲線と他の表面との交差は、２つの表面の交差から得られる１組の点に含まれる。図６はこの状況を示している。表面ｓｆ１上に位置する曲線ｃｖ１と表面ｓｆ２が交差する場合、２つの表面ｓｆ１とｓｆ２の交差トラック２９上にある交差点２７が得られる。表面ｓｆ２上に位置する曲線ｃｖ２と表面ｓｆ１が交差する場合、やはり交差トラック２９上にある交差点２８が得られる。
【００２３】
しかし、ＣＡＤシステムで発生する実際の状況では、例えば、数値的誤差のために、曲線が正確に表面上に位置していないこともある。典型的な状況が図３に示されている。数学的に正確な状況からのこのような偏差によって、幾何図形対象にある種の矛盾が発生することがある。本発明の摂動方法は基本的に、交差点を、所望の表面／表面交差上に位置するようになるまで、曲線に沿って「移動させる」ことによって、結果として生じる様々な矛盾を訂正するものである。この移動の目標点は、表面／表面交差トラックと、交差点が交差トラックから外れている曲線との間の交差を計算する、曲線／曲線交差アルゴリズムによって見つけることができる。例えば、最短距離点の計算等、そのような曲線／曲線交差アルゴリズムは周知であり、従って、より詳細には説明しない。
【００２４】
以下では、ブール演算を実行する際に、実際の状況で発生する可能性があり、本発明の摂動方法によって訂正される、様々なタイプの矛盾を、図７ないし図１０に関して説明する。図７ないし図１０はそれぞれ、２つの表面の交差と、表面の一方に位置する曲線を扱うものに過ぎない。所望のブール演算を完全に実行するためには、交差演算、及び図７ないし図１０に示した、摂動による交差演算に続く訂正をそれぞれ、異なる曲線、及び表面に数回にわたって適用する必要があることが理解されよう（図５と比較されたい）。図７ないし図１０は、ブール演算を完了させるために、幾何図形対象全体が構成されるまで適当な回数だけ繰り返す必要がある方法の、基本要素を示す。図７ないし図１０は、実際のＣＡＤにおける状況で発生する幾何学的矛盾の様々な例を使用する本発明の方法の基本原理を示しているが、この方法の完全な説明は、図１１、及び図１２のフローチャートに関して行う。
【００２５】
前述した矛盾は、２つのクラスに分割することができる。
１．接した状態、又は殆ど接した状態の表面間の交差において発生する矛盾。そのような状況では、ある表面の直角方向における小さな誤差が、その表面の方向においてより大きな誤差を引き起こす。対応する例を図７ないし図９に示す。
２．表面／表面交差トラックにほぼ一致する曲線において発生する矛盾。対応する例を図１０に示す。
【００２６】
第１のクラスは３つのケースに細別することができる。
ａ）１つの曲線／表面交差点と１つの交差トラック（図７）
ｂ）２つの曲線／表面交差点と１つの交差トラック（図８）
ｃ）１つの曲線／表面交差点と２つの交差トラック（図９）。
【００２７】
次に、ケースａ）を図７に関して説明する。説明を明確にするために、ブール演算を実行すべき幾何図形対象面が省略され、そのような面が位置する表面ｓｆ１、及びｓｆ２だけが示されている。表面ｓｆ１、及びｓｆ２は、殆ど接する状態にあり、わずかな角度βで相互に交差している。交差トラックは、参照符号３０で示されている。ＣＡＤシステムにおける数値的誤差のために、曲線３１は、表面ｓｆ１に正確には位置しておらず、理想的な（数学的に正確な）状況では、曲線３２（点線）によって示されると仮定される。しかし、曲線３１は、表面ｓｆ１から分解能イプシロン以下の距離しか離れていないので、その表面に位置するとみなされる。曲線３１が表面ｓｆ１から離れているので、曲線３１の表面ｓｆ２との交差点３３は、理想的な曲線３２と表面ｓｆ２との交差から得られ、交差トラック３０上に位置する、理想的な交差点３４とは異なる。２つの表面の角度が小さい場合、即ち、前記２つの表面が殆ど接する状態の交差である場合、理想的な交差点３４と実際の交差点３３の間の距離ｄは、分解能イプシロンと比べて大きなものになり、以下の関係が成り立つ。
ｄ  ＝  イプシロン／（ｓｉｎ  β）。
【００２８】
距離ｄが分解能イプシロンより大きい場合、もはや交差点３３は交差トラックに割り当てられない。本発明の方法は、交差点３３を矢印３６の方向に、交差トラック３０と曲線３１の間の最短距離点３５に向かって移動させることによって、この矛盾を除去する。新しい点３５と交差トラック３０の間の距離は分解能イプシロンを超えていないので、この時、一貫性が確立されるように点３５が交差トラックに割り当てられうる。摂動された点３５は、図５に関して説明したように、ブール演算を実行するために判定される必要がある交差グラフの端点を形成する。最初の交差点３３を、摂動された位置３５に移動することによって、追加的に誤差が発生しても、この時、新しい点３５が交差トラック３０に割り当てられうるので、全体的な結果は摂動の前よりも依然好ましいものである。
【００２９】
図８は、上述のケースｂ）を示す。表面ｓｆ１と円筒状表面ｓｆ２は相互に交差している。表面ｓｆ１は、数値分解能イプシロン以下の距離だけ表面ｓｆ２を貫通している。従って、図８から明らかになるように、数学的に正確な状況では２本の交差線が存在すべき場合でも、交差アルゴリズムは１つの交差トラック３８しか返さない。しかし、表面ｓｆ１上に位置する曲線３７は、表面ｓｆ２との２つの異なる交差点３９、及び４０をもたらす。これらの点は、交差トラック３８からイプシロンよりかなり多い距離だけ離れており、従って、交差トラックに割り当てられない。本発明の摂動方法は、交差トラック３８からイプシロン以下の距離しか離れていない単一の点４１に集約されるまで、点３９を方向４２に、点４０を方向４３に移動させることによって矛盾を除去する。従って、新しい点４１が交差トラック３８に割り当てられ、それによって、必要とされる一貫性が確立される。
【００３０】
図９は、上述のケースｃ）を示す。この場合、２つの表面ｓｆ１とｓｆ２の間の交差は、２つの異なる交差トラック４４、及び４５をもたらす。表面ｓｆ１上に位置する曲線４６と表面ｓｆ２の間の交差は、数値分解能（イプシロン）が限られているために、１つの点４７しか生じない。この矛盾を訂正するために、摂動方法は、単一の交差点４７を２つの点に分割し、この２つの点を曲線４６に沿ってそれぞれ矢印４８、及び４９の方向に、それぞれ、２つの交差トラック４４、及び４５に対して最短の位置５０、５１に移動させる。
【００３１】
図１０は、曲線が表面／表面交差トラックにほぼ一致する、上述の第２のクラスの矛盾を例示する。垂直な表面ｓｆ１上に定義された面５４が示されている。第２の表面ｓｆ２は、交差トラック５３において表面ｓｆ１と交差する。図１０に示したように、面５４の下部境界「エッジ２」は、表面／表面交差トラック５３にほぼ一致する。面５４の下部境界「エッジ２」とｓｆ２の交差によって、１つの交差点ｉ２のみが生じる。面５４の左境界エッジ「エッジ１」は、ｓｆ２までの距離が分解能イプシロン以下なので、点ｉ１でｓｆ２と交差する。２つの点ｉ１とｉ２はイプシロンを超える距離だけ離れているので、両方の交差点を含む頂点の作成は失敗し、交差グラフの計算は不可能となる。
【００３２】
表面／表面交差トラック５３が以後の点ｉ１、及びｉ２で面５４に入るようみなされ、それが不可能な状況であるので、この摂動アルゴリズムは矛盾を検出する。矛盾した状況において、交差トラックは、その交差トラックが他の交差点、又は交差点のクラスタにおいて面に入った後で、ある交差点（又は、イプシロン以下の距離しか離れていない交差点のクラスタ）においてのみ、面を離れることができる（例えば、図５を参照されたい）。しかし、交差トラックが、連続する２つの点で面に入ることは不可能である。図１０に示した矛盾を解決するために、この摂動アルゴリズムは、点ｉ２を交差トラック５３に沿って点ｉ１の位置に移動させ、ｉ１とマージする。ｉ２の移動は、矢印５５によって示されている。
【００３３】
以下では、図１１、及び図１２に示したフローチャートに関して本発明の方法を説明する。このフローチャートは、各対象から面を取り出し、それらを交差させ、両方の面の交差部分である交差トラックの１部分からグラフ・エッジを生成する、ブール演算を実行する方法を説明するものである。面／面交差の様々な組合せから生成された全てのグラフ・エッジは全体として交差グラフを形成する。この方法の第１の部分（「交差」）は実質的に、図１１に示したステップに対応し、第２の部分（「グラフ・エッジ構成」）は実質的に、図１２によるステップに対応する。
【００３４】
交差：
フローチャートのブロック６１による第１のステップで、第１の幾何図形対象、又は立体から面「面１」を取り出し、第２の立体から面「面２」を取り出す。こうした２つの立体の典型的な例を図２に示す。説明を簡単にするために、この２つの面が、図５に示した幾何学的構成に類似した幾何学的構成を有すると仮定する。
【００３５】
ブロック６２による次のステップで、面１が位置する表面（「表面１」）を、面２が位置する表面（「表面２」）と交差させる。ブロック６３で、この２つの表面の間に交差トラックが存在するかどうかを検査する。交差がない場合、このアルゴリズムは終了する。交差がある場合、ブロック６４に示したように、面１を表面２と交差させる。ブロック６５に示したように、面２のエッジも表面１と交差させる。次いで、これらのエッジ／表面交差から得られる交差点が、前のステップで見つかった表面／表面交差トラックに関連付け（あるいは、「割当て」）られなければならない。この割当てが必要となるのは、交差グラフｇ（図５参照）と境を接する定義ポイントを見つけられるようにするためである。
【００３６】
この割当ては、交差トラックに関する点のユークリッド距離を使用して、ブロック６６で実行される。点からの距離が分解能イプシロン以下であるトラックが見つかった場合、その点は割当て済みとみなされる。
【００３７】
図６に示したような数値的に安定した幾何学的構成では、全ての点が割り当てられる。このような場合、アルゴリズムはただちにブロック７３（図１２）に進む。図７、図８、及び図９に示したような接している状態、又は殆ど接している状態の構成の場合、交差点が交差トラックからイプシロンを超える距離だけ離れているので、割当ては失敗する。割当てが失敗した場合、割当てられていない点を処理するループが実施される。このループは、ブロック６８ないし７２から成る。
【００３８】
この矛盾を解決するための第１の動作は、その矛盾をもたらしたエッジを、ブロック６２から得られた全ての表面／表面交差トラックと交差させることである。見つかった交差点の数に応じて（ブロック６９、又は７１）、適当な摂動方法が適用される。ブロック６９によって１つの曲線／曲線交差点が見つかった場合、ブロック７０によって、その曲線／曲線交差点に、割当てられていない点が再配置（摂動）される。摂動後、アルゴリズムは次の点の処理に戻る。
【００３９】
前述の処理ステップを図７、及び図８に示す。図７で、点３３は、交差トラック３０からイプシロンを超える距離だけ離れているので、割当てられていない。従って、交差トラック３０と曲線３１の（分解能イプシロンの範囲内の）交差に対応する点３５に、点３３が再配置される。図８では、点３９、及び４０は割当てられていない。従って、曲線３７と交差トラック３８の（分解能イプシロンの範囲内の）交差に対応する点４１に、点３９及、び点４０が再配置される。
【００４０】
ブロック７１によって、複数の曲線／曲線交差が見つかった場合、割当てられていない点がｎ回だけ複写される。ここで、ｎは、見つかった曲線／曲線交差点の数である。次いで、複写された各点が１つの曲線／曲線交差点に再配置（摂動）される。この状況を図９に示す。点４７は、２つの交差トラック４４、及び４５からイプシロンを超える距離だけ離れているので、割当てがなされていない。次いで、点４７が２つの点に分割され、それらの点が、それぞれ曲線４６と交差トラック４４、及び４５との交差に対応する点５０、及び点５１に移動される。次いで、ブロック６７に従って、次の割当てられていない点が処理される。
【００４１】
グラフ・エッジ構成：
割当てられていないエッジ／表面交差点を摂動した後、グラフ・エッジが作成される。これを行うには、各表面／表面交差トラックと、その交差トラックに割り当てられているエッジ／表面交差点が取り出され、それらの点がパラメータの昇順に順序付けられる（ブロック７３）。現在の分解能（イプシロン）で区別できない交差点が共通のクラスタに入れられる。クラスタは、それに属する点を、単一点のように表す構造である。次いで、アルゴリズムは、表面／表面交差トラックに沿って進み、クラスタを越えるたびに、いわゆる面接近値を算出する。面接近値は記号値であり、交差トラックがそのクラスタで面に入ったか、面から離れたか、あるいは面に接触したかを示すものである。
【００４２】
ブロック７４によって、第１の面接近値が各交差トラックごとにＵＮＫＮＯＷＮに初期設定される。次いで、ブロック７５で、クラスタに属していない（パラメータ順で）最下位に割当てられた点と、分解能イプシロンより近い、前記点に続く全ての点から点クラスタが構成される。次いで、ブロック７６で、両方の面に関するその点クラスタでの面接近値を決定する。同じ面に関して同じ接近値が２度検出された場合（ブロック７７）、図１０のような幾何学的構成となる。図１０では、２つの交差点ｉ１とｉ２が、エッジ２の交差が浅いために一致しない。接近値が等しい時の幾何図形の解釈は、交差トラックが、そのトラック上の連続する点で、面に入り、あるいは面から離れたということである。これは、ある面に入ったトラックが、その面を離れない限り、再びその面に入ることができないので、矛盾した状況である。この矛盾を意味のある状況にするには、図１０中の点ｉ２が頂点ｖｘと同じクラスタに属するように、点ｉ２を交差トラック５３に沿って点ｉ１に再配置（摂動）する。このクラスタは次に、固有の面接近値を生成する。
【００４３】
ブロック７９における検査によって、交差トラックに割り当てられた全ての点に関して、点クラスタの形成と矛盾の解決が確実に行われる。次に、ブロック８０によって、交差している面の交差部分にある、交差トラックのセグメントからグラフ・エッジが構成される。この結果は、図５に示したエッジｇに類似のグラフ・エッジである。
【００４４】
最後に、ブロック８１によって、全ての表面／表面交差トラックが確実に処理される。追加面が相互に交差するブール演算を実行する必要がある場合、これらの面に対して上述の処理を繰り返し、追加のグラフ・エッジを作成する。これらのグラフ・エッジ全てと、ブール演算が実行されるべき最初の幾何図形対象の交差のない部分から、演算の結果が構成され、ＣＡＤシステムの表示手段上に表示されうる。
【００４５】
上記で示された例は、説明を容易にするために簡略化されている。しかし、表面形状、及び曲線形状がいかなる点においても制限されるものではないことが理解されよう。本発明の摂動方法は、ＣＡＤシステムが支援する全ての幾何図形に適用可能である。
【００４６】
以下に本発明の実施態様を列挙する。
【００４７】
１．  ＣＡＤシステムにおいて幾何図形対象に関するブール演算を実行し、修正された幾何図形対象を生成する方法であって、第１の幾何図形対象面と第２の幾何図形対象面を交差させて、修正された幾何図形対象のエッジを形成するグラフ・エッジを生成し、
ａ）交差点を作成するために、第１の幾何図形対象のエッジを、第２の幾何図形対象面を含む表面と交差させるステップ、
ｂ）交差トラックを作成するために、第１の幾何図形対象面を含む表面を、第２の幾何図形対象面を含む表面と交差させるステップ、
ｃ）前記交差点と前記交差トラックの間の距離がそれぞれ、分解能の値（イプシロン）より小さいかどうかを判定するステップ、及び、
ｄ）ステップｃ）で判定された距離がそれぞれ、分解能の値（イプシロン）より大きい場合、前記交差点の空間位置を訂正するステップを含むことを特徴とする前記方法。
【００４８】
２．  ステップｄ）が、
前記交差点をそれぞれ、前記第１の幾何図形対象の前記エッジに沿って、前記交差トラックへの距離が最小となる位置に移動させるステップを含むことを特徴とする、項番１に記載の方法。
【００４９】
３．  ステップｄ）が、
前記エッジと前記交差トラックの交差によって１つの交差点しか得られない場合、前記エッジと、前記第２の幾何図形対象面を含む前記表面との交差によって得られた２つの交差点を、単一の訂正された交差点にマージするステップを含むことを特徴とする、項番１に記載の方法。
【００５０】
４．  ステップｄ）が、
前記エッジと前記交差トラックの交差によってｎ個の交差点が得られた場合、前記エッジと、前記第２の幾何図形対象面を含む前記表面との交差によって得られる交差点を、訂正されたｎ個の交差点に分割するステップを含むことを特徴とする、項番１に記載の方法。
【００５１】
５．  ｅ）前記第１の前記対象面と前記交差トラックの間の交差点が順序付けられ、
ｆ）ステップｅ）で定義された順序で、交差トラックに沿って進む際に、前記面が入れられるか、あるいは離されるかを記述する面接近値が、各交差点に関連付けられ、
ｇ）交差点に関連する面接近値が、ステップｅ）で定義された順序で、前記交差点より前に発生する交差点に関連する面接近値と同じである場合、交差点の位置が訂正されることを特徴とする、項番１ないし４のいずれかに記載の方法。
【００５２】
６．  相互の距離が分解能の値（イプシロン）より短い複数の交差点が、単一交差点とみなされる１クラスタに結合されることを特徴とする、項番５に記載の方法。
【００５３】
７．  ＣＡＤシステムであって、前記システムが、
幾何図形対象を作成し、修正するためのコマンド、及びデータを入力し、特に、幾何図形対象に関するブール演算に関係するコマンドを入力する入力手段、
前記幾何図形対象を作成し、修正するための計算を実行する処理手段、
前記幾何図形対象の表現を記憶し、対象の作成、及び修正に関係する命令を記憶するメモリ手段、及び、
前記幾何図形対象を表示し、前記幾何図形対象に関するブール演算の結果を表示する、表示手段を備え、
前記処理手段、及び前記メモリ手段が、項番１ないし６のいずれかに記載の方法を実行するように動作することを特徴とするシステム。
【００５４】
【発明の効果】
本発明によって、幾何図形対象に関するブール演算を実行する方法と、高い信頼性を有する強力なＣＡＤシステムが提供され、ブール演算が高速かつ数値的に高い安定度で実行される。
【図面の簡単な説明】
【図１】本発明を組み込んだ３Ｄ  ＣＡＤシステムの構成要素を概略的に示す図である。
【図２】ＣＡＤシステムにおけるブール演算を示す図である。
【図３】ＣＡＤシステムにおける分解能を例示するための例を示す図である。
【図４】分解能を例示するための他の例を示す図である。
【図５】ブール演算を実行するための面の交差を示す図である。
【図６】理想的な状況における異なる交差の相互の包含を示す図である。
【図７】実際の状況における交差に関する第１の例と、本発明によって、結果的に生じる誤差を訂正する方法を示す図である。
【図８】本発明による誤差訂正を含む、実際の状況における交差に関する第２の例を示す図である。
【図９】本発明による誤差訂正を含む、実際の状況における交差に関する第３の例を示す図である。
【図１０】本発明による誤差訂正を含む、実際の状況における交差に関する第４の例を示す図である。
【図１１】本発明の一実施例を記述するフローチャートである。
【図１２】本発明の一実施例を記述するフローチャートである。
【符号の説明】
１  メイン・プロセッサ
２  グラフィック・プロセッサ
３  表示スクリーン
５  データ・メモリ
６  プログラム・メモリ
７  集線装置
８  キーボード
９  マウス
３０，３８，４４，４５，５３  交差トラック
３１，３７，４６  曲線
３３，３９，４０，４１，４７，５０，５１，ｉ１，ｉ２  交差点
５４，ｆａ１，ｆａ２  面
ｓｆ１，ｓｆ２  表面
ｇ  交差グラフ
【図１】
0003567015.tif 000002
【図２】
0003567015.tif 000003
【図３】
0003567015.tif 000004
【図４】
0003567015.tif 000005
【図５】
0003567015.tif 000006
【図６】
0003567015.tif 000007
【図７】
0003567015.tif 000008
【図８】
0003567015.tif 000009
【図９】
0003567015.tif 000010
【図１０】
0003567015.tif 000011
【図１１】
0003567015.tif 000012
【図１２】
0003567015.tif 000013