JPH10134209A - ソリッドモデルに融合または面取り表面を組み込む方法 - Google Patents

ソリッドモデルに融合または面取り表面を組み込む方法

Info

Publication number
JPH10134209A
JPH10134209A JP9285131A JP28513197A JPH10134209A JP H10134209 A JPH10134209 A JP H10134209A JP 9285131 A JP9285131 A JP 9285131A JP 28513197 A JP28513197 A JP 28513197A JP H10134209 A JPH10134209 A JP H10134209A
Authority
JP
Japan
Prior art keywords
edge
solid
edges
new
fusion
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.)
Granted
Application number
JP9285131A
Other languages
English (en)
Other versions
JP3955368B2 (ja
Inventor
Karsten Opitz
カーステン・オピッズ
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
HP Inc
Original Assignee
Hewlett Packard Co
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Hewlett Packard Co filed Critical Hewlett Packard Co
Publication of JPH10134209A publication Critical patent/JPH10134209A/ja
Application granted granted Critical
Publication of JP3955368B2 publication Critical patent/JP3955368B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T17/00Three dimensional [3D] modelling, e.g. data description of 3D objects
    • G06T17/10Constructive 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)

Abstract

(57)【要約】 【課題】 CADシステムで融合または面取り表面を組
み込むとき、トポロジーが収縮する、成長する、消滅す
るケースを確実に処理することができる方法を提供す
る。 【解決手段】エッジと置き換わる融合または面取り表面
を幾何学的に生成する。この表面と立体の間の境界線を
計算し、それをトリムする。エッジに隣接する複数のエ
ッジを除去する必要があれば除去する。この時立体は、
幾何学的に矛盾する状態に置かれる。除去されるエッジ
の頂点の周りで立体が矛盾するか調べられ、矛盾すれ
ば、そのトポロジーをトリムする。幾何学的に矛盾しな
い状態を実現するために、一次のギャップを集める。処
理される各々のギャップについてトリミング・パスを計
算する。計算されたトリミングパスは、モデルに組み込
まれ、起こりうる新しいギャップをギャップのリストに
追加する。立体の全てのギャップについて処理が行われ
る。

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】この発明は、コンピュータ支
援の設計システム(CADシステム)で、幾何学的立体のエ
ッジと置き換わる融合(blend;ブレンド)または面取り表
面を、立体のソリッドモデルに組み込む方法に関する。
例えば機械部品のような物理的な物体の設計では、多く
の場合物体のエッジを融合したり、面取りする必要があ
る。この発明は、物理的な物体のグラフィック表現を格
納し、それを3次元的に等角図で表示することができ、
ユーザーがこの表現を対話的に修正することができる3D
-CADシステムで、融合するまたは面取りする操作の実行
に関する。
【0002】
【従来の技術】CADシステムは、機械部品、電子部品ま
たは他の物体の設計に広く使われており、そのタイプの
システムはいくつか市販されている。これらの全部のシ
ステムの共通の特徴は、ユーザが物体を対話的なモード
で設計することである。すなわち、立体(body)は、それ
がユーザーによって設計される限り画面上に表示され、
ユーザーは、すでに存在する構造に修正および/または
追加を適用するコマンドを入力することができる。
【0003】設計中の幾何学的物体を表示するため、典
型的に陰極線管(CRT)または液晶ディスプレイ(LCD)が使
用される。物体は等角図で表示される。また、表示され
る物体は、コンピュータ生成される光源によって照らさ
れ、現実的な3次元画像をもたらす。補足または修正の
コマンドは、好ましくはコンピュータ・マウス、グラフ
ィック・タブレットまたはライトペンのような適当な入
力手段によって入力される。画面上の遠近法表現に代わ
って、設計中の物体の2次元または断面図を表示するこ
ともできる。ユーザがいくつかの方向から物体を見るこ
とができるように、いくつかの既知のCADシステムは、
置きかえられた物体を異なった軸のまわりで回転させる
ことができる。編集プロセスが終了し、設計される物体
がその最終的な形状を呈したとき、対応するハードコピ
ーをプリンタまたはプロッタによって作り出すことがで
きる。さらに物体を表すデータから、穿孔テープや磁気
テープを作り出すこともでき、このテープは、所望の物
理的な物体を製作するため、数値で制御される機械工具
によって直接使用することができる。
【0004】市販の3D-CADシステムの例として、境界表
面を通して間接的にソリッドモデルを表すいわゆる「境
界表現」モデラー(B-repモデラー)の類に属するヒュー
レット・パッカード社のプレシジョン・エンジニアリン
グ・ソリッド・デザイナー(precision engineering sol
id designer)4.0がある。幾何学的情報に加えて、B-rep
モデラーは、幾何学的実体間の隣接関係を説明するさら
なるトポロジー的情報(topological information)を格
納する。最も一般的に使用されるモデラーの他の類は、
簡単な幾何学的物体に適用される結合または交差のよう
な一連の基本操作の結果としてソリッドモデルを表現す
る「構造的ソリッド幾何形態の手法(constructive soli
d geometric approach)」(CSG手法)に基づいている。特
にB-repモデル上の表現形式に関するより詳細な記述
は、Mantyla M.の「An introduction to solid modelli
ng」(Computer Science Press、Rockville 1988)で見る
ことができる。
【0005】B-rep方式の主な利点は、それがモデルの
局所的な修正、特にエッジを融合させるまたは面取りす
るプロセスにかなり適しているという事実である。この
場合、ソリッドモデルの鋭いエッジは、複数の隣接する
面を、滑らかに(融合)または平らに(面取り)接続する表
面と置き換えられる。両方の操作、特にエッジの融合
は、ストレス状態を分散し、流体フロー特性を高めるこ
とを含む、機械設計の中のいくつかの目的にかなう。従
って融合操作の信頼性は、多くの場合、3D-CADシステム
における全体の設計の完了のために極めて重要である。
【0006】以下に、いくつかのタイプの融合および面
取り操作を、図25および図26を参照してより詳しく記述
する。
【0007】図25aは、物体2000の形状を規定する複数
の面2002、2004、2006を含む幾何学的物体2000を等角図
で示している。物体2000のそれぞれの面2002ないし2006
の間には、エッジ2008ないし2024が形成される。以下
で、物体2000の1つのエッジが融合される。図25を参照
して記述される例で、融合されるエッジは、エッジ2008
である。
【0008】物体2000の面2002および面2004の間の融合
表面を生成するのに使用されるいくつかの手法がある。
ここで、可能な手法のうちの2つが、図25bおよび図25c
を参照してより詳細に記述される。図25bには、図25aに
示される物体にいわゆる「一定半径の回転ボール融合」
操作を適用した後の結果の物体2000が示される。分かり
やすいように、物体の中の変更されないエッジを定義す
る参照符号は省略する。図25bから理解できるように、
元のエッジ2008は、融合表面2026を面2002に接続する第
1の新しいエッジ2028と、融合表面2026を面2004に接続
する第2の新しいエッジ2030をもつ融合表面2026と置き
替えられる。さらに、融合表面2026は、2つの丸められ
たエッジ2032および2034を含む。図25bに示されるよう
に、面2002および面2004の表面面積は、これらの面の図
25aに示される元の表面面積と比較すると小さい。言い
換えると、面2002から2006は縮む。
【0009】融合表面2026は、ボールが元のエッジ2008
に沿って隣接する面2002および2004と接触しながら動く
ことによって生成されると考えることができる。ボール
が隣接する面2002および2004と接触する線は、図25bに
示されるように第1および第2の新しいエッジ2028およ
び2030を規定する。
【0010】図25cを参照すると、融合表面を生成する
ための更なる手法がより詳細に表されている。図25cに
示される融合表面2036は、物体に、いわゆる「可変半径
の回転ボール融合」操作を適用することによって生成さ
れる。新しい第1および新しい第2のエッジ2028および
2030の間の距離が一定である図25bとは違って、図25cで
は、融合表面2036のそれぞれの新しく形成されたエッジ
2038および2040の間の距離は、図25cの左から右へと成
長する。融合表面2036は、さらにエッジ2042および2044
を含む。これらのエッジ2042および2044は同じ長さでは
ない。
【0011】図25cに示される融合表面2036は、ボール
が、元のエッジ2008に沿って隣接する面2002および2004
に接触しながら移動し、エッジ2008に沿って移動する間
にボールの半径が徐々に変えられることによって生成さ
れる考えられる。言い換えると、図25cは、図25bを参照
して記述された基本の回転ボール融合操作の一般化を説
明する。
【0012】図26を参照して、幾何学的物体の隣接する
面の間に面取り表面を生成する異なった手法をより詳し
く記述する。図26aには、元の物体が等角図で示されて
いる。図26aに示される物体は、図25aに示されるものと
同一である。従って、図26aに示される物体の説明は省
略する。図26には、図25と同一の参照符号が使用されて
いる点に注意する。
【0013】図26bに、「一定距離の面取り」操作を図2
6aに示される立体に適用した後の結果の立体が示されて
いる。この操作を元の物体2000に適用することにより、
面2002および2004の間に面取り表面2102が生成される。
面取り表面は、第1の新しいエッジ2104および第2の新
しいエッジ2106、そしてエッジ2108および2110によって
境界を示される。面2102と図25bの面2026の間の違い
は、面2002および2004が平坦な表面2102によって接続さ
れるということである。このことは、図25bに示される
ような丸められた線ではなく、直線であるエッジ2108お
よび2110から明らかである。言い換えると、図26aに示
される元の立体2000のエッジ2008は、元のエッジ2008と
同じ距離を持つ2本の曲線を接続する平面2102と置き換
えられ、上記2本の曲線は、新しいエッジ2104および21
06になる。図26bに示される例で、面取り表面2102は、
一定の角度で元の面2008に適用されるのではない点に注
意する。これは、元の面2002と2004の間のエッジ2108の
角度が、面2002と2004の間の新しいエッジ2110の角度と
は異なることを意味する。
【0014】図26cを参照して、「一定の距離/角度の面
取り」操作を図26aの立体に適用した結果として達成さ
れる物体を説明する。元のエッジ2008は、第1の新しい
エッジ2116および第2の新しいエッジ2114によって境界
を示される面取り表面2112と置き換えられる。さらに面
取り表面は、エッジ2118および2120を含む。図26bに示
される立体と比較したときの違いは、両方のエッジ2108
および2120が、面2002および2004の間で同じ角度を定め
ていることである。言い換えると、隣接する面2002およ
び2004上の曲線2114および2116によって境界を示される
面取り表面2112は、元のエッジ2008から一定の距離をも
ち、元のエッジ2008によって規定される曲線に沿って、
固定される角度で面2102を切断する。
【0015】立体または幾何学的物体のエッジの融合ま
たは面取りは、本質的に図27および図28を参照して後述
される2つの主要なステップから構成される。これらの
2つの図は、融合表面の生成の2つの例を含む。
【0016】図27aには、元の物体2200が示されてい
る。この物体は、複数の面F1からF5を含み、それぞれの
面の間の交わりは、複数のエッジe1およびe12を規定す
る。図27を参照して記述される例で、融合されるエッジ
は、面F1およびF5を接続するエッジe12である。
【0017】第1のステップは、図27bを参照して記述
され、融合表面の幾何学的形態の作成を含む。融合表面
Fの表面の幾何学的形態を生成するステップは、表面Fの
幾何学的パラメータの決定を含む。図27bから理解でき
るように、融合表面Fは、第1のエッジE14、第2のエッ
ジE15、第3のエッジE16および第4のエッジE17を含
む。エッジE16およびE17hは丸められており、融合表面F
の凸状を規定することに注意する。さらに融合表面Fの
表面の幾何学的形態の作成は、融合表面Fが元の立体220
0の元の面と交わる位置の決定を含む。図27bで、既存の
面F1およびF5とのそれぞれの交わりは、融合表面Fのエ
ッジe14およびe15の一部分によって形成され、元の面F
2、F3およびF4との交わりは、参照符号e18、e19およびe
20によって示される。
【0018】図27cには、エッジe12を融合するための第
2の主要なステップである、表面の幾何的学的形態のソ
リッドモデルへの組み込みの結果として達成される物体
を示す。表面の幾何学的形態のソリッドモデルへの組み
込みによって、元のエッジe12は、エッジe14'、e15'、e
16'、e18、e19およびe20によって境界を示される融合表
面Fと置き換えられる。立体2200の面は、図27aと比較す
ると小さく、参照符号F1'、F2'、F3'、F4'、F5'によっ
て示される。このように、融合表面の物体2000への組み
込みは、結果として面を縮ませることになる。
【0019】図28を参照して、融合表面の作成の更なる
例を記述する。図28aに、全体的な物体2300を示す。こ
の物体2300は、複数の面F1、F2、F3、F4、F5およびF6を
含む。それぞれの面の交わりに、それぞれのエッジe1、
e2、e3、e4、e5、e6、e7、e8、e9、e10、e11、e12、e1
3、e14、e15およびe16が規定される。
【0020】図28に示される例に従う融合されるエッジ
は、元の面F5およびF6の間のエッジe15である。図27bを
参照してすでに述べたように、主要な第1のステップの
中で、融合表面Fの表面の幾何学的形態が、図28bに示さ
れるように生成される。分かりやすいように、融合操作
に影響されないエッジを示す参照符号は省略されてい
る。融合表面Fは、4つのエッジe17ないしe20を含み、
そこでエッジe19およびe20は丸められているので、表面
Fの凸状を規定する。
【0021】図28cに、融合表面がソリッドモデルに組
み込まれた後の物体を示す。理解できるように、元の面
F2およびF4は変えられないままであるが、元の面F1、F
3、F5およびF6は変えられており、それらはアポストロ
フィーを使用して示される。面F1'およびF3'は成長する
一方、面F6'およびF7'は縮む。
【0022】幾何学的形態の作成の数学はよく理解され
ており、融合表面特に回転ボールの融合について、表面
の幾何学的形態の作成および近似に関する莫大な量の文
献が存在することを述べておく。立体のエッジを融合す
るまたは面取りするための上述の主要な2つのステップ
は、Vida J.、Martin R.R.およびVardy T.の「A survey
of blending methods that use parametric surface
s」(Computer Design、VoIume 5、No5、1994、ページ34
1-355)、およびWoodwark J.P.の「Blends in geometric
al modelling」(The mathematics of surface II、Mart
in R.R.(ed.) Oxford University Press、1987、ページ
255-297)により詳しく記述されている。
【0023】融合または面取り表面をソリッドモデルに
組み込む問題は、まだ確実には(reliably)解決されてい
ない。問題は、製造可能な物体である有効な多様体ソリ
ッドを生むようにモデルの幾何学的形態およびトポロジ
ーを調整することから成る。このプロセスは、元の立体
のエッジおよび面のような既存のトポロジー的要素を除
去し、新しいものを生成することを含みうる。
【0024】既知の方法は、トポロジーが新しい面によ
って「のみこまれる(swallowed)」という第1のタイプ
の問題を処理する。この既知の方法の本質的な特徴は、
隣接するトポロジー的要素が常に縮む状況を処理できる
ことであり、それは、元のエッジや面の一部が新しい面
によって「切り取られる」ことを意味する。この点に関
して、この既知の方法は、表面を組み込む問題を確実に
解決する。しかしこの既知の方法は、既存のエッジまた
は面が成長する状況を処理することができない。有効な
解決法を提供するため、いくつかの既存のトポロジー的
要素が「成長する」必要がある場合によくあることだ
が、多くの実際的な状況で、縮む要素しか処理できない
というのは全く十分ではない。この可能性は、元の立体
の中で完全に離れていたトポロジーを接続し、それらの
間にエッジや頂点のような新しい要素を生成することを
含む。この状況は、特に頂点で出会ういくつかのエッジ
が同時に融合されようとするときに生じ、そして新しい
融合面はどれもが成長する。
【0025】
【発明が解決しようとする課題】縮むトポロジーの場
合、結果の立体は、単に既存の要素との交わりから組み
立てることができる。成長するトポロジーの問題は、幾
何学的形態およびトポロジーの間の依存により、本質的
に一層複雑である。すなわち、組み込まれる幾何学的形
態に依存して、面のような元々ばらばらである要素が結
合されなければならなかったり、エッジのような新しい
ものが生成されなければならない。現在のCADシステム
は、この問題を満足に解決することができない。成長す
るトポロジーのある特別なケースは実現されるが、より
複雑なものは、確実には処理されない。これは、完全な
融合操作または面取り操作の失敗を引き起こしたり、機
械で実際に製造できない立体の作成をもたらす。
【0026】
【課題を解決するための手段】この発明の目的は、融合
または面取り表面の組み込みによってトポロジーが成長
するケースを確実に処理する、融合および面取り表面を
組み込む方法を提供することである。
【0027】この目的は、請求項1に従う方法によって
解決される。
【0028】この発明は、幾何学的立体のエッジと置き
換わる融合または面取り表面を、立体のソリッドモデル
に組み込む方法であって、 a)一次の融合または面取り表面を規定するステップと、 b)上記一次の表面および上記立体の間の一次の境界線を
計算するステップと、 c)上記一次の境界線をトリムするステップと、 d)置き換えられるエッジに隣接する複数のエッジが廃退
すると判断される場合、上記複数のエッジを除去し、上
記立体を幾何学的に矛盾する状態におくステップと、 e)除去されるエッジの代わりに新しい一次の面の新しい
境界を示す新しいエッジを用いることによって、新しい
一次の融合または面取り面を生成するステップと、 f)上記除去されるエッジの各々の頂点について、上記立
体が上記頂点のまわりで幾何学的に矛盾するかどうか調
べ、もしそうならば、上記頂点のまわりの上記立体のト
ポロジーをトリムするように、 g)新しい一次の面上の、トポロジー的に隣接するが、幾
何学的に適合しないエッジで規定される全てのギャップ
を集めるステップと、 h)各々のギャップについて、面の一部をトリムする一連
の横断セグメントから成るトリミング・パスを計算する
ステップと、 i)上記ステップh)で計算されたトリミング・パスに基づ
いてギャップを閉じる新しいトポロジーを生成するステ
ップと、 j)上記頂点のまわりの二次の、非融合または非面取り面
上の全てのギャップを集めるステップと、 k)上記立体の全ての二次の面について上記ステップk)で
集められるギャップに関して、上記ステップh)およびi)
を繰り返すステップと、を実行するステップと、を含む
方法を提供する。
【0029】この発明に従って新しい表面をソリッドモ
デルに組み込む方法は、いくつかの標準のステップを含
み、それらは、一時的に、いくつかの部分的に無限な面
をもつ多様体でないソリッドを生む。この発明に従う方
法は、欠けている境界をコンピュータ計算する、すなわ
ち無限の部分を「トリム」し、新しい要素をモデルに組
み込む。したがってこの方法は、ソリッドモデルの中の
単なる「穴」、すなわち境界を示す1つのループだけを
もつ穴が、満たされようとする場合には必ず適用するこ
とができる。しかし融合または面取り表面のモデルへの
組み込みは、一次の最も重要な適用である。
【0030】この発明に従う方法は、新しい表面の幾何
学的形態には依存しない。それは、一定および可変半径
の融合、および面取り表面の全てのタイプに適用するこ
とができる。
【0031】この発明の更なる好ましい実施例は、後述
される実施態様の中で定義される。
【0032】
【発明の実施の形態】この発明の好ましい実施例を詳細
に述べる前に、後述の中で使用されるB-repソリッドモ
デルに関する用語を手短に述べる。
【0033】ソリッドモデルは、「頂点」、「エッジ」
および「面」から構成される「立体」と呼ばれる。多様
体の立体上で、エッジは、2つの頂点によって範囲を定
められる3次元曲線の有限の部分に対応し、面は、一連
のエッジによって境界を示される面の有限の部分に対応
する。さらに、多様体のエッジには2つの隣接する面が
存在する。
【0034】モデラーすなわちCADシステムは、立体を
表す幾何学的およびトポロジー的情報を格納し、例えば
立体の「全部の面を訪問する」というように、ソリッド
モデルの全ての要素を「訪問し」、あらゆる要素に追加
の情報を付与するためのメカニズムを提供する。例え
ば、融合表面には、特別に印を付けることができる。こ
れらのメカニズムは、例えば立体の「全ての融合表面を
訪問する」ように、立体の要素のサブセットを抽出する
ために一緒に使用される。
【0035】典型的に、立体のトポロジー的修正は、ト
ポロジー的に有効なモデルを保証するいわゆるオイラー
演算子によって実行される。例えば、「エッジを除去す
ること」に言及するとき、これは、オイラー演算子KEV
(kill edge vertex)がモデルに適用されることを意味す
る。「エッジおよび面を追加する」という用語に言及す
るとき、これは、オイラー演算子ADEF(add edge face)
がモデルに適用されることを意味する。オイラー演算子
に関する詳細は、Mantyla M.の「An introduction to s
olid modelling」(Computer Science Press、Rockvill
e、1988)を参照されたい。
【0036】この発明に従う操作の短い概要を与えるた
めに、融合表面が組み込まれる物体を示している図1を
参照する。図1に示される物体は、融合表面の元の物体
への組み込みの間に起こりうる全てのケース、すなわち
面の収縮、面の成長および新しい面による元の面ののみ
こみ(swallowing)を含む一例である。
【0037】図1aは、第1の方向から見た物体100の等
角図である。図1bは、第2の方向から見た物体100の等
角図である。図1aおよび1bから理解できるように、物体
100は、面F1ないしF12によって規定される非常に複雑な
形状をもつ。融合されようとするエッジは、参照符号e
によって示される。分かりやすいように、残りのエッジ
を示す参照符号は省略されている。
【0038】図1cおよび図1dに、この発明に従う方法の
完了後の物体100を示す。図1cは、第1の方向から見た
物体100の等角図であり、図1dは、第2の方向から見た
物体100の等角図である。
【0039】図1から分かるように、融合表面Fの組み
込みは、元の立体の異なった面上に異なった結果をも
つ。より具体的には、融合表面は、面F2、F3、F7、F8お
よびF11を切り込む、すなわちこれらの面は収縮する。
面F1は、融合表面Fによって完全にのみこまれる。面F
4、F5およびF6は成長している。面F9、F10およびF12
は、融合表面Fの組み込みによる影響を受けない。
【0040】上述したように、先行技術CADシステムは
融合表面Fの組み込みの結果である面の成長を確実に処
理することができない。従ってこの発明の好ましい実施
例の以下の記述では、成長する面の処置に焦点を置く。
収縮するまたは消滅するトポロジー的要素の処理は、必
要な時にのみ指示される。
【0041】以下で、この発明に従う方法の第1の主要
ステップを述べるために図2ないし図5を参照する。
【0042】図2aないし図5bは、それぞれのステップが
実行された後の立体の結果の構造を示す、立体200の斜
視図である。
【0043】図2aに、元の立体200を示す。立体200は、
複数の面F1ないしF5、RFおよびLFを含む。それぞれの面
は、エッジR1ないしR4、RN、LN、e1ないしe4、およびE
に囲まれている。分かりやすいように、エッジEのまわ
りの融合表面の組み込みに影響されない外側のエッジに
は、参照符号を付していない。図2ないし図5に関して述
べられる実施例で、面RFおよびLFが隣接するエッジE
は、この発明の方法に従って融合表面を組み込むことに
よって融合される。融合されるエッジEは、図2aに示さ
れるように開始頂点SVおよび終了頂点EVに関連する。図
2aの右側の丸く囲まれた部分は、エッジe1ないしe4が位
置する場所を明示するために拡大して示される。以下の
記述は融合表面の組み込みに関して行われるが、当業者
であれば、面取り表面を組み込むときに、この発明の方
法を同等に適用できることが分かるであろう。
【0044】上で概要を述べたように、立体のトポロジ
ー的修正はオイラー演算子によって実施される。しか
し、上述されたオイラー演算子の適用によるトポロジー
の修正によって、幾何学的に矛盾するモデルが生じるこ
とがある。例えば、図2aに示される立体のエッジe1を除
去するとき、残りのエッジE、e2およびe3は、頂点SVの
方へ引き寄せられる。しかしこれらのエッジの幾何学的
な点は、SVの位置とは異なる。このように、エッジは幾
何学的に矛盾するようになる、すなわちトポロジー的端
点SVは、幾何学的端点とは異なる。
【0045】図には、処理される立体のトポロジー的状
態が示されている。幾何学的に矛盾しないエッジは実線
で描かれ、矛盾するエッジは、破線で描かれる。図2aは
元の立体を示すので、全てのエッジは、全てが幾何学的
に矛盾しないように実線で描かれている。一例として、
図5aを参照すると、面Fは、2つの破線のエッジによって
境界を示されており、それらのエッジが、幾何学的境界
を表しているのではなく、中間のトポロジー的状態を示
していることを意味する。
【0046】図2bないし図5aを参照して、エッジの融合
表面による置き換えを詳細に記述する。
【0047】図2bに示される第1のステップで、融合表
面Fが、幾何学的に生成される。この生成は、融合表面
の一次の境界線ep1およびep2の計算、さらに融合表面自
体の計算を含む。融合表面自体の計算は、融合表面Fの
形状、例えば表面Fの凸状などの規定を含む。融合表面F
の一次の境界線ep1およびep2は、例えば一定半径の回転
ボールの融合操作を、立体200のエッジEに適用すること
によって生成される。一次の境界線は、この場合回転ボ
ールが接触する曲線である。
【0048】残りのステップは、置き換えられる元のエ
ッジEの端点SVおよびEVの両方に対称に適用される。以
下では開始頂点SVについてのみ考える。
【0049】図2cに示される更なるステップで、一次の
境界線がトリムされる。この一次の境界線のトリミング
は、一次の境界線ep1およびep2と、置き換えられるエッ
ジEに隣接する面RFおよびLF上のエッジRNおよびLNの交
点RVおよびLVをそれぞれ見つけることを含む。
【0050】面RFについて考えるとき、一次の境界線を
トリムするために使用されるルーチンは、開始頂点SVか
ら始まり、エッジe1(図2aを参照)と、融合表面Fの一次
の境界線ep1との交わりを見つけようとする。交点はな
いので、エッジe1は印を付けられ、ルーチンは、次のエ
ッジe2との交わりを見つけようとする。再度交点は存在
しない。従ってエッジe2も印を付けられる。そしてルー
チンは、エッジRNである次のエッジの、融合表面Fの一
次の境界線ep1との交点を見つけようとする。この場合
は、交点RVが存在する。同じことが、対向する面LFにも
適用され、エッジe3およびe4は印を付けられ、交点LVを
もたらす。
【0051】表面Fの一次の境界線ep1およびep2のトリ
ミングによって、面Fの第1の境界線RBおよび面Fの第2
の境界線LBが生じる。境界線RBおよびLBは、図2cに太線
で描かれていることに注意されたい。
【0052】図2bおよび2cを参照して記述されるステッ
プは、元の立体の修正を含まない点に注意する。これま
でで、組み込まれる新しい幾何学的形態のみが決定され
た。比喩的に言うと、融合表面の幾何学的形態は、図2b
および2cに示されるように立体の「最上部に」描かれて
いる。
【0053】以下に記述されるステップは、実際に、元
の立体のトポロジー的修正を含むものである。
【0054】図3aないし図4aを参照して、廃退する隣接
するエッジの除去を、より詳しく記述する。図2cを参照
して記述された前のステップで印を付けられた全てのエ
ッジ、すなわちエッジEと融合表面Fの左右の境界線との
交点RVおよびLVをもつエッジすなわちエッジRNおよびLN
との間に位置する全てのエッジは、オイラー演算子KEV
の適用によってモデルから除去される。
【0055】図3aは、前に印を付けられたエッジe1が除
去された後の立体200のトポロジー的状態を示す第1の
エッジe1の除去により、前に第1のエッジe1と交点をも
っていたエッジは、開始頂点SVの方へ引き寄せられる。
前にエッジe1に接続していたエッジR2およびe2の端点
は、開始頂点SVの方へ引き寄せられる。エッジR2および
e2は、開始頂点SVにそれらの新しい端点をもつ。
【0056】図3bは、融合表面Fの一次の境界線のトリ
ミング中に印を付けられたエッジe2の除去を示す。結果
の立体2000を、図3bに示す。エッジe2を除去することに
より、エッジe2と交わっていたエッジの端点は、図3aに
関して記述されたように開始頂点の方へ動かされる。立
体200のエッジe2を除去することによって、エッジR1お
よびRNの端点は、開始頂点SVの方へ動かされる。エッジ
RNと融合表面Fのトリムされた境界線との交点RVは、開
始頂点SVに接続され、エッジRNは、エッジRNの残りの部
分は変わらないままであるように開始頂点SVの方へ引き
寄せられる点に注意する。この理由は、立体200のどの
位置で融合表面が始まるかを決定するために、融合表面
Fの一次の境界線が提供されるということである。この
表面の境界線の外にある融合表面Fの外側のエリアは、
融合表面の立体への組み込みによって変わらない。従っ
て、融合表面Fの境界LBおよびRBの外側にある面RFおよ
びLFの一部は、変わらないままである。それゆえエッジ
RNは、部分的にのみ破線で示されている。
【0057】図4aに、エッジe3が除去された後の立体20
0を示す。エッジe3の除去により、元々エッジe3に接続
されていたエッジR3の端点は、開始頂点SVの方へ引き寄
せられる。図4bは、エッジe4が除去された後の立体200
を示す。エッジe4の除去により、エッジR4の端点および
前にエッジe4に接続されていたエッジLNの端点は、開始
頂点SVの方に描かれている。面LFの場合、エッジe4の除
去によって、開始頂点とエッジLN上の交点LVとを直接に
接続するようになる。エッジLNの残りの部分は、変わら
ないままである。
【0058】図4bは、一次の境界線のトリミングの間に
印を付けられた全てのエッジが除去された後の立体200
を示す。上述されたエッジの除去により、全ての残りの
エッジは、1点すなわち開始頂点SVで交わる。これは、
立体200を幾何学的に矛盾する状態においたままであ
る。現在開始頂点SVで交わっているエッジはどれも、図
2aに示される元の立体の1点では交わっていなかったか
らである。例えば、図4bに従うと、エッジR1およびR4
は、現在1点で交わっているが、元の立体を示す図2aに
従うと、エッジR1およびR4の間に交わりはない。したが
って、図4bに示される全てのエッジは、それらが幾何学
的に矛盾するので破線で示されている。
【0059】この発明に従う方法が完了するとき、立体
は、再びトポロジー的および幾何学的に矛盾しない多様
体になる。
【0060】図5aを参照して、新しい融合表面Fが生成
された後に達成される立体200を記述する。この場合、
元のエッジE(図4bを参照)は、「バナナ様」の形状を持
つ新しい面Fと置き換えられる。このバナナ形状は、線A
-A'に沿った立体200の断面図である図5bから一層明らか
である。図5bから理解できるように、新しい融合表面F
は、元のエッジEに取って代わり、表面RFおよびLFと接
続する。元のエッジEの新しい融合表面Fとの置き換え
は、新しいエッジ、新しい面Fを生成し、それに応じて
データ構造を更新するオイラー演算子ADEF(add edge fa
ce)の適用によって達成される。更なる処理のため、新
しく生成される面Fにも「融合表面」と印が付けられ
る。
【0061】元の融合表面および元の境界線は、新しい
面F、および新しいエッジRBおよびLBのそれぞれと関連
するが、図5aに示されるFの周囲のエッジは、面Fの幾何
学的に有効な境界線をまだ表していない。図2ないし図5
に関して上述したステップを実行することにより、立体
200は、ある状態すなわち幾何学的に無効な状態に置か
れ、それは、幾何学的に有効な状態を達成するために更
なるステップを必要とする。
【0062】これは、普遍的ルーチンを立体に適用する
ことによって達成される。図6は、普遍的ルーチンのフ
ローチャートであり、以下でより詳しく記述する。
【0063】ステップS300でルーチンに入る。ステップ
01とも呼ばれるステップS302で、一次のギャップが集め
られる。ステップS302で、頂点のまわりの一次の融合表
面または面取り表面上の全てのギャップが、集められ
る。トポロジー的に隣接する2つのエッジが幾何学的に
適合しない、すなわちエッジは同じ頂点に接続される
が、端点は幾何学的に異なるという事実によって、ギャ
ップは特徴づけられることに注意する。一次のギャップ
S302を集めるステップは、以下でより詳しく記述する。
ステップS304で、処理されるギャップがもっと存在する
か判断される。処理されるギャップがこれ以上ない場
合、ステップS306で示されるように、普遍的ルーチンを
離れる。ステップS304で、処理されるギャップがもっと
あると判断される場合、普遍的ルーチンのステップ02と
も呼ばれるステップS308が実行される。ステップS308
で、処理される現在のギャップについてトリミング・パ
スが計算される。トリミング・パスは、面の無限な部分
を適切にトリムする一連の曲線セグメントから構成され
る。ステップS308のより詳細な記述は、以下で与えられ
る。普遍的ルーチンのステップ03とも呼ばれるステップ
S310では、ステップS308で計算されたトリミング・パス
が組み込まれ、起こりうる新しいギャップに印がつけら
れる。ステップS310によって、ギャップを閉じる必要が
ある新しいトポロジーが生成される。新しいトポロジー
の生成は、ステップS308によって計算される幾何学的形
態に基づく。より詳細な記述は、以下で与えられる。普
遍的ルーチンのステップ04とも呼ばれるステップS312
で、新しいギャップが集められる。ステップS312によっ
て、ステップS310で印を付けられた新しいギャップは、
例えばあらゆるギャップを含むリストにこれらの新しい
ギャップを加えることにより集められる。ステップS312
の後、ルーチンはステップS304に戻る。
【0064】普遍的ルーチンの上記の記述から、ステッ
プS304で始まる全てのステップは、物体の中に見つけら
れるあらゆるギャップについて実行されることが明らか
である。
【0065】図7および図8を参照して、普遍的ルーチン
のステップ01および04すなわちステップS302およびS312
の記述をする。
【0066】図7は、普遍的ルーチンのステップS302を
より詳しく述べている。ステップS400で、普遍的ルーチ
ンからサブルーチンに入る。図7に示されるサブルーチ
ンのための入力は、いくつかの融合面および穴やギャッ
プに対応する頂点を含むモデルである。図7は、頂点SV
が選ばれる一つの実施例に関する。しかし、図7に示さ
れるサブルーチンは、頂点EVのような他の頂点にも同等
に適用できることに注意する。ステップS402で、モデル
のまだ訪問されていない面があるかどうか調べられる。
ステップS402で、モデルの全ての面が訪問されていると
判断される場合、サブルーチンは、ステップS404で終わ
り、普遍的ルーチンに戻る。さらに、サブルーチン01に
よって集められた一次のギャップのリストLが、普遍的
ルーチンへ出力される。ステップS402で、モデル上にま
だ訪問されていない面があると判断される場合、ステッ
プS406が実行され、次の面Fiが集められる。ステップS4
08で、選ばれた面Fiが融合表面であるかどうか判断され
る。選ばれた面Fiが融合表面でない場合、サブルーチン
はステップS402に戻る。ステップS408で、選ばれた面Fi
が融合表面であると判断される場合、サブルーチンはス
テップS410に進む。ステップS410で、面Fiが開始頂点を
含むかどうか判断される。そうでない場合、サブルーチ
ンは、ステップS402に続く。面Fiが開始頂点SVを含むと
判断される場合、サブルーチンはステップS412に続く。
このステップで、開始頂点SVで始まる面FiのエッジIお
よび開始頂点SVで終わる面FiのエッジOが決定される。
ステップS414で、エッジIの始点がedge0の端点に等しい
かどうか調べられる。そうである場合、サブルーチンは
ステップS402に戻る。エッジIの始点がエッジOの端点と
異なる場合、ステップ416で、面FiがギャップのリストL
に追加される。そしてサブルーチンはステップS402に戻
る。
【0067】図8を参照して、新しいギャップを集める
サブルーチン04をより詳細に記述する。ステップS450
で、普遍的ルーチンからサブルーチン04に入る。再びサ
ブルーチン04の入力は、融合表面、および穴またはギャ
ップに対応する頂点すなわち図8に示される実施例の中
の開始頂点SVをもつモデルである。ステップS452で、ま
だ訪問されていない面が存在するかどうか調べられる。
モデルの全ての面が訪問されていると判断される場合、
ステップS454でサブルーチン04を離れ、全ての二次のギ
ャップのリストSが、普遍的ルーチンへ出力される。二
次のギャップは、二次の表面すなわち非融合の表面上に
形成される。ステップS452で、まだ訪問されていない複
数の面または少なくとも1つの面があると判断される場
合、サブルーチンはステップS456に進み、次の面Fiが集
められる。ステップS458で、面Fiが開始頂点SVを含むか
どうか判断される。そうでない場合、サブルーチンはス
テップS452に戻る。ステップS458で、面Fiが開始頂点を
含むと判断される場合、ステップS460で、開始頂点SVで
始まる面FiのエッジI、および開始頂点SVで終わる面Fi
のエッジOが決定される。ステップS462で、エッジIの始
点がエッジOの端点であるかどうか判断される。そうで
ある場合、サブルーチンはステップS452に戻る。ステッ
プS464でエッジIの始点がエッジOの端点と異なる場合、
面Fiが、二次のギャップのリストSに追加される。そし
てサブルーチンはステップS452に戻る。
【0068】普遍的ルーチンの残りの主要ステップ02お
よび03の詳細な記述を与える前に、図6に示される普遍
的ルーチンの各々の繰り返しの後の結果の立体を、図9
を参照して記述する。以下の記述のため、置き換えられ
るエッジEの終了頂点EVに関して、融合表面Fは立体200
にすでに正しく組み込まれていると仮定する。従って以
下の記述は、開始頂点SVに関してのみ行われる。
【0069】図9aに、普遍的ルーチンの、融合表面上で
見つかった一次のギャップが閉じられるステップの後の
立体200を示す。第1のステップS302で、開始頂点SVの
まわりの一次のギャップが集められ、面Fは、ギャップ
をもつものとしてサブルーチン01から出力される。普遍
的ルーチンのステップ02および03の1回目の繰り返し
は、面Fについてトリミング・パスを生成し、面Fについ
てトリミング・パスを組み込む。組み込まれたトリミン
グ・パスは、図9aにエッジC0およびC1で示される。図9a
から理解できるように、ここで面Fの境界を示す全ての
エッジは、幾何学的に矛盾しておらず、これらのエッジ
を実線として描くことによって示されている。頂点SVに
結びつけられる残りのエッジ、すなわちR1、R2、R3およ
びR4は、まだ幾何学的に矛盾しているので破線で示され
る。
【0070】普遍的ルーチンのステップ03で、面F1は、
「二次のギャップ」をもつと印を付けられ、処理される
ギャップのリストに追加される。ステップ04により、先
行のステップで印を付けられた面F1は、図8に関して述
べたように2次のギャップのリストに追加される。普遍
的ルーチンの次の繰り返しは、面F1についてトリミング
・パスを計算し、組み込む。
【0071】図9bに示されるように、エッジC2およびC3
は、普遍的ルーチンの2回目の繰り返しによって組み込
まれる。実線で示されるように、ここで面F1の境界を示
す全てのエッジは幾何学的に矛盾しないが、残りのエッ
ジR2、R3およびR4はまだ幾何学的に矛盾している。普遍
的ルーチンのステップ03で、面F2およびF4は、ギャップ
をもつと印を付けられ、ステップ04で二次のギャップの
リストに追加される。
【0072】ステップ02および04の3回目の繰り返し
で、面F2上のギャップは、図9cに示されるように新しい
エッジC4を生成することによって閉じられる。ステップ
03で、面F3は、ギャップをもつと印を付けられ、ステッ
プ04で二次のギャップのリストに追加される。
【0073】普遍的ルーチンの最後の繰り返しで、面F3
およびF4上のギャップが閉じられる。面F5上のギャップ
は、明示的には処理されないが、周囲のギャップを閉じ
ることの副産物としてトリムされることに注意する。。
【0074】以下に、普遍的ルーチンのステップ02およ
び03をより詳しく記述する。
【0075】普遍的ルーチンのサブルーチン02の記述の
ため、最初に図5aに示される立体の頂点SVのまわりの基
本のトポロジーを示す図10を参照する。トポロジーは、
頂点SVのまわりで星様の形状をもつ。以下に、面Fにつ
いてトリミング・パスの決定を記述する。トリミング・
パスは、エッジRBから始まり、エッジLBで終わる。しか
し面Fの「エッジRBからエッジLBにいく」ことは全く強
制的ではないことに注意する。始点がエッジLBに選ばれ
る場合、この方法は、対称に働く。パス検出プロセスと
組み込みプロセスを分離することとあいまってこの特性
は、ルーチンが、境界RBから始まる解決法を見つけそこ
なった場合、それは再度適用され、境界線LBから始まる
という利益をもたらす。
【0076】普遍的ルーチンのサブルーチン02は、面F
についてトリミング・パスを計算する。普遍的ルーチン
のステップ02で決定されるパスは、例えば面Fの表面と
周囲の面との交差曲線の複数の部分(図10を参照)から構
成される。面Fの境界を示すいくつかの可能性のあるパ
スがあることに注意する。図11に関して、単純化される
モデルについて異なった解決法が示される。図11aは、
融合表面Fを組み込むことによってエッジEが融合される
元の立体を示す。図11bは、望ましい結果を示し、図11c
は、多様体でないソリッドモデルをもたらす別の解決法
を示す。この可能性のある複数の解決法は、いくつかの
理由をもつ。第1に、概して2つの面の間には、いくつ
かの交差曲線がある。第2に、曲線と面の間には、多く
の場合いくつかの交点がある。第3に、最も重大なこと
には、成長するトポロジーの場合、互いに交わる起こり
うるいくつかの面がある。説明のため、図9aを参照す
る。面Fおよび面F1の間の交差曲線が与えられると、残
りの全ての面F2ないしF5は、次の交差曲線としてありえ
る候補である。
【0077】従って、可能性のある解決法の中で、有効
なソリッドモデルを導く最善のものを見つけなければな
らない。これは、可能性のある全ての解決法のトリー上
でいわゆる深さ第1検索を実行する、図6に示される普
遍的ルーチンのサブルーチン02によって達成される。直
観的に、これは、これまでに見つけた最善の解決法が、
端点または「行き止まり」に達するまで続けられること
を意味する。後者の場合、トリーは「逆戻りされる」。
すなわちパスの最後のセグメントは無視され、検索は第
2の最善のセグメントで続けられることを意味する。
【0078】普遍的ルーチンのサブルーチン02の好まし
い実施例を記述する前に、このサブルーチンの一般的な
ステップをより詳しく記述する。
【0079】図12は、ギャップをもつ面についてトリミ
ング・パスを計算するために使用される普遍的ルーチン
のサブルーチン02のフローチャートである。ステップS8
00でサブルーチンに入り、ステップS802にすすみ、そこ
でギャップの前処理が実行される。この前処理ステップ
は、より詳しく後述される。ステップS804で、処理され
ようとしているギャップがまだ開いているかどうか調べ
られる。ギャップがもう開いていない場合、サブルーチ
ンはステップS806に続き、そこでサブルーチンが中止さ
れ、普遍的ルーチンに戻る。ギャップがまだ開いている
場合、サブルーチンはステップS808に進み、ノード(0,
0)は、開始するノードすなわち開始ノードSにセットさ
れる。さらに添字iおよび添字jは、0にセットされる。
深さ第一検索トリーのノードのより詳しい記述は、以下
に与えられる。ステップS810で、現在のノードは、ノー
ドN(j,i)にセットされる。ステップS812で、現在のノー
ドの子供ノードN(j+1,i)が生成される。ステップS812
は、後述されるサブルーチンD1をトリガーする。ステッ
プS814で、ステップS812で生成された子供ノードがソー
トされる。ステップS816で、ノードN(j+1,i)が有効かど
うか判断される。そうでない場合、ステップS818で添字
iが1ずつインクリメントされ、サブルーチンはステップ
S818からステップS816に戻る。ステップS816で、ノード
が有効であると判断される場合、ステップS820で、終了
ノードEに到達したかどうか調べられる。そうでない場
合、ステップS822で、添字jが1ずつインクリメントさ
れ、サブルーチンはステップS810に戻る。ステップS820
で終了ノードに到達したと判断される場合、サブルーチ
ンはステップS806で止まり、普遍的ルーチンに戻る。
【0080】図13を参照して、ステップS812の中の子供
ノードの作成をより詳しく述べる。ステップS900で、サ
ブルーチン02から、子供ノードを生成するサブルーチン
D1に入る。サブルーチンD1について入力は、始点EPおよ
び現在の面Fcである。ステップS902で、今処理されたギ
ャップを見つけた面Fの表面を、現在の面Fcの表面と交
わらせる。ステップS903で、端点を含む全ての曲線Ciが
決定され、ここでiは、0からnに及ぶ添字である。ステ
ップS904で、いわゆる半曲線Sj(j=0...2n)が生成され
る。ステップS906で、添字kは、0にセットされる。ステ
ップS908で、添字kに対応する半曲線を、現在の面Fcの
エッジと交わらせる。ステップS910で、現在の面Fcの元
のエッジの内側に交点Iが存在するかどうか判断され
る。元のエッジの内側にそのような交点がない場合、サ
ブルーチンD1は、ステップS912にすすみ、そこで半曲線
を、開始頂点Svのまわりの全ての開いた面と交わらせ、
交点Ip(p=0...q)をもたらす。ステップS914で、ステッ
プS912で決定された各々の交点について子供ノードが生
成される。そしてサブルーチンはステップS916にすす
み、そこで添字kは1ずつインクリメントされる。
【0081】ステップS910で、現在の面Fcの元のエッジ
の内側に交点Iがあると判断される場合、ステップS918
で、1つの子供ノードが生成され、サブルーチンはステ
ップS916に続く。
【0082】ステップS920で、添字kが2nより大きいか
どうか調べられる。そうでない場合、サブルーチンD1は
ステップS908に続く。ステップS920で、kが2nより大き
いと認められる場合、サブルーチンD1はステップS922で
止まり、サブルーチン02に戻る。ステップS922で、生成
された子供ノードCpのリストが、サブルーチン02に出力
される。
【0083】以下で、普遍的ルーチンのサブルーチン02
に従ってトリミング・パスの生成または計算を説明する
好ましい実施例が、図14および図15を参照してより詳し
く記述される。以下は、図2aに示されるような元の立体
200を基準として記述され、立体は現在図5aに示される
ような状態にある。サブルーチン02の詳細な記述より先
に、立体200の状態を、図14を参照してより詳しく考え
る。簡潔にするため、融合表面Fは、図14で立体200の後
ろの端部に実線のエッジで示されるように、すでに頂点
EV(図2aを参照)のまわりで処理されていると仮定する。
【0084】しかし開始頂点SVのまわりで、立体は、エ
ッジRN、LNおよびR1ないしR4を示す破線によって示され
るように、まだ幾何学的に矛盾している。たとえば、元
の立体のエッジR1およびR4に対応する線(図2aを参照)は
交わらないので、多様体のソリッドモデルの中に共通の
頂点をもつことができない。これは、頂点SVのまわり
で、立体200に「穴」やギャップがあることを意味す
る。より正確には、穴を囲む面はもはや有限ではない。
たとえば面F4の一連のエッジは、エッジR3およびエッジ
R4の間に「ギャップ」をもつ。すなわちエッジR3および
R4の両方、および面F4は部分的に無限である。多様体の
ソリッドモデルを組み立てるため、これらのトポロジー
は、「トリム」されて、基礎となる幾何学的形態の有限
な部分にならなければならない。この最後の最も複雑な
操作は、図14に示される物体200に、図6の普遍的ルーチ
ンを適用することによって実行される。まずトリミング
・パスを計算するためのサブルーチン02をより詳しく記
述する。
【0085】サブルーチン02は、起こりうる全ての解決
法のトリーの深さ第1検索を行う。検索トリーのノード
は、パスの曲線セグメントである。ギャップをもたらす
エッジを考える、すなわち面Fをトリミングする場合、
エッジRBおよびLB(図14を参照)もパスの一部であると
考えられる。こうして、面Fの中のギャップを満たすた
め、開始ノードSはRBであり、終了ノードEはLBである。
【0086】前処理ステップ(ステップS802)で、曲線セ
グメントSおよびEの端点を決定しなければならない。面
Fについて、これらは、図15aおよび図15bに示されるよ
うにエッジRNおよびLNとの交点RVおよびLVである。パス
・ノードの交点RVである端点EPが分かると、次の曲線セ
グメントを運ぶ面も見つかることに注意する。次の曲線
セグメントを運ぶこの面は、現在の面Fcと呼ばれ、図12
および図13に関して記述されたように、子供ノードを生
成するサブルーチンD1の1つの入力パラメータである。
融合表面F上のギャップが閉じられようとしている現在
のケースで、次の曲線セグメントを行う現在の面Fcは、
面F1である。
【0087】前処理が完了された後に、子供ノードが生
成される。子供ノードを決定するために、面Fおよび面F
1の間の全ての交差曲線が計算されまたはコンピュータ
計算され(ステップS902)、端点EPを通る全ての曲線が抽
出される(ステップS903)。あらゆる曲線について、端点
epで反対方向に始まる2つの半無限のセグメントがあ
る。以下で、これらのセグメントは半曲線と呼ばれる。
面Fおよび面F1の交わりについて、そのような2つの半
曲線があり、それらは、図15aに示される参照符号S0お
よびS1によって示される。図示のために、エッジRBは、
図l0bでRVの位置の方へ動かされたこと注意する。しか
しサブルーチン02のステップは、図14の立体上に実行さ
れることに注意する。
【0088】半曲線に対応する子供ノードが生成される
前に、これら半曲線の端点が決定される。半曲線の端点
の決定のため、これらの半曲線を、面F1の既存の全ての
エッジと交わらせる(ステップS908)。半曲線S0につい
て、これは、面F1で始まり、交点IかエッジRNのどちら
かに到達するまでF1のまわりを時計回りにすすむことを
意味する。面F1の元のエッジの内側に交点Iが存在する
場合(ステップS910)、新しい子供ノードを表す新しいセ
グメント(EP,i)が決定される(S918)。図15aに示される
半曲線S0について、そのような端点は存在しない。した
がって、半曲線S0を、頂点SVに結びつけられる、面Fお
よび面F1を含まない全ての開いた面すなわち面F2ないし
F5と交わらせる(ステップS912)。半曲線S0について、こ
れは、面F5およびF2との交点I0およびI1をそれぞれもた
らす。あらゆる交点は、範囲を制限される曲線セグメン
トを規定し、それゆえ半曲線S0について、2つの子供ノ
ード(RV,I0)および(RV,I1)がある(ステップS914)。それ
から同じプロセスが、半曲線S1に適用される。これは、
最初のノードSについて子供ノードの作成を完了する。
そして生成された子供ノードは、サブルーチン02へ出力
される(ステップS922)。
【0089】次のステップは、生成された子供ノードの
ソートである(ステップS814)。まず最初に、半曲線上に
位置する曲線セグメントのグループを考える。ノードRV
と半曲線の間の角度に基づく値は、あらゆる半曲線に割
り当てられ、面Fの内側の角度が取り上げられる。この
値に基づいて、最も小さい角度をもつ半曲線に最も高い
優先度を割り当てることにより、半曲線をソートする。
ソートは、クイックソート(QuickSort)ルーチンのよう
な標準のルーチンによって行われる。面FおよびF1の間
の交わりについて、これは、順序{S0,S1}をもたらす。
【0090】第2のステップで、あらゆる半曲線上の曲
線セグメントは、それらの長さに関してソートされ、そ
の結果として順序は{(RV,I0),(RV,I1)...半曲線S0上の
セグメント..}となる。このように、現在最善のパスに
ついて次のセグメントは、(RV,I0)である。I0は面F5と
の交点であるので(図15aを参照)、次のセグメントは、
面FおよびF5の間の交わり上になければならない。
【0091】終了ノードEに到達していないので、サブ
ルーチン02はステップS810に続く。再び子供ノードを生
成するためのサブルーチンD1に入り、その入力は、前の
曲線セグメントの端点である始点I0であり、現在の面は
面F5である。ステップS902ないしS904を実行することに
よって、図15bに概略で示されるように、始点I0を通る
2つの半曲線S2およびS3が生じる。点LVは、単に図示の
目的で動かされたことに注意する。半曲線S2およびS3
は、面F5のエッジと交わる。半曲線S2について、これ
は、エッジLNから始まるとき、交点は面F5の元のエッジ
の内側に見つけられ、すなわち点LVであることを意味す
る(ステップS910)。従って半曲線S2によって生成される
1つの子供ノード(ステップS918)、すなわちセグメント
(I0、LV)が存在する。半曲線S2によって生成される子
供ノードを生成し、全ての子供ノードをソートすること
によって、順序{(I0、LV)..半曲線S2上のセグメン
ト..)}が達成される。
【0092】ノード(I0,IV)は、探されなければならな
い次のものである。しかし端点LVは境界線LB上に位置し
ており、これは境界線LBである終了ノードEに到達した
ことを意味する。こうして面F上のギャップについてト
リミング・パス[(RV,I0)(I0,LV)]が見つけられた。
【0093】この場合のように、ルーチンは、逆戻りす
る必要なく、有効なトリミング・パスを作り出す。しか
しソートは、基本的に局部的な判断であるので、あらゆ
るレベルで包括的な有効性について検査が実行されなけ
ればならない(ステップS816)。例えば図11に示される単
純化される例を再び考える。子供ノードのソートの間、
点I1(図11cを参照)が、「最善のもの」として選ばれ
た。次の考察はセグメント(I1,I3)を導き、セグメント
の最後の考察は(I3,V)である。しかしこの時点で、自己
が交差するパスが生成された。これは有効性検査によっ
て検出され(ステップS816)、解決法が有効でない場合、
それは拒絶される。この場合、逆戻りする操作が実行さ
れ、サブルーチンは、点I5および対応する面F5で始ま
り、最終的に正しい解決法で終わる。
【0094】この例はまた、幾何学的形態の生成および
トポロジーの生成の分離の利点を説明する。セグメント
(RV,I1)および(I1,I3)が、それらの生成のすぐ後に組み
込まれる場合、さらにセグメント(RV,I5)を調査するた
めに、立体の初期状態を再生成する必要があった。しか
し、トポロジー的操作の逆は、一般にユニークでなく、
現在の状態になるいくつかの初期立体があることを意味
する。このユニークでない性質は、検索ルーチンの逆戻
りを禁じる。これを避けるために、有効性検査(ステッ
プS816)は、2つの重要なテストを実行する。第1のテ
ストは、トリミング・パスの自己の交差について調べる
ことであり、第2のテストは、パスと既存のエッジとの
交点についての検査である。
【0095】検査で無効な部分的パスが検出されて場合
は必ず、最後のノードが除去され、ルーチンは逆戻りす
る。このようにして包括的な一貫した立体を保証するト
リミング・パスを生成することができる。あるギャップ
について完全なトリミング・パスが分かったときだけ、
第2のサブルーチン03が、普遍的ルーチンによってトリ
ガーされる。そしてサブルーチン03は、パスをトポロジ
ー的にモデルに組み込む。
【0096】以下に、トリミング・パスを組み込み、新
しいギャップに印を付けるサブルーチン03を、図16を参
照してより詳しく述べる。
【0097】ステップS1100で、普遍的ルーチンからサ
ブルーチン03に入る。サブルーチン03について入力は、
穴またはギャップをもつ立体または物体と、面Fに関す
るトリミング・パスTである。ステップS1102で、トリミ
ング・パスTの開始ノードFは、現在のセグメントにセッ
トされ、開始ノードSのエッジは、現在のエッジにセッ
トされる。ステップS1104で、現在のセグメントの次に
くるセグメントが決定される。このセグメントは、現在
のセグメントの後続(successor)Siと呼ばれる。ステッ
プS1106で、後続がトリミング・パスTの終了ノードEで
あるかどうか判断される。そうである場合、ステップS1
108でサブルーチン03を離れ、普遍的ルーチンに戻る。
サブルーチン03の出力は、組み込まれたトリミング・パ
スTをもつ立体200である。
【0098】ステップS1106で、後続がトリミング・パ
スの終了ノードではないと判断される場合、ステップS1
110で、現在のエッジの終了頂点が、現在の頂点にセッ
トされる。ステップS1112で、後続Siに対応する面Fiが
決定され、ステップS1114で、現在の頂点のまわりの反
時計回りの回転が、面Fiのエッジeiに到達するまで実行
される。ステップS1116で、後続セグメントSiが、二次
の面とも呼ばれる面Fiの元のエッジe-intと交わるかど
うか判断される。そうである場合、ステップS1118で、
エッジeiおよびe-intの間の全てのエッジが消され(kill
ed)、サブルーチンはステップS1120に続く。ステップS1
116で、セグメントSiがエッジe-intと交わらないと判断
される場合、ステップS1122で、面Fiは、成長すると印
を付けられる。そしてサブルーチンはステップS1120に
続く。このステップで、ギャップをもつ面Fと二次の面F
iの間に新しいエッジe-newが生成される。ステップS112
3で、現在のエッジとエッジeiの間の全てのエッジは、
新しいエッジe-newの開始頂点に結びつけられる。ステ
ップS1124で、現在の頂点のまわりの残りのエッジが、
新しいエッジe-newの終了頂点に結びつけられる。ステ
ップS1126で、現在のセグメントは、後続セグメントSi
と設定され、現在のエッジは、新しいエッジe-newと設
定される。サブルーチンは、ステップS1104に戻る。
【0099】図17を参照して、トリミング・パスの組み
込みの好ましい実施例をより詳しく述べる。トリミング
・パスは、基本的に幾何学的情報すなわち所与のギャッ
プを閉じる曲線セグメントから構成される。それに加え
て、パスの組み込みに関する情報が提供される。あらゆ
る曲線セグメントについて、新しいエッジは、一次の面
Fと二次の面との間に生成されなければならない。図17a
に示されように、これは、セグメント(RV,I0)の場合、
面Fと面F1の間に新しいエッジがあり、セグメント(I0,L
V)の場合、面Fおよび面F5の間に新しいエッジが生成さ
れることを意味する(図17bを参照)。面Fについてパスを
組み込むとき、最初の現在のエッジは、エッジRBであ
り、開始ノードSの後続セグメントは、セグメント(RV,I
0)であるセグメントSiである(ステップS1102およびS110
4)。二次の面Fiに対応するエッジは、エッジLNである。
新しいセグメントSiが既存のエッジe-intと交わる場
合、二次の面Fiは縮む。この場合、エッジLNであるエッ
ジeiと交わるエッジe-intの間の全てのエッジは、除去
される(ステップS1116およびS1118)。そのような交点が
存在しないとき、組み込みは一層複雑である。パスは、
元のエッジを通る面F1を残さないという事実から、面F1
が成長することは明らかである。したがって、面F1は、
さらに普遍的ルーチンのステップ04の中で処理するため
に印を付けられる(図6を参照)。
【0100】図17aで、面FおよびF1の間に、エッジC0で
ある新しいエッジe-newが生成される。RBおよびRN(反時
計回り)の間の全てのエッジは、新しいエッジC0の開始
頂点に結びつけられ、残りのエッジは、新しいエッジC0
の終了頂点に結びつけられる(ステップS1120からS112
4)。図17aは、結果の立体を示す。
【0101】図16に示されるサブルーチン03のループの
2回目の繰り返しで、セグメント(I0,IV)が組み込まれ
る。対応する面は面F5であり、従って新しいエッジe-ne
wは、面FとF5の間のエッジE1である。現在のエッジC0
と、面F5上に位置するエッジすなわちエッジR4の間の全
てのエッジは、図17bに示されるようにエッジC1の開始
頂点に結びつけられる。トリミング・パスのセグメント
(I0,LV)の後続は、点LVである終了ノードである。従っ
て、面Fについてパスの組み込みが完了する。面Fのまわ
りの全てのエッジは、現在は幾何学的およびトポロジー
的に矛盾しないので、実線で示されることに注意する。
面F1は、サブルーチン03のこの繰り返しで印を付けられ
るので、普遍的ルーチンのステップ04がこの面を集め、
面F1のトリミング・パスの計算および組み込みをトリガ
ーする。
【0102】ここで面F1についてトリミング・パスの計
算およびトリミング・パスの組み込みを、図18を参照し
て記述する。
【0103】面F1上のトリミング・パスの計算は、開始
ノードSおよび終了ノードEの端点を見つけるための一般
的な前処理ステップ(ステップS802)から始まる。図18を
参照して記述される実施例で、開始ノードはエッジR1で
あり、終了ノードはエッジC0である。エッジC0の端点
は、隣り合うエッジC1と幾何学的に正しく接続されてい
るので、すでに正しい。しかしエッジR1は、トポロジー
的に隣接するエッジのどれとも適合しない。直観的に、
図2aに示されるように、元の立体のエッジの範囲の比較
から明らかなように、エッジはあまりに短い。端点を見
つけるために、「光線発射」技術が使用される。エッジ
R1は、半無限の光線とみなすことができる。エッジR1の
端点である点V1を見つけるために、この光線を、その終
了頂点に結びつける全ての開いた面と交わらせ、R1を最
短にする最初の交点が、端点V1をもたらす。「光線発
射」技術を使用することにより、サブルーチン02の上述
の前処理ステップ(ステップS802)の間に、曲線セグメン
トSおよびEの端点も決定される。
【0104】エッジR1に関して、光線発射技術は、次の
ように実行される。エッジR1は、その終了頂点のまわり
全ての開いた面で、すなわち面F3、F4およびF5と交わ
る。R1を最短にする交点が、エッジR1の新しい端点であ
る。この場合、それは、図18に示されるように面F4との
交点V1である。エッジR1の拡張は、2つの結果を持つ。
第1に、隣接する面すなわち面F2は、その元のエッジの
1つすなわちエッジR1が成長するので、成長すると印を
付けられる。第2に、エッジR1の拡張によってギャップ
が閉じられたかどうか調べる必要がある。そうではない
ので、サブルーチン02のステップS804の後にくるステッ
プが実行される。
【0105】最初に、面F1と、エッジR1が交わる面すな
わち面F4との間の全ての交差曲線が計算される(ステッ
プS902)。これは、頂点V1から上の方を指している半曲
線S4および頂点V1から下の方を指している半曲線S5をも
たらす(ステップS904)。ここで半曲線S4およびS5と、面
F4のエッジとの交点が決定される(ステップS908)。面F4
の既存のエッジの内側には点がないので、半曲線S4およ
びS5について新しい曲線セグメントが、光線発射手法に
よって組み立てられる(ステップS910およびS912)。S4と
エッジR1の間の角度は、半曲線S5およびエッジ01の間の
角度よりも小さいので、半曲線S4およびS5のソートは、
順序{S4,S5}を確立する。続いて起こる曲線セグメント
のソーティングは、順序{(V1,V2),..半曲線S4上の残り
のセグメント,..半曲線S5上のセグメント..}を確立す
る。頂点V2は、(V1,V2)と面F5との交わりであるので、
次のセグメントは、面F1およびF2の間の交差曲線上にあ
る。可能性のある全ての曲線セグメントを生成し、それ
らをソートした後、「最善のセグメント」(V2,V0)が見
つけられる。このセグメントは、ちょうどその端点でエ
ッジC1と交わる。
【0106】図19を参照して、面V1のトリミング・パス
の組み込みを記述する。トリミング・パス[(V1,V2)(V2,
V0)]の組み込みを、図19aおよび図19bに示す。最初に、
面F1および面F4の間のエッジC2が生成される。エッジR1
と、面F4上の第1のエッジであるエッジR3との間の全て
のエッジは、エッジC2の開始頂点V0に結びつけられたま
まである。残りのエッジR4は、エッジC2の終わりまで動
く。面F4のエッジの内側に交わりはないので、この面
は、成長していると印を付けられる。2回目の繰り返し
で、エッジC3が生成される。しかしこの場合、エッジC1
との交点である頂点V0があった。したがって、面F5は印
を付けられる必要がない。さらに、エッジR4とエッジC2
との間にはエッジがないので、どのエッジも除去される
必要がない。
【0107】図20を参照して、サブルーチン03によって
印を付けられている面F2のトリミング・パスの計算およ
び組み込みを記述する。面F2のトリミング・パスの計算
は、エッジR2の端点V3を生ずる前処理ステップ(ステッ
プS802)から成る。エッジR2は前処理ステップで拡張さ
れたので、面F3は成長していると印を付けられる。トリ
ミング・パス(V3,V2)の組み込みは、全く簡単である。
新しいエッジC4が生成され、図20に示される立体が達成
される。この立体はすでにトポロジーをもつが、元のエ
ッジR3およびR4がまだ短かすぎるので、面F3ないしF5上
のギャップは、まだ開いている。
【0108】図21を参照して、面F3、F4およびF5上の残
りのギャップの処理を記述する。面F3およびF4上のギャ
ップは、前処理ステップS802のみを必要とする。両方の
ケースで、開始ノードのエッジは、前処理ステップによ
って拡張される。拡張は対応するギャップをすでに閉じ
るので、繰り返しループに入ることはない。
【0109】面F5は、決して成長していると印を付けら
れないことに注意する。トリミング・パスは、面Fおよ
びF1ないしF4上のギャップを閉じることの副産物として
計算され、組み込まれる。
【0110】図22は、この発明の方法を図2aに示される
立体に適用することによって達成される結果の立体を示
す。図22は、融合表面Fが上述した方法によって組み込
まれた立体200を示す。図22から理解できるように、こ
の発明の方法によって生成される新しい頂点および新し
いエッジの全てが、図22に示される。現在の発明に従う
方法は、トポロジーをトリミングして、基礎をなす幾何
学的形態の有限部分にするという複雑な操作の信頼でき
る処理を可能にする。これは、極のまわりのあらゆる面
の有限な領域について点および曲線を決定し、多様体ソ
リッドの立体が達成されるようにトリミングの連続に対
応するトポロジーを生成することによって達成される。
【0111】この発明に従う方法は、普遍的な解決法を
与える既存の方法の能力をもつ。特に、隣接するトポロ
ジーが融合表面によってのみこまれる状況を見つけ、処
理することが可能である。
【0112】この発明の方法の重要な特徴は、以下の通
りである。
【0113】−残りの開いた面に関連しないあらゆる面
のトリミング。まだモデルの中に他の開いている面をも
つところで、トリミング・パスの計算および立体へのト
ポロジー的組み込みが行われる。特に、これはいくつか
の融合を同時に処理することを可能にする。
【0114】−所与のギャップをトリムする間の追加の
ギャップの検出。すなわち二次のすなわち非融合表面上
のギャップが、一次のギャップをトリムしている間に記
録される。これによって、隣接する面が縮むおよび成長
するという区別は必要でない。成長する面が更なる処理
のために抽出される一方、縮む隣接する面は、一次の面
を処理する「副作用」としてトリムされる。
【0115】−トリミング・パスの幾何学的形態の決定
およびトポロジー的組み込みの区別。先行技術の方法と
違って、この発明に従う方法は、まず最初に、ギャップ
を閉じるために必要とされるトリミング・パス全体を計
算し、それを立体に組み込む。これは、一連の曲線セグ
メントの決定のためにあるルーチンを使用することを許
す。通常トポロジー的修正の逆転はユニークでないの
で、部分的なトリミング・パスの完了する前の立体への
組み込みは、検索ルーチンの逆戻りを禁じる。
【0116】−トリミング・パスを決定するための強力
なサブルーチン。たとえいくつかの周囲の面が開いてい
ても、トリミング・パスは、解決法を見つけるに十分に
強力な検索ルーチンによって見つけられる。さらに、こ
のルーチンは、隣接するトポロジーが縮むまたは完全に
消滅する状況を検出する。
【0117】−トポロジー的修正を実行するサブルーチ
ン。これは、トリミング・パスを組み込むのに必要であ
る。特にこのプロセスは、成長する隣接のトポロジーを
処理し、別の面によってのみこまれるトポロジー的要素
の実際の除去を実施する。
【0118】この発明に従う方法の上述の好ましい実施
例は、ただ1つの融合表面が組み込まれる立体に関して
述べられたが、この発明に従う方法は、図23に関して記
述されるように、複雑な立体の複数の融合表面を組み込
むこともできることに注目すべきである。
【0119】図23aに、複雑な立体1800を示す。この立
体は、複数の面AないしIを含む。同時に融合されるエッ
ジは、e1、e2およびe3と示される。図23bおよび図23c
は、エッジe1ないしe3が融合された後の立体1800の起こ
りうる2つの構成を示す。両方のケースで、エッジe1な
いしe3は、融合表面F1からF3と置き換えられ、それらの
物体1800への組み込みは、新しいトポロジーが生成され
る結果をもたらす。図23cから最もよく理解できるよう
に、元の面BおよびHは成長し、事実上1つの共通の面に
なる。
【0120】この発明に従う方法を実行するのに適した
3D-CADシステムの典型的な構成要素を示す概略図である
図24を参照する。主プロセッサ1900は、グラフィック・
センサ1902を介して例えばCRTのような表示画面1904に
接続する。設計中の幾何学的物体1906は、画面1904上に
表示される。主プロセッサ1900は、画面1904上に表示さ
れる幾何学的物体を生成し、修正するための計算を実施
する。プリンタ1908は、コンセントレータ1910を介して
主プロセッサ1900に接続される。プリンタは、画面上に
表示される画像のハード・コピーや、CADシステムのデ
ータ・メモリ1912に格納される幾何学的物体のハード・
コピーを作り出すことができる。データ・メモリ1912
は、主プロセッサに接続され、磁気または光ディスクの
ような大容量の記憶装置を含む。プログラム・メモリ19
14は、設計中の幾何学的物体の作成および計算のために
使用される命令を含む。
【0121】CADシステムとの相互の作用のために、ユ
ーザーが利用できるいくつかの入力手段がある。示され
る実施例に、画面上に表示されるカーソルを制御するコ
ンピュータ・マウス1916がある。さらに画面上に、ユー
ザが画面上に表示されるカーソルを位置づけることによ
り所望のコマンドを選ぶことができるコマンド・メニュ
ーも表示される。さらに画面上に、ユーザがマウスの適
切な動きによってカーソルを表示された物体に位置づ
け、起動キーを押すことによって所望のコマンドを選ぶ
ことができるコマンド・メニューが表示される。表示さ
れるメニュー・オプションの例は、画面上に表示される
物体への融合表面の低下(degradation)である。マウス
に加えて、コマンドやデータをプロセッサに入力するた
めのキーボード1918が、与えられる。更なる入力手段
は、複数のノブを含むノブボックス1920であり、それに
よって、表示される物体は、多様な軸のまわりで回転す
ることができ、特定の方向に線形にシフトする。ユーザ
が、特定の部分(patch)を置き換えるために融合表面を
立体に組み込むオプションを選択するとき、上述したこ
の発明のステップは、主プロセッサ1900によって実行さ
れ、この方法はプログラム・メモリ1914に存在する。
【0122】本発明は例として次の実施態様を含む。 (1)コンピュータ支援の設計システムで、幾何学的立
体(200)のエッジ(E)に取って代わる融合または面取り表
面(F)を、立体のソリッドモデルに組み込む方法であっ
て、 a)一次の融合または面取り表面を規定するステップ
と、 b)上記一次の表面および上記立体の間の一次の境界を
計算するステップと、 c)上記一次の境界をトリムするステップと、 d)置き換えられるエッジ(E)に隣接する複数のエッジが
廃退すると判断される場合、上記複数のエッジを除去
し、上記立体(200)を幾何学的に矛盾する状態に置くス
テップと、 e)除去されるエッジ(E)に代わって新しい一次の面の新
しい境界を形成する新しいエッジ(RB、LB)を用いて、新
しい一次の融合または面取り面(F)を生成するステップ
と、 f)除去されるエッジ(E)の各々の頂点(SV、EV)につい
て、立体(200)が上記頂点のまわりで幾何学的に矛盾し
ているかどうか調べ、もしそうならば、上記頂点のまわ
りの立体のトポロジーをトリムするように、g)新しい
一次の面(F)上の、幾何学的に適合しない、トポロジー
的に隣接す るエッジによって定義される全てのギャップを集めるス
テップ(S302)と、 h)各々のギャップについて、面の一部分をトリムする一
連の横断セグメントのから成るトリミング・パス(T)を
計算するステップ(S308)と、 i)上記ステップh)で計算されたトリミング・パス(T)
に基づいてギャップを閉じる新しいトポロジーを生成す
るステップ(S310)と、 j)上記頂点のまわりの二次の非融合または非面取り面
(F1ないしF5)上の全てのギャップを集めるステップ(S31
2)と、 k)立体の全ての二次の面に関してステップk)で集めら
れたギャップについて、上記ステップh)およびi)を繰り
返すステップと、を実行するステップと、を含む上記方
法。
【0123】(2)上記ステップc)がさらに、 c1)一次の境界線と、置き換えられるエッジ(E)に隣接
する面(RF、LF)のエッジの間の交点(RV、LV)を計算する
ステップと、 c2)ステップc1)で計算される交点をもたない、置き換
えられるエッジ(E)に隣接する面のエッジ(e1ないしe4)
に印を付けるステップと、を含む、上記(1)の方法。
【0124】(3)上記ステップd)がさらに、d1)上記
ステップc2)で印を付けられたエッジ(e1ないしe4)を除
去するステップと、 d2)上記ステップd1より前に上記印を付けられたエッジ
との交点をもっていた上記立体のエッジ(R1ないしR4、R
N、LN)を、置き換えられるエッジの頂点の方へ引き寄せ
るステップであって、上記境界線との上記交点(RV、LV)
をもつエッジは、上記頂点および上記交点が接続される
ように引き寄せられるステップと、を含む、上記(2)に
従う方法。
【0125】(4)上記エッジは、オイラー演算子KEV
を上記モデルに適用することによって除去される、上記
(3)に従う方法。 (5)上記新しい一次の面は、オイラー演算子ADEFを上
記モデルに適用することによって生成される、上記(1)
から(4)のいずれかに従う方法。
【0126】(6)上記ステップg)は、立体の全ての面
について実行される、 g1)まだ処理されていない面を選ぶステップ(S402、S40
6)と、 g2)選ばれた面が上記新しい一次の面であるかどうか判
断するステップ(S408)と、 g3)上記ステップg2)で、上記選ばれた面が上記新しい
一次の面であると認められる場合、上記選ばれた面が上
記頂点を含むかどうか判断するステップ(S410)と、 g4)上記ステップg3)で、選ばれた面が上記頂点を含む
と認められる場合、上記頂点で始まるエッジを取得し、
上記頂点で終わるエッジを取得するステップ(S412)と、 g5)上記ステップg4)で取得されるエッジの端点が異な
るかどうか判断するステップ(S414)と、 g6)上記ステップg5)で端点が異なると判断される場
合、選ばれた面を、ギャップをもつ全ての選択された面
をもつリストに追加するステップ(S416)と、を含む、上
記(1)から(5)のいずれかに従う方法。
【0127】(7)上記ステップh)は、 h1)ギャップをもつ面のトリミング・パスが始まる開始
ノードと、ギャップをもつ面のトリミング・パス(T)が
終わる終了ノードを規定するステップであって、ノード
は、トリミング・パス(S802)の曲線セグメントであるス
テップと、 h2)上記開始ノードの端点および上記終了ノードの端点
を計算するステップと、 h3)現在のノードについて子供ノードを生成するステッ
プ(S812)と、 h4)上記ステップで生成された子供ノードをソートする
ステップ(S814)と、 h5)上記開始ノードから始まる全てのノードについて、
上記ステップh3)およびh4)を終了ノードに到達するまで
繰り返すステップと、を含み、上記曲線セグメントは、
ギャップをもつ面と周囲の面との交差曲線の一部であ
る、上記(1)から(6)のいずれかに従う方法。
【0128】(8)上記ステップh3)がさらに、 h3.1)現在のノードおよび現在の面の開始を規定するス
テップと、 h3.2)上記面を、現在の面と交わらせるステップ(S902)
と、 h3.3)ステップh3.2)によって生成される、端点を含む
全ての曲線を決定するステップ(S903)と、 h3.4)上記ステップh3.3)で決定される各々の曲線につ
いて、半曲線(S0,S4)を生成するステップであって、上
記半曲線は、各々の曲線の半無限の2つのセグメントの
うちの1つであり、各々のセグメントは、端点で始ま
り、反対の方向をもつステップ(S904)と、 h3.5)各々の生成された半曲線を、現在の面のエッジと
交わらせるステップ(S90)と、 h3.6)現在の面のエッジの内側に交点が存在する場合、
上記交点について子供ノードを生成するステップ(S918)
と、 h3.7)現在の面のエッジの内側に交点が存在しない場
合、 h3.7.1)上記半曲線を、上記頂点のまわりの開いた面と
交わらせ、1つまたは複数の交点を規定するステップ(S
912)と、 h3.7.2)上記ステップh3.7.1)で規定される各々の交点
について、子供ノードを生成するステップ(S916)と、を
実行するステップと、 h3.8)生成された子供ノードのリストを出力するステッ
プ(S922)と、を含む、上記(7)に従う方法。
【0129】(9)上記ステップh4)は、 h4.1)各々の半曲線(S0,S4)に、親ノードとそれぞれの
半曲線の間の角度に基づく値を割り当てるステップと、 h4.2)最も小さい角度をもつ半曲線を判断し、それに最
も高い優先順位を割り当てるステップと、 h4.3)最も高い優先順位をもつ半曲線の最短の曲線セグ
メントを決定するステップと、を含む、上記(7)または
(8)に従う方法。 (10)上記ステップi)は、 i1)第1の面についてのトリミング・パス(T)の開始ノ
ードを、現在のセグメントとして定義するステップと、 i2)開始ノードのエッジを現在のエッジとして定義する
ステップと、 i3)現在のセグメントに続く次のセグメントを決定する
ステップ(S1104)と、 i4)次のセグメントに対応する第2の面の現在のエッジ
を決定するステップ(S1110)と、 i5)次のセグメントが第2の面の元のエッジと交わるか
どうか評価するステップ(S1116)と、 i5.1)もし交点があれば、存在するエッジと第2の面の
元のエッジの間にある全てのエッジを除去するステップ
(S1118)と、 i5.2)もし交点がなければ、第2の面に、成長し、ギャ
ップをもつと印を付けるステップ(S1122)と、 i6)第1の面および第2の面の間に新しいエッジを生成
するステップ(S1120)と、 i7)現在のエッジと存在するエッジの間の全てのエッジ
を、新しいエッジの開始頂点に引き寄せるステップ(S11
22)と、 i8)現在の頂点のまわりの残りのエッジを、新しいエッ
ジの終了頂点に引き寄せるステップ(S1124)と、 i9)次のセグメントを現在のセグメントとして定義する
ステップと、 i10)新しいエッジを現在のエッジとして定義するステ
ップと、 i11)次のセグメントがトリミング・パスの終了ノード
であると判断されるまで、上記ステップi3)ないしi10)
を繰り返すステップと、を実行することにより、ギャッ
プをもつ第1の面と第1の面に隣接する第2の面との間
に新しいエッジを生成する、上記(1)から(10)のいずれ
かに従う方法。
【0130】(11)上記ステップk)は、 k1)まだ処理されていない面を選択するステップ(S45
2、S456)と、 k2)選ばれた面が頂点を含むかどうか判断するステップ
(S458)と、 k3)上記ステップk2)で、選ばれた面が上記頂点を含む
と認められる場合、上記頂点で始まるエッジを取得し、
上記頂点で終わるエッジを取得するステップ(S460)と、 k4)上記ステップk3)で取得されるエッジの端点が異な
るかどうか判断するステップ(S462)と、 k5)上記ステップk4)で新しい端点は異なると認められ
る場合、選ばれた面を、ギャップをもつ全ての選ばれた
面を含むリストに追加するステップ(S464)と、を含み、
ステップk1)ないしk5)は、立体(200)の全ての面につい
て実行される、上記(1)ないし(10)のいずれかに従う方
法。
【0131】(12)コンピューター支援の設計システ
ムであって、幾何学的物体(1906)を生成し、修正するた
めのコマンドおよびデータを入れる入力手段(1910、191
6、1918、1920)と、幾何学的物体を生成し、修正するた
めの計算を実施する処理手段(1900、1902)と、幾何学的
物体の表現を格納し、物体の生成および修正に関する命
令を格納するメモリ手段(1912、1914)と、幾何学的物体
を表示し、ユーザーによって選ばれる必要がある、置き
換えられるエッジ(E)を表示し、融合または面取り表面
が組み込まれた物体を表示する表示手段(1904)と、を備
え、上記処理手段およびメモリ手段は、上記(1)から(1
1)のいずれかに従う方法を実施するように動作する、上
記コンピュータ支援の設計システム。
【0132】
【発明の効果】本発明の方法によれば、融合または面取
り表面の組み込みによってトポロジーが収縮する、成長
する、消滅するケースを確実に処理することができ、そ
れによって複雑な立体に複数の融合または面取り表面を
組み込むことが可能である。
【図面の簡単な説明】
【図1】隣接する表面の収縮、消滅および成長をもたら
す複雑な融合操作の効果を説明する幾何学的立体を示す
図。
【図2】融合表面を立体に組み込むための第1のステッ
プを示す図。
【図3】融合表面を立体に組み込むための第1のステッ
プを示す図。
【図4】融合表面を立体に組み込むための第1のステッ
プを示す図。
【図5】融合表面を立体に組み込むための第1のステッ
プを示す図。
【図6】この発明に従う普遍的ルーチンを示すフローチ
ャート。
【図7】普遍的ルーチンのステップ01を示すフローチャ
ート。
【図8】普遍的ルーチンのステップ04を示すフローチャ
ート。
【図9】立体のそれぞれの面上の出発頂点SVのまわりの
ギャップの閉鎖を示す図。
【図10】頂点SVのまわりの初期のトポロジーを幾何学
的に示す図。
【図11】元の物体および可能性のある解決法を示す
図。
【図12】トリミング・パスを見つけるための深さ第1
(depth-first)の検索ルーチンのフローチャート。
【図13】パスのトリーについて子供ノードを生成する
フローチャート。
【図14】EVのまわりの融合表面を、SVのまわりの穴で
トリムした後の中間立体を示す図。
【図15】面F上のトリミング・パスのための半曲線を
示す図。
【図16】トリミング・パスを組み込むためのルーチン
を示すフローチャート。
【図17】面Fのトリミング・パスの組み込みを示す
図。
【図18】面F1についてトリミング・パスを示す図。
【図19】面F1のトリミング・パスの組み込みを示す
図。
【図20】面F2についてトリミング・パスを示す図。
【図21】面F3ないしF5についてトリミング・パスを示
す図。
【図22】融合表面を図2aに表される立体に組み込んだ
結果の融合された立体を示す図。
【図23】複数の融合表面が同時に組み込まれるこの発
明の更なる実施例を示す図。
【図24】この発明を取り入れた3D-CADシステムの構成
要素を示す概略図。
【図25】一定および可変半径の融合操作を適用した後
に生じる物体を示す図。
【図26】一定の距離、および一定の距離/角度面取り
操作を適用した後の結果の物体を示す図。
【図27】隣接する面を結果として縮ませる、融合表面
の組み込みを示す図。
【図28】隣接する面を結果として成長させる、融合表
面の組み込みを示す図。
【符号の説明】
S302 一次のギャップを集めるステップ S304 処理するギャップがあるか判断するステップ S308 トリミング・パスを計算するステップ S310 トリミング・パスを組み込み、新しいギャッ
プに印を付けるステップ S312 新しいギャップを集めるステップ

