(57)【特許請求の範囲】
【請求項１】
１以上のプロセッサにより電子デバイスにおいて実行される方法であって、
モデリング環境において、複数の表面を含むモデルを提供するステップと、
干渉を作成するために前記複数の表面の第１の表面が前記複数の表面の第２の表面と同じ空間を占めるように前記第１の表面を操作するステップと、
前記モデルが単一のジオメトリの立体からなるように前記干渉を決定するステップと、
結果として得られた前記立体を記憶装置に記憶するステップと、を含み、
前記決定するステップは、
前記複数の表面の第１の表面および前記複数の表面の第２の表面を含む２以上の表面を組み合わせることの結果として立体のトポロジを作成するステップと、
前記２以上の表面に関係する情報を保存するステップと、を含み、
前記保存される情報は、前記単一のジオメトリに関係している間に前記２以上の表面が前記単一のジオメトリから独立して操作されることを許容し、そして前記２以上の表面が後にもはや干渉されないように操作されるならば前記２以上の表面を元の形状および元のトポロジに戻すことを許容している、
方法。
【請求項２】
請求項１記載の方法において、前記干渉を決定するステップは、新たな頂点と新たな表面と新たなエッジとのグループの中の少なくとも１つを加えて立体を作成するステップを含む、方法。
【請求項３】
請求項１記載の方法において、前記干渉を決定するために複数のオプションが存在し、前記複数のオプションはディスプレイ上のグラフィカル・ユーザ・インターフェースを介してユーザに提示され、前記グラフィカル・ユーザ・インターフェースによりユーザは前記複数のオプションの中から１つを選択することが可能になり、前記選択されたオプションが前記モデルにおいて実現される、方法。
【請求項４】
請求項１記載の方法において、前記干渉を決定するステップは、第１の表面又は表面の集合に対応するジオメトリの体積と第２の表面又は表面の集合に対応するジオメトリの体積とを比較するステップを含む、方法。
【請求項５】
請求項１記載の方法において、前記干渉を決定するステップは、第１の表面の頂点及びエッジのグループの中の少なくとも１つと第２の表面の頂点及びエッジのグループの中の少なくとも１つとを比較して前記第１の表面と前記第２の表面とが交差するかどうかを判断するステップを含む、方法。
【請求項６】
請求項５記載の方法において、前記干渉を決定するステップは、前記第２の表面の頂点及びエッジのグループの中の少なくとも１つと第１の表面の頂点及びエッジのグループの中の少なくとも１つとを比較して前記第１の表面と前記第２の表面とが交差するかどうかを判断するステップを更に含む、方法。
【請求項７】
請求項１記載の方法において、第１のフィーチャーを操作するステップは、前記第１のフィーチャーを移動する、サイズを変更する、又は回転するというグループの中の少なくとも１つを含む、方法。
【請求項８】
請求項１記載の方法において、前記干渉を決定するステップは、前記電子デバイスによって提供されるジオメトリ・カーネルによって少なくとも部分的に実行される、方法。
【請求項９】
電子デバイス可読命令が記憶されている電子デバイス可読媒体であって、前記命令は、プロセッサによって実行されると、前記プロセッサに、
モデリング環境において、複数の表面からなるモデルを提供するステップと、
干渉を作成するために前記複数の表面の第１の表面が前記複数の表面の第２の表面と同じ空間を占めるように前記第１の表面を操作するステップと、
前記モデルが単一のジオメトリの立体を構成するように前記干渉を決定するステップと、
結果として得られた前記モデルを記憶装置に記憶するステップと、を実行させることを特徴とする電子デバイス可読媒体であって、
前記決定するステップは、
前記複数の表面の第１の表面および前記複数の表面の第２の表面を含む２以上の表面を組み合わせることの結果として立体のトポロジを作成するステップと、
前記２以上の表面に関係する情報を保存するステップと、を含み、
前記保存される情報は、前記単一のジオメトリに関係している間に前記２以上の表面が前記単一のジオメトリから独立して操作されることを許容し、そして前記２以上の表面が後にもはや干渉されないように操作されるならば前記２以上の表面を元の形状および元のトポロジに戻すことを許容している、
電子デバイス可読媒体。
【請求項１０】
複数の表面からなるモデルを記憶する記憶装置とプロセッサとを備えているシステムであって、前記プロセッサは、
前記モデルの前記複数の表面の前記表面の１又は複数の操作を可能にするモデリング環境を提供するステップと、
同じ空間を占める第１の表面と第２の表面とにより生じる、前記モデルにおける操作された前記第１の表面と前記モデルにおける前記第２の表面との間の干渉を、前記モデルが単一のジオメトリの立体を形成するように決定するステップと、
結果として得られた前記モデルを前記記憶装置に記憶するステップと、を実行し、
前記決定するステップは、
前記複数の表面の第１の表面および前記複数の表面の第２の表面を含む２以上の表面を組み合わせることの結果として立体のトポロジを作成するステップと、
前記２以上の表面に関係する情報を保存するステップと、を含み、
前記保存される情報は、前記単一のジオメトリに関係している間に前記２以上の表面が前記単一のジオメトリから独立して操作されることを許容し、そして前記２以上の表面が後にもはや干渉されないように操作されるならば前記２以上の表面を元の形状および元のトポロジに戻すことを許容している、を含む、
システム。
【発明の詳細な説明】
【技術分野】
【０００１】
[関連出願]  この出願は、２００９年６月８日に出願された米国仮特許出願番号第６１／１８５，０４６号に基づくものであり、すべての内容は両出願に共通である。上述の出願における開示は、その全体をこの出願において援用するものとする。
【０００２】
本発明は、広くは、モデリング環境におけるトポロジ干渉の訂正に関するものであり、特に、コンピュータ支援ドラフティング（ＣＡＤ）環境に関する。
【背景技術】
【０００３】
ＣＡＤ環境などのモデリング環境で、ユーザは、モデルのジオメトリ（幾何学）を画定する多数のルールを特定することによりモデルを構築する。モデルを作り上げるジオメトリは、「エッジ」を介して相互に接続された１組の「表面」で構成されている。すべてのエッジに少なくとも２つの隣接する表面が付属していると、立体（solid body）が形成される。例えば立方体は立体であるが、その理由は、それぞれのエッジが少なくとも２つの隣接する表面を含むからである。立体でないものの例として１枚の紙があるが、この場合、４つのエッジはそれぞれがただひとつの表面に付属している。ジオメトリはモデルの構成要素を表すことがあるが、この構成要素は非常に様々なフィーチャーやサイズをとりうる。例えば、コンピュータ・マウスのモデルは複数の表面を有する円筒型のジオメトリを有し、この円筒型のジオメトリは、マウス・ホイールとマウス・ボタンを表す平坦で矩形のジオメトリとトラックボールを表す球形のジオメトリとを表す。
【０００４】
多くのモデリング環境において、ジオメトリとその対応する表面とを３次元空間の中で相互に相対的に移動させることができる。これにより、例えば、ユーザは、マウスにおけるボタンを表す１組の表面を作成し異なるボタン配置を試みて、人間工学的に有益なデザインに到達することが可能となる。ジオメトリや１つの表面や１組の表面を元々それが画定された位置に制限するのではなく移動させることが可能なときは、これは「柔軟なモデリング」の例である。
【０００５】
しかし、ある表面の移動が立体の表面と同じ立体の別の表面との間で干渉を引き起こすときには、柔軟なモデリング環境において問題が生じる。上述の例では、マウス・ボタンを移動させると、当該マウス・ボタンの一部が、マウス・ホイールに対応するジオメトリによって既に占められていた空間を占めるようになることを意味する可能性がある。従って、当該表面の移動が別の表面との間で干渉を生じさせるような場合には、ユーザが特定の表面を新たな位置に移動させる可能性をモデリング環境が制限することがある。この制限のため、表面又はジオメトリの２つの異なる集合が同時に同じ空間を占有することが禁止される。
【０００６】
このような制限は、常に望ましいわけではない。例えば、ユーザは、ある別のジオメトリと後で統合ことを望むジオメトリを作成することもある。そのような場合、ユーザは、個々のジオメトリを削除し第１及び第２のジオメトリの統合を表す新たな第３のジオメトリを再構築することが必要となる。このプロセスは、時間が掛かり複雑なものになるおそれがある。
【０００７】
更に、モデリング環境は、オブジェクトを製造する前に、当該オブジェクトを開発する又はそのプロトタイプを作成するのに用いられることが多い。モデリング環境の結果として得られるデザインは、製造業者のためのプループリントとして用いられることがあるし、又は、モデルそれ自体が直ちにプロトタイプとなるマシンへの入力として機能することもある。
【０００８】
製造されたオブジェクトに対する基礎として効率的に機能するため、モデリング環境におけるモデルは、いくつかの考慮すべき事柄を満足する、又は、いくつかの要件に合致することが必要である。典型的な要件として、モデルが立体を表さなければならないということがある。このようなルールは、柔軟なモデリングの操作が実行された後での立体ジオメトリの適切な再構成にとって、鍵となる要件である。
【０００９】
別の典型的な要件として、特定のモデルの複数の表面が可能な限り同一の広がりを有するべきである。製造又はプロトタイプ作成プロセスでは、製造されるオブジェクトのある部分の面が可能な限り同一な広がりを有することが望ましい。これにより、製造されるオブジェクトの構造的な一体性を同時に向上させながら、製造上の複雑さやコストが低減される。例えば、ユーザは、ＣＡＤ環境では、第１組の表面と第２組の表面とを、その中の２つの表面を合致させる（例えば、２つの立方体を合体するように移動させて直方体を形成する場合）ことを意図しながら、相互に近接するように移動させることがある。しかし、これらの表面の間にモデリング環境では見ることが困難なギャップが存在することの結果として、表面同士が同一の広がりを有しない状態が生じることがある。
【００１０】
従って、複数のジオメトリや表面の間の干渉を決定することができて、モデルがユニタリ立体を形成することを可能にするようなモデリング環境に対する必要性が存在する。更にまた、望むのであれば、モデルの中の複数の表面が可能な限り同一の広がりを有することを保証することができるようなモデリング環境に対する必要性も存在する。
【発明の概要】
【発明が解決しようとする課題】
【００１１】
本願発明は、ＣＡＤ環境のようなモデリング環境において、表面の組の間の干渉を適切に決定する方法、システム、及びコンピュータ可読な記憶媒体に記憶された命令を提供する。更に、本願発明の典型的な実施形態は、モデルの表面を修正することで当該モデルの一部が立体を構成することが保証される。
【課題を解決するための手段】
【００１２】
本願発明の１つの実施形態によると、モデリング環境の中にモデルが提供される。このモデルは、モデリング環境において操作される１又は複数のジオメトリを含む。この１又は複数のジオメトリは、１組の表面を画定する。上述の操作には、例えば、表面を移動させることや、サイズを変更することが含まれる。ジオメトリが操作され操作の結果として別のジオメトリや当該ジオメトリのアスペクトや表面との間に干渉が生じたときには、生じた干渉に対処するようにモデルのトポロジが修正される。
【００１３】
トポロジの修正には、いくつかの変更が含まれる。例えば、新たなエッジや頂点が作成される必要がある場合や、古いエッジや頂点を削除することが必要になる場合もある（あるいは、その両方が必要な場合も存在する）。自己交差を決定することにより、交差する表面が単一の立体を形成することもある。更に、修正に関係する表面の境界を延長したり縮小したりすることで、立体を形成する場合もある。
【００１４】
トポロジを修正する際には、曖昧さが生じ、新たなトポロジに対して複数のオプションが存在することがある。曖昧さが生じる場合には、モデリング環境は、複数の潜在的な解決策をユーザに提供し、ユーザがそれらの複数の解決策の中から選択することを可能にする。
【図面の簡単な説明】
【００１５】
本願発明の典型的な実施形態が、以下の図面を参照しながら説明される。これらの図面を通じ、同じ参照番号は同じ構成要素を指している。
【図１】本願発明の典型的な実施形態と共に用いられるのに適した例示的な電子デバイス１００を示している。
【図２】本願発明の典型的な実施形態と共に用いられるのに適した例示的なモデル２００を示している。
【図３】モデル・ジオメトリが干渉を生じさせるように操作された後のモデル２００を示している。
【図４ａ】モデル２００の典型的な操作によって環境が表面の境界を延長して立体を形成する様子を示している。
【図４ｂ】異なる透視から見た図４ａのモデルを示している。
【図５】本願発明の典型的な実施形態を実現する際に実行されるステップを示す流れ図である。
【発明を実施するための形態】
【００１６】
本願発明は、ＣＡＤ環境などのモデリング環境におけるフィーチャーの間の干渉を決定する方法、システム、及びコンピュータ可読な記憶媒体に記憶されている命令を提供する。更に、本願発明の典型的な実施形態によると、あるモデルの表面を修正することにより当該モデルの各部が立体（solid body）を構成することが保証される。
【００１７】
本願で用いられる「表面」とは、モデルの中の特定のジオメトリによって画定される面である。１つのジオメトリが１若しくは複数の表面又は１組の表面を有することがある。表面は、平坦であったり、曲がっていたり、角度を有していたりする。例えば、立方体は、６つの平坦な表面を有する。円柱は、平坦で円形の頂部及び底部表面と、単一の曲がった側面とを有する。円錐は、平坦で円形の底部と、当該円錐の頂点において１点に収束する丸くテーパ状で角度を有する側面とを有する。
【００１８】
本願で用いられる「エッジ」とは、表面の外側の境界を表す。例えば、立方体の前面表面は、サイズが同一で相互に直角に向き付けられた４つのエッジを有する。本願で用いられる「頂点」とは、２以上のエッジが一致している点である。立方体においては、頂点はそれぞれのコーナーに位置していて、そこでは３つのエッジが一致している。
【００１９】
本願で用いられる「トポロジ」とは、立体の表面積の表現である。トポロジは、相互に接続する表面とエッジと頂点とによって構成される。特定の状況では、モデルのトポロジを正確に表現することは、例えば当該モデルのプロトタイプを迅速に作成することを可能にするために非常に有益である。
【００２０】
図１には、例えばここで説明される典型的な実施形態と共に用いるのに適しているコンピュータなどの電子デバイス１００が示されている。電子デバイス１００は、マイクロプロセッサ、特定用途向け集積回路（ＡＳＩＣ）、フィールド・プログラマブルなゲート・アレイ（ＦＰＧＡ）、又はコントローラなどのプロセッサ１２０によって実行されるコンピュータ実行可能な命令１５２を記憶する記憶装置１５０を含む。命令１５２は、１又は複数のコンピュータ可読な媒体に記憶されていて、ここで説明される典型的な実施形態の機能を実現することができる。媒体は、以下のものに限定されないが、ハード・ディスク、コンパクト・ディスク、デジタル・バーサタイル・ディスク（ＤＶＤ）、フラッシュ・メモリ・カード、プログラマブルなリード・オンリ・メモリ（ＰＲＯＭ）、ランダム・アクセス・メモリ（ＲＡＭ）、リード・オンリ・メモリ（ＲＯＭ）、磁気抵抗ランダム・アクセス・メモリ（ＭＲＡＭ）、磁気記憶媒体、又は光記憶媒体を含む。命令１５２は、プロセッサ１２０に、以下で詳細に説明される一連のステップを実行させる。命令１５２は、これらのステップをどのように実行すべきかを説明する任意の形式を有している。例えば、これらの命令は、任意の適切なプログラミング言語でのコンパイルされていないコード、コンパイルされたコード、アセンブリ言語命令、又はそれ以外の任意のタイプの命令でありうる。
【００２１】
記憶装置１５０は、典型的な実施形態において提供される任意のモジュール、出力、表示、ファイル、情報、ユーザ・インターフェースなどを記憶する。記憶装置１５０は、電子デバイス１００や他の電子デバイスによって用いられるアプリケーション１６０を記憶する。アプリケーション１６０には、プログラム、モジュール、又は電子デバイス１００がタスクを実行することを可能にするソフトウェア・コンポーネントが含まれる。アプリケーション１６０の例には、ワード・プロセシング・ソフトウェア、シェル、インターネット・ブラウザ、生産性スイート及びプログラミング・ソフトウェアなどが含まれる。ある実施形態では、電子デバイス１００は、モデルを構築するためのモデリング環境１６２を含む。モデリング環境１６２とは、例えば、ソフトウェア・コンポーネントやコンピュータ・プログラムである。モデリング環境１６２は、ＣＡＤ環境でありうる。モデリング環境１６２は、モデルを構築し編集しセーブしロードする手段や、モデルのパフォーマンスをシミュレートする手段や、迅速にプロトタイプを作成し製造するユニットへの入力としてモデルを提供する手段を含む。モデリング環境１６２は、更に、モデルの中でフィーチャーのジオメトリを計算し表現するジオメトリ・カーネル１６４を含むことがある。例えば、ジオメトリ・カーネル１６４は、モデルのトポロジの計算を担当する。
【００２２】
記憶装置１５０は、また、電子デバイス１００を動作させるオペレーティング・システム１５６を記憶している。記憶装置１５０は、電子デバイス１００やそれ以外のデバイスによって用いられるデータ１５８に加えて、追加的な機能を提供する追加的なアプリケーション１６０を記憶している場合もある。データ１５８には、ファイル、変数、パラメータ、画像、テキスト、及びそれ以外の形式のデータが含まれる。記憶装置１５０は、また、モデリング環境１６２によって用いられるモデルを記憶するライブラリなどのライブラリ１５４を記憶している。ライブラリ１５４は、例えば、デフォルト若しくはカスタムのモデルや、モデル・コンポーネントを記憶するのにも用いられる。
【００２３】
電子デバイス１００は、通信ネットワーク１１０と通信する通信デバイス１１２を有する。通信デバイス１１２は、例えば、モデム、イーサネット（登録商標）接続、光ファイバ接続、無線アンテナ、又はネットワークと通信する任意の適切な手段でよい。通信ネットワークの例には、以下のものに限定されないが、インターネット、イーサネット・ネットワーク、光ファイバ・ネットワーク、ＷｉＦｉネットワーク、ＵＭＴＳ地上無線アクセス・ネットワーク（ＵＴＲＡＮ）若しくはユニバーサル・モバイル通信システム（ＵＭＴＳ）ネットワーク、コード・ディビジョン・マルチプル・アクセス（符号分割多元接続、ＣＤＭＡ）ネットワーク、ＷｉＭａｘネットワーク、ウルトラ・モバイル・ブロードバンド（ＵＭＢ）ネットワークなどが含まれる。
【００２４】
オプションとしては、電子デバイス１００は、典型的な実施形態において提供される任意の出力、表示、ファイル、情報、ユーザ・インターフェースなどを表示する表示デバイス１３０を有する。表示デバイス１３０は、グラフィカル・ユーザ・インターフェース（ＧＵＩ）を表示する。表示デバイス１３０は、例えば、コンピュータ・モニタ、テレビ、タッチ・スクリーン、タブレット若しくはスレート・コンピュータ、又は情報を表示することができる任意のそれ以外のデバイスである。
【００２５】
本願発明は分散型の又はネットワーク型の環境において実現可能であると理解される。例えば、中央サーバにおいてモデルを提供して操作し、ユーザはユーザ端末を介してモデルと対話することが可能である。
【００２６】
本願発明の典型的な実施形態によると、そして図２に示されているように、モデル２００がモデリング環境において提供される。このモデルは、モデリング環境において操作可能な１又は複数の組の表面２１０、２２０を含む。例えば、モデル２００はノブ２２０を含み、ノブ２２０は円筒２２４とフィン２２２などの３つのフィンとから構成されている。モデル２００の本体（ボディ）２１０は、溝２３０を含む。本体２１０は、更に、第１のリッジ２１２と第２のリッジ２１６と第３のリッジ２１８とを含む。第１のリッジ２１２は、側面２１４及び頂部表面２１３などの複数の表面を含む。
【００２７】
モデルのジオメトリは、操作することができる。これらの操作は、モデルの異なる複数の部分によって占有されている空間の量や、モデルの部分の空間における場所や位置を変更させる。例えば、１つの表面又は１組の表面が、サイズが変更され、移動され、回転される、などである。操作に関しては、図５との関係でより詳細に後述する。
【００２８】
場合によっては、ジオメトリの操作の結果として、２又はそれより多くの組の表面の間に干渉が生じることがある。例えば、図３にはモデル２００が示されており、これは、ノブ２２０が操作されていることを除けば図２に示されていたモデル２００と同じものである。図３では、ノブ２２０は、移動されたことにより、本体２１０の中央のリッジ２１６と干渉するようになっている。この場合、モデル２００は、その全体が依然として単一の立体として扱われている。従って、干渉を生じているジオメトリ（すなわち、本体２１０とノブ２２０）のためのトポロジは、結果として生じているモデルが立体を表すように再構成されなければならない。
【００２９】
ある操作の結果として２若しくはそれよりも多くの組の表面の間に又は表面の複数の部分の間に干渉が生じるときには、フィーチャーのトポロジが本願発明の典型的な実施形態に従って修正され、当該干渉に対処がなされる。トポロジの修正には、複数の変更が含まれる。例えば、新たなエッジ、頂点、又は表面が作成されることがある。更に、古いエッジ、頂点、又は表面が削除されることもある。トポロジの修正に関しては、図５との関係でより詳細に後述する。
【００３０】
ここでは干渉を２つの組の表面との関係で論じるのであるが、操作の結果として、任意の数の表面又は任意の組の表面が同時に相互間で干渉を生じることがあることを理解すべきである。そうであるのだから、本願発明は、ここで言及されている特定の例には決して限定されることはない。
【００３１】
モデルの２以上のフィーチャーが相互に交差すると、モデルにおいて自己交差が生じる。自己交差は、交差している複数のフィーチャーが単一の立体を形成するように決定することが可能である。
【００３２】
例えば、図３に示されているモデル２００では、フィン２２２の表面の中の１つが、第２のリッジ２１６の側面と交差している。交差のそれぞれの新たな点、例えば、フィン２２２の頂部表面と側面とが第２のリッジ２１６の側面に合致している点２２３などにおいては、新たな頂点がこのトポロジに対して作成されている。更に、新たなエッジ２２５などの新たなエッジが、新たな頂点の間に作成される。
【００３３】
モデル・トポロジの修正は、（第２のリッジ２１６を含む）本体２１６やノブ２２０など基礎となる表面を、必ずしも変更することはない。従って、モデル２００は統一化されたトポロジを有する立体として扱われるが、基礎となる表面であって干渉を生じている表面に関する情報はそのまま維持される。その結果として、ユーザは、交差している表面を操作し、これらの表面がもはや交差しないようにすることができる。そのような操作の後では、表面は、その元々のトポロジに戻る。例えば、ユーザは、図３のモデル２００におけるノブのフィーチャー２２０を、図２のモデル２００におけるノブ２２０の位置に戻すことができ、複数の組の表面２１０、２２０はその元々のフィーチャー及びトポロジに戻る。
【００３４】
修正に関係する表面の境界は、また、図４ａ及び４ｂに示されているように、立体を形成するように延長又は縮小することができる。図４ａでは、ノブ２２０は、フィン２２２が溝２３０の頂部に位置するように、移動されている。この結果として、溝２３０とフィン２２２の底部との間に空間が形成される。この空いた空間は、モデル２００の構造的な一体性に対して問題を呈する可能性があり、モデル２００に基づくオブジェクトの製造を複雑化し製造コストを上昇させるおそれがある。本願発明の典型的な実施形態によると、表面が操作される際に結果的に生じる空いた空間を環境が検出し、１又は複数の表面を延長して当該空いた空間を充填することによって、その空いた空間が充填される。実施形態によっては、１又は複数の表面が縮小される場合もある。
【００３５】
例えば、図４ａでは、フィン２２２の側面は、フィン２２２の底部が溝２３０の頂部と同じ広がりを有するように、延長されている。これにより、延長領域４１０によって充填することで、フィン２２２と溝２３０との間の空いた空間が除去される。この例では、延長領域４１０は、フィン２２２の延長である。延長領域４１０は、図４ｂにおいてより詳細に示されている。
【００３６】
トポロジを修正する際には、曖昧さが生じ、それによって新たなトポロジに対して複数のオプションが存在するようになる場合がある。曖昧な場合には、環境はユーザに対して複数の潜在的な解決策を提供し、ユーザがそれらの解決策の中から選択することを可能にする。例えば、図４ａ及び４ｂに示されているモデル２００では、フィン２２２の底部を低下させることに対する代替策として、溝２３０の頂部を上昇させる方法がありうる。ユーザには、図４ａ及び４ｂに示されているモデル２００とは別の選択肢としてこのオプションが与えられる。
【００３７】
図５は、本願発明の典型的な実施形態を実現させる際に実行される複数のステップを示す流れ図である。ステップ５１０では、モデル（例えば、モデル２００）が、図１に示されているモデリング環境１６２などのモデリング環境において提供される。このモデルは、モデリング環境において操作可能な１又は複数の表面を含みうる。
【００３８】
ステップ５２０では、１又は複数の表面が操作され、当該操作がある立体の１又は複数の他の表面との間で干渉を生じるようにする。「干渉」とは、操作された表面の１又は複数の部分又はすべてが、ある立体の１又は複数の部分又はすべてによって同時に占有されている空間を占有することを指す。「操作」とは、当該フィーチャーによって占有されている位置、フィーチャー、サイズ、体積、表面積、配置又は空間を変更するものすべてである。操作には、例えば、当該図形を移動すること、サイズを変更すること、又は回転することが含まれる。ジオメトリの一部が押し出されること、圧縮されること、追加されること、取り除かれることにより、当該ジオメトリのフィーチャーが変更される。
【００３９】
モデリング環境１６２は、図１に示されているように、この干渉を認識することができる。例えば、ジオメトリ・カーネル１６６には、ジオメトリのそれぞれの操作の間や後に、潜在的な干渉を識別するタスクが課せられる。モデリング環境１６２は、例えば、表面の集合の容積によって占有される空間を比較しこれらの表面を画定するジオメトリが同一の空間の少なくとも一部を占有するかどうかを判断することによって、干渉を認識することができる。本願発明の別の典型的な実施形態では、モデリング環境１６２が干渉を認識するのは、当該干渉に関係する第１の表面と関連するエッジのそれぞれを当該干渉に関係する他の表面と比較することによってである。また別の例示的な実施形態では、ジオメトリと干渉する体積とトポロジ（頂点、表面及びエッジを含む）との両方が、比較される。これは干渉を解決するのに役立つが、（「干渉なし」というような）回答は体積の比較によって提供され、他方で、トポロジの比較は（「干渉が発見される」などの）別の回答を与える。例えば、小さな球がより大きな球の内部全体で移動される場合には、トポロジの比較が小さな球と大きな球トノトポロジの間の重複部分を指示することはない。その理由は、内部の球の表面積が外部の球の表面積と干渉することがないからである。しかし、体積を比較すると、小さい方の急に対応するジオメトリが大きな方の球に対応するジオメトリと同じ空間の少なくとも一部を占有すること、つまり、これらのオブジェクトが干渉することが示される。
【００４０】
以上のステップが、干渉に関係する表面のそれぞれのグループに対して反復される。例えば、３つの表面が相互に干渉する場合には、第１の表面の体積とエッジと表面積とが、第２及び第３の表面の体積とエッジと表面と比較される。次に、第２の表面と第１及び第３の表面とが比較され、第３の表面が第１及び第２の表面と比較される。
【００４１】
１組の表面の中のそれぞれの表面に対してこれらのステップを反復することが必要なのであるが、その理由は、第１のジオメトリと第２のジオメトリとの比較が、第２のジオメトリと第１のジオメトリとの比較とは異なる結果を生じる可能性があるからである。例えば、ステップ５２０では、第１の表面と関連するエッジが第２の表面の表面積と比較され、これらの表面が交差するかどうかが判断される。このように、図３では、ボディ２１０の第２のリッジ２１６のエッジが、フィン２２２の表面の表面積と比較される。この段階では、第２のリッジ２１６のエッジはフィン２２２のどの表面とも交差していないのだから、交差は識別されない。対照的に、フィン２２２のエッジが第２のリッジ２１６の表面と比較されると、ジオメトリ・カーネル１６６は、フィン２２２は第２のリッジ２１６とたしかに交差していると判断する。フィン２２２のトップ・エッジの少なくとも２つとフィン２２２のボトム・エッジの２つとが、第２のリッジ２１６の側面と交差している。
【００４２】
上述の例では、第２のリッジ２１６のエッジはフィン２２２のどの表面とも交差していないことが仮定されていた。しかし、フィン２２２の底面は第２のリッジ２１６のボトム・エッジと同じ平面にあるのだから、フィン２２２の底面と第２のリッジ２１６のボトム・エッジとが交差することもあり得る。これが交差であると考えられるべきかどうかは、例えば、ジオメトリ・カーネル１６６が定義することが可能であって、実装例又はアプリケーションに応じて変動する。
【００４３】
ステップ５３０から５５０では、フィーチャーのトポロジが、干渉に対処するように修正される。
ステップ５３０では、新たなエッジ、頂点、及び／又は表面が作成される又は延長される、あるいは、古いエッジ、頂点、及び／又は表面が取り除かれる又は縮小される、あるいは、この両方がなされる。ある典型的な実施形態では、ジオメトリ・カーネル１６６（図１）が干渉に関係する表面又は複数組の表面を分析し、トポロジをどのように変更するかを判断する。例えば、ジオメトリ・カーネルは、エッジと表面との間の交差点を調べることにより、新たな頂点をどこに配置するかを判断する。図３では、フィン２２２の１つのエッジが点２２３において第２のリッジ２１６の表面と交差しているため、新たな頂点が点２２３の位置に作成される。それぞれの新たな頂点がいったん識別されると、ジオメトリ・カーネル１６６は、新たなトポロジに寄与しない頂点を取り除く。例えば、フィン２２２が円筒２２４（図３には示されていない）と交差する点は、図２に示されているように、モデル２００において頂点を構成する。しかし、この点は、図３に示されているように、モデル２００の第２のリッジ２１６に対応するジオメトリの体積の中に含まれている。この点はノブ２２０と第２のリッジ２１６との干渉の結果として生じる新たな立体のトポロジに寄与しないため、図３に示されているように、この頂点はモデル２００のトポロジから取り除かれる。
【００４４】
このステップは、ある表面、頂点、及びエッジを考慮しないことにより、簡略化することができる。例えば、平行な表面は決して交差しない。交差の判断には、例えば、２つの表面のサイズと位置とを又はその両方をこれらの表面の間の角度と比較することが含まれる。
【００４５】
新たな頂点が作成された後で現在の頂点の組に対処する新たなエッジが作成され、古い頂点がいったん除去されると古いエッジが除去される。新たなエッジは、（図３の頂点２２３を既存のエッジに沿ったフィン２２２の外部頂点と接続する点などの）既に存在しているエッジに沿って作成される。新たなエッジは、また、図３のエッジ２２５などのように、既存のエッジが存在しない場所に作成される。既存のエッジが存在しない場合には、新たなエッジは、頂点をフィーチャーの間の交差表面又は交差点と比較することによって識別される。例えば、エッジ２２５に対する必要性は、フィン２２２の頂部と第２のリッジ２１６の側面との交差に基づいて識別される。更に、フィン２２２の頂部エッジなどの古いエッジは、取り除かれる。古いエッジの除去は、頂点の除去に基づいて、又は、第２の表面又は第２の表面と関連するエッジと干渉する第１の表面と関連するエッジの存在に基づいて、識別される。
【００４６】
いったん新たなエッジが作成され古いエッジが取り除かれると、新たな表面が作成され古い表面が取り除かれる。新たな表面は追加されたエッジを接続するように作成され、古い表面は古いエッジの除去に基づいて取り除かれる。表面の追加又は除去に対する必要性は、頂点及びエッジの追加又は除去と類似した態様で識別される。例えば、第１のジオメトリに対応する表面は、第２のジオメトリと対応する表面と当該表面が干渉する場合に、除去される。
【００４７】
ステップ５４０では、自己交差が決定されることにより、交差している複数の表面が単一の立体を形成する。交差する頂点、エッジ、又は表面がステップ５３０で識別され、新たな頂点、エッジ、又は表面が作成されると、干渉している表面のトポロジが組み合わされることにより、干渉している表面が単一の組の表面として扱われる。この単一の組の表面は、「組み合わされた表面」と称される。組み合わされた表面は、新たなトポロジに対応する。組み合わされた表面に対応するジオメトリのために、新たな体積がジオメトリ・カーネル１６６によって計算される。組み合わされた表面は、現在では、モデルの目的との関係では立体エンティテイとして扱われる。ただし、（ノブ２２０や第２のリッジ２１６のような）組み合わされた表面を構成しているそれぞれの表面又は１組の表面は、それ自身のアイデンティティを維持し、独立に操作可能な状態が継続する。組み合わされた表面を構成する個々の表面が、交差を除去するように又は結果として新たな又は別の交差を生じさせるように後で操作される場合、新たな組み合わされた表面又は１組の表面のトポロジ及び体積は、ステップ５３０から５５０において説明されたのと同じように再計算される。
【００４８】
ステップ５５０では、修正に関係する表面の境界が、立体を形成するように延長又は縮小される。モデリング環境１６２は、モデルの中で立体をどのように形成するかを支配する１組のルールを維持する。例えば、このモデルの特定の部分が、モデル２００での基礎２１０のように、モデルの基礎として識別される。モデルの一部が基礎として識別されると、立体を維持するための典型的なルールは、基礎２１０に配置されたそれぞれの組の表面の底部が可能な限り基礎２１０と同じ広がりを有することを要求することである。あるいは、典型的なルールは、基礎２１０の側面と基礎２１０に配置されたジオメトリの側面との間の空間を除去することである。別の典型的なルールとしては、モデルの様々な部分それぞれの間に空いている空間を除去することである。モデリング環境１６２は、ユーザによって画定されたルールに加えてデフォルトのルールを含むことがある。
【００４９】
ステップ５３０−５５０において複数のオプションが可能である場合には、どのオプションが選ばれるべきかに関して曖昧さが存在する。干渉の決定が複数の方法で可能であるときに、曖昧さが存在するのである。例えば、ステップ５５０において複数の表面が延長されて立体が形成されるときには、どの表面を延長すべきか（第１の表面か、第２の表面か、又は両方の表面か）に関して曖昧さが存在する。例えば図４ａでは、延長領域４１０は、フィン２２２の表面の延長若しくは溝２３０の延長であるか、又は、フィン２２２と溝２３０との両方の表面が延長される。曖昧さが存在するときには、モデリング環境１６２は、曖昧さを決定するためのデフォルトのルールに頼ることになる。デフォルトのルールの例として、操作すると干渉を生じさせるジオメトリのトポロジ、体積、又は両方を修正することである。例えば、図４ａではノブ２２０は溝２３０の頂部に移動されていたので、ノブ２２０の操作は干渉を生じさせた。従って、延長領域４１０は、溝２３０ではなく、ノブ２２０に加えられた。デフォルトのルールの別の例として、基礎２１０のフィーチャーを保存し、延長領域が基礎のフィーチャーの頂部に配置されたジオメトリに加えられることを要求することがある。この技術分野の当業者であれば、デフォルトのルールの選択はユーザによって画定されるルールによって上書きされること、そして、デフォルトのルールはアプリケーションや状況に応じて変動することを理解するはずである。
【００５０】
オプションとして、ステップ５６０において、それぞれの潜在的なオプションをユーザに提示することによって曖昧さが決定される。なお、ユーザは、実現のために複数のオプションの中から１つを選択することができる。これら複数のオプションは、図１の表示装置１３０などの表示装置に表示されるグラフィカル・ユーザ・インターフェースとして、ユーザに提示される。そして、選択されたオプションがモデルの中で実現される。
【００５１】
本願発明について特定の実施形態を参照しながら以上で説明したが、この技術分野の当業者であれば、本願発明がここで説明された実施形態に限定されないことを理解するはずである。本願発明の範囲から逸脱することなく、多くの修正が可能である。本願発明は、それらの修正をすべてカバーすることが意図されている。
【図１】
0005688078.tif 000002
【図２】
0005688078.tif 000003
【図３】
0005688078.tif 000004
【図４ａ】
0005688078.tif 000005
【図４ｂ】
0005688078.tif 000006
【図５】
0005688078.tif 000007