(57)【特許請求の範囲】
【請求項１】
メッシュを生成するシステムであって、少なくとも１つのプロセッサを備え、
該少なくとも１つのプロセッサが、
構造の三次元オブジェクトモデルの入力面の種類を、前記入力面がシングルループを含むのかマルチループを含むのか、前記入力面が円筒形表面を含むのか否か、前記入力面が中間軸ビードを含むのか否か、及び前記入力面が中間軸アニュラスを含むのか否か、を少なくとも弁別することにより分類し、
該分類した入力面の種類に基づいて、複数のマルチブロック分解アルゴリズムであって前記少なくとも１つのプロセッサがそれらを使用するように構成されているマルチブロック分解アルゴリズムの中から、いずれかのマルチブロック分解アルゴリズムを選択し、
該選択したマルチブロック分解アルゴリズムを用いて、前記入力面にわたる複数のブロックの位置を確定し、
該各ブロックをメッシュ処理して、前記入力面を複数の四辺形要素に分割するメッシュを画定するメッシュデータを生成する、システム。
【請求項２】
前記少なくとも１つのプロセッサは、前記入力面の平坦化された二次元表現を生成するように構成され、
前記少なくとも１つのプロセッサは、該少なくとも１つのプロセッサが確定するように構成されている複数の入力面種類の中から、前記入力面の二次元表現に基づいて前記分類する入力面の種類を確定するように構成され、
前記少なくとも１つのプロセッサは、前記入力面の二次元表現を使用して、前記入力面にわたる複数のブロックの位置を、前記分類した入力面の種類に基づいて確定するように構成される、請求項１に記載のシステム。
【請求項３】
前記少なくとも１つのプロセッサが前記入力面の二次元表現を処理するために選択し使用するように構成されている前記複数のマルチブロック分解アルゴリズムは、
円筒形表面を有する前記入力面を、該円筒形表面の軸に平行であるいくつかの平行なスラブ形状ブロックに細分化するために用いられるデカルトスラブ分解アルゴリズムを含むと共に、
前記少なくとも１つのプロセッサが前記入力面の二次元表現を処理するために選択し使用するように構成されている前記複数のマルチブロック分解アルゴリズムは、
少なくとも１つの中間軸分解アルゴリズムを含み、該少なくとも１つの中間軸分解アルゴリズムが、
中間軸ビード種入力面分類に属する前記入力面を、前記中間軸ビードの中央に矩形ブロックを含みその両脇に２つの湾曲ブロックキャップがある３つのブロックに細分化するように構成された中間軸ベースのビード分解アルゴリズムと、
中間軸アニュラス種入力面分類に属する前記入力面を、複数の円弧形状ブロックを含む複数のブロックに細分化するように構成された中間軸ベースのアニュラス分解アルゴリズムと、
マルチループ種入力面分類に属する前記入力面を、該入力面が円筒形種の入力面又は中間軸アニュラス種の入力面ではないという判断に基づいて細分化するように構成された中間軸ベース及び可視性ベースの組み合わせ分解アルゴリズムとのうちの少なくとも１つを含む、請求項２に記載のシステム。
【請求項４】
前記中間軸ベース及び可視性ベースの組み合わせ分解アルゴリズムを選択した場合、前記少なくとも１つのプロセッサは、候補分割線の直交性、対称性及び短さに基づいて前記入力面をブロックに細分化する分割線が確定される、前記中間軸ベース及び可視性ベースの組み合わせ分解アルゴリズムの可視性ベース分解部分を実行するように、構成される、請求項３に記載のシステム。
【請求項５】
前記少なくとも１つのプロセッサが前記入力面の二次元表現を処理するために選択し使用するように構成されている前記複数のマルチブロック分解アルゴリズムは、
前記入力面が円筒形種入力面又は中間軸ビード種入力面ではないと前記少なくとも１つのプロセッサが判断した場合にシングルループ種入力面分類に属する前記入力面を細分化するために用いられる、少なくとも１つの美術館分解アルゴリズムを含む、請求項２〜４のいずれか１項に記載のシステム。
【請求項６】
前記メッシュは、頂点に付随した４つの要素を有する内部ノードと、８０°〜１００°の間の４つの夾角を有する前記四辺形要素とを含む四辺形メッシュであり、
前記少なくとも１つのプロセッサは、前記構造に対する物理的作用を、前記メッシュデータと、少なくとも１つの入力デバイスの動作により提供される、前記構造に印加される荷重を表すデータとに少なくとも基づいて判断するように構成され、
前記少なくとも１つのプロセッサは、表示デバイスにより少なくとも１つのグラフィカルユーザインターフェースを生成するように動作し、該少なくとも１つのグラフィカルユーザインターフェースは、前記三次元オブジェクトモデル、前記三次元オブジェクトモデルの前記メッシュ及び前記確定された構造に対する物理的作用の視覚的表現を表示し、
前記少なくとも１つのプロセッサは、前記少なくとも１つのグラフィカルユーザインターフェースが、前記三次元オブジェクトモデルを修正し、該修正した三次元オブジェクトモデルを表すデータを少なくとも１つのデータストアに記憶するために使用されることを可能にするように構成される、請求項１〜５のいずれか１項に記載のシステム。
【請求項７】
メモリと、アプリケーションソフトウェアコンポーネントと、前記少なくとも１つのプロセッサと、前記少なくとも１つの入力デバイスと、前記表示デバイスとを含むコンピュータシステムをさらに備え、
前記アプリケーションソフトウェアコンポーネントは、前記メモリに記憶され前記少なくとも１つのプロセッサによって実行されたときに、該少なくとも１つのプロセッサを、前記少なくとも１つの入力デバイスによる入力に応答して、オブジェクトモデルをメモリにロードし、メッシュ処理し、有限要素解析に付すように動作させる、命令からなる、請求項６に記載のシステム。
【請求項８】
メッシュを生成する方法であって、
少なくとも１つのプロセッサが動作して、
構造の三次元オブジェクトモデルの入力面の種類を、前記入力面がシングルループを含むのかマルチループを含むのか、前記入力面が円筒形表面を含むのかどうか、前記入力面が中間軸ビードを含むのかどうか、及び前記入力面が中間軸アニュラスを含むのかどうか、を少なくとも判断することにより分類し、
該分類した入力面の種類に基づいて、複数のマルチブロック分解アルゴリズムであって前記少なくとも１つのプロセッサがそれらを使用するように構成されているマルチブロック分解アルゴリズムの中から、いずれかのマルチブロック分解アルゴリズムを選択し、
該選択したマルチブロック分解アルゴリズムを用いて、前記入力面にわたる複数のブロックの位置を確定し、
該各ブロックをメッシュ処理して、前記入力面を複数の四辺形要素に分割するメッシュを画定するメッシュデータを生成する、ことを含む方法。
【請求項９】
前記少なくとも１つのプロセッサが動作して、
前記入力面の平坦化された二次元表現を生成し、前記入力面の種類の分類を、当該入力面の二次元表現に基づいて行い、前記選択したマルチブロック分解アルゴリズムを用いた前記入力面にわたる複数のブロックの位置の確定を、前記入力面の二次元表現に基づいて実行する、ことをさらに含む、請求項８に記載の方法。
【請求項１０】
選択可能な前記複数のマルチブロック分解アルゴリズムに、
円筒形表面を有する前記入力面を、該円筒形表面の軸に対して平行であるいくつかの平行なスラブ形状ブロックに細分化するデカルトスラブ分解アルゴリズムを含む、請求項９に記載の方法。
【請求項１１】
選択可能な前記複数のマルチブロック分解アルゴリズムに、少なくとも１つの中間軸分解アルゴリズムを含み、該少なくとも１つの中間軸分解アルゴリズムは、
中間軸ビード種入力面分類に属する前記入力面を、前記中間軸ビードの中央に矩形ブロックを含みその両脇に２つの湾曲ブロックキャップがある３つのブロックに細分化するように構成された中間軸ベースのビード分解アルゴリズムと、
中間軸アニュラス種入力面分類に属する前記入力面を、複数の円弧形状ブロックを含む複数のブロックに細分化するように構成された中間軸ベースのアニュラス分解アルゴリズムと、
マルチループ種入力面分類に属する前記入力面を、該入力面が円筒形種の入力面又は中間軸アニュラス種の入力面ではないという判断に基づいて細分化するように構成された中間軸ベース及び可視性ベースの組み合わせ分解アルゴリズムとのうち少なくとも１つを含む、請求項９又は１０に記載の方法。
【請求項１２】
前記中間軸ベース及び可視性ベースの組み合わせ分解アルゴリズムを選択した場合、候補分割線の直交性、対称性及び短さに基づいて前記入力面をブロックに細分化する分割線が確定される、前記中間軸ベース及び可視性ベースの組み合わせ分解アルゴリズムの可視性ベースの分解部分を実行することをさらに含む、請求項１１に記載の方法。
【請求項１３】
選択可能な前記複数のマルチブロック分解アルゴリズムに、
前記入力面が円筒形種入力面又は中間軸ビード種入力面ではないという判断に基づいて、シングルループ種入力面分類に属する前記入力面を細分化するために、美術館分解アルゴリズムを含む、請求項９〜１２のいずれか１項に記載の方法。
【請求項１４】
前記メッシュは、４つの要素が頂点に付随した内部ノードと、８０°〜１００°の間の４つの夾角を有する前記四辺形要素とを含む四辺形メッシュであり、
前記少なくとも１つのプロセッサが動作して、
前記構造に対する物理的作用を、前記メッシュデータと、少なくとも１つの入力デバイスの動作により提供される、前記構造に印加される荷重を表すデータとに少なくとも基づいて判断し、
表示デバイスにより少なくとも１つのグラフィカルユーザインターフェースを生成し、該少なくとも１つのグラフィカルユーザインターフェースは、前記三次元オブジェクトモデル、前記三次元オブジェクトモデルの前記メッシュ及び前記確定された構造に対する物理的作用の視覚的表現を表示し、
前記少なくとも１つの入力デバイスによる別の入力に応じて、前記三次元オブジェクトモデルを修正し、該修正した三次元オブジェクトモデルを表すデータを少なくとも１つのデータストアに記憶する、ことをさらに含む、請求項８〜１３のいずれか１項に記載の方法。
【請求項１５】
少なくとも１つのプロセッサで実行されたときに、該プロセッサに、請求項８〜１４のいずれか１項に記載の方法を実行させる、実行可能な命令が符号化されている非一時的コンピュータ可読媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本開示は、概して、製品及びその他のアイテムのデータを生成し、使用し、そして管理するために用いられる、コンピュータ支援エンジニアリング（ＣＡＥ）、コンピュータ支援設計（ＣＡＤ）、視覚化、及び製造のシステム、製品データ管理（ＰＤＭ）システム、製品ライフサイクル管理（ＰＬＭ）システム、及び同様のシステム（本明細書では総称して製品システムと呼ぶ）を対象とする。
【背景技術】
【０００２】
ＰＬＭシステムは、製品構造の設計とシミュレーション検査を促進するコンポーネントを含み得る。当該コンポーネントは改良していくのがよい。
【発明の概要】
【０００３】
種々開示する態様には、コンピュータ支援エンジニアリング（ＣＡＥ）ソフトウェアによって構造に関し実行される有限要素解析シミュレーションで用いられる、構造のオブジェクトモデルに対するメッシュの生成を促進するべく用いる、システム及び方法が含まれる。一態様に係るシステムは、少なくとも１つのプロセッサを備える。この少なくとも１つのプロセッサは、構造の三次元（３Ｄ）オブジェクトモデルの入力面の種類を、少なくとも入力面が含むループの個数に基づいて分類するように構成される。該少なくとも１つのプロセッサはさらに、分類した入力面種に基づいて、複数のマルチブロック分解アルゴリズム（プロセッサがこれを使用するように構成されている）の中からいずれかのマルチブロック分解アルゴリズムを選択するように構成される。加えて、該少なくとも１つのプロセッサは、選択したマルチブロック分解アルゴリズムを用いて、入力面にわたる（例えば、分割線を用いるなどによる）複数のブロックの位置を判断するように構成される。そして、該少なくとも１つのプロセッサは、各ブロックをメッシュ処理して、入力面を複数の四辺形要素に分割するメッシュを表すデータを生成するように構成される。
【０００４】
別の態様に係る方法は、少なくとも１つのプロセッサの動作を通し実行される種々の作用を含み得る。当該方法は、構造の三次元（３Ｄ）オブジェクトモデルの入力面の種類を、少なくとも入力面が含むループの個数に基づいて分類し、分類した入力面種に基づいて、複数のマルチブロック分解アルゴリズム（プロセッサがこれを使用するように構成されている）の中からいずれかのマルチブロック分解アルゴリズムを選択し、選択したマルチブロック分解アルゴリズムを用いて、入力面にわたる（例えば、分割線を用いるなどによる）複数のブロックの位置を判断し、各ブロックをメッシュ処理して、入力面を複数の四辺形要素に分割するメッシュを表すデータを生成することを含む。
【０００５】
入力面の分類は、具体的には、入力面がシングルループを含むのかマルチループを含むのか、入力面が円筒形表面を含むのか否か、入力面が中間軸ビードを含むのか否か、及び入力面が中間軸アニュラスを含むのか否か、を少なくとも弁別することにより行う。
【０００６】
さらなる態様として、実行可能な命令を符号化した非一時的コンピュータ可読媒体（記憶装置上のソフトウェアコンポーネント等）があり、この命令の実行により少なくとも１つのプロセッサが、本開示の方法を実行する。
別の態様として、本開示の方法に対応する機能を実行するように構成された、ハードウェア、ソフトウェア、及びファームウェアのいずれか１つ以上をベースとするプロセッサ、コンピュータ、コンポーネント、コントローラ、手段、モジュール、又はユニット、あるいはこれら１つ以上の組み合わせを、少なくとも１つ含む。
【０００７】
以上、当業者が以下の詳細な説明をより良く理解し得るように、本開示の技術的特長をやや広範に概説した。特許請求の範囲の対象をなす本開示のさらなる特徴及び利点は、以後に説明される。当業者ならば、開示する概念と具体的実施形態を基礎として容易に応用し、本開示と同じ目的を遂行する他の構造を修正又は設計することができる。さらに当業者にとっては、それら同等の構造が、最も広範な形式において、本開示の要旨と範囲から逸脱しないということも、当然である。
【０００８】
以下の詳細な説明に入る前に、本明細書を通じて用いられる特定の語句の定義を説明しておくことにする。例えば、「含む（include）」及び「備える（comprise）」ならびにそれらの派生語は、限定なき包含を意味する。不定冠詞「ａ」、「ａｎ」、及び定冠詞「ｔｈｅ」は、文脈で明白に別の意を示さない限り、複数形態も含むことを意図している。さらに、本明細書で用いる「及び／又は（and/or）」という表現は、これに関して列挙してある項目の１つ以上とそのあらゆる可能な組み合わせを指し且つ包含する。「又は（or）」は、文脈で明白に別の意を示さない限り、及び／又は（and/or）の意味を含む。「関連する（associated with）」及び「それと関連する（associated therewith）」ならびにそれらの派生語は、含むこと、中に含まれること、相互接続されること、収容すること、中に収容されること、何かに接続すること、何かに結合すること、連通すること、協働すること、インタリーブすること、並置すること、近接すること、何かに接合すること、性質を持つこと、その他同種のことを意味する。
【０００９】
さらに、「第１（first）」、「第２（second）」、「第３（third）」・・・等の用語は本明細書では、種々の要素、機能又は行為を説明するために用いられるが、当要素、機能又は行為は、これらの用語によって限定されるものではない。これら数詞は、どちらかといえば、異なる要素、機能又は行為を互いから区別するために用いられる。例えば、本開示の範囲から逸脱することなく、第１の要素、機能又は行為は、第２の要素、機能又は行為と読み替えることができ、また同様に、第２の要素、機能又は行為は、第１の要素、機能又は行為と読み替えることができる。
【００１０】
さらに、「プロセッサは」１つ以上の機能又はプロセスを実行する「ように構成される」といった言い回しは、プロセッサが、ソフトウェア、ファームウェア及び／又は有線回路により機能又は処理を実行するように動作可能に又は操作可能に構成されるということを意味する。例えば、「機能／処理を実行するように構成されたプロセッサ」は、プロセッサに機能／処理を実行させるようにプログラムされたソフトウェア／ファームウェアを能動的に実行するプロセッサに相当し得る、及び／又は、機能／処理を遂行するためにプロセッサが実行可能なソフトウェア／ファームウェアをメモリ又は記憶装置内に有するプロセッサに相当し得る。もちろん、１つ以上の機能又は処理を実行する「ように構成された」プロセッサは、その機能又は処理を実行するため特別に組まれた又は「配線された」プロセッサ回路（例えば、ＡＳＩＣやＦＰＧＡ設計）にも相当し得る。さらに、１つ以上の機能を実行するように構成された要素（例えば、プロセッサ）の前の「少なくとも１つの（at least one）」という言い回しは、それぞれが該機能を実行する１つ以上の要素（例えば、プロセッサ）に相当する場合もあるし、１つ以上の別々の機能のうちの異なる１つの機能をそれぞれが実行する２つ以上の要素（例えば、プロセッサ）に相当する場合もある。
【００１１】
「隣接する（adjacent to）」は、文脈で明白に別の意を示さない限り、ある要素が別の要素に比較的近いが接触はしていないということ、又は、ある要素が別の要素に接触しているということを、意味し得る。
【００１２】
特定の語句の定義は本明細書を通して提供され、当業者ならば当然わかるとおり、そのような定義は、殆どではなくとも多くの場合に、当該定義された語句の従来ならびに将来の用法に適用される。広範な態様を含み得る用語もあるが、特許請求の範囲は、これらの用語を実施形態に明確に限定し得る。
【図面の簡単な説明】
【００１３】
【図１】オブジェクトモデルに対するメッシュの生成を促進するシステム例の機能ブロック図。
【図２】うまく構築された四辺形メッシュの例を示す図。
【図３】マルチブロック仮想トポロジエンジンを含むメッシュコンポーネントのフレームワーク例を示す図。
【図４】ジオメトリアナライザコンポーネントに関する例のフローチャート例４００を示す図。
【図５】入力面の例と、対応するシングルループ分類の例及びマルチループ分類の例とを示す図。
【図６】円筒形種の入力面を分類するフィーチャの一例を示す図。
【図７】入力面に対し確定される中間軸の例を示す図。
【図８】中間軸の中間エッジ及び中間頂点を示す図。
【図９】ビードとアニュラスのトポロジ例を示す図。
【図１０】マルチブロック分解コンポーネントのフローチャートを示す図。
【図１１】入力面を細分化するブロックを画定する仮想縁線の例を示す図。
【図１２】中間軸分解アルゴリズムにより取り除かれる頂点の凹形の例を示す図。
【図１３】中間軸分解アルゴリズムによって評価される各凹形から延びるドロネーエッジの例を示す図。
【図１４】円の直径が最大か最小のいずれかである各中間縁上の位置で内接円の接触点によって画定される分割線の配置例を示す図。
【図１５】マルチループアニュラス種の入力面に追加される分割線の配置例を示す図。
【図１６】マルチループアニュラス種の入力面に追加される分割線の配置例を示す図。
【図１７】グローバルデカルト（Ｘ，Ｙ）座標系の直交軸に円筒形入力面を平坦化し整列させる例を示す図。
【図１８】美術館（Art Gallery）マルチブロック化アルゴリズムにより入力面を区分するために直交を拡張する例を示す図。
【図１９】美術館（Art Gallery）マルチブロック化アルゴリズムにより入力面を区分するために直交を拡張する例を示す図。
【図２０】入力面に対する反射頂点とそれらの対との関係を描写するノッチ図。
【図２１】９個の反射頂点をもつ美術館分解したシングルループ入力面における３Ｄ空間の最終メッシュを示す図。
【図２２】可視性ベースの分解アルゴリズムによって入力面に追加される分割線の例を示す図。
【図２３】入力面が、可視性ベースの分解アルゴリズムによって四辺区分に分割されている例を示す図。
【図２４】可視性ベースの分解アルゴリズムによってブロックが提供された後に図２３の入力面に生成されるメッシュの例を示す図。
【図２５】トポロジビルダーコンポーネントが、入力面のブロック位置データに基づいて仮想トポロジを生成する例を示す図。
【図２６】オブジェクトモデルのメッシュ生成を促進する方法例のフローチャートを示す図。
【図２７】実施形態を実行可能なデータ処理システムのブロック図。
【発明を実施するための形態】
【００１４】
オブジェクトモデルに対するメッシュを生成するためのシステム及び方法に関する種々の技術を、図面を参照して説明する。図面を通して、同様の参照符号は同様の要素を表す。以下に説明する図面と、本開示の原理を本明細書で説明するために用いる種々の実施形態とは、例示のみを目的としており、如何なる意味でも本開示の範囲を限定すると解釈されるべきではない。当業者には当然のことであるが、本開示の原理は、任意の適切に構成された装置において実行可能である。あるシステム要素によって実行されるとして説明される機能が複合要素によっても実行可能であるのは、当然のことである。同様に、例えば、複合要素によって実行されると説明されている機能を１つの要素が実行するようにも構成され得る。本願の多くの革新的理論が、例示的で非限定的な実施形態を参照して説明される。
【００１５】
多くの形式の製品システム（ＣＡＥ及びＣＡＤソフトウェア等）は、オブジェクトの構造（例えば、パーツ、アセンブリ及びサブアセンブリ）を表す各種の三次元（３Ｄ）オブジェクトモデル（ＣＡＤファイルに格納されたもの等）を操作し処理するように作動する。中でもＣＡＥソフトウェアは、オブジェクトモデルに関する検査及び／又はシミュレーションを実行するべく使用される。当該シミュレーションは例えば、様々な荷重の印加と、この荷重に応答して構造がどのような挙動を見せるかを、該構造に関して生成されたメッシュに基づいて計算することを含む。例えば、一実施形態において、シミュレーションソフトウェアは、構造のオブジェクトモデルに関して生成されたメッシュを用いて構造の応力解析を実行する。別の形態では、シミュレーションソフトウェアは、オブジェクトモデルによって表される多数接続された構造への自動車衝突（又はその他の試験）の物理的影響をシミュレートするためにメッシュを用いることが可能である。
【００１６】
構造に関しシミュレーションを実行するために、構造のオブジェクトモデルは、構造の表面を、多数接続された四辺の幾何学的形状のメッシュに分割するメッシュ処理を経る。シミュレーションソフトウェアは、そのようなメッシュに加えてユーザ設定可能な１つ以上のオブジェクトモデルの特性（構造を製造する素材等）及びユーザ設定可能な解析パラメータを用いて有限要素解析等の数学的処理を実行し、シミュレーション（例えば、静荷重、衝突）が構造に与え得る作用（例えば、物理的変化、変位）に関する情報を導出する。
【００１７】
図１を参照すると、オブジェクトモデルに対するメッシュの生成を促進する（容易にする）システム１００が例示されている。システム１００は、本明細書で説明される種々の特徴を実行するためにメモリ１０６から少なくとも１つのアプリケーションソフトウェアコンポーネント１０４を実行するように構成された少なくとも１つのプロセッサ１０２を含む。アプリケーションソフトウェアコンポーネント１０４は、本明細書で説明される種々の作用と機能をプロセッサ１０２に実行させるように構成される（すなわち、プログラムされる）。例えば、アプリケーションソフトウェアコンポーネント１０４は、メモリ及び／又はその他のデータストア１３８（例えば、ファイルシステム、ＰＬＭデータベース）の３Ｄオブジェクトモデルデータ１０８へプロセッサ１０２をアクセスさせるように構成される。
【００１８】
アプリケーションソフトウェアコンポーネント１０４は、オブジェクトモデルにメッシュを生成するメッシュコンポーネント１１０に相当するかこれを含む。また、アプリケーションソフトウェアコンポーネント１０４は、オブジェクトモデルに関するメッシュ生成を実行するメッシュコンポーネント１１０を含むかこれと通信する１つ以上のソフトウェアコンポーネントからなるシミュレーションソフトウェアコンポーネント１１２（ＣＡＥソフトウェア等）に相当するかこれを含む。
【００１９】
さらに詳細に以下で説明するように、メッシュソフトウェアコンポーネントは、メッシュの生成を促進する１つ以上のコンポーネントから構成される。しかしながら、本明細書において別々のコンポーネントによって実行されると説明される特徴が、より少数のコンポーネント及び／又は単一のコンポーネントによって実行可能であることは、当然理解されることである。さらに、説明に係る単一のコンポーネントによって実行される特徴が、互いに通信する２つ以上のソフトウェアコンポーネントによって実行される場合もあり得る。
【００２０】
本明細書で説明する機能のうち少なくともいくつかを含むように構成されるＣＡＤ／ＣＡＭ／ＣＡＥ（コンピュータ支援設計／コンピュータ支援製造／コンピュータ支援エンジニアリング）ソフトウェアの一例は、Siemens Product Lifecycle Management Software Inc.（テキサス州プレイノ市）から入手可能な、アプリケーションの「NX suite」を含む。しかしながら、説明に係るメッシュコンポーネントが、３Ｄオブジェクトモデルのメッシュを使用可能である、アーキテクチャソフトウェア、アニメーションレンダリングソフトウェア、及び／又は他の３Ｄソフトウェア等、その他のタイプのアプリケーションソフトウェアコンポーネントへの統合に対応していてもよいのは、当然のことである。
【００２１】
ここに説明するシステムは、少なくとも１つの表示デバイス１１４（表示スクリーン等）及び少なくとも１つの入力デバイス１１６を含む。例えば、プロセッサ１０２は、ＰＣ、ノートブックコンピュータ、ワークステーション、サーバ、タブレット、携帯電話機、又はその他の形式のコンピューティングシステムの一部として含まれる。表示デバイス１１４は、例えば、ＬＣＤディスプレイ、モニタ及び／又はプロジェクターを含む。入力デバイス１１６は、例えば、本明細書で説明される入力を提供することが可能な、マウス、ポインタ、タッチスクリーン、タッチパッド、タブレット、トラックボール、ボタン、キーパッド、キーボード、ゲームコントローラ、カメラ、身振りをキャプチャするモーションセンシングデバイス、又はその他の入力デバイスを含む。また、タブレット等のデバイスに関して、プロセッサ１０２は、入力デバイス及び表示デバイス両方として働くタッチスクリーンを含むハウジングに組み込むこともできる。また、当然ながら、いくつかの入力デバイス（ゲームコントローラ等）は、複数の異なるタイプの入力デバイス（アナログスティック、ｄパッド及びボタン）を含む。
【００２２】
本明細書で説明するプロセッサは、ここに説明する表示デバイス及び入力デバイスから離れた位置にあるサーバに配置可能であるのは勿論のことである。このような例の場合、説明に係る表示デバイス及び入力デバイスは、有線又は無線ネットワーク（インターネットを含み得る）を介してサーバ（及び／又はサーバ上で実行される仮想マシン）と通信するクライアントデバイス内に含まれ得る。いくつかの実施形態において、当該クライアントデバイスは例えば、リモートデスクトップアプリケーションを実行するか、又は、サーバとリモートデスクトッププロトコルを実行するポータルデバイスに相当し、入力デバイスからの入力をサーバに送信し且つサーバから視覚情報を受信して表示デバイスで表示する。そのリモートデスクトッププロトコルの例として、TeradiciのＰＣｏＩＰ、MicrosoftのＲＤＰ、及びＲＦＢプロトコルがある。別の例では、該クライアントデバイスは、ウェブブラウザ又はシンクライアントアプリケーションを実行するコンピュータに相当する。ユーザからの入力は、ウェブブラウザ又はシンクライアントアプリケーションから送信されて、サーバによって評価され、サーバによってレンダリングされ、そして画像（又は一連の画像）がクライアントコンピュータに返送されて、ウェブブラウザ又はシンクライアントアプリケーションによって表示される。さらに、いくつかの例では、本明細書で説明するリモートプロセッサは、サーバの物理的プロセッサで実行される仮想マシンの仮想プロセッサの組み合わせに相当する。
【００２３】
ここに説明するアプリケーションソフトウェアコンポーネント１０４は、入力デバイス１１６を介し受け取ったオブジェクトローディング（読み込み）入力１１８に応答して、３Ｄオブジェクトモデルデータ１０８にアクセスし、表示デバイス１１４に、３Ｄオブジェクトモデルデータ１０８に基づく３Ｄオブジェクトモデルの視覚表現１２２を表示するグラフィカルユーザインターフェース（ＧＵＩ）１２０を出力させるように構成される。さらに、アプリケーションソフトウェアコンポーネント１０４は、入力デバイス１１６を介し受け取ったメッシュ生成入力１２４に応答して、メッシュコンポーネント１１０に、読み込まれた３Ｄオブジェクトモデルデータ１０８に基づいてメッシュデータ１２６を生成させるように構成される。このメッシュデータ１２６は、３Ｄオブジェクトモデルデータ１０８（例えば、ＣＡＤデータ）と相関させてデータストア１３８に記憶される。
【００２４】
アプリケーションソフトウェアコンポーネント１０４は、入力デバイス１１６を介し受け取ったシミュレーション入力１２８に応答して、シミュレーションコンポーネント１１２に、メッシュデータ１２６を処理してシミュレーション結果データ１３０を生成させるように構成される。このシミュレーション結果データ１３０は、物理的変化及び変位等、構造に対するシミュレーション（応力試験、衝突）の作用に関する定量的データに相当する。説明に係るアプリケーションソフトウェアコンポーネント１０４は、当然ながら、ＧＵＩ１２０に、生成されたメッシュの視覚表現１３２とシミュレーション結果の視覚表現１３４を表示させるようにも動作可能である。さらに、説明に係るアプリケーションソフトウェアコンポーネント１０４は、当該シミュレーションデータを、オブジェクトモデルデータ１０８と相関させてデータストア１３８に記憶するようにも動作可能である。
【００２５】
表面のメッシュ処理において、特定のシミュレーション用途で、シミュレーションの精度、ロバスト性及びソルバー収束率を増強するためには、三角形要素を備えた表面メッシュよりも、うまく構築された四辺形要素を備えた表面メッシュのほうが好ましい。説明に係るメッシュコンポーネント１１０の一実施形態によると、メッシュの細部を（例えば、より高密度の四辺形要素による高精細のメッシュによって）手動でリファインする必要を最小限にする及び／又は排除する、高品質四辺形メッシュを生成するように構成されたマルチブロック／仮想トポロジエンジン１３６（例えば、ソフトウェア機能）を含む。
【００２６】
図２は、マルチループ面２０４を例として、うまく構築された四辺形メッシュ２０２の一例２００を示す。本明細書で定義される、良質の四辺形メッシュは、内部ノード２０６の大部分が４価の価数（すなわち、度数…頂点に付随する要素の個数）を有し、可能な限り多くの四辺形要素２１０（例えばそれらの少なくとも大部分）の４つの夾角２０８それぞれがほぼ９０°（例えば、８０°−１００°）であるメッシュとして定義される。この目標に向けて、例示の実施形態により解決される具体的課題が、産業部品及びコンポーネントの一般的表面に関するそのようなメッシュの自動生成である。
【００２７】
図１に戻ると、メッシュコンポーネント１１０は、一実施形態として、オブジェクトモデルデータ１０８の表面の１つ以上の選択面を、説明に係るマルチブロック仮想トポロジエンジン１３６によって自動的に処理させるように構成される。このエンジン１３６は、うまく構築された四辺形メッシュの生成を最適に達成するために選択されるフィーチャ依存マルチブロック化ストラテジーの最適システムを用いて、（エンジン１３６に入力される）入力面を、最多の凸状「ブロック」の集合に細分化するように構成（すなわち、プログラム）される。
【００２８】
説明に係るメッシュコンポーネント１１０及びマルチブロック仮想トポロジエンジン１３６についてフレームワーク３００の一例が図３に示されている。この例において、エンジン１３６は、３層のコンポーネントから構成される。本明細書でジオメトリアナライザコンポーネントと呼ぶ第１のコンポーネント３０２は、入力面３１０の種類を、トポロジ及び／又はジオメトリベースの一連のフィーチャ認識ツールを用いてカテゴライズ（分類）するように構成される。
【００２９】
この説明に係るマルチブロック仮想トポロジエンジン１３６は、本明細書でマルチブロック分解（デコンポーザ）コンポーネントと呼ぶ第２のコンポーネント３０４も含む。このマルチブロック分解コンポーネント３０４は、ジオメトリアナライザコンポーネント３０２によって分類される／識別される面の種類３１２に応じて、入力面３１０に関する多くの異なるマルチブロック化処理からいずれか１つを（選択可能なアルゴリズムによって）実行するように構成される。（これら多種のマルチブロック化処理のそれぞれの）マルチブロック分解コンポーネント３０４の出力は、ブロック位置を確定するために用いることのできる仮想頂点及び仮想縁３１４等の、入力面にわたるブロック位置を表すデータを含む。
【００３０】
説明に係るマルチブロック仮想トポロジエンジン１３６は、本明細書でトポロジビルダーコンポーネントと呼ぶ第３のコンポーネント３０６を含む。このトポロジを構築するコンポーネント３０６は、入力面３１０をブロックに細分化する仮想ブロックトポロジの仮想面３１６を表すデータを、マルチブロック分解コンポーネント３０４によって確定されたデータ（例えば、仮想頂点及び仮想縁３１４）に基づいて確定するように構成される。
【００３１】
説明に係るマルチブロック仮想トポロジエンジン１３６によって生成された仮想面データ３１６は、最終メッシュコンポーネント３０８に受け渡される。この最終メッシュコンポーネント３０８は、構築された等角メッシュデータ１２６を入力面３１０の全体にわたり生成するために仮想面をメッシュ処理するように構成される。
【００３２】
図４は、説明に係るジオメトリアナライザコンポーネント３０２が、表面の面種を分類するために実行するワークフロー（いくつかのステップからなる）の例について、フローチャート４００を示す。この例において、第１のステップ４０２で、ジオメトリアナライザコンポーネント３０２は、入力面４０４を、その入力面が含むループの個数に基づいてカテゴライズするように構成（例えば、プログラム）される。ループは例えば、入力面自体を囲んで延在するか、又は、入力面を貫通する開口又は孔の境界を定める、一続きの表面部位に相当する。したがって、孔のない入力面はシングルループを有するのに対し、貫通する１つ以上の孔がある入力面はマルチループを有する。
【００３３】
例えば、ジオメトリアナライザコンポーネント３０２は、第１のステップ４０２で、入力面４０４が、シングルループを含むか、マルチループを含むかを判断する。ここの例の場合、全てのマルチループ面はＭ０種面として分類され、全てのシングルループ面はＳ０種面として分類される。図５は、種々の入力面５０２と、説明に係るジオメトリアナライザコンポーネント３０２によって確定される、これら各種表面に対応するシングルループ５０４及びマルチループ５０６の分類とに関する例５００を示す。
【００３４】
第１のステップ４０２で確定した面種に応じて、ジオメトリアナライザコンポーネント３０２がさらに別の面分類を画定してもよい。例えば、ジオメトリアナライザコンポーネント３０２は、入力面４０４に関する円筒検出を行う第２のステップ４０６を実行できる。（第１のステップ後の）Ｍ０種又はＳ０種の面が、（第２のステップで）円筒として識別された場合、これらは、ジオメトリアナライザコンポーネント３０２によってそれぞれＭ１種又はＳ１種の面として再分類され得る。
【００３５】
図６の例６００に示すように、ジオメトリアナライザコンポーネント３０２は、表面６０２に対する最良適合軸６０４を解くことによって円筒表面６０２を検出するように構成される。最小二乗近似に対する適合エラーが設定閾値未満であれば、該表面は円筒形であると見なされる。例示の実施形態では、ジオメトリアナライザコンポーネント３０２は、Ｍ種面の密なサンプルメッシュ上の全ポイントが、当基準に所定の公差内で合致したという判断に基づいて、面に円筒としてフラグを立てるように構成される。
【００３６】
ここに説明する後続のプロセスに加えて、ジオメトリアナライザコンポーネント３０２は（面種をカテゴライズすることに加えて）、分類中の表面の面の円筒軸６０４に対して平行とした、対応する仮想継ぎ目縁６０６を、メモリに（及び／又は、解析中の表面のＣＡＤデータを伴って）、記憶する。
【００３７】
図４に戻って、ジオメトリアナライザコンポーネント３０２は、全ての面を３Ｄ空間から、加重ハーフエッジ法（ＷＥＨＭ）の平坦化アルゴリズム（又はその他の平坦化アルゴリズム）を用いて、平坦化したＵＶ空間へ変換することで、テッセレーションした３Ｄ面の２Ｄパラメータ化を実行する、第３のステップ４０８を実行するように構成される。線形問題と非線形問題の両方に適用されるＷＨＥＭ平坦化アルゴリズムは、等角マッピング技法と三角形高さ維持技法との折衷を用いて、変換歪みが高度に減少した２Ｄ領域を生成する。分類、マルチブロック分解及びメッシュ処理に関してここに説明するさらなるステップ及びプロセスは、この２Ｄ領域において実行され、結果として得られるメッシュ処理した表面は、その後に、３Ｄ空間へ逆変換される。
【００３８】
例えば、ジオメトリアナライザコンポーネント３０２は、この２Ｄ領域内で、第１と第２のステップで実行した分類の種類に基づいてさらなる面種識別を実行するように構成される。第３のステップ４０８における平坦化の後、全てのＳ０種及びＭ０種（すなわち、非円筒形）の面は、面のビード及びアニュラスフィーチャを検出するために中間軸認識を用いて処理される。
【００３９】
例えば、第４のステップ４１０において、ジオメトリアナライザコンポーネント３０２は、全てのＳ０種（すなわち、シングルループ非円筒形）の面に関してビード検出を実行する。そして例えば、第５のステップ４１２において、ジオメトリアナライザコンポーネント３０２は、全てのＭ０種（すなわち、マルチループ非円筒形）の面に関してアニュラス検出を実行する。この例において、ビードとして識別されたＳ０種面はいずれもＳ２種面として再分類される。また、アニュラスとして識別されたＭ０種面はいずれもＭ２タイプ面として再分類される。
【００４０】
図５は、説明に係るジオメトリアナライザコンポーネント３０２によって確定される入力面５０２の例に対する面識別分類５０８を例示する。ただし、当然のことながら、説明に係るジオメトリアナライザコンポーネント３０２の別の実施形態によれば、面の、より少数の、代替的な、及び／又は付加的な種類を識別し分類し得る。
【００４１】
図７に例示する表面７００を参照すると、この実施形態において、ジオメトリアナライザコンポーネント３０２は、オブジェクト境界７０６上の一組の点のドロネー三角形分割を使用して、２Ｄ領域において、面７０４の中間軸７０２を導出するように構成される。一組の点のドロネー三角形分割とは、各ドロネー三角形７１０の頂点を形成する３点に関する外接円７０８が他の点を含まないという特性をもつ三角形分割として定義される。中間軸７０２は、図７に示すように、境界上の連続した点の間の距離がゼロに近付き、且つ、各ドロネー三角形７１０の外接円７０８がオブジェクト内に内接するときに、外接円中心７１２によって描き出される。
【００４２】
図８に図示した例８００を参照すると、２Ｄにおいて中間軸をなす２つのエンティティ、すなわち、中間縁８０２と中間頂点８０４がある。中間縁に属する中間軸上の点は、境界上の２つのエンティティから等距離である。逆に、中間頂点に属する点は、境界上の３つ以上のエンティティから等距離である。中間縁は、図８に示すように中間頂点によって接続されている。中間縁は、接続する中間頂点が画定されるドロネー三角形のタイプに基づいてトポロジ的に分類される。ドロネー三角形の３つの主なタイプは、図８にそれぞれ示されるように、ジャンクション（Ｊ）８０６、ノーマル（Ｎ）８０８、コーナー（Ｃ）８１０であり、それぞれオブジェクト境界８１２上に０、１、２個の辺を有している。その結果、Ｊ及びＣタイプのドロネー三角形から導出される中間頂点が両端にある中間縁は、Ｊ−Ｃ中間縁などとして分類されることになる。
【００４３】
図９に示す例９００を参照すると、説明に係るジオメトリアナライザコンポーネント３０２によって中間軸が検出に用いられる２つの別個のフィーチャは、ビード（Ｓタイプ）９０２とアニュラス（Ｍタイプ）９０４の中間トポロジである。全てのビードはＣ−Ｃタイプの中間縁を有する。アニュラスは、中間縁が中間頂点をもたず、全ての軸点がＮタイプドロネー三角形から導出される、特別なケースである。この縁は、Ｎ−Ｎ中間縁と呼ぶことができる。
【００４４】
図３に戻って、前に説明したように、マルチブロック分解コンポーネント３０４は、面（２Ｄ領域）における特定のマルチブロック副分割処理を、ジオメトリアナライザコンポーネント３０２によって確定された特定の分類に基づいて選択し実行する。この選択可能なマルチブロック副分割処理は、面種の特定の分類に基づいた１つ以上の、中間軸分解アルゴリズム、デカルトスラブ化（平板化）分解アルゴリズム及び美術館分解アルゴリズムを含み得る。あるいは、当然理解されることであるが、別の実施形態によると、説明に係るジオメトリアナライザコンポーネントの別の実施形態によって実行される面の異なる分類に基づいて、より少数の、代替的な、及び／又は付加的な分解アルゴリズムを用いてもよい。例えば、以下に詳細に説明されるように、中間軸分解アルゴリズムのうち１つは、比較的複雑な面の曲率を処理するために、可視性ベースの分解アルゴリズムと組み合わされる。
【００４５】
図１０は、説明に係るマルチブロック分解コンポーネント３０４によって実行される機能のフローチャート１０００を示す。この例において、第１のステップ１００２で、マルチブロック分解コンポーネント３０４は、利用可能な分解アルゴリズムのうち１つを、入力面１００４の面種分類に基づいて選択し、該選択分解アルゴリズムを使用して入力面を処理する第２のステップが実行されるように構成（例えば、プログラム）される。
【００４６】
例えば、面種がＳ０種（すなわち、シングルループ非ビード種）である場合、マルチブロック分解コンポーネント３０４は、入力面１００４を処理するために美術館分解アルゴリズムが用いられる第２のステップ１００６を実行する。面種がＳ１又はＭ１種（すなわち、シングルかマルチループの円筒種）である場合、マルチブロック分解コンポーネント３０４は、入力面１００４を処理するためにデカルトスラブ分解アルゴリズムが用いられる別の第２のステップ１００８を実行する。面種がＭ２種（すなわち、マルチループアニュラス種）である場合、マルチブロック分解コンポーネント３０４は、入力面１００４を処理するために中間軸ベースのアニュラス分解アルゴリズムが用いられる別の第２のステップ１０１０を実行する。面種がＳ２種（すなわち、シングルループビード種）である場合、マルチブロック分解コンポーネント３０４は、入力面１００４を処理するために中間軸ベースのアニュラス分解アルゴリズムが用いられる別の第２のステップ１０１２を実行する。面種がＭ０種（すなわち、マルチループ非円筒非アニュラス種）である場合、マルチブロック分解コンポーネント３０４は、入力面１００４を処理するために可視性ベースの分解アルゴリズムと組み合わせて中間軸ベースのアニュラス分解アルゴリズムが使用される別の第２のステップ１０１４を実行する。
【００４７】
これら分解アルゴリズムそれぞれの出力は、メモリ又はその他のデータストアに記憶可能であり、そして、入力面を多数のブロック（すなわち、仮想面）に分割し且つ入力面上の仮想縁座標を表す線によって画定されるブロック位置を表すデータに相当する。この分割線を表すデータは、該分割線に対応する仮想縁の位置を画定する仮想頂点を含む。図１１は、これらの確定した仮想縁線１１０２の例１１００を図示しており、仮想縁線１１０２は、図５に関して前述した分類後の各種の面をそれぞれいくつかのブロックに細分化する。ただし当然のことながら、説明に係るマルチブロック分解コンポーネントの代替的実施形態では、本明細書で説明する分解アルゴリズムに関連する構成及びパラメータに応じて違う位置に仮想縁線を配置し得る。以下では、このデータが、これらのアルゴリズムのそれぞれによってどのように生成されるかについて詳述する。
【００４８】
説明に係る中間軸分解アルゴリズムは、外心と三角形の高さの両方を用いて中間軸点を計算するハイブリッド技法を用いる。トポロジトラバースアルゴリズムが中間縁を確立する。余分な中間縁又は分岐は、境界上の劣化した平坦な三角形を解析することによって回避される。厚さ、縁長さ、接触点の全ての関連する中間軸属性は、面と共に記憶される。さらに、内接円の接触点情報が、ビード及びアニュラスフィーチャの分割線の位置を画定するために用いられる。より複雑なマルチループ面に関しては、中間軸が導出されるドロネーメッシュを、凹形を除去するために用いることができ、内接円の直径からの厚さ情報が、中間縁に沿った分割位置を画定する。
【００４９】
例えば、中間軸ベースの分解アルゴリズムと可視性ベースの分解アルゴリズムの組み合わせ１０１４（図１０に示す）は、Ｍ０種面（マルチループ非円筒及び非アニュラス種）として分類される入力面に適用される。入力面の処理において、このアルゴリズムの最初のステップは、面から一切の凹形を除去するためのものであり得る。凹形は、図１２の例１２００に示される頂点夾角θにより識別される。θが概ね２７０°に等しいか又はこれ以上である場合、これによって、説明に係るマルチブロック分解コンポーネント３０４によるアルゴリズム実行で除去される頂点の凹形が識別される。
【００５０】
例示の実施形態において、この原理に基づいて頂点の凹形を識別するアルゴリズムによって、領域のドロネーテッセレーションが実行される。さらに、三角形分割は、凹形を除去するための最適な縁分割を決めるためにも利用される。例えば、図１３の例１３００で示すように、各凹形から延出するドロネーエッジが確定されて評価され、最も直角の縁１３０２が選択される。
【００５１】
図１４に例示するように、全ての凹形を除去した後、説明に係る分解アルゴリズムの次のステップでは、内接円の直径が最大か最小のいずれかである各中間縁上の位置に、該内接円の接触点によって画定される分割線１４０２を配置する。この実施形態において、生成され得る最も複雑な小区分は、１つの中間頂点を包囲する３つの中間縁の全てが６辺の小区分１４０４を残すように分割された場所である。
【００５２】
この中間軸アルゴリズムは、可視性ベースの分解アルゴリズムと組み合わせることで、複合面に対する付加分割線を提供できる。可視性ベースの分解アルゴリズムは、図２２〜図２４に関して後述する。凹形除去、中間軸分解及び可視性分解によって生成された分割線は次に、マルチブロック分解コンポーネント３０４によって、入力面に関する仮想縁候補として記憶される。
【００５３】
例えば、アニュラス中間軸分解アルゴリズム１０１０が、Ｍ２種面（マルチループアニュラス種）として分類された入力面に適用される。アニュラスに関して図１５に示すように、内接円１５０４の接触点によって画定される分割線１５０２が、マルチブロック分解コンポーネント３０４によって、入力面上に等間隔で配置され、複数の円弧形状ブロック１５０６を生成する。分割線の個数は、ブロック化の細かさを設定するために、説明に係るアプリケーションソフトウェアコンポーネントのユーザ設定可能なパラメータである。
【００５４】
図１５は、入力面に関する分割線１５０２の個数が４である例を示す。この分割線は、４個の４辺ブロック１５０４を生成する。確定した分割線は、マルチブロック分解コンポーネント３０４によって、入力面の仮想縁候補として記憶される。
【００５５】
ビード中間軸分解アルゴリズム１０１２は、Ｓ２種面（シングルループビード種）として分類された入力面に適用される。ビードに関して図１６に示す例１６００のように、内接円１６０４の接触点によって画定される分割線１６０２は、中間縁の始点と終点からずれた位置に配置される。これにより、ビードの中央に長方形部分１６０６を含み、その両脇に２つの湾曲したキャップ１６０８，１６１０がある、３つのブロックが画定される。該確定された分割線は、入力面の仮想縁候補として記憶される。
【００５６】
実施形態において、デカルトスラブ分解アルゴリズムは、軸が存在する円筒及び周期的表面での使用を対象とする。スラブは全て軸及び互いに対し平行であるため、このアルゴリズムは、マップメッシュ化ではない場合であっても、系統立ったルックアンドフィールを与えつつ容易にメッシュ化が可能である、薄型スラブの規則正しく系統立った分解を確実にする。最小二乗近似を用いた最良適合軸の計算は、円筒形フィーチャの認識を可能にするのみならず、デカルトスラブ分解アルゴリズムの使用するデカルト格子アライメントに対し基準データを提供する。
【００５７】
例えば、デカルトスラブ化分解アルゴリズムは、Ｓ１種及びＭ１種の面（シングルループ及びマルチループ円筒種）として分類される入力面に適用される。図１７の例１７００に図示されるように、３Ｄ円筒形面６０２を２Ｄ空間へ平坦化する（ジオメトリアナライザコンポーネントにより実行）ときに、３ＤからＵＶへの変換は、仮想継ぎ目縁６０６（ジオメトリアナライザコンポーネントにより確定）にも適用される。結果として得られる平坦化された面１７０２及び仮想継ぎ目縁１７０４は、通例、２ＤＵＶ空間において非軸方向に整列した配向をとる。
【００５８】
デカルトスラブ化アルゴリズムにより実行される最初のステップは、２ＤＵＶ空間の平坦化面１７０２に変換を適用してグローバルデカルト（Ｘ，Ｙ）座標系の直交軸と整列させることである。仮想継ぎ目縁１７０４は円筒軸に整列するので、当該変換は、これをデカルト格子のＹ軸１７０６と整列させるために計算される。この変換が平坦化面１７０２に適用されると、整列した平坦化面１７０８（対応する円筒軸６０４がＹ軸と平行）が生成される。
【００５９】
デカルトスラブ化アルゴリズムによって実行される次の段階は、面を細分化し、入力面の対応する円筒軸に平行である、スラブ形状ブロックを画定することである。スラブブロックの個数は、説明に係るアプリケーションソフトウェアコンポーネントのユーザ設定可能なパラメータであり、ブロック化の細かさを設定する。スラブ幅は、スラブ要素の設定個数に基づいて確定される。そして、分割線が、確定されたスラブ幅に従い画定される各間隔で縦軸に延伸する線と、整列した平坦化面１７０８の境界との交点を計算することによって生成される。
【００６０】
美術館マルチブロック化アルゴリズムは、例えば、シングルループを備えた面に関し採用できる。これは、粗い境界離散化に依存し、ドロネーメッシュの使用を避ける。例えば、美術館分解アルゴリズムは、Ｓ０種面（シングルループ非円筒非ビード種）として分類される入力面に適用される。美術館定理（aka Watchman定理）は、美術館の監視を最適化する基盤を提供するものである。美術館定理は、ｎ個の頂点をもつシングルループ多角形の包括的な床に関して、ｎ／３床ガードｇ（ｎ）又は監視カメラが時として必要であり、且つ常にそれで十分であることを記述している。非凸状直交多角形を凸状直交領域に細分化するための安価でスマートな方法を提供するべく、いくつかの補題が用いられる。凹状多角形の、その反射頂点からの直交区分化が、面の凸状区分化をもたらす。ｒ反射頂点を備えた任意の一般多角形に関して利用可能な補題は、したがって次式１のように記述できる。式中、Ａｎは結果として得られる凸状小区分の個数である。
［式１］
0006700379.tif 000002
図１８は、ｒ（４）反射頂点から降ろした（すなわち延ばした）ｒ（４）最短直交線が、どのように多角形をｒ＋１（５）凸状小区分に区分けできるかに関する例１８００を示す。図１９は、ｒ（８）反射頂点が互いに対向して発生し、ｒ／２（４）最短直交線が降ろされ（延ばされ）て、ｒ（８）頂点を有する凹状多角形を、ｒ／２＋１（５）凸状小区分に分解する、極小条件の例１９００を示す。
【００６１】
この補題を包括的多角形に即興で合わせて拡張することによって、説明に係る美術館分解アルゴリズムは、先ず境界凹形を確定することで系統立ったメッシュを生成するように構成される。入力面は、対象とするフィーチャサイズに相当するユーザ設定可能要素サイズよりも若干小さいサイズで離散化した第１の境界である。これは、ユーザ設定可能要素サイズよりもずっと小さいフィーチャが面境界にあれば、アルゴリズムはそれらを無視するように構成可能であるということを意味する。
【００６２】
さらに、入力面（３ＤＵＶ空間内の）の各頂点ｉにおいて、夾角φｉが、頂点のノードと、その後端及び先端の隣接ノードとの間で計算される。この角度に基づいて、頂点は、次式２の法則に則して凹形又は反射としてマークされる。式中、φｔは可変角度公差である（概して６０°）。
［式２］
0006700379.tif 000003
【００６３】
ノッチ図２０００を図２０に例示してあり、入力面２００６に関し、反射頂点（ＶＲ）２００２と、その対の頂点（ＶＰ）２００４との関係が示されている。ノッチ図を展開するために、面境界が先ず要素サイズで離散化され、全反射頂点が先ず、それらの直近の近隣縁に直交して投影される。
【００６４】
美術館分解アルゴリズムは次に、各反射頂点（ＶＲ）とその対の頂点（ＶＰ）との関係を確立するように構成される。反射頂点のうちいくつかは仮想（ＶＲＶ）とすることができ、またおおよそ、対の頂点の大部分は仮想（ＶＰＶ）である。全反射頂点（ＶＲ）をその対の頂点（ＶＰ）にリンクさせれば、ノッチ図は図２０に示すように完成する。数学的表記では、ノッチ図（ＮＤ）は、次式３によって与えられる、ｎ個の反射頂点とそれらの正投影された対の頂点とのリンクの集合として表現される。
［式３］
0006700379.tif 000004
【００６５】
説明に係る美術館分解アルゴリズムは次に、分割線基準を用いて、境界上の多くの接続可能なものの中から、各反射頂点からの最適な分割線を決定するように構成される。分割線が適所に配置されると、面は最適な個数の凸状小区分に分解される。９個の反射頂点を有する美術館分解シングルループ入力面に基づく３Ｄ空間の最終結果（メッシュ）の例２１００が、図２１に示されている。
【００６６】
別の実施形態において、マルチブロック分解コンポーネントは、複合（複雑）入力面に関して可視性ベースの分解アルゴリズムも用いる。可視性ベースの分解アルゴリズムは、シングルループ面及びマルチループ面の両方に適用されて付加分割線を付加し／導入し、これら付加分割線は、より良く定義された系統立ったメッシュ生成のために、いくつかの凸状区分を、より小さい四辺形状区画に分割することを補助する。殊に、前述したように、マルチブロック分解コンポーネントの一実施形態では、マルチループ非アニュラス及び非円筒種（例えば、Ｍ０種入力面）として分類される入力面に関して、中間軸ベースの分解アルゴリズムと可視性ベースの分解アルゴリズムの組み合わせを選択して用いる。
【００６７】
説明に係る一例の可視性ベースの分解アルゴリズムは、ドロネーメッシュを必要とせず、グローバルサイズに等しい境界離散化に依存する。可視性ベースの分解アルゴリズムは、図２２の例２２００に示すように、面境界上の他の点に関して境界点の「可視性」を決定する。凹形又は反射頂点ｊ２２０２は、面輪郭を３つの区画Ｄ１−２２０８、Ｄ２−２２１０及びＤ３−２２１２に分割する２本の延長線ｊｌ２２０４及びｊｒ２２０６を有する。（点ｊを起点に）線ｊｌ２２０４の左側の面区分がＤ１、線ｊｒ２２０６の右側の面区分がＤ３、その間の区画がＤ２である。通常、区画Ｄ２内の全点は点ｊ２２０２にとって可視である。各可視点は、分割線機能により、同様の線ｊｋ２２１４に関して次式４のように表される。
［式４］
0006700379.tif 000005
【００６８】
全ての有効な可視分割線候補の汎関数の最小値が最適な分割線を与える。正規化された長さパラメータ又は長さコスト関数ＬはＬ＝ｌｊｋ／ｌｄによって与えられる。式中、ｌｊｋは分割線ｊｋ（図２２に示す）の長さ、ｌｄは、メッシュ区分Ｂ≡［（ｘmin，ｙmin），（ｘmax，ｙmax）］の境界を定める矩形ボックスの対角線である固有長さである。一定の角度及び長さ重み係数がヒューリスティックに発生し、例えばＷＨ＝１．０及びＷＬ＝５．０に相当する。
【００６９】
また、ｆｓｙｍは、分割線対称重み係数であり、対称分割線に関してｆｓｙｍ＝０．８、非対称分割線に関してｆｓｙｍ＝１．０と定義される。Ｈ、又は分割線角度累積項は次式５のように表される。
［式５］
0006700379.tif 000006
【００７０】
この式において、角度重み係数Ｗαｉは通例、ほとんどの角度に関して１．０であるが、９０度に最も近い分割線に、より重みを付けるように計算できる。例えば、角度重み係数Ｗαｉは、次のように、分割線が９０度に近付くにつれ、０．７と１．３に変えられる：ｈ１＜０．０３３，ｈ２＜０．０３３，ｈ３＜１．０，ｈ４＜１．０の場合、Ｗα１＝Ｗα２＝１．３且つＷα３＝Ｗα４＝０．７であり；また、ｈ１＜１．０，ｈ２＜１．０，ｈ３＜０．０３３及びｈ４＜０．０３３の場合、Ｗα１＝Ｗα２＝０．７且つＷα３＝Ｗα４＝１．３である。
【００７１】
角度コスト関数ｈｉは、角度が良いほど値が低くなるように計算される。四辺形に関して、この値は９０度で０に近付く。分割線は傾斜し、６０°を下回る角度で非常に高くなる。これらは次式６のように表される。
［式６］
0006700379.tif 000007
【００７２】
式中の分割線２２１４の周りの分割角度φｉ２２１６は図２２に示されており、角度コサイン係数ｆαはｆα＝４／ｃｏｓ２φｍｉｎと記述される。
【００７３】
分割線の対称性は、互いの又は対応する角度の近さによって測定される。例えば、対称条件は次式７に相当する。
［式７］
0006700379.tif 000008
【００７４】
分割線汎関数のこの例示定式化は、直交分割、分解の対称性及び点近接度（分割線の短さ）を強調する。図２２に示すように、この例において、境界離散化面に対する最適の分割線２２１４（この場合ｊｋ）は、全ての可能な可視候補のうち最小の分割線汎関数値をもつ。
【００７５】
説明に係る可視性ベースの分解アルゴリズムは、面輪郭の分割が発生する度に、面輪郭ループが分割線の右側のサブループと左側のサブループとに分割されるように構成される。再帰分割は、結果として得られる小輪郭が「四辺形状」となるまで継続され得る。例示のマルチブロック分解コンポーネントは、四辺形状チェックアルゴリズムを用いて小輪郭をチェックし、入力面のこの部分に関する再帰分割を終了するために、該小輪郭が十分に「四辺形状」となることを判断する。
【００７６】
図２３は、入力面２３０２が、説明に係る可視性ベースの分解アルゴリズムによって四辺区分に分割された例２３００を示す。この例において、２つの内部ループ２３０４を有する面は、可視性ベースのマルチブロック化アルゴリズムで１１個の仮想四辺形状面に分解される。図２４は、可視性ベースの分解アルゴリズムによって生成された１１個のブロックがメッシュ処理された後の、２Ｄ空間における当該入力面２３０２の例２４００を示す。
【００７７】
図３に戻って、前述したように、メッシュコンポーネント１１０のマルチブロック仮想トポロジエンジン１３６はさらに、マルチブロック分解コンポーネント３０４によって出力されるデータを処理するトポロジビルダーコンポーネント３０６を含む。このデータは、入力面を細分化するブロックを画定する仮想縁候補（すなわち、分割線）を確定するために使用可能である。当データは、入力面の２Ｄ表現に関する頂点の関係を含み、そして、仮想縁候補と対応する面を確定するためにトポロジビルダーコンポーネント３０６によって利用可能である。
【００７８】
例えば、トポロジビルダーコンポーネント３０６は、ここに説明するマルチブロッキング分解アルゴリズムのいずれの出力に関してもノッチ図（ＮＤ）を確定するように構成される。この目的のノッチ図２５００の一例が図２５に示されている。トポロジビルダーコンポーネント３０６は、リンク済みの頂点ペア（ｅ）２５０４，２５０６の間に仮想縁（ｖｅ）２５０２を確定する。ノッチ図ＮＤ、仮想縁（ｖｅ）、仮想頂点（ｅ）及びオリジナルの面ジオメトリが与えられると、トポロジビルダーコンポーネント３０６は、仮想面（Ｖｆ）２５０８を構築する。使用されない、面境界上に一時的に生成されたノードは全て、この時点でトポロジビルダーコンポーネント３０６によって削除される。
【００７９】
図２５に示す確定されたノッチ図ＮＤは、入力面に対する２Ｄパラメータ空間における仮想面分解後の結果である仮想トポロジの一例に相当する。当然理解されることであるが、説明に係るトポロジビルダーコンポーネント３０６は非常に軽く、最小データ（例えば、多くてもノード／頂点／縁へのポインタ／参照）を含み、メッシュ化コンポーネントのパラメータ空間で動作する。
【００８０】
図３に戻って、前述したように、メッシュコンポーネント１１０はさらに、トポロジビルダーコンポーネント３０６によって生成された仮想面のそれぞれに最終メッシュを生成するように構成された最終メッシュコンポーネント３０８を含む。仮想面に最終メッシュが生成されると、全仮想面のノード／要素は、入力面のオリジナルの親面／縁と関連付けられて、仮想トポロジは廃棄される。
【００８１】
例示の実施形態において、先ず仮想面に関し、最終メッシュコンポーネント３０８によって超限的（有限ではない）メッシュ化が実行される。この超限的メッシュ化は、仮想面がこの例において４辺であるため、ほとんどの仮想面においてうまくいく。残りの非マップメッシュ可能な仮想面は、細分割／ペービング（paving）メッシュ化アルゴリズムによってメッシュ処理される。結果として得られる最終メッシュは、説明に係るマルチブロック分解プロセスの結果として、分解されない面に関する小分割／ペービングアルゴリズムによって生成可能なメッシュに比べ、より系統立ったものとなる。
【００８２】
例示の実施形態において、エンジニアは、本明細書に説明するメッシュデータを用いて実行されたシミュレーション結果を用いて、所望の性能基準（例えば、より安全な自動車）に合致させるべく構造を最適化するためにオブジェクトモデルを修正（ＣＡＤソフトウェアにより）することができる。修正後の構造に対応する最終メッシュ及び／又はＣＡＤデータ及び／又は製品データは、データストア１３８（ＣＡＤファイル及び／又はＰＬＭデータベース等）に記憶される。説明に係るアプリケーションソフトウェアコンポーネント及び／又は他のソフトウェアアプリケーションは次に、ＣＡＤデータ及び／又は製品データに記憶されている修正後の構造に基づいて種々の機能を実行する。
【００８３】
そのような機能は、構造を構築するために用いられる特定のコンポーネント（及びその量）を指定する製図及び／又は部品表（ＢＯＭ）を（ＣＡＤデータ及び／又は製品データに基づいて）生成することを含む。これら製図及び／又はＢＯＭは、プリンタで紙に印刷する、マイクロソフト（登録商標）エクセルファイル又はアクロバット（登録商標）ＰＤＦファイル等の電子的形式で生成する、表示デバイスによって表示する、ｅメールで通信する、データストアに記憶する、又は設計構造に相当する製品をつくるために個人及び／又はマシンによって使用可能な形式で生成する、ことができる。さらに、３Ｄプリンタ等のマシンが、（シミュレーション結果を考慮してＣＡＤソフトウェアによって修正される前又は後に）オブジェクトモデルを表すデータを用いて、該オブジェクトデータから物理的構造（例えば、部品）を製造する例も、当然ながら可能である。
【００８４】
図２６を参照すると、種々の方法が例示されている。例示の方法は、１つのシーケンスで実行される一連の過程として説明されているが、同方法が例示のシーケンスの順に限定されないことは、当然である。例えば、一部の過程は、ここに説明する順番とは異なる順に生じ得る。さらに、過程は、別の過程と同時にも生じ得る。加えて、全ての過程がここに説明する方法の実行に必要ではない例もある。
【００８５】
本開示は、完全に機能的なシステム及び／又は一連の過程と関連した説明を含むが、当業者ならば、本開示のメカニズム及び／又は説明する過程の少なくとも一部は、非一時的なマシンで使用可能な、コンピュータで使用可能な又はコンピュータ可読の媒体内に種々の形式のいずれかで収容された、コンピュータで実行可能な命令の形式で、配布可能であること、また、本開示は、その配布を実際に実行するために利用される命令又は信号を担持する媒体又はストレージ媒体の特定のタイプにかかわらず等しく適用されることを、当然理解することができる。非一時的なマシンで使用可能な／可読の、コンピュータで使用可能な／可読の媒体の例は、ＲＯＭ、ＥＰＲＯＭ、磁気テープ、フレキシブルディスク、ハードディスクドライブ、ＳＳＤ、フラッシュメモリ、ＣＤ、ＤＶＤ、ブルーレイディスクを含む。コンピュータで実行可能な命令は、ルーチン、サブルーチン、プログラム、アプリケーション、モジュール、ライブラリ、実行のスレッド及び／又は同等物を含む。さらに、方法の過程の結果は、コンピュータ可読媒体に記憶される、表示デバイスに表示される、及び／又は同等の処理を施される。
【００８６】
図２６を参照すると、オブジェクトモデルに対するメッシュの生成を促進する方法２６００が示されている。該方法は、２６０２で開始（Start）され、少なくとも１つのプロセッサの動作によって実行されるいくつかの過程を含む。これらの過程は、構造の三次元（３Ｄ）オブジェクトモデルの入力面の種類を、少なくとも入力面が含むループの個数に基づいて分類する過程２６０４を含む。次に、該方法は、分類した入力面の種類に基づいて、複数のマルチブロック分解アルゴリズム（プロセッサがこれらを使用するように構成されている）の中からいずれかのマルチブロック分解アルゴリズムを選択する過程２６０６を含む。また、該方法は、選択したマルチブロック分解アルゴリズムを用いて入力面にわたる複数のブロックの位置を確定する過程２６０８を含む。そして、該方法は、各ブロックをメッシュ処理して、入力面を複数の四辺形要素に分割するメッシュを画定するメッシュデータを生成する過程２６１０を含む。該方法は過程２６１２で終了（End）する。
【００８７】
方法２６００は、システム１００に関して前述したその他の過程及び特徴を含み得るのは当然である。例えば、該方法は、入力面の平坦化二次元（２Ｄ）表現を生成することを含み得る。入力面の種類を分類する過程は、その入力面の２Ｄ表現を基に行える。また、選択したマルチブロック分解アルゴリズムを用い、入力面にわたる複数のブロックの位置を確定する過程が、前記入力面の２Ｄ表現に基づいて実行され得る。
【００８８】
複数の入力面に関して入力面の種類を分類する過程２６０４は、入力面の少なくとも１つがシングルループを含むのかマルチループを含むのか、入力面の少なくとも１つが円筒形表面を含むのか否か、入力面の少なくとも１つが中間軸ビードを含むのか否か、及び入力面の少なくとも１つが中間軸アニュラスを含むのか否か、を判定することを含み得る。
【００８９】
複数の入力面に対してマルチブロック分解アルゴリズムを選択し使用する過程２６０６，２６０８は、デカルトスラブ分解アルゴリズムを選択し使用して、円筒形表面を有する入力面の少なくとも１つを、円筒形表面の軸に対して平行である、いくつかの平行なスラブ形状ブロックに細分化することを含み得る。
【００９０】
複数の入力面に対しマルチブロック分解アルゴリズムを選択し使用する過程２６０６，２６０８は、中間軸ベースのビード分解アルゴリズム、中間軸ビード種分解アルゴリズム、及び中間軸ベースの分解アルゴリズムと可視性ベースの分解アルゴリズムの組み合わせ、のうちの少なくとも１つを選択し使用することを含めて、少なくとも１つの中間軸分解アルゴリズムを選択し使用することを含み得る。中間軸ベースのビード分解アルゴリズムは、中間軸ビード種入力面分類を有する入力面の少なくとも１つを、ビードの中央に矩形ブロック含み、両脇に２つの湾曲ブロックキャップがある３つのブロックに細分化するために、使用され得る。中間軸ビード種分解アルゴリズムは、中間軸アニュラス種入力面分類を有する入力面の少なくとも１つを、複数の円弧形状ブロックを含む複数のブロックに細分化するために、使用され得る。中間軸ベースの分解アルゴリズムと可視性ベースの分解アルゴリズムの組み合わせは、マルチループ種入力面分類を有する入力面の少なくとも１つを、入力面のうち少なくとも１つが円筒形種の入力面ではない、又は、中間軸アニュラスタイプ入力面ではないという判定に基づいて細分化するために、使用され得る。
【００９１】
過程２６０６，２６０８は、シングルループ種入力面分類を有する入力面の少なくとも１つを、入力面のうち少なくとも１つが円筒形種の入力面ではない、又は、中間軸ビード種入力面ではないという判定に基づいて細分化するために、美術館分解アルゴリズムを選択して使用することを含み得る。
【００９２】
説明に係る方法において、生成されたメッシュは内部ノードを含み、該内部ノードの大部分が４価で、メッシュの四辺形要素の大部分が、８０°〜１００°の間の４つの夾角を有する。
【００９３】
説明に係る方法は、メッシュデータと、少なくとも１つの入力デバイスの動作を通し提供された構造に印加される荷重を表すデータとに少なくとも一部は基づいて、構造に対する物理的作用を判断する過程を含み得る。該方法は、表示デバイスにより少なくとも１つのグラフィカルユーザインターフェース（ＧＵＩ）を生成する過程を含んでいてもよく、その少なくとも１つのＧＵＩは、オブジェクトモデル、オブジェクトモデルのメッシュ及び構造に対する確定された物理的作用、の視覚的表現を表示する。該方法は、少なくとも１つの入力デバイスによる別の入力に応じて、オブジェクトモデルを修正し、修正後のオブジェクトモデルを表すデータを少なくとも１つのデータストアに記憶する過程を含み得る。
【００９４】
前述したように、（本明細書で説明するメッシュから生成された）シミュレーション結果に基づく、構造のオブジェクトモデルに対する修正は、ＣＡＤデータ及び／又は製品データとしてＣＡＤファイル及び／又はＰＬＭデータストアに対し維持され得る。すると当該ＣＡＤデータ又は製品データに基づいて、製図及び／又はＢＯＭの作成に関連する過程が実行される。該方法は、個人が、その製図及び／又はＢＯＭに基づいて構造を手動で構築することを含み得る。そのような過程は、マシン（３Ｄプリンタ等）がＣＡＤデータに基づいて構造を構築することを含み得る。
【００９５】
前述したように、上記方法に関連する過程（構造を手動で構築する等の、説明した手動の過程以外の）は、１つ以上のプロセッサによって実行可能である。このプロセッサ（複数可）は、例えば、上記過程を１つ以上のプロセッサに実行させるように動作可能なソフトウェアコンポーネントを実行する１つ以上のデータ処理システムに含まれ得る。一例の実施形態において、そのようなソフトウェアコンポーネントは、ルーチン、サブルーチン、プログラム、アプリケーション、モジュール、ライブラリ、実行のスレッド及び／又は同等物に相当する、コンピュータ実行可能な命令を含む。さらに、ソフトウェアコンポーネントは、Ｊａｖａ（登録商標）、ＪａｖａＳｃｒｉｐｔ（登録商標）、Ｐｙｔｈｏｎ、Ｃ、Ｃ＃、Ｃ＋＋、又は本明細書で説明する過程と特徴を実行するように構成されたコンポーネントとグラフィカルユーザインターフェースを生成することが可能なその他のソフトウェアツール等の、ソフトウェア環境／言語／フレームワークによって書き込まれ、及び／又は生成可能であることは、言う迄も無い。
【００９６】
図２７は、本明細書で説明する処理を実行するように、ソフトウェアその他により動作可能に構成された、例えばＣＡＥ、ＣＡＤ、ＰＬＭ及び／又はその他のシステムの一環として、実施形態が実行されるデータ処理システム２７００（コンピュータシステムとも呼ぶ）のブロック図を示す。図示のデータ処理システム２７００は、１つ以上のブリッジ／コントローラ／バス２７０４（例えば、ノースブリッジ、サウスブリッジ）に接続された少なくとも１つのプロセッサ２７０２（例えば、ＣＰＵ）を含む。バス２７０４の１つは、例えば、ＰＣＩ高速バス等の１つ以上のＩ／Ｏバスを含み得る。図示の例において種々のバスに接続されるものにはさらに、メインメモリ２７０６（ＲＡＭ）及びグラフィックスコントローラ２７０８も含まれる。グラフィックスコントローラ２７０８は、１つ以上の表示デバイス２７１０に接続される。当然ながら、実施形態によっては、１つ以上のコントローラ（例えば、グラフィックス、サウスブリッジ）がＣＰＵに組み込まれていてもよい（同じチップ又はダイに）。ＣＰＵアーキテクチャの例は、ＩＡ−３２、ｘ８６−６４及びＡＲＭプロセッサアーキテクチャを含む。
【００９７】
１つ以上のバスに接続される他の周辺機器は、ローカルエリアネットワーク（ＬＡＮ）、ワイドエリアネットワーク（ＷＡＮ）、セルラーネットワーク及び／又はその他の有線又は無線ネットワーク２７１４又は通信機器に接続して動作可能な通信コントローラ２７１２（イーサネット（登録商標）コントローラ、ＷｉＦｉコントローラ、セルラーコントローラ）を含む。
【００９８】
種々のバスに接続されたコンポーネントは、さらに、ＵＳＢコントローラ、ブルートゥース（登録商標）コントローラ、及び／又は（スピーカ及び／又はマイクロフォンに接続された）専用オーディオコントローラ等の１つ以上のＩ／Ｏコントローラ２７１６を含む。入力デバイス２７１８（例えば、キーボード、マウス、タッチスクリーン、トラックボール、ゲームパッド、カメラ、マイクロフォン、スキャナ、モーションセンシングデバイス）、出力デバイス２７２０（例えば、プリンタ、スピーカ）、又は、データ処理システムに入力を提供する、又はデータ処理システムから出力を受け取るように動作可能な他のタイプのデバイスを含む種々の周辺機器が、ＵＳＢコントローラに（各種ＵＳＢポートを介して）接続される、ことは当然である。また、当然ながら、入力デバイス又は出力デバイスと呼ばれる多くのデバイスは、データ処理システムとの通信における入力を提供し出力を受信する。Ｉ／Ｏコントローラ２７１６に接続されたその他の周辺ハードウェア２７２２は、当然ながら、データ処理システムと通信するように構成された各種のデバイス、マシン又はコンポーネントを含む。
【００９９】
種々のバスに接続される他のコンポーネントは、１つ以上のストレージコントローラ２７２４（例えば、ＳＡＴＡ）を含む。ストレージコントローラ２７２４は、１つ以上のストレージデバイス、及び／又は適切な非一時的、マシン使用可能ストレージ媒体又はマシン可読ストレージ媒体等の関連するリムーバブル媒体など、ストレージデバイス２７２６に接続される。その例は、非揮発性デバイス、揮発性デバイス、リードオンリーデバイス、書き込み可能デバイス、ＲＯＭ、ＥＰＲＯＭ、磁気テープストレージ、フレキシブルディスクドライブ、ハードディスクドライブ、固体ドライブ（ＳＳＤ）、フラッシュメモリ、光ディスクドライブ（ＣＤ、ＤＶＤ、ブルーレイ）、及びその他の既知の光学的、電気的又は磁気的ストレージデバイス、ドライブ及び／又はコンピュータ媒体を含む。さらに、いくつかの例において、ＳＳＤ等のストレージデバイスが、ＰＣＩ高速バス等のＩ／Ｏバス２７０４に直接接続される。
【０１００】
一実施形態によるデータ処理システムは、オペレーティングシステム（ＯＳ）２７２８、ソフトウェア／ファームウェア２７３０及びデータストア２７３２（ストレージデバイス２７２６及び／又はメモリ２７０６に記憶可能）を含む。オペレーティングシステム２７２８は、コマンドラインインターフェース（ＣＬＩ）シェル及び／又はグラフィカルユーザインターフェース（ＧＵＩ）シェルを利用する。ＧＵＩシェルは、多数の表示ウィンドウが、各表示ウィンドウが異なるアプリケーションへのインターフェース又は同じアプリケーションの異なるインスタンスへのインターフェースを提供しながら、同時にグラフィカルユーザインターフェースに提示されることを、可能にする。グラフィカルユーザインターフェースのカーソル又はポインタは、ユーザによってマウス又はタッチスクリーン等のポインティングデバイスを介して操作される。カーソル／ポインタの位置は変更され、及び／又は、マウスボタンのクリックやタッチスクリーンのタッチ等のイベントが、所望の応答を得るために生成される。データ処理システムで用いられ得るオペレーティングシステムの例は、マイクロソフトウィンドウズ（登録商標）、リナックス（登録商標）、ユニックス（ＵＮＩＸ：登録商標）、ｉＯＳ及びアンドロイド（登録商標）といったオペレーティングシステムを含む。データストアの例は、データファイル、データテーブル、リレーショナルデータベース（例えば、オラクル、マイクロソフトＳＱＬサーバ）、データベースサーバ、又は、プロセッサによって回収可能なデータを格納することが可能なその他の構造及び／又はデバイスを含む。
【０１０１】
通信コントローラ２７１２は、インターネットを含む、当業者に既知のパブリック又はプライベートのデータ処理システムネットワーク又はネットワークの組み合わせであり得るネットワーク２７１４（データ処理システム２７００の一部ではない）に接続される。データ処理システム２７００は、ネットワーク２７１４を介して、サーバ２７３４（これもデータ処理システム２７００の一部ではない）等の１つ以上の他のデータ処理システムと通信する。しかしながら、代替的データ処理システムは、いくつかのデータ処理システムに関連するプロセッサが、１つ以上のネットワーク接続によって通信し、説明したタスクを、単一のデータ処理システムによって実行するように包括的に実行する、分散型システムの一環として実装される複数のデータ処理システムに相当する。データ処理システムと呼ぶ場合、当該システムは、ネットワークを介して互いに通信する分散型システム内に組織された複数のデータ処理システムを横断して実装可能であることは、当然理解される。
【０１０２】
「コントローラ」とは、デバイスがハードウェア、ファームウェア、ソフトウェア又はその少なくとも２つの組み合わせで実装されるかどうかを問わず、少なくとも１つのオペレーションを制御するデバイス、システム又はその一部を意味する。特定のコントローラに関連する機能は、ローカル、リモートのいずれであっても、中央集約されても分散されてもよい。
【０１０３】
データ処理システムは、もちろん、仮想マシンアーキテクチャの又はクラウド環境の仮想マシンとして実装され得る。例えば、プロセッサ２７０２と、関連するコンポーネントとは、１つ以上のサーバの仮想マシン環境において実行の仮想マシンに相当する。仮想マシンアーキテクチャの例は、ＶＭｗａｒｅ  ＥＳＣｉ、マイクロソフトＨｙｐｅｒ−Ｖ、Ｘｅｎ及びＫＶＭを含む。
【０１０４】
当業者ならば当然理解されるとおり、データ処理システムに関して図示したハードウェアは、実装形態に応じて変わり得る。例えば、本例においてデータ処理システム２７００は、コンピュータ、ワークステーション、及び／又はサーバに相当し得る。一方、データ処理システムの別の実施形態は、携帯電話機、タブレット、コントローラボードの形式等の対応する又は代替的なコンポーネントで構成されても、又は、データを処理し、本明細書で説明するデータ処理システム、コンピュータ、プロセッサ及び／又はコントローラの動作に関る、本明細書で説明する機能と特徴を実行するように構成されたその他のシステムで構成される。図示の例は、説明の目的のみで提供されたものであり、本開示に関する構造的な限定を意味することを意図していない。
【０１０５】
本明細書で用いる「コンポーネント」及び「システム」は、ハードウェア、ソフトウェア、又はハードウェアとソフトウェアの組み合わせを包含することを意図している。したがって、例えば、システム又はコンポーネントは、処理（プロセス）、プロセッサが実行する処理、又はプロセッサであってよい。加えて、コンポーネント又はシステムは単一のデバイスに局所化されても、又はいくつかのデバイスにわたり分散されてもよい。
【０１０６】
本明細書で用いる場合、プロセッサは、ハードウェア回路、ソフトウェア及び／又はファームウェアによりデータを処理するように構成された電子デバイスに相当する。例えば、本明細書で説明するプロセッサは、マイクロプロセッサ、ＣＰＵ、ＦＰＧＡ、ＡＳＩＣ又はその他の集積回路（ＩＣ）、又は、コントローラボード、コンピュータ、サーバ、携帯電話機、及び／又はその他の電子デバイスの形式を備えている、データ処理システムにおいてデータを処理できる他の回路のうち１つ以上（又は組み合わせ）に相当し得る。
【０１０７】
当業者ならば理解できるように、本明細書において、簡明にするため、本開示での使用に適したデータ処理システムの完全な構造と全動作について図示し説明しているわけはない。代わりに、本開示に独自な、又は本開示の理解に必要なだけのデータ処理システムのみが図示され説明されている。データ処理システム２７００の構成及び動作の残りの部分は、当技術分野で知られる種々の現行の実装と実施のいずれにも準拠し得る。
【０１０８】
本開示の例示的実施形態を詳細に説明したが、当業者ならば、最も広範な態様における本明細書の趣旨及び範囲から逸脱せずに、開示に即した種々の変更、置換、バリエーション及び改良がなされ得ることは当然理解される。
【０１０９】
本出願の説明のいずれも、特定の要素、ステップ、過程又は機能が、特許請求の範囲に含まれているべき必須の要素であるという意味に読み取られるべきではなく、特許の対象範囲は、許可された請求項によってのみ定義されるものである。さらに、これらの請求項はいずれも、厳密に「するための手段」という語の後に助詞が来ない限り、ミーンズ・プラス・ファンクション（means plus function）クレームを想起させる意図はない。
【図１】
0006700379.tif 000009
【図２】
0006700379.tif 000010
【図３】
0006700379.tif 000011
【図４】
0006700379.tif 000012
【図５】
0006700379.tif 000013
【図６】
0006700379.tif 000014
【図７】
0006700379.tif 000015
【図８】
0006700379.tif 000016
【図９】
0006700379.tif 000017
【図１０】
0006700379.tif 000018
【図１１】
0006700379.tif 000019
【図１２】
0006700379.tif 000020
【図１３】
0006700379.tif 000021
【図１４】
0006700379.tif 000022
【図１５】
0006700379.tif 000023
【図１６】
0006700379.tif 000024
【図１７】
0006700379.tif 000025
【図１８】
0006700379.tif 000026
【図１９】
0006700379.tif 000027
【図２０】
0006700379.tif 000028
【図２１】
0006700379.tif 000029
【図２２】
0006700379.tif 000030
【図２３】
0006700379.tif 000031
【図２４】
0006700379.tif 000032
【図２５】
0006700379.tif 000033
【図２６】
0006700379.tif 000034
【図２７】
0006700379.tif 000035