説明

コンピュータ支援設計のシステムにおいてオブジェクトのアセンブリを設計するための方法およびシステム

【課題】設計者の生産性を高め、設計の誤りを最小限に抑えるように、オブジェクトの繰り返されるアセンブリをより容易にかつより迅速に改良するための方法およびシステムを提供する。
【解決手段】本発明は、コンピュータ支援設計のシステムにおいてオブジェクトのアセンブリを設計するための方法を対象とし、この方法は、インタフェース情報をそれぞれが有する、アセンブリの第1のオブジェクトおよび第2のオブジェクトを選択すること(20)、アセンブリの第2のオブジェクトに対する第1のオブジェクトの位置のセットを計算すること(40)、および第2のオブジェクトに対する第1のオブジェクトの計算された複数の位置の表現を同時に表示すること(90)を備える。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、コンピュータプログラムおよびコンピュータシステムの分野に関し、より具体的には、コンピュータ支援設計アプリケーションにおけるオブジェクトのアセンブリの設計の分野に関する。
【背景技術】
【0002】
コンピュータ支援技術は、製品設計を作成するためのソフトウェアソリューションに関連するコンピュータ支援設計、またはCADを含むことが知られている。同様に、CAEが、コンピュータ支援エンジニアリングを表す頭字語であり、例えば、CAEは、将来の製品の物理的振舞いをシミュレートするためのソフトウェアソリューションに関する。CAMは、コンピュータ支援製造を表し、通常は、製造プロセスおよび製造作業を規定するためのソフトウェアソリューションを含む。
【0003】
CATIAという商標の下でダッソーシステムズ(Dassault Systems)によって提供されるシステムおよびプログラムなど、製品を形成するオブジェクト(もしくは部品)またはオブジェクトのアセンブリを設計するためのいくつかのシステムおよびプログラムが、市場で提供されている。これらのCADシステムにより、ユーザは、オブジェクトまたはオブジェクトのアセンブリの複雑な3D(3次元)モデルを構築して操作することが可能になる。このため、CADシステムは、エッジ(edge)または線(line)を使用し、いくつかの事例では面を使用する、モデル化されたオブジェクトの表現をもたらす。線またはエッジは、様々な態様で、例えば、NURBS(non-uniform rational B-splines)で表すことが可能である。これらのCADシステムは概ね、形状の仕様である、モデル化されたオブジェクトとして、部品または部品のアセンブリを管理する。具体的には、CADファイルは、形状が生成される元の仕様を含んでおり、形状により、表現を生成することが可能になる。形状および表現は、単一または複数のCADファイルに格納することが可能である。CADシステムは、モデル化されたオブジェクトを設計者に示すためのグラフィックツールを含み、これらのツールは、複雑なオブジェクトの表示に特化していて、CADシステムにおいてオブジェクトを表すファイルの通常のサイズは、1部品当たり1メガバイトの範囲内であり、アセンブリは、数千の部品を備えることが可能である。CADシステムは、電子ファイルに格納されたオブジェクトのモデルを管理する。
【0004】
コンピュータ支援技術において、GUI(グラフィカルユーザインタフェース)が、技法の効率に関して重要な役割を果たす。モデル化されたオブジェクトを操作すること、および/またはナビゲートすることに要求される操作のほとんどは、GUI上でユーザ(例えば、設計者)が実行することが可能である。特に、ユーザは、製品を形成するモデル化されたオブジェクトを作成すること、変更すること、および削除することができ、さらに例えば、製品構造を介して、モデル化されたオブジェクトがどのように相互関係をもつかを理解するように製品を探ることができる。従来、これらの操作は、GUIの両側に配置された専用のメニューおよびアイコンを介して実行している。最近は、CATIAなどのCADシステムは、製品の表現の近くで、これらの機能を呼び出すことを可能にしている。設計者は、マウスをメニューおよびアイコンに向けて、もはや動かす必要がない。このため、マウスがすぐに届くところでの操作が可能である。さらに、それらの操作は、意味論的に振舞う、すなわち、設計者によって選択された所与の操作に関して、CADシステムは設計者に、やはりマウスの近くで、設計者が選択する可能性が高い、以前選択された操作に応じた新たな操作のセットを示唆することが可能である。
【0005】
やはり知られているのが、複数の企業が拡張事業の概念にわたって、製品開発に関して、構想から製品寿命が終わるまで、製品データを共有し、共通のプロセスを適用し、企業知識を活用するのを助けるビジネス戦略を指す、PLM(Product Lifecycle Management)ソリューションである。複数の主体(企業部門、ビジネスパートナー、納入業者、OEM(Original Equipment Manufactures)、および顧客)を含めることにより、PLMでこのネットワークは、製品およびプロセスを概念化し、設計し、構築し、そしてサポートする単一のエンティティとして機能することが可能になる。
【0006】
一部のPLMソリューションは、例えば、デジタルモックアップ(製品の3Dグラフィカルモデル)を作成することによって製品を設計し、開発することを可能にする。デジタル製品は最初に、適切なアプリケーションを使用して定義し、シミュレートすることが可能である。次に、リーンデジタル製造プロセス(lean digital manufacturing process)を定義してモデル化することが可能である。
【0007】
ダッソーシステムズによって提供されるPLMソリューション(CATIA、ENOVIAおよびDELMIAの商標の下で)は、製品エンジニアリング知識を編成するエンジニアリングハブ、製造エンジニアリング知識を管理する製造ハブ、ならびに、エンジニアリングハブと製造ハブの両方への企業統合および企業接続を可能にする企業ハブを提供する。全体として、このシステムは、複数の製品、複数のプロセス、複数のリソースを結び付けて、動的な、知識ベースの製品創出を可能にするオープンオブジェクトモデル、ならびに、最適化された製品定義、製造準備、製品製造および製品サービスを推進する意志決定支援を提供する。
【0008】
そのようなPLMソリューションは、製品のリレーショナルデータベースを備える。このデータベースは、テキストデータのセットと、それらのデータ間の関係とを備える。データは、通常、製品と関係する技術的データを含み、これらのデータは、データの階層に並べられ、探索可能であるように索引付けが行われる。これらのデータは、モデル化された製品およびプロセスである、モデル化されたオブジェクトを表すことがよくある。
【0009】
製品構成、プロセス知識およびリソース情報を含む製品のライフサイクル情報は、通常、共同作業で編集することが意図されている。
【0010】
現在のCADアプリケーションにより、ユーザは、オブジェクトのアセンブリの複数のオブジェクト(または複数の部品)間、例えば、オブジェクトのアセンブリの2つの製品間の空間的関係を定義することが可能になる。通常、この技術分野で知られているとおり、ユーザは、或るオブジェクトを特定の位置に置くために、そのオブジェクトを別のオブジェクトへ動かす設計者である。例えば、この設計者が、プレートに設けられた穴にねじを通すことを所望する可能性がある。この目的で、設計者は、ねじを選択して、プレートの穴へ、ねじの所望位置におおよそ達するまで、プレート上でねじを動かす。次に、ねじとプレートとのはめ合わせ特性(mating property)が、プレートに対するねじの位置を見つけるために使用されるが、この位置は、設計者によって与えられるねじの場所に応じて決まる。
【発明の概要】
【発明が解決しようとする課題】
【0011】
しかし、或るオブジェクトを別のオブジェクトに対して相対的に位置付けることは、設計者が、第2のオブジェクトの上で、第1のオブジェクトを(またはこれらのオブジェクトの部品を)正しい場所で動かさなければならず、さらに第1のオブジェクトおよび第2のオブジェクトは、かなり小さい可能性がある、例えば、オブジェクトの部品は、点のようである可能性があるため、設計者にとって困難で面倒な作業である。
【0012】
さらに、現在のソリューションのほとんどは、選択された2つのオブジェクト間で、所与のいくつかの位置のなかの1つだけの位置しか提案しない。このため、これらのソリューションは、これらのオブジェクト間の関係があるすべてのソリューションの包括的な順序付けられたセットを提供せず、したがって、設計者は、いくつかのソリューションのなかでどれが最良のソリューションであるかを特定することができない。さらに、ユーザが、特定の要素の上でオブジェクトを動かさない場合、ユーザには、対応するソリューションが通知されない。
【0013】
ちなみに、一部のソリューションは、無用な位置に迅速におかれる第1のオブジェクトおよび第2のオブジェクトのすべての形状要素を使用することにより、選択された2つのオブジェクト間の位置を設計者に提案する。
【0014】
このように、以上簡単に説明した既存のソリューションの限界によれば、設計者の生産性が高まり、設計の誤りを最小限に抑えるように、オブジェクトの繰り返されるアセンブリを、より容易にかつより迅速に改良する必要がある。
【課題を解決するための手段】
【0015】
したがって、本発明は、コンピュータ支援設計のシステムにおいてオブジェクトのアセンブリを設計するための方法を提供する。この方法は、インタフェース情報をそれぞれが有する、アセンブリの第1のオブジェクトおよび第2のオブジェクトを選択すること、アセンブリの第2のオブジェクトに対する第1のオブジェクトの位置のセットを計算すること、および第2のオブジェクトに対する第1のオブジェクトの計算された複数の位置の表現を同時に表示することを備える。
【0016】
本発明による方法は、以下の特徴の1つまたは複数を備えることが可能である。すなわち、
−計算された複数の位置の同時に表示される表現は、いくつかの可視性レベルに応じて表示される、
−計算された複数の位置の同時に表示される表現は、それぞれの透明性を有する、
−計算された複数の位置の同時に表示される表現は、計算された位置の格付けに応じて表示される、
−表示するステップに先立って、第2のオブジェクトに対する第1のオブジェクトのセットの複数の位置を、少なくとも1つの基準に応じて格付けするステップ、
−位置のセットを計算するステップに先立って、ユーザ操作(acutuation)時に、第1のオブジェクトと第2のオブジェクトの間で制約を追加するステップ、
−アセンブリの第1のオブジェクトおよび第2のオブジェクトは、3次元のモデル化されたオブジェクトであり、上記の少なくとも1つの基準は、以下のうちの1つである、すなわち、
−アセンブリの第1のオブジェクトと第2のオブジェクトの間のいくつかの制約、
−相対的に位置付けられる、アセンブリの第1のオブジェクトと第2のオブジェクトの間でユーザによって示唆されるいくつかの制約、
−相対的に位置付けられる、アセンブリの第1のオブジェクトと第2のオブジェクトの2次元空間における投影の間の距離
−相対的に位置付けられる、アセンブリの第1のオブジェクトと第2のオブジェクトの間の3次元空間における距離、
−相対的に位置付けられる、アセンブリの第1のオブジェクトと第2のオブジェクトの間の回転角、
−相対的に位置付けられる、アセンブリの第1のオブジェクトと第2のオブジェクトは、グラフィカルユーザインタフェース上で可視的である、
−相対的に位置付けられる、アセンブリの第1のオブジェクトと第2のオブジェクトの間の設計の誤りが検出される、
−アセンブリの第2のオブジェクトに対する第1のオブジェクトの位置のセットを計算するステップは、第1のオブジェクトのインタフェース情報と第2のオブジェクトのインタフェース情報の少なくとも1つのマッチングを計算すること、およびこの少なくとも1つのマッチングの各計算の後、第1のオブジェクトと第2のオブジェクトの間の形状制約を解決することを備える、
−インタフェース情報の少なくとも1つのマッチングを計算するステップ、およびこの少なくとも1つのマッチングの各計算の後に、形状制約を解決するステップは、グラフの走査に従って実行され、グラフの各ノードは、第1のオブジェクトの1つのインタフェース情報と第2のオブジェクトの1つのインタフェース情報の組合せを表し、グラフの所与のレベルにおけるグラフの、親ノードを指す各ノードは、その所与のレベルの上位レベルにおける別のノードによって既に表された組合せを表し、解決不能な形状制約を有するグラフの各ノードは、グラフから除去され、さらに所与のノードに関して、位置のセットのなかの或る位置が、以下、すなわち、
−その所与のノードの組合せから構築された制約のセット、および
−その所与のノードの親の組合せから構築された制約のセットによってもたらされる、
−アセンブリの第2のオブジェクトに対する第1のオブジェクトの位置のセットを計算するステップは、第1のオブジェクトの少なくとも2つのインタフェース情報の間の第1の識別子、および第2のオブジェクトの少なくとも2つのインタフェース情報の間の第2の識別子を計算すること、インタフェース情報のこの第1の識別子、およびこの第2の識別子を、第1のオブジェクトのその少なくとも2つのインタフェース情報、および第2のオブジェクトのその少なくとも2つのインタフェース情報をそれぞれ所有するオブジェクトにそれぞれ関連付けること、ならびにその第1のオブジェクトとその第2のオブジェクトの少なくとも1つがかかわる別のマッチングの計算中に、マッチングを識別するためにその第1の識別子、およびその第2の識別子を使用することをさらに備える、
−アセンブリの第2のオブジェクトに対する第1のオブジェクトの位置のセットを計算するステップは最初に、ユーザによって追加された制約を考慮に入れて実行され、次に、ユーザによって追加された制約を考慮に入れずに実行される、
−第2のオブジェクトに対する第1のオブジェクトのセットの位置を格付けするステップは、少なくとも2つの基準に従って実行され、少なくとも2つの基準の各基準は、格付けされ、セットの位置は、この格付けされた基準に依拠して辞書式順序で格付けされる、
−第1のオブジェクトおよび第2のオブジェクトを選択するステップにおいて、第1のオブジェクトの少なくとも1つのパブリケーション(publication)、および第2のオブジェクトの少なくとも1つのパブリケーションを識別するステップ、ならびに第1のオブジェクトの識別された少なくとも1つのパブリケーション、および第2のオブジェクトの識別された少なくとも1つのパブリケーションのそれぞれに関して、第1のオブジェクトのインタフェース情報、および第2のオブジェクトのインタフェース情報を計算するステップ、
−第1のオブジェクトのその少なくとも1つのパブリケーション、および第2のオブジェクトのその少なくとも1つのパブリケーションは、形状の要素を備える、
−第1のオブジェクトのインタフェース情報、および第2のオブジェクトのインタフェース情報は、形状の要素との合致を表すために計算される、
−形状の要素は、点体系、線体系、平面体系、および軸体系に制限される、
−計算された複数の位置の同時に表示される複数の表現の1つが、触覚デバイス上でユーザアクションが行われると、同時に表示される複数の表現のその1つの上にカーソルを置くことによって強調される。
【0017】
本発明は、コンピュータ支援設計のシステムにおいてオブジェクトのアセンブリを設計するための、コンピュータ可読媒体上に格納されたコンピュータプログラムであって、本発明の方法のステップをコンピュータ支援設計のシステムに実行させるためのコード手段を備える、コンピュータプログラムをさらに提案する。
【0018】
本発明はさらに、コンピュータ支援設計のシステムにおいてオブジェクトのアセンブリを設計するための装置であって、本発明の方法のステップを実施するための手段を備える、装置に関する。
【図面の簡単な説明】
【0019】
次に、開示の技術を実施するシステムを、限定的でない例として、添付の図面を参照して説明する。
【図1】CADシステムにおける通常のGUIを示す概略図である。
【図2】本発明を実行するための実施形態を示す流れ図である。
【図3】本発明による方法を表すグラフィック表現である。
【図4】本発明による方法を表すグラフィック表現である。
【図5】本発明による方法を表すグラフィック表現である。
【図6】本発明によるクランクの軸とのはめ合わせを示す図である。
【図7】本発明によるクランクの軸とのはめ合わせを示す図である。
【図8】本発明によるクランクの軸とのはめ合わせを示す図である。
【図9】本発明を実行するために適合されたハードウェア環境およびソフトウェア環境を示す概略図である。
【発明を実施するための形態】
【0020】
図1を参照すると、例示のグラフィカルユーザインタフェース(またはGUI)100は、標準のメニューバー110、120、ならびに、底部ツールバーおよび側部ツールバー140,150を有する通常のCAD様のインタフェースであることが可能である。そのようなメニューおよびツールバーは、当技術分野で知られているとおり、1つもしくは複数の操作または機能にそれぞれが関連する、ユーザの選択可能なアイコンのセットを含む。
【0021】
これらのアイコンのいくつかは、GUI100において表示されるようなモデル化された製品200または製品200の部品を編集するため、および/または、そのような製品200または製品200の部品に対して作業するように適合されたソフトウェアツールに関連する。以下の説明において、「製品」、「部品」、「アセンブリ」などは、簡明のため「部品」と呼んでもよい。「部品」の概念は、実際、「オブジェクト」の概念に一般化することが可能であり、オブジェクトは、設計される製品の「物理的」部品に過ぎないことも、またはより一般的には、設計プロセスに加わる(ただし、最終製品には必ずしも「入って」いない)任意のソフトウェアツールとすることができることにも留意する。
【0022】
ソフトウェアツールは、ワークベンチにグループ化することが可能である。各ワークベンチは、ソフトウェアツールのサブセットを備える。特に、ワークベンチの1つは、モデル化された製品200の形状特徴を編集することに適した編集ワークベンチである。操作の際、設計者は、例えば、オブジェクト200の或る部品を事前に選択し、次に、適切なアイコンを選択することにより操作(例えば、寸法、色などを変更する)を開始する、または形状制約を編集することが可能である。例えば、通常のCAD操作は、スクリーン上に表示された3Dモデル化されたオブジェクトの穿孔または折り曲げのモデル化である。
【0023】
さらに、1つもしくは複数の操作または機能は、GUI100において表示された、モデル化された製品200または製品200の部品の近くで直接選択することが可能である。この目的で、操作または機能に関連するユーザ選択可能なアイコン170がセレクタ160、例えば、マウスなどの触覚デバイスのカーソルの近くに現れ得る。ユーザは、フィラクテリ(phylactery)170上でカーソル160を動かすことが可能であり、これに応答して、フィラクテリ170は、アイコン180のセットを表示する。通常、ユーザ選択可能なアイコン170、180は、フィラクテリの形態を有することが可能である。次に、ユーザは、アイコンのセット180のうちのアイコンの1つを、選択されたアイコンに関連する機能を実行するために選択する。さらに、アイコンのセット180は、意味論的に振舞う、つまり、アイコンのセット180は、ユーザが考えていると思われる操作に応じてCADシステムによって示唆される。
【0024】
GUIは、例えば、表示された製品200に関連するデータ250を表示することが可能である。図1の例では、「特徴ツリー」として表示されたデータ250、およびデータ250の3D表現200が、ブレーキキャリパーおよびブレーキディスクを含むブレーキアセンブリに関連する。GUIは、例えば、オブジェクトの3Dの方向付けを円滑にするため、編集される製品の操作のシミュレーションをトリガするため、または表示される製品200の様々な属性をレンダリングするための、様々なタイプのグラフィックツール130、160をさらに示すことが可能である。
【0025】
図2は、本発明の実施形態を示す流れ図であり、ここではインタフェース情報を有するオブジェクトを選択する段階(ステップ20、30および31)、第2のオブジェクトに対する第1のオブジェクトの位置のセットを計算する段階(ステップ40〜62)、それらの位置を格付けする段階(ステップ80)、および計算された複数の位置の表現を同時に表示する段階(ステップ90)にそれぞれが関係する4つのブロックが見られることになる。流れ図の様々なボックスは、いくつかの形状、すなわち、ユーザ(例えば、設計者)入力を指摘する台形形状2000、ステージを表す長方形形状2001、ループを示す六角形形状2002、および条件のテストである平行四辺形2003を有する。
【0026】
本発明の図示した実施形態は、オブジェクトのアセンブリの第1のオブジェクトおよび第2のオブジェクトの選択から始まる。第1のオブジェクトと第2のオブジェクトは、インタフェース情報を有する。このことは、図2でステップ20、30および31によって示される。
【0027】
ステップ20で、アセンブリの第1のオブジェクトおよび第2のオブジェクトが選択され、つまり、第1のオブジェクトおよび第2のオブジェクトが、オブジェクトのアセンブリのオブジェクトのなかから識別されて選択される。この選択は、CADのシステムにより実行することが可能である。また、この選択は、図1に示したとおり、通常、CADシステムのグラフィカルユーザインタフェース100において、ユーザアクションが行われると、実行するようにしてもよい。この選択がユーザによって実行される場合、ユーザは、キーボード、マウス、スタイラス、タッチスクリーンなどの触覚デバイスを使用することが可能である。例えば、2つボタンのマウスにおいて、マウスのカーソルがGUIの専用エリア上にある際に、左ボタンはオブジェクトを選択するために使用することが可能である。
【0028】
選択された第1のオブジェクトおよび第2のオブジェクトは、GUI100において表示することが可能である。さらに、選択された第1のオブジェクトおよび第2のオブジェクトは、モデル化されたオブジェクト、または3D(3次元)モデル化されたオブジェクトとし得る。3D(3次元)モデル化されたオブジェクトは、3D(3次元)空間におけるオブジェクトの描写である。3D空間は、座標によって3次元空間におけるすべての点を表す形状によって数学的に表すことが可能な物理的世界(physical universe)の形状モデルである。ちなみに、3次元空間を表す他の方法も存在する。3Dモデル化されたオブジェクトは、基本的に、形状が生成される元の仕様を指す。このため、3Dモデル化されたオブジェクトは、3Dオブジェクト、つまり、三角形、線、曲面などの様々な形状エンティティによって結び付けられた、3D空間における点の集まりである3Dオブジェクトを表す数学的記述である。3Dモデル化されたオブジェクトは、3Dモデル化されたオブジェクトの3D表現によって表される。
【0029】
さらに、オブジェクトのアセンブリの第1のオブジェクトと第2のオブジェクトは、異なる製品とし得る。製品は、オブジェクトのアセンブリから形成される。このため、選択は、アセンブリのオブジェクトに対して行うことも、アセンブリの製品に対して行われることも可能である。第1のオブジェクトは、「配置されるべき」オブジェクト(または製品)と呼んでもよいし、第2のオブジェクトは、「ターゲット(target)」オブジェクト(または製品)と呼んでもよい。
【0030】
第1のオブジェクトおよび第2のオブジェクトは、パブリケーションを有する。通常、パブリケーションは、オブジェクトと一緒に格納される(または「埋め込まれる」)ことが可能である。パブリケーションは、オブジェクトの下に集約された、このオブジェクト内の形状要素または別のパブリケーションへのリンクであり、パブリケーションは、第1のオブジェクトを、オブジェクトのアセンブリの他のオブジェクト(例えば、第2のオブジェクト)と結び付けることに関するはめ合わせ情報を作成して公表する。したがって、パブリケーションは、オブジェクトのアセンブリの他の少なくとも1つのオブジェクトに対するオブジェクトの位置付けの知識のセットを定義することが可能である。オブジェクトと一緒にパブリケーションを集約すること(または「埋め込むこと」)は、第1のオブジェクトと第2のオブジェクトがともに、はめ合わせを実行するために要求される情報を有するので、オブジェクトを配置する際に自動化を大いに進める。
【0031】
パブリケーションは、形状の要素へのリンクである。形状の要素は、点体系、線体系、平面体系、および軸体系に限定し得るのが好ましい。通常、この限定は、アセンブリの技術的状況に従って行われ、例えば、機械的状況において、形状の要素は、好ましくは、点体系、線(line)体系、平面体系、および軸体系に限定される。別の技術的状況(例えば、ギアを備える機械的システム)において、曲線(curve)が保持される。この制約から、オブジェクトに与えられる情報の量が制限される一方で、オブジェクトをはめ合わせるための十分な数の情報が保たれることになる。さらに、他の少なくとも1つのオブジェクトに対するオブジェクトの位置付けソリューションの数が制限され、最も妥当な位置が保持される。したがって、試行の回数が減る一方で、より良い結果がもたらされる。
【0032】
次に図3を参照すると、図1に関連して説明したとおり、プレート300およびねじ400がGUI100上に表示されている。GUIは、表示された製品300および400と関連するデータ250を表示する。図3の例において、データ250は、「特徴ツリー」として表示され、プレート300およびねじ400のパブリケーションを示している。ねじ400は、2つのパブリケーション、すなわち、軸401のパブリケーション、および面402のパブリケーションを備える。プレート300は、5つのパブリケーション、すなわち、穴301ないし304の各軸につき1つのパブリケーション、および面305に関する1つのパブリケーションを備える。2つの製品300および400の部品のこれら7つのパブリケーションが作成され、設計者は、これらのパブリケーションが含む情報へアクセスすることが可能である。
【0033】
図2に戻ると、ステップ30で、開示の技術プロセスが、第1のオブジェクトのパブリケーション、および第2のオブジェクトのパブリケーションがインタフェース情報であるかどうかを判定する。すべてのパブリケーションがインタフェース情報である場合、プロセスの次のステップは、ステップ40である。逆に、パブリケーションのいくつかがインタフェース情報ではない場合、プロセスの次のステップは、ステップ31である。
【0034】
インタフェース情報は、別の適合するインタフェース情報を有する完全に指定された制約を構築するようにデータによって拡張されたパブリケーションである。このため、インタフェース情報は、第1のオブジェクトを、アセンブリの別のオブジェクトに結び付けることに関するはめ合わせ情報をもたらし、はめ合わせ情報は、アセンブリの他の少なくとも1つのオブジェクトに対して第1のオブジェクトを位置付けるための要求される知識を備える。したがって、インタフェース情報により、新たなオブジェクトが、補足的な情報を要求することなく、追加されて別のオブジェクトに対して配置され得る。インタフェース情報を使用することは、設計者が、オブジェクトの配置に先立って、オブジェクトのはめ合わせ情報を追加することができるので、設計者にとって有益である。さらに、設計者は、オブジェクトに対する設計者の権利に依存して、オブジェクトのはめ合わせ情報にアクセスすることも、アクセスできないようにすることも可能である。このことは、設計の誤りを減らすことにつながり得る。その結果、別のオブジェクトに対して相対的にオブジェクトを位置付けるプロセスが、改良され、より迅速となる。
【0035】
ステップ31で、本発明によるプロセスは、第1のオブジェクトおよび第2のオブジェクトの少なくとも1つのパブリケーションを識別し、第1のオブジェクトおよび第2のオブジェクトの識別された各パブリケーションに関して、第1のオブジェクトおよび第2のオブジェクトのインタフェース情報を計算する。この目的で、第1のオブジェクトおよび第2のオブジェクトのパブリケーションは、適合するパブリケーションを有する完全に指定された制約を構築するために、第1のオブジェクトの予想される形状のタイプ、向き、および距離などの、利用可能なすべての情報を含むように拡張される。このため、インタフェース情報は、オブジェクトのアセンブリの組み立てられた製品から推定された情報に基づいて構築される。
【0036】
実際には、第1のオブジェクトおよび第2のオブジェクトのインタフェース情報は、点対点の合致、線対線の合致、および平面対平面の接触を制約として有する、オブジェクトのアセンブリの形状の要素、例えば、合致(coincidence)、回転(revolute)、角柱(prismatic)等の製品間の最も共通する運動学のジョイントとの合致を表すために計算される。インタフェース情報は、オブジェクトの形状の要素に結び付けられ、例えば、形状の要素は、点体系、線体系、平面体系、および軸体系に限定することができるのが好適である。同様に、パブリケーションに関して、この制約から、オブジェクトをはめ合わせるための情報の要求される量が制限されることになる。
【0037】
さらに、第1のオブジェクトと第2のオブジェクトのパブリケーションが拡張されると、つまり、インタフェース情報が計算されると、フック点(hooking point)を構築することができる。フック点は、共通の識別子を有するインタフェース情報またはパブリケーションのセットである。プロセスのこの段階で、フック点により、ステップ31で計算されたインタフェース情報を識別することが可能になる。
【0038】
しかし、インタフェース情報は、パブリケーションから常に計算可能なわけではなく、例えば、計算を実行するための利用可能な情報があるわけではない。この目的で、インタフェース情報とパブリケーションは互換的であり、このことは、ステップ40〜90が、パブリケーションだけを使用して、インタフェース情報だけを使用して、または、パブリケーションとインタフェース情報の混合を使用して実行することができることを含む。
【0039】
ステップ30および31が実行されると、ステップ40〜62が、アセンブリの第2のオブジェクトに対する第1のオブジェクトの位置のセットを計算するために実行される。このステージで、第1のオブジェクトおよび第2のオブジェクトは、インタフェース情報を有し、位置のセットの計算は、これらのインタフェース情報により実行することが可能である。しかし、前述したとおり、セットの計算は、パブリケーションだけを使用して、またはパブリケーションとインタフェース情報の混合を使用して実行することも可能である。
【0040】
また、第1のオブジェクトと第2のオブジェクトの間の位置のセットの計算は、示唆される制約である補足的な制約を考慮に入れることも可能である。実際、前述したステップ40〜62を実行するのに先立って、ユーザ操作が行われると、第1のオブジェクトおよび第2のオブジェクトに対する制約を入力することができる。位置のセットの計算中に、示唆される制約を考慮に入れることは、アセンブリプロセスの速度を速くするので好適である。実際、計算される位置のセットは、はめ合わせるオブジェクトを選択すること、および、示唆される制約を与えることが同時に実行されるという条件付きで、オブジェクトをはめ合わせる補足的な操作時間を要求することなく、ユーザの設計意図をふまえる。したがって、オブジェクトを組み立てる間の操作の数が減らされる。
【0041】
通常、ユーザは、例えば、図3に示されるのと同一のねじ400およびプレート300を示す図4に示したとおり、第1のオブジェクトおよび第2のオブジェクトをクリックすることにより、第1のオブジェクトおよび第2のオブジェクトを選択する際に、示唆された制約を入力することができる。ねじ400の下面402が、点403を触覚デバイスのカーソルでクリックすることによりユーザによって選択され、プレート300の上面が、点310を触覚デバイスのカーソルでクリックすることによりユーザによって選択される。また、ユーザは、ドラッグアンドドロップ操作を介して制約を示唆することも可能である。例えば、ユーザは、点403をクリックすることによってねじ400の下面402を選択し、プレート300上面の上にねじ400の下面402をドラッグし、ねじ400の点403がプレート300の点310の近くにきたときにねじ400をドロップすることができる。また、示唆される制約は、例えば、図3に関連する「ツリー」250を介して入力することも可能である。限定としてではなく、当技術分野で知られているとおり、他の任意の手段が制約を示唆するために使用されることが可能である。
【0042】
ステップ40のサブステップ41〜62は、2回のパス(two passes)で達する。第2のオブジェクトに対する第1のオブジェクトの位置のセットの計算はまず、ユーザによって入力された制約を考慮に入れて実行され、次に、ユーザによって入力された制約を考慮に入れずに実行される。好ましくは、2回で計算することにより、ユーザによって示唆された制約を含む位置を備える位置のセットだけでなく、特性要素のみを使用する位置を計算することが可能となる。インタフェース情報から構築された1つまたは複数の制約を有する位置が、インタフェース情報から構築された制約で完成することができない、示唆される制約よりも好適である。詳細には、示唆される制約を考慮に入れる任意の位置が計算することが可能であるにしても、本発明によるプロセスは、インタフェース情報から計算された少なくとも1セットの位置を提供することができる。
【0043】
位置のセットを計算すること(ステップ41〜62)は、2つのサブステップを備えることが可能である。第1のサブステップは、ステップ50〜52によって規定され、第1のオブジェクトのインタフェース情報と第2のオブジェクトのインタフェース情報の少なくとも1つのマッチングを計算することにある。第2のサブステップは、ステップ60〜62を備え、ステップ50〜52で実行される少なくとも1つのマッチングの各計算の後、第1のオブジェクトと第2のオブジェクトの間の形状制約を解決することにある。このため、位置は、インタフェース情報によって与えられる形状制約のすべての組合せを試みることにより見出される(つまり、計算される)。形状制約の組合せは、その組合せが解決することが可能であり、かつ組合せの別の制約に対して冗長な制約が全く存在しない場合、位置である。
【0044】
好ましくは、オブジェクトのインタフェース情報間のマッチングを計算すること、および形状制約を解決することは、計算するステップおよび解決するステップの間に構築されて走査される専用のグラフ構造を使用して実行される。
【0045】
当技術分野で知られるグラフ構造は、弧によって接続されたノードから成る。グラフの各ノードは、第1のオブジェクトの1つのインタフェース情報と、第2のオブジェクトの1つのインタフェース情報との組合せを表し、各弧は、或るノードから別のノードに移る可能性を表す。
【0046】
上記で見たとおり、インタフェース情報またはパブリケーションのフック点が、ステップ31で計算され得る。フック点により、計算されたインタフェース情報を識別すること、およびインタフェース情報のグループを作成することが可能になる。有利なことに、同一のフック点に属するインタフェース情報間の任意のマッチングが計算される。したがって、計算の数が減る。図3を再び参照して、インタフェース情報が、ねじ400およびプレート300のパブリケーションから始めて計算されるシナリオを検討する。このシナリオにおいて、ねじ400のフック点が、ねじ400の2つのパブリケーションから構築され、プレート300のフック点が、プレート300の5つのパブリケーションから構築される。相対的な位置を計算するときに、ねじ400のパブリケーションとプレート300のパブリケーションの間のマッチングだけが計算される。
【0047】
グラフは、幅優先で(breadth first)走査されるいくつかのレベルを備え(ステップ43〜44)、すなわち、或るレベルの兄弟ノードが、子孫ノードに先立って走査される。このため、グラフは、レベルごとに走査され、親レベルのすべてのノードが計算されて解決された後、親レベルを離れて、子レベルに向かう。グラフの各ノードは、グラフの所与のレベルにおいて、親ノード上をポイントすることが可能である、すなわち、子ノードは、親ノードに接続される。しかし、子ノードは、その子ノードによって表される組合せが、上位レベルにおける別のノードによって既に表されている場合に限って、親ノード上をポイントすることができる。つまり、グラフ構造を構築する間、或る組合せを表すノードは、その組合せが以前に全く出現していない場合、子ではあり得ない。
【0048】
実際には、構築されるグラフの最初のレベルは、ルートノードである(ステップ42)。ルートノードは、グラフの最高レベルである。次にグラフのいくつかのレベルが構築され走査される(ステップ43〜44)。グラフは、第1のオブジェクトのインタフェース情報と第2のオブジェクトのインタフェース情報のすべての組合せを備える少なくとも第2のレベルから成る。所与のレベルの各ノードに関して、第1のオブジェクトのインタフェース情報と第2のオブジェクトのインタフェース情報の1つのマッチングが、計算される(ステップ50)。マッチングが全く計算されない場合、そのノードは、ツリーから切り離される。有利なことに、このことは、探索グラフにより、インタフェース情報のマッチングの計算の数を制限することが可能になることを暗示し、実際、子ノードは、その子ノードによって表される組合せが、上位レベルにおける別のノードによって既に表されている場合に限って、親ノード上をポイントする。その結果、探索グラフを走査するのに要求される時間は、マッチングを全くもたない組合せが、下位レベルでグラフにおいて再使用され得ないので、増加する。このため、グラフを構築するため、および走査するための全体的なプロセスが向上する。
【0049】
逆に、或るノードにおけるマッチングが計算された場合、そのノードの形状制約が解決される(ステップ53)。形状制約を解決することは、当技術分野で知られているとおり、ソルバ(solver)によって実行することが可能である。マッチングをもたないノードを除去することが解決するステップにおいて有利であることは注目することができる。実際、形状制約を解決することは、システムの大量の計算リソース、例えば、CPU、メモリなどを要求する。結果として、開示の技術により、計算リソースを節約することが可能になり、セットの位置を計算するのに要求される時間が低減する。
【0050】
解決可能な形状制約をもたないグラフの各ノードは、グラフから除去される(ステップ61)一方で、解決された形状制約を有するノードは、保持される。このため、グラフは、ステップごとに構築され、走査される。グラフが走査されると、グラフのノードは、位置のセットに追加される位置をもたらす(ステップ62)。ノードの相対的な位置は、ノードの組合せから構築された制約のセット、およびノードの親の組合せから構築された制約のセットによって与えられる。
【0051】
ところで、これらの位置を計算するために要求される計算の数は、識別子、例えば、フック点の使用により改良することが可能である。その目的で、オブジェクトのインタフェース情報間の識別子が計算され、この識別子は、インタフェースを所有するそれぞれのオブジェクトに関連する。次に、この識別子は、その第1のオブジェクトとその第2のオブジェクトの少なくともいずれかがかかわる別のマッチングの計算中に、マッチングを識別するために使用される。この識別子により、組合せの以前のマッチングを識別することが可能になり、このことは、以前に計算されたマッチングをソリューションとして優遇する可能性をもたらす。
【0052】
ステップ70〜71で、ステップ40〜62で計算されたソリューションが、位置のセットのうちの位置のそれぞれの制約と関連するデータを計算するために扱われる。さらに、ステップ71で、セットの位置を格付けするように少なくとも1つの基準が計算される。基準は、1回だけ計算され、その後、セットの位置を格付けするために使用され、リソースの消費が制限されるのは都合がよい。
【0053】
ステップ80で、オブジェクトに対する第1のオブジェクトの位置のセットが、少なくとも1つの基準に従って格付けされる。格付けするステップは、予想される位置がいずれであるかが特定し容易い位置のリストをもたらす。重要なことに、この格付けは、以前計算された位置を格付けするための判定または決定に基づくことが可能な基準、つまり、標準に従って実行される。
【0054】
実際には、これらの位置の間で決定するのに1つの基準では十分でなく、一般に、少なくとも2つの基準が、これらの位置の間で格付けを行うために使用することが可能である。さらに、各基準が格付けされ、位置は、格付けされた基準に依拠して辞書式順序で格付けされる。辞書式順序は、順序付けが行われた2つのセットの自然な順序構造をもたらす。例えば、位置の第1のセットの複数の位置が、第1の基準に従って同一の格付けを有する場合、それらの位置は、第2の基準に従って格付けが行われる。その結果、位置の第2のセットがもたらされ、第1の基準および第2の基準に従って格付けされる。第2のセットが、それでも同一の格付けを有する複数の位置を備える場合、第3の基準が、位置の新たなセットを格付けするために使用されることが可能であるといった具合である。
【0055】
通常、アセンブリの第1のオブジェクトと第2のオブジェクトは、3次元のモデル化されたオブジェクトであり、基準(好ましい格付けにおける)は、以下のいずれかであり得る。すなわち、
i)アセンブリの第1のオブジェクトと第2のオブジェクトの間のいくつかの制約。この基準は、最も多くの数の制約を解決する位置、すなわち、グラフ構造のルートから最も遠く離れている複数の位置を選択する。有利なことに、このことにより、より低い自由度を有する位置を昇格させる(promote)ことが可能になる。
ii)アセンブリの、位置付けられる第1のオブジェクトと、第2のオブジェクトとの間でユーザによって示唆されるいくつかの制約。2つの位置の間に同一の数の制約がある場合、示唆された制約を最も多く備える位置が好しい。
iii)2次元空間におけるアセンブリの、位置付けられる第1のオブジェクトの投影と、第2のオブジェクトの投影との間の距離。第1のオブジェクトおよび第2のオブジェクトは、3次元オブジェクトである。第1のオブジェクトおよび第2のオブジェクトは、平面上に投影されることが可能であり、例えば、その平面は、コンピュータスクリーンによって規定される。距離は、例えば、ユーザが、上記でみたとおり、第1のオブジェクトおよび第2のオブジェクトを選択する際に、制約を示唆している間に、ユーザによって以前に入力された2つのピック点(picking point)の間で測定されることが可能である。このため、第2のオブジェクトに対する第1のオブジェクトの各位置は、ピック点を有し、第2のオブジェクトも同様である。したがって、配置された第1のオブジェクトと第2のオブジェクトのピック点の間の距離を測定することが可能である。これらの測定された位置に従って、位置は、格付けされ得る。実際には、位置付けられる第1のオブジェクトと第2のオブジェクトとの間でより小さい距離をもたらす位置が優遇され、測定された距離が短いほど、位置は良好である。実際、設計者が、優遇を所望する位置をシステムに示す可能性を有することができるため、小さい方の距離を優先することにより、全般的な設計プロセスの向上を可能にし、このことは、例えば、第1のオブジェクトおよび第2のオブジェクトを選択しながら、これらのオブジェクトをクリックすることにより、容易な仕方で実行することが可能である。さらに、設計者は、予想されるソリューションを得るために第2のオブジェクト全体を正確にブラウズする必要はなく、第2のオブジェクトを単純にクリックするだけで十分である。したがって、設計の誤りのほとんど、例えば、誤った第2のオブジェクトの選択を防止することが可能である。このため、オブジェクトの繰り返されるアセンブリが、設計者の生産性が大幅に向上するように、より容易で、より迅速な仕方で行われることが理解される。
iv)3次元空間における、相対的に位置付けられる3次元オブジェクトである第1のオブジェクトと第2のオブジェクトの間の距離。同様に、位置付けられる第1のオブジェクトと第2のオブジェクトのピック点の間の距離を測定し、測定された距離の小さい方を優遇することが可能である。ポイントiii)におけるのと同一の利点がもたらされることが理解される。
v)3次元オブジェクトである、位置付けられる第1のオブジェクトと、第2のオブジェクトとの間の回転角。回転角は、計算された位置に合うように、選択された第1のオブジェクトによって行われる回転を測定する。測定された回転角に応じて、それらの位置を格付けすることが可能である。実際には、より小さい回転角が優遇され、実際、設計者が、オブジェクトのアセンブリを設計している間に見るものにより近いソリューションを優遇することが有益である。例えば、図3のねじ400は、ねじ400の頭部をプレート300の上面、または下面に有しており、穴301〜303を通ることが可能である。しかし、ねじ400は、選択された際にねじ400の頭部が上に向いているので、ねじの頭部が上に向けられた位置が、ねじの頭が下に向けられた位置と比べて、第1の事例に関する回転角の方が第2の事例の場合より小さいので、優遇される。
vi)アセンブリの、位置付けられる第1のオブジェクト、および第2のオブジェクトは、グラフィカルユーザインタフェース上で可視的である。可視的である位置は、可視的でない位置と比べて優遇される。実際、位置付けられた第1のオブジェクト(配置されるべきオブジェクト)は、グラフィカルユーザインタフェース上で可視的であり、このオブジェクトのピック点は、ソリューションの位置において可視的である。有利なことに、設計者は、設計者が関心のない位置の氾濫に見舞われることがなく、実際、設計者は、アセンブリの少数のオブジェクトに的を絞り、したがって、他のオブジェクトに興味がわかない。ところで、設計者は、アセンブリ上でズームアウトすることができ、このため、格付けするステップ中に新たな位置を考慮することが可能である。
vii)位置付けられた第1のオブジェクトと、第2のオブジェクトとの間の設計の誤りが、検出される。通常、設計の誤りは、干渉仕様(interferences specifications)が順守されない場合に生じ得る。一般に、干渉仕様は、衝突仕様、接触仕様、および隙間(clearance)仕様を包含する。これに関して、2つのオブジェクトの間の衝突(物体相互侵入(matter interpenetration))を回避することが重要である。実際には、衝突が検出されると、その位置は、位置のセットから除去される。
【0056】
基準は、前述した基準に限定されず、他の任意の基準が、位置を格付けするために使用され得る。さらに、基準の格付けは、ユーザによって変更することが可能である。このようにして、位置の格付けは、ユーザのニーズおよび要件を満たす。
【0057】
ステップ90で、第2のオブジェクトに対する第1のオブジェクトの計算された位置の複数の表現が、計算された複数の位置の格付けに従って同時に表示される。実際には、同時に表示される表現は、いくつかの可視性レベルに応じて表示することが可能であり、位置の表現の各可視性レベルは、その位置のそれぞれの格付けを表す。したがって、計算された複数の位置は、同時に表示され、それぞれの可視性レベルで表現される。したがって、設計者に、多くの位置のなかから或る位置を選択する直観的で、かつ効率的な方法が与えられる。このため、設計者は、見つけるのが難しい位置でさえも、可能性のあるすべての位置を見ることができるため、オブジェクトのアセンブリを設計している間の設計者の生活体験が増える。したがって、設計者は、位置が多数である場合でさえ、自らの選択を容易に行うことができる。
【0058】
さらに、表示される位置の各表現は、それぞれの透明性レベルを有することができる。透明性レベルは、透明性が完全ではないことを暗示し、このため、位置は、設計者に常に可視的である。部分的透明性(または半透明性)は、位置の伝達する光、または拡散する光が部分的であるに過ぎない、または散乱性である場合に、達する。さらに、透明性レベルは、計算された位置の格付けに応じて決定することができる。通常、透明性レベルは、格付けの最良の位置(つまり、最も多くの数の基準を満たす位置)が、最低の透明性レベルで表示される一方で、最悪の位置(つまり、最も少ない数の基準を満たす位置)が、最低の透明性レベルで表示されるように決定することが可能である。つまり、位置が良好であるほど、表示される位置は透明性が低い。実際には、格付けの最良の位置の透明性は、基準値に設定され、第2のソリューションから最後のソリューションまでの透明性は、天井値(基準値の半分)から床値(ほとんど透明)まで直線的、かつ規則的に減少する。さらに、それぞれのレンダリングが、カラーコードに従って実行されることも可能である。その結果、設計者の視界は、透明性が、セットの位置の表示を調整するので、もはや、多数の位置の氾濫に見舞われない。このため、オブジェクトのアセンブリを発見して理解することが、設計者にとってより容易であり、したがって、設計者の生産性が向上する。
【0059】
ところで、最も透明性の低い表現を有する位置が、設計者を満足させない場合、設計者は、それでも、最も透明性の低い表現を有する位置と同一の透明性レベルを有する別の位置を表示する可能性がある。例えば、ユーザは、触覚デバイスを操作することができ、操作時に、例えば、マウスホイールを動かすと、計算された複数の位置が、位置の格付けに基づいて降順で表示される。
【0060】
図3ないし図5は、本発明による方法の実施形態のグラフィック表現である。図3は、GUI上に表示されたプレート300およびねじ400を示している。ねじ400は、「配置されるべき」オブジェクトであり、プレート300は、「ターゲット」オブジェクトである。「特徴ツリー」は、GUIにおいて、オブジェクトのパブリケーションなどの、両方のオブジェクトの特性を示す。ねじ400は、2つのパブリケーション、すなわち、軸401のパブリケーション、および面402のパブリケーションを備える。プレート300は、5つのパブリケーション、すなわち、位置のセットのホームズ(homes)計算の軸301ないし304のそれぞれにつき1つのパブリケーション、および面305に関する1つのパブリケーションを備える。
【0061】
次に、図4で、ユーザは、例えば、マウスのカーソルを使用して、「配置されるべき」オブジェクト400の下面402の点403をクリックすることにより、オブジェクト400を選択する。次に、ユーザは、「ターゲット」オブジェクト300の上面305の点310をクリックすることにより、オブジェクト300を選択する。ねじ400およびプレート300のパブリケーションは、インタフェース情報ではないので、ねじのフック点は、ねじの2つのパブリケーションから構築され、プレートのフック点は、プレートの5つのパブリケーションから構築される。さらに、ユーザは、ねじおよびプレートを選択している間に制約、すなわち、プレートの上面と、ねじの下面との間のユーザ制約を示唆する。
【0062】
次に、プロセスは、ねじとプレートの間の位置のセットを計算する。この目的で、グラフが、1回目のパス(first pass)で示唆された制約を考慮することにより、2回目のパスで示唆される制約を考慮せずに構築され、走査される。ねじと各穴の軸対軸の合致に基づいて、位置のセットが計算されて4つの位置420〜423を備える。このステップで、プロセスは、位置420〜423の表現を同時に表示することが可能である。さらに、表現は、いくつかの可視性レベルに応じて表示することが可能である。例えば、同時に表示される表現は、それぞれの透明性を有することが可能である。
【0063】
次に、それらの位置が、基準に従って格付けされる。第1の基準は、ねじとプレートの間で制約の数を分析し、この数は、同一である。したがって、第2の基準は、計算された位置を分けるために要求され、ねじとプレートとの間でユーザによって示唆される制約の数は、各位置に関して同一である。次に、第3の基準が使用され、ねじ400のピック点403が、各位置420〜423に配置され、次に、点430〜433と、プレート300のピック点310との間の、2次元空間における距離が測定される。距離が短いほど、位置は良好である。図4によれば、これらの位置は、以下のとおり(最良から最悪まで)格付けされる。すなわち、最良の位置(1と評定される)が位置423であり、次が、位置422(2と評定される)、420(3と評定される)、および421(4と評定される)である。
【0064】
格付けされると、これらの位置のそれぞれの表現は、格付けに応じて表示される。図4で、位置423は、位置420、421、および422より良好な可視性レベルを有する。
【0065】
図5は、設計者が、ねじ頭部400のかど500a、およびプレート300のかど500bを選択していること以外は、図4と同様である。このため、ユーザによって示唆される制約は、この2つのかどの間の接触である。位置のセットを計算する際、ユーザによって示唆される制約は、パブリケーションで構築された制約で完成する。しかし、この場合、制約のこの組合せから、これらの組合せは、過度の制約であることになる。このため、示唆される制約を考慮に入れるグラフの1回目のパスは、失敗し、位置のセットは、グラフの2回目のパスからのみ、つまり、示唆される制約を考慮に入れずに、計算される。その結果、それらの位置は、ねじおよびプレートのパブリケーションに基づいて計算される。次に、セットの位置は、図4の場合と同様に格付けされ、ソリューション501が、他の3つの位置より高い可視性レベルでGUI上に表示される。
【0066】
ところで、設計者は、これらの位置の間でナビゲートすることができる。同時に表示される複数の位置の1つは、その位置の上にカーソルを置くことにより強調することが可能である。通常、このことは、触覚デバイス上でユーザアクションが行われると、例えば、マウスのカーソルがその位置の上に置かれると、実行される。位置を強調することは、例えば、その位置のハイライトにより行うことが可能である。ハイライトは、その位置の表現に放射光の(emissive)明るい色を適用することにある。また、強調することは、位置を明滅させること、強調される位置の輪郭を太くすること、または強調される位置の輪郭を形成する点の密度を高くすることの視覚効果を介して実行することも可能である。ところで、設計者が或る位置を他の位置から区別することを可能にする任意の手段を使用することが可能である。
【0067】
次に図6〜図8を参照すると、クランク900を軸901とはめ合わせることが示されている。図6で、本発明に従って計算されたセット位置の位置がGUI上に表されている。これらの表現のなかで、位置910は、透明性がより低く、実際、この位置は、格付けによる最良の位置(つまり、最も少ない数の基準を満たす位置)である。位置920および930は、より透明性が高い。図6は、透明性と、計算された複数の位置の妥当性との間の直線性を示している。したがって、ユーザは、透明性がより低いので、いずれが最良の位置であるかを容易に検出することができる。一方、設計者が最良の位置を妥当であるとみない場合、それでも、設計者は、他の位置を見ることができる。
【0068】
図7において、設計者は、最良の位置910の上に触覚デバイスのカーソル902を移動している。したがって、この位置は、強調される。設計者は、その結果、最良の位置に基づくソリューションを事前に視覚化することができ、他の位置の透明性が低減する一方で、位置910の透明性が高まる。このため、ソリューション位置910が強調され、このことにより、ユーザは都合よく、そのソリューションを容易に理解することが可能になる。
【0069】
設計者が、別の位置930の上にカーソル902を移動すると、図8に示したとおり、今度は、この位置が強調される。したがって、設計者は、各位置を、他の位置とは独立してプレビューすることができる。その一方で、設計者は、他の位置のなかから容易にナビゲートすることができる。
【0070】
以上の方法は、CAD/CAM/CAEシステム又はオブジェクトのアセンブリを設計するために使用される任意のシステムによって定義することが可能な任意の構成における任意のオブジェクトに適用することができることを理解するべきである。本発明は、デジタル電子回路あるいはコンピュータハードウェア、コンピュータファームウェア、コンピュータソフトウェア、または、それらの組合せで実施されることが可能である。本発明の装置は、プログラマブルプロセッサによって実行するようにマシン可読ストレージデバイスとして具現化されたコンピュータプログラムプロダクトで実施することが可能であり、本発明の方法ステップは、入力データに対して操作すること、および、出力を生成することによって本発明の機能を実行する命令のプログラムを実行するプログラマブルプロセッサによって実行され得る。
【0071】
本発明は、データストレージシステムからデータおよび命令を受け取るとともに、データストレージシステムにデータおよび命令を送るように接続された少なくとも1つのプログラマブルプロセッサと、少なくとも1つの入力デバイスと、少なくとも1つの出力デバイスとを含むプログラマブルシステム上で実行可能な1つまたは複数のコンピュータプログラムで実施されることが可能であるのが好ましい。このアプリケーションプログラムは、高レベルの手続きプログラミング言語もしくはオブジェクト指向プログラミング言語で、または、所望する場合はアセンブリ言語もしくは機械語で実施することが可能であり、いずれにしても、言語は、コンパイラ言語またはインタプリタ言語とし得る。
【0072】
図9は、オブジェクトのアセンブリを設計しているユーザのクライアントコンピュータシステム、例えば、ワークステーションを示している。このクライアントコンピュータは、内部通信バス1200に接続されたCPU(中央処理装置)1201と、バスに接続されたRAM(ランダムアクセスメモリ)1207とを備える。クライアントコンピュータシステムは、バスに接続されたビデオランダムアクセスメモリ1210に関連するGPU(グラフィカル処理装置)1211をさらに備える。ビデオRAM1210は、当技術分野でフレームバッファとしても知られている。大容量ストレージデバイスコントローラ1202が、ハードドライブ1203などの大容量メモリデバイスへのアクセスを管理する。コンピュータプログラム命令およびデータを具現化するのに適した大容量メモリデバイスには、例として、EPROMデバイス、EEPROMデバイスおよびフラッシュメモリデバイスなどの半導体メモリデバイス、内部ハードディスクおよびリムーバブルディスクなどの磁気ディスク、光磁気ディスク、ならびに、CD−ROMディスク1204を含む、すべての形態の不揮発性メモリを含む。上記のいずれかが、特別に設計されたASIC(特定用途向け集積回路)によって補完される、またはそのようなASICに組み込むことができる。ネットワークアダプタ1205が、ネットワーク1206へのアクセスを管理する。また、クライアントコンピュータシステムは、カーソル制御デバイスまたはキーボードなどの触覚デバイス1209も含むことが可能である。カーソル制御デバイスは、クライアントコンピュータにおいて、ユーザが、ディスプレイ1208上の任意の所望の場所にカーソルを選択的に位置付けることを可能にするために使用される。さらに、カーソル制御デバイスにより、ユーザは、様々なコマンドを選択すること、および制御信号を入力することを可能になる。カーソル制御デバイスは、システムに制御信号を入力するためのいくつかの信号生成デバイスを含む。通常、カーソル制御デバイスは、マウスとすることができ、マウスのボタンが、信号を生成するために使用される。
【0073】
本発明の好ましい実施形態を説明した。本発明の趣旨および範囲を逸脱することなく、様々な変更を行うことが可能であることは理解されるだろう。したがって、他の実施態様も、添付の特許請求の範囲に含まれる。例えば、基準の格付けは、アセンブリの技術的状況に依存し得る。

