(57)【要約】【課題】製品のサーフェスの品質の高い設計を効率的に行えるような解決策を提供すること。ラウンドおよび／またはフィレットの処理を改善する解決策を提供すること。【解決手段】幾何学的な基準にしたがって、その面に関連する他の面を識別する。面は、連結されているとしてマークされ、各々の面のテッサレートされた表現を形成する複数の点を計算する。これに基づき、３次元の幾何学図形とその面に関連する面との間のインターセクションを表すデータを決定し、格納することによって重要な範囲を特徴付ける。格納されたデータにしたがって、点と点との間の境界を計算し、決定された境界にしたがってゾーンを決定する。連続的なゾーンを決定する方法は、フィレット／ラウンド／ステップ／ウォールのような断面を備えるゾーンを検出する。サーフェスは、決定されたゾーンにしたがって、再計算される。【選択図】図１４Ｂ
2006294036.tif 000002
【特許請求の範囲】
【請求項１】
複数の面を有するモデル化されたオブジェクトのコンピュータ支援設計（ＣＡＤ）の方法において、
前記方法は、
前記各々の面について、幾何学的な基準にしたがって、前記面に関連する、少なくとも他の前記面を識別すること、
前記各々の面のテッサレートされた表現を形成する複数の点を計算すること、
前記各々の面について、
前記面の前記テッサレートされた表現の各々の点について、
前記点に接する３次元の幾何学図形と前記面に関連する面として識別された他の面との間のインターセクションを表すデータを決定し、および格納すること、
それぞれ格納されたデータにしたがって、点と点との間の境界を計算すること、
前記計算された境界にしたがって、ゾーンを決定すること、および
前記決定されたゾーンにしたがって、新たな面を計算すること
を備えたことを特徴とする方法。
【請求項２】
前記計算された、テッサレートされた表現を形成する前記複数の点のうち各々の点は、テッサレーションの多角形の頂点であることを特徴とする請求項１に記載の方法。
【請求項３】
前記境界を計算することは、インターセクションと非インターセクションをそれぞれ示す、格納されたデータで、頂点を結ぶ線分上の境界点を決定することを特徴とする請求項２に記載の方法。
【請求項４】
前記境界を計算することは、前記境界点を計算するより前に、インターセクションと非インターセクションをそれぞれ示す、格納されたデータで、頂点を有する多角形を細分することを特徴とする請求項３に記載の方法。
【請求項５】
前記データは、前記図形と前記他の面との間のインターセクションの量を表すことを特徴とする請求項１から請求項４のいずれか一つに記載の方法。
【請求項６】
処理されない面をユーザが選択すること、および
後続の、処理される前記面からこの面を取り除くこと
をさらに備えたことを特徴とする請求項１から請求項５のいずれか一つに記載の方法。
【請求項７】
取り除かれた前記面に隣接する面を外挿する方法をさらに備えたことを特徴とする請求項６に記載の方法。
【請求項８】
前記幾何学的な基準は、少なくとも、関連する面として識別される前記面の外角が１８０．５度から３６０度の間にあることを特徴とする請求項１から請求項７のいずれか一つに記載の方法。
【請求項９】
インターセクションを表すデータを決定し、および格納する前記方法は、ユーザによって選択される面を介して、関連する面の各々の対について、さらに実行されることを特徴とする請求項１から請求項８のいずれか一つに記載の方法。
【請求項１０】
ゾーンを決定する前記方法は、
関数ｆ1と条件Ｃ1を使用する結合ルーチンを呼び出すことによって、エッジを備え、およびフィレットのような、またはラウンドのような断面を有する、一又は複数のゾーンを決定することを特徴とする請求項１から請求項９のいずれか一つに記載の方法。
【請求項１１】
ゾーンを決定する前記方法は、
関数ｆ2と条件Ｃ2を使用する結合ルーチンを呼び出すことによって、３次元のオブジェクトに関連付けられた寸法に満たない最短距離の二つのエッジを備え、およびステップのような断面を有する、一又は複数のゾーンを決定することを特徴とする請求項１から請求項１０のいずれか一つに記載の方法。
【請求項１２】
ゾーンを決定する前記方法は、
関数ｆ3と条件Ｃ3を使用する結合ルーチンを呼び出すことによって、３次元のオブジェクトに関連付けられた寸法に満たない最短距離の少なくとも二つのエッジによって分けられた、実質的に平行な二つの面の部分を備え、およびウォールのような断面を有する、一又は複数のゾーンを決定することを特徴とする請求項１から請求項１１のいずれか一つに記載の方法。
【請求項１３】
ゾーンを決定する前記方法は、
関数ｆ1と条件Ｃ1を使用する結合ルーチンを呼び出すことによって、エッジを備え、およびフィレットのような、またはラウンドのような断面を有する、一又は複数のゾーンを決定すること、および
それぞれ関数ｆ2と条件Ｃ2、および関数ｆ3と条件Ｃ3を使用する結合ルーチンを呼び出すことによって、３次元のオブジェクトに関連付けられた寸法に満たない最短距離の二つのエッジを備え、およびそれぞれ、ステップのような断面、およびウォールのような断面を有する、一又は複数のゾーンを決定すること
を備えたことを特徴とする請求項１から請求項９のいずれか一つに記載の方法。
【請求項１４】
ゾーンを決定する前記方法は、
前記すでに決定された一又は複数のゾーン、および前記計算された境界にしたがって、一又は複数の残りのゾーンを決定することをさらに備えたことを特徴とする請求項９から請求項１２のいずれか一つに記載の方法。
【請求項１５】
呼び出される前記結合ルーチンは、
第一の境界Ｆiについて、
前記第一の境界Ｆiの一又は複数の点Ｐi,jについて、
第二の境界Ｆkついて、
前記第二の境界Ｆkの一又は複数の点Ｐk,lについて、
決定された、前記一又は複数のゾーンにしたがって、ｆmが関数ｆ1、ｆ2、またはｆ3であるｙi,j,k,l＝ｆm（Ｐi,j，Ｐk,l）を計算し、
決定された、前記一又は複数のゾーンにしたがって、ｙi,j,k,l-1とｙi,j,k,lは、Ｃmが条件Ｃ1、Ｃ2、またはＣ3である条件Ｃmを満たす、一又は複数の特定の対（Ｐk,l-1*，Ｐk,l*）を選択し、
さらなる条件Ｃsにしたがって、前記一又は複数の特定の対（Ｐk,l-1*，Ｐk,l*）の中から特定の点Ｐk,l***を選択し、
前記対（Ｐi,j，Ｐk,l***）を格納する
ことを特徴とする請求項１０から請求項１２のいずれか一つに記載の方法。
【請求項１６】
新たな面を計算する前記方法は、各々の決定されたゾーンについて、前記決定されたゾーンの前記種類に適用する、面を計算するルーチンを呼び出すことを特徴とする請求項１０から請求項１５のいずれか一つに記載の方法。
【請求項１７】
計算された前記新たな面にしたがって、モデル化されたオブジェクトのデータの面を修正することをさらに備えたことを特徴とする請求項１６に記載の方法。
【請求項１８】
前記３次元の幾何学図形は、前記面の前記テッサレートされた表現の前記点で、前記面に接する半径ｒの球を備えたことを特徴とする請求項１から請求項１７のいずれか一つに記載の方法。
【請求項１９】
前記３次元の幾何学図形は、それぞれ半径ｒｘ、ｒｃの二つの球を備え、前記面のテッサレートされた表現の前記点で正接することを特徴とする請求項１から請求項１７のいずれか一つに記載の方法。
【請求項２０】
前記３次元の幾何学図形は円錐を備え、前記３次元の幾何学図形のインターセクションを表すデータを決定し、および格納する方法において、前記図形は、前記点に接し、所定の縦、および横の角度を与えられることを特徴とする請求項１から請求項９のいずれか一つに記載の方法。
【請求項２１】
請求項１から請求項１９のいずれか一つの方法を実装するコンピュータプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、コンピュータプログラムおよびシステムの分野に関し、より詳細には、コンピュータ支援設計（ＣＡＤ）システム、およびコンピュータ支援製造（ＣＡＭ）の分野に関する。
【０００２】
ＣＡＴＩＡ（登録商標）という登録商標の下、本件特許出願人によって提供されている製品など、多くのシステムおよびプログラムが、部品の設計、または部品の組み立て分野の業界に提供されている。これらの、いわゆるコンピュータ支援設計（ＣＡＤ）システムにより、ユーザは、複雑な３次元（３Ｄ）のオブジェクトのモデリング、またはオブジェクトの組み立てを、構築し、および操作することができる。ＣＡＤシステムは、ある場合には面（face）とともに、エッジ（edge）または線（line）を使用して、モデル化されたオブジェクトの表現を提供する。線またはエッジを、様々な方法、例えば、ＮＵＲＢＳ（Non-Uniform Rational B-Spline：非一様有理Ｂスプライン）で表現することができる。これらのＣＡＤシステムは、部品または部品の組み立てを、モデル化されたオブジェクトとして制御し、オブジェクトは主として形状の設計書である。具体的には、ＣＡＤのファイルは、設計書を含み、そこから形状が生成される。形状から、表現が生成される。設計書、形状、および表現を、一つのＣＡＤファイル、または複数のＣＡＤファイルに格納することができる。ＣＡＤシステムは、設計者向けの、モデル化されたオブジェクトを表現するグラフィックツールを含む。これらのツールは、複雑なオブジェクトの表示のために設けられている。ＣＡＤシステムにおいてオブジェクトを表現するファイルの典型的な大きさは、一部分は、メガバイトの範囲まで拡張する。組み立ては、何千もの部品を備えることができる。ＣＡＤシステムは、オブジェクトのモデルを制御し、それらを電子ファイルに格納する。
【０００３】
【特許文献１】特開平２−７１７４号公報
【発明の開示】
【発明が解決しようとする課題】
【０００４】
言うまでもなく、ＣＡＤシステムの支援で設計される、モデル化されたオブジェクトは、少なくともあるアプリケーションにとっては、最終の組立製品にできるだけ厳密に似ていることを狙いとする。
【０００５】
例えば、製品／部品を成型する分野においては、ユース（use）は、場合によっては、はっきりとしたエッジによって分けられた連続的な面と考えられる型（mold）でできている。実際のエッジ（例えば、実際の型のエッジ）は、完全にはっきりとしたエッジではなく、むしろ若干ラウンド（round）またはフィレット（fillet）の断面（section）を示す。したがって、そのような特徴が、対応する理論上のモデルにおいて無視される場合、成型のために必要な原材料の量は、理論上のモデルから期待したものとは若干異なる。言うまでもなく、実際のオブジェクトとモデル化されたオブジェクトとが全体的に一致するかということに焦点を当てる限り、そのような細部は重要ではないと分かるだろう。しかし、このことが重要になるのは、大量／連続的な生産を考慮する場合であり、その場合には、生産に必要な原材料の、理論上の量と実際の量の差異は、例えば、一年という期間では相当なものとなる。単純な例として、エッジの長さがＬの立方体のモデル化された製品の大量生産を考えよう。実際の成型とともに生じる、立方体の１２個のエッジのラウンド操作（“ベバリング（beveling）”と呼ばれることがある）は、ｒが接触円の半径である、３Ｌｒ2（４−π）の体積を取り除くことに等しい。例えば、ｒ＝Ｌ／１０と考えると、完全な立方体の体積と最終製品の体積との間の差異は、約２．６％になる。このため、人々は、“実際の”最終製品の特徴をできるだけ忠実に予測することは必要であり、予測を改善するべきであるということを理解する。言い換えれば、理論上のモデルと実際のモデルとの間の一致点を改善することは必要である。この点において、および特定のアプリケーションソフトについては、例えば、製造可能性または審美的な理由において、ＣＡＤユーザは時々、理論上の型または製品のはっきりとしたエッジを、ラウンドされたエッジに置き換えなければならない。
【０００６】
このことを達成するため、伝統的なモデリングのやり方は、製品のエッジの、フィレットのような断面（例えば、凹状のエッジに適用する半径）、またはラウンドのような断面（例えば、全ての凸状のエッジに適用する半径）を一つずつ作成することである。図１で説明するように、ワークボディ１０は、フィレットのような断面１２（以後、“フィレット（fillet）”と言及する）、および／またはラウンドのような断面１４（以後、“ラウンド（round）”）を示す。
【０００７】
図２は、ワークボディ１０のラウンド１４およびフィレット１２の典型的な設計方法の結果を、一つずつの処理として示す。このような処理にしたがって、ラウンドおよび／またはフィレットを作成することが、すぐに非常に複雑になってしまうのは、モデリングをする要素の数が増える場合である。ユーザは、方法の特定の手順を遵守しなければならないが、その方法は、モデル化されたオブジェクトごとに変わる可能性がある。遵守しなければ、ラウンドまたはフィレットの設計は失敗するだろう。モデル化されたオブジェクトの複雑さ（複数のエッジ、コーナ（corner）など）は、さらなる失敗要素になる可能性がある。具体的には、エッジが干渉する（collide）ところ（コーナ、ハードゾーン（hard zone）など）のラウンドまたはフィレットのモデリングは、苦労するところである。さらに、伝統的なフィレットの処理は、各操作間の有効な閉鎖的形状で作られるモデルを（使用されているアルゴリズムの内部制約により）制約する。こういった制約により、手動のフィレットまたはラウンドは失敗に至ることが多い。それを避けるために、はっきりとしたエッジを修正する必要のあるフィレットまたはラウンドの作成順序を決定するために、ユーザは膨大な量の時間を費やさなければならない。
【０００８】
したがって、製品のサーフェス（surface）の品質の高い設計を効率的に行えるように改善する解決策への要求、具体的には、ラウンドおよび／またはフィレットの処理を改善する解決策への要求が存在する。
【課題を解決するための手段】
【０００９】
この目的のために、本発明は、いくつかの面を有するモデル化されたオブジェクトのコンピュータ支援設計（ＣＡＤ）の方法を提案する。その方法は、以下の方法を備える。
−各々の面について、幾何学的な基準にしたがって、その面に関連する少なくとも他の面を識別すること。
−各々の面のテッサレート（tessellate）された表現を形成する複数の点を計算すること。
−各々の面について、
その面のテッサレートされた表現の各々の点について、
その点に接する３次元の幾何学図形とその面に関する面として識別される他の面との間のインターセクションを表すデータを決定し、および格納すること。
−各々格納されたデータにしたがって、点と点との間の境界（frontier）を計算すること。
−計算された境界にしたがって、ゾーン（zone）を決定すること。
−決定されたゾーンにしたがって、新たな面を計算すること。
【００１０】
他の実施形態では、本発明による処理は、一又は複数の以下の特徴を備えることが可能である。
−計算される、テッサレートされた表現を形成する複数の点の各々の点は、テッサレーション（tessellation）の多角形の頂点（vertex）である。
−境界を計算する方法は、頂点を結ぶ線分（segment）上の境界点（frontier point）を、それぞれ、インターセクションおよび非インターセクションを示す、格納されたデータを用いて決定することを備える。
−境界を計算する方法は、境界点を計算する前に、頂点を有する多角形を、それぞれ、インターセクションおよび非インターセクションを示す、格納されたデータを用いて細分（subdivide）することを備える。
−そのデータは、図形と他の面との間のインターセクションの量を表す。
−その方法は、処理されない面をユーザが選択する方法、および処理される面からこの面を取り去る方法をさらに備える。
−その方法は、取り去られた面に隣接する面を外挿する（extrapolate）方法をさらに備える。
−幾何学的な基準は、少なくとも、関連する面として識別される面の外角が、１８０．５度から３６０度の間にあることを備える。
−インターセクションを表すデータを決定し、および格納する方法は、ユーザによって選択される面を介して、関連する面の各々の組み合わせについて実行される。
−ゾーンを決定する方法は、関数ｆ1と条件Ｃ1を使用する結合ルーチン（coupling routine）を呼び出すことによって、エッジを備え、およびフィレットのような、またはラウンドのような断面を有する、一又は複数のゾーンを決定することを備える。
−ゾーンを決定する方法は、関数ｆ2と条件Ｃ2を使用する結合ルーチンを呼び出すことによって、３次元のオブジェクトに関連付けられた寸法に満たない最短距離の二つのエッジを備え、およびステップ（step）のような断面を有する、一又は複数のゾーンを決定することを備える。
−ゾーンを決定する方法は、関数ｆ3と条件Ｃ3を使用する結合ルーチンを呼び出すことによって、３次元のオブジェクトに関連付けられた寸法に満たない最短距離の、少なくとも二つのエッジによって分けられた、二つの実質的に平行な面の部分を備え、およびウォール（wall）のような断面を有する、一又は複数のゾーンを決定することを備える。
−ゾーンを決定する方法は、関数ｆ1と条件Ｃ1を使用する結合ルーチンを呼び出すことによって、エッジを備え、およびフィレットのような、またはラウンドのような断面を有する、一又は複数のゾーンを決定することを備え、一又は複数のゾーンを決定する方法は、それぞれ、関数ｆ2と条件Ｃ2または関数ｆ3と条件Ｃ3を使用する結合ルーチンを呼び出すことによって、３次元のオブジェクトに関連付けられた寸法に満たない最短距離の二つのエッジを備え、それぞれ、ステップのような、またはウォールのような断面を有することを備える。
−ゾーンを決定する方法は、すでに決定された一又は複数のゾーン、および計算された境界にしたがって、一又は複数の残りのゾーンを決定することをさらに備える。
−呼び出された結合ルーチンは、
各々の境界Ｆiについて、
その境界Ｆiの各々の点Ｐi,jについて、
その境界Ｆiとは異なる各々の境界Ｆkについて、
その境界Ｆkの各々の点Ｐk,lについて、
決定される一又は複数のゾーンにしたがって、ｆmが関数ｆ1、ｆ2、またはｆ3である、ｙi,j,k,l＝ｆm（Ｐi,j，Ｐk,l）を計算すること、
決定される一又は複数のゾーンにしたがって、ｙi,j,k,l-1およびｙi,j,k,lは、Ｃmが条件Ｃ1、Ｃ2、またはＣ3である条件Ｃmを満たす、特定の対（Ｐk,l-1*，Ｐk,l*）を選択すること、
さらなる条件Ｃsにしたがって、特定の対（Ｐk,l-1*，Ｐk,l*）の中から、特定の点Ｐk,l***を選択すること、
対（Ｐi,j，Ｐk,l***）を格納すること
を備える。
−新たな面を計算する方法は、決定された各々のゾーンについて、決定されたゾーンの種類に適用される、面を計算するルーチンを呼び出す。
−その方法は、計算された新たな面にしたがって、モデル化されたオブジェクトのデータの面を修正する方法をさらに備える。
−３次元の幾何学図形は、その面のテッサレートされた表現の点で、その面に接する半径ｒの球を備える。
−３次元の幾何学図形は、それぞれの半径がｒｘおよびｒｃの二つの球を備え、その面のテッサレートされた表現の点で正接する。
−３次元の幾何学図形は、円錐を備え、３次元の幾何学図形のインターセクションを表すデータを決定し、および格納する方法において、その図形はその点に接し、並びに特定の縦、および横の角度を与えられる。
【００１１】
本発明は、本発明の方法を実装するコンピュータプログラムにさらに関する。
【発明を実施するための最良の形態】
【００１２】
本発明は、いくつかの面を有するモデル化されたオブジェクトのコンピュータ支援設計（ＣＡＤ）の方法を対象にする。その方法は、オブジェクトの各々の面が、幾何学的な基準にしたがって、その面に関する少なくとも他の面を識別する方法を備える。面は、連結されている（connected）としてマークされる。これは、その方法の後続の方法を実装するのに必要な“トポロジー前処理（topology preprocessing）”の一部である。例えば、その基準は、識別される面の外角に関する可能性がある。その方法は、各々の面のテッサレートされた表現を形成する複数の点を計算する方法も備える。このテッサレーションに基づいて、その方法は、上記の識別する方法にしたがって、３次元の幾何学図形（所定の面に接する）とその面に関する面との間のインターセクションを表すデータを決定し、および格納することによって、重要な範囲を特徴付ける。インターセクションが生じるか否かを決定する方法は、面のテッサレートされた表現の各々の点、およびオブジェクトの各々の面について実行される。望ましくは、ユーザの入力操作にしたがって、全ての面は、必ずしも処理される必要はない。“境界抽出（frontier extraction）”の一般的な方法の一部分として、その方法は、各々格納されたデータにしたがって点と点との間の境界を計算し（サーフェスの再計算が生じるゾーンの境界を定める）、並びに決定された境界にしたがってゾーンを決定する。このやり方は、大局的な（global）やり方である。まず、ボディ全体の境界を決定し、次に、その境界からゾーンを決定する。これは、フィレット／ラウンドが、部分処理による一部分として、局所的に（local）計算される以前のやり方とは対照的である。望ましくは、連続的なゾーンを決定する方法は、実装される。それは、適切な結合ルーチンを呼び出すことによって、少なくとも一つのエッジを備え、およびフィレット／ラウンドのような断面、ステップ／ウォールのような断面を有し、またはより複雑な模様を示すゾーンの検出を備える。最終的に、新たな面を、決定されたゾーンにしたがって計算することができる。
【００１３】
本発明は、そのゾーンにおけるラウンドおよび／またはフィレットを迅速、かつ自動的に計算することを可能にする。全ての重要な範囲は、検出されやすくなり、その方法によって処理される、決定されたゾーンになる。自動化されたプロセスとして、“手動で”遵守される方法の順序のおかげで、事前に困難を避けることができる。３次元の図形のインターセクションと隣接する面に基づく方法を使用することにより、正の境界を提供することが可能になる。後続のゾーンの決定は、それ故に簡単に行われる。その方法の大局的なやり方および連続的な特徴は、モデルボディが、各操作間の有効な閉鎖的な形状でできていることにとらわれなくするが、そのことが、以前は大きな失敗の元であった。その結果、完全には避けられないとしても、ラウンドおよび／またはフィレットの失敗は、大幅に減少する。したがって、本発明によって提供される解決法は、製品のサーフェスの品質の高い設計をより効率的に行えるようにし、具体的には、コーナのラウンドおよび／またはフィレットの処理を効率的に行えるようにする。例えば、本発明による方法を実装することにより、従来のフィレットの作業の最後の１０％まで計算が可能になり、一方、多数の新たな可能性およびユーザの選択肢が提供される。必要とされるＣＰＵの時間は、処理される要素の数とともにおおよそ直線的に増加することを指摘することは価値がある。
【００１４】
上記の方法は、以下に位置づけることができる、より一般的な方法に属する。
−“トポロジー前処理（Topology preprocessing）”。ワークボディを、フィレットされない面として選択された面にしたがって、および／または、クラック（crack）とスリバ（sliver）の制御オプションが選択された場合に対比されるように、用意することができる。問題になっている特定の面は“スムーズスキン（smooth skins）”と考えることができ、以後の説明で詳細に述べる。さらに、スムーズスキン間のフィレット状の凸面は、計算される。
−“テッサレーション”。当技術分野において知られているように、その目的は、ボディを多面体に変換することである。しかしながら、結果として生じる多面体の迫真性、方法の正確さ、および利用可能なハードウェア資源のバランスを保つように、特別の注意は入力パラメータを制御するために払われる。
−“境界抽出”。後に詳細に述べるように、多面体は、パーティションで区切られ、一組の“移動可能な（movable）”頂点、および一組の“移動不可能な（unmovable）”頂点になる。サブセット間の境界は戻り、後続の方法に関する情報は集約される。
【００１５】
加えて、本発明の方法は、場合により、以下の一般的な方法を備える。
−“正確なフィレットの認識（exact fillet recognition）”。正のフィレット／ラウンドのゾーンが決定され、三つの面が集まる領域は再計算される。
−“ラウンド近似（round approximation）”。ラウンドされたサーフェスが、呼び出された面−面（face-face）フィレットオペレータ、または場合によりフィレットオペレータが失敗するブレンドオペレータ（blend operator）に基づいて作成される（“正確なフィレットの認識”にしたがって、フィレットのようなフィレット、またはラウンドのようなフィレットのいずれか）。
−“ハードゾーン制御（hard zone management）”。コーナのサーフェスは作成され、フィルオペレータ（filling operator）が呼び出される。ブレンドオペレータもまた、呼び出され、ハードゾーンはフィルルーチン（filling routine）にはあまりにも複雑になる。
−“ソーイング（Sewing）”。作成されたサーフェスは、最終ボディにソーイングされ、フィレットされていないエッジは、変わらないままである。
【００１６】
このような一般的な方法を、オプションとしての下位の方法として分解し、本発明を実行するために、有利に実装することができる。
【００１７】
以下において、“フィレット”および“ラウンド”の概念は、特別の定めのない限り、当技術分野においてしばしば認められるものとして、通常、“フィレット”という言葉に包含される。
【００１８】
図３ないし図７は、モデル化されたオブジェクトのコンピュータ支援設計（ＣＡＤ）の方法を表すフローチャートを示し、それを以下において説明する。図９ないし図１４Ｂは、上記フローチャートのさまざまな方法において、得られた典型的なモデルのボディの面を示す。
【００１９】
図３は、“トポロジー前処理”の一般的な方法のために設けられており、それ自体は、二つの主要な部分を備え、それぞれ、“機能的な（functional）”面の制御（例えば、処理されない面）、およびスリバ／クラックの制御のために設けられている。この図を参照すると、工程１００で、所定のインプットボディ（例えば、図９のインプットボディ１０参照）に関して、処理は開始される。工程１１０で、その処理は、ユーザが、処理されるべきでないものとして、所定の面を前もって選択したかどうか、またはユーザ自身がそのような面を選択できるかどうかを、検証することができる。面が一つも選択されない場合、処理されるボディ（ワークボディ）は、従前のものと同じままである（工程１２０）。一方、面が選択されている場合、選択された面は、インプットボディにおいて取り扱われる一組の面から取り除かれる。
【００２０】
これは、図９Ａにおいて説明されているが、モデルオブジェクト１０の面１６は、最初の面から取り除かれる。結果として（図９Ｂ）、図示されているように、他の面との組み合わせの計算によってエッチング処理をすることはできるが、この面と他の面との間のエッジは再計算されない。特定の面を取り除くことが、好都合であると分かるのは、ユーザが、サーフェスの再計算をカスタマイズしたい場合である。
【００２１】
次に図３に戻ると、縁取り（free borders）の外挿（extrapolation）、例えば、処理されるべきでない面として選択された面に隣接する各々の面を、場合により、実行することができる。このことが、実際に好都合であるのは、若干不揃いな境界の型を、そのような面の近傍で計算できることに気づくからである。したがって、外挿の方法が成功したか否かは、工程１１４で、点検される。工程１１４でイエスであれば、考えられるワークボディは、外挿された面を持つワークボディになるだろう（工程１１８）。外挿の失敗が生じた場合には（例えば、外挿された面が、他の面と干渉している場合）、処理されるべきでないものとして、ユーザによって選択された面が、さらに考慮することなく、捨てられる（工程１２０）ことを別にすれば、外挿されたボディは捨てられ、ワークボディは従前のインプットボディと同じままである（工程１１６）。
【００２２】
以下の工程１３０−工程１３４において、処理は、ボディの面と面との間の連結部（connection）を作成する（工程１３２−工程１３４）。具体的には、方法は、ワークボディの各々の面について（工程１３０）、幾何学的な基準（例えば、外角が１８０．５度から３６０度の間にある面）にしたがって、その面に関連する少なくとも他のボディの面を識別する。「外角」は、二つの隣接した面を横断する断面において、外面に形成される大きい方の角度である。面の角度がその基準に合致する場合、それらは鋭角によって分けられていると考えられ、それらの面は連結されているものとしてマークされる。対照的に、これらの基準に合致しない面は、単一の連続的な面（例えば、当技術分野において知られるような“スムーズスキン（smooth skin）”）として考えられる。結果として、同じスムーズスキンに属する二つの面は、スムーズスキンが向かい合う残りの処理においても向かい合うことはないだろう。
【００２３】
状況に応じて、ユーザは、スリバとクラックの制御のために設けられているオプションを選択することができる（工程１４０−工程１４４）。スリバとクラックは、凸状および凹状のエッジの両方を共有する、隣接するスムーズスキンに関連する。これは図１０Ａに例示されており、ワークボディ１０のスリバは、参照番号Ａによって示され、クラックは、参照番号Ｃによって示される。図のように、スリバは、凹面／凸面／凸面／凹面の順番の断面を典型的に有しており、一方、クラックは正反対のものを表す。ここで、ＢとＤは、スリバのような断面およびクラックのような断面をそれぞれ有しているけれども、主要なエッジがラウンドであるため、スムーズスキンと考えられている。ＢとＤの制御を、次の段落で説明する。スリバのオプションも、クラックのオプションも選択されていなければ、その方法のデフォルトの振る舞い（behavior）は、図１０Ｂに示すような形状になるだろう。すなわち、スリバＡ／クラックＣの端（end）は、若干ラウンドされるが、望んだラウンド／フィレットの半径は達成されない。対照的に、スリバのオプションか、クラックのオプションが選択されている場合、そのようなオプションにより、遠隔の面との間の連結部が作成されることが可能になる。例えば、面ＳＡ２が選択され、ＳＡ１とＳＡ３との間の連結部の作成が可能になる。その結果（図１０Ｃ）、スリバＡは、ほとんどつぶれてしまう。逆に、クラック制御ウィザードの中でＳＣ２を選択することにより、クラックＣは、ほとんど埋まってしまう。ＡまたはＣに関して、得られた型は、ラウンド／フィレットの半径と一致する。
【００２４】
さらに、図１０Ａ−Ｃに示されているように、ラウンドは、スリバＢの頂点に前から存在し、フィレットは、クラックＤの底に前から存在する。前から存在するそのようなフィレット／ラウンドは、クラック／スリバのそれぞれの横断面における特異性を隠し、対応する面は、一つの連続するスムーズスキンとして見られる。結果として、これらの面は、向かい合わず、図１０Ａから図１０Ｃに渡る場合に見られるように、前から存在するフィレット／ラウンド（例えば、図１０Ａ−Ｃのインプットフィレット／ラウンドの半径よりも小さな半径で）を維持することを可能にする。さらに言えば、その処理の実装にしたがって、インプットボディに認められる唯一のフィレットは、デザインフィレット（design fillet）であろう。現段階において、連結部が、処理されるボディの隣接する面との間で作成され、異なる、隣接する（場合により、遠隔の）スムーズスキンだけは、以下に述べるように、向かい合いやすいということを思い出されたい。
【００２５】
フローチャートに戻ると、図４は、図３の続きであり、通常、“テッサレーション”および“境界抽出”の一般的な方法のために設けられている。
【００２６】
図４を参照すると、ボディの各々の面のテッサレートされた表現を形成する複数の点は、工程１５０で計算され、テッサレートされたワークボディを作り出す。通常、テッサレートされたサーフェスは、多角形の集合で構成される。これらは典型的な三角形であり、“三角形”は、以後、一般性を失うことなく使用される。テッサレートされた表現の複数の点のうちの各々の点は、三角形の頂点（vertex）である。頂点の代わりに、各々の三角形の中心を使用することを考えることは明らかに可能である。
【００２７】
工程１６０で、後に格納されるデータを考慮すると、テッサレートされたワークボディの各々の頂点に、関連付けられた初期のデフォルト値を与えることができる。例えば、後により明らかになるように、それらは、「移動できない（not mobile）」ものとしてマークされる。
【００２８】
次に、ワークボディの各々の面（例えば、工程１７０の“面１（face 1）”）およびその面のテッサレートされた表現の各々の頂点（工程１７２）について、その方法は、その頂点に接する３次元の幾何学図形とその面に連結するものとして上記で識別された面との間のインターセクションを表すデータを決定し、格納する（工程１７０−工程１８２）。このことが特に好都合であると分かるのは、後に計算されるフィレットの半径は、３次元の幾何学的な検討のおかげで、上記で使用される、干渉する３次元の図形の寸法の特徴に関連付けることができるからである。具体的には、３次元の図形は、その面のテッサレートされた表現の頂点で、その面（“面１”）に接する一つの球、または二つの球のどちらかになることができ、そのサーフェスに正接する。このことは、図１１を参照して強調されるだろう。このため、３次元の図形は“球”によって示される。工程１７２で、その方法は面１の特定の頂点を検証する。まず、球が、この頂点ですでに横たえられているか（lay down）否かを点検する（工程１７４）。もし横たえられていなければ、その方法は、面１に連結している各々の面（“面２（face 2）”）のために、その頂点において、都合の良い半径（デフォルト、またはユーザの選択可能な半径）で球を横たえることができる（工程１７６−工程１７８）。次に、球が面２に交わっているか否かを検証する（工程１８０）。
【００２９】
言うまでもなく、当業者には明らかなように、他のスキーム（scheme）を、干渉（collision）の検出のために考慮できる。干渉を表すデータは、検証された頂点に起因すると考えられる。例えば、そのデータは、もし干渉が検出された場合、一つのバイナリ値、例えば１に、そうでなければ、０に制限することができる。また、そのデータは、例えば、面２に干渉する球の一部分に基づいて、干渉の範囲を表すことができる。そのデータは、球が他の面に正接するか、またはある程度正接するということが分かったことに対応する三角形、または頂点の数で構成することができる。
【００３０】
隣接する面、または遠隔の面の３次元の図形のインターセクションは、図１１を参照してより良く理解されるだろう。図１１は、所定のワークボディ１０の断面、並びにテッサレートされた面２１、２３、２５、２７、２９、３１、３３、および３５のさまざまな頂点２０、２２、２４、２６で横たえられた球３０、３２を示す。問題になっている面が、“スムーズスキン”（すなわち、その外角が所定の値（例えば、１８０．５度−３６０度）より大きい、エッジによって分けられた面）であることを覚えておくことは重要である。
【００３１】
この例においては、面２３は、垂直のウォールの断面（面２１に直角に、隣接する）と連続する水平のウォールの部分（面２５に直角に、隣接する）を備えるスムーズスキンである。さらに、面の対（２１−２３）、（２３−２５）、（２５−２７）、（２７−２９）、（２９−３１）、（３１−３３）、（３３−３５）、および（３５−２１）だけが、図１１の例において検証される（工程１７２、工程１７６）。明瞭にするため、球は図１１の全ての面の組み合わせのために表されていない。
【００３２】
球は、オブジェクトに対して外側の３０（凹状のエッジに関する凹状の干渉を検出するため）、または内側の３２（凸状の干渉を検出するため）であり、それらは、検証された頂点（例えば、頂点２０での球３０、３２参照）でボディの面に正接するということに気づかれたい。
【００３３】
このように、所定の種類の一つの球だけを、上記の両方の球の種類（外側または内側）を検証するために必要な二つのループで一度に検証することができ、または、二つの球を、一つのループで一度に検証することができる。
【００３４】
図１１に包含されている、他の実施形態においても、３次元の図形は、それぞれの半径がｒｘ、ｒｃである二つの球３０、３２を備えることができ、その頂点でその面に正接する。
【００３５】
もっとはっきり言えば、一旦、隣接する面の間のフィレットの凸面が計算された場合、ただ一つの球だけを使用することができ、その球の種類は、関連する面を識別する方法の後に、知られるということを当業者は理解することができる。干渉のために検証される連結された面（面１および面２）の計算された凸面により、その方法は、所定の点で都合の良い球（内側または外側の球）を選択するために適用され、その後にその球を検証する。例として、凸状のエッジとして見られる、面２１と面２３との間のエッジを考えたい。一旦、このエッジの凸面が知られた場合、外側の球の使用が重大ではないことが明らかなのは、球とエッジに関する面２１、２３の一方、または他方との間で、外側の球がまったく干渉を引き起こす可能性がないからである。その代わり、内側の球を使用することは、図示しているように、球−面の干渉４０を可能にする。干渉４０は、凸状のエッジの近くにあるので、それを“凸状の干渉（convex collision）”と呼ぶことは都合が良い。このように、頂点２２に関連付けられ、干渉を表すデータを格納することができる。３次元の図形の形状（ここでは、球の半径）は、後に計算されるフィレット／ラウンドの半径を決定することに気づかれたい。したがって、３次元の幾何学図形は、サーフェスの再計算が行われるべきである、規則的な境界を決定する客観的なツールを提供する。
【００３６】
次に、凹状のエッジに関しては、対称的な議論により、矢印４２および４４によって示されるインターセクションは、“凹状の”干渉であり、今回は外側の球３０によって引き起こされているという結論に導かれる。しかし、上述の実施形態により、インターセクション４２が、この例では干渉しているものとしてマークされていないのは、二つの面が同じスムーズスキン２３に属しているところで発生しているからである。同様に、インターセクション４６が、凸状の干渉として予定されていないのは、面２３と面３１は隣接する面ではないからである。結果的に、干渉４０と４４だけがスムーズスキン２３の例では、有効な干渉と考えられる。したがって、対応するインターセクションを表すデータは格納され、それぞれ頂点２２および２６に関連付けられる。そのようなデータは、例えば、頂点が後続の方法で取り除かれそうな場合に、移動可能なもの（mobile）（工程１８２参照）としてマークされた頂点を示す値で構成することができる。または、その値は、干渉の範囲（例えば、球の干渉している線分の高さに比例、など）にしたがって、絶え間なく変化することができる。
【００３７】
このことを念頭におき、スリバとクラックの制御に関して、図１０に戻る。既に述べたように、デフォルトの方法は、向かい合う、隣接するスムーズスキンだけを認める。対照的に、スリバ／クラックの制御のための都合の良いオプションを選択することにより、隣接しないスムーズスキンが向かい合うことが可能になる。したがって、工程１７０−工程１８０の記述を見ると、ユーザが、スリバ／クラックを選択する場合、選択されたスリバ／クラックの近くの面で横たえられた３次元の図形が、隣接する面を越えて、遠隔の面と交差するか否かということが検証される。例えば、スリバ／クラックを選択することにより、局所的に、二番目に隣接する面を検証することが可能になり、場合により三番目に隣接する面も可能になる。例えば、図１０ＡにおいてスムーズスキンＳＡ２が選択されるならば、デフォルトの向かい合わせである、（ＳＡ１、ＳＡ２）と（ＳＡ２、ＳＡ３）に加えて、面（ＳＡ１、ＳＡ３）は、向かい合うだろう。スムーズスキンＳＡ２が選択されない場合（Ａが維持されるべきスリバと考えられないならば）、（ＳＡ１、ＳＡ２）と（ＳＡ２、ＳＡ３）だけが検証され、図１０Ｂの型につながる。
【００３８】
図４のフローチャートに戻ると、次の一連の工程１９０−工程２３０は、それぞれの格納されたデータにしたがって、頂点間の境界を計算するために設けられている。境界は、例えば、格納されたデータが、それぞれ干渉および非干渉を表す、頂点の間で計算可能である（このことが都合良く見えるのは、ラウンド／フィレットの半径が検証した球の寸法に関連するからである）。このように、境界点は、それぞれ、インターセクションおよび非インターセクションを示す格納データを持つ頂点を結ぶ線分で決定される。
【００３９】
したがって、工程１９０で、ループは、各々のテッサレーション三角形から始まり、その三角形が、工程１８２で移動可能なもの（mobile）とマークされた、一又は二の頂点を有するか否かが検証される（工程１９２）。もしイエスであれば、例えば、当該三角形の領域が、閾値の領域よりも大きいかどうかを検証し（工程１９４）、“細分可能（sub dividable）”とマークされる三角形につながる。任意ではあるけれども、そのような可能性が好都合なのは、正反対の干渉状態を持つ頂点間で満足のいく境界計算を可能にさせるからである。細分可能な三角形が見つかった場合（工程１９８）、それに応じて細分され（工程２００）、新しいループを開始することによって、干渉に関して再び検証される、新しい頂点を作り出す（工程１７０）。工程１７０のループは、細分可能な三角形が見つからなくなるまで発生する（工程１９８）。
【００４０】
次に、新たなループが工程２１０から始まることにより、点の位置を、近似値にしたがって計算することができる（工程２２０）。具体的には、例えば、干渉する球の干渉する部分に基づいて、干渉の量を表すデータを格納することにより、点の理論的な位置を計算させる。“ポリライン（polyline）”境界は、計算された点にしたがって、決定可能である。
【００４１】
上記の境界計算は、図１２Ａ−図１２Ｂにおいて例示されており、上記の実施形態にしたがって、境界計算の次の段階を図式化する。
【００４２】
選択された例は、図１２Ａ−図１２Ｃの左側部分の円柱６０の少し上に示す、直交座標系の記号５２にしたがって、方向を合わせた円柱６０の例である。図形の主要な部分は、記号５０によって示すように、平面（plane）（ｘ，ｚ）にしたがって方向を合わせた円柱の、拡大された図式の四分円の断面６２を示す。違うやり方で置くと、上からその形を見ることができる。当該円柱の断面６２は、上述の実施形態にしたがって、“移動可能なもの（mobile）”、または“移動できないもの（not mobile）”としてマークされた、多くの頂点を備える。“移動可能なもの”としてマークされた頂点は、一つの点として表される一方、交差点は、移動できない頂点を示す。点線６４は、（まだ）理論上の境界を表す。
【００４３】
図１２Ａは、工程１８２の後に得られる、当該四分円の断面６２を表し、三角形は、０、１、２、または３個の移動可能な頂点を含む。
【００４４】
図１２Ｂは、上述の工程１９０−工程２００によって生成された状況を示す。すなわち、ちょうど一又は二個の移動可能な頂点をもつ三角形が細分されたことにより、新たな頂点が理論上の境界６４の近くに現れる。
【００４５】
図１２Ｃは、工程２１０−工程２３０の実行結果を説明することにより、“ポリライン”境界は、ここでは丸く囲んだ点として示す、具体的に計算された点（工程２２０）にしたがって、与えられている。したがって、上述の方法の実装は、洗練された境界抽出を可能にする。
【００４６】
図５および図６は、“正確なフィレット認識（exact fillet recognition）”、“ラウンド近似（round approximation）”、および“ハードゾーン制御（hard zone management）”のために設けられている。
【００４７】
図５を参照すると、フィレットのような、若しくはラウンドのような断面（工程２４０）、ステップのような断面（工程２５０）、またはウォールのような断面（工程２６０）を有するゾーンを決定することが必要なたびに、結合ルーチンは呼び出される。異なるルーチンを呼び出すことはできるけれども、これらは、少なくとも通常の特徴を有し、図８を参照して詳細に述べられる。
【００４８】
ルーチンが最初に呼び出された後、正確なフィレットが戻る。上記のルーチン（または連続する類似のルーチン）を使用することが、好都合であると証明されるのは、上記の断面の型が、処理される通常のワークボディ上で普通に観察されるからである。望ましくは、結合ルーチンは、ラウンド／フィレットのゾーンを決定するために、最初に呼び出され、次に、ステップ／ウォールのゾーンを決定するために、任意の順序で呼び出される。このように、正確なフィレットは可能な場所をどこでも検索し、その後、ウォール／ステップのゾーンを検索する。上記のルーチンは、図８を参照して詳細に述べられる。
【００４９】
ハードゾーンは、フィレット／ウォール／ステップが見つからない場所に存在するので、それらは望ましくは後で制御される。計算された境界にしたがって、一又は複数の残りの領域を決定することができ（工程２７０）、工程２８０で特定のコーナゾーン（corner zone）が作成される。
【００５０】
図６を参照すると、新たなループが、工程２９０から始まる。処理される領域を“拡大する（enlarge）”ため（工程２９２）、検出された各フィレットのために（工程２４０参照）、例えば、ニュートン・ラプソン法、または似たような方法に基づいて、正確な再収束（re-convergence）の方法が使用される。正確なフィレットのサーフェスは、面−面（face-face）フィレットオペレータを呼び出すことによって、可能なときはいつでも作成される（工程２９４−工程２９８）。そうでなければ、ブレンドオペレータ（blend operator）が呼び出される（工程２９６）。
【００５１】
対照的に、結合方法を介して検出されたステップ／ウォールのゾーン（工程２５０、工程２６０）に関しては、ブレンドオペレータは、直接呼び出されることにより（工程３００、工程３１０）、ブレンドサーフェスは作成される（工程３０４、工程３１４）。
【００５２】
工程２８０で作成されたコーナゾーンに関しては、方法は以下のように進む。すなわち、コーナが球形であるかがまず検証され、その場合には、球が作成され（工程３２０−工程３２４）、それ以外の場合には、当該技術分野において知られているように、典型的なフィルサーフェス（fill surface）が生成される（工程３２６）。
【００５３】
工程２９６、工程３０４、および工程３１４で使用されるブレンドオペレータに関しては、以下の方法が行われる。すなわち、３次元の曲線（curve）は境界のポリラインに近づき、３次元の曲線はインプットボディ上に投影され、２次元の曲線を作り出す。ブレンドオペレータが呼び出され、２次元の曲線と関連するサポート面を、インプットとして使用する。
【００５４】
工程３２６で使用されたフィルオペレータ（fill operator）に関しては、同じように３次元から２次元への投影が生じている。フィルオペレータ（当該技術分野において知られているようなオペレータ）が呼び出され、スムーズなサーフェスを作成するために、以前に生成されたフィレットサーフェス（工程２９８参照）またはブレンドサーフェス（工程２９６、工程３０４、工程３１４参照）の縁（border）に加えて、作成された２次元の曲線を使用する。
【００５５】
ハードゾーンがフィリング（filling）の方法を使用するにはあまりにも複雑であれば、ブレンドオペレータ、またはフィルオペレータを呼び出す前に、局所の形状の特徴しだいで、場合により、ハードゾーンを細分することができる。
【００５６】
加えて、サーフェスの曲率（curvature）の制御を提供するために、適切なオペレータを呼び出すこともできる。
【００５７】
最後のソーイングの一般的な方法のために設けられている図７を参照すると、ループは工程３３０から始まり、以前に作成された各サーフェスのためのソーイングルーチン（工程３３２）を呼び出す。ソーイングの計画によっては、一以上のサーフェスをインプットボディに同時にソーイングすることができる。
【００５８】
方法は、工程３４０で終了する。
【００５９】
図８を参照すると、図５の工程２４０、工程２５０、および工程２６０で呼び出される結合ルーチン（coupling routine）が、詳細に記述される。
【００６０】
計算された各々の境界Ｆiについて（工程４１０）、およびその境界Ｆiの各々の点Ｐi,jについて（工程４１２）、点Ｐi,jが以前に決定された結合の中に含まれているかを、まず検証し（工程４１４）、含まれている場合には、さらなる結合はこの点で行われようとはしていない。含まれていない場合には、境界Ｆiとは異なる、各々の境界Ｆkについて（工程４１６）、および境界Ｆkの各々の点Ｐk,lについて（工程４１８）、工程４２０−工程４２２で、値ｙi,j,k,l＝ｆm（Ｐi,j，Ｐk,l）を計算し、ｆmを使った関数は現在試行している結合ルーチンの種類によって決まる。例えば、第一の関数ｆ1が使用されるのは、ルーチンが工程２４０（フィレットゾーンの検出）から呼び出される場合であり、第二の関数ｆ2が使用されるのは、工程２５０（ステップゾーンの検出）から呼び出される場合であり、第三の関数ｆ3が使用されるのは、工程２６０（ウォールゾーンの検出）から呼び出される場合である。
【００６１】
望ましくは、計算されたｙi,j,k,lの値が、“許容性（admissibility）”の条件が満たされているかどうかを検証する（工程４２２）。まず、Ｐi,jおよびＰk,lに対するそれぞれの標準に基づいて、考えられる現在の対（couple）がフィレット、ラウンド、ステップ、またはウォールのゾーンに属するかどうかを決定することにより、場合により、候補として保持できるか、そうでなければ、除外する。さらに、ステップのような断面のための追加の許容性条件の例として、平均的なラウンド／フィレットの半径の２倍よりも高いステップの付近の点は、明らかな幾何学的な理由のために、可能な結合の候補として捨てられる。同様の許容性条件は各々のゾーンの種類のために使用される。加えて、ｙi,j,k,lの値を計算する前に、その許容性条件を計算することができる。
【００６２】
それは、格納された一又は複数の特定の対（Ｐk,l-1*，Ｐk,l*）であり（工程４２６）、それぞれ計算されたｙi,j,k,l-1とｙi,j,k,l（工程４２０−工程４２６）が条件Ｃm（例えば、後述するような、工程４２４での符号変換）を満たし、Ｃmは、ｆmに関しては、現在試行している結合ルーチンによって決まる。条件Ｃ1、Ｃ2、またはＣ3は、それぞれ工程２４０、工程２５０、および工程２６０で使用される。
【００６３】
もし複数の対（Ｐk,l-1*，Ｐk,l*）が、工程４２６で見つけられ、条件Ｃmを満たす場合には、さらなる条件Ｃs1にしたがって、まず特定の対（Ｐk,l-1**，Ｐk,l**）が選択される（工程４３０）。さらに条件Ｃs2にしたがって（工程４３０−工程４３２）、選択される、特定の点Ｐk,l***（例えば、l***=l-1**  や  l**）を選択されたい。二つの点（Ｐk,l-1，Ｐk,l）の間のステップが十分に小さいならば、Ｃs1とＣs2は一つの任意の選択に限定されるとしても、ルーチンはうまく機能できることに気づかれたい。
【００６４】
最終的に選択された点Ｐk,l***は、（上述の条件Ｃmに加えて）条件Ｃsを満たすと同時に得られた点とみなされ、条件Ｃsは、条件Ｃs1とＣs2の両方を備える（特に、複数の対（Ｐk,l-1*，Ｐk,l*）が発見される場合）。
【００６５】
結果的に、対（Ｐi,j，Ｐk,l***）は、工程４３４で格納される。
【００６６】
次に、工程４１０で開始したループが終了する場合、連続した先端の点を持つ二つの点（例えば、対を形成する点）は、識別され（工程４４０）、同じグループに属するものとしてマークされ、境界の一部は組み合わされ、ゾーンを形成する。
【００６７】
結合ルーチンは、工程４５０で終了する。
【００６８】
言うまでもなく、点（Ｐi,j，Ｐk,l）の対と同様、境界Ｆi、Ｆkの全ての対が、必ずしも上記のルーチンで考えられる必要があるわけではない。むしろ、さらなる条件にしたがって、ｙi,j,k,lの値の計算を制限することは好ましく、それは、例えば、標準距離によって、最後まで対になる機会のない対を除外するために選択される。
【００６９】
結合ルーチンにおける上記方法を実装することにより、“正確な”フィレット、ステップ、およびウォールのゾーンを自動的に正常に戻すことが可能になる。
【００７０】
以下において、図８の結合ルーチンを呼び出す場合に使用される関数ｆmと条件Ｃmを、図１３Ａ−図１３Ｄと関連して述べる。
【００７１】
図１３Ａ−図１３Ｄは、エッジ７０、および境界Ｆi（工程２３０から決定される）を有するワークボディ１０を示す。具体的には、ワークボディ１０は、ステップのような断面７２、ウォールのような断面７４、および“ハード”ゾーン７６（ここではコーナ）を示す。
【００７２】
例として、図１３Ａ−図１３Ｃは、正確なフィレットの認識、すなわち、工程２４０から呼び出される場合の結合ルーチン（図８の工程４１０−工程４５０参照）において使用される、特定の関数ｆ1と条件Ｃ1を説明する。明確にするために、二つの境界Ｆ1とＦ2だけを示す。
【００７３】
この特定の実施形態において、達成される理論上の結果をまず説明しよう。この目的のために、境界Ｆ1の任意の点Ｐ1,1、およびこの点Ｐ1,1で境界Ｆ1を含む面に接する、点Ｐ1,1に関する“凸”の（内側の）球１１１を考える。全ての異なる境界（この場合は、Ｆ2）について、ほぼ同じ凸状の関連付けられた球を有する、結合のための、候補となる点Ｐ2,l-1、Ｐ2,lなどを検索する。例えば、図１３Ａでは、凸状の球１２１が横たえられ、点Ｐ2,1に接する。球１１１と球１２１は、任意の許容範囲の中でうまく合致していないので、点Ｐ2,1は結合のための可能な候補として除外される。対照的に、図１３Ｂでは、球１２１´は点Ｐ2,1´で横たえられ、球１１１と実質的に合致する球を作り出す（図１３Ｂの規模では、差異は明らかではない）。したがって、点Ｐ2,1´は結合のための可能な候補として保持されるだろう。
【００７４】
このことを達成するために、現実的に可能な実装を、以下、図１３Ｃを参照して説明する。境界Ｆ1の任意の点Ｐ1,1のために、値ｙ1,1,2,l＝ｆ1（Ｐ1,1，Ｐ2,1）を計算し、境界Ｆ2の任意の点Ｐ2,l（l=1,2,3,...）（例えば、Ｐ2,1、Ｐ2,2）のために、上記で説明されているように計算する。関数ｆ1を内積として選択することができる。
ｆ1（Ｐi,j，Ｐk,l）＝（Ｃk,l−Ｃi,j）・（ｎi,j＾ｎk,l）
【００７５】
ｎi,jは点Ｐi,jで面に垂直なベクトルであり、Ｃi,jは点Ｐi,jに接する球の中心を示すベクトルである（図１３において、球１１１、１２１、１２２）。そのようなベクトルは、点Ｐi,jの位置の認識から完全に定義される。具体的には、ｎi,jは，点Ｐi,jで計算される面の傾きから導かれる。このようにｆ1（Ｐi,j，Ｐk,l）は、理論的な一致点Ｐk,matchingでちょうどゼロであると分かり、条件Ｃ1を以下の数式として選択することができる。
Ｓｉｇｎ（ｆ1（Ｐi,j，Ｐk,l-1））≠Ｓｉｇｎ（ｆ1（Ｐi,j，Ｐk,l））
【００７６】
図１３Ｃにおいて、点Ｐ2,1とＰ2,2は点Ｐ1,1に関して条件Ｃ1を満たす。このように、工程４２８にしたがって、この特定の対（Ｐ2,1，Ｐ2,2）は格納される。同様の操作は、境界Ｆ1の各点Ｐ1,jのために実行される。望ましくは、対にすでに含まれる点は再計算されず、近傍の境界Ｆkのみが検証される。同様の操作は、凹状の球で実行される。
【００７７】
工程２４０後の結合ルーチンが完了すると同時に、状況は図１３Ｄで概略的に説明されたものになる。正確なフィレットを参照番号９０によって示す。この図に見られるように、正確なフィレットは、ステップのゾーン７２、ウォールのゾーン７４、および“ハード”ゾーン７６の近くには作成されない（そのような領域では正確な球ベースの結合は不可能なため）。
【００７８】
ステップおよびウォールのゾーンの領域に関して、関数ｆ2、ｆ3を以下の数式として選択することができる。
ｆ2/3（Ｐi,j，Ｐk,l）＝（Ｐk,l−Ｐi,j）・（τk,l−τi,j）
【００７９】
τi,jは、点Ｐi,jで、考察されている面に接し、境界線Ｆiに平行するベクトルである（τi,jとτk,lは逆方向に選択されている）。すでに述べたように、τi,jとτk,lはＰi,jとＰk,lから分かり、Ｐi,jとＰk,lの依存関係は暗に示されている。この場合の好都合な条件Ｃ2/3は、以下の数式で示す。
Ｓｉｇｎ（ｆ2/3（Ｐi,j，Ｐk,l-1））≠Ｓｉｇｎ（ｆ2/3（Ｐi,j，Ｐk,l））
【００８０】
ｆ2＝ｆ3およびＣ2＝Ｃ3だけれども、図１３Ｅで説明されているように、ステップとウォールに内在する形状は、現実に異なる結合につながる。工程２５０および工程２６０後の結合ルーチンが完了すると同時に、状況は、図１３Ｅで説明されるものになる。ステップのゾーン９２およびウォールのゾーン９４は、結合される。
【００８１】
しかし、ハードゾーン７６は、特定の処理が実行されるため（工程３２０−工程３２６参照）依然としてそのままである。
【００８２】
本発明のおかげで達成できる結果の教育的な例として、図１４Ａ−図１４Ｂは、さまざまなエッジの部分を示すワークボディ１０の制御の結果を説明する。鋭角なエッジ７０は、さまざまな面の境界を定める。参照番号７２、７４、および７６は、それぞれステップ、ウォール、およびコーナゾーンを示す。この例では、面１６は、非フィレットとして特に選択されており、スリバオプションは、ウォールのような断面７４´のために選択される。
【００８３】
上述の方法を実装することにより、図１４Ｂに説明するような修正されたワークボディができる（変更を強調するため、寸法を都合よく選択した）。具体的には、フィレットのゾーン１２およびラウンドのゾーン１４は提供され、上記で用いられた専門用語にしたがって、“正確な結合（exact coupling）”サーフェスの再計算の役に立つ。加えて、ステップおよびウォールのゾーン（それぞれ、１４２と１４５）はブレンドオペレータ（ブレンドオペレータが呼び出された１５２も参照）の役に立ち、一方、コーナゾーン１４０は、球のサーフェスの一部によって近づけられ、上述したフィルオペレータのおかげで、ハードコーナゾーンは１５０を埋める。
【００８４】
スリバとして選択されたウォールのような断面７４´は、正確なフィレットのサーフェスの再計算１４８（“正確な結合（exact coupling）”）の役に立つことにより、遠隔の面は干渉している球を通して検証される。したがって、以上のように、１４８のラウンドの半径は、ラウンド１４に使用されている半径と同じである。また、隣接する面のサーフェスの再計算により、部分的にエッチングされるけれども、選択された面１６は処理されない。
【００８５】
修正されたサーフェスが、後にインプットボディ１０にソーイングされる。
【００８６】
さらに、使用された３次元の幾何学図形は、所望のアプリケーションによって、さまざまな幾何学形状を備えることができる。例えば、円錐、または円錐の一部を備えることができる。このように、本発明の方法にしたがって、３次元の図形のインターセクションを表すデータを決定し、格納する方法において、その円錐は、その面の上に横たえられ、その面に正接し、円錐の干渉のために現在、検証されたテッサレーションの点に接している。円錐は、縦および横の所定の角度を有し、その角度は、例えば、円錐の主軸に沿ってｒである、球座標のシータ（θ）とフィー（φ）の通常の角度に関する。これらの角度は、さらにユーザが選択可能である。その結果、図形の型をワークボディ上に得ることができる。加えて、円錐を使用することが特定の、議論された特徴と互換性がある限りは、以上の利点の多くが提供される。
【図面の簡単な説明】
【００８７】
【図１】ラウンドおよびフィレットを有するモデル化されたワークボディの例示された図である。
【図２】従来技術による、ラウンド／フィレットの設計を一つずつ説明する図である。
【図３】本発明の一実施形態による、モデル化されたオブジェクトのコンピュータ支援設計（ＣＡＤ）の方法を表すフローチャートである。
【図４】本発明の一実施形態による、モデル化されたオブジェクトのコンピュータ支援設計（ＣＡＤ）の方法を表すフローチャートである。
【図５】本発明の一実施形態による、モデル化されたオブジェクトのコンピュータ支援設計（ＣＡＤ）の方法を表すフローチャートである。
【図６】本発明の一実施形態による、モデル化されたオブジェクトのコンピュータ支援設計（ＣＡＤ）の方法を表すフローチャートである。
【図７】本発明の一実施形態による、モデル化されたオブジェクトのコンピュータ支援設計（ＣＡＤ）の方法を表すフローチャートである。
【図８】図５において呼び出される結合ルーチンを表すフローチャートである。
【図９Ａ】面が処理される面から取り除かれる場合に、ワークボディの設計制御の例を図解的に説明する図である。
【図９Ｂ】面が処理される面から取り除かれる場合に、ワークボディの設計制御の例を図解的に説明する図である。
【図１０Ａ】スリバとクラックを持つワークボディの設計制御を例示する図である。
【図１０Ｂ】スリバとクラックを持つワークボディの設計制御を例示する図である。
【図１０Ｃ】スリバとクラックを持つワークボディの設計制御を例示する図である。
【図１１】一実施形態による方法の一部として、３次元の幾何学図形とワークボディの面との間のインターセクションを図式化する図である。
【図１２Ａ】一実施形態における、境界抽出の図である。
【図１２Ｂ】一実施形態における、境界抽出の図である。
【図１２Ｃ】一実施形態における、境界抽出の図である。
【図１３Ａ】一実施形態における、結合方法を説明する図である。
【図１３Ｂ】一実施形態における、結合方法を説明する図である。
【図１３Ｃ】一実施形態における、結合方法を説明する図である。
【図１３Ｄ】一実施形態における、結合方法を説明する図である。
【図１３Ｅ】一実施形態における、結合方法を説明する図である。
【図１４Ａ】様々なエッジの部分を有するワークボディの設計制御を例示する図である。
【図１４Ｂ】様々なエッジの部分を有するワークボディの設計制御を例示する図である。
【図１】
2006294036.tif 000003
【図２】
2006294036.tif 000004
【図３】
2006294036.tif 000005
【図４】
2006294036.tif 000006
【図５】
2006294036.tif 000007
【図６】
2006294036.tif 000008
【図７】
2006294036.tif 000009
【図８】
2006294036.tif 000010
【図９Ａ】
2006294036.tif 000011
【図９Ｂ】
2006294036.tif 000012
【図１０Ａ】
2006294036.tif 000013
【図１０Ｂ】
2006294036.tif 000014
【図１０Ｃ】
2006294036.tif 000015
【図１１】
2006294036.tif 000016
【図１２Ａ】
2006294036.tif 000017
【図１２Ｂ】
2006294036.tif 000018
【図１２Ｃ】
2006294036.tif 000019
【図１３Ａ】
2006294036.tif 000020
【図１３Ｂ】
2006294036.tif 000021
【図１３Ｃ】
2006294036.tif 000022
【図１３Ｄ】
2006294036.tif 000023
【図１３Ｅ】
2006294036.tif 000024
【図１４Ａ】
2006294036.tif 000025
【図１４Ｂ】
2006294036.tif 000026
【外国語明細書】
2006294036000001.pdf