(57)【要約】【課題】３次元モデル化オブジェクトを設計するためのコンピュータ実施方法を提供する。【解決手段】方法は、モデル化オブジェクトの境界表現を提供するステップ（Ｓ１０）と、面分が互いのコピーである１組の面分のサブセットを決定するステップ（Ｓ２０）と、幾何学パターンを形成する、サブセット内の面分の第１のグループを形成するステップ（Ｓ３０）と、面分の第１のグループに面分の少なくとも１つの第２のグループを関連付けるステップ（Ｓ４０）であって、第２のグループの各面分は、第１のグループのそれぞれの面分に隣接し、第２のグループの面分の各ペアは、ペアの面分が隣接する第１のグループのそれぞれの面分を一方から他方に変換する剛体運動を介して整合する、ステップとを含む。  そのような方法は、３Ｄモデル化オブジェクトの設計を改善する。【選択図】図１
2014130602.tif 000002
【特許請求の範囲】
【請求項１】
３次元モデル化オブジェクトを設計するためのコンピュータ実施方法であって、
前記モデル化オブジェクトの境界表現を提供するステップ（Ｓ１０）であって、前記境界表現は、各々がそれぞれのサポート面の有界な部分として定義された１組の面分を含む、ステップと、
前記面分が互いのコピーである前記境界表現の前記１組の面分のサブセットを決定するステップ（Ｓ２０）と、
幾何学パターンを形成する、前記サブセット内の面分の第１のグループを形成するステップ（Ｓ３０）と、
面分の前記第１のグループに面分の少なくとも１つの第２のグループを関連付けるステップ（Ｓ４０）であって、前記第２のグループの各面分は、前記第１のグループのそれぞれの面分に隣接し、前記第２のグループの面分の各ペアは、前記ペアの前記面分が隣接する前記第１のグループの前記それぞれの面分を一方から他方に変換する剛体運動を介して整合する、ステップと
を含むことを特徴とする方法。
【請求項２】
前記関連付けるステップ（Ｓ４０）について、面分のペアは、少なくとも前記ペアの前記面分が前記第１のグループの前記それぞれの面分に隣接する領域において、剛体運動が、前記ペアの前記面分に対するそれぞれの前記サポート面も一方から他方に変換する場合、前記ペアの前記面分が隣接する前記第１のグループのそれぞれの面分を一方から他方に変換する剛体運動を介して整合するかを評価されることを特徴とする請求項１に記載の方法。
【請求項３】
前記第２のグループの面分の数は、前記第１のグループの面分の数から所定の閾値を減算したものよりも大きいことを特徴とする請求項１または２に記載の方法。
【請求項４】
面分の前記第１のグループに面分のブロックの少なくとも１つのグループを関連付けるステップをさらに含み、各ブロックは、前記第２のグループのそれぞれの面分に隣接する１組の接続された面分であり、ブロックの各ペアは、剛体運動を介して整合することを特徴とする請求項１〜３のいずれかに記載の方法。
【請求項５】
前記方法は反復され、ある反復において前記第１のグループに含まれた、または前記第１のグループに関連付けられた前記面分は、次回以降の反復のために廃棄されることを特徴とする請求項１〜４のいずれかに記載の方法。
【請求項６】
前記サブセット内の面分の前記第１のグループを形成するステップ（Ｓ３０）は、所定の１組の幾何学パターンのうちの１つの出現が前記サブセット内に存在するかどうかをテストするステップを含むことを特徴とする請求項１〜５のいずれかに記載の方法。
【請求項７】
前記所定の１組の幾何学パターンは、１組の反復的に定義されるパターンを含むことを特徴とする請求項６に記載の方法。
【請求項８】
前記１組の反復的に定義されるパターンは、直線パターンおよび／もしくは円パターンを含む１次元パターン、ならびに／または長方形グリッドパターンおよび／もしくは円グリッドパターンを含むグリッドパターンを含むことを特徴とする請求項７に記載の方法。
【請求項９】
前記テストするステップは、優先順位に従って、前記所定の１組の幾何学パターンをブラウズするステップを含むことを特徴とする請求項８に記載の方法。
【請求項１０】
前記所定の１組の幾何学パターンは、円グリッドパターン、長方形グリッドパターン、円パターン、その次に直線パターンを含むことを特徴とする請求項６〜８のいずれかに記載の方法。
【請求項１１】
前記テストするステップは、最高順位から最低順位に向かって、前記円グリッドパターン、前記長方形グリッドパターン、前記円パターン、その次に前記直線パターンの順に順序付ける優先順位に従って、前記所定の１組の幾何学パターンをブラウズするステップを含むことを特徴とする請求項１０に記載の方法。
【請求項１２】
請求項１乃至１１のいずれかに記載の方法を実行するための命令を含むことを特徴とするコンピュータプログラム。
【請求項１３】
請求項１２に記載のコンピュータプログラムを記録していることを特徴とするデータ記憶媒体。
【請求項１４】
メモリに結合されたプロセッサと、グラフィカルユーザインタフェースとを備え、前記メモリは、請求項１２に記載のコンピュータプログラムを記録していることを特徴とするＣＡＤシステム
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、コンピュータプログラムおよびシステムの分野に関し、より詳細には、３次元（３Ｄ）モデル化オブジェクトを設計するための方法、システム、およびプログラムに関する。
【背景技術】
【０００２】
オブジェクトの設計、エンジニアリング、および製造のための数々のシステムおよびプログラムが、市場で提供されている。ＣＡＤは、コンピュータ支援設計（Ｃｏｍｐｕｔｅｒ−Ａｉｄｅｄ  Ｄｅｓｉｇｎ）の頭字語であり、例えば、オブジェクトを設計するためのソフトウェアソリューションに関する。ＣＡＥは、コンピュータ支援エンジニアリング（Ｃｏｍｐｕｔｅｒ−Ａｉｄｅｄ  Ｅｎｇｉｎｅｅｒｉｎｇ）の頭字語であり、例えば、将来の製品の物理的挙動をシミュレートするためのソフトウェアソリューションに関する。ＣＡＭは、コンピュータ支援製造（Ｃｏｍｐｕｔｅｒ−Ａｉｄｅｄ  Ｍａｎｕｆａｃｔｕｒｉｎｇ）の頭字語であり、例えば、製造プロセスおよび操作を定義するためのソフトウェアソリューションに関する。そのようなシステムでは、技法の効率性に関して、グラフィカルユーザインタフェース（ＧＵＩ）が重要な役割を演じる。これらの技法は、製品ライフサイクル管理（ＰＬＭ：Ｐｒｏｄｕｃｔ  Ｌｉｆｅｃｙｃｌｅ  Ｍａｎａｇｅｍｅｎｔ）システム内に組み込むことができる。ＰＬＭとは、製品の開発のために、構想から耐用期限が尽きるまで、拡大された事業の構想の全般にわたって、製品データを共有し、共通プロセスを適用し、企業知識を活用する際に企業の助けとなるビジネス戦略のことである。
【０００３】
（ＣＡＴＩＡ、ＥＮＯＶＩＡ、およびＤＥＬＭＩＡという商標の下で）Ｄａｓｓａｕｌｔ  Ｓｙｓｔｅｍｅｓによって提供されたＰＬＭソリューションは、製品エンジニアリング知識を編成するエンジニアリングハブ（Ｅｎｇｉｎｅｅｒｉｎｇ  Ｈｕｂ）、製造エンジニアリング知識を管理するマニュファクチャリングハブ（Ｍａｎｕｆａｃｔｕｒｉｎｇ  Ｈｕｂ）、ならびに、事業統合、およびエンジニアリングハブおよびマニュファクチャリングハブ両方との接続を可能にするエンタープライズハブ（Ｅｎｔｅｒｐｒｉｓｅ  Ｈｕｂ）を提供する。すべてが一緒になって、システムは、最適化された製品定義、製造準備、生産、およびサービスを推進する、動的な知識ベースの製品創造および決定支援を可能にするための、製品、プロセス、リソースを結び付けるオープンオブジェクトモデルを提供する。
【０００４】
現在、多くのＣＡＤシステムは、ユーザが、３Ｄモデル化オブジェクトを、ユーザに提供されたモデル化オブジェクトの境界表現（ｂｏｕｎｄａｒｙ  ｒｅｐｒｅｓｅｎｔａｔｉｏｎ）（Ｂ−Ｒｅｐ）に基づいて設計することを可能にする。Ｂ−Ｒｅｐは、各々がそれぞれのサポート面（ｓｕｐｐｏｒｔｉｎｇ  ｓｕｒｆａｃｅ）の有界な部分として定義される１組の面分（ｆａｃｅ）を含む、データ形式である。ユーザは、既存の面分を変更すること、新しい面分を生成すること、いくつかの面分を削除すること、ならびに／または面分に対する制約および／もしくは面分の間の制約を定義すること、あるいは使用するＣＡＤシステムによって提供された任意のアクションなどによって、１組の面分に働きかけることができる。そのような場合、効率性のため、立体（ｓｏｌｉｄ）の履歴は、一般にユーザから利用可能ではない。
【０００５】
開発下にあるそのような３Ｄ設計の一側面は、「パターン認識」として知られている。「パターン」という用語は、同じ幾何学的特徴の規則的なレイアウトのコピーを指している。パターンの認識は、設計中にそのようなパターンを単一の要素として処理することを可能にし、それによって、一連の設計の可能性を広げる。例えば、パターンの要素を１つずつ変更する代わりに、パターンの事前認識のおかげで、ユーザは、パターンの変更を、例えば単一のアクションで、全体的に実行することができる。パターン認識は、機械設計、消費財、建造物建築、航空宇宙、または他の領域など、ＣＡＤの様々な領域にも関連する。
【０００６】
パターン認識は、特徴認識に関連することができる。特徴認識は、所与の３Ｄオブジェクト（通常は機械部品を表す立体）における特徴的な形状を認識するのに有益である。機械設計において関心のある特徴的な形状は、例えば、ホール（ｈｏｌｅ）、押出パッド（ｅｘｔｒｕｄｅｄ  ｐａｄ）、押出ポケット（ｅｘｔｒｕｄｅｄ  ｐｏｃｋｅｔ）、フィレット（ｆｉｌｌｅｔ）もしくはラウンド（ｒｏｕｎｄ）、外旋パッド（ｒｅｖｏｌｕｔｅ  ｐａｄ）、および／または外旋ポケット（ｒｅｖｏｌｕｔｅ  ｐｏｃｋｅｔ）を含む。特徴的な形状の認識は、例えば、押出もしくは外旋形状の輪郭、外旋形状の回転軸、ラウンドおよびフィレットの半径値、押出方向、ならびに／または押出深さなど、その仕様を、より良い意味レベルで識別することにつながる。この情報は、例えば押出の輪郭を編集することによって、形状を変更するために、または例えば機械加工プロセスなど、下流のプロセスを供給するために使用される。
【０００７】
特徴認識機能は、以下の手順を通して、商用ＣＡＤシステムにおいて利用可能である。ユーザは、認識する特徴のタイプを選択することができる。その後、任意選択で、ユーザは、探索を初期化するために、立体上の特徴の１つまたは複数の面分を選択する。システムは、認識を実行し、認識された特徴の仕様を生成する。
【０００８】
入力された立体の形状を局所的に変更することが意図される場合、「直接編集」機能も利用可能である。「履歴なしモデリング（ｈｉｓｔｏｒｙ  ｆｒｅｅ  ｍｏｄｅｌｉｎｇ）」とも呼ばれるこの技術は、履歴設計の代替として、ＣＡＤエディタによって促進される。目標は、Ｂ−Ｒｅｐだけを使用して、立体の形状を容易に変更することである。ユーザの観点から見て編集を簡潔にするために、「直接編集」技術は、立体の局所形状を認識しなければならない。例えば、システムは、ホールの円筒形状を維持すること（および円筒を自由形式面（ｆｒｅｅ  ｆｏｒｍ  ｓｕｒｆａｃｅ）に変更しないこと）、ポケットの壁の垂直方向を維持すること、ならびに／または形状の外旋性もしくは押出性を維持することを行わなければならない。結果として、「直接編集」分野であっても、特徴認識は不可避である。
【０００９】
従来の特徴認識は、一度に１つの特徴を扱う。それは、所与の特徴の複数のコピーを識別せず、これらのコピーのレイアウトを識別しない。パターン認識に関して、この主題は、未だ開発下にあるが、既存の解決策には、多くのユーザ介入が必要であると思われる。
【００１０】
したがって、既存の解決策は、特にユーザ利用の観点および網羅性の観点から見て、効率性を欠いている。これに関連して、３Ｄモデル化オブジェクトを設計するための改善された解決策が未だ必要とされている。
【発明の概要】
【００１１】
したがって、一態様によれば、３Ｄモデル化オブジェクトを設計するためのコンピュータ実施方法が提供される。方法は、モデル化オブジェクトの境界表現を提供するステップを含む。境界表現は、各々がそれぞれのサポート面の有界な部分として定義された１組の面分を含む。方法は、面分が互いのコピーである境界表現の１組の面分のサブセットを決定するステップも含む。方法は、幾何学パターンを形成する、サブセット内の面分の第１のグループを形成するステップも含む。方法は、面分の第１のグループに面分の少なくとも１つの第２のグループを関連付けるステップを含む。第２のグループの面分は、第２のグループの各面分が、第１のグループのそれぞれの面分に隣接する。また、第２のグループの面分は、第２のグループの面分の各ペアが、ペアの面分が隣接する第１のグループのそれぞれの面分を一方から他方に変換する剛体運動を介して整合する。
【００１２】
方法は、以下のうちの１つまたは複数を含むことができる：
−  関連付けるステップについて、面分のペアは、少なくともペアの面分が第１のグループのそれぞれの面分に隣接する領域において、剛体運動が、ペアの面分それぞれのサポート面も一方から他方に変換する場合、ペアの面分が隣接する第１のグループのそれぞれの面分を一方から他方に変換する剛体運動を介して整合するかを評価され、
−  第２のグループの面分の数は、第１のグループの面分の数から所定の閾値を減算したものよりも大きく、
−  方法は、面分の第１のグループに面分のブロックの少なくとも１つのグループを関連付けるステップをさらに含み、各ブロックは、第２のグループのそれぞれの面分に隣接する１組の接続された面分であり、ブロックの各ペアは、剛体運動を介して整合し、
−  方法は、反復され、ある反復において第１のグループに含まれた、または第１のグループに関連付けられた面分は、次回以降の反復のために廃棄され、
−  サブセット内の面分の第１のグループを形成するステップは、所定の１組の幾何学パターンのうちの１つの出現がサブセット内に存在するかどうかをテストするステップを含み、
−  所定の１組の幾何学パターンは、１組の反復的に定義されるパターンを含み、
−  １組の反復的に定義されるパターンは、直線パターンおよび／もしくは円パターンを含む１次元パターン、ならびに／または長方形グリッドパターンおよび／もしくは円グリッドパターンを含むグリッドパターンを含み、
−  テストするステップは、優先順位に従って、所定の１組の幾何学パターンをブラウズするステップを含み、
−  所定の１組の幾何学パターンは、円グリッドパターン、長方形グリッドパターン、円パターン、その次に直線パターンを含み、ならびに／または
−  テストするステップは、最高順位から最低順位に向かって、円グリッドパターン、長方形グリッドパターン、円パターン、その次に直線パターンの順に順序付ける優先順位に従って、所定の１組の幾何学パターンをブラウズするステップを含む。
【００１３】
上述の方法を実行するための命令を含むコンピュータプログラムがさらに提案される。コンピュータプログラムは、コンピュータ可読記憶媒体に記録されるように適合される。
【００１４】
上述のコンピュータプログラムを記録しているコンピュータ可読記憶媒体がさらに提案される。
【００１５】
メモリに結合されたプロセッサと、グラフィカルユーザインタフェースとを備えるＣＡＤシステムがさらに提案され、メモリは、上述のコンピュータプログラムを記録している。
【図面の簡単な説明】
【００１６】
次に、本発明の実施形態を、非限定的な例によって、添付の図面を参照しながら説明する。
【図１】方法の一例のフローチャートである。
【図２】グラフィカルユーザインタフェースの一例を示す図である。
【図３】クライアントコンピュータシステムの一例を示す図である。
【図４】方法の例を示す図である。
【図５】方法の例を示す図である。
【図６】方法の例を示す図である。
【図７】方法の例を示す図である。
【図８】方法の例を示す図である。
【図９】方法の例を示す図である。
【図１０】方法の例を示す図である。
【図１１】方法の例を示す図である。
【図１２】方法の例を示す図である。
【図１３】方法の例を示す図である。
【図１４】方法の例を示す図である。
【図１５】方法の例を示す図である。
【図１６】方法の例を示す図である。
【図１７】方法の例を示す図である。
【図１８】方法の例を示す図である。
【図１９】方法の例を示す図である。
【図２０】方法の例を示す図である。
【図２１】方法の例を示す図である。
【図２２】方法の例を示す図である。
【図２３】方法の例を示す図である。
【図２４】方法の例を示す図である。
【図２５】方法の例を示す図である。
【図２６】方法の例を示す図である。
【図２７】方法の例を示す図である。
【図２８】方法の例を示す図である。
【図２９】方法の例を示す図である。
【図３０】方法の例を示す図である。
【図３１】方法の例を示す図である。
【図３２】方法の例を示す図である。
【図３３】方法の例を示す図である。
【図３４】方法の例を示す図である。
【図３５】方法の例を示す図である。
【図３６】方法の例を示す図である。
【図３７】方法の例を示す図である。
【図３８】方法の例を示す図である。
【図３９】方法の例を示す図である。
【図４０】方法の例を示す図である。
【図４１】方法の例を示す図である。
【図４２】方法の例を示す図である。
【図４３】方法の例を示す図である。
【図４４】方法の例を示す図である。
【図４５】方法の例を示す図である。
【図４６】方法の例を示す図である。
【図４７】方法の例を示す図である。
【図４８】方法の例を示す図である。
【図４９】方法の例を示す図である。
【図５０】方法の例を示す図である。
【図５１】方法の例を示す図である。
【図５２】方法の例を示す図である。
【図５３】方法の例を示す図である。
【図５４】方法の例を示す図である。
【図５５】方法の例を示す図である。
【図５６】方法の例を示す図である。
【図５７】方法の例を示す図である。
【図５８】方法の例を示す図である。
【図５９】方法の例を示す図である。
【図６０】方法の例を示す図である。
【図６１】方法の例を示す図である。
【発明を実施するための形態】
【００１７】
図１は、３Ｄモデル化オブジェクトを設計するためのコンピュータ実施方法のフローチャートを示している。方法は、モデル化オブジェクトの境界表現を提供するステップＳ１０を含む。境界表現は、１組の面分を含む。各面分は、それぞれのサポート面の有界な部分として定義される。方法は、面分が互いのコピーである境界表現の１組の面分のサブセットを決定するステップＳ２０も含む。方法は、幾何学パターンを形成する、サブセット内の面分の第１のグループを形成するステップＳ３０も含む。方法は、面分の第１のグループに面分の少なくとも１つの第２のグループを関連付けるステップＳ４０を含む。第２のグループの面分は、第２のグループの各面分が、第１のグループのそれぞれの面分に隣接する。第２のグループの面分は、第２のグループの面分の各ペアが、ペアの面分が隣接する第１のグループのそれぞれの面分を一方から他方に変換する剛体運動を介して整合する。
【００１８】
そのような方法は、３Ｄモデル化オブジェクトを設計するための改善された解決策を構成する。幾何学パターンを形成する面分の第１のグループを形成するステップＳ３０によって、方法は、幾何学パターンを識別し、それによって、パターンベースの設計機能をユーザに開放する。方法の特定の方法で面分の第１のグループに面分の少なくとも１つの第２のグループを関連付けるステップＳ４０によって、方法は、識別されたパターンの適切な拡張が、意図されたパターンをより一層把握し、設計をより一層容易にすることを可能にする。方法は、面分レベルで機能し、面分が互いのコピーであること、および面分のペアが所与の剛体運動を介して整合することなど、面分に関連する特性の識別を含むので、方法は、容易に実施することができ、したがって、自動化することができ、それによって、網羅的で迅速な方法で有意味なパターンを識別することができる。これは、以下の説明においてすべて詳述される。
【００１９】
モデル化オブジェクトは、コンピュータシステムのメモリ内に記憶されたデータによって定義される、任意のオブジェクトである。拡大解釈される場合、「モデル化オブジェクト」という表現は、データ自体も指す。「３Ｄモデル化オブジェクトを設計する」とは、３Ｄモデル化オブジェクトを精巧に作り上げるプロセスの少なくとも一部である、任意のアクションまたは一連のアクションのことを指す。したがって、方法は、３Ｄモデル化オブジェクトをゼロから作成するステップを含むことができる。あるいは、方法は、先に生成された３Ｄモデル化オブジェクトを提供するステップと、その後、その３Ｄモデル化オブジェクトを変更するステップとを含むことができる。
【００２０】
３Ｄモデル化オブジェクトは、ＣＡＤモデル化オブジェクト、またはＣＡＤモデル化オブジェクトの一部とすることができる。いずれの場合も、方法によって設計される３Ｄモデル化オブジェクトは、例えば、ＣＡＤモデル化オブジェクトによって占有される３Ｄ空間など、ＣＡＤモデル化オブジェクトまたは少なくともそれの一部を表すことができる。ＣＡＤモデル化オブジェクトは、ＣＡＤシステムのメモリ内に記憶されたデータによって定義される、任意のオブジェクトである。システムのタイプによって、モデル化オブジェクトは、異なる種類のデータによって定義することができる。ＣＡＤシステムは、ＣＡＴＩＡなど、モデル化オブジェクトのグラフィカル表現に基づいて少なくともモデル化オブジェクトを設計するのに適した任意のシステムである。したがって、ＣＡＤモデル化オブジェクトを定義するデータは、モデル化オブジェクトの表現を可能にするデータ（例えば、空間内の相対位置を含む幾何学データ）を含む。
【００２１】
方法は、製造プロセスに含めることができ、製造プロセスは、方法を実行した後、例えば、方法によって認識された幾何学パターンに従って、モデル化オブジェクトに対応する物理的製品を生産することを含むことができる（そのような場合、製造プロセスには、幾何学パターンについての情報が供給される）。いずれの場合も、方法によって設計されたモデル化オブジェクトは、製造オブジェクトを表すことができる。したがって、モデル化オブジェクトは、モデル化立体（すなわち、立体を表すモデル化オブジェクト）とすることができる。製造オブジェクトは、部品または部品の組立品などの、製品とすることができる。方法は、モデル化オブジェクトの設計を改善するので、製品の製造も改善し、したがって、製造プロセスの生産性を向上させる。方法は、ＤＥＬＭＩＡなどの、ＣＡＭシステムを使用して実施することができる。ＣＡＭシステムは、少なくとも製造プロセスおよび操作の定義、シミュレーション、および制御を行うのに適した、任意のシステムである。
【００２２】
方法は、コンピュータで実施される。これは、方法が、少なくとも１つのコンピュータ、または任意の同様のシステム上で実行されることを意味する。例えば、方法は、ＣＡＤシステム上で実施することができる。したがって、方法のステップ（例えば、ユーザによってトリガされるステップ、および／もしくはユーザ対話を伴うステップ）は、おそらくは完全に自動的に、または半自動的にコンピュータによって実行される。特に、提供ステップＳ１０および／または決定ステップＳ２０は、ユーザがトリガすることができる。形成ステップＳ３０および／または関連付けステップＳ４０は、自動的に（すなわち、いかなるユーザ介入もなしに）、または半自動的に（すなわち、例えば、結果を確認するための、もしくはユーザが決定した要素をグループに追加／から削除するための、例えば、僅かなユーザ介入を伴って）、実行することができる。
【００２３】
方法のコンピュータ実施の典型的な例は、この目的に適したシステムを用いて方法を実行することである。システムは、方法を実行するための命令を記録したメモリを備えることができる。言い換えると、ソフトウェアは、直ちに使用できるように、メモリ上にすでに準備されている。したがって、システムは、他のいかなるソフトウェアもインストールすることなしに、方法を実行するのに適している。そのようなシステムは、メモリに結合された、命令を実行するための少なくとも１つのプロセッサも備えることができる。言い換えると、システムは、プロセッサに結合されたメモリ上に符号化された命令であって、方法を実行するための手段を提供する命令を含む。そのようなシステムは、３Ｄモデル化オブジェクトを設計するための効率的なツールである。
【００２４】
そのようなシステムは、ＣＡＤシステムとすることができる。システムは、ＣＡＥおよび／またはＣＡＭシステムとすることもでき、ＣＡＤモデル化オブジェクトは、ＣＡＥモデル化オブジェクトおよび／またはＣＡＭモデル化オブジェクトとすることもできる。実際、モデル化オブジェクトは、これらのシステムの任意の組合せに対応するデータによって定義できるので、ＣＡＤ、ＣＡＥ、およびＣＡＭシステムは、一方が他方にとって排他的とはならない。
【００２５】
システムは、例えばユーザによって命令の実行を開始するための、少なくとも１つのＧＵＩを備えることができる。特に、ＧＵＩは、ユーザが、提供ステップＳ１０をトリガし、その後、ユーザがそうすることを決定した場合、例えば、（例えば「パターン認識」と称される）特定の機能を起動することによって、決定ステップＳ２０をトリガすることを可能にすることができる。その後、形成ステップＳ３０と、それに続いて、関連付けステップＳ４０を、自動的または半自動的に実行することができる。
【００２６】
３Ｄモデル化オブジェクトは、３Ｄ（すなわち３次元）である。これは、モデル化オブジェクトが３Ｄ表現を可能にするデータによって定義されることを意味する。特に、Ｂ−Ｒｅｐの面分は、３Ｄであり、サポート面は、３Ｄ表面である（すなわち、それらは、すべてのサポート面の結合体が非平面となるように、３Ｄにおいて定義される）。３Ｄ表現は、すべての角度から表現物を見ることを可能にする。例えば、モデル化オブジェクトは、３Ｄ表現された場合、その軸のいずれかの周りで、または表現が表示された画面内の任意の軸の周りで処理し、回転させることができる。これは、特に、３Ｄモデル化されていない２Ｄアイコンを、それらが２Ｄパースペクティブにおいて何かを表現する場合であっても、除外する。３Ｄ表現の表示は、設計を容易にする（すなわち、設計者が統計的に仕事を成し遂げるスピードを速める）。製品の設計は製造プロセスの一部であるので、これは、製造業における製造プロセスをスピードアップする。図のいくつかの例が２Ｄで表現されていても、方法の３Ｄ特徴に関する説明が成り立つことに留意されたい。これらの例は方法を理解するためのものであることが理解されなければならない。
【００２７】
図２は、典型的なＣＡＤシステムのＧＵＩの一例を示している。
【００２８】
ＧＵＩ２１００は、標準的なメニューバー２１１０、２１２０、ならびに下部および側部ツールバー２１４０、２１５０を有する、典型的なＣＡＤタイプのインタフェースとすることができる。そのようなメニューおよびツールバーは、１組のユーザ選択可能なアイコンを含み、各アイコンは、当技術分野で知られるように、１つまたは複数の操作または機能に関連付けられる。これらのアイコンのいくつかは、ＧＵＩ２１００内に表示された３Ｄモデル化オブジェクト２０００に対して編集および／または作業を行うように適合された、ソフトウェアツールに関連付けられる。ソフトウェアツールは、ワークベンチにグループ化することができる。各ワークベンチは、ソフトウェアツールのサブセットを含む。特に、ワークベンチの１つは、モデル化製品２０００の幾何学的特徴を編集するのに適した、編集ワークベンチである。操作中、設計者は、例えば、オブジェクト２０００の一部を事前選択し、その後、適切なアイコンを選択することによって、操作（例えば、造形操作、もしくは寸法、色などを変更するような他の任意の操作）を開始すること、または幾何学的制約を編集することができる。例えば、典型的なＣＡＤ操作は、画面上に表示された３Ｄモデル化オブジェクトの穴開けまたは折り曲げのモデル化である。
【００２９】
ＧＵＩは、例えば、表示された製品２０００に関連するデータ２５００を表示することができる。図２の例では、「特徴ツリー」として表示されたデータ２５００と、それらの３Ｄ表現２０００は、ブレーキキャリパ（ｂｒａｋｅ  ｃａｌｉｐｅｒ）およびディスクを含むブレーキ組立体に関する。ＧＵＩは、例えば、オブジェクトの３Ｄ方向付けを容易にするための、編集された製品の動作のシミュレーションをトリガするための、または表示された製品２０００の様々な属性を表すための、様々なタイプのグラフィックツール２１３０、２０７０、２０８０をさらに示すことができる。カーソル２０６０は、触覚デバイスによってコントロールすることができ、ユーザがグラフィックツールと対話することを可能にする。
【００３０】
図３は、例えば、ユーザのワークステーションなど、クライアントコンピュータシステムとしてのシステムのアーキテクチャの一例を示している。
【００３１】
クライアントコンピュータは、内部通信バス１０００に接続された中央処理装置（ＣＰＵ）１０１０と、やはりバスに接続されたランダムアクセスメモリ（ＲＡＭ）１０７０とを備える。クライアントコンピュータには、バスに接続されたビデオランダムアクセスメモリ１１００に関連付けられた、グラフィックス処理ユニット（ＧＰＵ）１１１０がさらに設けられる。ビデオＲＡＭ１１００は、当技術分野において、フレームバッファとしても知られている。大容量記憶デバイスコントローラ１０２０は、ハードドライブ１０３０などの大容量メモリデバイスへのアクセスを管理する。コンピュータプログラム命令およびデータを有形に具体化するのに適した大容量メモリデバイスは、例を挙げると、ＥＰＲＯＭ、ＥＥＰＲＯＭ、およびフラッシュメモリデバイスなどの半導体メモリデバイス、内蔵ハードディスクおよび着脱可能ディスクなどの磁気ディスク、光磁気ディスク、ならびにＣＤ−ＲＯＭディスク１０４０を始めとする、すべての形態の不揮発性メモリを含む。上記のいずれも、特別に設計されたＡＳＩＣ（特定用途向け集積回路）によって補うこと、またはその中に組み込むことができる。ネットワークアダプタ１０５０は、ネットワーク１０６０へのアクセスを管理する。クライアントコンピュータは、カーソル制御デバイスまたはキーボードなどの、触覚デバイス１０９０も含むことができる。カーソル制御デバイスは、図２を参照して言及されたように、画面１０８０上の任意の所望の位置にユーザがカーソルを選択的に配置することを可能にするために、クライアントコンピュータにおいて使用される。画面によって、コンピュータモニタなど、その上で表示が実行され得る任意のサポートが意味される。加えて、カーソル制御デバイスは、ユーザが、様々なコマンドを選択し、制御信号を入力することを可能にする。カーソル制御デバイスは、制御信号をシステムに入力するための、数々の信号発生デバイスを含む。典型的には、カーソル制御デバイスは、マウスとすることができ、信号を発生させるために、マウスのボタンが使用される。
【００３２】
システムに方法を実行させるため、コンピュータによって実行するための命令を含むコンピュータプログラムが提供され、命令は、この目的のための手段を含む。プログラムは、例えば、デジタル電子回路で、もしくはコンピュータハードウェア、ファームウェア、ソフトウェアで、またはそれらの組合せで実施することができる。本発明の装置は、プログラム可能プロセッサによって実行するための、機械可読記憶デバイスに有形に具体化されるコンピュータプログラム製品で実施することができ、本発明の方法ステップは、入力データの操作および出力の生成によって本発明の機能を実行するために、命令からなるプログラムを実行するプログラム可能プロセッサによって実行することができる。命令は、データ記憶システムからデータおよび命令を受け取り、データ記憶システムにデータおよび命令を送るように結合された、少なくとも１つのプログラム可能プロセッサと、少なくとも１つの入力デバイスと、少なくとも１つの出力デバイスとを含む、プログラム可能システムにおいて実行可能な、１つまたは複数のコンピュータプログラムで有利に実施することができる。アプリケーションプログラムは、高水準手続き型もしくはオブジェクト指向プログラミング言語で、または望ましければアセンブリ言語もしくは機械語で実施することができ、いずれの場合も、言語は、コンパイル言語またはインタプリタ言語とすることができる。プログラムは、完全インストールプログラムまたは更新プログラムとすることができる。後者の場合、プログラムは、方法を実行するのに適したシステムになった状態に、既存のＣＡＤシステムを更新する。
【００３３】
提供ステップＳ１０が、次に説明される。
【００３４】
方法は、モデル化オブジェクトのＢ−Ｒｅｐを提供するステップＳ１０を含む。提供ステップＳ１０は、モデル化オブジェクト（この場合、その境界表現）上で作業する設計者に起因し、または例えば既存のライブラリ内で検索された、すでに存在するＢ−Ｒｅｐに方法を適用できるということに起因することができる。いずれの場合も、モデル化オブジェクトは、Ｓ１０においてＢ−Ｒｅｐとして提供される。境界表現は、３Ｄオブジェクトをそのエンベロープ（すなわち、その外表面）の観点からモデル化するための、広く知られた形式である。したがって、Ｂ−Ｒｅｐは、幾何学データおよび位相データを含むことができる、特定の形式のデータを指す。幾何学データは、３Ｄ位置の観点から記述される実体である、幾何学的実体を提供するデータである。位相データは、幾何学的実体との関連性、および／または例えば相対的な位置決めなど、他の位相的実体との関係の観点から記述される実体である、位相的実体を提供するデータである。典型的には、関係は、位相的実体を他の位相的実体に関連付ける、「によって境界付けされる（ｉｓ  ｂｏｕｎｄｅｄ  ｂｙ）」関係を含むことができ、それによって、それらは、位相的に境界付けされる。
【００３５】
提供ステップＳ１０は、いずれの履歴データも排除することができる。言い換えると、Ｓ１０において提供されるモデル化オブジェクトは、履歴なしとすることができる。これは、モデル化オブジェクトが、その設計の履歴を示すいかなるデータにも関連付けられておらず、Ｂ−Ｒｅｐを含む宣言的データのみによっていることを意味する。したがって、方法は、設計者がモデル化オブジェクトの履歴を所有していない状況において機能し、このことは、モデル化オブジェクト上で設計される幾何学パターンが、Ｓ１０において提供されるモデル化オブジェクト上でそのようなものとして定義されないことを特に暗示する。
【００３６】
この方法の場合、（例えば幾何学）データは、少なくとも、いわゆる「サポート面」、例えば、パラメトリック曲面（ｐａｒａｍｅｔｒｉｃ  ｓｕｒｆａｃｅ）（すなわち、２Ｄ領域を定義するパラメータに関連付けられた３Ｄ位置の観点からモデル化された３Ｄ表面）を含む。サポート面は、典型的には、ナーブス曲面（Ｎｕｒｂｓ  ｓｕｒｆａｃｅ）とすることができるが、平面、標準曲面（ｃａｎｏｎｉｃａｌ  ｓｕｒｆａｃｅ）、または手続き型曲面（ｐｒｏｃｅｄｕｒａｌ  ｓｕｒｆａｃｅ）とすることもできる。（例えば位相）データは、少なくとも１組の面分を含み、各面分は、（幾何学データで提供される）それぞれのサポート面の有界な部分として定義される。したがって、面分は、切り取られた面に対応する。したがって、サポート面は、何らかの切り取り操作によって面分がその上に定められる（それによって面分を「サポート」する）面である。
【００３７】
Ｂ−Ｒｅｐの概念は、広く知られているが、Ｓ１０において提供され得るモデル化オブジェクトの一例を通して、次にさらに説明される。しかし、例えば、少なくともいくつかの位相的実体に対して、「によって境界付けされる」関係とは異なる関係を用いる、Ｂ−Ｒｅｐの他の例も、方法によって企図され得る。
【００３８】
すでに言及したように、モデル化オブジェクトのＢ−Ｒｅｐは、位相的実体および幾何学的実体を含むことができる。幾何学的実体は、面（ｓｕｒｆａｃｅ）（例えば平面（ｐｌａｎｅ））、曲線（ｃｕｒｖｅ）（例えば線（ｌｉｎｅ））、および／または点（ｐｏｉｎｔ）である、３Ｄオブジェクトを含むことができる。面は、２つのパラメータの関数として提供することができる。曲線は、単純に１つのパラメータの関数として提供することができる。点は、３Ｄ位置として提供することができる。位相的実体は、面分、稜線、および／または頂点を含むことができる。その定義によって、面分は、サポート面と呼ばれる、それぞれの面の有界な部分に対応する。したがって、「面分」という用語は、面のそのような有界な部分、または２Ｄ領域の対応する有界な部分を区別せずに指すことができる。同様に、稜線は、例えばサポート曲線（ｓｕｐｐｏｒｔｉｎｇ  ｃｕｒｖｅ）と呼ばれる、曲線の有界な部分に対応する。したがって、「稜線」という用語は、曲線またはその領域のそのような有界な部分を指すことができる。頂点は、３Ｄ空間内の点との結び付きとして定義することができる。これらの実体は、以下のように互いに関連する。曲線の有界な部分は、曲線上にある２つの点（頂点）によって定義される。面の有界な部分は、その境界によって定義され、この境界は、面上にある１組の稜線である。面分の境界の稜線は、共有する頂点によって一緒に接続される。面分は、共有する稜線によって一緒に接続される。定義によって、２つの面分は、それらが稜線を共有する場合、隣接する。同様に、２つの稜線は、それらが頂点を共有する場合、隣接する。面、曲線、および点は、それらのパラメータ化を介して、一緒に結び付けることができる。例えば、境界の頂点を定義するために、曲線を定義するパラメトリック関数のパラメータの値が提供され得る。同様に、境界の稜線を定義するために、曲線のパラメータを面の２つのパラメータに結び付ける関数が提供され得る。しかし、Ｂ−Ｒｅｐのそのような位相データの非常に詳細な構造は、本説明の範囲外にある。
【００３９】
図４および図５は、Ｓ１０において提供されるモデル化オブジェクトとすることができ、図において１、２、３の番号が付された３つの面分、すなわち、上部平面面分１と、２つの側面円筒面分２、３とから作成される、円筒スロット８０のＢ−ｒｅｐモデルを示している。図４は、スロット８０の斜視図を示している。図５は、すべての面分の分解図を示している。重複する番号は、共有の稜線および頂点を示している。面分１は、平面の有界な部分である。面分１の境界は、稜線４、５を含み、それらの各々は、頂点１０と頂点１１によって境界付けされる。それらはともに、同じサポート円を有する。面分２は、稜線６、８、５、１３によって境界付けされ、そのすべては、無限円筒曲面（すなわち、面分２のサポート面）上にある。面分１、２は、それらが稜線５を共有するので、隣接している。面分２、３は、それらが稜線８、１３を共有するので、隣接している。面分１、３は、それらが稜線４を共有するので、隣接している。
【００４０】
図６は、スロット８０のＢ−ｒｅｐモデルの「によって境界付けされる」位相関係を示している。高位レイヤ１０１のノードは、面分であり、中位レイヤ１０３のノードは、稜線であり、低位レイヤ１０５のノードは、頂点である。図７および図８は、位相的実体（面分、稜線、頂点）とサポート幾何学形状（無限円筒、無限平面、無限直線、点）の間の関係を示している。ＣＡＤシステムでは、Ｂ−ｒｅｐモデルは、「によって境界付けされる」関係と、位相的実体とサポート幾何学形状の間の関係と、サポート幾何学形状の数学的記述とを適切なデータ構造で収集する。言い換えると、図６および図７に示されるデータ構造は、この例の位相データの一部であり、それは、幾何学データの幾何学的実体との結び付き（これは図７である）、および位相的実体の間の結び付き（これは図６である）を含む。
【００４１】
方法の他のアクション（すなわち、ステップＳ２０〜Ｓ４０）が、次に説明される。
【００４２】
方法は、例えば、ユーザがトリガしたときに、面分が互いのコピーである境界表現の１組の面分のサブセットを決定するステップＳ２０を含む。結果として、面分のサブセットは、互いに一方が他方のコピーである、または言い換えると、互いに幾何学的に同一である、もしくは互いに一方が他方の幾何学的レプリカである、１組の面分である。サブセットは、当業者が望む任意の実装形態に従って、Ｓ２０において決定することができる。例えば、方法は、面分のペアの間で比較を実行するステップを含むことができ、面分は、任意の順序に従ってブラウズされる。そのような比較は、任意の方法で実行することができる。例が、後で提供される。また、ＣＡＤの分野から分かるように、数値計算を伴う任意の決定は、システムによって適用される必要な数値近似の影響を受ける。本ケースでは、面分は、それらが理論的には僅かに異なるとしても、Ｓ２０において、互いのコピーであると決定されることがある。したがって、方法は、実際には、Ｓ２０において、実質的に互いのコピーである面分のサブセットを決定することができる。しかし、近似が実施される方法は、本説明の主題ではないので、以下では、「実質的に互いのコピー」と「互いのコピー」とは区別されない。実際のところ、方法は、２つの面分が互いのコピーであるかどうかを判別するための所定の基準に従うとしか見なされない。
【００４３】
方法は、その後、幾何学パターンを形成する、サブセット内の面分の第１のグループを形成するステップＳ３０を含む。便宜的に「第１」と呼ばれる、面分の第１のグループは、Ｓ３０において形成されるときは、サブセットのうちの１組の面分であり、したがって、互いのコピーである１組の面分である。グループを「形成する」によって、グループの存在を示すために、データがモデル化オブジェクトに追加されることが意味される。例えば、グループ名が生成され、グループの面分とグループ名の間の結び付きが、モデル化オブジェクト（を定義するデータ）に追加される。要素を一緒に結び付けるこの方法は、決定ステップＳ２０のために実施することもできるが、形成ステップＳ３０の場合、グループの形成は、新しいデータが永続メモリ上に記憶されること、または少なくともユーザが幾何学パターン上で作業を行えるだけ十分に長く記憶されることを暗示し、一方、決定ステップＳ２０において生成されるサブセットを表す新しいデータについては、必ずしもそうであるとは限らず、この新しいデータは、主として形成ステップＳ３０を実行する目的で生成される。これらは、まさに当業者に知られた実装形態の内容である。
【００４４】
さらに、方法は、面分を選択して、それらが幾何学パターンを形成するように、第１のグループを形成する。「幾何学パターン」という表現は、第１のグループの面分が幾何学形状を構成し、その要素（すなわち、第１のグループの面分または面分の組）が、予測可能な方法で、すなわち、所定の規則に従って配置され、それによって、完全なランダム性を排除していることを意味する。幾何学パターンを形成する面分のグループを形成するステップＳ３０によって、方法は、モデル化オブジェクト内の幾何学パターンの認識を開始する。幾何学パターンの面分は、最初、互いのコピーであるように選択されるので、方法は、設計意図に従った意味を有する幾何学パターンを認識する。これは、より容易な設計を可能にする。まず第一に、これは、幾何学パターンを後でユーザに提示することを可能にする。したがって、ユーザは、設計者の意図を把握することができる。これは、先に言及したように、後で設計アクションを幾何学パターン上で全体的に（すなわち、自動的な統一された方法で）実行することも可能にする。例えば、ユーザは、幾何学パターン全体を単一の「ドラッグアンドドロップ」アクションを用いて変換することができる。または、ユーザは、パターンを選択し、その後、その要素の新しいサイズを一度だけ入力することによって、幾何学パターンのすべての要素のサイズを大きくすることができる。これらは、ほんの一例にすぎない。方法は、そのような後の設計アクションのいずれかまたはいくつかを含むことができる。方法は、幾何学パターンを含むいくつかの特定の設計をより僅かなユーザアクションで達成することを可能にするので、これは、概して、ＣＡＤの分野で有益である。これは、モデル化オブジェクトが製品を表す場合、機械設計の分野で特に有益であり、そのような場合、方法は、そのすべてのフェーズの時間最適化を必要とする全体的な工業プロセスに属する。方法は、認識された幾何学パターンを製造プロセスに供給するステップも含むことができる。
【００４５】
形成ステップＳ３０は、所定の１組の幾何学パターンのうちの１つの出現がサブセット内に存在するかどうかをテストするステップを含むことができる。言い換えると、方法は、例えば永続メモリ上に記憶された、おそらくは所定またはユーザ定義の、幾何学パターンの所定の１組のタイプに基づいており、形成ステップＳ３０の場合、方法は、Ｓ２０において決定されたサブセットが、所定の組に属する幾何学パターンを尊重／構成する面分を含むかどうかをテストする。そのような所定の組に対して作業を行うことは、企図される任意の分野の設計に従って、方法をできるだけ効率的にすることを可能にする。特に、所定の組は、変更可能とすることができる。所定の組は、２Ｄパターン（すなわち、平面レイアウト）および／または３Ｄパターン（すなわち、非平面分布）を含むことができる。
【００４６】
所定の１組の幾何学パターンは、１組の反復的に定義されるパターンを含むことができる。これらのパターンは、機械設計の分野でしばしば使用され、結果として、それらの認識は、特に有益である。反復的に定義されるパターンは、例えば面分、例えば１つまたは２つの初期面分など、１つまたは複数の初期幾何学要素によって、ならびに初期要素および／または先に生成された要素から他の要素を生成するための１つまたは複数の規則によって定義されるパターンである。反復的に定義されるいずれのパターンも、規則が全体的に定義され、反復の特定のインデックスに付属しない場合（規則が、例えば、ｎ、または２ｎと２ｎ＋１、または３ｎと３ｎ＋１と３ｎ＋２など、汎用的なインデックスに対して定義され、すなわち、特定の値に対して定義されない場合）、規則的とすることができる。したがって、第１のグループを形成するステップＳ３０の場合、方法は、Ｓ２０において決定されたサブセット内で、考察中の幾何学パターンに対応する規則に従って生成された可能性のある１組の面分が存在するかどうかをテストするステップを含むことができる。これは、所定の１組のパターンのうちのパターンをブラウズすることによって、複数回繰り返すことができる。言い換えると、方法は、テスト中の幾何学パターンに従って、（パターンが１つまたは複数の初期要素を有するかどうかに応じて）１つまたは複数の面分を定義するステップと、その後、定義された初期面分にパターン規則を適用することから、幾何学パターンの出現が存在するかどうかをチェックするステップとを含むことができる。反復的に定義されるパターンの例と、その出現をテストする方法は、後で提供される。
【００４７】
Ｓ３０において第１のグループを形成するときに、どのような幾何学パターンが認識されるにしても、またそのためにどのようなプロセスが使用されるにしても、方法は、その後、第１のグループに、面分のいわゆる「第２のグループ」を関連付けるステップＳ４０を含む。言い換えると、新しいデータが、Ｓ３０におけるのと同様に、Ｓ４０において生成され、この新しいデータは、第１のグループとまだ第１のグループに属していないＢ−Ｒｅｐの他の面分との間の結び付きを含む。したがって、関連付けステップＳ４０は、認識される幾何学パターンを新しい面分にまで「拡張」する。したがって、「幾何学パターン」という表現は、以下では、初期幾何学パターンのこの拡張バージョンを指すことができる。したがって、以下では、方法によって認識されるいずれの幾何学パターンも、互いのコピーである「第１のグループ」の面分と、以下で説明されるような一定の制約を尊重する「第２のグループ」の面分とを少なくとも含む。
【００４８】
面分の第２のグループは、Ｓ１０において提供されたＢ−Ｒｅｐの１組の面分全体のサブセットである、１組の面分である。第２のグループの面分は、それらが、第２のグループのどの面分についても、第１のグループのそれぞれの面分に隣接するという特殊性／制約を有する。言い換えると、第２のグループの各面分は、第１のグループの面分と稜線を共有する。この第１のグループの面分は、以下では、隣接する第２のグループの面分との関係を表すために、「『それぞれの』第１のグループの面分」として設計される。第２のグループの面分の別の特殊性／制約は、それらが、第２のグループの面分のどのペアについても、特定の剛体運動を介して整合することである。面分は、点集合と見ることができ（それによって、そのようなものとして方法によって処理することができ）、すなわち、３次元空間
【００４９】
【数１】
2014130602.tif 000003
【００５０】
の部分集合と見ることができる。剛体運動は、Ｄ（ｘ）＝Ｒｘ＋Ｔによって、２つの点集合の間で定義される写像
【００５１】
【数２】
2014130602.tif 000004
【００５２】
であり、ここで、Ｒは、回転であり、Ｔは、並進ベクトルである（ゼロの可能性あり）。ｙ＝Ｄ（ｘ）は、ｘ＝Ｄ−１（ｙ）と等価であり、ここで、Ｄ−１（ｙ）＝Ｒ−１ｙ−Ｒ−１Ｔであるので、剛体運動は、可逆的である。第１のグループの面分は、互いのコピーであるので、第１のグループの２つの面分が与えられた場合、剛体運動を適用することによって、一方を他方から導出することができる。ここで、Ｓ４０において第１のグループに関連付けられた、面分の一部である隣接する面分について、方法は、それらが、２つずつ、それぞれの第１のグループの隣接面分を一方から他方に変換する剛体運動を介して整合することを要求する。これは、例えば、方法によって実施される特定のテストにおいて、第１のグループの面分に隣接する面分を第２のグループに追加できるかどうかを判定するために、そのような剛体運動が使用されることを意味することができる。
【００５３】
整合性の概念は、第２のグループの面分が、特定のそれぞれの剛体運動を介して、２つずつ幾何学的に結び付けられることを意味するが、それらは、特定のそれぞれの剛体運動を用いて、必ずしも一方から他方を導出可能でなくてもよい（すなわち、基準は、そのような場合、「のコピーである（ｉｓ  ａ  ｃｏｐｙ  ｏｆ）」基準よりも「緩やか」である）。これは、当業者によって企図される任意の方法で実施することができる。例えば、方法は、少なくともペアの面分が第１のグループのそれぞれの面分に隣接する領域において、剛体運動が、ペアの面分それぞれのサポート面も一方から他方に変換する場合、ペアの面分が特定の剛体運動（すなわち、ペアの面分が隣接する第１のグループのそれぞれの面分を一方から他方に変換する剛体運動）を介して整合するかどうかを評価することができる。隣接する領域は、実際には、第２のグループの面分上の隣接稜線（すなわち、２つの隣接面分によって共有される稜線）の所定の近傍とすることができる。近傍のサイズは、当業者によって企図される任意の方法で定めることができる。それは、それぞれのサポート面の一部に限定することができる。その後、方法は、第１のグループのそれぞれの面分を一方から他方に変換する剛体運動を介して、そのような近傍において、サポート面が互いのコピーであるかどうかを評価することができる。別の例は、１つの第１のグループの面分を他に変換する剛体運動を介して、隣接稜線（のみ）が互いのコピーであるかどうかを評価することができる（面派生物（ｓｕｒｆａｃｅ  ｄｅｒｉｖａｔｉｖｅ）についてのいくつかの情報は、隣接稜線に付属させることが、例えば、後で説明するように、局所軸系は、稜線によって境界付けされる潜在的な第２のグループの面分に付属させることができるので、第１のグループの面分が互いのコピーであっても、これは必ずしも成り立たない）。あるいは、方法は、特定の剛体運動がそれぞれのサポート面全部も一方から他方に変換する場合、面分のペアがその剛体運動を介して整合するかどうかを評価することができる。いずれの場合も、（形成ステップＳ３０と比較しての）関連付けステップＳ４０のための幾何学的比較基準の緩和は、Ｓ３０においてより厳格な基準に基づいて幾何学パターンが存在することをすでに決定した、すでに存在する情報を利用する、幾何学パターンのより頻繁な拡張を可能にする。また、（例えば、ユーザは、その後、Ｓ４０において関連付けられた幾何学パターンのいくつかの要素を、それらがユーザには幾何学パターンの一部であると思えない場合、削除することができ、これは、忘れていたとユーザに思える新しい要素を追加するよりも容易に行うことができるので）、結果は、ユーザによってより容易に扱うことができる。
【００５４】
したがって、面分定義に基づいた簡単な幾何学的計算を実行することによって、互いのコピーであり、幾何学パターンを形成する、面分の第１のグループを識別することによって、その後、隣接面分を用いて第１のグループを適切に拡張することによって、方法は、識別を助けるためにユーザがモデル化オブジェクト上の任意の特定の面分または位置を識別（すなわち事前選択）する必要なしに、複雑であり得る（毎回ただ１つの面分からなるパターンよりも入り組んでいる）幾何学パターンを効率的に識別する。方法は、実際に、ユーザによって行われるそのような識別を排除することができる。したがって、方法は、モデル化オブジェクトの境界表現に適合された、パターンの効率的な識別を可能にする。方法は、ユーザが行う幾何学形状のいかなる視覚的分析も必要としない。方法は、入力された幾何学形状をシステマティックに分析することによって、重複する幾何学形状の配置に集中する。ユーザはそのプロセスに直接的には係わらないので、他の仕事のための時間が確保される。さらに、後で説明するように、最終結果として重複する幾何学形状のすべての配置をもたらすために、方法を使用することができる。これは、１回限りのプロセスである。結果として、本発明は、パターン認識のために費やされる時間を短縮し、可能な限り最良の結果を提供する。
【００５５】
ここで、方法は反復できることに留意されたい。反復は、ある反復のＳ３０において第１のグループに含まれる面分、またはＳ４０において第１のグループに関連付けられる面分が、次回以降の反復のために廃棄されるように実行される。特に、方法は、上で説明したように、１つの初期提供ステップＳ１０を含むことができる（Ｂ−Ｒｅｐは実際には最初に提供されるが、その後、少なくとも方法が終了するまで、存在する）。その後、方法は、パターン認識を開始するために、ユーザがトリガステップを実行するステップを含むことができる。その後、方法は、すべてのパターン（方法によって認識可能なすべてのパターン）が認識されるまで、例えば、自動的に（すなわち、いかなるユーザ介入もなしに）、決定ステップＳ２０、形成ステップＳ３０、および関連付けステップＳ４０を反復することができる。各反復では、（第１のグループを形成する面分の一部である面分、および第２のグループに関連付けられた面分ばかりでなく、後で説明される、いわゆる「面分のブロック」に属する面分も含む）「使用された」いずれの面分も、次回以降の反復において使用されないように、取り除く（すなわち、廃棄する）ことができる。これは、パターン認識をシンプルに保つためであり、所与の面分をたかだか１つの幾何学パターンに属させるためである。
【００５６】
そのような反復のおかげで、方法は、ユーザ介入を最低限に抑えながら、網羅的な方法で、十分に込み入った／精細な幾何学パターンを認識することができる。最初の決定ステップＳ２０は、互いのコピーである面分から成るすべてのサブセットを決定することができ、その後、各反復の決定ステップＳ２０は、これらの最初に決定されたサブセットの中からの選択から成ることにここで留意されたい。初期サブセットは、方法の例を参照して後で説明するように、方法の他のアクションの反復に従って変更することができる。方法のステップＳ３０とＳ４０とを反復のたびに交互に行うこと、またはあるいは、いくつかの反復では形成ステップＳ３０を実行し、その後、いくつかの反復では関連付けステップＳ４０だけを実行することが可能であることにも留意されたい。方法のステップが反復される正確な順序は、パターン認識の網羅性には必須ではない。各反復において方法のステップをいかに実行するかについての方法の例は、後で提供される。当業者によって実施可能な変形形態はいずれも、本説明の範囲内にある。
【００５７】
したがって、方法は、入力オブジェクト内の幾何学特徴のすべてのコピー、およびこれらのコピーすべてのそれぞれの配置を自動的に見つけることが可能である。この作業は、いかなるユーザ選択も伴わずに、入力オブジェクト、典型的には立体のＢ−Ｒｅｐに対して実行される。アルゴリズムは、すべての複製された特徴を記述するのに必要なだけ多くのパターンを出力する。一例では、方法は、最初、入力された立体を１組の独立の面分と見なす。この例の第１のステップでは、剛体運動を法として同一な面分が、サブセットに収集される。これは、最初の１組の面分を互いに素のサブセットにする区分けをもたらす。概略的に言うと、同じサブセット内の２つの面分ａ、ｂを任意に与えると、ｂ＝Ｄ（ａ）であるような、剛体運動Ｄが存在する。例の第２のステップでは、面分の各サブセット内において、アルゴリズムが、すべての特徴的なパターンを識別する。後で提供される例において説明されるように、１次元パターンは、等間隔に配置されたオブジェクトの直線または円系列であり、２次元パターンは、長方形グリッドまたは同心の円配列である。例の第３のステップは、パターン化された特徴を拡張することである。
【００５８】
次に、いくつかの定義を行った後、方法の例を説明する。
【００５９】
点集合Ｘを与えた場合、簡潔にはＹ＝Ｄ（Ｘ）と表記される、Ｙ＝｛Ｄ（ｘ），ｘ∈Ｘ｝であるような、剛体運動Ｄが存在する場合、点集合Ｙは、Ｘの「レプリカ」である。
【００６０】
「方向付けされた点集合（ｏｒｉｅｎｔｅｄ  ｐｏｉｎｔ−ｓｅｔ）」は、２つ組（Ｘ，ｕＸ）であり、ここで、
【００６１】
【数３】
2014130602.tif 000005
【００６２】
は、点集合であり、ｕＸは、写像ｕＸ：Ｘ→Ｓ２であり、ここで、Ｓ２は、
【００６３】
【数４】
2014130602.tif 000006
【００６４】
の１組の単位ベクトルである。言い換えると、任意の点ｘ∈Ｘにおいて、単位ベクトルｕＸ（ｘ）が定義される。
【００６５】
方向付けされた点集合（Ｙ，ｕＹ）は、Ｙが方向付けを保ったＸのレプリカである場合、方向付けされた点集合（Ｘ，ｕＸ）の「コピー」である。より正確には、すべてのｘ∈Ｘについて、レプリカ上の対応する点Ｄ（ｘ）の単位ベクトルは、点ｘにおけるＸの単位ベクトルを回転したものである。形式的に、すべてのｘ∈Ｘについて、ｕＹ（Ｄ（ｘ））＝ＲｕＸ（ｘ）であり、これは、以下のダイアグラムが可換であることを意味する。
【００６６】
【数５】
2014130602.tif 000007
【００６７】
決定ステップＳ２０が依存する、点集合上の関係「コピーである」は、同値関係である。それを証明するには、以下の特性をチェックすれば十分であり、それは難しくない。（１）点集合はそれ自体のコピーである、（２）ＹがＸのコピーであるならば、ＸはＹのコピーである、（３）ＹがＸのコピーであり、ＺがＹのコピーであるならば、ＺはＸのコピーである。
【００６８】
基本的な代数によれば、点集合の有限集合Ｇ（すなわち、Ｇの要素が点集合である）が与えられた場合、同値関係「コピーである」は、Ｇを、コピーからなる互いに素かつ最大の部分集合Ｇｉに分類する。これは、ｉ≠ｊならば、Ｇｉ∩Ｇｊ＝φであること、Ｇ＝∪ｉＧｉであること、Ｘ、Ｙ∈Ｇｉならば、ＹはＸのコピーであること、およびＸ∈Ｇｉかつ
【００６９】
【数６】
2014130602.tif 000008
【００７０】
ならば、ＹはＸのコピーでないことを意味する。部分集合Ｇｉは、実際、同値関係の同値類を参照することによって、点集合の「類」となる。
【００７１】
先の理論は、立体（すなわち、この例におけるモデル化オブジェクトは立体である）の面分に適用される（しかし、それに限定されない）。面分は、点集合の役割を演じ、立体のＢ−Ｒｅｐは、集合Ｇである。言い換えると、決定ステップＳ２０を実施するために、当業者は、面分を点集合として、またＳ１０において提供されるＢ−Ｒｅｐを上で定義されたような集合Ｇとして表すことができる。
【００７２】
決定ステップＳ２０の例が、次に説明される。
【００７３】
例えば、立体を表すモデル化オブジェクトを与えた場合、Ｓ１０において提供される立体のＢ−Ｒｅｐは、１組の独立した面分と見なされる。すなわち、Ｇ＝｛ｆ１、…、ｆｎ｝であり、ここで、ｆｉは、立体の第ｉの面分である。まさに最初のステップは、「コピーである」関係に従って、Ｇの部分集合を計算することである（すなわち、決定ステップＳ２０）。全体的なアルゴリズムは、以下の通りである。
For i = 1 to n do begin
If fi is not already used in a subset then
Create a new subset Gi := {fi}
For j := i + 1 to n do begin
If fj is not already used in a subset then
If fj is a copy of fj then
Gi := Gi∪{fｊ}
Store the rigid motion that
changes fi into fｊ
End if
End if
End for
End if
End for
【００７４】
以上のように、最初に、コピーから成るすべてのサブセットが決定され、後で説明されるように、決定されたサブセットに変更を施すことも可能である。
【００７５】
面分に対して「コピーである」関係をいかに実施するかについての例が、次に説明される。
【００７６】
先に説明したように、立体の面分は、サポート面（例えば平面）と、境界稜線とによって定義される。一例では、面分は、立体の外向きの法線ベクトルを備える。境界稜線は、この法線ベクトルに従って方向付けされる。境界稜線は、共有頂点によって接続される。
【００７７】
比較を実行して、剛体運動を見つけるため、各面分は、いくつかの軸系（ａｘｉｓ  ｓｙｓｔｅｍ）を備える。面分の各頂点ｖでは、軸系は、以下のように生成される。原点Ｐの座標は、頂点ｖの座標である。Ｕで表される第１のベクトルは、ｖの入力境界稜線の接線であり、−Ｕは、境界稜線と同じに方向付けされる。Ｖで表される第２のベクトルは、ｖの出力境界稜線の接線であり、境界稜線の方向に方向付けされる。「入力」および「出力」という語は、面分の法線ベクトルに従った、境界稜線の位相的方向付けに関連する。第３のベクトルは、頂点ｖにおいて計算される、面分の外向きの法線ベクトルＮである。Ｎは常にＵおよびＶに対して垂直であるにも係わらず、軸系（Ｐ，Ｕ，Ｖ，Ｎ）は、概して、有向でなく、直交しないことに留意されたい。
【００７８】
図９〜図１１は、半円筒面分９０の軸系を示している。図９は、面分９０と、その法線ベクトル９２とを示している。図１０は、法線ベクトル９２によって誘導される境界稜線９４の位相的方向付けを示している。境界稜線ａは、頂点ｖの入力稜線である。境界稜線ｂは、頂点ｖの出力稜線である。図１１は、各境界頂点における軸系のベクトルＵ、Ｖ、Ｎを表示している。
【００７９】
ここで、方法は、一例では、決定ステップＳ２０内において、２つの面分が互いのコピーであるかどうかを、存在するならば、それらの間の剛体運動を探索することによって判定することができる。ｆ、ｇを、（同数の）局所軸系
【００８０】
【数７】
2014130602.tif 000009
【００８１】
および
【００８２】
【数８】
2014130602.tif 000010
【００８３】
をそれぞれ備える、２つの面分とする。面分ｆ、ｇが、同数の局所軸系を有さない場合、それは、それらが、同数の境界頂点を有さないことを意味し、そのため、それらは互いのコピーではないと判定され、剛体運動探索は開始されない。
【００８４】
第１のステップは、面分ｆの第ｉの軸系を面分ｇの第ｊの軸系に変更する剛体運動Ｄｉ，ｊをそれぞれ計算することである。ｉ、ｊ＝１、…、ｍであるので、最大でｍ２個のそのような剛体運動が存在する。形式的に、剛体運動は、
【００８５】
【数９】
2014130602.tif 000011
【００８６】
のようになる。
【００８７】
【数１０】
2014130602.tif 000012
【００８８】
、
【００８９】
【数１１】
2014130602.tif 000013
【００９０】
、およびＤｉ，ｊ（ｘ）＝Ｒｉ，ｊｘ＋Ｔｉ，ｊであり、これは、未知数が、行列Ｒｉ，ｊの係数と、ベクトルＴｉ，ｊの座標であることに留意して、最初に、以下の線形システムを解くことによって獲得されることに留意されたい。
【００９１】
【数１２】
2014130602.tif 000014
【００９２】
第２に、行列Ｒｉ，ｊが回転であることを保証するために、以下の２つの条件が、チェックされなければならない。
【００９３】
Ｒｉ，ｊＲｉ，ｊＴ＝Ｉ
ｄｅｔ（Ｒｉ，ｊ）＝１
これらが満たされない場合、Ｒｉ，ｊは回転ではないので、Ｄｉ，ｊは剛体運動ではない。
【００９４】
その後、ｆをｇに変更する剛体運動Ｄ＊が、存在するならば、先に計算されたＤｉ，ｊの中から見出される。ここでの問題は、ｆ、ｇ、および剛体運動Ｄが与えられた場合、Ｄ（ｆ）＝ｇは真か？という質問に答えることである。これは、３Ｄ点ｘｋ、ｋ＝１、…、ｑの集まりで面分ｆをサンプリングし、点Ｄ（ｘｋ）と面分ｇの間の距離が、同一のオブジェクトについての所定の閾値数値と比較して、十分に小さいことをチェックすることによって、行うことができる。Ｄｉ，ｊの中のいくつかの剛体運動がｆをｇに変更できる場合、可能なときは、純粋な並進が選択される。これは、決定ステップＳ２０を実行する効率的な方法であり、ユーザの意図に沿った結果をもたらす。
【００９５】
Ｓ２０の反復において決定されるサブセットのためのデータ構造の一例が、次に説明される。
【００９６】
剛体運動および関連する点集合は、（所与の面分に対応する）所与の点集合のコピーと、関連する剛体運動とを取り出すために、次に説明される適切なデータ構造内に記憶することができる。概念的に、このデータ構造は、有向グラフＷ＝（Ｐ，Ａ，α，ω）を含み、ここで、ノードＰは、点集合であり、弧Ａは、剛体運動によってラベル付けされる。ラベル付けは、写像ｍ：Ａ→ＳＥ（３）であり、ここで、ＳＥ（３）は、３次元剛体運動のグループである。より正確には、弧ｕ∈Ａは、ノードα（ｕ）＝ｘ∈Ｐで開始し、ノードω（ｕ）＝ｙ∈Ｐで終了するという記述は、点集合ｘと点集合ｙが、互いのコピーであること、および剛体運動ｍ（ｕ）が、ｘをｙに変更し、それは、ｙ＝ｍ（ｕ）ｘと表記されることを意味する。ここで、弧ｖ∈Ａが、ｘとｚ∈Ｐとを接続し、それが、α（ｖ）＝ｘ、ω（ｖ）＝ｚと記述されると仮定する。ｘをｚに変更する剛体運動は、ｚ＝ｍ（ｖ）ｘである。その場合、ｚは、ｙのコピーでもあり、ｙをｚに変更する剛体運動は、ｚ＝ｍ（ｖ）ｍ（ｕ）−１ｙである。反対に、ｚをｙに変更する剛体運動は、ｙ＝ｍ（ｕ）ｍ（ｖ）−１ｚである。この情報はすべて、データ構造によって保存することができる。
【００９７】
性質上、初期サブセットを計算するアルゴリズムは、それらの各々がサブセットである、深度１の木グラフから作成される、グラフを生成する。定義上、深度１の木は、入力弧のない１つのノード（根ノード）と、出力弧のない他のすべてのノード（葉ノード）とを有する木グラフである。言い換えると、すべての非根ノードは、根ノードに接続される。結果として、深度１の木グラフ内の任意の２つのノードを与えた場合、それらを連結する弧からなる経路がただ１つ存在し、この一意的な経路は、ただ２つの弧を含む。
【００９８】
図１２〜図１３は、初期サブセットを計算するアルゴリズム（決定ステップＳ２０）からもたらされる、グラフデータ構造を示している。図１２は、面分に１から１２までの番号が付された、一列に並んだ４つの円筒スロットから成る、モデル化オブジェクトのＢ−Ｒｅｐ１２０を示している。それらには、位相的データ構造内におけるある任意の記憶に従って、番号が付されている。図１３は、２つの深度１の木１３２を含む、グラフ１３０を示している。
【００９９】
したがって、１つの点集合を他の任意の点集合に変更する剛体運動は、２つの点集合を連結する弧からなる経路に沿って剛体運動を組み合わせることによって計算される。この経路は２つの弧を含むので、ただ２つの剛体運動が組み合わされる。サブセット内の任意の２つの点集合に関連する剛体運動を計算するこの機能は、方法のこの例において広く使用される。
【０１００】
形成ステップＳ３０の例が、次に説明される。これらの例では、サブセット内の面分の第１のグループを形成するステップＳ３０は、所定の１組の幾何学パターンのうちの１つの出現がサブセット内に存在するかどうかをテストするステップを含む。１組の反復的に定義されるパターンを含む所定の１組の幾何学パターンについて、テストおよびその結果のアクションの例が提供される。より具体的には、例の１組の反復的に定義されるパターンは、直線パターンおよび／または円パターンを含む１次元パターンと、長方形グリッドパターンおよび／または円グリッドパターンを含むグリッドパターンとを含む。この構造は、これらのパターンがしばしば発生する、機械設計に特によく適合する。したがって、これら４つのパターンをすべて含む組（すなわち、所定の１組の幾何学パターンは、円グリッドパターン、長方形グリッドパターン、円パターン、および直線パターンを含む）に基づいて形成ステップＳ３０を実行することは、機械設計者の最も意図するパターンを把握することを可能にする。組がこれら４つのパターンから成る場合、方法の実行のスピードとの良好なトレードオフが、同様に保証される。
【０１０１】
テストおよびその結果のアクションの定義および例が、これらのパターンの各々について、次に提供される。
【０１０２】
点集合の集合Ｇを与え、Ｈ⊂Ｇを、Ｓ２０において決定されるＧの部分集合とする。これは、Ｈのすべての要素が、互いのコピーであることを意味する。
【０１０３】
Ｈの１次元パターンは、２つ組（Ｈ’，Ｄ）であり、ここで、Ｈ’＝｛ｈ１、…、ｈｐ｝は、Ｈ内に含まれる集合であり、Ｄは、ｈｉ＋１＝Ｄ（ｈｉ）、ｉ＝１、…、ｐ−１であるような、剛体運動である。
【０１０４】
直線パターンは、図１４に示されるように、剛体運動Ｄが並進である、１次元パターンであり、図１４は、互いのコピーである、並進された半円筒面分１４０によって形成された、直線パターンを示している。
【０１０５】
円パターンは、図１５に示されるように、剛体運動Ｄが回転である、１次元パターンであり、図１５は、円盤面分１５０の円パターンを示している。
【０１０６】
グリッドパターンは、平行ではない２つの剛体運動を用いる２Ｄレイアウトパターンである。
【０１０７】
Ｈの長方形グリッドパターンは、３つ組（Ｈ’，Ｄ，Ｂ）であり、ここで、Ｈ’＝｛ｈｉ，ｊ；ｉ＝１、…、ｐ；ｊ＝１、…、ｑ｝は、Ｈの部分集合であり、
剛体運動ＢおよびＤは、同一線上にない並進であり、
ｈｉ，ｊ＋１＝Ｂ（ｈｉ，ｊ）、ｊ＝１、…、ｑ−１であり、
ｈｉ＋１，ｊ＝Ｄ（ｈｉ，ｊ）、ｉ＝１、…、ｐ−１、ｊ＝１、…、ｑである。
【０１０８】
図１６は、円盤面分１６０の長方形グリッドパターンを示している。
【０１０９】
Ｈの円グリッドパターンは、３つ組（Ｈ’，Ｒ，Ｔ）であり、ここで、Ｈ’＝｛ｈｉ，ｊ；ｉ＝１、…、ｐ；ｊ＝１、…、ｑ｝は、Ｈの部分集合であり、Ｔは、並進であり、Ｒは、回転であり、
並進Ｔは、Ｒの回転軸に垂直であり、
ｈｉ，ｊ＋１＝Ｔ（ｈｉ，ｊ）、ｊ＝１、…、ｑ−１であり、
ｈｉ＋１，ｊ＝Ｒ（ｈｉ，ｊ）、ｉ＝１、…、ｐ−１、ｊ＝１、…、ｑである。
【０１１０】
図１７は、三角形面分１７０の円グリッドパターンを示している。
【０１１１】
この例では、形成ステップＳ３０は、可能であればパターンの形成を試み（これはパターンの「初期化」と呼ばれる）、その後、サブセット内においてパターンを拡張することによって、上で説明された幾何学パターンのうちの１つの出現がサブセット内に存在するかどうかをテストするステップを含む。
【０１１２】
１次元パターンを初期化する方法の例が、次に説明される。
【０１１３】
この例におけるテストは、１次元パターンを形成する３つの要素を見つけようと試みることを含む。１次元パターンの最初の３つの要素を見つけるためのアルゴリズムは、以下の通りである。Ｈを、点集合の部分集合とする（すなわち、Ｈの要素ｈは、互いのコピーである）。アルゴリズムの開始時には、すべての要素が未使用であり、すなわち、それらは、どのパターンにもまだ含まれていない。ｈ１と表記される、最初に与えられる未使用要素は、任意の方法で選択することができる。
【０１１４】
ステップ（１）：ｈ１からの距離が増えて行くように、すなわち、Ｄｉｓｔ（Ｌ（ｉ＋１），ｈ１）≧Ｄｉｓｔ（Ｌ（ｉ），ｈ１）、ｉ＝０、…、ｎ−１となるように、リストＬ（ｉ）、ｉ＝１、…、ｎ内の他のすべての未使用要素をソートする。
【０１１５】
ステップ（２）：ｈ２をリストＬ内の最初の要素とする。Ｄを、ｈ２＝Ｄ（ｈ１）であるような、剛体運動とする。ｈ３＝Ｄ（ｈ２）であるような、別の未使用要素ｈ３を探索する。このｈ３が存在する場合、パターン（｛ｈ１、ｈ２、ｈ３｝，Ｄ）が初期化され、要素ｈ１、ｈ２、ｈ３は使用され、アルゴリズムは停止する。
【０１１６】
ステップ（３）：さもなければ、ｈ１＝Ｄ（ｈ０）であるような、別の未使用要素ｈ０を探索する。このｈ０が存在する場合、パターン（｛ｈ０、ｈ１、ｈ２｝，Ｄ）が初期化され、要素ｈ０、ｈ１、ｈ２は使用され、アルゴリズムは停止する。
【０１１７】
ステップ（４）：そのような要素ｈ３およびｈ０が存在しない場合、ステップ（２）に進み、リストＬ内の次の要素としてｈ２を取る。リストＬ内のすべての要素が調べられた場合、ｈ１からパターンは初期化されない。
【０１１８】
ステップ（２）および（３）において、並進Ｄは、直線パターンを初期化し、回転Ｄは、円パターンを初期化する。
【０１１９】
図１８〜図１９は、直線パターン初期化を示している。
【０１２０】
図２０は、リストＬがなぜ有益かを示している。パターン初期化を、要素ｈ１＝ａを用いて開始する場合、リストＬは、Ｌ＝（ｇ、ｂ、ｃ、ｄ、ｅ、ｆ）である。ａに最も近い要素は、ｈ２＝Ｌ（１）＝ｇであり、ｇ＝Ｔ１−１（ａ）である。しかし、ｈ３＝Ｔ１−１（ｇ）またはａ＝Ｔ１−１（ｈ０）であるような、要素ｈ３およびｈ０は存在しない。その場合、リストＬ内の次の要素であるＬ（２）＝ｂを検討することによって、ｈ３＝Ｔ２（ｂ）であるような、ｈ３＝ｃが存在し、パターン（｛ａ、ｂ、ｃ｝，Ｔ２）が初期化される。
【０１２１】
円グリッドパターンを初期化する方法の例が、次に説明される。
【０１２２】
この例におけるテストは、円グリッドパターンを形成する４つの要素を見つけようと試みることを含む。円グリッドパターンの最初の４つの要素を見つけるためのアルゴリズムは、以下の通りである。Ｈを、点集合の部分集合とする（すなわち、Ｈの要素ｈは、互いのコピーである）。初期状態では、すべての要素が未使用であり、すなわち、それらは、どのパターンにもまだ含まれていない。最初に与えられる未使用要素は、ｈ１，１と表記される。
【０１２３】
ステップ（１）：ｈ１，１からの距離が増えて行くように、すなわち、Ｄｉｓｔ（Ｌ（ｉ＋１），ｈ１，１）≧Ｄｉｓｔ（Ｌ（ｉ），ｈ１，１）、ｉ＝０、…、ｎ−１となるように、リストＬ（ｉ）、ｉ＝１、…、ｎ内の他のすべての未使用要素をソートする。
【０１２４】
ステップ（２）：リストＬ内において、ｈ２，１と表記される最初の要素を、ｈ１，１をｈ２，１に変更する剛体運動Ｒ、すなわち、ｈ２，１＝Ｒ（ｈ１，１）が、回転となるように探索する。そのような要素ｈ２，１が存在しない場合、ｈ１，１から円パターンは初期化されない。
【０１２５】
ステップ（３）：リストＬ内において、ｈ１，２と表記される最初の要素を、ｈ１，１をｈ１，２に変更する剛体運動Ｔ、すなわち、ｈ１，２＝Ｔ（ｈ１，１）が、回転Ｒの軸と垂直の並進となるように探索する。そのような要素ｈ１，２が存在しない場合、ステップ（２）に進み、リストＬの次の要素ｈ２，１を用いる。
【０１２６】
ステップ（４）：最後に、ｈ２，２＝Ｒ（ｈ１，２）となるような、別の未使用要素ｈ２，２を探索する。そのような要素ｈ２，２が存在する場合、パターン（｛ｈｉ，ｊ；ｉ＝１、２；ｊ＝１、２｝，Ｒ，Ｔ）が初期化され、ｈｉ，ｊ；ｉ、ｊ＝１、２が使用される。そのような要素ｈ２，２が存在しない場合、ステップ（３）に進み、リストＬの次の要素ｈ１，２を用いる。
【０１２７】
図２１は、円グリッドパターン初期化を示している。
【０１２８】
長方形グリッドパターンを初期化する方法の例が、次に説明される。
【０１２９】
この例におけるテストは、長方形グリッドパターンを形成する４つの要素を見つけようと試みることを含む。長方形グリッドパターンの最初の４つの要素を見つけるためのアルゴリズムは、以下の通りである。Ｈを、点集合の部分集合とする（すなわち、Ｈの要素ｈは、互いのコピーである）。初期状態では、すべての要素ｈが未使用であり、すなわち、それらは、どのパターンにもまだ含まれていない。最初に与えられる未使用要素は、ｈ１，１と表記される。
【０１３０】
ステップ（１）：ｈ１，１からの距離が増えて行くように、すなわち、Ｄｉｓｔ（Ｌ（ｉ＋１），ｈ１，１）≧Ｄｉｓｔ（Ｌ（ｉ），ｈ１，１）、ｉ＝０、…、ｎ−１となるように、リストＬ（ｉ）、ｉ＝１、…、ｎ内の他のすべての未使用要素をソートする。
【０１３１】
ステップ（２）：リストＬ内において、ｈ２，１と表記される最初の要素を、ｈ１，１をｈ２，１に変更する剛体運動Ｄ、すなわち、ｈ２，１＝Ｄ（ｈ１，１）が、並進となるように探索する。そのような要素ｈ２，１が存在しない場合、ｈ１，１から長方形グリッドパターンは初期化されない。
【０１３２】
ステップ（３）：リストＬ内において、ｈ１，２と表記される最初の要素を、ｈ１，１をｈ１，２に変更する剛体運動Ｂ、すなわち、ｈ１，２＝Ｂ（ｈ１，１）が、並進Ｄと一直線上にない並進となるように探索する。そのような要素ｈ１，２が存在しない場合、ステップ（２）に進み、リストＬの次の要素ｈ２，１を用いる。
【０１３３】
ステップ（４）：最後に、ｈ２，２＝Ｄ（ｈ１，２）となるような、別の未使用要素ｈ２，２を探索する。そのような要素ｈ２，２が存在する場合、パターン（｛ｈｉ，ｊ；ｉ＝１、２；ｊ＝１、２｝，Ｄ，Ｂ）が初期化され、ｈｉ，ｊ；ｉ、ｊ＝１、２が使用される。そのような要素ｈ２，２が存在しない場合、ステップ（３）に進み、リストＬの次の要素ｈ１，２を用いる。
【０１３４】
図２２は、長方形グリッドパターン初期化を示している。
【０１３５】
Ｓ２０において決定されたサブセット内の１次元パターンを形成ステップＳ３０中に拡張する方法の一例が、次に説明される。
【０１３６】
点集合の部分集合Ｈと、この部分集合において初期化されたパターンＰとを与え、目標は、初期パターンＰを含む最大パターンを計算することとする。１次元パターンＰ＝（｛ｈ１、…、ｈｎ｝，Ｄ）を与え、ｈ１は、Ｐの最初の要素と名付けられ、ｆ（Ｐ）と表記され、ｈｎは、Ｐの最後の要素と名付けられ、ｌ（Ｐ）と表記される。拡張アルゴリズムは、前向き拡張（ｆｏｒｗａｒｄ  ｅｘｔｅｎｓｉｏｎ）ステップ
While there exists an unused element h in subset
H such that h = D(l(P)) do begin
Include h in pattern P at last position,
meaning l(P) := h
End while
と、後ろ向き拡張（ｂａｃｋｗａｒｄ  ｅｘｔｅｎｓｉｏｎ）ステップ
while there exists an unused element h in the
subset such that f(P) = D(h) do begin
Include h in pattern P at first position,
meaning f(P) := h
End while
とを含む。
【０１３７】
「ｗｈｉｌｅ」ループが終わるとき、最大の１次元パターンＰが、部分集合Ｈ内において完成する。
【０１３８】
Ｓ２０において決定されたサブセット内の２次元パターン（例えばグリッドパターン）を形成ステップＳ３０中に拡張する方法の一例が、次に説明される。
【０１３９】
点集合の部分集合Ｈと、この部分集合において初期化されたパターンＰとを与え、目標は、初期パターンＰを含む最大パターンを計算することとする。拡張プロセスは、前向き行拡張アルゴリズムと、後ろ向き行拡張アルゴリズムと、前向き列拡張アルゴリズムと、後ろ向き列拡張アルゴリズムとを含む。２次元パターンＰ＝（｛ｈｉ，ｊ；ｉ＝１、…、ｐ；ｊ＝１、…、ｑ｝，Ｄ，Ｂ）を与えた場合、前向き行拡張アルゴリズムは、図２３のフローチャートに示されるようになる。
【０１４０】
図２４〜図２７は、円グリッドパターンの前向き行拡張アルゴリズムを経時的に示している。点線は、拡張された円パターンに含まれていない点集合である。この例では、ｑ＝２、ｐ＝４である。
【０１４１】
前向き列拡張アルゴリズムは、図２８のフローチャートに示されるようになる。図２９〜図３１は、円グリッドパターンの前向き列拡張アルゴリズムを経時的に示している。点線は、拡張された円パターンに含まれていない点集合である。この例では、ｑ＝３、ｐ＝３である。
【０１４２】
前向き行および前向き列拡張アルゴリズムはともに、長方形および円グリッドパターンに対して使用するために設計されている。後ろ向き行および列拡張アルゴリズムは、前向き拡張バージョンから容易に推測されるので、詳述されない。例えば、１つの方法は、行の番号付けを逆転し、列の番号付けを逆転することである。
【０１４３】
すべての場合において、テストは、優先順位に従って、所定の１組の幾何学パターンをブラウズすることを含むことができる。言い換えると、所定の（おそらくはユーザ定義の）優先順位が、所定の１組のパターンに関連付けられ、形成ステップＳ３０は、その順序に従ってテストを実行することによって、これらのパターンの出現を見つけようと試みることができる。実際、決定ステップＳ２０の後、方法は、Ｓ２０において決定されたコピーからなるサブセット内においてパターンを探す。方法を企図された適用例により適合したものにするため、異なるパターンの間の何らかの優先順位に従って、これを繰り返すことができる。例えば、最優先パターンのすべての出現が、存在するならば、Ｓ３０において形成され、次に、優先順位２番のすべての出現が、存在するならば、形成され、それ以降も、最低順位のものまで、同様に形成される。
【０１４４】
上で説明されたパターンの特定の例を参照すると、優先順位は、最高順位から最低順位に向かって、円グリッドパターン、長方形グリッドパターン、円パターン、その次に直線パターンの順に順序付けることができる。そのような構造は、（１組の異なるユーザについて観測される統計的な計算時間に関して）機械設計の分野に特によく適合されている。
【０１４５】
問題としている方法の例は、以下のパターンタイプ、すなわち、１Ｄ直線、２Ｄ直線、１Ｄ円、および２Ｄ円を扱う。パターンは、以下の順位が低下していく優先順位リストに従って、アルゴリズムによって探索される。
１．  ２Ｄ円（すなわち、円グリッド）
２．  ２Ｄ直線（すなわち、長方形グリッド）
３．  １Ｄ円
４．  １Ｄ直線
【０１４６】
この優先順位リストは、実行すると非常に良好な結果を与える、以下の発見的な考察に基づいている。
【０１４７】
１つの発見は、２Ｄ円が２Ｄ直線よりも良好なことである。図３２に示される入力幾何学形状を与えた場合、２Ｄ直線（図３３）と２Ｄ円（図３４）の両パターンが、理論的には認識され得る。しかし、２Ｄ円パターンが、最も合理的な設計意図として選択される。
【０１４８】
別の発見は、２Ｄ直線が１Ｄ円よりも良好なことである。図３５に示される入力幾何学形状を与えた場合、１Ｄ円（図３６）と２Ｄ直線（図３７）の両パターンが、理論的には認識され得る。しかし、２Ｄ直線パターンが、最も合理的な設計意図として選択される。
【０１４９】
別の発見は、１Ｄ円が１Ｄ直線よりも良好なことである。図３８に示される入力幾何学形状を与えた場合、部分的な１Ｄ直線（図３９）と部分的な１Ｄ円（図４０）の両パターンが、理論的には認識され得る。１Ｄ円パターンが、最も合理的な設計意図として選択される。
【０１５０】
関連付けステップＳ４０の例が、次に説明される。
【０１５１】
最大パターンは、例の先のアルゴリズムを通して、各サブセット内で計算することができる。関連付けステップＳ４０の１つの目標は、パターン化された点集合（すなわち、面分の幾何学パターン）をできるだけ大きく拡張することである。原理は、隣接面分に及ぶ位相的拡張を実行することである。言い換えると、各パターンＰと、このパターン内の各要素について、目標は、要素に隣接する面分を、その面分がパターンＰの構造を保存する場合には、他のパターンまたはサブセットから取り込むことである。データ構造の観点から、そのような面分は、それ自体のパターンまたはサブセットからパターンＰに移ることができる（言い換えると、方法は、先行する反復において決定されたサブセットまたは幾何学パターンを変更することができる）。
【０１５２】
この位相的拡張は、以下のように進められる。ここでも、やはり、要素は、隣接面分を調べることによって拡張されるが、この例における目標は、立体上で複製された場合に、コピーが同じように切り取られないことを識別することである。この例における原理は、パターン化された要素内に、以下の基準を満たす面分を含めることである。（１）候補面分は、パターン化された要素に隣接する。候補面分とパターン化された要素とによって共有される稜線を、ｅｉ、ｉ＝１、…、ｎで表す。（２）候補面分のサポート面は、パターン構造に一致する。（３）稜線ｅｉの頂点の（上で定義されたような）局所軸系は、パターン構造に一致する。
【０１５３】
例えば、図４１の立体４１０に適用されるパターン認識アルゴリズムは、Ｓ３０の反復において、図４２に示された、四角形パッド４１４の４つの上部面分４１２を含む直線パターン４２０を認識し、形成する。
【０１５４】
図４１〜図４２の例では、パターン化された面分の隣接面分は、互いのコピーではなく、これが、それらがいかなるパターンにも属さない理由である。図４３に示されるように、面分４３２、４３３、および４３４は、面分４３１のコピーではない。それにも係わらず、それらは位相的拡張基準を満たすので、それらは、パターンに含められる。すべての側面面分が含められた後、初期パターン４２０は、図４４に示されるパターン４４０になる。
【０１５５】
第２のグループの面分の数は、第１のグループの面分の数から、例えば１など、所定の閾値を減算したものよりも多くすることができる。言い換えると、関連付けステップＳ４０を実行するとき、方法は、第２のグループを生成する前に、別の制約を課し、それは、第１のグループの面分の数よりも小さいが、所定の閾値が減算されたこの数よりも大きくすることができる（したがって、それは最小値よりも大きくなければならない）、一定の数の面分を有さなければならない。その狙いは、第１のグループよりも（要素の数に関して）はるかに小さい第２のグループを用いてパターンを拡張しないことであり、これは、検討中の隣接面分がパターンに従うようにはおそらく意図されていなかったことを意味するからである。しかし、第１のグループと同じほど大きい第２のグループを有する必要はなく、これは、厳格すぎることがあり、設計中に局所変更がパターン生成後に発生した状況を不適切に切り捨てるからである。したがって、方法は、そのような局所変更のためのいくらかの余裕を残していることができる。所定の閾値のための数１は、誤検出と検出漏れの間の良好なトレードオフをもたらす。
【０１５６】
したがって、隣接面分に及ぶ位相的拡張は、すべてのコピーには現れない面分を考慮することができる。例えば、（明瞭にするため３つの異なる視点から見た）図４５〜図４７に示された立体４５０が考察される。
【０１５７】
パターンアルゴリズムは、形成ステップＳ３０において、図４８に示された四角形パッドの上部面分４５２の直線系列を認識する。他の面分は、Ｓ３０においては、図４９に示されるパターン４９０に含まれることはできない。
【０１５８】
その後、例の方法は、Ｓ４０において、初期パターンの面分に隣接する、サポート平面がパターン仕様に一致するような、面分を含める（すなわち、第１のグループの面分に隣接するいくつかの第２のグループの面分を用いて、Ｓ４０を数回反復する）。これは、図５０〜図５２に経時的に示されるような、パターン４９０の漸進的な変更をもたらす。
【０１５９】
ここで、方法は、面分のいわゆる「ブロック」からなる少なくとも１つのグループを、第１のグループに関連付けるステップをさらに含むことができる。各ブロックは、第２のグループのそれぞれの面分に隣接する１組の接続された面分であり（すなわち、ブロックは、１組の１つまたは複数の面分であり、それらは、例えば推移的な稜線共有を介して、すべて一緒に接続される）、ブロックの各ペアは、剛体運動を介して整合する。言い換えると、方法は、Ｓ３０において形成された幾何学パターンを、Ｓ４０においてそれを拡張した後、第１のグループの面分には隣接しないが、第２のグループの面分に接続された、新しい面分にさらに拡張する。
【０１６０】
整合性のために保持される基準は、関連付けのためのものと正確に同じとすることができる。言い換えると、ブロックのペアの対応する面分は、少なくとも検討中の面分が（現在拡張されている）パターンのそれぞれの面分に隣接する領域において、それぞれの第１のグループの面分を一方から他方に変換する剛体運動を介して一方から他方を導出可能な、サポート面を有さなければならない。本例の場合、サポート面は、実際には、関連付けステップＳ４０の場合のように、一方を他方から正確に（すなわち完全に）導出可能とすることができる。
【０１６１】
さらに、対応する第２のグループの面分の数は、（所定の閾値を法として）第１のグループの面分の数よりも少なくすることができるが、ブロックの数は、第２のグループの面分の数と等しくなるように制限することができる。これは、ブロックが第１のグループの面分からすでに「遠い」からである。
【０１６２】
いくつかのコピーに隣接し、他のコピーでは見当たらない面分を許可することによって、またパターンをブロックに拡張することによって、図５３のパターン５３０が計算される。この結果のパターン５３０は、例の方法によって決定されるように、以下の設計意図、すなわち、図５５に示された立体５５０における図５４に示された特徴５４０の複製に対応する。
【０１６３】
方法のステップの上述の例の反復に関する問題が、次に例を用いて説明される。パターン拡張は、面分を一方からもう一方に動かすことによって、パターンおよびサブセットを再加工するので、変更されたパターンおよびサブセットを調べるために、反復が必要である。
【０１６４】
例えば、Ｓ１０において提供される初期モデルは、図５６に示されるように、１１個の小さな四角形と、４個の大きな四角形の配列５６０とすることができる。小さな四角形８、９、１０、１１は、それぞれ、大きな四角形１２、１３、１４、１５に隣接する。初期サブセット計算アルゴリズムは、小さな四角形のサブセットＣ＝｛１、…、１１｝と、大きな四角形のサブセットＣ’＝｛１２、…、１５｝とを直接的にもたらすことができる。サブセット内におけるパターン認識は、大きな四角形の直線パターンＰ’＝（｛１２、…、１５｝，Ｄ）と、小さな四角形の直線グリッドパターンＰ＝（｛１、２、３、４、５、７、８、９、１０、１１｝，Ｄ，Ｂ）とをもたらすことができる。図５７は、サブセットおよびパターンステータスを示している。
【０１６５】
パターン拡張アルゴリズムは、小さな四角形と大きな四角形の隣接性のため、およびＴ＝Ｄであることのため、パターンＰ’が、小さな四角形８、９、１０、１１の面分を取り込むことができることを見出す。この操作は、面分をパターンＰからパターンＰ’に移動させ、パターンＰを削除する。更新されたパターンＰ’は、Ｐ’＝（〔｛８、１２｝，｛９、１３｝，｛１０、１４｝，｛１１、１５｝〕，Ｔ）である。さらに、サブセットＣは、要素８から１１がパターンＰ’に寄与しているので、ここではＣ＝｛１、…、７｝であり、サブセットＣ’は、図５８に示されるように、そのすべての要素がパターンＰ’に含まれるので、削除される。
【０１６６】
サブセットＣが変更されたので、反復が開始される。それは、図５９に示されるように、直線パターンＰ”＝（｛１、…、６｝，Ｔ）を見出す。サブセットＣは、単一の要素に縮小され、反復は、停止される。
【０１６７】
特定の詳細が、次に説明される。
【０１６８】
本発明において説明されるパターン認識アルゴリズムは、いくつかの解法が存在し得るにも係わらず、単一の結果を提供する。例えば、図６０〜図６１は、円盤の同じ初期入力に対する、（点線の囲い内の）長方形パターンの２つの可能な解法を示しており、先験的には、一方を他方より好ましくする理由は存在しない。方法は、これら２つのうちの一方を無作為に計算することができる。
【０１６９】
また、パターンが認識された後、複製された特徴の基準バージョンが必要になることがある。基準特徴のすべてのコピーは、切り取り操作によって変更できるので、例えば編集目的で、「未加工の」基準特徴を計算することが有益なことがある。方法は、任意の実装形態に従って、基準バージョンのそのような決定を含むことができる。
【図１】
2014130602.tif 000015
【図２】
2014130602.tif 000016
【図３】
2014130602.tif 000017
【図４】
2014130602.tif 000018
【図５】
2014130602.tif 000019
【図６】
2014130602.tif 000020
【図７】
2014130602.tif 000021
【図８】
2014130602.tif 000022
【図９】
2014130602.tif 000023
【図１０】
2014130602.tif 000024
【図１１】
2014130602.tif 000025
【図１２】
2014130602.tif 000026
【図１３】
2014130602.tif 000027
【図１４】
2014130602.tif 000028
【図１５】
2014130602.tif 000029
【図１６】
2014130602.tif 000030
【図１７】
2014130602.tif 000031
【図１８】
2014130602.tif 000032
【図１９】
2014130602.tif 000033
【図２０】
2014130602.tif 000034
【図２１】
2014130602.tif 000035
【図２２】
2014130602.tif 000036
【図２３】
2014130602.tif 000037
【図２４】
2014130602.tif 000038
【図２５】
2014130602.tif 000039
【図２６】
2014130602.tif 000040
【図２７】
2014130602.tif 000041
【図２８】
2014130602.tif 000042
【図２９】
2014130602.tif 000043
【図３０】
2014130602.tif 000044
【図３１】
2014130602.tif 000045
【図３２】
2014130602.tif 000046
【図３３】
2014130602.tif 000047
【図３４】
2014130602.tif 000048
【図３５】
2014130602.tif 000049
【図３６】
2014130602.tif 000050
【図３７】
2014130602.tif 000051
【図３８】
2014130602.tif 000052
【図３９】
2014130602.tif 000053
【図４０】
2014130602.tif 000054
【図４１】
2014130602.tif 000055
【図４２】
2014130602.tif 000056
【図４３】
2014130602.tif 000057
【図４４】
2014130602.tif 000058
【図４５】
2014130602.tif 000059
【図４６】
2014130602.tif 000060
【図４７】
2014130602.tif 000061
【図４８】
2014130602.tif 000062
【図４９】
2014130602.tif 000063
【図５０】
2014130602.tif 000064
【図５１】
2014130602.tif 000065
【図５２】
2014130602.tif 000066
【図５３】
2014130602.tif 000067
【図５４】
2014130602.tif 000068
【図５５】
2014130602.tif 000069
【図５６】
2014130602.tif 000070
【図５７】
2014130602.tif 000071
【図５８】
2014130602.tif 000072
【図５９】
2014130602.tif 000073
【図６０】
2014130602.tif 000074
【図６１】
2014130602.tif 000075
【外国語明細書】
2014130602000001.pdf