JP3567015B2 - Cadシステムにおいて幾何図形対象に関するブール演算を実行するための方法 - Google Patents
Cadシステムにおいて幾何図形対象に関するブール演算を実行するための方法 Download PDFInfo
- Publication number
- JP3567015B2 JP3567015B2 JP09926595A JP9926595A JP3567015B2 JP 3567015 B2 JP3567015 B2 JP 3567015B2 JP 09926595 A JP09926595 A JP 09926595A JP 9926595 A JP9926595 A JP 9926595A JP 3567015 B2 JP3567015 B2 JP 3567015B2
- Authority
- JP
- Japan
- Prior art keywords
- intersection
- geometric
- track
- epsilon
- edge
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Lifetime
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T17/00—Three dimensional [3D] modelling, e.g. data description of 3D objects
- G06T17/10—Constructive solid geometry [CSG] using solid primitives, e.g. cylinders, cubes
Landscapes
- Physics & Mathematics (AREA)
- Geometry (AREA)
- Engineering & Computer Science (AREA)
- Computer Graphics (AREA)
- Software Systems (AREA)
- General Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Processing Or Creating Images (AREA)
- Image Generation (AREA)
Description
【産業上の利用分野】
本発明は、計算機援用設計(CAD)システムにおいて幾何図形対象に関するブール演算を実行する方法に関する。物理的対象、例えば、機械部品の設計において、対象を結合すること、ある対象を他の対象から減ずること、あるいは対象を交差させること等、2つ、又はいくつかの対象にブール演算を実行する必要があることが多い。本発明は、物理的対象のグラフィック表現を記憶し、それらを等角図で三次元的(3D)に表示することができる3D CADシステムにおけるブール演算の実行を扱う。
【0002】
【従来の技術】
CADシステムは、機械部品、又は電子部品、あるいはその他の対象の設計に広く使用されており、こうしたタイプのシステムがいくつか市販されている。こうしたシステムの共通の特徴は、対象がユーザによって対話モードで設計されることである。それは、ユーザが設計をしている間、対象が画面上に表示され、ユーザが、既存の構造に修正、及び/又は追加を適用するためのコマンドを入力できることを意味する。
【0003】
設計中の幾何図形対象を表示するために、通常、陰極線管(CRT)、又は液晶表示装置(LCD)が使用される。その対象は等角図で表示され、結果的に、対象がコンピュータで生成された光源によって追加的に発光され、現実的な三次元イメージを生成する。対象を補足、又は修正するためのコマンドは、コンピュータ・マウス、グラフィックス・タブレット、又はライト・ペンによって入力される。編集処理が終了し、設計すべき対象がその最終形状となった時、プリンタ、又はプロッタによってハードコピーを作成することができる。
【0004】
市販の3D CADシステムの一例は、Hewlett−Packard Precision Engineering Solid Designer Version 2.0である。3D CADシステムに関する記述は、I.C.Braid著「Notes on a geometric modeller」(C.A.D.グループ ドキュメントNo.101、ケンブリッジ大学、1979年6月)でも知られている。他の3D CADシステムに関する記述は、I.C.Braid他の論文「Stepwise Construction of Polyhedra in Geometric Modelling」、K.W.Brodlie編「Mathematical Methods in Computer Graphics and Design」(Academic Press、1980年)で知られている。
【0005】
この間に、例えば、Hewlett−Packard社による上述のシステム等、幾何図形対象に関するUNITE、SUBTRACT、又はINTERSECTのようなブール演算を実行可能ないくつかのCADシステムが開発されている。広範で複雑な対象を作成できるように、ソリッド・モデラはブール演算を強力に支援しなければならない。しかし、既存のCADシステムは、全ての所望の幾何図形構成に対してブール演算を実行できるわけではないため、全ての点で満足できるものではない。特に、ブール演算の実行に関して、表面を浅く交差させる必要がある接線方向、又はほぼ接線方向の幾何図形は、演算を失敗させるほど大きな数値的矛盾を引き起こす。交差に関する計算のそうした誤差のために、CADシステムは、その演算を実行できないか、又は、その演算の結果得られる幾何図形対象が、理想的な状況において有するはずの形状を持たないことを示すエラー・メッセージを生成する。上述の問題は、幾何図形対象面のエッジと、その面を含む表面と他の幾何図形対象面を含む別の表面が交差する線がほぼ一致する、部分一致幾何図形の場合にも発生する。
【0006】
上述のように、ブール演算の結果として定義された立体の境界の計算には、表面/表面交差、曲線/表面交差、及び曲線/曲線交差に関するアルゴリズムが必要である。正常な境界を生成するために、これらの交差は、モデルの分解能によって決定される程度に対して一貫性のあるものでなければならない。この分解能は、モデルが「分解する」前に許容されうる許容可能な誤差(イプシロン)を指定する。例えば、曲線が、特定の表面からイプシロン以下の距離しか離れていない場合、その表面に位置するものとみなされ、イプシロンより短い距離しか相互に離れていない3つのエッジは、共通の頂点で交差するとみなされる。立体の境界(例えば、ブール演算の結果)を計算する上で重要なステップは、交差する2つの面の交差部分にある表面/表面交差トラックのセグメントを表す交差グラフを構成することである。交差グラフの構成に関して、理想的には交差トラックに一致すべき交差点が、イプシロンを超える距離だけ離れており、そのため、一貫性のある幾何図形対象を構成できず、即ち、モデルが分解することがある。
【0007】
上述の問題に対処するために、通常使用されている2つの方法がある。
1.曲線/表面交差の精度を向上させる数値的方法。このアプローチは、曲線と表面の非常に特殊な組合せにしか適用できない。対応するアルゴリズムは比較的低速であり、数値的な定義が不完全な状況では信頼できる結果が得られない。
2.曲線/表面交差の代わりに曲線/曲線交差を使用する方法。このような方法の欠点は、数値的分解能が限られており、三次元曲線が共通点で交わることが殆どないので、曲線/曲線交差が、曲線/表面交差よりも数値的な安定度が劣ることである。
【0008】
【発明が解決しようとする課題】
本発明の課題は、幾何図形対象に関するブール演算を実行する方法と、高い信頼性を有する強力な、対応するCADシステムを提供することである。
【0009】
本発明の他の課題は、ブール演算を高速かつ数値的に高い安定度で実行できるようにすることである。
【0010】
【課題を解決するための手段】
本発明によれば、これらの課題は、CADシステムにおいて幾何図形対象に関するブール演算を実行し、修正された幾何図形対象を生成する方法であって、第1の幾何図形対象面と第2の幾何図形対象面を交差させて、修正された幾何図形対象のエッジを形成するグラフ・エッジを生成し、
a)交差点を作成するために、第1の幾何図形対象のエッジを、第2の幾何図形対象面を含む表面と交差させるステップ、
b)交差トラックを作成するために、第1の幾何図形対象面を含む表面を、第2の幾何図形対象面を含む表面と交差させるステップ、
c)前記交差点と前記交差トラックの間の距離がそれぞれ、分解能の値(イプシロン)より小さいかどうかを判定するステップ、及び、
d)ステップc)で判定された距離がそれぞれ、分解能の値(イプシロン)より大きい場合、前記交差点の空間位置を訂正するステップを含むことを特徴とする前記方法と、
CADシステムであって、前記システムが、
幾何図形対象を作成し、修正するためのコマンド、及びデータを入力し、特に、幾何図形対象に関するブール演算に関係するコマンドを入力する入力手段、
前記幾何図形対象を作成し、修正するための計算を実行する処理手段、
前記幾何図形対象の表現を記憶し、対象の作成、及び修正に関係する命令を記憶するメモリ手段、及び、
前記幾何図形対象を表示し、前記幾何図形対象に関するブール演算の結果を表示する、表示手段を備え、
前記処理手段、及び前記メモリ手段が、項番1ないし6のいずれかに記載の方法を実行するように動作することを特徴とするCADシステムによって達成される。従って、本発明は、計算機援用設計(CAD)システムにおいて幾何図形対象に関するブール演算を実行し、修正された幾何図形対象を生成する方法を提供する。
この方法では、第1の幾何図形対象面と第2の幾何図形対象面を交差させ、修正された幾何図形対象のエッジを形成するグラフ・エッジを生成し、前記方法が、
a)交差点を作成するために、第1の幾何図形対象のエッジを、第2の幾何図形対象面を含む表面に交差させるステップと、
b)交差トラックを作成するために、第1の幾何図形対象面を含む表面を、第2の幾何図形対象面を含む表面に交差させるステップと、
c)前記交差点と前記交差トラックの間の距離がそれぞれ、分解能の値(イプシロン)より小さいかどうかを判定するステップと、
d)ステップc)で判定された距離がそれぞれ、分解能の値(イプシロン)より大きい場合、交差点の空間位置を訂正するステップを含む。
【0011】
本発明の基本原理によれば、曲線/表面交差点に摂動方法を適用して幾何学的矛盾を解消する。基本的に、この矛盾は、矛盾した交差点を、所望の表面/表面交差、又は、少なくとも、表面/表面交差からの距離が分解能の値(イプシロン)以下である位置に再配置することによって解決される。再配置の目標点は、曲線/曲線交差方法によって決定されうる。この交差点を再配置(摂動)することによって、追加的な誤差が生じるが、全体的な誤差が最小化され、幾何図形対象の一貫性が確立されるという効果がある。
【0012】
本発明は、任意のタイプのソリッド・モデリング方法、例えば、「境界表現(B−rep)」と呼ばれる方法と共に使用することができる。本発明の他の利点は、結果を安定させるために、例えば、交差ルーチンを含む標準幾何図形ライブラリの使用、又は交換を容易にすることである。
【0013】
以下で、本発明の実施例を、図面に関して詳細に説明する。
【0014】
【実施例】
図1は、3D CADシステムの典型的な構成要素を示す概略図である。メイン・プロセッサ1は、グラフィック・プロセッサ2を介して表示スクリーン3、例えばCRTに接続されている。設計中の幾何図形対象11は、スクリーン3上に表示される。メイン・プロセッサ1は、スクリーン3上に表示された幾何図形対象を作成し、修正するための計算を実行する。プリンタ4は、集線装置7を介してメイン・プロセッサ1に接続されている。プリンタ4は、スクリーン3上に表示されているイメージのハードコピー、又はCADシステムのデータ・メモリ5に記憶されている幾何図形対象のハードコピーを作成することができる。データ・メモリ5は、メイン・プロセッサ1に接続され、磁気ディスクや光ディスク等の大容量記憶装置から成る。プログラム・メモリ6は、設計中の幾何図形対象の作成、及び操作に使用される命令を含む。
【0015】
CADシステムとの対話のために、ユーザが使用できるいくつかの入力手段がある。図の実施例では、スクリーン3上に表示されるカーソルを制御するコンピュータ・マウス9がある。ユーザが、マウス9を適当に移動させることによって、表示されたオプションにカーソルを位置決めし、かつ活動化キーを押すことにより、所望のコマンドを選択できる、コマンド・メニューもスクリーン3上に表示される。表示されたメニュー・オプションの例は、対象に穴開け処理を施す等、スクリーン上に表示された対象へのある部分の追加、又は前記対象からのある部分の除去である。選択可能なオプションの他の例は、本発明によれば、表示されている対象に対するブール演算の実行である。コマンド、又はデータをプロセッサ1に入力するために、マウス9の他に、キーボード8も提供されている。他の入力手段は、スクリーン3上に表示された対象を様々な軸を中心に回転させ、特定の方向にそのままシフトさせるための複数のノブを備えるノブ・ボックス10である。上述の入力手段の代わりに、あるいはそれに加えて、グラフィクス・タブレット、又はライト・ペン等の代替入力手段が提供されうることが理解されよう。唯一重要なことは、入力手段によって、ユーザが、スクリーン3上に表示された幾何図形を所望の方法で操作し、特にこれらの幾何図形に関するブール演算を実行できるようになることである。
【0016】
図2は、立方体12、及び円錐13の例に関するブール演算UNITEを示す。図2の左側の部分は、UNITE演算を実行する前の立方体12、及び円錐13の2つの異なる斜視図を示し、右側の部分は、やはり2つの異なる斜視図でUNITE演算の結果を示す。図2の右側の部分に示されるUNITE演算された対象14には、最初の立方体と最初の円錐の間の共通のエッジ15、及び16、即ち交差エッジが示されている。
【0017】
図3、及び図4は、以後の説明で重要な役割を果たす用語「分解能」を例示する。分解能(イプシロン)は、幾何図形対象(例えば、点、線、面)がCADシステムによって別々の要素とみなされる前に、そのシステムによって許容される最大許容誤差である。図3は、曲線18の表面17上における包含を示す。曲線18は、表面17からある距離(イプシロン)だけ離れているように示されている。曲線と表面の間の距離は、分解能(イプシロン)以下なので、CADシステムは、曲線18が表面17に位置するとみなす。
【0018】
図4は、共通の頂点22で交差する3つのエッジ19、20、21を示す。3つのエッジが実際に共通点22で交わる理想的な状況が図の左側の部分に示されている。しかし、現実のCADシステムでは、数値的誤差、及び不安定性によって、図4の右側の部分に示したように、エッジ19’、20’、21’が交わらないことがある。誤差が、半径(イプシロン)を有する球23によって示された分解能(イプシロン)の範囲内である場合、この頂点は、依然矛盾がないものとみなされる。誤差が分解能より大きくなった場合、このモデルは「分解」し、システムは3つのエッジを共通の1つの頂点として関連付けしない。分解能は通常、CADシステムによって作成されるモデルのタイプに依存し、通常、ユーザによって調整可能である。
【0019】
本発明は、例えば、エッジが共通の頂点で正確に交わらないような矛盾を扱う。このような状況は一般に、ブール演算を実行して交差グラフを計算する時に発生する。ブール演算を実行するには、ブール演算を実行すべき幾何図形対象面が交差している必要がある。交差すべき面は表面に含まれる。交差グラフは、交差する2つの面の交差部分に位置する、こうした2つの表面の間の交差トラック(表面/表面交差トラック)のセグメントである。交差グラフの構成は、ブール演算の結果に対応した、立体の境界の計算における基本的なステップである。交差グラフの構成の信頼性は、ブール演算の成否に直接影響を及ぼす。
【0020】
図5は、交差する2つの表面sf1、及びsf2を示す。各表面はそれぞれ、面、即ち、表面内の限られた領域を備えている。表面sf1は面fa1を含み、表面sf2は面fa2を含む。表面/表面交差トラック24全体のうちの一部だけが、面fa1とfa2の交差部分に位置する。この部分が交差グラフgである。以下では、交差は記号∩でも示される。従って、交差トラック24はsf1∩sf2に対応する。
【0021】
通常、表面/表面交差トラック24全体から交差グラフgを定義するために必要な点は、面fa1の境界曲線を表面sf2と交差させ、面fa2の境界曲線を表面sf1と交差させることによって得られる。図5に示した例では、表面sf1と交差した面fa2の境界曲線aによって点25が得られ、表面sf2と交差した面fa1の境界曲線bによって点26が得られる。点25、及び26は、面fa1とfa2の交差部分にある交差グラフgを定義するために必要な定義ポイントを表す。得られたこれらの定義ポイントの精度によって、ブール演算の成否が決定される。以下で説明するように、本発明は、立体の境界の一貫性ある表現を構成できるように不正確な定義ポイントを訂正する方法を提供する。
【0022】
本発明の方法を詳細に説明する前に、数学的に正確な他の状況を図6に関して論じる。理想的には、特定の表面上の曲線と他の表面との交差は、2つの表面の交差から得られる1組の点に含まれる。図6はこの状況を示している。表面sf1上に位置する曲線cv1と表面sf2が交差する場合、2つの表面sf1とsf2の交差トラック29上にある交差点27が得られる。表面sf2上に位置する曲線cv2と表面sf1が交差する場合、やはり交差トラック29上にある交差点28が得られる。
【0023】
しかし、CADシステムで発生する実際の状況では、例えば、数値的誤差のために、曲線が正確に表面上に位置していないこともある。典型的な状況が図3に示されている。数学的に正確な状況からのこのような偏差によって、幾何図形対象にある種の矛盾が発生することがある。本発明の摂動方法は基本的に、交差点を、所望の表面/表面交差上に位置するようになるまで、曲線に沿って「移動させる」ことによって、結果として生じる様々な矛盾を訂正するものである。この移動の目標点は、表面/表面交差トラックと、交差点が交差トラックから外れている曲線との間の交差を計算する、曲線/曲線交差アルゴリズムによって見つけることができる。例えば、最短距離点の計算等、そのような曲線/曲線交差アルゴリズムは周知であり、従って、より詳細には説明しない。
【0024】
以下では、ブール演算を実行する際に、実際の状況で発生する可能性があり、本発明の摂動方法によって訂正される、様々なタイプの矛盾を、図7ないし図10に関して説明する。図7ないし図10はそれぞれ、2つの表面の交差と、表面の一方に位置する曲線を扱うものに過ぎない。所望のブール演算を完全に実行するためには、交差演算、及び図7ないし図10に示した、摂動による交差演算に続く訂正をそれぞれ、異なる曲線、及び表面に数回にわたって適用する必要があることが理解されよう(図5と比較されたい)。図7ないし図10は、ブール演算を完了させるために、幾何図形対象全体が構成されるまで適当な回数だけ繰り返す必要がある方法の、基本要素を示す。図7ないし図10は、実際のCADにおける状況で発生する幾何学的矛盾の様々な例を使用する本発明の方法の基本原理を示しているが、この方法の完全な説明は、図11、及び図12のフローチャートに関して行う。
【0025】
前述した矛盾は、2つのクラスに分割することができる。
1.接した状態、又は殆ど接した状態の表面間の交差において発生する矛盾。そのような状況では、ある表面の直角方向における小さな誤差が、その表面の方向においてより大きな誤差を引き起こす。対応する例を図7ないし図9に示す。
2.表面/表面交差トラックにほぼ一致する曲線において発生する矛盾。対応する例を図10に示す。
【0026】
第1のクラスは3つのケースに細別することができる。
a)1つの曲線/表面交差点と1つの交差トラック(図7)
b)2つの曲線/表面交差点と1つの交差トラック(図8)
c)1つの曲線/表面交差点と2つの交差トラック(図9)。
【0027】
次に、ケースa)を図7に関して説明する。説明を明確にするために、ブール演算を実行すべき幾何図形対象面が省略され、そのような面が位置する表面sf1、及びsf2だけが示されている。表面sf1、及びsf2は、殆ど接する状態にあり、わずかな角度βで相互に交差している。交差トラックは、参照符号30で示されている。CADシステムにおける数値的誤差のために、曲線31は、表面sf1に正確には位置しておらず、理想的な(数学的に正確な)状況では、曲線32(点線)によって示されると仮定される。しかし、曲線31は、表面sf1から分解能イプシロン以下の距離しか離れていないので、その表面に位置するとみなされる。曲線31が表面sf1から離れているので、曲線31の表面sf2との交差点33は、理想的な曲線32と表面sf2との交差から得られ、交差トラック30上に位置する、理想的な交差点34とは異なる。2つの表面の角度が小さい場合、即ち、前記2つの表面が殆ど接する状態の交差である場合、理想的な交差点34と実際の交差点33の間の距離dは、分解能イプシロンと比べて大きなものになり、以下の関係が成り立つ。
d = イプシロン/(sin β)。
【0028】
距離dが分解能イプシロンより大きい場合、もはや交差点33は交差トラックに割り当てられない。本発明の方法は、交差点33を矢印36の方向に、交差トラック30と曲線31の間の最短距離点35に向かって移動させることによって、この矛盾を除去する。新しい点35と交差トラック30の間の距離は分解能イプシロンを超えていないので、この時、一貫性が確立されるように点35が交差トラックに割り当てられうる。摂動された点35は、図5に関して説明したように、ブール演算を実行するために判定される必要がある交差グラフの端点を形成する。最初の交差点33を、摂動された位置35に移動することによって、追加的に誤差が発生しても、この時、新しい点35が交差トラック30に割り当てられうるので、全体的な結果は摂動の前よりも依然好ましいものである。
【0029】
図8は、上述のケースb)を示す。表面sf1と円筒状表面sf2は相互に交差している。表面sf1は、数値分解能イプシロン以下の距離だけ表面sf2を貫通している。従って、図8から明らかになるように、数学的に正確な状況では2本の交差線が存在すべき場合でも、交差アルゴリズムは1つの交差トラック38しか返さない。しかし、表面sf1上に位置する曲線37は、表面sf2との2つの異なる交差点39、及び40をもたらす。これらの点は、交差トラック38からイプシロンよりかなり多い距離だけ離れており、従って、交差トラックに割り当てられない。本発明の摂動方法は、交差トラック38からイプシロン以下の距離しか離れていない単一の点41に集約されるまで、点39を方向42に、点40を方向43に移動させることによって矛盾を除去する。従って、新しい点41が交差トラック38に割り当てられ、それによって、必要とされる一貫性が確立される。
【0030】
図9は、上述のケースc)を示す。この場合、2つの表面sf1とsf2の間の交差は、2つの異なる交差トラック44、及び45をもたらす。表面sf1上に位置する曲線46と表面sf2の間の交差は、数値分解能(イプシロン)が限られているために、1つの点47しか生じない。この矛盾を訂正するために、摂動方法は、単一の交差点47を2つの点に分割し、この2つの点を曲線46に沿ってそれぞれ矢印48、及び49の方向に、それぞれ、2つの交差トラック44、及び45に対して最短の位置50、51に移動させる。
【0031】
図10は、曲線が表面/表面交差トラックにほぼ一致する、上述の第2のクラスの矛盾を例示する。垂直な表面sf1上に定義された面54が示されている。第2の表面sf2は、交差トラック53において表面sf1と交差する。図10に示したように、面54の下部境界「エッジ2」は、表面/表面交差トラック53にほぼ一致する。面54の下部境界「エッジ2」とsf2の交差によって、1つの交差点i2のみが生じる。面54の左境界エッジ「エッジ1」は、sf2までの距離が分解能イプシロン以下なので、点i1でsf2と交差する。2つの点i1とi2はイプシロンを超える距離だけ離れているので、両方の交差点を含む頂点の作成は失敗し、交差グラフの計算は不可能となる。
【0032】
表面/表面交差トラック53が以後の点i1、及びi2で面54に入るようみなされ、それが不可能な状況であるので、この摂動アルゴリズムは矛盾を検出する。矛盾した状況において、交差トラックは、その交差トラックが他の交差点、又は交差点のクラスタにおいて面に入った後で、ある交差点(又は、イプシロン以下の距離しか離れていない交差点のクラスタ)においてのみ、面を離れることができる(例えば、図5を参照されたい)。しかし、交差トラックが、連続する2つの点で面に入ることは不可能である。図10に示した矛盾を解決するために、この摂動アルゴリズムは、点i2を交差トラック53に沿って点i1の位置に移動させ、i1とマージする。i2の移動は、矢印55によって示されている。
【0033】
以下では、図11、及び図12に示したフローチャートに関して本発明の方法を説明する。このフローチャートは、各対象から面を取り出し、それらを交差させ、両方の面の交差部分である交差トラックの1部分からグラフ・エッジを生成する、ブール演算を実行する方法を説明するものである。面/面交差の様々な組合せから生成された全てのグラフ・エッジは全体として交差グラフを形成する。この方法の第1の部分(「交差」)は実質的に、図11に示したステップに対応し、第2の部分(「グラフ・エッジ構成」)は実質的に、図12によるステップに対応する。
【0034】
交差:
フローチャートのブロック61による第1のステップで、第1の幾何図形対象、又は立体から面「面1」を取り出し、第2の立体から面「面2」を取り出す。こうした2つの立体の典型的な例を図2に示す。説明を簡単にするために、この2つの面が、図5に示した幾何学的構成に類似した幾何学的構成を有すると仮定する。
【0035】
ブロック62による次のステップで、面1が位置する表面(「表面1」)を、面2が位置する表面(「表面2」)と交差させる。ブロック63で、この2つの表面の間に交差トラックが存在するかどうかを検査する。交差がない場合、このアルゴリズムは終了する。交差がある場合、ブロック64に示したように、面1を表面2と交差させる。ブロック65に示したように、面2のエッジも表面1と交差させる。次いで、これらのエッジ/表面交差から得られる交差点が、前のステップで見つかった表面/表面交差トラックに関連付け(あるいは、「割当て」)られなければならない。この割当てが必要となるのは、交差グラフg(図5参照)と境を接する定義ポイントを見つけられるようにするためである。
【0036】
この割当ては、交差トラックに関する点のユークリッド距離を使用して、ブロック66で実行される。点からの距離が分解能イプシロン以下であるトラックが見つかった場合、その点は割当て済みとみなされる。
【0037】
図6に示したような数値的に安定した幾何学的構成では、全ての点が割り当てられる。このような場合、アルゴリズムはただちにブロック73(図12)に進む。図7、図8、及び図9に示したような接している状態、又は殆ど接している状態の構成の場合、交差点が交差トラックからイプシロンを超える距離だけ離れているので、割当ては失敗する。割当てが失敗した場合、割当てられていない点を処理するループが実施される。このループは、ブロック68ないし72から成る。
【0038】
この矛盾を解決するための第1の動作は、その矛盾をもたらしたエッジを、ブロック62から得られた全ての表面/表面交差トラックと交差させることである。見つかった交差点の数に応じて(ブロック69、又は71)、適当な摂動方法が適用される。ブロック69によって1つの曲線/曲線交差点が見つかった場合、ブロック70によって、その曲線/曲線交差点に、割当てられていない点が再配置(摂動)される。摂動後、アルゴリズムは次の点の処理に戻る。
【0039】
前述の処理ステップを図7、及び図8に示す。図7で、点33は、交差トラック30からイプシロンを超える距離だけ離れているので、割当てられていない。従って、交差トラック30と曲線31の(分解能イプシロンの範囲内の)交差に対応する点35に、点33が再配置される。図8では、点39、及び40は割当てられていない。従って、曲線37と交差トラック38の(分解能イプシロンの範囲内の)交差に対応する点41に、点39及、び点40が再配置される。
【0040】
ブロック71によって、複数の曲線/曲線交差が見つかった場合、割当てられていない点がn回だけ複写される。ここで、nは、見つかった曲線/曲線交差点の数である。次いで、複写された各点が1つの曲線/曲線交差点に再配置(摂動)される。この状況を図9に示す。点47は、2つの交差トラック44、及び45からイプシロンを超える距離だけ離れているので、割当てがなされていない。次いで、点47が2つの点に分割され、それらの点が、それぞれ曲線46と交差トラック44、及び45との交差に対応する点50、及び点51に移動される。次いで、ブロック67に従って、次の割当てられていない点が処理される。
【0041】
グラフ・エッジ構成:
割当てられていないエッジ/表面交差点を摂動した後、グラフ・エッジが作成される。これを行うには、各表面/表面交差トラックと、その交差トラックに割り当てられているエッジ/表面交差点が取り出され、それらの点がパラメータの昇順に順序付けられる(ブロック73)。現在の分解能(イプシロン)で区別できない交差点が共通のクラスタに入れられる。クラスタは、それに属する点を、単一点のように表す構造である。次いで、アルゴリズムは、表面/表面交差トラックに沿って進み、クラスタを越えるたびに、いわゆる面接近値を算出する。面接近値は記号値であり、交差トラックがそのクラスタで面に入ったか、面から離れたか、あるいは面に接触したかを示すものである。
【0042】
ブロック74によって、第1の面接近値が各交差トラックごとにUNKNOWNに初期設定される。次いで、ブロック75で、クラスタに属していない(パラメータ順で)最下位に割当てられた点と、分解能イプシロンより近い、前記点に続く全ての点から点クラスタが構成される。次いで、ブロック76で、両方の面に関するその点クラスタでの面接近値を決定する。同じ面に関して同じ接近値が2度検出された場合(ブロック77)、図10のような幾何学的構成となる。図10では、2つの交差点i1とi2が、エッジ2の交差が浅いために一致しない。接近値が等しい時の幾何図形の解釈は、交差トラックが、そのトラック上の連続する点で、面に入り、あるいは面から離れたということである。これは、ある面に入ったトラックが、その面を離れない限り、再びその面に入ることができないので、矛盾した状況である。この矛盾を意味のある状況にするには、図10中の点i2が頂点vxと同じクラスタに属するように、点i2を交差トラック53に沿って点i1に再配置(摂動)する。このクラスタは次に、固有の面接近値を生成する。
【0043】
ブロック79における検査によって、交差トラックに割り当てられた全ての点に関して、点クラスタの形成と矛盾の解決が確実に行われる。次に、ブロック80によって、交差している面の交差部分にある、交差トラックのセグメントからグラフ・エッジが構成される。この結果は、図5に示したエッジgに類似のグラフ・エッジである。
【0044】
最後に、ブロック81によって、全ての表面/表面交差トラックが確実に処理される。追加面が相互に交差するブール演算を実行する必要がある場合、これらの面に対して上述の処理を繰り返し、追加のグラフ・エッジを作成する。これらのグラフ・エッジ全てと、ブール演算が実行されるべき最初の幾何図形対象の交差のない部分から、演算の結果が構成され、CADシステムの表示手段上に表示されうる。
【0045】
上記で示された例は、説明を容易にするために簡略化されている。しかし、表面形状、及び曲線形状がいかなる点においても制限されるものではないことが理解されよう。本発明の摂動方法は、CADシステムが支援する全ての幾何図形に適用可能である。
【0046】
以下に本発明の実施態様を列挙する。
【0047】
1. CADシステムにおいて幾何図形対象に関するブール演算を実行し、修正された幾何図形対象を生成する方法であって、第1の幾何図形対象面と第2の幾何図形対象面を交差させて、修正された幾何図形対象のエッジを形成するグラフ・エッジを生成し、
a)交差点を作成するために、第1の幾何図形対象のエッジを、第2の幾何図形対象面を含む表面と交差させるステップ、
b)交差トラックを作成するために、第1の幾何図形対象面を含む表面を、第2の幾何図形対象面を含む表面と交差させるステップ、
c)前記交差点と前記交差トラックの間の距離がそれぞれ、分解能の値(イプシロン)より小さいかどうかを判定するステップ、及び、
d)ステップc)で判定された距離がそれぞれ、分解能の値(イプシロン)より大きい場合、前記交差点の空間位置を訂正するステップを含むことを特徴とする前記方法。
【0048】
2. ステップd)が、
前記交差点をそれぞれ、前記第1の幾何図形対象の前記エッジに沿って、前記交差トラックへの距離が最小となる位置に移動させるステップを含むことを特徴とする、項番1に記載の方法。
【0049】
3. ステップd)が、
前記エッジと前記交差トラックの交差によって1つの交差点しか得られない場合、前記エッジと、前記第2の幾何図形対象面を含む前記表面との交差によって得られた2つの交差点を、単一の訂正された交差点にマージするステップを含むことを特徴とする、項番1に記載の方法。
【0050】
4. ステップd)が、
前記エッジと前記交差トラックの交差によってn個の交差点が得られた場合、前記エッジと、前記第2の幾何図形対象面を含む前記表面との交差によって得られる交差点を、訂正されたn個の交差点に分割するステップを含むことを特徴とする、項番1に記載の方法。
【0051】
5. e)前記第1の前記対象面と前記交差トラックの間の交差点が順序付けられ、
f)ステップe)で定義された順序で、交差トラックに沿って進む際に、前記面が入れられるか、あるいは離されるかを記述する面接近値が、各交差点に関連付けられ、
g)交差点に関連する面接近値が、ステップe)で定義された順序で、前記交差点より前に発生する交差点に関連する面接近値と同じである場合、交差点の位置が訂正されることを特徴とする、項番1ないし4のいずれかに記載の方法。
【0052】
6. 相互の距離が分解能の値(イプシロン)より短い複数の交差点が、単一交差点とみなされる1クラスタに結合されることを特徴とする、項番5に記載の方法。
【0053】
7. CADシステムであって、前記システムが、
幾何図形対象を作成し、修正するためのコマンド、及びデータを入力し、特に、幾何図形対象に関するブール演算に関係するコマンドを入力する入力手段、
前記幾何図形対象を作成し、修正するための計算を実行する処理手段、
前記幾何図形対象の表現を記憶し、対象の作成、及び修正に関係する命令を記憶するメモリ手段、及び、
前記幾何図形対象を表示し、前記幾何図形対象に関するブール演算の結果を表示する、表示手段を備え、
前記処理手段、及び前記メモリ手段が、項番1ないし6のいずれかに記載の方法を実行するように動作することを特徴とするシステム。
【0054】
【発明の効果】
本発明によって、幾何図形対象に関するブール演算を実行する方法と、高い信頼性を有する強力なCADシステムが提供され、ブール演算が高速かつ数値的に高い安定度で実行される。
【図面の簡単な説明】
【図1】本発明を組み込んだ3D CADシステムの構成要素を概略的に示す図である。
【図2】CADシステムにおけるブール演算を示す図である。
【図3】CADシステムにおける分解能を例示するための例を示す図である。
【図4】分解能を例示するための他の例を示す図である。
【図5】ブール演算を実行するための面の交差を示す図である。
【図6】理想的な状況における異なる交差の相互の包含を示す図である。
【図7】実際の状況における交差に関する第1の例と、本発明によって、結果的に生じる誤差を訂正する方法を示す図である。
【図8】本発明による誤差訂正を含む、実際の状況における交差に関する第2の例を示す図である。
【図9】本発明による誤差訂正を含む、実際の状況における交差に関する第3の例を示す図である。
【図10】本発明による誤差訂正を含む、実際の状況における交差に関する第4の例を示す図である。
【図11】本発明の一実施例を記述するフローチャートである。
【図12】本発明の一実施例を記述するフローチャートである。
【符号の説明】
1 メイン・プロセッサ
2 グラフィック・プロセッサ
3 表示スクリーン
5 データ・メモリ
6 プログラム・メモリ
7 集線装置
8 キーボード
9 マウス
30,38,44,45,53 交差トラック
31,37,46 曲線
33,39,40,41,47,50,51,i1,i2 交差点
54,fa1,fa2 面
sf1,sf2 表面
g 交差グラフ
Claims (7)
- CADシステムにおいて幾何図形対象(12,13)に関するブール演算を実行し、修正された幾何図形対象(14)を生成する方法であって、
a) 記憶手段に格納された第1の幾何図形対象および第2の幾何図形対象に関するデータに基づき、第1の幾何図形対象および第2の幾何図形対象を表示手段上に表示するステップと、
b) 入力手段を通して入力された前記第1の幾何図形対象の面 (fa1) と前記第2の幾何図形対象の面 (fa2) を交差させるコマンドに応じて、修正された幾何図形対象のエッジを形成するグラフ・エッジ (g) を処理手段によって計算するステップと、
からなり、
前記ステップ b は、
b1)前記第1の幾何図形対象のエッジ(31)を前記第2の幾何図形対象の面を含む表面(sf2)と交差させ、交差点 (33) を形成するステップと、
b2)前記第1の幾何図形対象の面を含む表面(sf1)を前記第2の幾何図形対象の面を含む表面(sf2)と交差させ、交差トラック (30) を形成するステップと、
b3)前記交差点(33)と前記交差トラック(30)の間の距離がそれぞれ、分解能の値(イプシロン)より小さいかどうかを判定するステップと、
b4)ステップb3で判定された距離がそれぞれ、前記分解能の値(イプシロン)より大きい場合、前記交差点(33)の空間位置を訂正するステップと、から成る方法。 - ステップb4 は、前記交差点(33)をそれぞれ、前記第1の幾何図形対象の前記エッジ(31)に沿って、前記交差トラック(30)への距離が最小となる位置に移動させることを含む、請求項1の方法。
- ステップb4 は、ステップ b1 で2つの前記交差点 (39,40) が生成され、ステップ b2 で1本の交差トラック (38) が生成された場合、前記エッジ(37)と、前記第2の幾何図形対象の面を含む前記表面(sf2)との交差によって得られた2つの交差点(39,40)を、単一の訂正された交差点(41)にマージすることを含む、請求項1の方法。
- ステップb4 は、ステップ b1 で1つの前記交差点 (47) が生成され、ステップ b2 でn本の前記交差トラック (50,51) が生成された場合、前記エッジ(46)と、前記第2の幾何図形対象の面を含む前記表面(sf2)との交差によって得られる交差点(47)を、訂正されたn個の交差点(50,51)に分割することを含む、請求項1の方法。
- ステップ b は、
b5)前記第1の対象の前記面(54)と前記交差トラック(53)の間の交差点(i1,i2)が順序付けられるステップと、
b6)ステップb5で定義される順序で交差トラック(53)に沿って各交差点 (i1,i2) を進む際に、各交差点 (i1,i2) に対し、前記面(54)が入れられるか、あるいは離されるかを表す面接近値を関連付けるステップと、
b7)ある交差点(i2)に関連付けられた面接近値が、ステップb5で定義した順序において1つ前の交差点(i1)に関係付けされる面接近値と等しいとき、この交差点(i2)の位置を訂正するステップと、
をさらに含む、請求項1〜4のいずれか一項に記載の方法。 - 互いに分解能の値(イプシロン)より接近している複数の交差点が、単一の交差点として扱うためのクラスタに結合される、請求項5の方法。
- 幾何図形対象(11,12,13)を作成し、修正するためのコマンド、及びデータを入力するための入力手段 (7,8,9,10)と、
前記幾何図形対象(11,12,13)を作成し、修正するための計算を実行する処理手段(1,2)と、
前記幾何図形対象の表現を記憶し、対象の作成及び修正に関係する命令を記憶する記憶手段(5,6)と、
前記幾何図形対象(11,12,13)を表示し、前記幾何図形対象に対するブール演算の結果を表示する表示手段(3)とから成り、
前記処理手段(1,2)と前記記憶手段(5,6)は、第1の幾何対象物のエッジを第2の幾何対象物の面を含む表面と交差させて交差点を生成し、前記第1の幾何対象物の面を含む表面を前記第2の幾何対象物の面を含む表面と交差させて交差トラックを生成し、前記交差点と前記交差トラックとの間の距離がそれぞれ分解能の値(イプシロン)よりも小さいか否かを判定し、判定された距離が前記分解能の値(イプシロン)よりも大きかった場合前記交差点の空間位置を訂正することから成る方法を実施する、 CAD システム。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
EP94106673A EP0681243B1 (en) | 1994-04-28 | 1994-04-28 | Method for performing boolean operations on geometric objects in a computer-aided design system |
DE94106673.0 | 1994-04-28 |
Publications (2)
Publication Number | Publication Date |
---|---|
JPH07306888A JPH07306888A (ja) | 1995-11-21 |
JP3567015B2 true JP3567015B2 (ja) | 2004-09-15 |
Family
ID=8215898
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP09926595A Expired - Lifetime JP3567015B2 (ja) | 1994-04-28 | 1995-04-25 | Cadシステムにおいて幾何図形対象に関するブール演算を実行するための方法 |
Country Status (4)
Country | Link |
---|---|
US (1) | US5649084A (ja) |
EP (1) | EP0681243B1 (ja) |
JP (1) | JP3567015B2 (ja) |
DE (1) | DE69414996T2 (ja) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2022107988A1 (ko) * | 2020-11-20 | 2022-05-27 | 이마고웍스 주식회사 | 가상 브릿지 기반의 다중 집합 연산을 통한 디지털 덴티스트리용 3차원 모델 생성 방법 |
Families Citing this family (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
DE69625484T2 (de) * | 1996-10-17 | 2003-10-30 | Cocreate Software Gmbh & Co. Kg | Verbesserte Objektmodellerzeugung |
US7426455B1 (en) * | 1999-09-13 | 2008-09-16 | Science Applications International Corporation | Optimal boolean set operation generation among polygon-represented regions |
US6654011B1 (en) * | 1999-10-08 | 2003-11-25 | Dassault Systemes | Trim operation based on enhanced face definition |
US7330771B2 (en) * | 2002-09-23 | 2008-02-12 | Autodesk, Inc. | Operator for embossing and engraving profiles in a solid body modeling system |
US7031790B2 (en) * | 2002-09-23 | 2006-04-18 | Autodesk, Inc. | Operator for sculpting solids with sheet bodies |
US20040073148A1 (en) * | 2002-10-11 | 2004-04-15 | Urban Wayne M. | Leg sling |
US7653518B2 (en) | 2005-03-14 | 2010-01-26 | Autodesk, Inc. | System and method for generating matched contour profiles |
US20060267975A1 (en) * | 2005-03-16 | 2006-11-30 | Gemological Institute Of America (Gia) | System and method for generating a gemstone proportion graphic |
US8207990B1 (en) * | 2008-01-04 | 2012-06-26 | Spaceclaim Corporation, Inc. | Systems and methods for merging and splitting intersecting solids and surfaces |
EP2189918A1 (en) | 2008-11-07 | 2010-05-26 | Dassault Systèmes | Computer-implemented method of computing, in a computer aided design system, of a boundary of a modeled object. |
CN104134236B (zh) * | 2014-07-30 | 2017-01-18 | 西安电子科技大学 | 一种三维平面实体的布尔运算方法 |
CN105809735A (zh) * | 2016-03-11 | 2016-07-27 | 武汉大学 | 一种基于三维几何体合并的拓扑维护方法 |
US11900537B2 (en) * | 2020-05-25 | 2024-02-13 | Technologies Shapeshift 3D Inc. | Method and device for constraining shape deformation of 3D objects |
CN113219529B (zh) * | 2021-04-30 | 2022-06-14 | 电子科技大学 | 边界约束的三维构造地质模型构建方法 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP3137245B2 (ja) * | 1991-10-30 | 2001-02-19 | ソニー株式会社 | 自由曲線作成方法及び自由曲面作成方法 |
-
1994
- 1994-04-28 DE DE69414996T patent/DE69414996T2/de not_active Expired - Lifetime
- 1994-04-28 EP EP94106673A patent/EP0681243B1/en not_active Expired - Lifetime
-
1995
- 1995-01-25 US US08/377,852 patent/US5649084A/en not_active Expired - Lifetime
- 1995-04-25 JP JP09926595A patent/JP3567015B2/ja not_active Expired - Lifetime
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2022107988A1 (ko) * | 2020-11-20 | 2022-05-27 | 이마고웍스 주식회사 | 가상 브릿지 기반의 다중 집합 연산을 통한 디지털 덴티스트리용 3차원 모델 생성 방법 |
Also Published As
Publication number | Publication date |
---|---|
US5649084A (en) | 1997-07-15 |
EP0681243B1 (en) | 1998-12-02 |
DE69414996D1 (de) | 1999-01-14 |
EP0681243A1 (en) | 1995-11-08 |
JPH07306888A (ja) | 1995-11-21 |
DE69414996T2 (de) | 1999-04-15 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP3567015B2 (ja) | Cadシステムにおいて幾何図形対象に関するブール演算を実行するための方法 | |
EP0248919B1 (en) | Method for generating representations of 3-dimensional objects and system performing this method | |
EP1710720B1 (en) | Method of computer-aided design of a modeled object having several faces | |
JP6787661B2 (ja) | 工作物の機械加工のシミュレート | |
US7492364B2 (en) | System and method for creating and updating a three-dimensional model and creating a related neutral file format | |
JPH0789382B2 (ja) | 形状モデルを生成する方法及び装置 | |
JPH0883296A (ja) | 三次元形状作成方法及びその装置 | |
GB2190268A (en) | C.a.d. | |
US5734383A (en) | Apparatus and method for generating a three-dimensional model on a graphic display from a two-dimensional image | |
KR20140139984A (ko) | 3d 모델링된 오브젝트의 압축 및 압축해제 | |
US5341461A (en) | Method of rendering a two dimensional drawing into a three dimensional drawing, using a CAD program | |
CN103049592A (zh) | 拟真式空间变化 | |
CN105760570A (zh) | 选择对象集的视点 | |
CA2667334A1 (en) | Method and devices for aiding in the modeling of 3d objects | |
US5649081A (en) | Method and apparatus for pattern data processing | |
JPH04679A (ja) | 座標格子作成支援方法及びその装置 | |
JPH08255173A (ja) | クラスタリング装置 | |
Rose et al. | Intuitive and interactive modification of large finite element models | |
JP2755398B2 (ja) | ソリッドモデルに対する点の内外判定処理方法 | |
JP2001092805A (ja) | 解析メッシュ生成装置、方法及び記憶媒体 | |
JP3305395B2 (ja) | 図形分割装置 | |
JPH05134729A (ja) | Cad/camにおける三次元像への寸法及び部品番 号の表示システム | |
JPH02186482A (ja) | 図形モデル生成方法およびシステム | |
JPH0749965A (ja) | 形状作成支援方法及びその装置 | |
JPH07271998A (ja) | 立体表示方法および装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20040407 |
|
TRDD | Decision of grant or rejection written | ||
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20040601 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20040614 |
|
R150 | Certificate of patent or registration of utility model |
Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20080618 Year of fee payment: 4 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20090618 Year of fee payment: 5 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20100618 Year of fee payment: 6 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20100618 Year of fee payment: 6 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20110618 Year of fee payment: 7 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20120618 Year of fee payment: 8 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20130618 Year of fee payment: 9 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
EXPY | Cancellation because of completion of term |