Claims (1)

    【特許請求の範囲】
  1. 【請求項1】コンピュータ支援の設計システムで、幾何
    学的立体のソリッドモデルに、幾何学的立体のエッジと
    置き換わる融合または面取り表面を組み込む方法であっ
    て、 a)一次の融合または面取り表面を規定するステップと、 b)上記一次の表面および上記立体の間の一次の境界線を
    計算するステップと、 c)上記一次の境界線をトリムするステップと、 d)置き換えられるエッジに隣接する複数のエッジが廃退
    すると判断される場合、上記複数のエッジを除去し、上
    記立体を幾何学的に矛盾する状態におくステップと、 e)除去されるエッジの代わりに新しい一次の面の新しい
    境界を示す新しいエッジを用いることによって、新しい
    一次の融合または面取り面を生成するステップと、 f)上記除去されるエッジの各々の頂点について、上記立
    体が上記頂点のまわりで幾何学的に矛盾するかどうか調
    べ、もしそうならば、上記頂点のまわりの上記立体のト
    ポロジーをトリムするように、 g)新しい一次の面上の、トポロジー的に隣接するが、幾
    何学的に適合しないエッジで規定される全てのギャップ
    を集めるステップと、 h)各々のギャップについて、面の一部をトリムする一連
    の横断セグメントから成るトリミング・パスを計算する
    ステップと、 i)上記ステップh)で計算されたトリミング・パスに基づ
    いてギャップを閉じる新しいトポロジーを生成するステ
    ップと、 j)上記頂点のまわりの二次の、非融合または非面取り面
    上の全てのギャップを集めるステップと、 k)上記立体の全ての二次の面について上記ステップk)で
    集められるギャップに関して、上記ステップh)およびi)
    を繰り返すステップと、を実行するステップと、を含む
    上記方法。