【特許請求の範囲】
【請求項1】
コンピュータ支援設計のシステムにおいてオブジェクトのアセンブリを設計するための方法であって、
インタフェース情報をそれぞれが有する、前記アセンブリの第1のオブジェクトおよび第2のオブジェクトを選択するステップ(20)と、
前記アセンブリの前記第2のオブジェクトに対する前記第1のオブジェクトの位置のセットを計算するステップ(40)と、
前記第2のオブジェクトに対する前記第1のオブジェクトの前記計算された複数の位置の表現を同時に表示するステップ(90)とを備えることを特徴とする方法。
【請求項2】
前記計算された複数の位置の前記同時に表示される表現は、いくつかの可視性レベルに応じて表示されることを特徴とする請求項1に記載の方法。
【請求項3】
前記計算された複数の位置の前記同時に表示される表現は、それぞれの透明性を有することを特徴とする請求項1または2に記載の方法。
【請求項4】
前記計算された複数の位置の前記同時に表示される表現は、前記計算された複数の位置の格付けに応じて表示されることを特徴とする請求項1ないし3の一項に記載の方法。
【請求項5】
前記表示するステップに先立って、少なくとも1つの基準に従って、前記第2のオブジェクトに対する前記第1のオブジェクトの前記セットの前記位置を格付けするステップをさらに備えることを特徴とする請求項1ないし4の一項に記載の方法。
【請求項6】
位置のセットを計算するステップに先立って、ユーザ操作が行われると、前記第1のオブジェクトと前記第2のオブジェクトの間で制約を追加するステップをさらに備えることを特徴とする請求項1ないし5の一項に記載の方法。
【請求項7】
前記アセンブリの前記第1のオブジェクトおよび前記第2のオブジェクトは、3次元モデル化されたオブジェクトであり、前記少なくとも1つの基準は、
前記アセンブリの前記第1のオブジェクトと前記第2のオブジェクトの間のいくつかの制約、
相対的に位置付けされる、前記アセンブリの前記第1のオブジェクトと前記第2のオブジェクトの間でユーザによって示唆されるいくつかの制約、
相対的に位置付けされる、前記アセンブリの前記第1のオブジェクトと前記第2のオブジェクトの、2次元空間における投影の間の距離、
相対的に位置付けされる、前記アセンブリの前記第1のオブジェクトと前記第2のオブジェクトの間の、3次元空間における距離、
相対的に位置付けされる、前記アセンブリの前記第1のオブジェクトと前記第2のオブジェクトの間の回転角、
相対的に位置付けされる、前記アセンブリの前記第1のオブジェクトと前記第2のオブジェクトが、前記グラフィカルユーザインタフェース上で可視的であること、
相対的に位置付けされる、前記アセンブリの前記第1のオブジェクトと前記第2のオブジェクトの間の設計の誤りが検出されることのうちの1つであることを特徴とする請求項5または6に記載の方法。
【請求項8】
前記アセンブリの第2のオブジェクトに対する第1のオブジェクトの位置のセットを計算するステップは、
前記第1のオブジェクトの前記インタフェース情報と前記第2のオブジェクトの前記インタフェース情報の少なくとも1つのマッチングを計算するステップと、
前記少なくとも1つのマッチングの各計算の後、前記第1のオブジェクトと前記第2のオブジェクトの間の形状制約を解決するステップとを備えることを特徴とする請求項1ないし7の一項に記載の方法。
【請求項9】
前記インタフェース情報の少なくとも1つのマッチングを前記計算するステップ、および前記少なくとも1つのマッチングの各計算の後、形状制約を解決するステップは、グラフの走査に従って実行され、
前記グラフの各ノードは、前記第1のオブジェクトの1つのインタフェース情報と前記第2のオブジェクトの1つのインタフェース情報の組合せを表し、
親ノード上を指す、前記グラフの所与のレベルにおける前記グラフの各ノードは、前記所与のレベルの上位レベルの別のノードによって既に表された前記組合せを表し、
解決不能な形状制約を有する前記グラフの各ノードは、前記グラフから除去されており、
所与のノードに関して、前記位置のセットのうちの或る位置が、前記所与のノードの前記組合せから構築された制約のセット、および前記所与のノードの前記親の組合せから構築された制約のセットによってもたらされることを特徴とする請求項8に記載の方法。
【請求項10】
前記アセンブリの前記第2のオブジェクトに対する前記第1のオブジェクトの位置のセットを前記計算するステップは、
前記第1のオブジェクトの少なくとも2つのインタフェース情報の間の第1の識別子、および前記第2のオブジェクトの少なくとも2つのインタフェース情報の間の第2の識別子を計算するステップと、
前記インタフェース情報の前記第1の識別子および前記第2の識別子を、前記第1のオブジェクトの前記少なくとも2つのインタフェース情報、および前記第2のオブジェクトの前記少なくとも2つのインタフェース情報をそれぞれ所有する前記オブジェクトに関連付けることと、
前記第1のオブジェクトと前記第2のオブジェクトの少なくともいずれかがかかわる別のマッチングの計算中に、マッチングを識別するための前記第1の識別子および前記第2の識別子を使用するステップとをさらに備えることを特徴とする請求項8または9に記載の方法。
【請求項11】
前記アセンブリの第2のオブジェクトに対する第1のオブジェクトの位置のセットを前記計算するステップはまず、前記ユーザによって追加された前記制約を考慮に入れて実行され、次に、前記ユーザによって追加された前記制約を考慮に入れずに実行することを特徴とする請求項1ないし10の一項に記載の方法。
【請求項12】
前記第2のオブジェクトに対する第1のオブジェクトのセットの位置を格付けするステップは、少なくとも2つの基準に従って実行され、前記少なくとも2つの基準の各基準は、格付けされ、前記セットの位置は、前記格付けされた基準に依拠して辞書式順序で格付けすることを特徴とする請求項5ないし11の一項に記載の方法。
【請求項13】
第1のオブジェクトおよび第2のオブジェクトを選択するステップにおいて、
前記第1のオブジェクトの少なくとも1つのパブリケーション、および前記第2のオブジェクトの少なくとも1つのパブリケーションを識別するステップと、
前記第1のオブジェクトの前記識別された少なくとも1つのパブリケーション、および前記第2のオブジェクトの前記識別された少なくとも1つのパブリケーションのそれぞれに関して、前記第1のオブジェクトのインタフェース情報、および前記第2のオブジェクトのインタフェース情報を計算するステップをさらに備えることを特徴とする請求項1ないし12の一項に記載の方法。
【請求項14】
前記第1のオブジェクトの前記少なくとも1つのパブリケーション、および前記第2のオブジェクトの前記少なくとも1つのパブリケーションは、形状の要素を備えることを特徴とする請求項13に記載の方法。
【請求項15】
前記第1のオブジェクトの前記インタフェース情報、および前記第2のオブジェクトの前記インタフェース情報は、形状の要素との合致を表すために計算されることを特徴とする請求項13または14に記載の方法。
【請求項16】
形状の要素は、点体系、線体系、平面体系、および軸体系に限定されることを特徴とする請求項14または15に記載の方法。
【請求項17】
前記計算された複数の位置の前記同時に表示される表現の1つは、触覚デバイス上でユーザアクションが行われると、前記同時に表示される表現の1つの上にカーソルを置くことにより強調されることを特徴とする請求項1ないし16の一項に記載の方法。
【請求項18】
コンピュータ支援設計のシステムにおいてオブジェクトのアセンブリを設計するための、コンピュータ可読媒体上に格納されたコンピュータプログラムであって、
請求項1ないし17のうちのいずれか一項に記載のステップをコンピュータ支援設計の前記システムに行わせるためのコード手段を備えることを特徴とするコンピュータプログラム。
【請求項19】
請求項1ないし17のうちのいずれか一項に記載のプロセスのステップを実施するための手段を備えることを特徴とするコンピュータ支援設計のシステムにおいてオブジェクトのアセンブリを設計するための装置。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate

【図9】
image rotate


【公開番号】特開2011−100455(P2011−100455A)
【公開日】平成23年5月19日(2011.5.19)
【国際特許分類】
【外国語出願】
【出願番号】特願2010−248702(P2010−248702)
【出願日】平成22年11月5日(2010.11.5)
【出願人】(500102435)ダッソー システムズ (52)
【氏名又は名称原語表記】DASSAULT SYSTEMES
【Fターム(参考)】