【文献】
H.L. Chau, E.J. Derrick, H.C. Shen and R.K. Wong,A New Approach for the Specification of Assembly Systems,Assembly and Task Planning, 1995. Proceedings., IEEE International Symposium on,IEEE,1995年 8月,pages 9-14
(58)【調査した分野】(Int.Cl.,DB名)
コンピュータによって実行される命令を備えるコンピュータプログラムであって、前記命令は、オブジェクトを格納するデータベースを備えるコンピュータ支援設計システムに、請求項1から10のいずれか一項に記載の方法を実施させることを特徴とするコンピュータプログラム。
【背景技術】
【0002】
アセンブリの典型的な例は、完全な車、飛行機、船であり、車体構造の内側および/または外側の機械的および電気的機器を含む。このようなアセンブリの設計目標は、調査および代替を簡単にするために、エンジニアに対して、将来の製品を仮想的に見せることである。
【0003】
オブジェクトからなる新しいアセンブリを設計する際、設計者は通常、PLM/CADシステム(すなわち、製品ライフサイクル管理/コンピュータ支援設計システム)を用いて作業する。このシステムは、前もって格納された(また、可能性としては、新しいアセンブリを設計している間に作成され格納される)パーツまたはパーツのアセンブリなど、参照オブジェクトのデータベースを含む。
【0004】
アセンブリは、再利用グラフによってモデリングされる。再利用グラフ(または「リユース」グラフ)は、アセンブリの基底にある再利用スキーマを取り込むラベルづけされた非循環有向グラフである。より具体的には、再利用グラフのノードは、参照オブジェクトまたは参照オブジェクトのアセンブリに対応する。便宜上、以下では、ノードと、それが対応するオブジェクトとを区別しない。再利用グラフの弧は、ラベルづけされ、弧の起点ノードによる、弧の終端ノードの「利用」を表す。言い換えると、再利用グラフのノードは、その子ノードの利用、すなわち、インスタンスからなる。再利用グラフは、インスタンスグラフとしても知られる。
【0005】
再利用グラフの例を、
図1で表す。この例では、ノードaは、ノードbの2度の利用およびノードcの1度の利用からなる(すなわち、ノードaに対応する参照オブジェクトは、ノードbに対応する参照オブジェクトの2つのインスタンス、およびノードcに対応する参照オブジェクトの1つのインスタンスからなる)。
図1は、ノードbがノードcの2度の利用からなることも伝えている。
【0006】
再利用グラフがアセンブリをどのようにモデリングするかを具体的に示すために、ノードaは車に、ノードbは車の軸に、ノードcは車輪に対応するとみなす。車は、弧u
1、u
2に対応する2つの軸(前軸および後軸)を利用する。各軸は、弧u
3、u
4に対応する2つの車輪(左車輪および右車輪)を利用する。最終的に、車は、弧u
5に対応する、どの軸(予備車輪)によっても利用されない別の車輪を利用する。
【0007】
図1の例によって示すように、再利用グラフの特性は、そのノードが数回利用され得ることである。言い換えると、また、ツリーグラフとは反対に、再利用グラフのノードは、いくつかの親ノードをもつ場合がある。したがって、再利用グラフは、情報の重複を避けながら、情報をすべて集める。
【0008】
再利用グラフは、情報をすべて集め、格納するとともに、資源節約を可能にする。ただし、これは、設計に関してユーザフレンドリではない。この理由のため、展開されたグラフが、弧をすべて探り、再利用されるノードを複製することによって再利用グラフから計算される。展開されたグラフはしたがって、常にツリーグラフである(すなわち、ルートノードを除くすべてのノードは、ただ1つの親ノードをもつ)。このグラフにより、全オブジェクトの全出現が可視的になるので、アセンブリ全体を写実的に見ることができる。さらに、展開されたグラフは、アセンブリのグラフ的表現とみなすことができ、全オブジェクトの全出現はしたがって、空間内の正確な位置に表示される。展開されたグラフは、出現グラフとしても知られる。
【0009】
図1の再利用グラフに対応する展開されたグラフは
図2に表されており、これを次に参照する。
【0010】
オブジェクトの重複を考慮に入れるために、索引((・,1)、(・,2)、(・,3)、(・,4)、(・,5))を、展開されたグラフの弧(u
1、u
2、u
3、u
4、u
5)およびノード(a、b、c)に関連づける。このように、弧およびノードを含む、展開されたグラフの各記号は、一意である。ただし、展開されたグラフは、2つの理由により、システムに永続的に格納されるわけではない。第1に、複製されたデータは、再利用グラフより多くのメモリ空間をとる。これは、複雑なアセンブリを設計する際は特に問題である。第2に、複製されたデータの更新は、コピーすべての網羅的走査により、難しく、コストのかかるプロセスである。この理由により、再利用グラフのみがシステムに永続的に格納される。
【0011】
したがって、再利用グラフを展開するとき、たとえば設計者がアセンブリを編集したいとき、編集時に同じ参照オブジェクトの出現を見分けるために、索引がその場で生成される。同じアセンブリを再度開閉すると、異なる索引が生成されることになる。さらに、2人の設計者が、同じアセンブリを同時に編集し、異なる索引を生成したい場合がある。
【0012】
アセンブリは、タプル(すなわち、関係におけるオブジェクトの順序集合)をもつ関係によってさらにモデリングされる。典型的な関係は、2つのオブジェクトの間の距離である。
図1を参照して上に挙げた具体的例示においてこのような関係のタプルを作成することは、たとえば、2つの車輪の間の距離を定義することである。
【0013】
関係は、展開されたグラフを通して取り込まれる。設計者が、
図1の例においてオブジェクト(c,1)および(c,5)をもつタプルを距離関係のために作成すると仮定する。こうしたオブジェクトは両方とも、参照オブジェクトcの利用である。先に説明したように、索引(・,1)および(・,5)は、永続的には格納されない。したがって、「(c,1)と(c,5)の間の距離」を永続的に格納することは不可能である。格納する際、システムは、関係に含めるべきオブジェクトcの出現を見つけられず、開閉シーケンス後に不正出現を見つけることもない。というのは、再利用グラフが展開される度に、オブジェクトcが5回出現し、新しい索引が生成されるからである。さらに、2人のユーザがそれぞれの設計を発表するとき、関係は、アセンブリを再度読むときに両方のユーザの関係が利用可能であるように、再利用グラフとともに格納されなければならない。
【0014】
こうした制約の結果、関係は、再利用グラフの記号でエンコードされなければならなくなり、そうすることによって関係は永続的に格納することができる。現況技術による解決法は、ルートノードからの弧のパスを使って、展開されたグラフのノードを命名するものである。たとえば、ノード(c,1)は、弧(u
1,1)および(u
3,1)によってルートノード(a,1)から到達可能であり、よってそのパスは、弧記号(u
1,1)(u
3,1)の連結によって定義される。次いで、ノード(c,1)の名称は、永続記号のみを残すことによってパス(u
1,1)(u
3,1)から取得され、u
1u
3となる。(c,5)に対して同様に推論することにより、u
2u
3が得られる。最後に、ノード(c,1)と(c,5)との間の関係は、「u
1u
3とu
2u
3との間の関係」として永続的に格納される。u
1u
3、u
2u
3は、すべての索引を変更した後でも、展開されたグラフ中の一意のパスを定義することに留意されたい。この性質は、開閉シーケンス後の関係の永続性を保証する。同じアセンブリにおける関係の同時作成も保証する。
【0015】
アセンブリの開放は、2つのステップにより実施される。第1のステップは、再利用グラフから、展開されたグラフを計算するものである。第2のステップは、各関係および関係の各タプルごとに、展開されたグラフのどのノードがタプル中にあるか見つけるものである。アルゴリズムは、展開されたグラフの中を、タプルに格納されている再利用弧のパスに対応する弧のパスを求めて探索する。このステップは、「関係の更新」と呼ばれる。展開されたグラフのどのノードにも連結することができない関係のタプル(パス一致なし)は、「壊れている」と言われる。
【0016】
タプルは、アセンブリをモデリングする再利用グラフが編集されるとき、壊れる場合がある。
図3〜5は、再利用グラフの編集が、壊れたタプルにつながる状況を示す。
【0017】
図3は、
図1の再利用グラフによってモデリングされ、1つのタプルをもつConnectという名称の関係によってさらにモデリングされた、アセンブリの展開されたグラフを表す。関係Connectのタプルとは、機械的に連結されたオブジェクトの対である。
図3の例では、タプルは、非永続出現記号ではConnect[(c,1),(c,5)]として、非永続パス記号ではConnect[(u
1,1)(u
3,1),(u
2,1)(u
3,1)]として、永続パス記号ではConnect[u
1u
3,u
2u
3]として符号化され得る。
【0018】
このタプルは、
図1の再利用グラフにおける変更後に壊れる場合がある。タプルは、再利用グラフの弧のパスを使って符号化される。このグラフが編集される(弧を追加し、消去し、または経路変更し、ノードを追加し、消去するなど)場合、一部のパスは、存在しなくなる場合があり、こうしたパスで符号化されたタプルは壊れる。したがって、設計者は、タプルの再連結をやり直す必要がある。たとえば、設計者は、
図4に表すように、aとbの間に新しい参照プロダクトdを追加することによって、
図1の再利用グラフを編集すると仮定する。
【0019】
図5は、
図4の編集済み再利用グラフに対応する展開された編集済みグラフを表す。パスu
1u
3は、
図5の展開されたグラフのどのノードも識別しないので、タプルConnect[u
1u
3,u
2u
3]は壊れている。パスu
2u
3(
図3のコンテキストで定義される)は、ノード(c,7)を予想通り識別することに留意されたい。
図3の索引は、再利用グラフ編集後に開閉シーケンスをシミュレートするように変更される。
【発明を実施するための形態】
【0040】
本発明によるコンピュータ実施方法は、複数のオブジェクトからなるアセンブリを設計することを意図している。アセンブリは、ノードおよび弧をもつ非循環有向モデリンググラフによってモデリングされる。各ノードは、アセンブリのオブジェクトを表す。各弧は、起点ノードによる終端ノードの利用を表す。少なくとも1つの弧が、識別子によって一意に識別される。アセンブリは、少なくとも1つの識別子からなる第1のチェーンを含む少なくとも1つのタプルをもつ少なくとも1つの関係によってさらにモデリングされる。この方法は、少なくとも1つの識別子からなる第1のチェーンと第2のチェーンとの間の少なくとも1つのマッピングを決定するステップ、ならびに関係のタプルにおける第1のチェーンの少なくとも1度の出現を第2のチェーンで置換するステップを含む。このように、壊れたタプルは自動的に修復され、設計が容易になる。
【0041】
モデリンググラフは、アセンブリの構造、または、言い換えると、アセンブリのオブジェクトの間の階層を取り込む。アセンブリの各オブジェクトは、モデリンググラフのノードに関連づけられる。データベース中の参照データへのポインタを、ノードに付加することができる。この参照データは、たとえば、パーツの仕様、またはパーツのアセンブリを含み得る。
【0042】
少なくとも1つの弧が、識別子によって一意に識別される。識別子は、たとえば記号や文字、または記号もしくは文字のチェーン(もしくは列)である。従来技術により知られているどのタイプの識別子も、弧を識別するのに適している。以下では、文字「u」の後に数値索引xが続く記号「u
x」が、弧を識別するための例として使われる。
【0043】
より一般的には、モデリンググラフのすべての弧が一意に識別される。ただし、このことは必須ではない。
【0044】
したがって、一部の定義によると、グラフは、「ラベルづけされる」と言われ、これは、弧および/またはノードに何らかの情報を付加できることを意味する。
【0045】
定義により、「有向」は、すべての弧が配向されることを意味する。モデリンググラフは、起点ノードから終端ノードに配向される各弧が、起点ノードによる終端ノードの利用を表すように方向づけられる。このような配向された弧は、終端ノードの視点からは入力弧を、起点ノードの視点からは出力弧を表す。利用は、従来技術でのように定義される。アセンブリのオブジェクトが、別のオブジェクトを利用し、同じ別のオブジェクトによって同時に利用されることには機械的意味がないので、グラフは方向づけられる。
【0046】
定義により、「非循環」は、弧の循環がないことを意味する。モデリンググラフは非循環であり、そうでなければ、オブジェクトは、それ自体によって再帰的に定義されることになり、これは物質的観点から無意味である。
【0047】
定義により、「単ルート」は、ただ1つのノード(ルートノードと呼ばれる)が入力弧をもたないことを意味する。モデリンググラフは概して、単ルートグラフである。これはとりわけ、
図1の例に該当する。実際、設計者は概して、1つのオブジェクトアセンブリに取り組む。ただし、これは、設計者が1組のオブジェクトアセンブリに取り組んでいる場合があるので、限定ではない。
【0048】
簡潔にするために、モデリンググラフを、以下では単ルート非循環有向グラフ(DAG)とみなす。ただし、
図6、7の例は、多ルートDAGへの一般化が明快であることを示す。実際、
図6に表すような多ルートDAGは、
図7に示すように、ルートノードrおよびこのルートノードrをすべての先のルートノードに連結する弧を追加することによって、単ルートDAGに容易に変形される。
【0049】
モデリンググラフはしたがって、従来技術により知られているように再利用グラフでよい。ただし、本発明は、DAGによってモデリングされた他のタイプのアセンブリにも適用可能である。
【0050】
アセンブリは、少なくとも1つの識別子からなる第1のチェーンを含む少なくとも1つのタプルをもつ少なくとも1つの関係によってさらにモデリングされる。
【0051】
集合論において、関係とはタプルの非順序集合である。タプルとは、少なくとも1つの要素からなる順序集合である。ただし、順序づけられているタプルは、本発明の適用にとって必須ではない。したがって、タプルは、これ以降では、少なくとも1つの要素からなる集合とみなされる。タプルのアリティとは、タプルが含む要素の数である。ある関係のタプルすべてが同じアリティをもつとき、その関係のアリティについて言及される場合がある。関係のアリティはしたがって、そのタプルのアリティである。関係は、異なるアリティからなるタプルを含む場合があるので、必ずしもアリティをもつわけではない。
【0052】
アセンブリの設計というコンテキストにおいて、アセンブリをモデリングする関係は、アセンブリの設計特性を取り込む。このような関係の例、すなわち関係Connectは、
図3を参照して上で既に提示してある。概して、関係は、以下の1つを取り込む。
【0053】
−寸法決定および位置づけ制約など、オブジェクトの間の機械的リンク
−オブジェクトとその親オブジェクトとの間の相対的位置づけ
−相対的位置づけ仕様をもつ、またはもたないリンクつきコピーオブジェクトなど、オブジェクトの間のコンテキストリンク
−インタフェース公表
−編成ツリー
機械的リンクおよび位置づけ制約は、複数のオブジェクトからなるアセンブリの設計というコンテキストにおいて直観的であり、従来技術により知られている。上で提示した関係Connectはとりわけ、このカテゴリに属す。これらについて、さらに論じる必要はない。
【0054】
相対的位置づけ関係について、ここで手短に論じる。オブジェクトからなるアセンブリ、特に堅いパーツからなる機械アセンブリに適用されると、モデリンググラフの各弧は、起点ノードに対する終端ノードの相対的位置を保有する。定義により、軸システムR
2に対する軸システムR
1の相対的位置は、R
2をR
1にもっていく等長3D変換Pである。たとえば、
図1を参照すると、弧u
4は、オブジェクトbにおいてオブジェクトcの相対的位置(利用)を保有する。同様に、弧u
1は、オブジェクトaにおいてオブジェクトbの相対的位置(利用)を保有する。再利用グラフの展開は、各パーツの現場での位置づけ計算を含む。たとえば、
図2を参照すると、パーツの位置(c,2)は、bに対するcの相対的位置と、aに対するbの相対的位置との組合せである。資源節約のためには、相対的位置をアリティ1の関係として取り込むことが好ましい。
【0055】
コンテキストリンク関係について、ここで手短に論じる。SおよびTを、それぞれソースパーツおよび対象パーツという名称の、アセンブリにおいて使用される2つのオブジェクトとする。コンテキストリンクが、オブジェクトSの幾何構造をオブジェクトTにコピーすることによって作成される。コピーは、ソース幾何構造とコピーされる幾何構造との間のリンクを保存し、これは、ソース幾何構造が変更された場合、コピーされる幾何構造が、新しい形状を特色づけるために更新されることを意味する。コピーされる幾何構造の位置を管理する2つのやり方、すなわち絶対的位置づけおよび相対的位置づけがある。絶対的位置づけは、オブジェクトTを参照するコピーされる幾何構造を、オブジェクトSにおける位置に配置するものである。オブジェクトSおよび/またはTをアセンブリ内で移動しても、オブジェクトTを参照するコピーされる幾何構造の位置に影響はない。相対的位置づけは、機械アセンブリ内のオブジェクトSおよびTの相対的位置に従って、コピーされる幾何構造をパーツT内に配置するものである。オブジェクトSおよび/またはTをアセンブリ内で移動すると、オブジェクトTを参照するコピーされる幾何構造の位置を変更することになる。
【0056】
インタフェース公表関係について、ここで手短に論じる。多くのアプリケーションは、オブジェクトインタフェースの厳密な定義を必要とする。オブジェクトのインタフェースは、オブジェクトに外部世界と通信させるものである。たとえば、車輪のインタフェースは、穴および輪距を含み得る。この目的のために、オブジェクトのインタフェースの定義が、オブジェクトの外部に公開され、公表され、外部リンクは、公表されるオブジェクトのみを連結すると仮定される。公表は、モデリンググラフ中で、公表されるオブジェクトを定義する弧のユーザ定義名称およびパスによって記述される。概念上、公表は、アリティ1の関係、すなわち、タプルがただ1つのオブジェクトを含む関係のように振る舞う。
【0057】
編成ツリー関係について、ここで手短に論じる。多くの状況において、設計者が必要とするのは、モデリンググラフを変更せずにアセンブリのパーツを再編成することである。アセンブリのパーツは、展開されたツリーのリーフノードに対応し得る。モデリンググラフに対応する展開されたツリーを取得するためのフローは、既に論じてあり、従来技術により知られている。編成ツリータプルは、展開されたツリーによって与えられるツリー構造が好都合でないときは毎回作成してよい。この問題を解決するために、「編成ツリー」と呼ばれる新しいツリー構造が作成される。この編成ツリーのノードは、タイプ、名称などによって設計者が要求するものである。唯一の条件は、編成ツリーの各リーフノードを、展開されたツリーのリーフノードに関連づけることである。編成ツリーのリーフノードは、展開されたツリーのリーフノードを、その弧のパスを通じて知る。当然ながら、必要とされる数の編成ツリーを作成することができる。その結果、編成ツリーは、モデリンググラフに対応する展開されたツリーのリーフノードの数の分だけアリティが高い関係となる。
【0058】
当然ながら、アセンブリは、上でとりあげたカテゴリの1つに属す関係によって必ずしもモデリングされるわけではない。アセンブリは、オブジェクトからなるアセンブリの設計に有用な、他のどの関係によってもモデリングすることができる。
【0059】
簡潔にするために、こうした概念は、主として、以下ではアリティ2の関係、すなわち、2つのオブジェクトの間の関係によって示される。ただし、任意のアリティ(たとえば、相対的位置づけおよびインタフェース公表のケースの事例ではアリティ1、または可能性としては、編成ツリーのケースの事例ではより高いアリティ)の関係、ならびに固定アリティなしの関係への一般化は明快である。
【0060】
関係は、アセンブリの設計特性を、そのタプルにより取り込む。言い換えると、タプルは、タプルが対応する複数のオブジェクト(または1つのオブジェクト)がその関係の中にあるという情報を提供する。この感覚において、タプルは、アセンブリをさらにモデリングする。タプルは通常、一連の文字としてエンコードされる。ただし、この情報のどのエンコード法も、本発明の範囲内である。拡張により、かつ簡潔にするために、関係の中にあるオブジェクトの集合およびこの情報の符号化は両方とも、同一の「タプル」という言葉で参照される。
【0061】
アセンブリをモデリングする関係は、少なくとも1つのタプルをもつ。有効タプルは、アセンブリのオブジェクト集合に対応する。反対に、壊れたタプルは、関係の中でアセンブリのオブジェクト集合を識別することができない。
【0062】
タプルは、オブジェクトを表すノードを参照することによって、アセンブリのオブジェクト集合を識別する。従来技術でのように、ノードは、ノードを識別する弧のパスを利用することによって参照される。したがって、タプルは、少なくとも1つの識別子からなる第1のチェーンを含む。第1のチェーン中の識別子は、モデリンググラフの弧の識別子を含み得る。ただし、このことは、たとえばタプルが壊れているときは常に成り立つわけではない。
【0063】
本方法は、少なくとも1つの識別子からなる第1のチェーンと第2のチェーンとの間の少なくとも1つのマッピングを決定するステップ、ならびに関係のタプルにおける第1のチェーンの少なくとも1度の出現を第2のチェーンで置換するステップを含む。タプルが壊れているケースでは、第1のチェーンを第2のチェーンで置換することにより、タプルを修復することができる。第1のチェーンと第2のチェーンとの間のマッピングにより、設計者が介入することなく、置換するステップを正しく実施する手段が提供される。したがって、修復は自動であり、設計者は、タプルを手作業で経路変更する必要がない。したがって、設計が容易になる。
【0064】
関係は、第1のチェーンを含む複数のタプルをもち得る。代替的に、またはさらに、アセンブリは、第1のチェーンを含む少なくとも1つのタプルをもつ別の関係によってさらにモデリングすることができる。この発想は、第1のチェーンを含む複数のタプルがあり得るということである。このことはとりわけ、アセンブリのオブジェクトがいくつかの関係および/または同じ関係のいくつかのタプルの中にあるときに成り立つ。この場合、決定するステップは、一度だけ実施される。置換するステップは、第1のチェーンを含むタプルすべて、または修復のために選択されている第1のチェーンを含むタプルすべてに対して実施することができる。第1のチェーンを含むタプルが壊れているケースでは、設計者がタプルを1つずつ手作業で修復する必要がないので、設計はかなり容易になる。実際、置換はすべて、マッピングに基づいて自動的に実施されるので、修復は自動である。
【0065】
任意のタプルに対する置換ステップの実施は、第1のチェーンから第2のチェーンへの決定されたマッピングをタプルに適用することを含み得る。タプルが第1のチェーンを実際に含むケースでは、マッピングの適用は、タプル中の第1のチェーンを第2のチェーンで置換することを含む。タプルが第1のチェーンを含まないケースでは、マッピングの適用は、置換が起こらないので、識別マッピングの適用と同じである。したがって、本方法は、タプルがマッピングの第1のチェーンを含むかどうか検査し、第1のチェーンを含むタプルにのみマッピングを適用するステップを含み得る。あるいは、本方法は、検査するステップなしで、すべてのタプルにマッピングを適用することができる。
【0066】
モデリンググラフは、初期モデリンググラフを編集するステップによって与えられ得る。言い換えると、初期モデリンググラフは、変更することも修正することもできる。決定するステップは次いで、編集するステップに従って実施され得る。
【0067】
上で既に説明したように、
図1〜5は、グラフの編集が、壊れたタプルにどのようにつながるかを示す。
図1のグラフは、アセンブリをモデリングする初期グラフである。1つのタプルをもつ関係Connectが、アセンブリをさらにモデリングする。従来技術により知られているように、タプルは、初期モデリンググラフの弧の識別子チェーンを使って符号化される。識別子チェーンは、弧のパスに対応する。
図3の例に示すように、関係Connectは、タプルConnect[u
1u
3,u
2u
3]をもち得る。
【0068】
初期モデリンググラフの編集(または修正)により、以下の一連の基本操作が実施された後、
図4の例に表すようなモデリンググラフが与えられ得る。
【0069】
1.ノードdを作成する
2.弧u
6を作成する
3.弧u
6の起点をノードdに設定する
4.弧u
6の終点をbに設定する
5.弧u
1の終点をノードdに変更する
グラフの編集はしたがって、
−初期グラフの弧の消去、
−初期グラフへの弧の追加、または
−初期グラフの弧の経路変更
を含み得る。
【0070】
弧の追加は、弧の作成と同じである。弧の経路変更は、その起点ノードおよび/またはその終端ノードの再定義を意味する。
【0071】
弧の複製など、他のグラフ編集法が、本発明の範囲内である。上記基本的弧操作により、他の編集オペレータが基づき得る最小操作セットが与えられる。実際、ノードでさえも、弧のパスによりエンコードすることができる。たとえば、ノードの作成は、
図4の例で示すように、弧を追加し、他の弧を経路変更することにある。
【0072】
編集するステップに先立って、初期モデリンググラフが展開され得る。展開された初期グラフの各ノードは、弧の少なくとも1つの識別子からなるチェーンによって一意に識別され得る。チェーンは、初期グラフの弧のパスに対応する。編集するステップに先立って初期モデリンググラフを展開することにより、編集するステップがよりユーザフレンドリになる。
【0073】
図2は、
図1の初期グラフを展開した結果の例である。
図3は、
図2の、展開された初期モデリンググラフ中でのタプルConnect[u
1u
3,u
2u
3]を図示する。
【0074】
モデリンググラフはこのように、初期モデリンググラフを編集した結果である。
図4のモデリンググラフのコンテキストにおいて、
図5に表す展開されたモデリンググラフのどのノードもパスu
1u
3が識別しないので、タプルConnect[u
1u
3,u
2u
3]は壊れている。
【0075】
この例は、グラフの編集がどのようにタプルを壊すかを示す。このような壊れたタプルを自動的に修復する解決法は、編集するステップに従って、第1のチェーンと第2のチェーンとの間のマッピングを決定することである。たとえば、弧u
1の起点をノードaからノードbに変更する操作5は、第1のチェーンu
1と第2のチェーンu
1u
6との間のマッピングu
1→u
1u
6に関連づけられ得る。
【0076】
このことは、置換するステップが第1のチェーン、すなわち記号u
1を、第2のチェーン、すなわち記号u
1u
6の列で形式的に置き換えることを意味する。展開されたグラフを計算した後であり、連結するべきノードを探索する前に、編集するステップの結果として得られたマッピングは、タプルConnect[u
1u
3,u
2u
3]に形式的に適用される。この例では、この適用により、モデリンググラフのコンテキストにおいて壊れているタプルConnect[u
1u
3,u
2u
3]が、タプルConnect[u
1u
6u
3,u
2u
3]によって変更される。タプルの例示を表す
図8を参照すると、置換するステップの後、
図4のモデリンググラフでは、このタプルは、展開されたモデリンググラフの2つのノードを弧パスu
1u
6u
3、u
2u
3により正しく識別するので有効である。従来技術でのように、この有効タプルは、モデリンググラフが展開される度にConnect[(c,9),(c,7)]として非永続記号で符号化することができる。
【0077】
タプルを壊すことのない、「構造の変更」に対する代替法は、編成ツリーを修正することにある。この方法は、モデリンググラフが変更されないので、リンクを壊すことがない。逆に、本発明は、再利用グラフ編集に関わらずタプルを自動的に修復するための方法を提供する。
【0078】
モデリンググラフ編集後の壊れたタプルの自動修復のおかげで、PLM/CADシステムは、設計者に対して、必須のタプル修復またはタプル経路変更操作を求めるだけである。「明らかな」経路変更操作は、システムによって自動的に実施される。したがって、設計者は、非生産的作業に時間を費やすことで不満を感じず、時間の節約は、設計作業に特有である。さらに、手作業での経路変更操作によって引き起こされる潜在エラーがなくなるので、品質が守られる。
【0079】
編集するステップおよび決定するステップは、繰り返すことができる。初期モデリンググラフは、数回編集され得る。その度に、マッピングはそれに従って決定され得る。
【0080】
たとえば、設計者は、上記と同じく、aとbの間に新しい参照dを挿入し、dとbの間に別の新しい参照eを挿入することによって編集を実施すると仮定する。その結果得られるモデリンググラフおよび展開されたモデリンググラフを、それぞれ
図9、10に示す。
【0081】
各編集ステップに従って、各編集ステップの後に決定ステップで決定されたマッピングは、u
1→u
1u
6およびu
6→u
6u
7である。
【0082】
決定するステップの反復で決定された各マッピングにより、マッピングリストが増分され得る。このようなマッピングリストは、アセンブリをモデリングする。リストとは、順序集合である。したがって、リストのマッピングは順序づけられる。増分は、決定するステップの反復が実施される順序を尊重する。このように、マッピングリストは、編集履歴を追跡する。マッピングリストにより、多くのステップを含む高度な編集が初期モデリンググラフに対して実施されるケースであっても、壊れたタプルの自動修復が可能になる。
【0083】
上記例において、リストは、マッピングu
1→u
1u
6、u
6→u
6u
7からなる。したがって、タプルConnect[u
1u
3,u
2u
3]は、
図9、10の編集されたグラフのコンテキストでは壊れているが、チェーンu
1をチェーンu
1u
6で、次いで、チェーンu
6をチェーンu
6u
7で連続して置換することによって修復され、その結果Connect[u
1u
6u
7u
3,u
2u
3]となり、これは編集されたモデリンググラフのコンテキストにおいて有効タプルである。
【0084】
置換するステップの前に、マッピングリストを凝縮することができる。実際、
図9、10の例では、2つのマッピングu
1→u
1u
6、u
6→u
6u
7のリストが、ただ1つ、すなわちu
1→u
1u
6u
7に凝縮され得ることに気づくであろう。壊れたタプルは次いで、以前と同じ有効タプルConnect[u
1u
6u
7u
3,u
2u
3]になるように修復されるが、このタプルは、
図10の展開されたグラフの出現ノード(c,9)と(c,7)を正しく連結する。こうすることにより、メモリ資源が節約される。プロセッサの性能のために、この凝縮操作は、置換するステップの前に実施すればよい。
【0085】
より一般的には、本発明は、以下の目的でソフトウェアアーキテクチャを定義する。
【0086】
・モデリンググラフを編集するどのオペレータも、マッピングを決定する。マッピングは、規則に従って自動的に決定され得る。このような規則は、編集アルゴリズムを担当するソフトウェアエンジニアの責任である。後で証明される数学的定理が、このような規則の定義を助け得る。マッピングは、設計者によって決定してもよい。
【0087】
・マッピングリストは、性能目的のために適用前に凝縮され得る。
【0088】
・凝縮されたマッピングリストは、置換のために、すべての関係定義に関わるすべてのタプルに形式的に適用され得る。あるいは、マッピングリストのマッピングの一部を、タプルの一部に適用してもよい。
【0089】
図11は、現況技術によるプロセスのチャートを示す。展開されたモデリンググラフが再計算された後でタプルが更新され、壊れた多くのリンク(1)が、設計者によって修復されなければならない。
図12は、本発明のプロセスの例のチャートを示す。モデリンググラフの編集中にマッピングが作成される。マッピングは、タプルを更新する前に、タプルに関わるすべてのパスに形式的に適用される。壊れたタプル(2)は、残っている場合、純粋に設計目的でのみ、ユーザによって修復され、または経路変更されることになるが、これについては後で数学的定理によって証明する。
【0090】
図13は、
図1のモデリンググラフに対するより高度な編集操作の例を表す。目標は、中間ノードを削除することによってフラットモデリング構造を提供することである。たとえば、設計は、中間ノードbを削除することによって、
図13の左側のグラフを、
図13の右側のグラフに編集し得る。この操作の目標は、展開されたモデリンググラフ中で、同じ数のパーツ(既に説明したリーフノードに対応する)を維持することである。
図13の例では、「bの削除」操作の前にパーツcが実際に利用されている。編集されたモデリンググラフの展開されたグラフはしたがって、
図14に示すように、パーツcの5度の出現を特色としなければならない。
【0091】
「削除」操作により、以下のマッピングが与えられる。
【0092】
−u
1u
3→u
6
−u
1u
4→u
7
−u
2u
3→u
8
−u
2u
4→u
9
このように、初期モデリンググラフ上で符号化されたタプルは、編集されたモデリンググラフの記号に自動的に翻訳される。修正されたモデリンググラフを展開し、タプルを更新することにより、正しいアセンブリが与えられる。以下のテーブルは、設計ステップに依存するリンクの符号化を示す(索引は、前述の図のものである)。
【0093】
上記説明では、アセンブリをモデリングする初期グラフを編集することによって、1人の設計者がオブジェクトからなるアセンブリを設計するというコンテキストにおける本発明の利用に力点を置いた。本発明は、協働設計、つまり、複数の設計者が関わる設計のコンテキストでも有用である。
【0094】
協働設計とは、数人のユーザが初期オブジェクトのローカルコピーを入手し、このローカルコピーを修正することである。修正とは、アセンブリ構造を変更し、関係を追加し削除することである。
【0095】
現況技術では、協働設計は、以下の理由により冗長である。2人のユーザが、アセンブリをモデリングする初期グラフのローカルコピーを入手する。2人のユーザは両方とも、別々にモデリンググラフを編集し、関係およびこのような関係におけるタプルを作成する。設計者からもう1人の設計者へのタプルの送付は、現在の技術と両立しない。既に上で言及したように、タプルは、モデリンググラフのパスまたは弧によりノードをポイントする。したがって、モデリンググラフAのコンテキストにおいて作成され、別のモデリンググラフBのコンテキストに送られる関係は概して、ポイントされたノードを連結し直すことができない。
【0096】
「同時設計」または「協働設計」、すなわち、数人の設計者が同一のアセンブリに取り組み、ネットワークを介して修正を交換する問題は、文献において対処されている。とりわけ、テキスト同期装置についての最近の研究は、「変換手法」の概念につながった。この概念は、安全なデータ同期装置を設計するための非常にシンプルな汎用定義および性質を与える。参照元は、非特許文献1である。ただし、この記事は、「テキスト同期」に関し、これは、複数のオブジェクトのアセンブリに関する概念からはかけ離れた分野である。
【0097】
2人の設計者が、協力して作業していると仮定する。形式的に、第1の設計者は第1のアセンブリに取り組み、第2の設計者は第2のアセンブリに取り組み得る。協力は、両方の設計者が同じ初期モデリンググラフから開始し得ることにある。
【0098】
ここで、上で詳述したように、第2の設計者がモデリンググラフを編集すると仮定する。編集の後、第2の設計者は、関係および関係におけるタプルを作成し得る。この設計者は次いで、第1の設計者にタプルを送り得る。ただし、このようなタプルは、第1のアセンブリのモデリンググラフのコンテキストにおいて壊れている場合がある。
【0099】
この問題を解決するために、編集の結果として得られたマッピングの逆を決定すればよい。第1のアセンブリのコンテキストにおいて、置換は、決定されたマッピングの逆に従って実施され得る。言い換えると、マッピングは、第2のアセンブリの設計において決定されたマッピングの逆であり、第2のアセンブリは、第2のアセンブリの初期グラフを編集するステップを含む方法により設計され、第1のアセンブリのモデリンググラフと第2のアセンブリの初期グラフは同じである。こうすることにより、同時および協働設計が向上される。実際、マッピングの逆のおかげで、第2のユーザのコンテキストにおいて作成されたタプルは、初期モデリンググラフに取り組む第1のユーザのコンテキストに送られると、自動的に修復される。
【0100】
ただし、一般的な協力プロセスでは、両方のユーザが、初期グラフを別々に編集する。問題はしたがって、一方のユーザが他方のユーザにタプルを送ることである。詳細に進む前に、協働設計の一般的なプロセスについて、
図15を参照して簡単なシナリオにより概説する。ユーザAは始めに、初期グラフG
0を読み、第1のモデリンググラフG
1に編集する。次いで、ユーザAは、グラフG
1をユーザBに送り、ユーザBは、第2のモデリンググラフG
2に編集する。一方、ユーザAは、グラフG
1(の自分のコピー)をグラフG
3に修正し、グラフG
3上でタプルxを作成する。最後に、ユーザAは、タプルxをユーザBに送る。本発明を用いない場合、タプルxは、グラフG
2である新しいコンテキストのノードを正しくポイントしないので、ユーザBは、
図15に示すように、タプルxの手作業での経路変更を行わなければならない。
【0101】
本発明は、第1のアセンブリを設計する方法を提供することによって、この問題を解決する。第1のアセンブリは編集され、第1のマッピングはそれに従って決定される。マッピングは、第2のアセンブリの編集中に決定されるマッピングの逆にさらに合成される。第1および第2のアセンブリの初期グラフは、同じである。このような方法のおかげで、両方のユーザが同じ初期グラフを編集する場合でも、ユーザは、関係のタプルを系統的に手作業で経路変更する必要なく、相互に関係を送ることができる。
【0102】
図15の例では、グラフG
2においてタプルxを首尾よく自動的に経路変更するために(タプルxは、G
3において最初に作成されることを思い起こされたい)、システムは、
図16に示すように、適切な前および後処理ステップを実施することができる。
【0103】
図17は、
図15、16の同じ簡単なシナリオを参照した上で、前および後処理ステップ内部で起こるマッピング代数を示す。目標に到達するために、設計者がモデリンググラフを編集する度に、この編集によって生成されるマッピングが、マッピングリスト、すなわち略して「s−リスト」を増分する。表記s
i→jは、グラフG
iをグラフG
jに変更する編集に関連づけられたs−リストである。逆マッピング[s
i→j]
−1はs
i→jと記され、そうすることによってs
i→j*s
j→iは識別となり、「*」は複合演算子である。
【0104】
グラフG
1は、s−リストs
0→1とともにユーザBに送られる。前処理ステップは、グラフG
3(タプルxが作成される)から初期グラフG
0までの逆s−リストを計算するものである。後処理ステップは、このs−リストを、グラフG
1においてユーザBによって行われた変更を表すものと合成するものである。こうすることにより、G
3からG
2への変更をモデリングする適切なs−リストがもたらされ、タプルxを、その新しいコンテキスト、すなわちグラフG
2に経路変更することができる。
【0105】
図18の例は、3人のユーザおよび広範囲の通信を伴うより複雑な例を示す。設計者A、B、Cが、所与のアセンブリに取り組むと仮定する。3人は、別々に作業するので、初期モデリンググラフのローカルコピーを使用する。全員が、モデリンググラフを編集し、関係を作成する。重要な点は、モデリンググラフの異なるバージョンで作成される関係のタプルを交換することである。概念上、専用の構造が、すべてのs−リストおよびその連結を異なるモデリンググラフバージョンに取り込み得る。この構造はたとえば、有向ツリーグラフでよい。ルートノードは、モデリンググラフの初期バージョンである。他のノードは、モデリンググラフの継承バージョンである。ノードXをノードYに連結する有向弧は、モデリンググラフXをモデリンググラフYに変更する修正に関連づけられたs−リストでラベルづけされる。ツリーグラフの分岐は、同一ユーザによって行われた修正を取り込む。たとえば、初期モデリンググラフG
0は、ユーザAによってG
1に、次いでG
2に、最終的にはG
3に変更される。ユーザBは、モデリンググラフG
1をコピーし、G
4に変更する。ユーザCは、G
2をコピーし、G
5に変更する。こうすることにより、
図18のツリーが生じる。
【0106】
任意のグラフにおいて作成される関係のタプルも、適切なマッピングシーケンスを適用することによって、他の任意のグラフと両立させることができる。このシーケンスは、2つのモデリンググラフを連結するツリー構造中の一意のパスによって取得される。たとえば、タプルによって連結されるパスにs
1→4*s
2→1*s
5→2(x)というs−リストが適用されるとすると、グラフG
5上でユーザCによって作成されるタプルxは、ユーザのBグラフG
4と両立する。当然ながら、特にタプルによって連結されるオブジェクトが新しいコンテキストにおいて消去されている場合、設計者に対して何らかの手作業での経路変更が要求される場合もあり得る。この経路変更は、純粋な設計問題を起こすので求められる。このように、ユーザは、タプルを自由に、安全に交換することができる。
【0107】
全体的ツリー構造を必要とせずに、この理論を実装するやり方がある。この構造を作成し、更新し、格納するという難しい問題は省く。前述のシナリオを時間系列により再検討して、原理を示す。
【0108】
1.ユーザAが、モデリンググラフの最初のバージョンG
0を作成する。
【0109】
2.ユーザAが、このモデリンググラフを新しいバージョンG
1に編集し、この編集に関連づけられるs−リストs
0→1を格納する。
【0110】
3.ユーザAが、G
1をs−リストs
0→1とともにユーザBに送る。
【0111】
4.ユーザAが、G
1を別のバージョンG
2に編集し、s−リストs
1→2を格納する。
【0112】
5.一方、ユーザBは、G
1グラフを別のバージョンG
4に編集し、s−リスト
1→4を格納する。
【0113】
6.ユーザAが、グラフG
2を、複合s−リストs
1→2*s
0→1とともにユーザCに送る。
【0114】
7.ユーザAが、G
2をG
3に編集し、s−リストs
2→3を格納する。
【0115】
8.ユーザCが、G
2をG
5に編集し、s−リストs
2→5を格納する。
【0116】
9.ユーザCが、タプルxを作成し、ユーザA、Bに送ることを計画する。
【0117】
10.この目的のために、ユーザCは、タプルx(のコピー)を複合s−リストs
1→0*s
2→1*s
5→2とともにユーザAに送る。
【0118】
11.ユーザAが、タプルxおよび複合s−リストs
1→0*s
2→1*s
5→2を受け取る。
a.第1のステップは、このs−リストを、初期モデリンググラフから得られるすべての編集のs−リストと合成することであり、(s
2→3*s
1→2*s
0→1)*(s
1→4*s
2→1*s
5→2)が生じる。
b.次のステップは、s
2→3*s
1→2*s
0→1*s
1→0*s
2→1*s
5→2をs
2→3*s
1→2*s
2→1*s
5→2に、およびs
2→3*s
5→2に簡約することである。
c.次いで、ユーザAは、この既約s−リストをタプルxに適用し、そうすることによってユーザAの現在のモデリンググラフG
3と両立させ、すなわちx:=s
2→3*s
5→2(x)となる。
【0119】
12.ユーザCが、タプルx(のコピー)を複合s−リストs
1→0*s
2→1*s
5→2とともにユーザBに送る。
【0120】
13.ユーザBが、タプルxおよびs−リストs
1→0*s
2→1*s
5→2を受け取る。
a.第1のステップは、このs−リストを、初期グラフから得られるすべての編集のs−リストと合成することであり、そうすることによってs
1→4*s
0→1*s
1→0*s
2→1*s
5→2が生じる。s
0→1は、G
1とともにユーザBに送られたことを思い起こされたい。
b.次のステップは、s
1→4*s
0→1*s
1→0*s
2→1*s
5→2をs
1→4*s
2→1*s
5→2に簡約することである。
c.次いで、ユーザBは、この既約s−リストをタプルxに適用し、そうすることによってタプルはユーザBの現在のモデリンググラフG
4と両立させ、すなわちx:=s
1→4*s
2→1*s
5→2(x)となる。
図19は、3人のユーザA、B、Cおよびその対話それぞれに対するこの時間系列を示す。
【0121】
2人のユーザの間でタプルを交換するための汎用プロセスを、以下に示す。
1.前処理:送付者が、初期モデリンググラフから送付者のモデリンググラフまでに適用されたすべての編集の結果として得られた逆マッピングの複合s−リストを作成する。
2.送付者が、タプルおよびこの複合s−リストを受信者にメール送信する。
3.後処理:
a.受信者が、初期モデリンググラフから受信者のモデリンググラフまでに適用されたすべての変更の結果として得られた、複合マッピングを有する複合s−リストを構成する。
b.受信者が、出来上がった複合s−リストを簡約する。
c.受信者が、送信されたタプルに既約s−リストを適用する。
【0122】
受信者の識別は、送付者の前処理に影響を与えず、送付者の識別は、受信者の後処理に影響を与えないことに留意されたい。すべての設計者に一度に送る前処理も、同じである。設計者は、他の設計者によって送られたいくつかの関係をメールボックスに保管し、こうした関係を一度にすべて管理することができ、後処理も同じである。キーポイントは、設計が共通ソースで始まることであり、これは平行性技術における標準戦略である。
【0123】
様々なバージョンのモデリンググラフを調和させ、またはマージすることについての論点は、本発明の範囲外であることに留意されたい。それにも関わらず、モデリンググラフの間の衝突を解決するためのツールが与えられると、本発明は、モデリンググラフに行われた変更がs−リスト(すなわち、マッピングリスト)を与える限り、タプルを自動的に修復するのを助ける。
【0124】
以下は、本発明の基礎を強固にする定理(およびその形式的証明)に向けられている。この定理は、マッピングを提供するためのアルゴリズムではなく、むしろ抽象的結果である。それにも関わらず、この証明は、所与のグラフ編集オペレータのマッピングを調査するためのガイドラインとして使用され得る。この証明は、一般にグラフ理論および基礎代数により知られている概念に向けられる。モデリンググラフは、連結された単ルートの非循環有向グラフであるとみなされる。先に言及したように、多ルートグラフへの一般化は明快である。定義により、「リーフノード」は出力弧をもたず、「ルートノード」は入力弧をもたない。モデリンググラフが与えられると、対応する展開されたグラフは、その数学的「普遍被覆ツリー」以外の何ものでもない。最初に、2つのモデリンググラフの「同値」概念を定義する。
【0125】
D
1、D
2を2つのモデリンググラフとし、U(D
1)、U(D
2)をそのそれぞれの展開されたツリーとする。L(D
1)、L(D
2)を、それぞれU(D
1)、U(D
2)のリーフノードの集合とする。定義により、L(D
1)からL(D
2)への全単射gが存在する場合、D
1、D
2は、関係ρによってリンクされる。
【0126】
形式的に同値だが比較的実際的ではない定義は、|L(D
1)|=|L(D
2)|であることに留意されたい。言い換えると、展開されたツリーは、同じ数のリーフノードをもつ。
【0127】
関係ρは、すべてのモデリンググラフからなる集合において同値関係であるという性質をもつ。
【0128】
以下は、上記性質の証明である。どのモデリンググラフも、その展開されたグラフのリーフノードの集合が識別によりそれ自体と同形なので、関係ρによってそれ自体にリンクされる。D
1ρD
2の場合、L(D
1)からL(D
2)への、gからの全単射が存在する。よって、L(D
1)からL(D
2)への全単射g
−1のおかげで、D
1ρD
2である。最終的に、D
1ρD
2かつD
2ρD
3の場合、L(D
1)からL(D
2)への全単射gおよびL(D
2)からL(D
3)への全単射hが存在する。よって、L(D
1)からL(D
3)への全単射f=hogは、D
1ρD
3であると述べる。証明終了。
【0129】
したがって、2つの再利用グラフは、関係ρによりリンクされる場合、同値であると言われる。この同値概念は、エンドユーザの認知を数学的に翻訳したものである。2つのパーツアセンブリの間には、そのモデリンググラフが同値である、すなわち同じタイプおよび数のパーツの場合、目に見える格差はない。よって、こうしたアセンブリは同値であり、関係は、モデリング構造を同値なものに変更することによって壊れるはずはないと主張することが妥当である。
【0130】
D
1およびD
2を2つの同値なモデリンググラフである、すなわちD
1ρD
2とする。D
1のいくつかのリーフパーツが、D
1弧のパス上で符号化されるタプルにより互いに連結されると仮定する。すると、一意であり最小のマッピング集合が存在するので、すべてのリンクが、D
2のリーフパーツにおいて自動的に経路変更され得る。
【0131】
以下は、上記定理を証明する。この証明は、展開されたグラフ用に非形式的に導入される索引の扱い方の精密な定義を要求する。抽象集合Aが与えられると、Aという要素の「形式的コピー」または「コピー」の集合C(A)は、Aと正の整数の集合Nとのデカルト積C(A)=A×Nである。射影マップπ(・)は、A×NからAに定義され、この対の第1の要素を生じる。言い換えると、(a,i)∈A×Nの場合、π(a,i)=aである。要素aはソースであり、(a,i)はaの形式的コピーである。当然ながら、ソース要素(集合Aにおいて一意である)が与えられると、必要とされる数のコピーが存在する。展開されたグラフのノードおよび弧は、それぞれ、モデリンググラフのノードおよび弧の形式的コピーである。各識別子xごとにただ1つの識別子(x,i)が存在するように、その場で新しい索引iを与えるために、索引ジェネレータが必要とされる。この「形式的コピー」概念は、数学的目的で導入される。グラフを描くとき、ノードまたは弧識別子を繰り返すのは、数学的に無意味である。所与の記号の2度の出現は、異なるオブジェクトを表すので、見分けられなければならないが、これは形式的コピーにより行われる。射影π(・)は、展開されたグラフの弧のパスまで、次のように容易に伸長される。(u
1,i
1)(u
2,i
2)...(u
n,i
n)が、展開された弧のパスである場合、その射影は、π[(u
1,i
1)(u
2,i
2)...(u
n,i
n)]...π(u
1,i
1)π(u
2,i
2)...π(u
n,i
n)、すなわちπ[(u
1,i
1)(u
2,i
2)...(u
n,i
n)]=u
1u
2...u
nによって定義されるモデリンググラフの弧のパスである。
【0132】
D
1およびD
2を、2つの同値なモデリンググラフとする。L(D
1)からL(D
2)への全単射gが存在する。各x∈L(D
1)に対して、p(x)を、ルートノードからxまでのU(D
1)の弧のパスとする。このパスは、グラフU(D
1)がツリーなので、一意である。g(x)∈L(D
2)を、全単射gを介したxの画像とする。これにより、マッピングπ(p(x))→π(p(g(x)))が定義される。
【0133】
U(D
2)がツリーなので、パスp(g(x))も一意である。すべての要素x∈L(D
1)に対してそうすることにより、マッピングの集合S={π(p(x))→π(p(g(x)));x∈L(D
1)}が生じる。
【0134】
この集合は有限、すなわち|S|≦|L(D
1)|であるが、概して大き過ぎ、展開されたグラフの各リーフノードごとに1つのマッピングとなる。ほとんどの場合、矢印...→...の両側の識別子チェーンは、プレフィクスおよび/またはポストフィクスサブチェーンを共有する場合があり、同一である場合さえある。このようなプレフィクスまたはポストフィクスサブチェーンは削除してよく、そうすることによりマッピングはより簡単になり、数が減る。S
〜を、最小マッピング集合とする。こうしたマッピングを、D
1のリーフパーツにおけるタプルに組み込まれたパスに適用することにより、D
2のリーフパーツにおいて定義されるタプルが生じる。明らかに、集合S
〜は、入力オブジェクト、すなわちD
1、D
2、gから一意に導出される。証明終了。
【0135】
証明の原理を、以下の例で示す。より読みやすい図にするために、モデリンググラフのノードをラテン文字a、b、c、d、...にし、モデリンググラフの弧を、番号1、2、3、...で識別する。
図20、21は、それぞれ、モデリンググラフD
1、および展開されたモデリンググラフU(D
1)を示す。
【0136】
図22、23は、それぞれ、モデリンググラフD
2および関連した展開されたグラフU(D
2)を示す。D
2が、D
1をある程度修正したバージョンであるにも関わらず、これらは同値であることに留意されたいが、このことは、展開されたグラフ上でのみ見ることができる。bのサブグラフは、変更されないが、D
2において一度だけ再利用される(すなわち、ただ1つの入力弧)ことにも留意されたい。
【0137】
全単射gは、
g(c,1)=(c,7)
g(c,2)=(c,8) g(d,1)=(d,5)
g(c,3)=(c,9) g(d,2)=(d,6)
g(c,4)=(c,10) g(d,3)=(d,7)
g(c,5)=(c,11) g(d,4)=(d,8)
g(c,6)=(c,12)
によって、
L(D
1)={(c,1),(c,2),(c,3),(c,4),(c,5),(c,6),(d,1),(d,2),(d,3),(d,4)}
から、
L(D
2)={(c,7),(c,8),(c,9),(c,10),(c,11),(c,12),(d,5),(d,6),(d,7),(d,8)}
に定義される。
【0138】
簡潔にするために、第1のマッピングのみを詳述する。よって、π(p(x))→π(p(g(x)))が、x=(c,1)により、
π(p(c,1))→π(p(g(c,1)))
π(p(c,1))→π(p(c,7))
π(5,1)→π((9,1)(11,1))
5→9/11
を生じる。
【0139】
上式で、「/」は、記号セパレータとして使われている。U(D
2)の残りのリーフノード、すなわち(c,2)、(c,3)、(c,4)、(c,5)、(c,6)、(d,1)、(d,2)、(d,3)、(d,4)に対してそうすることにより、形式的に以下のマッピング集合Sが生じ、
5→9/11
8→10/11 2/3→12
1/3→1/3 2/4→13
1/4→1/4 2/6→14
1/6→1/6 2/7→15
1/7→1/7
この集合は、以下のS
〜に縮小する。
【0140】
5→9/11 2/4→13
8→10/11 2/6→14
2/3→12 2/7→15
使用できない同一のチェーンは、D
1の変更されないサブグラフに起因する。
【0141】
次の例は、プレフィクスおよびポストフィクス簡約を示すものである。初期モデリンググラフおよび展開されたグラフを、それぞれ
図24、25に示す。編集されたモデリンググラフおよび展開されたグラフは、それぞれ
図26、27のように示す。
【0142】
明白な全単射は、マッピング集合
1/2/3→1/3
1/2/4→1/4
を誘発する。
【0143】
両方のマッピングにおいて共有プレフィクス1を除去すると、
2/3→3
2/4→4
が生じる。
【0144】
第1のマッピングにおいて共有ポストフィクス3を、第2のマッピングにおいて4を除去すると、ただ1つのマッピング
2→ε
が生じ、ここでεは空のチェーンである。チェーンは、空のチェーンにマッピングされると、タプルから削除される。このことは、記号2がモデリンググラフのタプルの弧のすべてのパスから削除されることを意味する。
図1〜3のグラフにおいて符号化される連結Connect(1/2/3,1/2/4)は、第2のモデリンググラフではConnect(1/3,1/4)になる。
【0145】
2つのモデリンググラフの間の同値の定義は、展開されたツリーのリーフノードの間の全単射gを伴う。この主要特徴の結論は、マッピングの形式的組立てである。それにも関わらず、再利用グラフが同値でないとき、すなわちgが存在するが全単射でないときは何かを行うことができる。マッピング規則は依然として、π(p(x))→π(p(g(x)))によって定義される。違いは、g(x)がすべてのx∈L(D
1)に対して定義され得るわけではなく、L(D
1)における別個のx、yに対してg(x)がg(y)に等しくてよいことである。これは、g(x)が定義されるすべてのx∈L(D
1)に対してマッピングの制限集合π(p(x))→π(p(g(x)))につながる。同じ簡約、すなわち共有プレフィクスおよびポストフィクスチェーンの削除が成り立つ。マッピングは、残っている場合、連結を経路変更し、または部分的に経路変更するのに使用される。未解決の連結はユーザの決定を要求するが、これは、設計意図を取り込むのに不可避である。
【0146】
図28、29の例は、このシナリオを示す。初期モデリンググラフおよび展開されたグラフを、それぞれ
図28、29に示す。
【0147】
最終モデリンググラフおよび展開されたグラフは、それぞれ、
図30、31に表すようになる。参照サブアセンブリbは、単一のパーツdで置き換えられる。参照パーツcは削除される。よって、サブアセンブリbのパーツを接合する連結は、dが出現すると経路変更されるべきである。
【0148】
関数gは、
g(c,1)=g(c,2)=(d,1)
g(c,4)=g(c,5)=(d,2)
によって定義され、これはマッピング
u
1u
3→u
6
u
1u
4→u
6
u
2u
3→u
7
u
2u
4→u
7
を誘発する。
【0149】
定理の証明は、編集オペレータのマッピング規則を設定するためのガイドラインとして用いることができる。アルゴリズム設計者によって使われる調査プロセスは、以下の通りである。
【0150】
1.編集オペレータが適用され得るモデリンググラフD
1を作成する。
【0151】
2.このモデリンググラフにおいて編集オペレータを形式的に適用する。新しいモデリンググラフD
2が生じる。
【0152】
3.こうした2つのモデリンググラフを展開し、全単射gを設定する。
【0153】
4.証明に従って、こうしたオブジェクトからマッピング規則を取得する。
【0154】
空間での位置づけは、同じ戦略により管理することができる。その親オブジェクトに対する、再利用されるパーツまたはオブジェクトの相対的位置は、長さがlのパスによって定義されるただ1つのオブジェクトに連結されるタプルとして取り込まれる。絶対的位置(すなわち、ルートプロダクトに対する相対的位置)が、弧のルートからリーフまでのパスによって定義される相対的位置を合成することによって取得される。2つの同値なモデリンググラフが与えられると、その結果得られるマッピング規則は、相対的位置づけについての興味深い情報を提供する。モデリンググラフの弧u
1が与えられると、関連づけられた相対的位置は、P(u
i)と記される。モデリンググラフの連続する2つの弧u
iu
jが与えられると、それぞれの相対的位置の合成は、P(u
i)・P(u
j)と記される。このシンタクスに従って、マッピング規則は、満足されなければならない同等性を与える。マッピング規則
u
1u
2...u
n→v
1v
2...v
m
が与えられると、対応する位置づけ同等性は、
P(u
1)・P(u
2)・...・P(u
n)=P(v
1)・P(v
2)...P(v
m)
となる。
【0155】
協働設計のコンテキストにおいて、別の典型的な問題は、同時修正された2つのモデリンググラフをマージすることである。モデリンググラフをどのようにしてマージするかは、本発明の範囲外である。ここでの目的は、グラフをマージした結果がどのようなものであろうとも、モデリンググラフ修正に関連づけられたマッピングをマージすることである。タプルは従来、グラフ中の弧により取り込まれ、アセンブリ(モデリンググラフによってモデリングされた)内のタプルは、一見して、「グラフマージ」プロセスによって管理されるべきであると主張することができよう。ここでのポイントは、モデリンググラフ内で管理されるタプルは、識別子列により、モデリンググラフのパスまたは弧において符号化されることであるが、これは、従来技術により知られており、グラフマージプロセスにおいて使用される「グラフの弧」形式と適合しない。したがって、従来技術では、グラフをマージする際、関係およびそのタプルは概して失われる。これは、専用の処置が必要だからである。
【0156】
第2のアセンブリのモデリンググラフと第3のアセンブリのモデリンググラフとのマージによって与えられる第1のアセンブリのモデリンググラフについて検討する。第2および第3のアセンブリは、同じ初期モデリンググラフを編集した後で設計される。マージすると、第1のアセンブリのモデリンググラフの各弧は、第2のアセンブリのモデリンググラフの弧または第3のアセンブリのモデリンググラフの弧になる。第1のアセンブリに対する少なくとも1つのマッピングを決定するステップは、マージに従って実施される。こうすることにより、マージした結果がどうであっても、2つのアセンブリをマージするときにタプルを自動的に適応するツールが提供される。
【0157】
より厳密には、初期モデリンググラフA、第2および第3のアセンブリをモデリングするこの初期モデリンググラフの2つの修正バージョンBおよびB’、ならびに第1のアセンブリをモデリングするマージされたモデリンググラフ
【0159】
が与えられた場合の例について検討するが、このセクションの目標は、初期グラフからマージされたグラフへのマッピング
【0161】
、ならびに修正された各グラフからマージされたグラフへのマッピング
【0165】
を決定するために、同時変更A→BおよびA→B’に関連づけられたマッピングを合成するためのアルゴリズムを提供することである。このように、タプルは、どの状況でも更新することができる。この状況例は、
図32で示す。
【0166】
本方法は、第1のアセンブリのモデリンググラフ、第2のアセンブリのモデリンググラフ、第3のアセンブリのモデリンググラフならびに第2および第3のアセンブリの初期モデリンググラフを展開するステップを含み得る。前記展開されたグラフの各ノードは次いで、弧の少なくとも1つの識別子のチェーンによって一意に識別される。
【0167】
図32の例を参照して、それぞれ、モデリンググラフから取得される展開されたグラフを、Φ(A)、Φ(B)、Φ(B’)、と、
【0169】
およびこうした展開されたグラフのノードの集合を、
【0171】
と表記する。モデリンググラフXの展開されたグラフΦ(X)の各ノードは、グラフX中の弧のパスによって一意に識別される。よって、Φ(X)のノードおよびそれに関連づけられた、Xの弧のパスを識別する際に多義性はない。モデリンググラフXからモデリンググラフYへの編集に関連づけられたマッピングを、s
XYと表記する。これは、展開されたグラフのノードからのマッピング、すなわちs
XY:V
Φ(X)→V
Φ(Y)と解釈される。この例のオブジェクトはすべて、
図33の図表に従ってリンクされる。
【0172】
本方法は、第2のアセンブリの展開されたモデリンググラフ中の第1の対応ノードおよび第3のアセンブリの展開されたモデリンググラフ中の第2の対応ノードを提供するステップを含んでよく、前記対応ノードは、第2および第3のアセンブリの展開された初期グラフの同じ被対応ノードに対応する。対応ノードは、第2および第3のアセンブリを結果として生じる編集の後の被対応ノードの結果である。本方法は、第1の対応ノードが、第1のアセンブリの展開されたモデリンググラフ中にあるかどうか検査するステップをさらに含み得る。言い換えると、本方法は、被対応ノード(すなわち、第1の対応ノード)の第2のアセンブリ中の変換が、マージされたアセンブリ(すなわち、第1のアセンブリ)中で保たれるかどうか検査する。検査が肯定的結果を生じる場合、決定されるマッピングは、被対応ノードのチェーンから第1の対応ノードへ、および第2の対応ノードのチェーンから第1の対応ノードのチェーンへのものである。
【0173】
否定的結果のケースでは、同様の検査を、第2の対応ノードに対して実施することができる。この第2の検査が肯定的結果を生じる場合、決定されるマッピングは、被対応ノードのチェーンから第2の対応ノードへ、および第1の対応ノードのチェーンから第2の対応ノードのチェーンへのものである。検査が再度否定的な場合、決定されるマッピングは、第1の対応ノードのチェーンから空のチェーンへ、および第2の対応ノードのチェーンから空のチェーンへのものでよい。
【0174】
これは、本方法の第1のステップに対応するが、このステップは、初期モデリンググラフのオブジェクトに対応する、マージされたグラフのオブジェクトをポイントするタプルを修復するマッピングを提供する。
【0175】
第2のステップで、本方法は、第1のアセンブリのモデリンググラフおよび第2のアセンブリのモデリンググラフを展開するステップを含み得る。前記展開されたグラフの各ノードは、弧の少なくとも1つの識別子からなるチェーンによって一意に識別される。本方法は、展開された第2のアセンブリのモデリンググラフ中の非対応ノードを提供するステップをさらに含み得る。前記非対応ノードは、展開された第2のアセンブリの初期グラフのどのノードにも対応しない。言い換えると、非対応ノードとは、初期モデリンググラフの編集の後に作成されるノードである。本方法は、非対応ノードが第1のアセンブリの展開されたモデリンググラフ中にあるかどうかをさらに検査し得る。言い換えると、作成されたノードが、マージされたグラフ中で保たれるかどうかが検査される。検査が否定的結果を生じる場合、決定されるマッピングは、非対応ノードのチェーンから空のチェーンへのものである。検査が肯定的結果を生じる場合、マッピングは要求されないので、何も行われない。同じことを、展開された第3のアセンブリのモデリンググラフ中の非対応ノードに対して実施することができる。
【0176】
これは、アルゴリズムの第2のステップに対応するが、これは、初期モデリンググラフの編集の後で作成されるオブジェクトに対応する、マージされたグラフのオブジェクトをポイントするタプルを修復するマッピングを提供する。
【0177】
本方法を解説するために、マッピングs
ABおよびs
AB’をとりあげる。マッピング
【0181】
は未知であり、目標は、こうしたマッピングを、前述の図表が可換となるように構築することであり、定義により、
【0183】
を意味する。
図34、35に表すアルゴリズムは、
【0187】
を、2つのステップにより構築する。表記εは空のチェーンであり、弧のパスは弧をもたない。これは、弧の消されたパスをマップするのに使用される。
【0188】
第1のステップを、
図34の擬似コードによって説明する。初期モデリンググラフΦ(A)の各ノードaに対して、アルゴリズムは、編集されたグラフ中で対応ノードbおよびb’を得て、b:=s
AB(a)かつb’:=s
AB’(a)となる。第1のケースは、bは、マージされたグラフ中に依然として存在し、b’は、マージされたグラフ中に存在しないものである。したがって、
【0194】
である。第2のケースは逆転であり、b’はマージされたグラフ中に依然として存在し、bはマージされたグラフ中に存在せず、よって
【0198】
である。第3のケースは、bおよびb’が両方とも、マージされたグラフ中に存在する。bおよびb’は、同じ初期ノードaの変換であり、一方の修正されたグラフ中の新しいオブジェクトが、他方の修正されたグラフ中の新しいオブジェクトと等しくなり得ない(なぜなら、同時修正は独立している)ので、bおよびb’はaに等しく、よって
【0202】
である。それ以外の場合、アルゴリズムが解決し得ない多義性がマージプロセスにはある。最終的に、bおよびb’が、マージされたグラフ中にない(両方とも、マージプロセスによって削除される)場合、
【0207】
図34で示すステップは、修正されたグラフΦ(B)中で作成され、したがってV
Φ(B)−s
AB(V
Φ(A))に属すノード、および修正されたグラフΦ(B’)中で作成され、したがってV
Φ(B’)−s
AB’(V
Φ(A))に属すノードを管理しない。よって、
【0209】
が、
図35の擬似コードで示すように、および以下の説明の通り完成される。bは、マージされたグラフ中にある、すなわち
【0211】
の場合、Φ(B)に追加されており、依然として
【0215】
である。逆に、bは、マージされたグラフ中にない、すなわち
【0217】
の場合、Φ(B)に追加されており、マージされたグラフ
【0219】
から、マージプロセス(このプロセスには問題があるが、マージプロセスの詳細は本発明の範囲外である)によって削除されており、よって
【0222】
前述のアルゴリズムおよび注意点は、完全な
【0225】
コンピュータ支援設計システムは、オブジェクトを格納するデータベースを備え得る。システムは、PLM/CAD(オブジェクトライフサイクル管理/コンピュータ支援設計)システムでよい。データベースは、パーツ、パーツからなるアセンブリなどの仕様を格納し得る。システムは、上述した方法で複数のオブジェクトからなるアセンブリを設計するのに適したグラフィカルユーザインタフェースも備え得る。グラフィカルユーザインタフェースは対話型であり、したがって設計者は、アセンブリをグラフィカルに設計し、上述した方法をバックプロセスとしてシステムに実施させることができる。
【0226】
コンピュータによって実行されるための命令を備えるコンピュータプログラムであって、命令は、オブジェクトを格納するデータベースを備えるコンピュータ支援設計システムに、上述した方法を実施させる手段を備えるプログラムが、コンピュータ上で提供され、たとえばインストールされ得る。このようなプログラムは、一般に知られているように、コンピュータ可読記憶媒体上のレコーダでよい。
【0227】
概して、プロセッサは、読出し専用メモリおよび/またはランダムアクセスメモリから命令およびデータを受け取る。コンピュータプログラム命令およびデータを有形に実施するのに適した記憶装置は、例として、EPROM、EEPROM、およびフラッシュメモリ装置などの半導体メモリ装置、内部ハードディスクおよび取外し可能ディスクなどの磁気ディスク、光磁気ディスク、ならびにCD−ROMディスクを含む、あらゆる形の不揮発性メモリを含む。上述したものはいずれも、特殊設計ASIC(特定用途向け集積回路)によって補われても、それに組み込まれてもよい。
【0228】
本発明は、上で挙げた例に限定されず、当業者にとって明らかな修正を包含する。
【0229】
とりわけ、本発明は主として、機械アセンブリの分野を参照して記載したが、参照オブジェクトが再利用され、階層構造中でリンクされ、この構造が協働的環境で修正されるどの分野にも適用可能である。たとえば、本発明は、ビデオゲームの分野に適用可能である。
【0230】
さらに、階層構造は、本記載内容ではグラフ構造により取り込まれた。ただし、本発明は、オブジェクトの間の階層構造を取り込むように適合された他の構造に適用可能である。とりわけ、グラフに同値なプレフィクスエンコードは、マッピングがプレフィクスエンコードに適用され得るので、本発明の範囲内であることが明らかである。