JP28513197A 1996-10-17 1997-10-17 ソリッドモデルに融合または面取り表面を組み込む方法 Expired - Fee Related JP3955368B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
EP96116708A EP0837430B1 (en) 1996-10-17 1996-10-17 Enhanced solid model generation
DE96116708.7 1996-10-17

Publications (2)

Publication Number Publication Date
JPH10134209A true JPH10134209A (ja) 1998-05-22
JP3955368B2 JP3955368B2 (ja) 2007-08-08

Family

ID=8223310

Family Applications (1)

Application Number Title Priority Date Filing Date
JP28513197A Expired - Fee Related JP3955368B2 (ja) 1996-10-17 1997-10-17 ソリッドモデルに融合または面取り表面を組み込む方法

Country Status (4)

Country Link
US (1) US6133922A (ja)
EP (1) EP0837430B1 (ja)
JP (1) JP3955368B2 (ja)
DE (1) DE69625484T2 (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2006085671A (ja) * 2004-09-14 2006-03-30 Microsoft Corp 任意の幾何学的経路に作用する関数

Families Citing this family (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7196702B1 (en) * 1998-07-23 2007-03-27 Freedesign, Inc. Geometric design and modeling system using control geometry
US6981695B1 (en) * 2003-10-14 2006-01-03 Polaris Industries Inc. All terrain vehicle with multiple winches
US8836701B1 (en) 1998-07-23 2014-09-16 Freedesign, Inc. Surface patch techniques for computational geometry
NL1010452C2 (nl) * 1998-11-02 2000-05-03 Koelman Intellectueel Eigendom Werkwijze en inrichting voor het ontwerpen van oppervlakken met een vrije vorm.
US6707461B1 (en) * 1999-12-21 2004-03-16 Adobe Systems Incorporated Blending objects with different effect parameters
US6760038B2 (en) * 2001-05-31 2004-07-06 Geometric Software Solutions Co. Limited Method for recognizing blends in solid models
US7612776B2 (en) 2002-09-14 2009-11-03 Microsoft Corporation Functions acting on arbitrary geometric paths
US8004517B1 (en) * 2005-06-24 2011-08-23 Geomagic, Inc. Methods, apparatus and computer program products that model three-dimensional surface structures
EP2028623B1 (en) * 2007-08-24 2011-10-19 Dassault Systèmes Method of computer-aided design of edges connecting faces of a modeled object
US11907617B2 (en) 2008-07-18 2024-02-20 Cad-Sense Llc Surface patch techniques for computational geometry
US8983801B2 (en) * 2009-04-23 2015-03-17 Vought Aircraft Industries, Inc. Method and system for transforming a CAD model of an object between engineering states
US8326583B2 (en) * 2009-05-29 2012-12-04 Siemens Product Lifecycle Management Software Inc. CAD system and method for blend recognition and chain sorting in a Brep model
GB2487405A (en) * 2011-01-20 2012-07-25 Ordonez Diegoa Converting coordinates of projections of a basic geometric shape into coordinates on a tubular enveloping surface particularly in cast on cast fabrication
US8983802B2 (en) * 2011-04-21 2015-03-17 Siemens Product Lifecycle Management Software Inc. Notch re-blend in an object model
US9690878B2 (en) * 2013-05-28 2017-06-27 Siemens Prodcut Lifecycle Management Software Inc Geometric modeling with mutually dependent blends
US10042817B2 (en) 2015-04-09 2018-08-07 Frustum Inc. Generating optimized geometries

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5353390A (en) * 1991-11-21 1994-10-04 Xerox Corporation Construction of elements for three-dimensional objects
DE69324363T2 (de) * 1993-10-11 1999-08-26 Hewlett-Packard Gmbh Verfahren zur Abschrägung der Kanten eines geometrischen Objektes in einem rechnergestützten Entwurfssystem
DE69414996T2 (de) * 1994-04-28 1999-04-15 Hewlett-Packard Gmbh, 71034 Boeblingen Verfahren zur Ausführung Boolescher Operationen auf geometrischen Objekten in einem rechnergestützen Entwurfsystem
DE19612016A1 (de) * 1996-03-15 1997-09-18 Daimler Benz Ag Verfahren zur rechnergestützten Geometriemodellierung
US5847956A (en) * 1996-09-26 1998-12-08 Computervision Corporation Automatic trimming of geometric objects in CAD/CAM systems

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2006085671A (ja) * 2004-09-14 2006-03-30 Microsoft Corp 任意の幾何学的経路に作用する関数

Also Published As

Publication number Publication date
DE69625484D1 (de) 2003-01-30
DE69625484T2 (de) 2003-10-30
EP0837430B1 (en) 2002-12-18
JP3955368B2 (ja) 2007-08-08
EP0837430A1 (en) 1998-04-22
US6133922A (en) 2000-10-17

Similar Documents

Publication Publication Date Title
JP3955368B2 (ja) ソリッドモデルに融合または面取り表面を組み込む方法
EP1302904B1 (en) Object modeling
US7492364B2 (en) System and method for creating and updating a three-dimensional model and creating a related neutral file format
US6606528B1 (en) Method for creating computer-aided design (CAD) solid models from numerically controlled (NC) machine instructions
CN101785032B (zh) 连接模型化物体的面的边的计算机辅助设计方法
US6727898B2 (en) Numerical analysis mesh generating method and apparatus
Lin Applied Computational Geometry. Towards Geometric Engineering: FCRC'96 Workshop, WACG'96, Philadelphia, PA, May 27-28, 1996, Selected Papers
JPH0756678B2 (ja) 対話形形状モデリングシステム
CN105793848B (zh) 包括建模步骤的计算机辅助设计方法
JPH0883296A (ja) 三次元形状作成方法及びその装置
JP3599386B2 (ja) エッジの混合方法
JPH10207523A (ja) 自動プログラミング装置および方法
JP2009122999A (ja) 三次元形状最適化装置および三次元形状最適化方法
US7333104B2 (en) Method and program of converting three-dimensional shape data into cell internal data
Steinbrenner et al. Fast Surface Meshing on Imperfect CAD Models.
Ye et al. Puzzlefixer: A visual reassembly system for immersive fragments restoration
CN113779684B (zh) 一种基于Revit的路基边坡格构梁施工模型建造方法
Hattab et al. Interactive fabrication of csg models with assisted carving
Ng et al. Incremental tessellation of trimmed parametric surfaces
Hattab et al. Differential 3d scanning
Wang Robust Geometry Kernel and UI for Handling Non-orientable 2-Mainfolds
Sapidis et al. Improved computational tools for concept development based on sketches and advanced CAD technologies
JP4078666B2 (ja) 数値解析メッシュ生成装置
JPH09231410A (ja) 三次元cad装置
JPS6324363A (ja) 形状モデルの変更方法

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20040928

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20040928

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20061226

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20070306

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: 20070424

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20070502

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: 20110511

Year of fee payment: 4

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20120511

Year of fee payment: 5

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20120511

Year of fee payment: 5

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20130511

Year of fee payment: 6

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20140511

Year of fee payment: 7

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

LAPS Cancellation because of no payment of annual fees