(57)【要約】【課題】設計者の生産性を高め、設計の誤りを最小限に抑えるように、オブジェクトの繰り返されるアセンブリをより容易にかつより迅速に改良するための方法およびシステムを提供する。【解決手段】本発明は、コンピュータ支援設計のシステムにおいてオブジェクトのアセンブリを設計するための方法を対象とし、この方法は、インタフェース情報をそれぞれが有する、アセンブリの第１のオブジェクトおよび第２のオブジェクトを選択すること（２０）、アセンブリの第２のオブジェクトに対する第１のオブジェクトの位置のセットを計算すること（４０）、および第２のオブジェクトに対する第１のオブジェクトの計算された複数の位置の表現を同時に表示すること（９０）を備える。【選択図】図２
2011100455.tif 000002
【特許請求の範囲】
【請求項１】
コンピュータ支援設計のシステムにおいてオブジェクトのアセンブリを設計するための方法であって、
インタフェース情報をそれぞれが有する、前記アセンブリの第１のオブジェクトおよび第２のオブジェクトを選択するステップ（２０）と、
前記アセンブリの前記第２のオブジェクトに対する前記第１のオブジェクトの位置のセットを計算するステップ（４０）と、
前記第２のオブジェクトに対する前記第１のオブジェクトの前記計算された複数の位置の表現を同時に表示するステップ（９０）とを備えることを特徴とする方法。
【請求項２】
前記計算された複数の位置の前記同時に表示される表現は、いくつかの可視性レベルに応じて表示されることを特徴とする請求項１に記載の方法。
【請求項３】
前記計算された複数の位置の前記同時に表示される表現は、それぞれの透明性を有することを特徴とする請求項１または２に記載の方法。
【請求項４】
前記計算された複数の位置の前記同時に表示される表現は、前記計算された複数の位置の格付けに応じて表示されることを特徴とする請求項１ないし３の一項に記載の方法。
【請求項５】
前記表示するステップに先立って、少なくとも１つの基準に従って、前記第２のオブジェクトに対する前記第１のオブジェクトの前記セットの前記位置を格付けするステップをさらに備えることを特徴とする請求項１ないし４の一項に記載の方法。
【請求項６】
位置のセットを計算するステップに先立って、ユーザ操作が行われると、前記第１のオブジェクトと前記第２のオブジェクトの間で制約を追加するステップをさらに備えることを特徴とする請求項１ないし５の一項に記載の方法。
【請求項７】
前記アセンブリの前記第１のオブジェクトおよび前記第２のオブジェクトは、３次元モデル化されたオブジェクトであり、前記少なくとも１つの基準は、
前記アセンブリの前記第１のオブジェクトと前記第２のオブジェクトの間のいくつかの制約、
相対的に位置付けされる、前記アセンブリの前記第１のオブジェクトと前記第２のオブジェクトの間でユーザによって示唆されるいくつかの制約、
相対的に位置付けされる、前記アセンブリの前記第１のオブジェクトと前記第２のオブジェクトの、２次元空間における投影の間の距離、
相対的に位置付けされる、前記アセンブリの前記第１のオブジェクトと前記第２のオブジェクトの間の、３次元空間における距離、
相対的に位置付けされる、前記アセンブリの前記第１のオブジェクトと前記第２のオブジェクトの間の回転角、
相対的に位置付けされる、前記アセンブリの前記第１のオブジェクトと前記第２のオブジェクトが、前記グラフィカルユーザインタフェース上で可視的であること、
相対的に位置付けされる、前記アセンブリの前記第１のオブジェクトと前記第２のオブジェクトの間の設計の誤りが検出されることのうちの１つであることを特徴とする請求項５または６に記載の方法。
【請求項８】
前記アセンブリの第２のオブジェクトに対する第１のオブジェクトの位置のセットを計算するステップは、
前記第１のオブジェクトの前記インタフェース情報と前記第２のオブジェクトの前記インタフェース情報の少なくとも１つのマッチングを計算するステップと、
前記少なくとも１つのマッチングの各計算の後、前記第１のオブジェクトと前記第２のオブジェクトの間の形状制約を解決するステップとを備えることを特徴とする請求項１ないし７の一項に記載の方法。
【請求項９】
前記インタフェース情報の少なくとも１つのマッチングを前記計算するステップ、および前記少なくとも１つのマッチングの各計算の後、形状制約を解決するステップは、グラフの走査に従って実行され、
前記グラフの各ノードは、前記第１のオブジェクトの１つのインタフェース情報と前記第２のオブジェクトの１つのインタフェース情報の組合せを表し、
親ノード上を指す、前記グラフの所与のレベルにおける前記グラフの各ノードは、前記所与のレベルの上位レベルの別のノードによって既に表された前記組合せを表し、
解決不能な形状制約を有する前記グラフの各ノードは、前記グラフから除去されており、
所与のノードに関して、前記位置のセットのうちの或る位置が、前記所与のノードの前記組合せから構築された制約のセット、および前記所与のノードの前記親の組合せから構築された制約のセットによってもたらされることを特徴とする請求項８に記載の方法。
【請求項１０】
前記アセンブリの前記第２のオブジェクトに対する前記第１のオブジェクトの位置のセットを前記計算するステップは、
前記第１のオブジェクトの少なくとも２つのインタフェース情報の間の第１の識別子、および前記第２のオブジェクトの少なくとも２つのインタフェース情報の間の第２の識別子を計算するステップと、
前記インタフェース情報の前記第１の識別子および前記第２の識別子を、前記第１のオブジェクトの前記少なくとも２つのインタフェース情報、および前記第２のオブジェクトの前記少なくとも２つのインタフェース情報をそれぞれ所有する前記オブジェクトに関連付けることと、
前記第１のオブジェクトと前記第２のオブジェクトの少なくともいずれかがかかわる別のマッチングの計算中に、マッチングを識別するための前記第１の識別子および前記第２の識別子を使用するステップとをさらに備えることを特徴とする請求項８または９に記載の方法。
【請求項１１】
前記アセンブリの第２のオブジェクトに対する第１のオブジェクトの位置のセットを前記計算するステップはまず、前記ユーザによって追加された前記制約を考慮に入れて実行され、次に、前記ユーザによって追加された前記制約を考慮に入れずに実行することを特徴とする請求項１ないし１０の一項に記載の方法。
【請求項１２】
前記第２のオブジェクトに対する第１のオブジェクトのセットの位置を格付けするステップは、少なくとも２つの基準に従って実行され、前記少なくとも２つの基準の各基準は、格付けされ、前記セットの位置は、前記格付けされた基準に依拠して辞書式順序で格付けすることを特徴とする請求項５ないし１１の一項に記載の方法。
【請求項１３】
第１のオブジェクトおよび第２のオブジェクトを選択するステップにおいて、
前記第１のオブジェクトの少なくとも１つのパブリケーション、および前記第２のオブジェクトの少なくとも１つのパブリケーションを識別するステップと、
前記第１のオブジェクトの前記識別された少なくとも１つのパブリケーション、および前記第２のオブジェクトの前記識別された少なくとも１つのパブリケーションのそれぞれに関して、前記第１のオブジェクトのインタフェース情報、および前記第２のオブジェクトのインタフェース情報を計算するステップをさらに備えることを特徴とする請求項１ないし１２の一項に記載の方法。
【請求項１４】
前記第１のオブジェクトの前記少なくとも１つのパブリケーション、および前記第２のオブジェクトの前記少なくとも１つのパブリケーションは、形状の要素を備えることを特徴とする請求項１３に記載の方法。
【請求項１５】
前記第１のオブジェクトの前記インタフェース情報、および前記第２のオブジェクトの前記インタフェース情報は、形状の要素との合致を表すために計算されることを特徴とする請求項１３または１４に記載の方法。
【請求項１６】
形状の要素は、点体系、線体系、平面体系、および軸体系に限定されることを特徴とする請求項１４または１５に記載の方法。
【請求項１７】
前記計算された複数の位置の前記同時に表示される表現の１つは、触覚デバイス上でユーザアクションが行われると、前記同時に表示される表現の１つの上にカーソルを置くことにより強調されることを特徴とする請求項１ないし１６の一項に記載の方法。
【請求項１８】
コンピュータ支援設計のシステムにおいてオブジェクトのアセンブリを設計するための、コンピュータ可読媒体上に格納されたコンピュータプログラムであって、
請求項１ないし１７のうちのいずれか一項に記載のステップをコンピュータ支援設計の前記システムに行わせるためのコード手段を備えることを特徴とするコンピュータプログラム。
【請求項１９】
請求項１ないし１７のうちのいずれか一項に記載のプロセスのステップを実施するための手段を備えることを特徴とするコンピュータ支援設計のシステムにおいてオブジェクトのアセンブリを設計するための装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、コンピュータプログラムおよびコンピュータシステムの分野に関し、より具体的には、コンピュータ支援設計アプリケーションにおけるオブジェクトのアセンブリの設計の分野に関する。
【背景技術】
【０００２】
コンピュータ支援技術は、製品設計を作成するためのソフトウェアソリューションに関連するコンピュータ支援設計、またはＣＡＤを含むことが知られている。同様に、ＣＡＥが、コンピュータ支援エンジニアリングを表す頭字語であり、例えば、ＣＡＥは、将来の製品の物理的振舞いをシミュレートするためのソフトウェアソリューションに関する。ＣＡＭは、コンピュータ支援製造を表し、通常は、製造プロセスおよび製造作業を規定するためのソフトウェアソリューションを含む。
【０００３】
ＣＡＴＩＡという商標の下でダッソーシステムズ（Dassault Systems）によって提供されるシステムおよびプログラムなど、製品を形成するオブジェクト（もしくは部品）またはオブジェクトのアセンブリを設計するためのいくつかのシステムおよびプログラムが、市場で提供されている。これらのＣＡＤシステムにより、ユーザは、オブジェクトまたはオブジェクトのアセンブリの複雑な３Ｄ（３次元）モデルを構築して操作することが可能になる。このため、ＣＡＤシステムは、エッジ（edge）または線（line）を使用し、いくつかの事例では面を使用する、モデル化されたオブジェクトの表現をもたらす。線またはエッジは、様々な態様で、例えば、ＮＵＲＢＳ（non-uniform rational B-splines）で表すことが可能である。これらのＣＡＤシステムは概ね、形状の仕様である、モデル化されたオブジェクトとして、部品または部品のアセンブリを管理する。具体的には、ＣＡＤファイルは、形状が生成される元の仕様を含んでおり、形状により、表現を生成することが可能になる。形状および表現は、単一または複数のＣＡＤファイルに格納することが可能である。ＣＡＤシステムは、モデル化されたオブジェクトを設計者に示すためのグラフィックツールを含み、これらのツールは、複雑なオブジェクトの表示に特化していて、ＣＡＤシステムにおいてオブジェクトを表すファイルの通常のサイズは、１部品当たり１メガバイトの範囲内であり、アセンブリは、数千の部品を備えることが可能である。ＣＡＤシステムは、電子ファイルに格納されたオブジェクトのモデルを管理する。
【０００４】
コンピュータ支援技術において、ＧＵＩ（グラフィカルユーザインタフェース）が、技法の効率に関して重要な役割を果たす。モデル化されたオブジェクトを操作すること、および／またはナビゲートすることに要求される操作のほとんどは、ＧＵＩ上でユーザ（例えば、設計者）が実行することが可能である。特に、ユーザは、製品を形成するモデル化されたオブジェクトを作成すること、変更すること、および削除することができ、さらに例えば、製品構造を介して、モデル化されたオブジェクトがどのように相互関係をもつかを理解するように製品を探ることができる。従来、これらの操作は、ＧＵＩの両側に配置された専用のメニューおよびアイコンを介して実行している。最近は、ＣＡＴＩＡなどのＣＡＤシステムは、製品の表現の近くで、これらの機能を呼び出すことを可能にしている。設計者は、マウスをメニューおよびアイコンに向けて、もはや動かす必要がない。このため、マウスがすぐに届くところでの操作が可能である。さらに、それらの操作は、意味論的に振舞う、すなわち、設計者によって選択された所与の操作に関して、ＣＡＤシステムは設計者に、やはりマウスの近くで、設計者が選択する可能性が高い、以前選択された操作に応じた新たな操作のセットを示唆することが可能である。
【０００５】
やはり知られているのが、複数の企業が拡張事業の概念にわたって、製品開発に関して、構想から製品寿命が終わるまで、製品データを共有し、共通のプロセスを適用し、企業知識を活用するのを助けるビジネス戦略を指す、ＰＬＭ（Product Lifecycle Management）ソリューションである。複数の主体（企業部門、ビジネスパートナー、納入業者、ＯＥＭ（Original Equipment Manufactures）、および顧客）を含めることにより、ＰＬＭでこのネットワークは、製品およびプロセスを概念化し、設計し、構築し、そしてサポートする単一のエンティティとして機能することが可能になる。
【０００６】
一部のＰＬＭソリューションは、例えば、デジタルモックアップ（製品の３Ｄグラフィカルモデル）を作成することによって製品を設計し、開発することを可能にする。デジタル製品は最初に、適切なアプリケーションを使用して定義し、シミュレートすることが可能である。次に、リーンデジタル製造プロセス（lean digital manufacturing process）を定義してモデル化することが可能である。
【０００７】
ダッソーシステムズによって提供されるＰＬＭソリューション（ＣＡＴＩＡ、ＥＮＯＶＩＡおよびＤＥＬＭＩＡの商標の下で）は、製品エンジニアリング知識を編成するエンジニアリングハブ、製造エンジニアリング知識を管理する製造ハブ、ならびに、エンジニアリングハブと製造ハブの両方への企業統合および企業接続を可能にする企業ハブを提供する。全体として、このシステムは、複数の製品、複数のプロセス、複数のリソースを結び付けて、動的な、知識ベースの製品創出を可能にするオープンオブジェクトモデル、ならびに、最適化された製品定義、製造準備、製品製造および製品サービスを推進する意志決定支援を提供する。
【０００８】
そのようなＰＬＭソリューションは、製品のリレーショナルデータベースを備える。このデータベースは、テキストデータのセットと、それらのデータ間の関係とを備える。データは、通常、製品と関係する技術的データを含み、これらのデータは、データの階層に並べられ、探索可能であるように索引付けが行われる。これらのデータは、モデル化された製品およびプロセスである、モデル化されたオブジェクトを表すことがよくある。
【０００９】
製品構成、プロセス知識およびリソース情報を含む製品のライフサイクル情報は、通常、共同作業で編集することが意図されている。
【００１０】
現在のＣＡＤアプリケーションにより、ユーザは、オブジェクトのアセンブリの複数のオブジェクト（または複数の部品）間、例えば、オブジェクトのアセンブリの２つの製品間の空間的関係を定義することが可能になる。通常、この技術分野で知られているとおり、ユーザは、或るオブジェクトを特定の位置に置くために、そのオブジェクトを別のオブジェクトへ動かす設計者である。例えば、この設計者が、プレートに設けられた穴にねじを通すことを所望する可能性がある。この目的で、設計者は、ねじを選択して、プレートの穴へ、ねじの所望位置におおよそ達するまで、プレート上でねじを動かす。次に、ねじとプレートとのはめ合わせ特性（mating property）が、プレートに対するねじの位置を見つけるために使用されるが、この位置は、設計者によって与えられるねじの場所に応じて決まる。
【発明の概要】
【発明が解決しようとする課題】
【００１１】
しかし、或るオブジェクトを別のオブジェクトに対して相対的に位置付けることは、設計者が、第２のオブジェクトの上で、第１のオブジェクトを（またはこれらのオブジェクトの部品を）正しい場所で動かさなければならず、さらに第１のオブジェクトおよび第２のオブジェクトは、かなり小さい可能性がある、例えば、オブジェクトの部品は、点のようである可能性があるため、設計者にとって困難で面倒な作業である。
【００１２】
さらに、現在のソリューションのほとんどは、選択された２つのオブジェクト間で、所与のいくつかの位置のなかの１つだけの位置しか提案しない。このため、これらのソリューションは、これらのオブジェクト間の関係があるすべてのソリューションの包括的な順序付けられたセットを提供せず、したがって、設計者は、いくつかのソリューションのなかでどれが最良のソリューションであるかを特定することができない。さらに、ユーザが、特定の要素の上でオブジェクトを動かさない場合、ユーザには、対応するソリューションが通知されない。
【００１３】
ちなみに、一部のソリューションは、無用な位置に迅速におかれる第１のオブジェクトおよび第２のオブジェクトのすべての形状要素を使用することにより、選択された２つのオブジェクト間の位置を設計者に提案する。
【００１４】
このように、以上簡単に説明した既存のソリューションの限界によれば、設計者の生産性が高まり、設計の誤りを最小限に抑えるように、オブジェクトの繰り返されるアセンブリを、より容易にかつより迅速に改良する必要がある。
【課題を解決するための手段】
【００１５】
したがって、本発明は、コンピュータ支援設計のシステムにおいてオブジェクトのアセンブリを設計するための方法を提供する。この方法は、インタフェース情報をそれぞれが有する、アセンブリの第１のオブジェクトおよび第２のオブジェクトを選択すること、アセンブリの第２のオブジェクトに対する第１のオブジェクトの位置のセットを計算すること、および第２のオブジェクトに対する第１のオブジェクトの計算された複数の位置の表現を同時に表示することを備える。
【００１６】
本発明による方法は、以下の特徴の１つまたは複数を備えることが可能である。すなわち、
−計算された複数の位置の同時に表示される表現は、いくつかの可視性レベルに応じて表示される、
−計算された複数の位置の同時に表示される表現は、それぞれの透明性を有する、
−計算された複数の位置の同時に表示される表現は、計算された位置の格付けに応じて表示される、
−表示するステップに先立って、第２のオブジェクトに対する第１のオブジェクトのセットの複数の位置を、少なくとも１つの基準に応じて格付けするステップ、
−位置のセットを計算するステップに先立って、ユーザ操作（acutuation）時に、第１のオブジェクトと第２のオブジェクトの間で制約を追加するステップ、
−アセンブリの第１のオブジェクトおよび第２のオブジェクトは、３次元のモデル化されたオブジェクトであり、上記の少なくとも１つの基準は、以下のうちの１つである、すなわち、
−アセンブリの第１のオブジェクトと第２のオブジェクトの間のいくつかの制約、
−相対的に位置付けられる、アセンブリの第１のオブジェクトと第２のオブジェクトの間でユーザによって示唆されるいくつかの制約、
−相対的に位置付けられる、アセンブリの第１のオブジェクトと第２のオブジェクトの２次元空間における投影の間の距離
−相対的に位置付けられる、アセンブリの第１のオブジェクトと第２のオブジェクトの間の３次元空間における距離、
−相対的に位置付けられる、アセンブリの第１のオブジェクトと第２のオブジェクトの間の回転角、
−相対的に位置付けられる、アセンブリの第１のオブジェクトと第２のオブジェクトは、グラフィカルユーザインタフェース上で可視的である、
−相対的に位置付けられる、アセンブリの第１のオブジェクトと第２のオブジェクトの間の設計の誤りが検出される、
−アセンブリの第２のオブジェクトに対する第１のオブジェクトの位置のセットを計算するステップは、第１のオブジェクトのインタフェース情報と第２のオブジェクトのインタフェース情報の少なくとも１つのマッチングを計算すること、およびこの少なくとも１つのマッチングの各計算の後、第１のオブジェクトと第２のオブジェクトの間の形状制約を解決することを備える、
−インタフェース情報の少なくとも１つのマッチングを計算するステップ、およびこの少なくとも１つのマッチングの各計算の後に、形状制約を解決するステップは、グラフの走査に従って実行され、グラフの各ノードは、第１のオブジェクトの１つのインタフェース情報と第２のオブジェクトの１つのインタフェース情報の組合せを表し、グラフの所与のレベルにおけるグラフの、親ノードを指す各ノードは、その所与のレベルの上位レベルにおける別のノードによって既に表された組合せを表し、解決不能な形状制約を有するグラフの各ノードは、グラフから除去され、さらに所与のノードに関して、位置のセットのなかの或る位置が、以下、すなわち、
−その所与のノードの組合せから構築された制約のセット、および
−その所与のノードの親の組合せから構築された制約のセットによってもたらされる、
−アセンブリの第２のオブジェクトに対する第１のオブジェクトの位置のセットを計算するステップは、第１のオブジェクトの少なくとも２つのインタフェース情報の間の第１の識別子、および第２のオブジェクトの少なくとも２つのインタフェース情報の間の第２の識別子を計算すること、インタフェース情報のこの第１の識別子、およびこの第２の識別子を、第１のオブジェクトのその少なくとも２つのインタフェース情報、および第２のオブジェクトのその少なくとも２つのインタフェース情報をそれぞれ所有するオブジェクトにそれぞれ関連付けること、ならびにその第１のオブジェクトとその第２のオブジェクトの少なくとも１つがかかわる別のマッチングの計算中に、マッチングを識別するためにその第１の識別子、およびその第２の識別子を使用することをさらに備える、
−アセンブリの第２のオブジェクトに対する第１のオブジェクトの位置のセットを計算するステップは最初に、ユーザによって追加された制約を考慮に入れて実行され、次に、ユーザによって追加された制約を考慮に入れずに実行される、
−第２のオブジェクトに対する第１のオブジェクトのセットの位置を格付けするステップは、少なくとも２つの基準に従って実行され、少なくとも２つの基準の各基準は、格付けされ、セットの位置は、この格付けされた基準に依拠して辞書式順序で格付けされる、
−第１のオブジェクトおよび第２のオブジェクトを選択するステップにおいて、第１のオブジェクトの少なくとも１つのパブリケーション（publication）、および第２のオブジェクトの少なくとも１つのパブリケーションを識別するステップ、ならびに第１のオブジェクトの識別された少なくとも１つのパブリケーション、および第２のオブジェクトの識別された少なくとも１つのパブリケーションのそれぞれに関して、第１のオブジェクトのインタフェース情報、および第２のオブジェクトのインタフェース情報を計算するステップ、
−第１のオブジェクトのその少なくとも１つのパブリケーション、および第２のオブジェクトのその少なくとも１つのパブリケーションは、形状の要素を備える、
−第１のオブジェクトのインタフェース情報、および第２のオブジェクトのインタフェース情報は、形状の要素との合致を表すために計算される、
−形状の要素は、点体系、線体系、平面体系、および軸体系に制限される、
−計算された複数の位置の同時に表示される複数の表現の１つが、触覚デバイス上でユーザアクションが行われると、同時に表示される複数の表現のその１つの上にカーソルを置くことによって強調される。
【００１７】
本発明は、コンピュータ支援設計のシステムにおいてオブジェクトのアセンブリを設計するための、コンピュータ可読媒体上に格納されたコンピュータプログラムであって、本発明の方法のステップをコンピュータ支援設計のシステムに実行させるためのコード手段を備える、コンピュータプログラムをさらに提案する。
【００１８】
本発明はさらに、コンピュータ支援設計のシステムにおいてオブジェクトのアセンブリを設計するための装置であって、本発明の方法のステップを実施するための手段を備える、装置に関する。
【図面の簡単な説明】
【００１９】
次に、開示の技術を実施するシステムを、限定的でない例として、添付の図面を参照して説明する。
【図１】ＣＡＤシステムにおける通常のＧＵＩを示す概略図である。
【図２】本発明を実行するための実施形態を示す流れ図である。
【図３】本発明による方法を表すグラフィック表現である。
【図４】本発明による方法を表すグラフィック表現である。
【図５】本発明による方法を表すグラフィック表現である。
【図６】本発明によるクランクの軸とのはめ合わせを示す図である。
【図７】本発明によるクランクの軸とのはめ合わせを示す図である。
【図８】本発明によるクランクの軸とのはめ合わせを示す図である。
【図９】本発明を実行するために適合されたハードウェア環境およびソフトウェア環境を示す概略図である。
【発明を実施するための形態】
【００２０】
図１を参照すると、例示のグラフィカルユーザインタフェース（またはＧＵＩ）１００は、標準のメニューバー１１０、１２０、ならびに、底部ツールバーおよび側部ツールバー１４０，１５０を有する通常のＣＡＤ様のインタフェースであることが可能である。そのようなメニューおよびツールバーは、当技術分野で知られているとおり、１つもしくは複数の操作または機能にそれぞれが関連する、ユーザの選択可能なアイコンのセットを含む。
【００２１】
これらのアイコンのいくつかは、ＧＵＩ１００において表示されるようなモデル化された製品２００または製品２００の部品を編集するため、および／または、そのような製品２００または製品２００の部品に対して作業するように適合されたソフトウェアツールに関連する。以下の説明において、「製品」、「部品」、「アセンブリ」などは、簡明のため「部品」と呼んでもよい。「部品」の概念は、実際、「オブジェクト」の概念に一般化することが可能であり、オブジェクトは、設計される製品の「物理的」部品に過ぎないことも、またはより一般的には、設計プロセスに加わる（ただし、最終製品には必ずしも「入って」いない）任意のソフトウェアツールとすることができることにも留意する。
【００２２】
ソフトウェアツールは、ワークベンチにグループ化することが可能である。各ワークベンチは、ソフトウェアツールのサブセットを備える。特に、ワークベンチの１つは、モデル化された製品２００の形状特徴を編集することに適した編集ワークベンチである。操作の際、設計者は、例えば、オブジェクト２００の或る部品を事前に選択し、次に、適切なアイコンを選択することにより操作（例えば、寸法、色などを変更する）を開始する、または形状制約を編集することが可能である。例えば、通常のＣＡＤ操作は、スクリーン上に表示された３Ｄモデル化されたオブジェクトの穿孔または折り曲げのモデル化である。
【００２３】
さらに、１つもしくは複数の操作または機能は、ＧＵＩ１００において表示された、モデル化された製品２００または製品２００の部品の近くで直接選択することが可能である。この目的で、操作または機能に関連するユーザ選択可能なアイコン１７０がセレクタ１６０、例えば、マウスなどの触覚デバイスのカーソルの近くに現れ得る。ユーザは、フィラクテリ（phylactery）１７０上でカーソル１６０を動かすことが可能であり、これに応答して、フィラクテリ１７０は、アイコン１８０のセットを表示する。通常、ユーザ選択可能なアイコン１７０、１８０は、フィラクテリの形態を有することが可能である。次に、ユーザは、アイコンのセット１８０のうちのアイコンの１つを、選択されたアイコンに関連する機能を実行するために選択する。さらに、アイコンのセット１８０は、意味論的に振舞う、つまり、アイコンのセット１８０は、ユーザが考えていると思われる操作に応じてＣＡＤシステムによって示唆される。
【００２４】
ＧＵＩは、例えば、表示された製品２００に関連するデータ２５０を表示することが可能である。図１の例では、「特徴ツリー」として表示されたデータ２５０、およびデータ２５０の３Ｄ表現２００が、ブレーキキャリパーおよびブレーキディスクを含むブレーキアセンブリに関連する。ＧＵＩは、例えば、オブジェクトの３Ｄの方向付けを円滑にするため、編集される製品の操作のシミュレーションをトリガするため、または表示される製品２００の様々な属性をレンダリングするための、様々なタイプのグラフィックツール１３０、１６０をさらに示すことが可能である。
【００２５】
図２は、本発明の実施形態を示す流れ図であり、ここではインタフェース情報を有するオブジェクトを選択する段階（ステップ２０、３０および３１）、第２のオブジェクトに対する第１のオブジェクトの位置のセットを計算する段階（ステップ４０〜６２）、それらの位置を格付けする段階（ステップ８０）、および計算された複数の位置の表現を同時に表示する段階（ステップ９０）にそれぞれが関係する４つのブロックが見られることになる。流れ図の様々なボックスは、いくつかの形状、すなわち、ユーザ（例えば、設計者）入力を指摘する台形形状２０００、ステージを表す長方形形状２００１、ループを示す六角形形状２００２、および条件のテストである平行四辺形２００３を有する。
【００２６】
本発明の図示した実施形態は、オブジェクトのアセンブリの第１のオブジェクトおよび第２のオブジェクトの選択から始まる。第１のオブジェクトと第２のオブジェクトは、インタフェース情報を有する。このことは、図２でステップ２０、３０および３１によって示される。
【００２７】
ステップ２０で、アセンブリの第１のオブジェクトおよび第２のオブジェクトが選択され、つまり、第１のオブジェクトおよび第２のオブジェクトが、オブジェクトのアセンブリのオブジェクトのなかから識別されて選択される。この選択は、ＣＡＤのシステムにより実行することが可能である。また、この選択は、図１に示したとおり、通常、ＣＡＤシステムのグラフィカルユーザインタフェース１００において、ユーザアクションが行われると、実行するようにしてもよい。この選択がユーザによって実行される場合、ユーザは、キーボード、マウス、スタイラス、タッチスクリーンなどの触覚デバイスを使用することが可能である。例えば、２つボタンのマウスにおいて、マウスのカーソルがＧＵＩの専用エリア上にある際に、左ボタンはオブジェクトを選択するために使用することが可能である。
【００２８】
選択された第１のオブジェクトおよび第２のオブジェクトは、ＧＵＩ１００において表示することが可能である。さらに、選択された第１のオブジェクトおよび第２のオブジェクトは、モデル化されたオブジェクト、または３Ｄ（３次元）モデル化されたオブジェクトとし得る。３Ｄ（３次元）モデル化されたオブジェクトは、３Ｄ（３次元）空間におけるオブジェクトの描写である。３Ｄ空間は、座標によって３次元空間におけるすべての点を表す形状によって数学的に表すことが可能な物理的世界（physical universe）の形状モデルである。ちなみに、３次元空間を表す他の方法も存在する。３Ｄモデル化されたオブジェクトは、基本的に、形状が生成される元の仕様を指す。このため、３Ｄモデル化されたオブジェクトは、３Ｄオブジェクト、つまり、三角形、線、曲面などの様々な形状エンティティによって結び付けられた、３Ｄ空間における点の集まりである３Ｄオブジェクトを表す数学的記述である。３Ｄモデル化されたオブジェクトは、３Ｄモデル化されたオブジェクトの３Ｄ表現によって表される。
【００２９】
さらに、オブジェクトのアセンブリの第１のオブジェクトと第２のオブジェクトは、異なる製品とし得る。製品は、オブジェクトのアセンブリから形成される。このため、選択は、アセンブリのオブジェクトに対して行うことも、アセンブリの製品に対して行われることも可能である。第１のオブジェクトは、「配置されるべき」オブジェクト（または製品）と呼んでもよいし、第２のオブジェクトは、「ターゲット（target）」オブジェクト（または製品）と呼んでもよい。
【００３０】
第１のオブジェクトおよび第２のオブジェクトは、パブリケーションを有する。通常、パブリケーションは、オブジェクトと一緒に格納される（または「埋め込まれる」）ことが可能である。パブリケーションは、オブジェクトの下に集約された、このオブジェクト内の形状要素または別のパブリケーションへのリンクであり、パブリケーションは、第１のオブジェクトを、オブジェクトのアセンブリの他のオブジェクト（例えば、第２のオブジェクト）と結び付けることに関するはめ合わせ情報を作成して公表する。したがって、パブリケーションは、オブジェクトのアセンブリの他の少なくとも１つのオブジェクトに対するオブジェクトの位置付けの知識のセットを定義することが可能である。オブジェクトと一緒にパブリケーションを集約すること（または「埋め込むこと」）は、第１のオブジェクトと第２のオブジェクトがともに、はめ合わせを実行するために要求される情報を有するので、オブジェクトを配置する際に自動化を大いに進める。
【００３１】
パブリケーションは、形状の要素へのリンクである。形状の要素は、点体系、線体系、平面体系、および軸体系に限定し得るのが好ましい。通常、この限定は、アセンブリの技術的状況に従って行われ、例えば、機械的状況において、形状の要素は、好ましくは、点体系、線（line）体系、平面体系、および軸体系に限定される。別の技術的状況（例えば、ギアを備える機械的システム）において、曲線（curve）が保持される。この制約から、オブジェクトに与えられる情報の量が制限される一方で、オブジェクトをはめ合わせるための十分な数の情報が保たれることになる。さらに、他の少なくとも１つのオブジェクトに対するオブジェクトの位置付けソリューションの数が制限され、最も妥当な位置が保持される。したがって、試行の回数が減る一方で、より良い結果がもたらされる。
【００３２】
次に図３を参照すると、図１に関連して説明したとおり、プレート３００およびねじ４００がＧＵＩ１００上に表示されている。ＧＵＩは、表示された製品３００および４００と関連するデータ２５０を表示する。図３の例において、データ２５０は、「特徴ツリー」として表示され、プレート３００およびねじ４００のパブリケーションを示している。ねじ４００は、２つのパブリケーション、すなわち、軸４０１のパブリケーション、および面４０２のパブリケーションを備える。プレート３００は、５つのパブリケーション、すなわち、穴３０１ないし３０４の各軸につき１つのパブリケーション、および面３０５に関する１つのパブリケーションを備える。２つの製品３００および４００の部品のこれら７つのパブリケーションが作成され、設計者は、これらのパブリケーションが含む情報へアクセスすることが可能である。
【００３３】
図２に戻ると、ステップ３０で、開示の技術プロセスが、第１のオブジェクトのパブリケーション、および第２のオブジェクトのパブリケーションがインタフェース情報であるかどうかを判定する。すべてのパブリケーションがインタフェース情報である場合、プロセスの次のステップは、ステップ４０である。逆に、パブリケーションのいくつかがインタフェース情報ではない場合、プロセスの次のステップは、ステップ３１である。
【００３４】
インタフェース情報は、別の適合するインタフェース情報を有する完全に指定された制約を構築するようにデータによって拡張されたパブリケーションである。このため、インタフェース情報は、第１のオブジェクトを、アセンブリの別のオブジェクトに結び付けることに関するはめ合わせ情報をもたらし、はめ合わせ情報は、アセンブリの他の少なくとも１つのオブジェクトに対して第１のオブジェクトを位置付けるための要求される知識を備える。したがって、インタフェース情報により、新たなオブジェクトが、補足的な情報を要求することなく、追加されて別のオブジェクトに対して配置され得る。インタフェース情報を使用することは、設計者が、オブジェクトの配置に先立って、オブジェクトのはめ合わせ情報を追加することができるので、設計者にとって有益である。さらに、設計者は、オブジェクトに対する設計者の権利に依存して、オブジェクトのはめ合わせ情報にアクセスすることも、アクセスできないようにすることも可能である。このことは、設計の誤りを減らすことにつながり得る。その結果、別のオブジェクトに対して相対的にオブジェクトを位置付けるプロセスが、改良され、より迅速となる。
【００３５】
ステップ３１で、本発明によるプロセスは、第１のオブジェクトおよび第２のオブジェクトの少なくとも１つのパブリケーションを識別し、第１のオブジェクトおよび第２のオブジェクトの識別された各パブリケーションに関して、第１のオブジェクトおよび第２のオブジェクトのインタフェース情報を計算する。この目的で、第１のオブジェクトおよび第２のオブジェクトのパブリケーションは、適合するパブリケーションを有する完全に指定された制約を構築するために、第１のオブジェクトの予想される形状のタイプ、向き、および距離などの、利用可能なすべての情報を含むように拡張される。このため、インタフェース情報は、オブジェクトのアセンブリの組み立てられた製品から推定された情報に基づいて構築される。
【００３６】
実際には、第１のオブジェクトおよび第２のオブジェクトのインタフェース情報は、点対点の合致、線対線の合致、および平面対平面の接触を制約として有する、オブジェクトのアセンブリの形状の要素、例えば、合致（coincidence）、回転（revolute）、角柱（prismatic）等の製品間の最も共通する運動学のジョイントとの合致を表すために計算される。インタフェース情報は、オブジェクトの形状の要素に結び付けられ、例えば、形状の要素は、点体系、線体系、平面体系、および軸体系に限定することができるのが好適である。同様に、パブリケーションに関して、この制約から、オブジェクトをはめ合わせるための情報の要求される量が制限されることになる。
【００３７】
さらに、第１のオブジェクトと第２のオブジェクトのパブリケーションが拡張されると、つまり、インタフェース情報が計算されると、フック点（hooking point）を構築することができる。フック点は、共通の識別子を有するインタフェース情報またはパブリケーションのセットである。プロセスのこの段階で、フック点により、ステップ３１で計算されたインタフェース情報を識別することが可能になる。
【００３８】
しかし、インタフェース情報は、パブリケーションから常に計算可能なわけではなく、例えば、計算を実行するための利用可能な情報があるわけではない。この目的で、インタフェース情報とパブリケーションは互換的であり、このことは、ステップ４０〜９０が、パブリケーションだけを使用して、インタフェース情報だけを使用して、または、パブリケーションとインタフェース情報の混合を使用して実行することができることを含む。
【００３９】
ステップ３０および３１が実行されると、ステップ４０〜６２が、アセンブリの第２のオブジェクトに対する第１のオブジェクトの位置のセットを計算するために実行される。このステージで、第１のオブジェクトおよび第２のオブジェクトは、インタフェース情報を有し、位置のセットの計算は、これらのインタフェース情報により実行することが可能である。しかし、前述したとおり、セットの計算は、パブリケーションだけを使用して、またはパブリケーションとインタフェース情報の混合を使用して実行することも可能である。
【００４０】
また、第１のオブジェクトと第２のオブジェクトの間の位置のセットの計算は、示唆される制約である補足的な制約を考慮に入れることも可能である。実際、前述したステップ４０〜６２を実行するのに先立って、ユーザ操作が行われると、第１のオブジェクトおよび第２のオブジェクトに対する制約を入力することができる。位置のセットの計算中に、示唆される制約を考慮に入れることは、アセンブリプロセスの速度を速くするので好適である。実際、計算される位置のセットは、はめ合わせるオブジェクトを選択すること、および、示唆される制約を与えることが同時に実行されるという条件付きで、オブジェクトをはめ合わせる補足的な操作時間を要求することなく、ユーザの設計意図をふまえる。したがって、オブジェクトを組み立てる間の操作の数が減らされる。
【００４１】
通常、ユーザは、例えば、図３に示されるのと同一のねじ４００およびプレート３００を示す図４に示したとおり、第１のオブジェクトおよび第２のオブジェクトをクリックすることにより、第１のオブジェクトおよび第２のオブジェクトを選択する際に、示唆された制約を入力することができる。ねじ４００の下面４０２が、点４０３を触覚デバイスのカーソルでクリックすることによりユーザによって選択され、プレート３００の上面が、点３１０を触覚デバイスのカーソルでクリックすることによりユーザによって選択される。また、ユーザは、ドラッグアンドドロップ操作を介して制約を示唆することも可能である。例えば、ユーザは、点４０３をクリックすることによってねじ４００の下面４０２を選択し、プレート３００上面の上にねじ４００の下面４０２をドラッグし、ねじ４００の点４０３がプレート３００の点３１０の近くにきたときにねじ４００をドロップすることができる。また、示唆される制約は、例えば、図３に関連する「ツリー」２５０を介して入力することも可能である。限定としてではなく、当技術分野で知られているとおり、他の任意の手段が制約を示唆するために使用されることが可能である。
【００４２】
ステップ４０のサブステップ４１〜６２は、２回のパス（two passes）で達する。第２のオブジェクトに対する第１のオブジェクトの位置のセットの計算はまず、ユーザによって入力された制約を考慮に入れて実行され、次に、ユーザによって入力された制約を考慮に入れずに実行される。好ましくは、２回で計算することにより、ユーザによって示唆された制約を含む位置を備える位置のセットだけでなく、特性要素のみを使用する位置を計算することが可能となる。インタフェース情報から構築された１つまたは複数の制約を有する位置が、インタフェース情報から構築された制約で完成することができない、示唆される制約よりも好適である。詳細には、示唆される制約を考慮に入れる任意の位置が計算することが可能であるにしても、本発明によるプロセスは、インタフェース情報から計算された少なくとも１セットの位置を提供することができる。
【００４３】
位置のセットを計算すること（ステップ４１〜６２）は、２つのサブステップを備えることが可能である。第１のサブステップは、ステップ５０〜５２によって規定され、第１のオブジェクトのインタフェース情報と第２のオブジェクトのインタフェース情報の少なくとも１つのマッチングを計算することにある。第２のサブステップは、ステップ６０〜６２を備え、ステップ５０〜５２で実行される少なくとも１つのマッチングの各計算の後、第１のオブジェクトと第２のオブジェクトの間の形状制約を解決することにある。このため、位置は、インタフェース情報によって与えられる形状制約のすべての組合せを試みることにより見出される（つまり、計算される）。形状制約の組合せは、その組合せが解決することが可能であり、かつ組合せの別の制約に対して冗長な制約が全く存在しない場合、位置である。
【００４４】
好ましくは、オブジェクトのインタフェース情報間のマッチングを計算すること、および形状制約を解決することは、計算するステップおよび解決するステップの間に構築されて走査される専用のグラフ構造を使用して実行される。
【００４５】
当技術分野で知られるグラフ構造は、弧によって接続されたノードから成る。グラフの各ノードは、第１のオブジェクトの１つのインタフェース情報と、第２のオブジェクトの１つのインタフェース情報との組合せを表し、各弧は、或るノードから別のノードに移る可能性を表す。
【００４６】
上記で見たとおり、インタフェース情報またはパブリケーションのフック点が、ステップ３１で計算され得る。フック点により、計算されたインタフェース情報を識別すること、およびインタフェース情報のグループを作成することが可能になる。有利なことに、同一のフック点に属するインタフェース情報間の任意のマッチングが計算される。したがって、計算の数が減る。図３を再び参照して、インタフェース情報が、ねじ４００およびプレート３００のパブリケーションから始めて計算されるシナリオを検討する。このシナリオにおいて、ねじ４００のフック点が、ねじ４００の２つのパブリケーションから構築され、プレート３００のフック点が、プレート３００の５つのパブリケーションから構築される。相対的な位置を計算するときに、ねじ４００のパブリケーションとプレート３００のパブリケーションの間のマッチングだけが計算される。
【００４７】
グラフは、幅優先で（breadth first）走査されるいくつかのレベルを備え（ステップ４３〜４４）、すなわち、或るレベルの兄弟ノードが、子孫ノードに先立って走査される。このため、グラフは、レベルごとに走査され、親レベルのすべてのノードが計算されて解決された後、親レベルを離れて、子レベルに向かう。グラフの各ノードは、グラフの所与のレベルにおいて、親ノード上をポイントすることが可能である、すなわち、子ノードは、親ノードに接続される。しかし、子ノードは、その子ノードによって表される組合せが、上位レベルにおける別のノードによって既に表されている場合に限って、親ノード上をポイントすることができる。つまり、グラフ構造を構築する間、或る組合せを表すノードは、その組合せが以前に全く出現していない場合、子ではあり得ない。
【００４８】
実際には、構築されるグラフの最初のレベルは、ルートノードである（ステップ４２）。ルートノードは、グラフの最高レベルである。次にグラフのいくつかのレベルが構築され走査される（ステップ４３〜４４）。グラフは、第１のオブジェクトのインタフェース情報と第２のオブジェクトのインタフェース情報のすべての組合せを備える少なくとも第２のレベルから成る。所与のレベルの各ノードに関して、第１のオブジェクトのインタフェース情報と第２のオブジェクトのインタフェース情報の１つのマッチングが、計算される（ステップ５０）。マッチングが全く計算されない場合、そのノードは、ツリーから切り離される。有利なことに、このことは、探索グラフにより、インタフェース情報のマッチングの計算の数を制限することが可能になることを暗示し、実際、子ノードは、その子ノードによって表される組合せが、上位レベルにおける別のノードによって既に表されている場合に限って、親ノード上をポイントする。その結果、探索グラフを走査するのに要求される時間は、マッチングを全くもたない組合せが、下位レベルでグラフにおいて再使用され得ないので、増加する。このため、グラフを構築するため、および走査するための全体的なプロセスが向上する。
【００４９】
逆に、或るノードにおけるマッチングが計算された場合、そのノードの形状制約が解決される（ステップ５３）。形状制約を解決することは、当技術分野で知られているとおり、ソルバ（solver）によって実行することが可能である。マッチングをもたないノードを除去することが解決するステップにおいて有利であることは注目することができる。実際、形状制約を解決することは、システムの大量の計算リソース、例えば、ＣＰＵ、メモリなどを要求する。結果として、開示の技術により、計算リソースを節約することが可能になり、セットの位置を計算するのに要求される時間が低減する。
【００５０】
解決可能な形状制約をもたないグラフの各ノードは、グラフから除去される（ステップ６１）一方で、解決された形状制約を有するノードは、保持される。このため、グラフは、ステップごとに構築され、走査される。グラフが走査されると、グラフのノードは、位置のセットに追加される位置をもたらす（ステップ６２）。ノードの相対的な位置は、ノードの組合せから構築された制約のセット、およびノードの親の組合せから構築された制約のセットによって与えられる。
【００５１】
ところで、これらの位置を計算するために要求される計算の数は、識別子、例えば、フック点の使用により改良することが可能である。その目的で、オブジェクトのインタフェース情報間の識別子が計算され、この識別子は、インタフェースを所有するそれぞれのオブジェクトに関連する。次に、この識別子は、その第１のオブジェクトとその第２のオブジェクトの少なくともいずれかがかかわる別のマッチングの計算中に、マッチングを識別するために使用される。この識別子により、組合せの以前のマッチングを識別することが可能になり、このことは、以前に計算されたマッチングをソリューションとして優遇する可能性をもたらす。
【００５２】
ステップ７０〜７１で、ステップ４０〜６２で計算されたソリューションが、位置のセットのうちの位置のそれぞれの制約と関連するデータを計算するために扱われる。さらに、ステップ７１で、セットの位置を格付けするように少なくとも１つの基準が計算される。基準は、１回だけ計算され、その後、セットの位置を格付けするために使用され、リソースの消費が制限されるのは都合がよい。
【００５３】
ステップ８０で、オブジェクトに対する第１のオブジェクトの位置のセットが、少なくとも１つの基準に従って格付けされる。格付けするステップは、予想される位置がいずれであるかが特定し容易い位置のリストをもたらす。重要なことに、この格付けは、以前計算された位置を格付けするための判定または決定に基づくことが可能な基準、つまり、標準に従って実行される。
【００５４】
実際には、これらの位置の間で決定するのに１つの基準では十分でなく、一般に、少なくとも２つの基準が、これらの位置の間で格付けを行うために使用することが可能である。さらに、各基準が格付けされ、位置は、格付けされた基準に依拠して辞書式順序で格付けされる。辞書式順序は、順序付けが行われた２つのセットの自然な順序構造をもたらす。例えば、位置の第１のセットの複数の位置が、第１の基準に従って同一の格付けを有する場合、それらの位置は、第２の基準に従って格付けが行われる。その結果、位置の第２のセットがもたらされ、第１の基準および第２の基準に従って格付けされる。第２のセットが、それでも同一の格付けを有する複数の位置を備える場合、第３の基準が、位置の新たなセットを格付けするために使用されることが可能であるといった具合である。
【００５５】
通常、アセンブリの第１のオブジェクトと第２のオブジェクトは、３次元のモデル化されたオブジェクトであり、基準（好ましい格付けにおける）は、以下のいずれかであり得る。すなわち、
ｉ）アセンブリの第１のオブジェクトと第２のオブジェクトの間のいくつかの制約。この基準は、最も多くの数の制約を解決する位置、すなわち、グラフ構造のルートから最も遠く離れている複数の位置を選択する。有利なことに、このことにより、より低い自由度を有する位置を昇格させる（promote）ことが可能になる。
ｉｉ）アセンブリの、位置付けられる第１のオブジェクトと、第２のオブジェクトとの間でユーザによって示唆されるいくつかの制約。２つの位置の間に同一の数の制約がある場合、示唆された制約を最も多く備える位置が好しい。
ｉｉｉ）２次元空間におけるアセンブリの、位置付けられる第１のオブジェクトの投影と、第２のオブジェクトの投影との間の距離。第１のオブジェクトおよび第２のオブジェクトは、３次元オブジェクトである。第１のオブジェクトおよび第２のオブジェクトは、平面上に投影されることが可能であり、例えば、その平面は、コンピュータスクリーンによって規定される。距離は、例えば、ユーザが、上記でみたとおり、第１のオブジェクトおよび第２のオブジェクトを選択する際に、制約を示唆している間に、ユーザによって以前に入力された２つのピック点（picking point）の間で測定されることが可能である。このため、第２のオブジェクトに対する第１のオブジェクトの各位置は、ピック点を有し、第２のオブジェクトも同様である。したがって、配置された第１のオブジェクトと第２のオブジェクトのピック点の間の距離を測定することが可能である。これらの測定された位置に従って、位置は、格付けされ得る。実際には、位置付けられる第１のオブジェクトと第２のオブジェクトとの間でより小さい距離をもたらす位置が優遇され、測定された距離が短いほど、位置は良好である。実際、設計者が、優遇を所望する位置をシステムに示す可能性を有することができるため、小さい方の距離を優先することにより、全般的な設計プロセスの向上を可能にし、このことは、例えば、第１のオブジェクトおよび第２のオブジェクトを選択しながら、これらのオブジェクトをクリックすることにより、容易な仕方で実行することが可能である。さらに、設計者は、予想されるソリューションを得るために第２のオブジェクト全体を正確にブラウズする必要はなく、第２のオブジェクトを単純にクリックするだけで十分である。したがって、設計の誤りのほとんど、例えば、誤った第２のオブジェクトの選択を防止することが可能である。このため、オブジェクトの繰り返されるアセンブリが、設計者の生産性が大幅に向上するように、より容易で、より迅速な仕方で行われることが理解される。
ｉｖ）３次元空間における、相対的に位置付けられる３次元オブジェクトである第１のオブジェクトと第２のオブジェクトの間の距離。同様に、位置付けられる第１のオブジェクトと第２のオブジェクトのピック点の間の距離を測定し、測定された距離の小さい方を優遇することが可能である。ポイントｉｉｉ）におけるのと同一の利点がもたらされることが理解される。
ｖ）３次元オブジェクトである、位置付けられる第１のオブジェクトと、第２のオブジェクトとの間の回転角。回転角は、計算された位置に合うように、選択された第１のオブジェクトによって行われる回転を測定する。測定された回転角に応じて、それらの位置を格付けすることが可能である。実際には、より小さい回転角が優遇され、実際、設計者が、オブジェクトのアセンブリを設計している間に見るものにより近いソリューションを優遇することが有益である。例えば、図３のねじ４００は、ねじ４００の頭部をプレート３００の上面、または下面に有しており、穴３０１〜３０３を通ることが可能である。しかし、ねじ４００は、選択された際にねじ４００の頭部が上に向いているので、ねじの頭部が上に向けられた位置が、ねじの頭が下に向けられた位置と比べて、第１の事例に関する回転角の方が第２の事例の場合より小さいので、優遇される。
ｖｉ）アセンブリの、位置付けられる第１のオブジェクト、および第２のオブジェクトは、グラフィカルユーザインタフェース上で可視的である。可視的である位置は、可視的でない位置と比べて優遇される。実際、位置付けられた第１のオブジェクト（配置されるべきオブジェクト）は、グラフィカルユーザインタフェース上で可視的であり、このオブジェクトのピック点は、ソリューションの位置において可視的である。有利なことに、設計者は、設計者が関心のない位置の氾濫に見舞われることがなく、実際、設計者は、アセンブリの少数のオブジェクトに的を絞り、したがって、他のオブジェクトに興味がわかない。ところで、設計者は、アセンブリ上でズームアウトすることができ、このため、格付けするステップ中に新たな位置を考慮することが可能である。
ｖｉｉ）位置付けられた第１のオブジェクトと、第２のオブジェクトとの間の設計の誤りが、検出される。通常、設計の誤りは、干渉仕様（interferences specifications）が順守されない場合に生じ得る。一般に、干渉仕様は、衝突仕様、接触仕様、および隙間（clearance）仕様を包含する。これに関して、２つのオブジェクトの間の衝突（物体相互侵入（matter interpenetration））を回避することが重要である。実際には、衝突が検出されると、その位置は、位置のセットから除去される。
【００５６】
基準は、前述した基準に限定されず、他の任意の基準が、位置を格付けするために使用され得る。さらに、基準の格付けは、ユーザによって変更することが可能である。このようにして、位置の格付けは、ユーザのニーズおよび要件を満たす。
【００５７】
ステップ９０で、第２のオブジェクトに対する第１のオブジェクトの計算された位置の複数の表現が、計算された複数の位置の格付けに従って同時に表示される。実際には、同時に表示される表現は、いくつかの可視性レベルに応じて表示することが可能であり、位置の表現の各可視性レベルは、その位置のそれぞれの格付けを表す。したがって、計算された複数の位置は、同時に表示され、それぞれの可視性レベルで表現される。したがって、設計者に、多くの位置のなかから或る位置を選択する直観的で、かつ効率的な方法が与えられる。このため、設計者は、見つけるのが難しい位置でさえも、可能性のあるすべての位置を見ることができるため、オブジェクトのアセンブリを設計している間の設計者の生活体験が増える。したがって、設計者は、位置が多数である場合でさえ、自らの選択を容易に行うことができる。
【００５８】
さらに、表示される位置の各表現は、それぞれの透明性レベルを有することができる。透明性レベルは、透明性が完全ではないことを暗示し、このため、位置は、設計者に常に可視的である。部分的透明性（または半透明性）は、位置の伝達する光、または拡散する光が部分的であるに過ぎない、または散乱性である場合に、達する。さらに、透明性レベルは、計算された位置の格付けに応じて決定することができる。通常、透明性レベルは、格付けの最良の位置（つまり、最も多くの数の基準を満たす位置）が、最低の透明性レベルで表示される一方で、最悪の位置（つまり、最も少ない数の基準を満たす位置）が、最低の透明性レベルで表示されるように決定することが可能である。つまり、位置が良好であるほど、表示される位置は透明性が低い。実際には、格付けの最良の位置の透明性は、基準値に設定され、第２のソリューションから最後のソリューションまでの透明性は、天井値（基準値の半分）から床値（ほとんど透明）まで直線的、かつ規則的に減少する。さらに、それぞれのレンダリングが、カラーコードに従って実行されることも可能である。その結果、設計者の視界は、透明性が、セットの位置の表示を調整するので、もはや、多数の位置の氾濫に見舞われない。このため、オブジェクトのアセンブリを発見して理解することが、設計者にとってより容易であり、したがって、設計者の生産性が向上する。
【００５９】
ところで、最も透明性の低い表現を有する位置が、設計者を満足させない場合、設計者は、それでも、最も透明性の低い表現を有する位置と同一の透明性レベルを有する別の位置を表示する可能性がある。例えば、ユーザは、触覚デバイスを操作することができ、操作時に、例えば、マウスホイールを動かすと、計算された複数の位置が、位置の格付けに基づいて降順で表示される。
【００６０】
図３ないし図５は、本発明による方法の実施形態のグラフィック表現である。図３は、ＧＵＩ上に表示されたプレート３００およびねじ４００を示している。ねじ４００は、「配置されるべき」オブジェクトであり、プレート３００は、「ターゲット」オブジェクトである。「特徴ツリー」は、ＧＵＩにおいて、オブジェクトのパブリケーションなどの、両方のオブジェクトの特性を示す。ねじ４００は、２つのパブリケーション、すなわち、軸４０１のパブリケーション、および面４０２のパブリケーションを備える。プレート３００は、５つのパブリケーション、すなわち、位置のセットのホームズ（homes）計算の軸３０１ないし３０４のそれぞれにつき１つのパブリケーション、および面３０５に関する１つのパブリケーションを備える。
【００６１】
次に、図４で、ユーザは、例えば、マウスのカーソルを使用して、「配置されるべき」オブジェクト４００の下面４０２の点４０３をクリックすることにより、オブジェクト４００を選択する。次に、ユーザは、「ターゲット」オブジェクト３００の上面３０５の点３１０をクリックすることにより、オブジェクト３００を選択する。ねじ４００およびプレート３００のパブリケーションは、インタフェース情報ではないので、ねじのフック点は、ねじの２つのパブリケーションから構築され、プレートのフック点は、プレートの５つのパブリケーションから構築される。さらに、ユーザは、ねじおよびプレートを選択している間に制約、すなわち、プレートの上面と、ねじの下面との間のユーザ制約を示唆する。
【００６２】
次に、プロセスは、ねじとプレートの間の位置のセットを計算する。この目的で、グラフが、１回目のパス（first pass）で示唆された制約を考慮することにより、２回目のパスで示唆される制約を考慮せずに構築され、走査される。ねじと各穴の軸対軸の合致に基づいて、位置のセットが計算されて４つの位置４２０〜４２３を備える。このステップで、プロセスは、位置４２０〜４２３の表現を同時に表示することが可能である。さらに、表現は、いくつかの可視性レベルに応じて表示することが可能である。例えば、同時に表示される表現は、それぞれの透明性を有することが可能である。
【００６３】
次に、それらの位置が、基準に従って格付けされる。第１の基準は、ねじとプレートの間で制約の数を分析し、この数は、同一である。したがって、第２の基準は、計算された位置を分けるために要求され、ねじとプレートとの間でユーザによって示唆される制約の数は、各位置に関して同一である。次に、第３の基準が使用され、ねじ４００のピック点４０３が、各位置４２０〜４２３に配置され、次に、点４３０〜４３３と、プレート３００のピック点３１０との間の、２次元空間における距離が測定される。距離が短いほど、位置は良好である。図４によれば、これらの位置は、以下のとおり（最良から最悪まで）格付けされる。すなわち、最良の位置（１と評定される）が位置４２３であり、次が、位置４２２（２と評定される）、４２０（３と評定される）、および４２１（４と評定される）である。
【００６４】
格付けされると、これらの位置のそれぞれの表現は、格付けに応じて表示される。図４で、位置４２３は、位置４２０、４２１、および４２２より良好な可視性レベルを有する。
【００６５】
図５は、設計者が、ねじ頭部４００のかど５００ａ、およびプレート３００のかど５００ｂを選択していること以外は、図４と同様である。このため、ユーザによって示唆される制約は、この２つのかどの間の接触である。位置のセットを計算する際、ユーザによって示唆される制約は、パブリケーションで構築された制約で完成する。しかし、この場合、制約のこの組合せから、これらの組合せは、過度の制約であることになる。このため、示唆される制約を考慮に入れるグラフの１回目のパスは、失敗し、位置のセットは、グラフの２回目のパスからのみ、つまり、示唆される制約を考慮に入れずに、計算される。その結果、それらの位置は、ねじおよびプレートのパブリケーションに基づいて計算される。次に、セットの位置は、図４の場合と同様に格付けされ、ソリューション５０１が、他の３つの位置より高い可視性レベルでＧＵＩ上に表示される。
【００６６】
ところで、設計者は、これらの位置の間でナビゲートすることができる。同時に表示される複数の位置の１つは、その位置の上にカーソルを置くことにより強調することが可能である。通常、このことは、触覚デバイス上でユーザアクションが行われると、例えば、マウスのカーソルがその位置の上に置かれると、実行される。位置を強調することは、例えば、その位置のハイライトにより行うことが可能である。ハイライトは、その位置の表現に放射光の（ｅｍｉｓｓｉｖｅ）明るい色を適用することにある。また、強調することは、位置を明滅させること、強調される位置の輪郭を太くすること、または強調される位置の輪郭を形成する点の密度を高くすることの視覚効果を介して実行することも可能である。ところで、設計者が或る位置を他の位置から区別することを可能にする任意の手段を使用することが可能である。
【００６７】
次に図６〜図８を参照すると、クランク９００を軸９０１とはめ合わせることが示されている。図６で、本発明に従って計算されたセット位置の位置がＧＵＩ上に表されている。これらの表現のなかで、位置９１０は、透明性がより低く、実際、この位置は、格付けによる最良の位置（つまり、最も少ない数の基準を満たす位置）である。位置９２０および９３０は、より透明性が高い。図６は、透明性と、計算された複数の位置の妥当性との間の直線性を示している。したがって、ユーザは、透明性がより低いので、いずれが最良の位置であるかを容易に検出することができる。一方、設計者が最良の位置を妥当であるとみない場合、それでも、設計者は、他の位置を見ることができる。
【００６８】
図７において、設計者は、最良の位置９１０の上に触覚デバイスのカーソル９０２を移動している。したがって、この位置は、強調される。設計者は、その結果、最良の位置に基づくソリューションを事前に視覚化することができ、他の位置の透明性が低減する一方で、位置９１０の透明性が高まる。このため、ソリューション位置９１０が強調され、このことにより、ユーザは都合よく、そのソリューションを容易に理解することが可能になる。
【００６９】
設計者が、別の位置９３０の上にカーソル９０２を移動すると、図８に示したとおり、今度は、この位置が強調される。したがって、設計者は、各位置を、他の位置とは独立してプレビューすることができる。その一方で、設計者は、他の位置のなかから容易にナビゲートすることができる。
【００７０】
以上の方法は、ＣＡＤ／ＣＡＭ／ＣＡＥシステム又はオブジェクトのアセンブリを設計するために使用される任意のシステムによって定義することが可能な任意の構成における任意のオブジェクトに適用することができることを理解するべきである。本発明は、デジタル電子回路あるいはコンピュータハードウェア、コンピュータファームウェア、コンピュータソフトウェア、または、それらの組合せで実施されることが可能である。本発明の装置は、プログラマブルプロセッサによって実行するようにマシン可読ストレージデバイスとして具現化されたコンピュータプログラムプロダクトで実施することが可能であり、本発明の方法ステップは、入力データに対して操作すること、および、出力を生成することによって本発明の機能を実行する命令のプログラムを実行するプログラマブルプロセッサによって実行され得る。
【００７１】
本発明は、データストレージシステムからデータおよび命令を受け取るとともに、データストレージシステムにデータおよび命令を送るように接続された少なくとも１つのプログラマブルプロセッサと、少なくとも１つの入力デバイスと、少なくとも１つの出力デバイスとを含むプログラマブルシステム上で実行可能な１つまたは複数のコンピュータプログラムで実施されることが可能であるのが好ましい。このアプリケーションプログラムは、高レベルの手続きプログラミング言語もしくはオブジェクト指向プログラミング言語で、または、所望する場合はアセンブリ言語もしくは機械語で実施することが可能であり、いずれにしても、言語は、コンパイラ言語またはインタプリタ言語とし得る。
【００７２】
図９は、オブジェクトのアセンブリを設計しているユーザのクライアントコンピュータシステム、例えば、ワークステーションを示している。このクライアントコンピュータは、内部通信バス１２００に接続されたＣＰＵ（中央処理装置）１２０１と、バスに接続されたＲＡＭ（ランダムアクセスメモリ）１２０７とを備える。クライアントコンピュータシステムは、バスに接続されたビデオランダムアクセスメモリ１２１０に関連するＧＰＵ（グラフィカル処理装置）１２１１をさらに備える。ビデオＲＡＭ１２１０は、当技術分野でフレームバッファとしても知られている。大容量ストレージデバイスコントローラ１２０２が、ハードドライブ１２０３などの大容量メモリデバイスへのアクセスを管理する。コンピュータプログラム命令およびデータを具現化するのに適した大容量メモリデバイスには、例として、ＥＰＲＯＭデバイス、ＥＥＰＲＯＭデバイスおよびフラッシュメモリデバイスなどの半導体メモリデバイス、内部ハードディスクおよびリムーバブルディスクなどの磁気ディスク、光磁気ディスク、ならびに、ＣＤ−ＲＯＭディスク１２０４を含む、すべての形態の不揮発性メモリを含む。上記のいずれかが、特別に設計されたＡＳＩＣ（特定用途向け集積回路）によって補完される、またはそのようなＡＳＩＣに組み込むことができる。ネットワークアダプタ１２０５が、ネットワーク１２０６へのアクセスを管理する。また、クライアントコンピュータシステムは、カーソル制御デバイスまたはキーボードなどの触覚デバイス１２０９も含むことが可能である。カーソル制御デバイスは、クライアントコンピュータにおいて、ユーザが、ディスプレイ１２０８上の任意の所望の場所にカーソルを選択的に位置付けることを可能にするために使用される。さらに、カーソル制御デバイスにより、ユーザは、様々なコマンドを選択すること、および制御信号を入力することを可能になる。カーソル制御デバイスは、システムに制御信号を入力するためのいくつかの信号生成デバイスを含む。通常、カーソル制御デバイスは、マウスとすることができ、マウスのボタンが、信号を生成するために使用される。
【００７３】
本発明の好ましい実施形態を説明した。本発明の趣旨および範囲を逸脱することなく、様々な変更を行うことが可能であることは理解されるだろう。したがって、他の実施態様も、添付の特許請求の範囲に含まれる。例えば、基準の格付けは、アセンブリの技術的状況に依存し得る。
【図１】
2011100455.tif 000003
【図２】
2011100455.tif 000004
【図３】
2011100455.tif 000005
【図４】
2011100455.tif 000006
【図５】
2011100455.tif 000007
【図６】
2011100455.tif 000008
【図７】
2011100455.tif 000009
【図８】
2011100455.tif 000010
【図９】
2011100455.tif 000011
【外国語明細書】
2011100455000001.pdf