(57)【要約】      （修正有）【課題】メッシュから特徴木を抽出するため方法を提供する。【解決手段】方法は、メッシュを提供し、提供されたメッシュの幾何学的及び隣接グラフを提供するステップを含む。グラフの各ノードは、メッシュの１つの領域を表し、領域のプリミティブタイプ及びパラメータを含みむ。２つのノード間の各接続は、２つの接続されたノードによって表される領域のそれぞれの表面間の交差である。方法は、グラフの各ノードについて、定義されたプリミティブ・種類及び領域のパラメータに基づいて表面をインスタンス化することを含む。方法は、また、グラフの各ノードについて、１つの外部交差ループ及び場合によっては１つ又は複数の内部交差ループを計算するステップと、外部交差ループから少なくとも１つのスケッチを計算するステップとをさらに含む。各交差ループは、前記各ノードに接続されたグラフのノードの順序付けられたリストから取得される。【選択図】図１９
2020115339.tif 000002
【特許請求の範囲】
【請求項１】
メッシュから特徴木を抽出するためのコンピュータ実施方法であって、
・メッシュを提供するステップ（Ｓ１００）と、
・与えられたメッシュの幾何学的及び隣接グラフを計算するステップ（Ｓ１１０）であって、
・・ここでグラフの各ノードはメッシュの１つの領域を表し、領域のプリミティブ、種類及びパラメータを含み、
・・２つのノード間の各接続は２つの接続されたノードによって表される領域のそれぞれの表面間の交差であり、
・グラフの各ノードに対し、定義されたプリミティブタイプ及び領域のパラメータに基づく表面をインスタンス化するステップ（Ｓ１２０）と、
定義・グラフの各ノードに対し（Ｓ１３０）、
・・１つの外部交差ループ及び、おそらくは１つ以上の内部交差ループとを計算するステップ（Ｓ１３２）であって、各交差ループは前記各ノードに接続されたグラフのノードが順序付けられたリストから得られるステップと、
・・外部交差ループから少なくとも１つのスケッチを計算するステップ（Ｓ１３４）と、場合によっては、インスタンス化された表面の１つ又は複数の内部交差ループからそれぞれ１つ又は複数のスケッチを計算するステップ（Ｓ１３４）と、
・各計算スケッチに掃引演算を適用するステップ（Ｓ１４０）であって、各スケッチに対して立体を生成するステップと、
・得られた立体間の追加又は削除演算の可能な組合せのセットを演算するステップ（Ｓ１５０）であって、演算された各組合せについて最終立体を得るステップと、
・入力メッシュを用いて各最終立体の類似性スコアを計算するステップ（Ｓ１６０）と、
・類似性スコア、メッシュの特徴木に対応する定義された最も類似した最終立体の追加又は削除演算の組み合わせに基づいて、入力メッシュで最も類似した最終立体を定義するステップ（Ｓ１７０）と
を含むコンピュータ実施方法。
【請求項２】
得られた立体間の追加又は削除演算の考えられる組み合わせの集合を計算するステップが、
・凸状の外部交差ループで生成された立体に対して追加演算を使用するステップと、
・凹状の外部の交差ループで生成された立体の削除演算を使用するステップと、
・凹状の内部交差ループで生成された立体に対して追加演算を使用するステップと、
・凸状の内部交差ループで生成された立体に対する削除演算を使用するステップと
を含む、請求項１に記載のコンピュータ実施方法。
【請求項３】
得られた立体間の追加又は削除演算の可能な組み合わせのセットを計算するステップが、さらに、
・決定可能な凹凸又は凹面を持たない外部交差ループを持つ生成された各立体について、追加と削除の両方の演算を使用するステップを含む
請求項２に記載のコンピュータ実施方法。
【請求項４】
得られた立体間の追加又は削除演算の考えられる組み合わせの集合を計算するステップが、
・削除演算で使用される立体が追加演算で使用される単一の生成された立体の面にのみ隣接している場合、追加演算の後に削除演算を実行するステップと、
・削除演算で使用される立体が追加演算で使用される２つ以上の生成された立体の面にのみ隣接している場合、追加演算の後に削除演算を実行するステップと、
・追加演算で使用される立体が削除演算で使用される単一の生成立体の面にのみ隣接する場合、及び削除演算で使用される立体が追加演算で使用される単一の生成立体の面にのみ隣接する場合、又は追加演算で使用される２つ以上の生成立体の面にのみ隣接する場合、まず、削除演算で使用される立体に対する追加演算で使用される立体の削除演算を実行し、次に、最初に実行される削除の結果の削除演算のみを実行するステップと
をさらに含む、請求項２乃至３のいずれか一項に記載のコンピュータ実施方法。
【請求項５】
各計算されたスケッチに掃引演算を適用し、各スケッチに対して立体を生成するステップが、
・スケッチごとに、スケッチの１つの外部の交差ループに隣接する交差ループと、スケッチの１つ以上の内部の交差ループに隣接する交差ループからの掃引方向と掃引長さを計算するステップを含む
請求項１乃至４のいずれか一項に記載のコンピュータ実施方法。
【請求項６】
掃引方向及び掃引長さの計算はスケッチの１つの外部交差ループ及び考えられる１つ又は複数の交差ループのそれぞれについて実行され、当該計算が、スケッチの交差ループの各々について、
・交差ループ上の一つ以上のスケッチ点を定義するステップであって、スケッチ点がスケッチの交差ループに隣接する交差ループに共通する点であるステップと、
・定義されたスケッチ点ごとに、スケッチの交差ループに隣接する交差ループに共通の点であるターゲット点を定義するステップと、
・スケッチ点をターゲット点に結合するベクトルをスケッチ点ごとに計算し、ベクトルの方向が掃引方向、ベクトルのノルムが掃引長と、の各交差ループを含むステップと
を含む、請求項５に記載のコンピュータ実施方法。
【請求項７】
２つ以上のベクトルが計算されたとき、
・ベクトルは同じ方向を持ち、かつスケッチの各交差ループに隣接する交差ループの表面はこの同じ方向に平行であるか判断するステップと、
・押し出しである掃引演算を適用して、スケッチの立体を生成するステップと
をさらに含む請求項６に記載のコンピュータ実施方法。
【請求項８】
・ベクトルのノルムの異なる値ごとに、掃引演算を適用するステップ、又は
・値の中から最小の値を選択し、選択した値に掃引演算を適用するステップ
をさらに含む、請求項７に記載のコンピュータ実施方法。
【請求項９】
２つ以上のベクトルが計算されたとき、
・ベクトルが同じ方向を有し、かつスケッチの各交差ループに隣接する交差ループの１つ又は複数の表面が、この同じ方向に平行ではないか判定するステップと、
・スケッチの各交差ループに隣接しかつこの同じ方向に平行な交差ループのすべての面に対し共通の回転軸を検出するステップと、
・各スケッチ点とそれに対応するターゲット点の回転角度を推定するステップと、
・検出した共通の回転軸周りの回転である掃引演算を推定角度に適用するステップと
をさらに含む、請求項６に記載のコンピュータ実施方法。
【請求項１０】
共通の回転軸を検出したとき、
・スケッチの交差ループに隣接する交差ループの表面が、シリンダ、円錐、球、及び／又はトーラスの中から選択されたタイプのプリミティブに属する場合、隣接する表面が回転軸で定義されることを検証するステップと、
・スケッチの交差ループに隣接する交差ループの表面がタイプ平面のプリミティブに属する場合、隣接する表面が回転軸に平行又は直交していることを検証するステップと
をさらに含む、請求項９に記載のコンピュータ実施方法。
【請求項１１】
・回転角度の推定値の異なる値ごとに、掃引演算を適用するステップ、又は
・値の中から最小の値を選択し、選択した値に掃引演算を適用するステップと
をさらに含む、請求項９又は１０に記載のコンピュータ実施方法。
【請求項１２】
前記グラフのそれぞれのノードについて、前記定義されたプリミティブタイプ及び前記領域のパラメータに基づく表面がインスタンス化された後で、
・表面がどの平面にも隣接していないことを検出するステップと、
・メッシュの境界の外部に新しい平面をインスタンス化するステップと、
・インスタンス化された表面と新しい平面の交差を計算するステップであって、この交差は新しい平面上にループを形成するステップと、
・交差ループから少なくとも１つのスケッチを計算するステップと
をさらに含む、
請求項１乃至１１のいずれか一項に記載のコンピュータ実施方法。
【請求項１３】
請求項１乃至１２のいずれか一項に記載の方法を実行するための命令を含むコンピュータプログラム。
【請求項１４】
請求項１３に記載のコンピュータプログラムを記録したコンピュータ可読記憶媒体。
【請求項１５】
メモリとグラフィカルユーザインターフェースに結合されたプロセッサを含むシステムであって、前記メモリは、請求項１３に記載のコンピュータプログラムに記録されているシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明はコンピュータプログラム及びシステムの分野に関し、より具体的には、メッシュから特徴木を抽出するための方法、システム、及びプログラムに関する。
【背景技術】
【０００２】
物体の設計、エンジニアリング及び製造のために、多数のシステム及びプログラムが市場に提供されている。ＣＡＤはコンピュータ支援設計の頭字語であり、例えば、オブジェクトを設計するためのソフトウェアソリューションに関する。ＣＡＥはコンピュータ支援エンジニアリングの頭字語であり、例えば、将来の製品の物理的挙動をシミュレートするためのソフトウェアソリューションに関連する。ＣＡＭはコンピュータ支援製造の頭字語であり、例えば、製造処理及び動作を定義するためのソフトウェアソリューションに関する。そのようなコンピュータ支援設計システムでは、グラフィカルユーザインターフェースが技法の効率に関して重要な役割を果たす。これらの技術は、製品ライフサイクル管理（ＰＬＭ）システム内に組み込まれてもよい。ＰＬＭとは、企業が製品データを共有し、共通の処理を適用し、企業知識を活用して、長期的な企業のコンセプトを越えて、コンセプトから生涯にわたる製品の開発に役立てることを支援するビジネス戦略のことをいう。（ＣＡＴＩＡ、ＥＮＯＶＩＡ及びＤＥＬＭＩＡの商標で）ダッソーシステムズによって提供されるＰＬＭソリューションは、製品工学知識を編成するエンジニアリングハブと、製造工学知識を管理する製造ハブと、エンタープライズハブ及びエンジニアリングハブ及び製造ハブの両方への接続を可能にする企業ハブとを提供する。全体として、システムは最適化された製品定義、製造準備、生産、及びサービスを駆動する動的な知識ベースの製品作成及び意思決定サポートを可能にするために、製品、処理、リソースをリンクするオープン・オブジェクト・モデルを提供する。
【０００３】
メッシュからの特徴木の構築（又は再構成）は専用ソフトウェア（例えば、ＣＡＤ／ＣＡＥ／ＣＡＭ／ＰＤＭ／などのシステム）において特徴木によって表される３Ｄモデルのさらなる３Ｄ設計演算を実行することを可能にする。特徴木は立体表現及び幾何学的プリミティブ（立方体、シリンダ、押出によるスケッチなど）に対する木編成演算（例えば、ブール演算）を指す。立体のこのタイプの表現は、コンストラクティブ立体ジオメトリアプローチ（ＣＳＧ）のカテゴリに入る。既存のメッシュは、メッシュに含まれる暗黙の知識を抽出する目的で分析することができる。例えば、メカニカル部品のような現実世界の物体を表すメッシュは計測学的精密スキャニングによって生成することができるが、メッシュに暗黙的に含まれる意味論はモデリングソフトウェアによって活用することができない。別の例として、ＣＡＤシステムはオブジェクトを製造するために使用されるツールマシンのツール移動をエミュレートすることができ、マシンコマンド及び仕様を含むファイルからメッシュを出力することができる。繰り返しになるが、特徴木を取得するためにこれらのファイルをリバースエンジニアリングすることは必ずしも不可能ではなく、非常に困難である。
【０００４】
”Topology Reconstruction for B-Rep Modeling from 3D Mesh in Reverse Engineering Applications, 2012”において、Ｂｅｎｉｅａｒｅらは、メッシュから十分な情報を抽出して、平均曲率を使用して正確なＢ−Ｒｅｐモデルを構築することに強く取り組んできた。Ｂ−Ｒｅｐは境界線を通じた確固たるものを定義する方法を指す。Ｂ−Ｒｅｐ定義は、それらの境界があいまいでない方法で、閉じたサブスペースを区切る場合に有効である。メッシュの中には、固形の有効な境界表現かもしれず、したがってＢ−Ｒｅｐに分類されるかもしれない。他方、時間Ｂ−Ｒｅｐの大部分はＣＡＤプログラムで使用される表現のタイプ、すなわち、結合された面のセットを指定するために使用され、それらの各々は、閉じた体積を定義する正確な記述を有する表面によって定義される。この表現はしばしば、厳密なＢ−Ｒｅｐと呼ばれる。メッシュ全体の曲率分布に関するメッシュの三角形上の曲率を解析することにより、それらはＢ‐Ｒｅｐ表現の面である潜在的候補であるサブメッシュを構築する。サブメッシュがそれらの隣接するものに接触しない場合、それらは、隣接する面の間の限界のいくつかを回復することができるまでそれらを拡張する。それらは、既に構築されたサブメッシュまでの距離の概念に基づいて三角形を集約することによってサブメッシュを拡張する。複雑で曲がりくねった形状では、この処理は有効な限界を回復することが保証されない。さらに、このアプローチは、ＣＡＤ処理／特徴木ではなく、正確なＢ−Ｒｅｐを再構成することにのみ焦点を当てている。
【０００５】
“Extraction of generative processes from B-Rep shapes and application to idealization transformations”, 2014において、ＦＢｏｕｓｓｕｇｅらは、Ｂ−Ｒｅｐ表現から始まる「処理木」再構成について広範な研究を行ってきた。「処理木」というそれらの概念は、特徴木に類似している。処理木を構築するために、彼らはＢ−Ｒｅｐの顔と顔の交差を分析して、後で押出できるスケッチを構築する。彼らのアプローチは正確なＢ−Ｒｅｐがすでに利用可能であることを考慮し、それから処理木（単純化された特徴木）と呼ばれるものを構築する方法を考案する。しかしながら、結果として得られる処理木は立体追加に限定され、すなわち、減算演算は生成されない。正確なＢ−Ｒｅｐが利用可能であるため、アルゴリズムは反復的に進行する。すなわち、特徴立体が定義され、現在のＢ−Ｒｅｐから全体の立体が処理されるまで、ブーリアン演算によって削除される。このアプローチは初期入力が正確なＢ−Ｒｅｐでない場合には正確な立体と多面体立体との間のブール演算がサポートされる例を除いて、機能することができず、これは最新技術の例ではない。
【０００６】
したがって、メッシュから特徴木を得ることができることは、高度なエディションを可能にし、ＣＡＤ／ＣＡＥ／ＣＡＭ／ＰＤＭ／．．システムによって伝統的に提供される設計ツールの全範囲をサポートするので、非常に価値がある。
【０００７】
この文脈の中で、メッシュから特徴木を抽出するための改善された方法が依然として必要とされている。
【発明の概要】
【０００８】
したがって、メッシュから特徴木を抽出するためのコンピュータ実施方法が提供される。この方法は：
・メッシュを提供するステップ（Ｓ１００）と、
・与えられたメッシュの幾何学的及び隣接グラフを計算するステップ（Ｓ１１０）であって、
・・ここでグラフの各ノードはメッシュの１つの領域を表し、領域のプリミティブ、種類及びパラメータを含み、
・・２つのノード間の各接続は２つの接続されたノードによって表される領域のそれぞれの表面間の交差であり、
・グラフの各ノードに対し、定義されたプリミティブタイプ及び領域のパラメータに基づく表面をインスタンス化するステップ（Ｓ１２０）と、
定義・グラフの各ノードに対し（Ｓ１３０）、
・・１つの外部交差ループ及び、おそらくは１つ以上の内部交差ループとを計算するステップ（Ｓ１３２）であって、各交差ループは前記各ノードに接続されたグラフのノードが順序付けられたリストから得られるステップと、
・・外部交差ループから少なくとも１つのスケッチを計算するステップ（Ｓ１３４）と、場合によっては、インスタンス化された表面の１つ又は複数の内部交差ループからそれぞれ１つ又は複数のスケッチを計算するステップ（Ｓ１３４）と、
・各計算スケッチに掃引演算を適用するステップ（Ｓ１４０）であって、各スケッチに対して立体を生成するステップと、
・得られた立体間の追加又は削除演算の可能な組合せのセットを演算するステップ（Ｓ１５０）であって、演算された各組合せについて最終立体を得るステップと、
・入力メッシュを用いて各最終立体の類似性スコアを計算するステップ（Ｓ１６０）と、
・類似性スコア、メッシュの特徴木に対応する定義された最も類似した最終立体の追加又は削除演算の組み合わせに基づいて、入力メッシュで最も類似した最終立体を定義するステップ（Ｓ１７０）と
を含む。
【０００９】
この方法は、以下のうちの１つ又は複数を含むことができる。
・得られた立体間の追加又は削除演算の考えられる組み合わせの集合を計算するステップが、・凸状の外部交差ループで生成された立体に対して追加演算を使用するステップと、・凹状の外部の交差ループで生成された立体の削除演算を使用するステップと、・凹状の内部交差ループで生成された立体に対して追加演算を使用するステップと、・凸状の内部交差ループで生成された立体に対する削除演算を使用するステップとを含む。
・得られた立体間の追加又は削除演算の可能な組み合わせのセットを計算するステップが、さらに、・決定可能な凹凸又は凹面を持たない外部交差ループを持つ生成された各立体について、追加と削除の両方の演算を使用するステップを含む。
・得られた立体間の追加又は削除演算の考えられる組み合わせの集合を計算するステップが、削除演算で使用される立体が追加演算で使用される単一の生成された立体の面にのみ隣接している場合、追加演算の後に削除演算を実行するステップと、・削除演算で使用される立体が追加演算で使用される２つ以上の生成された立体の面にのみ隣接している場合、追加演算の後に削除演算を実行するステップと、・追加演算で使用される立体が削除演算で使用される単一の生成立体の面にのみ隣接する場合、及び削除演算で使用される立体が追加演算で使用される単一の生成立体の面にのみ隣接する場合、又は追加演算で使用される２つ以上の生成立体の面にのみ隣接する場合、まず、削除演算で使用される立体に対する追加演算で使用される立体の削除演算を実行し、次に、最初に実行される削除の結果の削除演算のみを実行するステップとをさらに含む。
・各計算されたスケッチに掃引演算を適用し、各スケッチに対して立体を生成するステップが、・スケッチごとに、スケッチの１つの外部の交差ループに隣接する交差ループと、スケッチの１つ以上の内部の交差ループに隣接する交差ループからの掃引方向と掃引長さを計算するステップを含む。
・掃引方向及び掃引長さの計算はスケッチの１つの外部交差ループ及び考えられる１つ又は複数の交差ループのそれぞれについて実行され、当該計算が、スケッチの交差ループの各々について、・交差ループ上の一つ以上のスケッチ点を定義するステップであって、スケッチ点がスケッチの交差ループに隣接する交差ループに共通する点であるステップと、・定義されたスケッチ点ごとに、スケッチの交差ループに隣接する交差ループに共通の点であるターゲット点を定義するステップと、・スケッチ点をターゲット点に結合するベクトルをスケッチ点ごとに計算し、ベクトルの方向が掃引方向、ベクトルのノルムが掃引長と、の各交差ループを含むステップとを含む。
・２つ以上のベクトルが計算されたとき、・ベクトルは同じ方向を持ち、かつスケッチの各交差ループに隣接する交差ループの表面はこの同じ方向に平行であるか判断するステップと、・押し出しである掃引演算を適用して、スケッチの立体を生成するステップとをさらに含む。
・ベクトルのノルムの異なる値ごとに、掃引演算を適用するステップ、又は・値の中から最小の値を選択し、選択した値に掃引演算を適用するステップをさらに含む。
・２つ以上のベクトルが計算されたとき、・ベクトルが同じ方向を有し、かつスケッチの各交差ループに隣接する交差ループの１つ又は複数の表面が、この同じ方向に平行ではないか判定するステップと、・スケッチの各交差ループに隣接しかつこの同じ方向に平行な交差ループのすべての面に対し共通の回転軸を検出するステップと、・各スケッチ点とそれに対応するターゲット点の回転角度を推定するステップと、・検出した共通の回転軸周りの回転である掃引演算を推定角度に適用するステップとをさらに含む。
・共通の回転軸を検出したとき、・スケッチの交差ループに隣接する交差ループの表面が、シリンダ、円錐、球、及び／又はトーラスの中から選択されたタイプのプリミティブに属する場合、隣接する表面が回転軸で定義されることを検証するステップと、・スケッチの交差ループに隣接する交差ループの表面がタイプ平面のプリミティブに属する場合、隣接する表面が回転軸に平行又は直交していることを検証するステップとをさらに含む。
・回転角度の推定値の異なる値ごとに、掃引演算を適用するステップ、又は・値の中から最小の値を選択し、選択した値に掃引演算を適用するステップをさらに含む。
・前記グラフのそれぞれのノードについて、前記定義されたプリミティブタイプ及び前記領域のパラメータに基づく表面がインスタンス化された後で、・表面がどの平面にも隣接していないことを検出するステップと、・メッシュの境界の外部に新しい平面をインスタンス化するステップと、・インスタンス化された表面と新しい平面の交差を計算するステップであって、この交差は新しい平面上にループを形成するステップと、・交差ループから少なくとも１つのスケッチを計算するステップとをさらに含む。
【００１０】
さらに、上記方法を実行するための命令を含むコンピュータプログラムが提供される。
【００１１】
さらに、コンピュータプログラムが記録されたコンピュータ可読記憶媒体が提供される。
【００１２】
さらに、メモリに結合されたプロセッサとグラフィカルユーザインターフェースとを含むシステムが提供され、メモリは、その上に記録されたコンピュータプログラムを有する。
【００１３】
例えば、上記の方法は、メッシュから構造化３次元（３Ｄ）モデルを生成（又は計算）するためのコンピュータ実施方法と組み合わせることができる。メッシュから構造化３次元（３Ｄ）モデルを計算する（又は生成する）ための方法は面を含むメッシュを提供することを含み、メッシュの各面は法線及び主曲率値を含み、離散化曲率値の発生数をカウントすることによってメッシュ全体にわたる主曲率値の分布を計算し、計算された分布において、主曲率値の１つ又は複数の支配的範囲を定義し、定義された支配的範囲ごとに、定義された支配的範囲に属する面を含むメッシュの１つ又は複数の領域を計算し、計算された領域ごとに、領域のすべての面の曲率値を使用することによってプリミティブタイプを検出し、領域のメッシュ表面を使用することによって検出されたプリミティブのパラメータを定義する。
メッシュから構造化三次元（３Ｄ）モデルを計算する（又は生成する）ための方法は、以下の１つ又は複数を含むことができる。
・提供されたメッシュの構造化３Ｄ表現の幾何学的及び隣接グラフを構築するステップであって、グラフの各ノードは計算された領域のうちの１つを表し、定義されたプリミティブタイプ及び領域のパラメータを含み、２つのノード間の各接続は、ノードによって表される領域のそれぞれの表面間の交差である。
・幾何学的及び隣接グラフの構築は各接続について、２つのノード間の各接続がノード間の接続ごとに、関連する凸面、凹面、及び位置情報を有するノードによって表される領域のそれぞれの表面間の交差であるステップをさらに含む。
・主曲率値の１つ以上の支配的範囲の計算された分布における定義は、計算された分布において、２つの連続する極小間の極大を決定するステップと、２つの連続する極小間に含まれる面を、前記１つ以上の支配的範囲に属するものとして定義するステップとを含む。
・一方、極大値に対する出現数は所定の値に等しく及び／又はそれ以上であり、計算された分布における決定と、前記１つ以上の支配的範囲に属するものとしての面の定義とを繰り返し、各繰り返しの前に、前記１つ以上の支配的範囲に属するものとして以前に定義された面は廃棄され、それらの主曲率値による面の分布が再計算される。
・各面の主曲率値は最小曲率値及び最大曲率値を含み、面の分布を計算するステップは離散化された曲率値の発生数をカウントすることによってメッシュ全体にわたる最小曲率値の第１の分布を計算するステップと、離散化された曲率値の発生数をカウントすることによってメッシュ全体にわたる最大曲率値の第２の分布を計算するステップとを含み、方法の後続のステップは、第１及び第２の分布に対して実行される。
・ガウスカーネルを適用するステップにより、結果として得られる分布になる。
・各計算された領域に対して、領域成長を適用するステップであって、成長は面間の距離によって導かれ、距離は曲率値によって重み付けされて、計算された領域にまだ割り当てられていない全ての面を集約する。
・領域成長は同じ第１のスコアを面の第１のセットの面に割り当てるステップと、計算された領域のいずれにも属さない面を含む面の第１のセットと、計算された領域のうちの１つに属する各面に対してゼロの同じ第２のスコアを割り当てるステップと、第１のスコアが第２のスコアよりも大きい第１のセットの面をテストするステップと、面の各隣接領域について、面と隣接領域との間の距離及び面と隣接領域との間の主曲率値の差に基づいて第３のスコアを計算するステップと、第３のスコアが第１のスコアよりも小さい場合、第１のスコアを第３のスコアに設定し、第３のスコアが対応する領域を記録するステップと、近傍が面の第１のセットに属さない場合、第３のスコアが第１のスコアよりも大きい場合、テストされた面を第１のセットから削除することと、初期に第１のセットに含まれるテストされた面を、それらが持っている最高の３番目のスコアに関連する領域と共に再グループ化するステップと、を含む。
・２番目のセットのすべての面がテストされると、テストは停止する。
・メッシュの領域を計算した後、計算された領域間の交差ループを計算する。
・交差ループの計算後、各交差ループについて、この交差ループを構成する領域の順序付けられたリストを収集し、前記交差ループの各エッジについての凹面、凸面、及び位置情報を収集する。
・領域の表面を使用することによってプリミティブのパラメータを定義するステップは、検出されたプリミティブのパラメータを、それらのパラメータの最小の最適化で推定するステップを含む。
【００１４】
メッシュから構造化三次元（３Ｄ）モデルを生成する方法を実行するための、又はメッシュから構造化三次元（３Ｄ）モデルを生成し、メッシュから特徴木を抽出する両方の方法を実行するための命令を含むコンピュータプログラムがさらに提供される。
【００１５】
さらに、メッシュから構造化三次元（３Ｄ）モデルを生成する方法、又はメッシュから構造化三次元（３Ｄ）モデルを生成し、メッシュから特徴木を抽出する両方の方法を実行するためのコンピュータプログラムが記録されたコンピュータ可読記憶媒体が提供される。
【００１６】
さらに、メモリ及びグラフィカルユーザインターフェースに結合されたプロセッサを備えるシステムが提供され、メモリは、メッシュから構造化３次元（３Ｄ）モデルを生成する方法を実行するための、又はメッシュから構造化３次元（３Ｄ）モデルを生成する方法とメッシュから特徴木を抽出する方法の両方を実行するためのコンピュータプログラムをその上に記録している。
【図面の簡単な説明】
【００１７】
【図１】メッシュの構造化３Ｄ表現を取得するための方法の一例のフローチャートを示す。
【図２】システムの一例を示す図である。
【図３】本発明による方法と従来技術との比較例を示す。
【図４】生メッシュの一例のスクリーンショットを示す。
【図５】図４の生メッシュの再メッシュ化の一例のスクリーンショットを示す。
【図６】曲率の表現の一例を示す。
【図７】図５のメッシュの主曲率のスクリーンショットを示す。
【図８】図５のメッシュの主曲率のスクリーンショットを示す。
【図９】図５のメッシュの主曲率値分布の例を示す。
【図１０】図５のメッシュの主曲率値分布の例を示す。
【図１１】図５のメッシュの関心のある曲率値範囲のスクリーンショットを示す。
【図１２】図５のメッシュの均一な曲率の領域のスクリーンショットを示す。
【図１３】図５のメッシュの均一な曲率の領域のスクリーンショットを示す。
【図１４ａ】領域成長処理の前後を示すスクリーンショットである。
【図１４ｂ】領域成長処理の前後を示すスクリーンショットである。
【図１５ａ】領域成長処理の前後を示すスクリーンショットである。
【図１５ｂ】領域成長処理の前後を示すスクリーンショットである。
【図１６】平面エンティティの主曲率値分布の一例を示す図である。
【図１７】円筒体の主曲率値分布の一例を示す図である。
【図１８】メッシュからの構造化３次元（３Ｄ）モデルの表現のスクリーンショットである。
【図１９】本発明による方法の一例のフローチャートを示す。
【図２０】隣接情報と交差の指向ループの一例を示す図である。
【図２１】ループから導出されたスケッチの例である。
【図２２】頂点位置を使用して解決される曖昧さの例である。
【図２３】頂点位置を使用して解決される曖昧さの例である。
【図２４】入力として提供される立体の例である。
【図２５】スケッチ点からの押出距離及び方向の一例を示す図である。
【図２６】図２５の距離及び方向で押し出された立体の例を示す。
【図２７】スケッチ点からの回転角度の一例を示す図である。
【図２８】図２７からの角度を用いた回転立体の例を示す。
【図２９】２つの異なる押出方向が決定される状況の例を示す。
【図３０】スケッチ構築のために追加平面が追加される状況の一例を示す。
【図３１】凹凸情報からのブール演算選択の追加又は削除の４つの例を示す。
【図３２】押出方向及び凹凸情報に基づくブール演算の追加又は削除を示す。
【図３３】削除演算の位置を特徴木内で指定することができる状況の例を示す。
【図３４】削除演算の位置を特徴木内で指定することができる状況の例を示す。
【図３５】削除演算の位置を特徴木内で指定することができる状況の例を示す。
【発明を実施するための形態】
【００１８】
図１９のフローチャートを参照すると、メッシュから特徴木を抽出するためのコンピュータ実施方法が提案されている。この方法はメッシュ、例えば、計測精密走査によって得られる生メッシュを提供することを含む。この方法はまた、提供されたメッシュの幾何学的及び隣接グラフを計算することを含む。提供されたメッシュの幾何学的及び隣接グラフでは、各ノードはメッシュの１つの領域を表し、各ノードは領域のプリミティブタイプ及びパラメータを含む。さらに、幾何学的及び隣接グラフにおいて、２つのノード間の各接続は、２つの接続されたノードによって表される領域のそれぞれの表面間の交差を表す。この方法は、グラフの各ノードについて表面をインスタンス化することをさらに含む。インスタンス化は、領域の定義されたプリミティブタイプ及びパラメータに基づいて行われる。次に、この方法は、グラフの各ノードについて以下の計算を実行することをさらに含む。（ａ）１つの外部交差ループが計算され、場合によっては１つ又は複数の内部交差ループが計算され、１つの外部交差ループ及び可能な１つ又は複数の内部交差ループが第１及び第２の動作が実行される現在のノードに接続されたグラフのノードの順序付けられたリストによって取得される。（ｂ）少なくとも１つのスケッチが外部交差ループから計算され、場合によっては１つ又は複数のスケッチがインスタンス化された表面の可能な１つ又は複数の内部交差ループからそれぞれ計算される。この方法はまた、各計算されたスケッチに掃引演算を適用し、それによって各スケッチに対して立体を生成することを含む。さらに、この方法は、得られた立体間の追加又は削除演算の可能な組合せのセットを計算することと、演算された各組合せについて最終立体を得ることとを含む。本方法はまた、入力メッシュとの各最終立体の類似性スコアを計算するステップと、類似性スコアに基づいて入力メッシュとの最も類似した最終立体を定義するステップと、メッシュの特徴木に対応する定義された最も類似した最終立体の追加又は削除演算の組合せとを含む。
【００１９】
このような方法は、メッシュからの特徴木の抽出を改善する。特に、特徴木の再構成は、メッシュの幾何学的及び隣接グラフを生成するためにメッシュに対して実行される強化された分析演算の結果に依存する。これは、最初に中間の正確なＢ−Ｒｅｐを生成することなく、特徴木を直接生成することを可能にする。Ｂ−Ｒｅｐ構築ソリューションはしばしば脆弱であり、すなわち、提供されるメッシュの品質に応じて、完全に成功するか、又は立体の有効な構造化表現を生成することができない。本手法において、提供されたメッシュの計算された幾何学的及び隣接グラフがメッシュの品質にあまり影響されない。さらに、この方法はＣＡＤモデラをパイロットするために、指向ループのエッジをインスタンス化する。これは一連の平面スケッチをもたらし、これらはその後、押し出されるか、又は回転される。次に、結果として得られる特徴立体は、ブール演算を介して結果として得られる特徴木にアセンブルされる。したがって、この方法は計算されたスケッチに対する複数の可能な交差ソリューションを区別するために、初期メッシュとの対応関係を利用する。幾何学的及び隣接グラフはまた、インスタンス化されたスケッチに基づいて押出距離及び回転角度を計算するために利用される。凹凸情報は、生成された特徴立体が最終特徴木内の物質を追加又は削除するかどうかを決定するために使用される。
【００２０】
したがって、この方法は幾何学的形状及びメッシュ解析によって得られた隣接グラフから最も関連性のある情報を抽出することができ、定義によって有効な立体につながる一連の演算を導出することができる特徴木ビルダを提供する。中間ステップとして有効なＢ−Ｒｅｐを（再）構築することは必要ではなく、したがって、有効なＢ−Ｒｅｐを（再）構築することの既知の欠点は回避される。
【００２１】
さらに、この方法は、生成されたすべての立体が明確に定義され、水密であることを保証する。これは、メッシュ分析によって得られた情報が完全なＢ−Ｒｅｐを再構築することに失敗した場合に特に興味深い。不完全なメッシュデータ、幾何学的複雑性、及びノイズは不正確な隣接グラフにつながり、したがって、他の方法では無効なＢ−Ｒｅｐにつながる可能性がある。これに対して、本方法はメッシュから十分な情報を抽出することができる限り、有効な立体を生成する。特徴木の構築のために幾何学的形状の使用可能な部分をチェリーピッキングすることによって、この方法は脆くなくなり、有効で有意義な立体を構築する。たとえそれらの部分が元のメッシュの完全な詳細を必ずしも反映しないとしても（例えば、提供されたメッシュが不完全である場合）、それらの部分はモデリング演算のための有効な基礎として働くことができ、任意の使用のための拡張によって、従来の正確なＣＡＤモデルを作ることができる。たとえば、ユーザは結果の一部を中間ステップとしてのみ使用し、パラメータを使用して要素を編集することができる。
【００２２】
したがって、既知の方法と本方法との間の差異を示す図３に示すように、本方法は計算が困難（又は不可能）であり、入力として正確なＢ−Ｒｅｐモデル（多くの計算資源（例えば、ＣＰＵ及びメモリ）を必要とする）を必要とせず、本方法は、メッシュを入力とすることができる。さらに、スケッチから計算される立体は、単一のパスで生成され、したがって、反復解と比較して計算資源の消費を低減する。
【００２３】
この方法は、コンピュータで実施される。これは、該方法のステップ（又は実質的に全てのステップ）が少なくとも１つのコンピュータ又は任意のシステムによって実行されることを意味する。したがって、本方法のステップはコンピュータによって、場合によっては完全に自動的に、又は半自動的に実行される。例において、方法のステップのうちの少なくともいくつかのトリガがユーザ／コンピュータ対話を介して実行され得る。必要とされるユーザ／コンピュータ対話のレベルは予測される自動化のレベルに依存し、ユーザの希望を実施する必要性とバランスをとることができる。例において、このレベルがユーザ定義及び／又は事前定義され得る。
【００２４】
例えば、メッシュを提供するステップは、例えばデータベースに記憶されたメッシュのユーザ選択の結果であってもよい。
【００２５】
方法のコンピュータ実装の典型的な例は、この目的のために適合されたシステムを用いて方法を実行することである。システムはメモリに結合されたプロセッサと、グラフィカルユーザインターフェース（ＧＵＩ）とを備えることができ、メモリには、本方法を実行するための命令を含むコンピュータプログラムが記録されている。メモリはまた、データベースを記憶してもよい。メモリはそのような記憶装置に適合された任意のハードウェアであり、場合によっては、いくつかの物理的に別個の部分（例えば、プログラムのための部分、及び場合によってはデータ断片ベースのための部分）を備える。
【００２６】
ＣＡＤシステムとは、さらに、ＣＡＴＩＡのような、モデル化オブジェクトのグラフィック表現に基づいてモデル化オブジェクトを少なくとも設計するように適合された任意のシステムを意味する。この場合、モデル化オブジェクトを定義するデータは、モデル化オブジェクトの表現を可能にするデータを含む。ＣＡＤシステムは例えば、ある場合には、顔又は表面を有するエッジ又は線を使用してＣＡＤモデル化オブジェクトの表現を提供することができる。線、エッジ、又は表面は様々な方法、例えば、不均一有理Ｂスプライン（ＮＵＲＢＳ）で表すことができる。具体的には、ＣＡＤファイルは仕様を含み、そこから幾何学的形状を生成することができ、これにより表現を生成することができる。モデル化されたオブジェクトの仕様は、単一のＣＡＤファイル又は複数のＣＡＤファイルに格納することができる。ＣＡＤシステム内のモデル化オブジェクトを表すファイルの典型的なサイズは、部品当たり１メガバイトの範囲内である。そして、モデル化オブジェクトは、典型的には何千もの部品のアセンブリであり得る。
【００２７】
ＣＡＤの文脈では、モデル化されたオブジェクトが典型的には例えば、部品又は部品のアセンブリ、又は場合によっては製品のアセンブリなどの製品を表す３Ｄモデル化されたオブジェクトとすることができる。「３Ｄモデリングされたオブジェクト」とは、その３Ｄ表現を可能にするデータによってモデリングされる任意のオブジェクトを意味する。３Ｄ表現は、全ての角度から部品を見ることを可能にする。例えば、３Ｄモデル化オブジェクトは３Ｄ表現される場合、その軸のいずれかの周り、又は表現が表示される画面内のいずれかの軸の周りで取り扱われ、回転され得る。これは特に、３Ｄモデル化されていない２Ｄアイコンを除外する。３Ｄ表現の表示は設計を容易にする（すなわち、設計者が統計的に彼らのタスクを達成する速度を増加させる）。これは、製品の設計が製造工程の一部であるため、産業界における製造工程を高速化する。
【００２８】
メッシュ（及び、伸長によって、生成された構造化３Ｄモデル）は例えば、（例えば、機械的である）部品又は部品のアセンブリ（又は、同等に部品のアセンブリが本方法の観点からは部品自体として見ることができ、又は本方法はアセンブリの各部分に独立して適用することができるので、部品のアセンブリ）、又はより一般的には任意の剛体アセンブリ（例えば、可動機構）などのＣＡＤソフトウェアソリューション又はＣＡＤシステムを用いた仮想設計の完了後に、現実世界で製造される製品の幾何学的形状を表すことができる。また、メッシュは製品のスキャンに続いて現実世界で製造される製品の幾何学的形状を表すことができ、例えば、メッシュは、メッシュ編集を可能にするソフトウェアで実行される、計測精度スキャン、後続のメッシュ設計演算から得られる。また、メッシュは、工作機械データファイル、３Ｄプリンタファイル、計測装置データファイルから取り出した後の、現実世界で製造される製品の幾何学的形状を表すこともできる。メッシュはまた、専用のメッシュソフトウェアによって処理された、又は３Ｄ視覚化のための資産を生成することができるデジタルコンテンツ作成ツールで作成された点群の後に、現実世界で製造される製品の幾何学的形状を表すことができる。
【００２９】
メッシュ（及び、伸長によって、生成された構造化３Ｄモデル）は、航空宇宙、建築、建築、消費財、ハイテク装置、産業機器、輸送、海洋、及び／又は沖合の石油／ガス生産又は輸送を含む、種々無制限の産業分野における製品を表すことができる。したがって、生成された構造化３Ｄモデルは陸上車両の一部（例えば、自動車及び軽トラック機器、レーシングカー、オートバイ、トラック及びモータ機器、トラック及びバス、列車を含む）、航空車両の一部（例えば、機体機器、航空宇宙機器、推進機器、防衛機器、航空機機器、宇宙機器を含む）、海上車両の一部（例えば、海軍機器、商用船、オフショア機器、ヨット及び作業船を含む）、一般機械部品（例えば、産業製造機械、重移動機械又は機器、設置機器、産業機器、製品、加工金属製品、タイヤ製造製品を含む）、電気機械又は電子部品（例えば、家庭用電化製品、セキュリティ及び／又は制御装置及び／又は計装製品、コンピュータ及び通信機器、半導体、医療デバイス及び機器を含む）、消費財（例えば、以下を含む）などの任意の機械部品であってもよい工業製品、家具、家庭用品、レジャー用品、ファッション用品、ハードグッズ小売業者の製品、ソフトグッズ小売業者の製品、包装（例えば、食品及び飲料及びタバコ、美容及びパーソナルケア、家庭用品包装を含む）を表してもよい。
【００３０】
ＣＡＤシステムは、履歴ベースであってもよい。この場合、モデル化された物体は、幾何学的特徴の履歴を含むデータによってさらに定義される。モデル化された物体は実際には標準的なモデリング特徴（例えば、押し出し、回転、切断、及び／又は円形）及び／又は標準的な表面特徴（例えば、掃引、ブレンド、ロフト、充填、変形、及び／又は平滑化）を使用して、物理的な人物（すなわち、設計者／ユーザ）によって設計されてもよい。このようなモデリング機能をサポートする多くのＣＡＤシステムは、履歴ベースのシステムである。これは、設計特徴の作成履歴が典型的には入出力リンクを介して前記幾何学的特徴を一緒にリンクする非循環データフローを介して保存されることを意味する。履歴ベースのモデリングパラダイムは、８０年代の始まりから周知である。モデル化された物体は履歴及びＢ−Ｒｅｐ（すなわち、境界表現）という２つの永続的なデータ表現によって記述される。Ｂ−Ｒｅｐは、履歴に定義された計算の結果である。モデル化された物体が表現されるときにコンピュータのスクリーン上に表示される部品の形状はＢ−Ｒｅｐ（のテッセレーション）である。部品の履歴は設計意図である。基本的に、履歴は、モデル化された物体が受けた演算に関する情報を収集する。Ｂ−ｒｅｐは複雑な部品を表示しやすくするために、履歴とともに保存される場合がある。設計意図に応じた部品の設計変更を可能にするため、Ｂ−ｒｅｐと共に履歴を保存することがある。
【００３１】
ＰＬＭシステムとは、さらに、物理的に製造された製品（又は製造される製品）を表すモデル化オブジェクトの管理に適合された任意のシステムを意味する。したがって、ＰＬＭシステムでは、モデル化オブジェクトが物理的オブジェクトの製造に適したデータによって定義される。これらは、典型的には寸法値及び／又は公差値であってもよい。オブジェクトを正確に製造するためには、このような値を有することが実際に好ましい。
【００３２】
ＣＡＭソリューションとは、さらに、製品の製造データを管理するように適合された任意のソリューション、ハードウェアのソフトウェアを意味する。製造データは一般に、製造する製品、製造工程、及び必要な資源に関するデータを含む。ＣＡＭソリューションは製品の製造処理全体を計画し、最適化するために使用される。例えば、ＣＡＭユーザに、製造処理の実現可能性、製造処理の継続時間、又は製造処理の特定のステップで使用することができる特定のロボットなどのリソースの数に関する情報を提供することができ、したがって、管理又は必要な投資に関する決定を可能にする。ＣＡＭは、ＣＡＤ処理及び潜在的ＣＡＥ処理の後の後続処理である。このようなＣＡＭソリューションは、ダッソーシステムズによってＤＥＬＭＩＡ（登録商標）の商標で提供されている。
【００３３】
ＣＡＥソリューションとは、さらに、モデル化オブジェクトの物理的挙動の分析に適合された任意のソリューション、ハードウェアのソフトウェアを意味する。よく知られ、広く使用されているＣＡＥ技法は有限要素法（ＦＥＭ）であり、これは、典型的にはモデル化オブジェクトを、物理的挙動を計算し、式によってシミュレートすることができる要素に分割することを含む。このようなＣＡＥソリューションは、ダッソーシステムズによって、ＳＩＭＵＬＩＡ（登録商標）の商標で提供されている。別の成長するＣＡＥ技術は、ＣＡＤジオメトリデータなしで物理学の異なる分野からの複数の構成要素を構成する複雑なシステムのモデリング及び分析を伴う。ＣＡＥソリューションはシミュレーションを可能にし、したがって、製品の最適化、改善、及びバリデーションを製造することを可能にする。このようなＣＡＥソリューションは、ダッソーシステムズによってＤＹＭＯＬＡ（登録商標）の商標で提供されている。
【００３４】
ＰＤＭは、製品データ管理を意味する。ＰＤＭソリューションとは、特定の製品に関連するすべてのタイプのデータを管理するように適合された任意のソリューション、ハードウェアのソフトウェアを意味する。ＰＤＭソリューションは、製品のライフサイクルに関与するすべての行為者（主にエンジニアだけでなく、プロジェクトマネージャー、ファイナンス担当者、販売担当者、及び購入者も含む）によって使用され得る。ＰＤＭソリューションは一般に、製品指向データベースに基づく。それは、行為者が彼らの製品に関する一貫性のあるデータを共有することを可能にし、したがって、行為者が異なるデータを使用することを防ぐ。このようなＰＤＭソリューションは、ダッソーシステムズによってＥＮＯＶＩＡ（登録商標）という商標で提供されている。
【００３５】
図２は、この方法を実行するためのシステムの一例を示す。本例のシステムはメモリ、例えば、ランダムアクセスメモリ１０７０に通信可能に結合された中央処理装置１０１０を含む。この例において、ＣＰＵとメモリが内部通信バス１０００を介して通信する。クライアントコンピュータはさらに、バスに接続されたビデオランダムアクセスメモリ１１００に関連付けられたグラフィカルプロセッシングユニット（ＧＰＵ）１１１０を備えることができる。ビデオＲＡＭ１１００は、当技術分野ではフレームバッファとしても知られている。大容量記憶装置の制御装置１０２０は、ハードドライブ１０３０などの大容量記憶装置へのアクセスを管理する。コンピュータプログラム命令及びデータを有形に具現化するのに適した大容量メモリデバイスは、例として、ＥＰＲＯＭ、ＥＥＰＲＯＭ、及びフラッシュメモリデバイスなどの半導体メモリデバイス、内部ハードディスク及びリムーバブルディスクなどの磁気ディスク、光磁気ディスク、ならびにＣＤ−ＲＯＭディスク１０４０を含む、すべての形態の不揮発性メモリを含む。前述のいずれも、特別に設計されたＡＳＩＣ（特定用途向け集積回路）によって補足されるか、又はその中に組み込まれてもよい。ネットワークアダプタ１０５０は、ネットワーク１０６０へのアクセスを管理する。クライアントコンピュータは、カーソル制御デバイス、キーボードなどの触覚デバイス１０９０も含むことができる。ユーザがディスプレイ１０８０上の任意の所望の位置にカーソルを選択的に位置決めすることを可能にするために、カーソル制御装置がクライアントコンピュータ内で使用される。さらに、カーソル制御装置はユーザが様々なコマンドを選択し、制御信号を入力することを可能にする。カーソル制御装置は、システムに制御信号を入力するための多数の信号発生装置を含む。典型的にはカーソル制御装置がマウスであってもよく、マウスのボタンは信号を生成するために使用される。代替的に、又は追加的に、クライアントコンピュータシステムは、センシティブパッド及び／又はセンシティブスクリーンを備えることができる。
【００３６】
コンピュータプログラムはコンピュータによって実行可能な命令を含むことができ、命令は、上記装置に該方法を実行させるための手段を含む。プログラムは、システムのメモリを含む任意のデータ記憶媒体に記録可能であってもよい。プログラムは例えば、デジタル電子回路において、又はコンピュータハードウェア、ファームウェア、ソフトウェアにおいて、又はそれらの組み合わせにおいて実装されてもよい。プログラムは装置、例えば、プログラマブルプロセッサによる実行のための機械可読記憶デバイスに有形に具現化された製品として実装されてもよい。方法のステップは入力データ断片に対して動作し、出力を生成することによって、方法の機能を実行するための命令のプログラムを実行するプログラマブルプロセッサによって実行されてもよい。したがって、プロセッサはプログラム可能であり、データ断片記憶システム、少なくとも１つの入力デバイス、及び少なくとも１つの出力デバイスからデータ断片及び命令を受信し、それらにデータ断片及び命令を送信するように結合され得る。アプリケーションプログラムは、高レベルの手続き型又はオブジェクト指向プログラミング言語で、あるいは必要に応じてアセンブリ言語又は機械語で実装することができる。いずれの場合も、言語は、コンパイルされた言語又は解釈された言語であってもよい。プログラムはフルインストールプログラムであってもよいし、更新プログラムであってもよい。システム上にプログラムを適用すると、いずれにしても、この方法を実行するための命令が得られる。
【００３７】
「メッシュから特徴木を抽出する」ことは、３Ｄモデル化オブジェクトを作成する処理の少なくとも一部である。したがって、この方法は、最初からメッシュを作成することを含むことができる。本方法は製造工程に含まれてもよく、製造工程は本方法を実行した後に、生成された構造化３Ｄモデルから新しい３Ｄモデル化オブジェクトを生成することを含んでもよい。新しい３Ｄモデル化オブジェクトは、物理的製品を表す。いずれの場合も、本方法の入力におけるメッシュ及び生成された構造化３Ｄモデルは、部品又は部品のアセンブリなどの製品である製造物を表すことができる。この方法は生のメッシュからモデル化されたオブジェクトの設計を可能にするので、この方法はまた、製品の製造を改善し、したがって、製造処理の生産性を増加させる。
【００３８】
特徴木は、３次元（３Ｄ）立体モデルに対して実行された立体演算の履歴を含む階層構造である。各立体演算は、立体上の特徴として定義される。スケッチ（及び方向／長さ／角度パラメータ）から立体を生成する押出／回転演算も、特徴木の特徴である。演算は、追加演算又は削除演算などのブール演算である。ブール演算を適用するために使用される立体は、典型的には押出演算が適用されるスケッチから得られる。一例において、特徴木がＣＳＧ（Constructive solid geometry）特徴木である。ＣＳＧモデリングは、複雑なオブジェクトを生成するために単純なオブジェクトを結合するためのブール演算を使用することを含む立体モデリングで使用される周知の技法である。表現に使用される最も単純な立体オブジェクトは、直方体、シリンダ、プリズム、ピラミッド、球、円錐などの単純な形状を有するプリミティブと呼ばれる。
【００３９】
ＣＡＤの分野から知られているように、特徴木は、葉の幾何学的形状に適用される幾何学的演算の木配列を表すデータを含む編集可能なデータ構造である。特徴木構成の各リーフノードはそれぞれのリーフ幾何学形状を表し、ツリー構成の各非リーフノードは、その子ノードに適用される「特徴」とも呼ばれるそれぞれの幾何学演算を表す。したがって、幾何学的演算の木配列をリーフ幾何学的形状に適用することは、リーフ幾何学的形状から開始し、木配列に続く各非リーフノードの幾何学的演算を連続的に適用することになる。編集可能な特徴木で表される３Ｄ形状は、編集可能な特徴木のルートノードの結果に対応する。
【００４０】
リーフの幾何学的形状は、どのようなタイプのものであってもよい。リーフの幾何学的形状は例えば、各々が、対応する３Ｄ立体のような対応する３Ｄ形状を含む（例えばからなる）ことができる。幾何学的演算は、任意のタイプであってもよい。例において、幾何学的演算がすべて同じタイプのものであり、例えば、すべての追加又は削除演算である。
【００４１】
リーフの幾何学的形状又は幾何学的演算の編集は、現在のパラメータ値を有する少なくとも１つのパラメータの選択及び前記パラメータ値の変形例を含むなど、ＣＡＤの分野から知られている任意の方法で、ユーザによって実行されてもよい。このような編集は、未加工のメッシュのような離散的な幾何学的表現の編集と比較して、人間工学的特性を提示している。特に、編集可能な特徴木は入力メッシュの離散的な幾何学的エンティティの数よりも５よりも高い因子（例えば、１０よりも高い）だけ少ない数のリーフ幾何学的形状、及び／又は１００よりも低い数のリーフ幾何学的形状（例えば、５０よりも低い）を含むことができる。各リーフの幾何学的形状は２０未満（例えば、１０未満）の多数のパラメータによって定義されてもよい。したがって、編集可能な特徴木は、離散的な幾何学的表現と比較して、よりコンパクトで組織化された方法で３Ｄ形状を表す。また、ＣＡＤの分野から知られているように、編集可能な特徴木の単一のパラメータに作用することは全体的な影響を与えることができ、一方、単一の幾何学的エンティティに作用する離散幾何学的表現の場合には局所的な影響のみを与える。例えば、本明細書の任意の編集可能な特徴木は多数のメッシュ三角形を移動／増加させるのとは対照的に、５未満（例えば、３未満）の多数のパラメータ値を修正することによって、３Ｄ形状の（例えば、湾曲した、例えば、円筒形の）部分又は全体をスケールアップするように構成されてもよい。さらに、編集可能な特徴木は、離散的な幾何学的表現よりもユーザにとって意味がある。
【００４２】
図１９に戻って、この方法の一例を説明する。Ｓ１００において、メッシュが提供される。メッシュの特性は、図１を参照して議論されてきた。メッシュは、３角形及び四角形を含む多角形表現を使用して、３Ｄ形状又は３Ｄ形状の少なくとも一部を定義する頂点、エッジ、及び面を備える。３Ｄ形状は立体物を表す。３Ｄ形状は航空宇宙、建築、建築、消費財、ハイテクデバイス、産業機器、輸送、海洋、及び／又は沖合の石油／ガス生産又は輸送を含むが、これらに限定されない、種々無制限の産業分野における製品を表す。
【００４３】
提供されるメッシュの各面は法線を含む。面の法線は当技術分野で知られているように、面に垂直な方向である。例において、法線は頂点法線であってもよい。
【００４４】
提供されるメッシュの各面は主曲率値を含む。面の所与の点における主曲率値は当該技術分野で知られているように、点における形状演算子の固有値である。主曲率値は、表面がその点で異なる方向に異なる量だけどのように曲がるかを測定する。面の最大曲率値及び最小曲率値は、面の主曲率値と呼ばれる。
【００４５】
図６（K. Crane著「Discrete differential geometry: an applied introduction」から引用）は、基準（Ｎ,Ｘ１,Ｘ２）の原点に位置する表面の所与の点における曲率の一般化された表現である。軸Ｎは前記与えられた点における表面への法線を表し、Ｘ１及びＸ２は、この事例において、最小及び最大曲率が計算される方向である。
【００４６】
例において、提供されるメッシュが多角形表現が類似の寸法ではなく、十分に平衡化されている場合、生のメッシュであってもよい。例えば、生のメッシュは、薄い三角形を含んでもよく、又は非多様体であってもよく、又は一定の垂直配向を有する可能性がある。生メッシュという用語は、法線及び主曲率値に関する情報が存在しないか又は部分的に存在する場合にも適用される。より一般的には、本方法が正しく振る舞い、３Ｄ立体の有効な表現であるメッシュ上に有用な結果（たとえ時には部分的であっても）を生成し、例えば、３Ｄ立体は自動交差を伴わずに、閉じた、配向可能な多様体表面を形成することができる。この方法はまた、閉じられていないメッシュを用いて興味深い結果を生成する。図４は、多角形表現として三角形を有する生メッシュの例を示す。得られた生のメッシュはそれがＴ接合部を有するので、特にクリーンではない。すなわち、メッシュは、２つの多角形が別の多角形のエッジに沿って出会うスポットを含む。さらに、法線及び主曲率値に関する情報は入手できない。
【００４７】
例において、この方法が提供されたメッシュを再メッシュ化することをさらに含むことができる。これは、メッシュの品質を改善することを可能にし、すなわち、面は同様の寸法であり、十分に平衡化され、例えば、薄い三角形は存在しない。多くの利用可能な方法が存在し、例えば、変分アプローチは、本方法のための良好に挙動するメッシュを生成する傾向があり得る。図５は、図４の生メッシュ上で実行された再メッシュ化動作の後に得られるメッシュの例を示す。
【００４８】
さらに、生のメッシュを再メッシュ化することにより、主曲率値の評価が改善される。実際、曲率は例えばコタンジェント法のような手順を使用して、三角形メッシュのような離散的な３Ｄ表現上で評価することができ、これらの手順の大部分は面（典型的には三角形）が類似しており、十分に平衡化されているメッシュ上でより良好な結果を提供する傾向がある。
【００４９】
実施例において、離散形状（再メッシュ化されたメッシュの面）上の主曲率値の評価が任意の既知の方法で実行される。正規は主曲率値の評価と同時に、又はその前又は後に評価されてもよい。
【００５０】
図７及び図８は、図５のメッシュについて定義（計算）された、それぞれ最大の、最小の曲率値７０をそれぞれ８０示している。
【００５１】
提供されたメッシュは体積の境界を正しく表し、したがって、その体積に関して一貫性のある向き情報を含むと仮定される。
【００５２】
図１９に戻って、提供されたメッシュの幾何学的及び隣接グラフが計算される（Ｓ１１０）。グラフは、提供されたメッシュの構造化３Ｄモデルの表現を提供する。グラフは提供されたメッシュの分析の結果であり、この分析の結果として以下を提供する。
・グラフの各ノードがメッシュの１つの領域を表し、領域のプリミティブタイプとパラメータを含む、ノードのセット。
・２つのノード間の各接続は、２つの接続されたノードによって表される２つの領域の表面間の交差である。
【００５３】
メッシュの領域は、提供されたメッシュの集合面である。したがって、領域は、メッシュの境界が定められた表面を形成する。グラフの各ノードはプリミティブタイプに関連付けられている。プリミティブは、他の形状を構築することができるビルディングブロックである。プリミティブは一般に、３Ｄモデル化オブジェクトを構築するための３Ｄモデル化において使用される。例えば、２Ｄ多角形（例えば、正方形、長方形）は３Ｄ体積（例えば、正方形パッド又は長方形パッド）を形成するために押し出すことができるプリミティブである。プリミティブには平面、円柱、球体、角錐、円錐、四角形、罫線表面、トーラスがあるが、これらに限定されない。プリミティブのセットは、工業製品、例えばメッシュによって表されるものを記述することを可能にする。
【００５４】
さらに、グラフの各ノードは、プリミティブのパラメータを含む。プリミティブのパラメータは、プリミティブをインスタンス化できるプリミティブの特性を決定する。例えば、当技術分野で知られているように、以下のとおりである。
・プリミティブ平面のパラメータは、平面の法線と平面上にある点である。
・プリミティブ球のパラメータは、中心と半径である。
・プリミティブシリンダのパラメータは、軸の方向、シリンダの高さ、円の中心及び半径である。
・プリミティブ円錐のパラメータは、軸方向、円錐の高さ、円錐ベースの中心及び半径である。
・プリミティブトーラスのパラメータは、方向ベクトル、中心、大円の半径、小円の半径である。
【００５５】
したがって、各ノードは、「標準」幾何学的形状（プリミティブ）と、「標準」幾何学的形状をインスタンス化することができるパラメータとに関連付けられ、各パラメータはプリミティブをインスタンス化するために使用される１つ又は複数のパラメータ値を含む。単純化のために、「パラメータ」及び「パラメータ値」という用語は同義語である。
【００５６】
グラフは、２つのノード間又はノードのペア間の接続も構成する。接続は２つの領域のそれぞれの表面間の交差を表し、それぞれは、２つの接続されたノードのうちの１つによって表される。２つの領域間の交差は、表面が２つの領域の交差である表面対表面交差（ＳＳＩ）とも呼ばれる。２つの表面が交差するとき、結果は、孤立点のセット、曲線のセット、又はこれらの場合の任意の組合せとすることができる。
【００５７】
領域と他の領域との交差は、領域を境界付ける。交差は、少なくとも１つの交差ループを形成する。
【００５８】
「ループ」という語は、交差がそれ自体の中で閉曲線を形成すること、又は２つ以上の交差がそれ自体の中で閉曲線を形成することを意味する。したがって、領域に対する交差ループは領域と他の１つの領域、例えば、平面との交差の結果として、シリンダによって交差してもよく、又は、領域に対する交差ループが領域と２つ以上の領域、例えば、立方体の面が４つの面と交差する、との交差の結果としてもよい。
【００５９】
領域はメッシュの面の集合であり、２つの領域間の交差は、交差を形成する領域の両方に属する面の相互接続エッジ（エッジの接続シーケンス）を含む。したがって、交差は２つの領域の面の共通エッジのポリラインであり、したがって、交差ループは、領域の表面を画定する２つ以上の領域の面の共通エッジを含むポリラインでもある。
【００６０】
各ノードの接続は順序付けられ、前記各ノードの交差ループを表す交差の順序付けられたリストを形成する。したがって、所与の領域と交差する領域は、前記所与の領域のループ上の進行方向に従って定義され、ランク付けされる。ノードが２つ以上の交差ループで構成されている場合、順序付けられた接続リストがループごとに計算される。
【００６１】
交差ループは当技術分野で公知のように、外部交差ループ又は内部交差ループとすることができる。したがって、外部及び内部交差ループは各ノードの外部及び内部境界、すなわち、提供されるメッシュの領域の境界を表す。一例において平坦化され、ある場所に投影され得る領域について、外部ループは他のループを含む領域である。
【００６２】
表面とその隣接する表面との間の交差の凹凸及び／又は凹面はコネクションのために、収集され、グラフに記憶される。これは、交差の各エッジについて実行することができる。代替的に、これは、交差を形成するエッジのセット（交差を形成するエッジによって生成されるポリライン）に対して実行することができ、グローバルな凹凸及び／又は凹面が収集され、交差のために記憶される。グラフには、凸部又は凹部のみを記憶することができることを理解されたい。
【００６３】
メッシュ解析は、提供されたメッシュの幾何学的及び隣接グラフを生成する。幾何学的及び隣接グラフはメッシュ（領域）上の表面の定義されたプリミティブタイプとそのパラメータに、表面間の隣接グラフ、各表面の内部及び外部の境界向きのループ、各表面の各ループの隣接表面、及び表面とその隣接表面間の対応する凹凸を加えたものを提供する。
【００６４】
図２０は、この立方体のメッシュを解析した後に得られるグラフから取り出すことができる隣接情報及び交差の指向ループの例である。既に述べたように、提供されたメッシュは体積の境界を正確に表し、したがって、その体積に関して一貫した向き情報を含む。メッシュは立方体の形状を有する。各平面は他の４つの順序付き垂直平面に隣接しており、各平面に対して、４つのエッジはすべて凸状である。グラフの分析を容易にするために、隣接する表面は、表面の物質側に対して巻回方向に秩序化される。
【００６５】
次に、図１〜図１８を参照して、提供されたメッシュの幾何学的及び隣接グラフを計算するための例を説明する（Ｓ１１０）。
【００６６】
図１に戻って、メッシュ全体にわたる主曲率値の分布が計算される（Ｓ２０）。分布は主曲率値を離散化することによって計算され、分布は特定の値の発生回数をカウントすることによって作成される。分布の各曲率値とその対応する面との間のリンクが維持され、対応する面は、前記各曲率値が得られた（又は計算された）面である。
【００６７】
分布の各エントリは、主曲率値の値の間隔内の主曲率値の発生の計数を含む。主曲率値の間隔は、主曲率値の範囲とも呼ばれる。値のすべての間隔（すなわち、すべての範囲）は、メッシュの面のすべての主曲率値を含むことを理解されたい。例において、ノイズ低減のために分布上にガウス分布を適用することができる。実際には分布のヒストグラムのみを視覚化するために（例えば、図９及び図１０）、主曲率値の間隔は同一であってもよく、そうでなければ、値の離散化及び分布が広がる値の範囲は２つの主曲率分布に対して同じになるように強制される。
【００６８】
一例において、範囲の数が離散化のために固定され、ユーザによって選択され得る。主曲率値は、メッシュ全体にわたって累積される。
【００６９】
別の例において範囲の数が各範囲の最大発生回数に従って適応されてもよく、実際、発生カウントの数はメッシュごとにロットを変えてもよい。結局、これらの正確な計数は主曲率値の興味深い範囲を定義するのに役立つので、他のものと比較して重要であるが、１つの孤立した計数はあまり重要ではない。範囲内の発生の数は、メッシュの面の数で除算できる。したがって、各範囲の発生の数はパーセンテージとして解釈できる。
【００７０】
分布の計算は、当技術分野で知られているように行われる。
【００７１】
例において、分布の計算が値の変動のいくつかを削除するために、結果として生じる分布にガウスカーネルが適用されることをさらに含むことができる。
【００７２】
図９は、メッシュの面の主曲率値の分布の一例を示す図である。この例において、分布はヒストグラムで表される。ここで、主曲率値は−２．０と２．０との間であり、分布は４０の値の範囲を含む。主曲率値の符号付き値は、分布を計算するために取られる。主曲率値は、図９のヒストグラムにおいてより多くの範囲、例えば１００の範囲で離散化されてもよい。この例において、曲率値が４０の範囲で離散化されるように強制されている。
【００７３】
再び図１のＳ２０を参照すると、各面の主曲率値は、最小曲率値と最大曲率値とを含むことができる。したがって、図９を参照して説明したような絶対値を有する分布を計算する代わりに、計算は、離散化された曲率値の発生数をカウントすることによってメッシュ全体にわたる最小曲率値の第１の分布と、離散化された曲率値の発生数をカウントすることによってメッシュ全体にわたる最大曲率値の発生数によって最大曲率値を分類することによって最大曲率値の第２の分布との２つの分布のそれぞれを計算することを含むことができる。
【００７４】
離散化された曲率値の発生回数をカウントすることによって分布が計算される一般的な場合を参照して論じられた例は、第１及び第２の分布が計算される例に適用されることを理解されたい。
【００７５】
図１０は同じメッシュについての２つの計算された分布の例の説明図であり、左側の分布はメッシュの面の最小曲率値について計算され、右側の分布はメッシュの面の最大曲率値について計算された。
【００７６】
図１に戻ると、Ｓ３０において、この方法は、計算された分布において、主曲率値の１つ又は複数の支配的範囲を定義することをさらに含む。支配的範囲は、他の範囲よりも多くの出現回数を表す範囲である。支配的範囲は、完全な分布にわたって支配的であり得る。あるいは、支配的範囲が局所的支配的であってもよく、局所支配的範囲と呼ばれる。局所支配的範囲は、分布上の所与の数の連続する範囲の中の範囲の発生数よりも大きい発生数を有する範囲である。
【００７７】
２つの分布が計算される例において、支配的範囲は、２つの分布の各々について定義される。
【００７８】
例において、主曲率値の支配的範囲の定義が分布の２つの連続する極小の間にある分布の極大の決定時に実行されてもよい。「極大」及び「極小」は数学的定義に従う極大であり、「連続極小」は、２つの極小の間にそれ以上の極小がないことを意味する。２つの極小値の間に含まれ、したがって極大値を含む範囲は、支配的範囲を形成する。したがって、２つの連続する局所最小値の間に含まれる離散化された曲率値を有する面は支配的範囲に属し、２つの連続する局所最小値に属する面は、支配的範囲に属さない。２つの連続する局所最小値に属する面はプリミティブのエッジに属する可能性が最も高く、又はプリミティブのエッジに近い可能性が最も高く、一方、定義された支配的範囲に属する面はプリミティブを形成する可能性が最も高い。
【００７９】
ここで図１０を参照すると、極大値と２つの連続する極小値から主曲率値の支配的範囲を定義する例が示されている。濃い灰色で表される範囲は、局所的な最大値である。ここで、メッシュの面の最大曲率値の分布に対応する図の右側部分について説明する。極大値１２００が定義されている。この極大は２つの極小１２１０、１２１２によって囲まれており、これらの極小は、１２１０と１２１２との間の範囲にそれ以上の極小が含まれないので、連続する極小である。矩形形状１２２０は、定義された主要範囲を形成する範囲をカバーする。図１０の右側には、さらに３つの支配的範囲が示されていることを理解されたい。ここで、メッシュの面の最小曲率値の分布に対応する、図の左側の部分について議論する。２つの連続する極大１２３０、１３３２が定義されている。それらは、連続する極小値である２つの極小値１２４０、１２４２によって囲まれている。興味深いことに、どの面もこの範囲によってカバーされる最小曲率値を有しないので、範囲１２４０は空のものである。この空の範囲１２４０は極小値であり、さらに、分布の最後の範囲であり、これらの理由のために、支配的範囲１２５０に属するものとして表される。範囲１２４０が２つの極大値の間に位置する場合、それは定義された支配的範囲に属するものとして表されないことを理解されたい。
【００８０】
例では、分布上の１つ又は複数の支配的範囲の定義が反復せずに実行され、すなわち、すべての支配的範囲が行内の分布内で定義される。したがって、支配的範囲を定義するための計算コストは低い。例において２つの分布があり、定義は行内の両方の分布に対して同様に実行される。
【００８１】
例において分布の２つの連続する極小の間にある分布の極大の決定時に実行される分布上の１つ又は複数の支配的範囲の定義が極大についての発生の数が所定の値に等しく、及び／又は所定の値を超える間、繰り返され、例えば、所定の値は１に等しい発生の数であってもよい。プリミティブのタイプの数（例えば、平面、円柱、刻線面など）は制限され、反復の数はプリミティブのタイプの数を超える必要はない。各繰り返しの前に、支配的範囲に属するものとして以前に定義された面は廃棄され、分布が再計算される。したがって、前者は分布の２つの連続する局所最小値を定義し、新しい分布に属する。代替的に、全ての支配的範囲は、一行に定義されてもよい。興味深いことに、前の局所最小値は新しい定義された支配的範囲に寄与することができ、これ、以前にプリミティブのエッジに属するか、又はそれに近い可能性を有すると考えられていた顔が新たな支配的範囲の次の定義においてプリミティブの一部であることを意味する。新しい分布は、同じ数の範囲を含むことができる。各支配的範囲の定義は、個々の面が興味深いプリミティブに関連付けられ得る表面の一部で興味深い値の範囲を導出することを可能にする。実際、定義された支配的値の範囲は、各面が支配的プリミティブタイプの面であるか否かを決定することを可能にする。明らかに、この処理は第１のパスの間に廃棄された残りのファセット（すなわち、以前に定義された支配的範囲に属さないファセット）に対して繰り返され、他の値の分布、他のプリミティブタイプに関連付けられた面の定義などにつながる。例として、２つの分布（１つは最小曲率値用、もう１つは最大曲率値用）がある。この反復定義は例えば、同時並行して、両方の分布に対して同様に実行される。
【００８２】
したがって、支配的範囲の決定は、プリミティブの表面のエッジに属する可能性があるか、又は近い可能性があるメッシュの第１の面のセットと、各セットが支配的プリミティブタイプの領域を形成する第２の面のセット（各支配的範囲についての面のセット）とを定義することを可能にする。
【００８３】
本発明による方法は、前述のベニエール（Benieare)らのような公知の従来技術とは異なるアプローチを有することに注目する価値がある。既知の従来技術において、サブメッシュが各部分をどのように処理するかを定義又は知ることが可能な点に達するまで、反復的に処理される。逆に、この方法は、プリミティブタイプに関連する支配的範囲外の領域を考慮しないことによって、ディフェーチャに類似する何かを達成するときに早期に停止することができる。当技術分野で知られているように、ＣＡＤモデルから本質的でない細部を削除することを意味する。
【００８４】
図１１は図５からのメッシュの最大曲率をヒストグラムと共に示すスクリーンショットであり、デバッグウィンドウ１１０において、最小曲率値及び最大曲率値の分布を、構築された値の範囲と共に示す。
【００８５】
図１に戻ると、メッシュの１つ又は複数の領域が、定義された各支配的範囲について計算される（Ｓ４０）。したがって、各計算された領域は、対応する定義された支配的範囲に属する面を含む。したがって、メッシュの領域は、提供されたメッシュのセット面である。
【００８６】
したがって、１つ又は複数の関心のある曲率値の範囲が定義されると、面は、それらが方法の１回の反復でこれらの支配的範囲の一部である場所に基づいて分類される。図１２は、図５のメッシュ上の結果Ｓ４０として得られた均一な曲率の領域のスクリーンショットである。領域１２２、１２３、１２４は、特定のプリミティブ表面タイプ１２０と一致する可能性が高い。領域１２５、１２７、１２８及び１２９は、別のプリミティブ表面タイプ（ここでは円筒）と一致する。これらの領域は全てロッド１２６のプリミティブ表面の一部であるが、本方法のこのステップにおいてそれらは分離された領域として見られる。また、図１２に示す領域の大部分は、例えば１２２−１２３と１２３−１２４との間で、それらの隣接領域との明確な交差を有していないことにも注意されたい。
【００８７】
例において、計算された領域のうちの１つにまだ割り当てられていない面を集約するために、各計算された領域に領域成長が適用される。計算された領域にまだ割り当てられていない面は、定義された支配的範囲のうちの１つに以前に帰属されていない面である。領域成長は各領域上に連続的に、又は２つ以上若しくは全ての計算された領域上に同時に適用することができる。領域成長はメッシュの領域間の交差の品質を改善し、実際、領域成長は、計算された領域にまだ割り当てられていない全ての面を集約することを目的とする。これらの面は、典型的には支配的な領域に属すると定義されなかった面である。成長する領域は、互いに接触する領域を作り出すことに寄与する。
【００８８】
例において領域成長（すなわち、各計算された領域に適用される）は面間の距離によって案内される。考慮すべき距離は、領域の面と割り当てられていない面との間の距離である。距離は例えば、任意の既知の方法を使用して計算されてもよい。例えば、ユークリッド距離。領域の三角形から割り当てられていない三角形への多数のジャンプは距離、例えば、表面上の距離の推定値として使用することができる。メッシュの面が（例えば、再メッシュ化のおかげで）十分に平衡化されている場合、ジャンプの数は測地線距離の近似値（非常に粗いものでさえも）であることに留意されたい。したがって、測地線距離又は何か類似のものを使用することができ、例えば、面中心間のユークリッド距離よりも優れている。
【００８９】
例において、領域成長の距離が曲率値間の差によって重み付けされる（変調されると言うこともできる）。成長を導くために曲率値間の差を使用することは、他の領域と成長される領域のための関連する交差の数を最大化することを可能にする。さらに、曲率値で成長を案内することは、同じプリミティブ表面の一部である可能性がより高い領域において、より速く成長することを可能にする。
【００９０】
例において、距離値が定数及び曲率値間の差によって線形に重み付けされる。これにより、領域成長の効率が向上する。
【００９１】
領域成長のこれらの例において、スコアが割り当てられていない面について計算される。したがって、これらの例によれば、スコアは、面間の距離に基づいて、又は曲率値間の差によって重み付けされる距離に基づいて、又は定数によって線形的に重み付けされる距離及び曲率値間の差によって重み付けされる距離に基づいて、計算されてもよい。別のプリミティブに既に関連付けられているかもしれない未割り当ての面に到達すると、現在の拡張のための新しいスコアが、記録されたスコアと比較され、最良のスコアが勝つ。以前のスコアであった場合、このファセットを介した拡張は停止する。反対に、新しいスコアが勝った場合、このファセットに触れているすべてのファセット（１つを除いて、新しいスコアのために来ている）が以前よりも良好なスコアを有するという意味であり、したがって、同じ処理をこれらの近隣に広げ続ける。．などである。すでに関連付けられている面が新しい領域に関連付けられると、関連付けられている面を除いて、このすでに関連付けられている面のすべてのネイバーが再び評価される。このメカニズムは、そのメカニズムが特定の目的に到達しようとせず、その目的に向かうヒューリスティックによって導かれないことを除いて、Dijkstra又はＡ＊といくつかの類似性を有する。
【００９２】
成長領域アルゴリズムの詳細な例を以下に説明する。成長する領域は、定数と曲率値の差によって直線的に重み付けされる距離によって案内される。
【００９３】
原理は上述したものであるが、実施レベルではアルゴリズムは、実施を単純化するためのミラーであるように機能する。面は、ネイバーから来る値が何であるかをチェックする。
【００９４】
この処理は、以下のように開始される。同じ第１のスコア（同じ任意の大きなスコア）を第１の組の面に割り当て、第１の組の面は、計算された領域のいずれにも属さない面を含む。さらに、計算された領域のうちの１つに属する各面に対して、同じ第２のスコアとしてゼロを割り当てる。最初のスコアが２番目のスコアより大きい。そうでなければ、処理を開始するために、領域内のすべての三角形がゼロコストで初期化され、それらがその一部である領域が、このゼロスコアを与える領域として記録される。領域の一部でない全ての面（例えば、三角形）には、無限に高いスコアが与えられ、「領域なし」領域がそのスコアを与える領域としてこれらの面に記録される。
【００９５】
次に、第１の組の各面（まだ領域の一部ではなく、処理されなければならない面）がテストされる。つまり、領域に割り当てられていないすべての面は、処理される面のキューに入れられる。
【００９６】
処理される各面（又はテストされる面）について、面のネイバーがチェックされて、それらを通過することができるスコアが確認される。面のネイバーは、エッジを共有する面である。したがって、面の各隣接領域について、面と隣接領域との間の距離と、面と隣接領域との間の主曲率値の差とに基づいて、第３のスコアが計算される。
【００９７】
より良いスコアがない場合（すなわち、第３のスコアが第１のスコアよりも大きい場合）、処理はテストされた面について停止し、テストされた面は、既に処理された面のリストに入れられる。スコアが対応する領域も記録される。あるいは、スコアが対応する領域がテストされた面について計算されたスコアの中で最良のスコアが決定されたときに記録される。
【００９８】
スコアが既に割り当てられたスコアに等しい場合、処理は停止する。テストされた面は、既に処理された面のリストに入れられる。スコアが対応する領域も記録される。あるいは、スコアが対応する領域がテストされた面について計算されたスコアの中で最良のスコアが決定されたときに記録される。
【００９９】
より良いスコアがある場合（すなわち、第３のスコアが現在のスコアよりも小さい場合）、テストされた顔は第１のセットから削除され（領域の一部ではなく、処理されなければならない顔）、処理はより良いスコアを、テストされた顔についてのそのスコアに対応する領域と共に記録し（すなわち、処理は新しい現在の顔スコアになるより良いスコアを記録し）、テストされた顔のすべての隣接する顔（新しいスコアを与える顔を除く）を、処理される顔のキューに戻す。最終的に隣接する面がすでに処理済みの面のリストである場合、すでに処理済みの面のリストから削除される。
【０１００】
そして、処理されるべき面のリストが空であるとき、第１のセット内の最初にテストされた面は、それらが有する最良の第３のスコアに関連付けられた領域と再グループ化される。
【０１０１】
この処理はダイクストラのように収束し、領域に割り当てられなかった各面が、その最良の「近接」スコア及び関連する領域を記録することを保証する。
【０１０２】
領域成長は、以下のように要約することができる。
【０１０３】
各「エッジ」三角形（領域に割り当てられていない）について任意に大きなスコアを初期化し、この時点でどの領域にも関連付けられていないことを指定する。
【０１０４】
０のスコアを有するプリミティブに既に関連付けられているすべての非「エッジ」三角形を初期化し、それらを既にその一部であるプリミティブに関連付ける。
処理する三角形の集合にすべての「エッジ」三角形を入れる
処理対象の三角形の集合が空でない場合：
その収集から三角形を取得する。
三角形がすでに処理済みのリストにある場合：
処理する三角形の収集の次の三角形の処理を続行する。
その三角形の各ネイバーについて：
次の式を使用して、その三角形の潜在的に新しいスコアを、あたかもそのネイバーから来たかのように計算する。新しいスコアは、面の現在の最良のスコアに対してチェックされる値である：
new_score = neighbor_score + 1 + constant_curvature_factor *(A + B)
ここで、constant_curvature_factorは一定の曲率係数であり、
Ａは、選択された面の最大曲率値と隣接領域の面の最大曲率値との差の絶対値であり、
Ｂは、選択された面の最小曲率値と隣接領域の面の最小曲率値との差の絶対値である。
その新しいスコアがその三角形の現在のスコアよりも低い場合：
新しいスコアを設定する。
その三角形を、ネイバーが関連付けられている形状に関連付ける。
使用したネイバーを記録する。
その三角形スコア値が（特定のネイバーを通過することによって）改善された場合：
処理される三角形のリスト内の、改善されたスコアを有する特定の三角形を除くすべてのその三角形ネイバーを戻し、それらを既に処理されたリストから削除する。
その三角形をすでに処理済みのリストに追加する。
【０１０５】
アルゴリズムは、主曲率値の１つ又は複数の支配的範囲の定義（Ｓ３０）の後に適用されることを思い出されたい。したがって、アルゴリズムは、入力において、各セットが支配的プリミティブタイプの領域を形成する１つ又は複数の第２の面のセット（各支配的範囲に対する面のセット）と、領域のエッジに属する可能性があるか又は近い可能性がある面を含む第１の面のセットとを有する。
【０１０６】
第２の組の面が空であるとき、すなわち、すべての面がメッシュの計算された領域の１つに関連付けられたとき、上述のテストは停止する。図１３は、領域成長を適用した後に得られた図１２のメッシュを表す。ここで、各領域が面の相互接続された縁部によって画定される縁部を有することに気付くことができ、したがって、領域の縁部は、領域の表面を画定するポリラインである。
【０１０７】
図１４ａ（それぞれ図１５ａ）は、成長領域の前の領域を有するメッシュのスクリーンショットである。図１４ｂ（それぞれ図１５ｂ）は、領域成長を適用した後の図１４ａ（それぞれ図１５ｂ）のメッシュのスクリーンショットである。
【０１０８】
再び図１を参照すると、各計算された領域に対してプリミティブタイプが検出される（Ｓ５０）。プリミティブは、他の形状を構築することができるビルディングブロックである。プリミティブは一般に、３Ｄモデル化オブジェクトを構築するための３Ｄモデル化において使用される。例えば、２Ｄ多角形（例えば、正方形、長方形）は３Ｄ体積（例えば、正方形パッド又は長方形パッド）を形成するために押し出すことができるプリミティブである。プリミティブは以下に限定されるものではないが、平面、円柱、球体、角錐、円錐、四角形、罫線表面、トーラスであることができる。プリミティブのセットは、工業製品、例えばメッシュによって表されるものを記述することを可能にする。
【０１０９】
プリミティブのタイプの検出（計算と言うこともできる）は、領域の面の曲率値に依存する。領域の面の曲率値を使用することによるプリミティブのタイプの検出は、当技術分野で知られているように実行される。図１６は、タイプ平面のプリミティブである領域の面の主曲率値の分布を示す図である。図１７は、タイプシリンダのプリミティブである領域の面の原理曲率値の分布を示す図である。図の分布。１６及び１７はそれぞれのタイプのプリミティブのテンプレートであってもよく、領域の分布とテンプレートの比較により、領域のプリミティブを定義することができる。
【０１１０】
検出された各プリミティブについて、検出されたプリミティブのパラメータは、領域の表面（別名、その領域に関連付けられたメッシュの三角形）を使用してプリミティブタイプに基づいて計算され、パラメータに関する最小二乗最適化アルゴリズムが適用され得る。プリミティブのパラメータは、プリミティブをインスタンス化できるプリミティブの特性を決定する。例えば、当技術分野で以下が知られている。
・プリミティブ平面のパラメータは、平面の法線と平面上にある点である。
・プリミティブ球のパラメータは、中心と半径である。
・プリミティブシリンダのパラメータは、軸の方向、シリンダの高さ、底部円の中心及び半径である。
・プリミティブ円錐のパラメータは、軸方向、円錐の高さ、円錐ベースの中心及び半径である。
・プリミティブトーラスのパラメータは、方向ベクトル、中心、大円の半径、小円の半径である。
【０１１１】
プリミティブのパラメータの検出は、当技術分野で知られているように実行される。パラメータは、領域の表面を使用して、すなわちメッシュを直接形成して計算される。例において、パラメータの定義が最小二乗最適化を用いてパラメータを推定することによって実行される。パラメータの値はそれらからインスタンス化することができる正確な表面がせいぜい、この表面によって表されるメッシュの部分にくっつくように最適化される。各パラメータは、プリミティブをインスタンス化するために使用される１つ以上のパラメータ値で構成される。単純化のために、用語「パラメータ」及び「パラメータ値」は同義語である。
【０１１２】
実施例において、メッシュの領域の計算後、領域間の交差ループはメッシュの三角形の隣接性を使用して計算される。２つの領域間の交差は、表面が２つの領域の交差である表面対表面交差（ＳＳＩ）とも呼ばれる。２つの表面が交差するとき、結果は、孤立点のセット、曲線のセット、又はこれらの場合の任意の組合せとすることができる。
【０１１３】
領域間の交差ループは、領域の表面の境界を形成する。「ループ」という語は、交差がそれ自体の中で閉曲線を形成すること、又は２つ以上の交差がそれ自体の中で閉曲線を形成することを意味する。したがって、領域に対する交差ループは、領域と他の１つの領域との交差（例えば、平面がシリンダと交差する）の結果であってもよい。あるいは、領域に対する交差ループは、領域と２つ以上の領域との交差（例えば、立方体の面が４つの面と交差する）の結果であってもよい。領域はメッシュの面の集合であり、２つの領域間の交差は、交差を形成する領域の両方に属する面の相互接続エッジ（エッジの接続シーケンス）を含む。したがって、交差は２つの領域の面の共通エッジのポリラインであり、したがって、交差ループは、領域の表面を画定する２つ以上の領域の面の共通エッジを含むポリラインでもある。
【０１１４】
実施例において、交差ループの計算が領域と他の領域との全ての交差を定義する際に、各領域について実行される。従って、交差ループは、領域と他の領域との全ての交差から生成される。交差ループの計算が行われると、当技術分野で知られているように、領域の面のエッジのポリラインが構築される。
【０１１５】
実施例において、交差ループの計算後、各交差ループについて、交差ループに属する領域の順序付けられたリストが収集される。そうでなければ、所与の領域と接触する領域は、前記所与の領域のループ上の進行方向に従って定義され、ランク付けされる。交差の順序付けされたリストは、隣接及び形状グラフのノードの交差ループを表す。領域が２つ以上の交差ループを含み、したがって、ノードがいくつかの交差を含む必要がある場合、それらは、他を含む第１のものと共にリストで提供される（シリンダの選択は任意である）。
【０１１６】
実施例において、交差ループの各エッジについての凹面、凸面、及び位置情報が収集される。凹面及び凹凸の計算は、当技術分野で知られているように実行される。一例において、様々な領域が互いに接触すると、外部交差ループ及び内部交差ループが各領域について収集される。これらは、浮動小数点演算によって引き起こされる可能性のある数値問題に対処するために、述語を使用して各三角形について評価された同じ回転順序に関して収集される。このような収集は、Jonathan Richard Shewchuk、”Robust Adaptive Floating-Point Geometric Predicates”、inSymposiumonComputational Geometry 1996、pages 141-150に記載されている。交差を収集しながら、領域の面の各エッジに対する凹凸情報が計算され、記録され、ループ部分に関連する頂点も記録される。あるいは、交差ループを形成するエッジが頂点の代わりに記録され得る。交差ループの各エッジの凹凸、凸部、及び位置情報は、エッジが関係する２つのノード間の接続に記憶することができる。
【０１１７】
実施例において、２つの領域間の交差を形成するエッジの凹凸、凸部、及び位置が収集される。この凹面、凸面、及び位置は、各エッジの凹面、凸面、及び位置ではなく、むしろ、２つの領域間の交差を形成するエッジによって生成されるポリラインの全体的な凹面、凸面、及び位置が収集される。そして、２つの領域間の隣接／交差毎に凹凸を得ることができるように、これらを統合して交差に関連付ける。
【０１１８】
交差ループは当技術分野で公知のように、外部交差ループ又は内部交差ループとすることができる。したがって、外部及び内部交差ループは各ノードの外部及び内部境界、すなわち、提供されるメッシュの領域の境界を表す。一例において平坦化され、ある場所に投影され得る領域について、外部ループは他のループを含む領域である。
【０１１９】
内部及び外部交差ループの例は、オブジェクト１８０のメッシュについて図１８のピクチャ（スクリーンショット）上に表される。いくつかの領域（例えば、１８００、１８２０、１８１０、１８３０、１８４０…）が計算されている。領域１８００は、タイプ平面のプリミティブとして定義される。領域１８００はタイプシリンダのプリミティブとして定義される領域１８０１０と、４つの領域（この図では４つの領域のうちの２つの１８３０、１８４０しか見ることができない）との接点を有する。交差ループ１８０２は、領域１８００と領域１８１０との間で計算されている。別の交差ループ１８０４が、領域１８００と４つの領域との間で計算されている。より正確には、交差ループ１８０４が領域１８００と４つの領域（例えば、１８３０、１８４０）との間の４つの交差を含む。交差ループ１８０２は領域１８００を境界し、外部交差ループである。交差ループ１８０４によって境界付けされる表面は空であり（すなわち、交差ループ１８０４はメッシュの面を有しないか、又は領域１８００の面が交差ループ１８０４によって境界付けされる区切られた表面内にない）、したがって、交差ループ１８０４は内部交差ループ交差である。ループ１８０２は、領域１８１０の外部交差ループでもある。領域１８１０と領域１８２０（シリンダプリミティブとして定義される）との間の交差ループ１８２２は領域１８１０の内部交差ループであり、領域１８１０の外部交差ループである。同様に、領域１８２０と領域１８４０との間の交差ループ１８２４（タイプ平面のプリミティブとして定義される）は領域１８２０の外部交差ループであり、領域１８４０の内部交差ループである。シリンダにはシリンダの反対側に等価ループがあるため、この選択は任意であることを理解すべきである。したがって、ＣＳＧ木を構築するとき、いくつかの組み合わせが試みられ得る。
【０１２０】
交差の方向付けられたループを収集し、それらを内部又は外部ループとしてフラグ付けし、交差ごとの凹凸情報及び交差エッジの位置を維持することにより、例えば、完全な正確なＢ−Ｒｅｐ表現を構築することなく、正確な立体特徴木を生成するために、この情報を直接活用することが可能になる。この場合も、これは、メッシュ分析によって提供される情報が完全なＢ−Ｒｅｐを再構築することに失敗した場合に特に興味深い。したがって、本発明は、よりロバストである。得られた結果が元のメッシュの完全な詳細を反映しない場合であっても、それは、モデリング演算のための基礎として働くことができ、任意の用途に伸長することによって、従来の正確なＣＡＤモデルを作ることができる。例えば、ユーザはメッシュ結果から生成された構造化３次元（３Ｄ）モデルの一部を中間ステップとしてのみ使用し、そのパラメータを通じて任意の要素を編集することができる。
【０１２１】
図１に戻って、設けられたメッシュの幾何学的及び隣接グラフが構築される（Ｓ６０）。グラフはステップＳ１０〜Ｓ５０の出力の構造化表現を提供し、したがって、これらのステップで生成されたメッシュの構造化３Ｄモデルの表現を提供する。グラフは、ノードとノード間の接続で構成される。グラフの各ノードは、計算された領域のうちの１つを表し（Ｓ４０）、この領域について定義されたプリミティブタイプ及びこの領域について定義されたパラメータに関連付けられる。２つのノード間の各接続は、ノードによって表される領域の各表面間の交差を表す。
【０１２２】
図１８のスクリーンショットは、ステップＳ１０〜Ｓ５０の出力を使用して生成されたオブジェクト１８０のメッシュの構造化３Ｄモデルの表現の表示の例を提供する。ノード「ｆａｃｅ＿１６」は領域１８００を表し、領域１８００（平面）のプリミティブタイプ及びプリミティブのパラメータに関連付けられる。領域１８００はすでに論じたように、５つの領域に接触している。領域１８１０は、ノード「ｆａｃｅ＿１５」によって表され、４つの領域（例えば、１８３０、１８４０…）は、ノード「ｆａｃｅ＿１６」、「ｆａｃｅ＿１７」、「ｆａｃｅ＿１８」、「ｆａｃｅ＿１９」によって表される。５つの接続が表示されている。ノード「ｆａｃｅ＿１６」とノード「ｆａｃｅ＿１５」との間の接続の１つは交差１８０２を表し、交差ループ１８０４を形成する交差を表す、ノード「ｆａｃｅ＿１６」とノード「ｆａｃｅ＿１５」との間の接続の１つは交差ループ１８０４を表す（「ｆａｃｅ＿１７」、「ｆａｃｅ＿１８」、「ｆａｃｅ＿１９」のそれぞれについて）
【０１２３】
例えば、交差、交差ループを形成する領域の順序付けられたリスト、面の各エッジの凹凸情報、及び／又はループ部分に関連付けられた頂点など、以前に収集された後さらなる収集された情報が、幾何学的グラフ及び隣接グラフとともに記録される。例えば、ここで図１８を参照すると、交差ループ１８０４を形成する４つの領域の順序付けられたリストはノード「ｆａｃｅ＿１６」と共に記憶することができ、又はノード「ｆａｃｅ＿１６」とノード「ｆａｃｅ＿１５」、「ｆａｃｅ＿１７」、「ｆａｃｅ＿１８」、「ｆａｃｅ＿１９」との間の接続は、リストに従ってランク付けすることができる。
【０１２４】
これらの例において、メッシュの全表面が処理される場合の生成が示されている。表現が必ずしも完全である必要はなく、すなわち、生成がメッシュの一部のみをカバーすることができることに言及する価値がある。生成された構造化３Ｄモデルは、元のメッシュの全ての詳細を正確に表現しないにもかかわらず、依然として有用である。
【０１２５】
図１９に戻って、Ｓ１２０及びＳ１３０において、グラフの各ノードについてスケッチが計算される。スケッチの計算は、グラフから定義された平面ループに依存する。ここで、ノードのスケッチの計算の一例を説明する。
【０１２６】
グラフの各ノードについて、ノードによって表される領域の定義されたプリミティブタイプ及びパラメータに基づいて、表面がインスタンス化される（Ｓ１２０）。これは、当技術分野で知られているように、例えばＣＡＤシステムによって実行される。
【０１２７】
次に、各インスタンス化された表面について、１つ又は複数の交差ループが計算される（Ｓ１３２）。計算は、ノードの各ループについて計算された接続の順序付けられたリストを含む、以前に計算された幾何学的及び隣接グラフから実行される（Ｓ１１０）。交差の順序付けされたリストは計算された交差を相互接続するための情報を提供し、したがって、交差ループを形成する。Ｓ１３２で計算される交差及び交差ループは、それらが推論されたメッシュの領域と必ずしも同一ではないプリミティブから開始して構築されるので、メッシュの分析（Ｓ１０〜Ｓ６０）中に得られるものとは異なることが理解される：実際、グラフのプリミティブの大部分はメッシュの近似である。したがって、計算された交差及び交差ループ（Ｓ１３２）はメッシュの分析中に特定されたものとは異なる可能性がある。例えば、メッシュ内で特定された閉ループは、Ｓ１３２の結果としてそれ以上閉じられない。しかしながら、グラフは、各表面の各ループと、表面とその隣接する表面との間の対応する凸部とに対する隣接する表面に関する情報を提供するので、インスタンス化された表面の閉鎖されていない交差ループを閉じることが可能である。
【０１２８】
各インスタンス化された表面は、１つの外部交差ループを含む。さらに、インスタンス化された表面は、場合によっては１つ又は複数の内部交差ループを備えることができる。外部と内部の交差ループの計算も同様に実行される。
【０１２９】
円形スケッチの場合（すなわち、スケッチ平面はシリンダ、円錐、又は球である１つの隣接する表面のみを有する）、これはスケッチを生成するのに十分である。
【０１３０】
他のすべての場合において、いくつかのループが、インスタンス化された表面とその隣接するインスタンス化された表面との間の交差から計算されてもよい。
【０１３１】
これは、例えば、４つの面（２２０、２２１、２２２、２２３）と２つのシリンダ（２２４、２２５）との、インスタンス化された平面との交差を示す図２２に示されている。この例において、接続の順序付けられたリストが交差によって形成される１つの単一ループを定義するのに十分ではない。図２３は、図２２の状況から導き出すことができるすべてのソリューションを示す。これらのすべての可能性は、表面間の隣接性、各表面の各ループのための隣接表面、表面とその隣接表面との間の対応する凸部、及び各表面の内部及び外部境界向きループを提供するグラフから計算することができる。
【０１３２】
交差の相互接続のいくつかの組み合わせを定義することができる場合、メッシュ上で検出されたループに最も近いスケッチを生成するために、以下のステップを実行することができる。
【０１３３】
最初に、接続された曲線の端点のセットが計算される。端点は、順序リストにおいて連続する（インスタンス化された表面上の）２つの交差の間で計算されることを理解されたい。これらの端点の各々は３つの表面、すなわち、スケッチ平面と、スケッチ内の２つの接続された交差曲線を画定するのを助ける２つの隣接する表面との交差によって画定される。
【０１３４】
図２２において、交差２２０は、グラフの順序付けられた交差のリストに従って交差２２４と交差する。交差２２０及び２２４は、２つの端点２２００及び２２１０と相互接続することができる。２つの端点２２２０及び２２３０を有する曲線２２４及び２２１についても同様の状況が生じる。
【０１３５】
第２に、最良の解を定義するために、すなわち、メッシュ上で検出されたループに最も近いスケッチを生成するために、メッシュ頂点に最も近く、３つの表面に属する端点が選択される。このような選択は、３つの面に属するループの各点に対して行われる。
【０１３６】
図２２に戻ると、端点２２００及び２２１０は３つのインスタンス化された表面の同じ交差について得られ、端点２２００は提供されたメッシュに最も近いものとして選択される。これは、図２２に関連するメッシュを示す図２４に示されている。明確にするためだけに、図２２の基準は図２４に報告されている。
【０１３７】
エンドポイントがテストされ、選択されると、交差の相互接続の最良の組み合わせが得られ、これは、メッシュ上で検出されたループに最も近いスケッチを生成するものである。
【０１３８】
例において、終点が試験され選択された後、交差曲線のどの円弧が使用されるかの選択が実行されてもよい（２つの平面間の交差線である場合を除く）。これは、円弧の中点を計算し、それをメッシュ上で見出される交差曲線のすべての内部点と比較することによって行われる。
【０１３９】
次に、外部交差ループと、場合によってはインスタンス化された表面の１つ又は複数の内部交差ループからそれぞれ１つ又は複数のスケッチとを使用して、インスタンス化された表面からスケッチが計算される（Ｓ１３４）。用語「スケッチ」は、２Ｄ平面の押出し時に３Ｄ体積を構築するために使用される２Ｄ平面を意味する。２Ｄ平面は相互接続された曲線のセットによって区切られる。ここで、相互接続された曲線はループを形成する計算された交差である。図２１は、スケッチの例を示す。
【０１４０】
Ｓ１３０の出力は、スケッチのセットである。
【０１４１】
図１９に戻って、掃引動作が各計算スケッチに適用される（Ｓ１４０）。各スケッチに対して掃引体積又は立体が生成される。
【０１４２】
例において、掃引演算は、掃引方向及び掃引長を計算することを含み得る。掃引方向及び掃引長さは、当技術分野で知られているように、３Ｄシーン内のスケッチの各点の変位を定義する。掃引方向及び掃引長は、外部交差ループに隣接する交差ループから計算されてもよい。スケッチが１つ以上の内部交差ループを含む場合、掃引方向及び掃引長は、スケッチの内部交差ループに隣接する交差ループから計算されてもよい。
【０１４３】
掃引方向と掃引長の計算例を論じた。
【０１４４】
一例において、計算がスケッチごとに、及びスケッチの交差ループごとに実行される。この例は、掃引方向及び掃引長の計算の原理を図示する、図２５と関連して議論される。
【０１４５】
最初に、１つ以上のスケッチ点が交差ループ上で定義される。スケッチ点は、保持された以前の端点である。したがって、スケッチ点は、スケッチの交差ループに隣接する交差ループに共通の点である。図２５上ではスケッチ点２２４０が曲線２２３及び２２０を接続し、各曲線はスケッチの交差ループに隣接ループを支持して押し出す。
【０１４６】
第２に、目標点が各スケッチ点に対して定義される。目標点は、スケッチの交差ループに隣接する交差ループに共通の点である。２つ以上の共通点（現在のスケッチ点以外）があってもよく、この場合、スケッチ点から最も近い点を選択することが可能であり、又はスケッチ点からさらに離れた点を選択することも可能であり、又はすべての可能な長さを計算することが可能である。図２５において、目標点２２４２は、曲線２２３及び２２０によって支持される２つの隣接する交差ループに共通の点である。１つのスケッチ点が１つのターゲット点に関連付けられることを理解されたい。
【０１４７】
第３に、各スケッチ点に対してベクトルが計算される。ベクトルはスケッチ点を目標点に結合する。ベクトルは方向及びノルムを有する。ベクトルの方向は掃引演算の方向であり、ベクトルのノルムは掃引長さである。
【０１４８】
従って、各スケッチ点の個々の変位は、ベクトルが各スケッチ点に対して計算されるとして、これらのステップの結果として得られる。１つのベクトルのみが計算される状況として、例えば、スケッチは、平面とシリンダとの間の交差の結果であったことが理解されるべきである。ループのスケッチ点のセットに対して１つのベクトルのみが計算されてもよいことが理解されるべきである。同様に、ベクトルが計算されるスケッチ点の数は、ループ上のスケッチ点の総数よりも少なくてもよい。
【０１４９】
一例において、２つ以上のベクトルが計算された状況について、グローバル掃引方向及びグローバル掃引長さを計算することができる。ここで、グローバルとは、同一の掃引方向及び掃引長さが交差の各々の点に適用されるという意味である。したがって、押出はより均一に画定される。この例において、ベクトルが同じ方向を有するかどうかを判定するために、ベクトルが比較される。そえば、これは、独特の押し出し方向が見出されたことを意味する。ベクトルの比較により、さらに、スケッチの現在テストされている交差ループに隣接する交差ループの表面がこの同じ方向に平行であるかどうかを判断することができる。これは、押出が表面を生成することを確実にする。これが該当し、２つの決定が累積されている場合、ベクトルの固有のグローバル方向に従って掃引演算が適用される。
【０１５０】
例においてグローバル掃引長は決定されない。したがって、各スケッチ点に適用される掃引長はそのベクトルに関連付けられたものである。
【０１５１】
実施例において、押出物の全体的な長さを計算するために、さらなる試験がベクトルに対して実行されてもよい。一例において、ベクトルのノルムの中の最小値が定義され、押出物の全体的な長さとして役立つ。別の例において、ベクトルのノルムの中の最大値が定義され、押出物の全体的な長さとして役立つ。さらなる例において、ベクトルのノルムの平均が計算され、押出物の全体的な長さとして役立つ。
【０１５２】
図２６は、図２５のスケッチを押し出した結果得られる立体を示す。
【０１５３】
グローバル掃引方向及びグローバル掃引長の計算のさらなる例が、ここで議論される。この例において、計算がスケッチごとに、及びスケッチの各交差ループごとに実行される。この例は、掃引方向及び掃引長の計算の原理を図示する、図２７と関連して議論される。
【０１５４】
この例において、スケッチ点及び目標点の定義時に計算されたベクトルを比較し、スケッチの各交差ループに隣接する交差ループの表面がベクトルの同じ方向に平行であるかどうかを決定する。テストが失敗した場合、つまり、現在テストされているスケッチの交差ループに隣接する表面がこの同じ方向に平行でない場合、すべての隣接表面と一致する共通の回転軸（検出されたスケッチの現在テストされている交差ループに隣接する交差ループの表面）になる。
【０１５５】
共通の回転軸の検出は、スケッチの交差ループに隣接する交差ループの表面がシリンダ、円錐、球体、及び／又はトーラスの中で選択されたタイプのプリミティブに属するかどうかを決定することを含み得る。隣接する面がシリンダ、円錐、球体及び／又はトーラスなどのプリミティブの面であることが検証されている場合、１つはこれらの隣接する面が同じ回転軸で定義されていることをチェックする。この場合、さらに決定が行われる。スケッチの交差ループ（隣接面）に隣接する交差ループの面がタイプ平面のプリミティブに属している場合、隣接面が回転軸に直交していることをチェックする。これも当てはまる場合、検出された軸の周りでスケッチを回転させることによってスケッチから立体を生成するための条件が満たされる。次に、各スケッチ点及びその対応する目標点について、回転角度が推定される。この推定は、当技術分野で知られているように実行される。共通の回転軸と推定角度から、掃引演算を適用することができる。
【０１５６】
図２７において、曲線２２０によって支持される隣接面がタイプシリンダのプリミティブからインスタンス化されている。この隣接面は、回転軸２７０と平行である。これは、インスタンス化された平面との交差曲線２２５を形成するトーラスの場合にも当てはまる。隣接平面２２３は、公転軸線２７０に垂直である。
【０１５７】
図２８は、図２７のスケッチを押し出した結果得られる立体を示す。
【０１５８】
例において大域的回転角度は決定されないことがあり、従って、各スケッチ点に対して適用される回転角度はそのベクトルに関連付けられるものである。あるいは、ベクトルの回転角度のうち最小の値をグローバル回転角度としてもよい。別の例では、ベクトルのノルムの中の最大値が定義され、押出物の全体的な長さとして役立つ。さらなる例において、回転角度の平均が計算され、グローバル回転角度として働く。
【０１５９】
掃引方向と掃引長の計算例を論じた。これらの例は、外部ループ及び内部ループに適用することができる。掃引動作の計算は、交差ループごとに別々に独立して実行されてもよい。
【０１６０】
掃引演算のこれらの例は主に、共通の交差を共有するインスタンス化された表面間の幾何学的関係及び隣接関係の分析に依存する。掃引演算を計算する特定の例において、図２９に示すように、（例えば、異なる押出方向に対して）全ての可能な立体が生成される。この特定の例は、いくつかの掃引長さ又は回転角度が定義される場合に使用されてもよい。全ての可能な立体が生成された後、立体は例えば、入力メッシュの局所部分を有する各立体の類似性スコアを使用することによって、提供されたメッシュと比較される。メッシュに局所的に最も適合する、すなわち、メッシュまでの距離が最小である立体が維持される。図２９の例において、押出物２９２は削除され、押出物２９０は保持される。
【０１６１】
掃引演算の別の特定の例において、いくつかの押出しが同等の立体をもたらすことを検出する。同等の立体は、同一又はほぼ同一の幾何学的形状を有する立体である。例えば、直方体上に６つの異なるスケッチを有する６つの異なる押出成形物があるが、全てが同じ形状をもたらす。全ての可能な立体が生成される場合には、同等の立体を検出することができる。生成された立体の比較が、少なくとも１つの共通の交差を有するスケッチから得られた立体について行われる場合、同等の立体も検出され得る。同等の立体が同定された場合、それらのうちの１つのみが保持される。入力メッシュに局所的に最も適合する単一の立体が複数ある場合（例えば、立方体の場合）、及びそれらが同一であると判定される場合、特徴木全体に使用される異なるスケッチ平面のグローバル数を最小にする立体を選択する。これは、特徴木の拡張サイズを制限することに寄与する。
【０１６２】
さらに具体的な例において、入力メッシュ上で検出された平面上にスケッチを生成することができない場合がある。例えば、これは、インスタンス化された表面がどの平面にも隣接していない場合である。図３０は、メッシュがシリンダ３１０ａ、３１０ｂの形状を有するキャビティを備えるシリンダ３００ａ、３００ｂであるこのような状況の例を示す。キャビティはシリンダ３００ａに貫通孔を形成してもよいし、シリンダ３００ｂに開放孔を形成してもよい。図の説明のために、キャビティはシリンダ３１０ａ、３１０ｂによって表されており、これらのシリンダはメッシュ内には存在しないことを理解されたい。キャビティはメッシュの幾何学的及び隣接グラフにおけるノードによって表されるが、キャビティのスケッチを生成するのに役立つことができる平面は提供されたメッシュから導出可能ではない。
【０１６３】
この状況に対処するために、これらのスケッチを生成するのに必要な１つ又は複数の追加の平面を作成することができる。検出は、グラフの各ノードのインスタンス化後に実行できる。
【０１６４】
生成される押出／回転が十分に大きいことを保証するために、インスタンス化された新しい平面をメッシュの境界の外部に配置することができる。新しい平面はインスタンス化された表面と隣接する表面との交差の新しい平面上の投影がメッシュ内に暗黙的に存在するプリミティブを表す（しかし、メッシュの面によっては表されない）ように、インスタンス化された表面に対して垂直に配向されてもよい。
【０１６５】
図３０において、各シリンダ３００ａ、３００ｂについて、メッシュの境界の外部に追加の平面が追加されている（メッシュと追加された平面との間に交差はない）。より正確には、インスタンシエートされた表面のスケッチを生成する役割を果たす可能性のある、提供されたメッシュから平面を引き出すことができないシリンダの交差ループごとに、新しい平面が追加される。図３０において、２つの交差３２０ａ、３２２ａがグラフから導出可能であるとして、シリンダ３００ａについて２つの平面が追加されている。シリンダ３００ｂについても、キャビティが開いているときに交差が１つしかない場合でも、２つの平面が追加される。２つの平面を互いの前に追加することにより、メッシュのより複雑な幾何学的形状のカバレージを改善することができる。追加された平面はインスタンス化された表面３１０ａ、３１０ｂに垂直であり、これは、提供されたメッシュの幾何学的形状に近い有効な立体を得る機会を増加させる。
【０１６６】
新しい平面が配置されると、インスタンス化された表面と新しい平面との間の交差が計算される。交差は交差ループを形成してもよいし、形成しなくてもよい。後者の場合、交差はループを形成するために閉じられる。交差の閉鎖は、交差ループが既知のプリミティブの形状を有するように行われてもよい。図３０においてシリンダ３００ｂのための２つの平面上の交差は閉じられておらず、この例において規則的な湾曲形状を保つために交差ループが閉じられている。
【０１６７】
次に、交差ループからスケッチが計算される。これは、既に説明したように実行される。
【０１６８】
スケッチ生成の例を説明した。しかしながら、スケッチを生成することができない状況がある。例えば、スケッチの現在テストされている交差ループに隣接する交差ループの表面がベクトルの同じ方向に平行でない場合、立体は生成できない。同様に、検出された軸の周りでスケッチを回転させることによってスケッチから立体を生成するための条件が満たされない場合、立体は生成されない。このような状況において、後の段階で設計者が手動で定義することができる汎用立体を計算することができる。
【０１６９】
図１９に戻り、得られた立体間の追加又は削除演算の可能な組み合わせのセットが計算される（Ｓ１５０）。各計算された組み合わせに対して、最終立体が得られる。ここで、追加及び削除演算はブールマン演算を参照する。追加演算とは、スケッチのために計算された立体が最終立体内の物質を表す一方、削除演算とは、スケッチのために計算された立体が物質の空の体積を表すことを意味する。
【０１７０】
例において、可能な組合せのセットが可能な組合せのすべてを含むことができる。これにより、全ての組み合わせが計算される。
【０１７１】
例において、グラフの凹凸情報が追加及び削除演算の組み合わせの数を減らすために使用される。さらに、凹凸情報の知識は、立体が計算されるスケッチの交差ループが内部交差ループであるか外部交差ループであるかの知識と共に使用される。これらの２つの情報は、スケッチ平面のどの側に体積物質が位置するかを決定することを可能にする。この方向を、以前に得られた押出方向（又は、この点に関してはスケッチ回転の方向）と比較することにより、立体が物質を添加するか削除するかを決定することができる。
【０１７２】
次に、図３１を参照して、立体が追加演算に寄与するか削除演算に寄与するかを決定するための規則を説明する。凸である外部交差ループを有する立体が生成される場合、生成された立体は物質を追加する、すなわち、生成された立体は、追加ブール演算に使用される。凹部である外部交差ループを有する立体が生成される場合、生成された立体は、削除ブール演算に使用される。内部交差ループが凹部である立体が生成される場合、生成された立体は、追加ブール演算に使用される。そして、コンベックスである内部交差ループを有する立体が生成される場合、生成された立体は、削除ブール演算に使用される。
【０１７３】
これらの規則の使用は、全ての組み合わせが計算される網羅的なソリューションと比較して、計算されるセットの組み合わせの数を大幅に減少させる。したがって、Ｓ１５０中に実行するための計算資源の使用を減少させることに寄与する。
【０１７４】
例において外部又は内部交差ループ（又は逆に、交差ループのグローバル凹凸）のグローバル凹凸は決定されなくてもよい。このような状況において、前述の規則は適用できない。交差ループの凹凸又は凹面が決定不可能であるような状況において、追加及び削除の両方のブール演算が交差ループから生成された立体のために使用される。
【０１７５】
全てのスケッチがグローバル凹凸が決定され得るループから生成されるわけではないので、２つの立体、すなわち、削除されなければならない立体と、追加される立体とが計算される。これらは、図２９を参照して既に説明したように、異なる押出方向が決定された場合である。興味深いことに、入力メッシュとの比較は、２つの立体のうちの１つのみを保持することを可能にする。
【０１７６】
例において、グラフの分析が立体間の演算の順序を決定するために行われ、したがって、セットの組み合わせの数を減少させるために行われる。この分析は追加演算が連想的かつ可換的であるので、物質を追加する立体（すなわち、生成された立体は追加ブール演算に使用される）を任意の順序で追加することができるという仮定に依拠する。しかしながら、削除されなければならない立体が検出された場合（立体は削除ブール演算に使用される）、ブール演算の順序もはや任意ではなく、慎重に考慮されなければならない。グラフの分析では、特徴木内の削除演算の場所を指定できる、単純だが頻繁な状況を特定する。これは、すべての立体が立体の境界までしか生成されず、その体積を貫通しない、すなわち、（隣接グラフを分析するときに検出されたもの以外の）立体間の予期せぬ衝突の危険因子がないために可能である。
【０１７７】
演算の順序を決定するためのグラフの第１の分析が提示される。立体Ｂが削除演算で使用され、追加演算で使用される単一の生成された立体Ａの面にのみ隣接する場合、立体Ｂの削除演算は立体Ａの追加演算の直後に配置され、そうでない場合、追加演算及び削除演算は順序Ａ〜Ｂで実行される。
【０１７８】
次に、図３３を参照すると、中実３３２は追加演算に関連付けられ、中実３３０（三角形パッド）は削除演算に関連付けられる。立体３３０の面は、立体３３２に隣接する押出し成形物の削除から生じる。
【０１７９】
演算の順序を決定するためのグラフの第２の分析が提示される。立体Ｂが削除演算で使用され、追加演算で使用される２つ以上の生成された立体Ａ及びＣの面にのみ隣接する場合、立体Ｂの削除演算は立体Ａ及びＣの追加演算の後に実行され、そうでない場合、追加演算及び削除演算はＡ＋Ｃ−Ｂの順序で実行される。
【０１８０】
ここで図３４を参照すると、立体３４０（三角形パッド）は削除演算に関連し、立体３４２及び３４４は追加演算に関連する。立体３４０の面は、立体３４２及び３４４の面に隣接している。したがって、立体３４０の面は、パッド３４２及び３４４に隣接する三角形パッドの押出成形物を削除することによって生じる。
【０１８１】
演算の順序を決定するためのグラフの第３の分析は、図３３及び図３４を参照して説明した前の例を基にして提示される。追加演算で使用される立体Ｄが削除演算で使用される単一の生成立体Ｂの面にのみ隣接し、追加演算で使用される単一の生成立体Ａの面にのみ隣接するか、追加演算で使用される２つ以上の生成立体の面にのみ隣接する場合、立体Ｄの削除演算が立体Ｂに対して最初に実行され、その後、この最初の演算の結果が残りの立体から削除される。そうでなければ、追加及び削除演算は、Ａ＋Ｃ−（Ｂ−Ｄ）の順序で実行される。
【０１８２】
ここで図３５を参照すると、立体３５０（三角形パッド）は削除演算に関連し、立体３５２及び３５４は追加演算に関連する。立体３５０の面は、立体３５２及び３５４の面に隣接している。立体３５６は立体３５０から押出シリンダを削除した結果であり、その結果はパッド３５２及び３５４から削除される。
【０１８３】
図１９に戻り、Ｓ１６０において、提供されたメッシュを有する各最終立体について類似性スコアが計算される。これは、メッシュと立体との間の差異を客観化（例えば、測定）することを可能にする、当該技術分野において公知の任意の技術を使用して行われる。Ｓ１６０の結果として、最終立体のランキング、すなわち、最も類似した最終立体を、それほど類似しない最終立体に与えることができる。
【０１８４】
次に、Ｓ１７０において、提供されたメッシュに最も類似する最終立体が類似性スコア、例えば、最高ランキングを有するものに基づいて定義される。これは、当技術分野で知られているように実行される。定義された最も類似した最終立体の追加又は削除演算の組み合わせは、メッシュの特徴木に対応する。これは、スケッチから計算された各立体が演算に関連付けられ、したがって、その掃引演算を用いて計算された各スケッチが、追加又は削除ブール演算に関連付けられた結合を形成することを意味する。一例において、特徴木が保持された演算の組合せによって提供される順序で特徴木のリーフを形成する（スケッチ、掃引演算、ブール演算）の対を含むことができる。組合わせは掃引演算のパラメータ、例えば、掃引演算のタイプ（押し出し、公転、不定）、押し出しの方向及び長さ値、公転軸及び公転角をさらに含んでもよい。
【０１８５】
例において、この方法が特徴木のグラフィカル表現を表示することを含むことができる。特徴木は、ユーザが編集可能であってもよい。特徴木の表現は、対応するリーフの幾何学的形状又は幾何学的動作の各々を表すグラフィカルアイテムの木配列を含んでもよい。この編集は、例えばグラフィカル・インタラクションによりグラフィカルアイテムを選択することを含むことができる。本明細書では、グラフィカル対話は、ディスプレイ上のグラフィカルアイテムの位置に対応する位置でピクセルをアクティブにするように触覚デバイスを動作させることを意味する。例えば、マウスカーソルは、表示されたグラフィックアイテムの上に配置されてもよく、又は表示されたグラフィックアイテムはタッチスクリーンを介して直接的に、又はタッチパッドを介して間接的にタッチされてもよい。この選択は例えばキーボードを介して、ダイアログ・ボックス等を開き、ユーザによって１つ以上のパラメータ値を入力することをトリガすることができる。
【０１８６】
例において、この方法が提供されたメッシュのグラフィック表現を表示するステップと、一方で、ユーザによって、メッシュから特徴木を抽出するための方法を開始し、その結果、抽出された（生成されたと言うこともできる）特徴木のグラフィック表現を、離散幾何学的表現のグラフィック表現と同時に表示するステップとを含むことができる。次に、ユーザは特徴木のエディションのために、メッシュのグラフィカル表現を隠すことができる。あるいは、本方法がメッシュのグラフィック表現と抽出された特徴木の両方を同時に表示し続けることができ、ユーザが特徴木の編集を実行すると、本方法はそれに応じてメッシュのグラフィック表現を更新（例えば、変更）することができる。これは、編集を実行するユーザに視覚的フィードバックを提供する。逆に、ユーザは例えば、メッシュを形成する１つ以上の要素（頂点、エッジ、面など）を変位させることによって、提供されたメッシュを修正し、特徴木を生成するための方法を実行することによって、特徴木を更新することができる。
【０１８７】
例において本方法が現実物体上の物理的測定値から決定された３Ｄメッシュ又は３Ｄ点群を入力として取得するように構成され、本方法は現実物体の３Ｄ形状を表す対応する編集可能な特徴木を決定することを可能にする。次いで、ユーザは編集可能な特徴木の編集を実行して、例えば、実際のオブジェクトに似ているがそれとは異なるデザインを作成することができる。代替及び追加の例において本方法が対応する編集可能な特徴木を持たない３Ｄモデル化オブジェクトの３Ｄメッシュを入力としてとるように構成され、遠隔コンピュータシステムから受信されるか、又は不揮発性メモリから取り出され、本方法は３Ｄ形状を表す対応する編集可能な特徴木を決定することを可能にする。次いで、ユーザは例えば、３Ｄメッシュに似ているがそれとは異なるデザインを作成するために、又は３Ｄメッシュによって形成されたデザインを完成させるために、編集可能な特徴木の編集を実行することができる。
【０１８８】
より人間工学的な方法で３Ｄ形状の編集を実行する可能性に加えて、又はその代わりに、特徴木の他は、３Ｄ形状マージ又は機械的シミュレーションなどの他の目的に役立つことができる。
【０１８９】
３Ｄ形状マージ方法は、コンピュータシステムにおいて、第１の３Ｄ形状を表す第１の特徴木を提供するステップと、第２の３Ｄ形状のメッシュを提供するステップと、第２の３Ｄ形状を表す第２の特徴木を取得するためにメッシュに対して方法を実行するステップと、第１の特徴木と第２の特徴木とをマージするステップとを含むことができる。マージは、任意のマージ技術に従って、及び／又は第１の３Ｄ形状と第２の３Ｄ形状との間の機械的アセンブリ又は機械的協働を表すために実行され得る。マージは例えば、第２の木を第１の木に接続することを含むことができる。３Ｄ形状マージ方法はマージされたツリーに幾何学的モデルを適用して、それによって表される３Ｄ形状のグラフィカル表現を取得し、かつ／又は前記グラフィカル表現をユーザに表示することをさらに含むことができる。
【０１９０】
特徴木に基づいて機械的シミュレーションを実行することができる。実際、特徴木は３Ｄ形状をコンパクトに（離散幾何学的表現と比較して）かつパラメータ化された方法で表現するので、本方法で得られた特徴上で機械的計算をより正確に実行することができる。特に、ＣＳＧから有限要素メッシュを計算することは、より容易かつ直接的である（論文”Finite-element mesh generation from constructive-solid-geometry models”, Edwin Boender, Willem F.Bronsvoort, Frits H.Post, in Computer-Aided Design, Volume 26, Issue 5, May 1994, Pages 379-392又は論文”Finite element mesh generation methods: a review and classification”, K Ho-Le, in 38 Computer-Aided Design, volume 20 number 1 January/February 1988参照）。また、ＣＳＧは表面の防水性を保証する。したがって、機械的シミュレーションは特徴木（例えば、ＣＳＧ）及び／又はその１つ又は複数の変形例から１つ又は複数の有限要素メッシュを計算することと、次いで、各有限要素メッシュに基づいて有限要素解析を実行することとを含むことができる。また、ＣＳＧはパラメータ化されるので、シミュレーションの結果に応じてＣＳＧを容易に最適化できる。したがって、１つ又は複数の変形例は、以前の各有限要素解析結果に基づいて編集可能特徴木（例えばＣＳＧ）を最適化するためのものであってもよい。
【図１】
2020115339.tif 000003
【図２】
2020115339.tif 000004
【図３】
2020115339.tif 000005
【図４】
2020115339.tif 000006
【図５】
2020115339.tif 000007
【図６】
2020115339.tif 000008
【図７】
2020115339.tif 000009
【図８】
2020115339.tif 000010
【図９】
2020115339.tif 000011
【図１０】
2020115339.tif 000012
【図１１】
2020115339.tif 000013
【図１２】
2020115339.tif 000014
【図１３】
2020115339.tif 000015
【図１４ａ】
2020115339.tif 000016
【図１４ｂ】
2020115339.tif 000017
【図１５ａ】
2020115339.tif 000018
【図１５ｂ】
2020115339.tif 000019
【図１６】
2020115339.tif 000020
【図１７】
2020115339.tif 000021
【図１８】
2020115339.tif 000022
【図１９】
2020115339.tif 000023
【図２０】
2020115339.tif 000024
【図２１】
2020115339.tif 000025
【図２２】
2020115339.tif 000026
【図２３】
2020115339.tif 000027
【図２４】
2020115339.tif 000028
【図２５】
2020115339.tif 000029
【図２６】
2020115339.tif 000030
【図２７】
2020115339.tif 000031
【図２８】
2020115339.tif 000032
【図２９】
2020115339.tif 000033
【図３０】
2020115339.tif 000034
【図３１】
2020115339.tif 000035
【図３２】
2020115339.tif 000036
【図３３】
2020115339.tif 000037
【図３４】
2020115339.tif 000038
【図３５】
2020115339.tif 000039
【外国語明細書】
2020115339.tif 000040
2020115339.tif 000041
2020115339.tif 000042
2020115339.tif 000043
2020115339.tif 000044
2020115339.tif 000045
2020115339.tif 000046
2020115339.tif 000047
2020115339.tif 000048
2020115339.tif 000049
2020115339.tif 000050
2020115339.tif 000051
2020115339.tif 000052
2020115339.tif 000053
2020115339.tif 000054
2020115339.tif 000055
2020115339.tif 000056
2020115339.tif 000057
2020115339.tif 000058
2020115339.tif 000059
2020115339.tif 000060
2020115339.tif 000061
2020115339.tif 000062
2020115339.tif 000063
2020115339.tif 000064
2020115339.tif 000065
2020115339.tif 000066
2020115339.tif 000067
2020115339.tif 000068
2020115339.tif 000069
2020115339.tif 000070
2020115339.tif 000071
2020115339.tif 000072
2020115339.tif 000073
2020115339.tif 000074
2020115339.tif 000075
2020115339.tif 000076
2020115339.tif 000077
2020115339.tif 000078
2020115339.tif 000079
2020115339.tif 000080
2020115339.tif 000081
2020115339.tif 000082
2020115339.tif 000083
2020115339.tif 000084
2020115339.tif 000085
2020115339.tif 000086
2020115339.tif 000087
2020115339.tif 000088
2020115339.tif 000089
2020115339.tif 000090
2020115339.tif 000091
2020115339.tif 000092
【図１】
2020115339.tif 000093
【図２】
2020115339.tif 000094
【図３】
2020115339.tif 000095
【図４】
2020115339.tif 000096
【図５】
2020115339.tif 000097
【図６】
2020115339.tif 000098
【図７】
2020115339.tif 000099
【図８】
2020115339.tif 000100
【図９】
2020115339.tif 000101
【図１０】
2020115339.tif 000102
【図１１】
2020115339.tif 000103
【図１２】
2020115339.tif 000104
【図１３】
2020115339.tif 000105
【図１４】
2020115339.tif 000106
【図１５】
2020115339.tif 000107
【図１６】
2020115339.tif 000108
【図１７】
2020115339.tif 000109
【図１８】
2020115339.tif 000110
【図１９】
2020115339.tif 000111
【図２０】
2020115339.tif 000112
【図２１】
2020115339.tif 000113
【図２２】
2020115339.tif 000114
【図２３】
2020115339.tif 000115
【図２４】
2020115339.tif 000116
【図２５】
2020115339.tif 000117
【図２６】
2020115339.tif 000118
【図２７】
2020115339.tif 000119
【図２８】
2020115339.tif 000120
【図２９】
2020115339.tif 000121
【図３０】
2020115339.tif 000122
【図３１】
2020115339.tif 000123
【図３２】
2020115339.tif 000124
【図３３】
2020115339.tif 000125
【図３４】
2020115339.tif 000126
【図３５】
2020115339.tif 000127