(57)【特許請求の範囲】
【請求項１】
工業製品を表し、および複数の形状オブジェクトと、前記形状オブジェクトをリンクする関係とを含むデータにより定義された、３Ｄモデル化されたオブジェクトを設計するためのコンピュータにより実行される方法であって、前記形状オブジェクトをリンクする前記関係は、手続き型関係を含み、
前記形状オブジェクトを表すノードおよび弧を有するモデリンググラフを提供するステップであって、前記弧の各々は、前記弧のインシデントノードによって表される２つの前記形状オブジェクトをリンクする前記関係を表し、前記手続き型関係は、前記手続き型関係と同一の方向を有する単方向弧によって表され、前記形状オブジェクトをリンクする前記関係は、双方向弧によって表される有効な関係をさらに含む、ステップと、
前記３Ｄモデル化されたオブジェクトを定義する前記データの修正の際、
強いグラフを判定するステップであって、前記強いグラフは、前記モデリンググラフの強い構成要素のグラフである、ステップと、
前記強いグラフの探索に従って、前記３Ｄモデル化されたオブジェクトを更新するステップと
を備えたことを特徴とする方法。
【請求項２】
前記強いグラフの前記探索は、深さ優先探索であることを特徴とする請求項１に記載の方法。
【請求項３】
前記強いグラフの前記探索の間、各強い構成要素は、前記モデリンググラフの残りと独立して解決されることを特徴とする請求項２に記載の方法。
【請求項４】
強い構成要素を解決するとき、手続き型関係の出力である前記強い構成要素のノードによって表される各形状オブジェクトは固定して設定されることを特徴とする請求項３に記載の方法。
【請求項５】
各強い構成要素は、方程式系ソルバまたは反復ソルバによって解決されることを特徴とする請求項３または４に記載の方法。
【請求項６】
前記有効な関係は、スタイリング関係および／または機械的関係を含むことを特徴とする請求項１乃至５のいずれか一項に記載の方法。
【請求項７】
前記工業製品は、機械パーツまたは消費財であることを特徴とする請求項６に記載の方法。
【請求項８】
前記提供されたモデリンググラフは、前記モデリンググラフの各強い構成要素のすべての前記弧が双方向であるという基準を順守し、前記３Ｄモデル化されたオブジェクトを定義する前記データの前記修正が、追加の前に前記３Ｄモデル化されたオブジェクトを定義する前記データに含まれる前記形状オブジェクトの２つをリンクする関係を追加するステップを含むとき、前記方法は、追加されることになる前記関係によってリンクされることになる２つの形状オブジェクトを選択するステップを備え、前記選択は、前記基準に従って実行されることを特徴とする請求項１乃至７のいずれか一項に記載の方法。
【請求項９】
工業製品を製造する方法であって、請求項１乃至８のいずれか一項に記載の方法に従って、前記工業製品を表す３次元オブジェクトを設計し、および前記設計された３次元オブジェクトに基づいて、前記工業製品を製造するステップを備えたことを特徴とする方法。
【請求項１０】
コンピュータによって実行されるとき、前記コンピュータに請求項１乃至８のいずれか一項に記載の方法を実行させる命令を備えたことを特徴とするコンピュータプログラム。
【請求項１１】
請求項１０に記載の前記コンピュータプログラムを記憶したことを特徴とするデータ記憶媒体。
【請求項１２】
メモリおよびグラフィカルユーザインタフェースに結合されたプロセッサを備え、前記メモリは、請求項１０に記載のコンピュータプログラムを記憶したことを特徴とするＣＡＤシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、特に、車両設計、包装設計、機械設計、消費財および電子機器設計などの工業設計の分野に関する。
【背景技術】
【０００２】
オブジェクトの設計、工学技術、および製造に対して、いくつかのシステムおよびプログラムが市場で供給されている。ＣＡＤは、コンピュータ支援設計（Computer-Aided Design）の頭字語であり、たとえば、それは、オブジェクトを設計するためのソフトウェアソリューションに関する。ＣＡＥは、コンピュータ支援エンジニアリング（Computer-Aided Engineering）の頭字語であり、たとえば、それは、後の製品の物理的挙動をシミュレートするためのソフトウェアソリューションに関する。ＣＡＭは、コンピュータ支援製造（Computer-Aided Manufacturing）の頭字語であり、たとえば、それは、製造プロセスおよびオペレーションを定義するためのソフトウェアソリューションに関する。そのようなコンピュータ支援設計システムにおいて、グラフィカルユーザインタフェースは、技術の効率性に関して重要な役割を果たす。これらの技術は、製品ライフサイクル管理（ＰＬＭ）システム内に組み込まれることがある。ＰＬＭは、拡大企業（extended enterprise）の概念にわたって、会社が、製品データを共有し、共通のプロセスを適用し、構想からそれらの寿命の終わりまで製品の開発のための企業の知識を活用することを支援する、ビジネス戦略を指す。
【０００３】
Ｄａｓｓａｕｌｔ  Ｓｙｓｔｅｍｅｓによって提供される（ＣＡＴＩＡ、ＥＮＯＶＩＡ、およびＤＥＬＭＩＡの商標で）ＰＬＭソリューションは、製品エンジニアリングの知識を編成するエンジニアリングハブ（Engineering Hub）、製造エンジニアリングの知識を管理する製造ハブ（Manufacturing Hub）、ならびにエンジニアリングハブと製造ハブとの両方への企業統合および接続を可能にする企業ハブ（Enterprise Hub）を提供する。すべてが一緒になって、システムは、製品、プロセス、リソースを結び付けるオープンオブジェクトモデルを供給して、最適化された製品定義、製造準備、生産、およびサービスを推進する、動的で知識ベースの製品作成および決定支援を可能にする。
【０００４】
３次元モデル化されたオブジェクトの設計のために、異なるフレームワークが工業デザイナーに提供される。最も広く普及されたフレームワークでは、工業デザイナーは、手続き型関係（procedural relationships）を介して設計を行う。より正確には、工業デザイナーは、基礎形状（basic geometries）および手続きの履歴を定義し、それらは、手続きの履歴に従って階層的に接続されたより精巧なオブジェクトに基本的ジオメトリを変換して、意図された複雑なモデルを形成する。このフレームワークは、特に、それが、熟練されたデザイナーが設計を比較的速く行うことを可能にするので、最も好まれるフレームワークである。実際、適切な手続きを使用して、比較的少ないオペレーションで複雑なモデルを達成することができる。このトピックに関する参考文献は、たとえば、非特許文献１である。
【０００５】
別のフレームワークでは、工業デザイナーは、非手続き型関係（non-procedural relationships）を介して設計を行う。より正確には、工業デザイナーは、基礎形状を定義し、その後、形状間の友好な関係（live relationships）を定義して、制約の組に関する基礎形状の組が、意図された複雑なモデルを形成するようにする。
【先行技術文献】
【非特許文献】
【０００６】
【非特許文献１】“Ｈａｎｂｏｏｋ  ｏｆ  ｓｏｌｉｄ  ｍｏｄｅｌｉｎｇ”；Ｄｏｎａｌｄ  Ｅ  Ｌａｃｏｕｒｓｅ，  Ｅｄ．：Ｍａｃ  Ｇｒａｗ  Ｈｉｌｌ
【非特許文献２】Ｆｒａｎｋ  Ｈａｒａｒｙ，  Ｇｒａｐｈ  Ｔｈｅｏｒｙ，  Ａｄｄｉｓｏｎ  Ｗｅｓｌｅｙ  １９６９
【非特許文献３】Ｗｉｋｉｐｅｄｉａ
【発明の概要】
【発明が解決しようとする課題】
【０００７】
この文脈においては、３Ｄモデル化されたオブジェクトを設計するための改良されたソリューションが依然として必要である。
【課題を解決するための手段】
【０００８】
したがって、工業製品を表す３次元モデル化されたオブジェクトを設計するためのコンピュータにより実行される方法が提供され、３次元モデル化されたオブジェクトは、複数の形状オブジェクトと、形状オブジェクトをリンクする関係とを含むデータによって定義され、形状オブジェクトをリンクする関係は、手続き型関係を含む。本方法は、モデリンググラフを提供するステップを含み、モデリンググラフは、形状オブジェクトを表すノードと、弧のインシデントノード（incident nodes of the arc）によって表される２つの形状オブジェクトをリンクする関係を各々が表す弧とを有し、手続き型関係は、手続き型関係と同じ向きを有する単方向弧によって表され、形状オブジェクトをリンクする関係は、双方向弧によって表される有効な関係をさらに含む。本方法はまた、３Ｄモデル化されたオブジェクトを定義するデータの修正の際、強いグラフ（strong graph）を判定するステップであって、強いグラフは、モデリンググラフの強い構成要素のグラフである、ステップと、強いグラフの探索（traversal）に従って、３Ｄモデル化されたオブジェクトを更新するステップとを含む。
【０００９】
本方法は、以下の１つまたは複数を備えてもよく、すなわち、
−  強いグラフの探索は、深さ優先探索（depth first traversal）であること、
−  強いグラフの探索の間、各強い構成要素は、モデリンググラフの残りと独立して解決されること、
−  強い構成要素を解決するとき、手続き型関係の出力である強い構成要素のノードによって表される各形状オブジェクトは、固定されて設定されること、
−  各強い構成要素は、方程式系ソルバ（equation system solver）によってもしくは反復ソルバによって解決されること、
−  有効な関係は、スタイリング関係（styling relationships）および／もしくは機械的関係（mechanical relationships）を含むことと、
−  工業製品は、機械パーツもしくは消費財であること、ならびに／または、
−  提供されたモデリンググラフは、モデリンググラフの各強い構成要素のすべての弧が双方向であるという基準を順守し、３Ｄモデル化されたオブジェクトを定義するデータの修正が、追加の前に３Ｄモデル化されたオブジェクトを定義するデータに含まれる形状オブジェクトの２つをリンクする関係を追加するステップを含むとき、方法は、追加されることになる関係によってリンクされることになる２つの形状オブジェクトを選択するステップであって、選択は基準に従って実行される、ステップを備えること、を含んでよい。
【００１０】
本方法を実行するための命令を含むコンピュータプログラムがさらに提供される。
【００１１】
コンピュータプログラムをその上に記録したコンピュータ可読記憶媒体がさらに提供される。
【００１２】
メモリおよびグラフィカルユーザインタフェースに結合されたプロセッサを備えるＣＡＤシステムであって、メモリはコンピュータプログラムを記録している、ＣＡＤシステムがさらに提供される。
【００１３】
本方法によって設計された３次元オブジェクトがさらに提供される。
【００１４】
３次元オブジェクトを記憶しているデータファイルがさらに提供される。
【００１５】
３次元オブジェクトを記憶しているデータ構造がさらに提供される。
【００１６】
３次元オブジェクトによって表される工業製品がさらに提供される。
【００１７】
工業製品を製造するための方法であって、上記設計方法に従って工業製品を表す３次元オブジェクトを設計するステップと、設計された３次元オブジェクトに基づいて工業製品を製造するステップとを含む方法がさらに提供される。
【図面の簡単な説明】
【００１８】
次に、非限定的な例によって、添付の図面を参照して、本発明の実施形態が説明される。
【図１】方法の例のフローチャートを示す図である。
【図２】システムのグラフィカルユーザインタフェースの例を示す図である。
【図３】システムの例を示す図である。
【図４】本方法を示す図である。
【図５】本方法を示す図である。
【図６】本方法を示す図である。
【図７】本方法を示す図である。
【図８】本方法を示す図である。
【図９】本方法を示す図である。
【図１０】本方法を示す図である。
【図１１】本方法を示す図である。
【図１２】本方法を示す図である。
【図１３】本方法を示す図である。
【図１４】本方法を示す図である。
【図１５】本方法を示す図である。
【図１６】本方法を示す図である。
【図１７】本方法を示す図である。
【図１８】本方法を示す図である。
【図１９】本方法を示す図である。
【図２０】本方法を示す図である。
【図２１】本方法を示す図である。
【図２２】本方法を示す図である。
【図２３】本方法を示す図である。
【図２４】本方法を示す図である。
【図２５】本方法を示す図である。
【図２６】本方法を示す図である。
【図２７】本方法を示す図である。
【図２８】本方法を示す図である。
【図２９】本方法を示す図である。
【図３０】本方法を示す図である。
【図３１】本方法を示す図である。
【図３２】本方法を示す図である。
【発明を実施するための形態】
【００１９】
図１のフローチャートを参照すると、３次元モデル化されたオブジェクトを設計するためのコンピュータにより実行される方法が提示される。３Ｄモデル化されたオブジェクトは、工業製品を表す。３Ｄモデル化されたオブジェクトは、複数の形状オブジェクトと、形状オブジェクトをリンクする関係とを含むデータによって定義される。形状オブジェクトをリンクする関係は、手続き型関係および有効な関係を含む。方法は、モデリンググラフを提供するステップＳ１０を含み、モデリンググラフは、形状オブジェクトを表すノードと、弧のインシデントノードによって表される２つの形状オブジェクトをリンクする関係を各々が表す弧とを有する。このグラフにおいて、手続き型関係は、手続き型関係と同じ向きを有する単方向弧によって表され、有効な関係は、双方向弧によって表される。提供するステップＳ１０は、本方法の他のステップと異なるように表されるが、提供するステップは、モデリンググラフ（方法全体を通じて修正される可能性がある）が常に提供されるように、実際は、コンピュータによる実行の観点からバックグラウンドプロセスとして行われてもよい。
【００２０】
図１に表されるように、本方法は、３Ｄモデル化されたオブジェクトを定義するデータの修正Ｓ３０の際、強いグラフを判定するステップＳ３０を含んでよい。判定するステップは、たとえば、最初から（from scratch）、または本方法の前の繰り返しにおいて判定された強いグラフを更新／取得することから、実行されてよい。強いグラフは、モデリンググラフの強い構成要素のグラフである。本方法はまた、Ｓ３０において、強いグラフの探索に従って、３Ｄモデル化されたオブジェクトを更新するステップを備える。修正Ｓ３０、判定するステップＳ３０、および更新するステップＳ３０は、それらが単一のステップに重ね合わされるように理解されてもよく、必ずしも順次的でないので、同じブロックＳ３０内に表される。
【００２１】
また、図１に表されるように、代わりに、提供するステップＳ１０に続いて、追加の前に、３Ｄモデル化されたオブジェクトを定義するデータに含まれる（すなわち、追加される関係によってリンクされることになるオブジェクトがすでに存在する／すでにインスタンス化されている（instantiated）、すなわち、それらは、追加によって新たに作成されない）形状オブジェクトの２つ（すなわち少なくとも２つ）をリンクする（有効な、または手続き型）関係を追加するステップＳ２０の際、追加されることになる関係によってリンクされることになる２つの形状オブジェクトを選択するステップＳ２０が続いてもよい。再度、選択するステップＳ２０および追加するステップＳ２０は、それらが単一のステップに重ね合わされるように理解されてもよく、必ずしも順次的でないので、同じブロック内に表される。この場合、選択Ｓ２０は、たとえば方法全体にわたって、グラフによって順守される特定の規準に従って実行される。この基準は、以下では、「Ｓ２０の基準」または「Ｓ２０に関連する基準」または「順次基準」と称されてもよい。特に、提供されたモデリンググラフは、モデリンググラフの各強い構成要素のすべての弧が双方向であるという基準を順守する。
【００２２】
また、図１に表されるように、ステップＳ２０およびＳ３０に続いて、繰り返しが続いてもよい。特に、Ｓ１０およびＳ２０の繰り返しに続いて、Ｓ１０およびＳ３０の繰り返しが続いてもよいように、Ｓ２０における有効な関係または手続き型関係の追加ステップが、３Ｄモデル化されたオブジェクトを定義するデータの修正を構成し、そのＳ３０のデータ修正の繰り返しは、そのＳ２０の有効な関係または手続き型関係の追加ステップの繰り返しである。これは、概念的に、Ｓ２０次いでＳ３０の繰り返しに対応し、そのとき、Ｓ１０がバックグラウンドプロセスである。この場合、Ｓ２０は、３Ｄモデル化されたオブジェクトを定義するデータの修正は、Ｓ２０に挙げられた特定の方法以外で実行されないというさらなる条件をそれが追加するという意味で、Ｓ３０を指定する。たとえば、本方法は、Ｓ１０およびＳ２０の第１の繰り返し、次いでＳ１０およびＳ３０の第２の繰り返し、次いで任意選択で、Ｓ２０またはＳ３０が実行される他の繰り返しを備えてもよい。３Ｄモデル化されたオブジェクトを定義するほかのタイプのデータの修正（図示せず）、たとえば、既存の形状オブジェクトを入力として受け取り、新たな形状オブジェクトを出力として作成する手続き型関係を追加するステップ（すなわち、場合によっては、以下では「新たな手続き」を追加するステップと称される）、手続き型関係を削除するステップ、または有効な関係を削除するステップが、意図されてもよい。その場合、図１のフローチャートを参照して、本方法は、他のタイプの修正の際、Ｓ２０を実行しない。この繰り返しのプロセスは、工業デザイナーが連続した方式で設計方法を実行することに対応する。実際、デザイナーは、手続き型または有効な関係を追加もしくは削除し、または、３Ｄモデル化されたオブジェクトを定義するデータの他の修正を行う。そのような修正があるたびに、Ｓ３０が実行されてよい。修正が特に有効な関係または手続き型関係を追加するステップを備えるたびに、Ｓ２０が実行されてもよく、場合によっては次いでＳ３０が実行されてもよい。
【００２３】
Ｓ３０が、前の修正の際の３Ｄモデル化されたオブジェクトの更新に対応することに留意されたい。そのような更新は、修正の即座の統合を可能にして、たとえば、その視覚的フィードバックをデザイナーに提供する（たとえば、修正が実行されながら、３Ｄモデル化されたオブジェクトが表示される場合）。しかしながら、そのような更新は必ずしもオンザフライで実行されない。実際、いかなる更新もなしに（したがって、必ずしも視覚的フィードバックなしに）、デザイナーが設計修正を頻繁に実行する。修正は蓄積してもよく、更新はその後に任意の時点で行われてもよい。そのような場合、本方法は、Ｓ１０およびＳ２０のいくつかの繰り返し（または、Ｓ２０によって意図される以外の他の修正）を備える。そして、本方法は、場合によっては別のワークステーションで、別の日に、および／または別の人により、更新を実行するための、Ｓ１０およびＳ３０の繰り返しを備えてもよい。
【００２４】
そのような方法は、３Ｄモデル化されたオブジェクトの設計を改善する。特に、本方法は、手続き型関係と有効な関係との両方で３次元オブジェクトを設計することを可能にする。これは、デザイナーが複雑な形状を迅速に達成するために手続きを使用することができるように、手続き型関係のアーキテクチャ上の利点を工業デザイナーに提供するとともに、デザイナーが任意の時点で任意の制約を設定することができるように、有効な関係の柔軟性を工業デザイナーに提供する。本方法は、３Ｄモデル化されたオブジェクトの定義データの修正の際、その更新を実行する体系付けられた方法を提供することによって、ロバストな方法でこれら２つのフレームワークの統合を達成する。実際、本方法は、Ｓ３０における強いグラフの探索に従って更新を体系的に実行してもよい。それを行うことがグラフ理論に依存することによって、本方法は比較的速く実行される。実際、３Ｄモデル化されたオブジェクトおよび関係をグラフによって表すこと、ならびに強いグラフの使用を介してその定義するデータの修正の際、３Ｄモデル化されたオブジェクトの更新を実行することは、特に、強いグラフを、方法の１つの繰り返しから別の繰り返しへと容易に更新することができるので、容易で速い更新を可能にする。たとえば、前の繰り返しの下位の結果（sub-results）が任意の繰り返しにおいて使用されてよい。したがって、繰り返されるときに、本方法はスムースな設計を可能にする。また重要なことに、本方法は、工業デザイナーにとって直感的かつ予測可能な更新を可能にする。実際、工業デザイナーは、広く普及した一貫性のある設計の選好を有する。特に、本発明者らによって行われたテストで確認されるように、工業デザイナーは、手続き型関係を含む３Ｄモデル化されたオブジェクトを定義するデータを修正するとき、手続き型関係の入力がデザイナーによって修正されない限り、更新によって修正／移動されないことを期待する。本方法は、強いグラフの探索によってこの要件を保証する。最後に、それが、モデリンググラフの各強い構成要素のすべての弧が双方向であるという基準を順守するその実施形態において（その基準は、２つの既存のオブジェクト間での有効な関係または手続き型関係が３Ｄモデル化されたオブジェクトに追加されるたびに、Ｓ２０を体系的に実行するオプションによって保証される）、本方法は、既存の専用ソルバの再使用を可能にして、ロバストかつ迅速に更新を実行する（後で、すなわち、Ｓ３０で）。実際、強い構成要素は、有効な関係（おそらくは、工業設計の文脈における各グループの同じ種類の）に関係付けられた形状オブジェクトのグループの分離を提供し、それによって、後でＳ３０の例を詳述するときに述べられるように、既存の適切な有効なソルバ（live solver）および手続き実行／評価を交互に行うことによって、更新を実行することができる。これは、両方の種類の関係を扱うことができる専用ソルバを開発することよりも容易かつ体系的である。
【００２５】
本方法はコンピュータにより実行される。これは、本方法のステップ（または実質的にすべてのステップ）が、少なくとも１つのコンピュータまたは任意の同様のシステムによって実行されることを意味する。したがって、本方法のステップは、コンピュータによって、場合によって全自動的または半自動的に実行される。例では、本方法のステップのうち少なくとも一部のトリガは、ユーザとコンピュータの対話を通じて実行されてよい。要求されるユーザとコンピュータの対話のレベルは、予測される自動性のレベルに依存し、ユーザの希望を実装する必要性とのバランスをとってよい。例では、このレベルは、ユーザにより定義され、および／または事前定義されてもよい。
【００２６】
本方法のコンピュータにより実行されることの典型的な例は、この目的に適合されたシステムで本方法を実行することである。システムは、メモリおよびグラフィカルユーザインタフェース（ＧＵＩ）に結合されたプロセッサを備えてよく、メモリは、本方法を実行するための命令を含むコンピュータプログラムを記録している。メモリはまた、データベースも記憶してもよい。メモリは、そのような記憶に適合された任意のハードウェアであり、場合によっては、いくつかの物理的な個別の部分（たとえば、プログラム用に１つ、場合によってはデータベース用に１つ）を備える。
【００２７】
本方法は、概して、モデル化されたオブジェクトを操作する。モデル化されたオブジェクトは、データベースに記憶されたデータによって定義される任意のオブジェクトである。拡張によって、「モデル化されたオブジェクト」という表現は、データそれ自体を指定する。本方法によって設計される３Ｄモデル化されたオブジェクトは、それらの定義するデータの中で、モデリンググラフを有する構造的な特異性を有し、モデリンググラフは、両方の種類の関係を表す弧を有する。Ｓ２０の基準が順守される実装形態において、３Ｄモデル化されたオブジェクトは、グラフが基準を順守するというさらなる特異性を有する。３Ｄモデル化されたオブジェクトは、専用データ構造に、場合によってはデータファイルに記憶されてもよい。
【００２８】
システムのタイプに従って、モデル化されたオブジェクトは、異なる種類のデータによって定義されてよい。システムは、実際には、ＣＡＤシステム、ＣＡＥシステム、ＣＡＭシステム、ＰＤＭシステム、および／またはＰＬＭシステムの任意の組合せであってもよい。これらの異なるシステムでは、モデル化されたオブジェクトが、対応するデータによって定義される。したがって、ＣＡＤオブジェクト、ＰＬＭオブジェクト、ＰＤＭオブジェクト、ＣＡＥオブジェクト、ＣＡＭオブジェクト、ＣＡＤデータ、ＰＬＭデータ、ＰＤＭデータ、ＣＡＭデータ、ＣＡＥデータのことを言ってよい。しかしながら、これらのシステムは、モデリングされたオブジェクトが、これらのシステムの任意の組合せに対応するデータによって定義されてよいので、他を排除するものではない。したがって、システムは、以下で提供されるそのようなシステムの定義から明らかなように、ＣＡＤおよびＰＬＭの両方のシステムであってもよい。
【００２９】
ＣＡＤシステムによって、ＣＡＴＩＡなどのモデル化されたオブジェクトのグラフィック表現に基づいて、モデル化されたオブジェクトを設計するのに少なくとも適合された任意のシステムが意図される。この場合、モデル化されたオブジェクトを定義するデータは、モデル化されたオブジェクトの表現を可能にするデータを備える。ＣＡＤシステムは、たとえば、場合によっては面または表面を有するエッジまたは線を使用して、ＣＡＤモデル化されたオブジェクトの表現を提供することができる。線、エッジ、または表面は、様々な方式、たとえば、非一様有理Ｂスプライン（ＮＵＲＢＳ）で表されてよい。特に、ＣＡＤファイルは、形状をそれから生成することができる仕様を含み、これは表現が生成されることを可能にする。モデル化されたオブジェクトの仕様は、単一ＣＡＤファイルまたは複数のファイルに記憶されてもよい。ＣＡＤシステムにおけるモデル化されたオブジェクトを表すファイルの典型的なサイズは、パーツごとに１メガバイトの範囲内である。また、モデル化されたオブジェクトは、典型的には、数千のパーツの集合（assembly）である。
【００３０】
ＣＡＤの文脈において、モデル化されたオブジェクトは、典型的には、たとえば、パーツもしくはパーツの集合などの製品、または場合によっては製品の集合を表す、３Ｄモデル化されたオブジェクトであってもよい。「３Ｄモデル化されたオブジェクト」によって、その３Ｄ表現を可能にするデータによってモデル化された任意のオブジェクトが意図される。３Ｄ表現は、パーツをすべての角度から見ることを可能にする。たとえば、３Ｄモデル化されたオブジェクトは、３Ｄで表されるとき、その軸のいずれかを中心にして、または表現が表示されるスクリーン内のいずれかの軸を中心にして、処理および回転されてもよい。これは、特に、３Ｄモデル化されていない２Ｄアイコンを除外する。３Ｄ表現の表示は、設計を容易にする（すなわち、設計者がその作業を統計的に遂行する速度を速める）。このことは、製品の設計が製造プロセスの一部であるので、産業における製造プロセスを加速させる。
【００３１】
３Ｄモデル化されたオブジェクトは、（たとえば機械）パーツもしくはパーツの集合またはより概して任意の剛体集合（たとえば移動機構）など、たとえばＣＡＤソフトウェアソリューションまたはＣＡＤシステムでその仮想設計の完了に続いて現実世界において製造されることになる製品の形状を表してもよい。ＣＡＤソフトウェアソリューションは、航空宇宙、建築、建設、消費財、ハイテクデバイス、産業機器、海上、および／または沖合もしくは輸送を含む、様々かつ無制限の産業分野における製品の設計を可能にする。したがって、本方法によって設計された３Ｄモデル化されたオブジェクトは、工業製品を表し、工業製品は、地上車両の一部（たとえば、車および軽トラック機器、レーシングカー、オートバイ、トラックおよびモータ機器、トラックおよびバス、列車を含む）、飛行体の一部（たとえば、機体機器、航空宇宙機器、推進機器、防衛製品、エアライン機器、宇宙機器を含む）、船体の一部（たとえば、艦隊機器、商船、沖合機器、ヨットおよび作業船、舶用機器を含む）、機械の一部（たとえば、産業用製造機械、重可搬機械もしくは機器、設置された機器、産業機器製品、作製された金属製品、タイヤ製造製品を含む）、電気機械または電子機器の一部（たとえば、家庭電化製品、セキュリティおよび／もしくは制御および／もしくは計測製品、コンピューティングおよび通信機器、半導体、医療デバイスおよび機器を含む）、消費財（たとえば、家具、家庭および園芸製品、レジャー品、ファッション製品、耐久消費財小売製品、織物小売製品を含む）、包装（たとえば、食品および飲料および煙草、美容および介護、家庭製品包装を含む）であってもよい。本方法は、３Ｄモデル化されたオブジェクトが機械の一部または消費財を表すとき、特に効率的に適用する。実際、設計によって比較的要求されるこれらの分野では、工業デザイナーは、有効な関係によって提供される柔軟性から比較的多くの利益を得るので、本方法によって手続き型関係および有効な関係の混合が特に適切（relevant）である。
【００３２】
ＰＬＭシステムによって、物理的な製造された製品を表すモデル化されたオブジェクトの管理に適合された任意のシステムが意図される。ＰＬＭシステムでは、したがって、モデル化されたオブジェクトが、物理オブジェクトの製造に適したデータによって定義される。これらは、典型的には、寸法値（dimension values）および／または許容値（tolerance values）であってよい。オブジェクトの正確な製造のために、実際にそのような値を有することが好ましい。
【００３３】
ＣＡＭは、コンピュータ支援製造を表す。ＣＡＭソリューションによって、製品の製造データを管理するのに適合されたハードウェアまたはソフトウェアのいずれかのソリューションが意図される。製造データは概して、製造する製品、製造プロセス、および要求される資源に関係するデータを含む。ＣＡＭソリューションは、製品の製造プロセス全体を計画および最適化するために使用される。たとえば、それは、実行可能性、製造プロセスの期間、または製造プロセスの特定のステップで使用することができる特定のロボットなどのリソースの数についての情報を、ＣＡＭユーザに提供することができ、したがって、管理または要求される投資についての決定を可能にする。ＣＡＭは、ＣＡＤプロセスおよび起こり得るＣＡＥプロセスの後の後続プロセスである。そのようなＣＡＭソリューションは、ＤＥＬＭＩＡ（登録商標）という商標でＤａｓｓａｕｌｔ  Ｓｙｓｔｅｍｅｓによって提供される。
【００３４】
ＣＡＥは、コンピュータ支援エンジニアリングを表す。ＣＡＥソリューションによって、モデル化されたオブジェクトの物理的挙動の解析に適合された任意のハードウェアまたはソフトウェアのソリューションが意図される。よく周知かつ広く使用されているＣＡＥ技術は、モデル化されたオブジェクトを、方程式を通じて物理的挙動を計算およびシミュレートすることができる要素に分割することを典型的に含む、有限要素法（ＦＥＭ）である。そのようなＣＡＥソリューションは、ＳＩＭＵＬＩＡ（登録商標）の商標の下、Ｄａｓｓａｕｌｔ  Ｓｙｓｔｅｍｅｓによって提供されている。別の高まっているＣＡＥ技術は、ＣＡＤ形状データなしの異なる物理フィールドからの複数の構成要素からなる複合システムのモデリングおよび解析を含む。ＣＡＥソリューションは、製造する製品のシミュレーション、ならびに最適化、改善、および検証を可能にする。そのようなＣＡＥソリューションは、ＤＹＭＯＬＡ（登録商標）の商標の下、Ｄａｓｓａｕｌｔ  Ｓｙｓｔｅｍｅｓによって提供されている。
【００３５】
ＰＤＭは、製品データ管理を表す。ＰＤＭソリューションによって、特定の製品に関係するすべてのタイプのデータを管理するのに適合された任意のハードウェアまたはソフトウェアのソリューションが意図される。ＰＤＭソリューションは、主としてエンジニアであるがプロジェクトマネージャ、財務担当者、販売員および購買者も含む、製品のライフサイクルに関与するすべての主体によって使用されてもよい。ＰＤＭソリューションは概して、製品指向データベースに基づいている。それは、それらの製品についての一貫したデータを主体が共有することを可能にし、したがって、異なるデータを主体が使用することを防止する。そのようなＰＤＭソリューションは、ＥＮＯＶＩＡ（登録商標）の商標の下、Ｄａｓｓａｕｌｔ  Ｓｙｓｔｅｍｅｓによって提供されている。
【００３６】
図２は、システムのＧＵＩの例を示し、システムはＣＡＤシステムである。
【００３７】
ＧＵＩ２１００は、標準メニューバー２１１０、２１２０ならびに下部ツールバー２１４０およびサイドツールバー２１５０を有する、典型的なＣＡＤに類似のインタフェースであってもよい。そのようなメニューバーおよびツールバーは、当技術分野で公知であるように、ユーザ選択可能アイコンの組を含み、各アイコンは１または複数の操作または関数に関連付けられる。これらのアイコンの一部は、ＧＵＩ２１００に表示された３Ｄモデル化されたオブジェクト２０００を編集し、および／またはそれに対して作用するのに適合された、ソフトウェアツールに関連付けられ、ＧＵＩ２１００に表示された３Ｄモデル化されたオブジェクト２０００は、たとえば、本方法を実行した結果である。ソフトウェアツールは、ワークベンチ（workbenches）にグループ化されてよい。各ワークベンチは、ソフトウェアツールのサブセットを備える。特に、ワークベンチのうちの１つは、モデル化された製品２０００の形状的特性を編集するのに適した編集ワークベンチである。操作中、設計者は、たとえば、オブジェクト２０００の一部を予め選択し、次いで、適切なアイコンを選択することによって、操作（たとえば、寸法、色などを変更する）を開始し、または形状的制約を編集してよい。たとえば、典型的なＣＡＤ操作は、画面上に表示された３Ｄモデル化されたオブジェクトの穴開け（punching）または折り畳み（folding）のモデリングである。
【００３８】
ＧＵＩは、たとえば、表示された製品２０００に関係するデータ２５００を表示してもよい。図２の例において、「特性ツリー（feature tree）」として表示されるデータ２５００、およびそれらの３Ｄ表現２０００は、ブレーキキャリパーおよびディスクを含むブレーキ組立に関する。ＧＵＩはさらに、たとえば、オブジェクトの３Ｄ配向を容易にし、編集された製品の操作のシミュレーションをトリガするために、様々なタイプのグラフィックツール２１３０、２０７０、２０８０を示し、または表示された製品２０００の様々な属性をレンダリングしてよい。カーソル２０６０は、ユーザがグラフィックツールと対話することを可能にするように、触覚デバイスによって制御されてもよい。
【００３９】
図３は、システムの例を示し、システムは、クライアントコンピュータシステム、たとえば、ユーザのワークステーションである。
【００４０】
例示的なクライアントコンピュータは、内部通信バス１０００に接続された中央処理装置（ＣＰＵ）１０１０、やはりバスに接続されたランダムアクセスメモリ（ＲＡＭ）１０７０を備える。クライアントコンピュータはさらに、バスに接続されたビデオランダムアクセスメモリ１１００に関連付けられたグラフィカル処理ユニット（ＧＰＵ）１１１０が設けられる。ビデオＲＡＭ１１００はまた、当技術分野でフレームバッファとして知られている。大容量記憶デバイスコントローラ１０２０は、ハードドライブ１０３０などの大容量メモリデバイスへのアクセスを管理する。コンピュータプログラム命令およびデータを有形的に具体化するのに適した大容量メモリデバイスは、たとえば、ＥＰＲＯＭ、ＥＥＰＲＯＭ、およびフラッシュメモリデバイスなどの半導体メモリデバイス、内部ハードディスクおよび取外し可能ディスクなどの磁気ディスク、光磁気ディスク、ならびにＣＤ−ＲＯＭディスク１０４０を含む、すべての形式の不揮発性メモリを含む。上記のいずれは、特別に設計されたＡＳＩＣ（特定用途向け集積回路）によって補完され、またはそれに組み込まれてもよい。ネットワークアダプタ１０５０は、ネットワーク１０６０へのアクセスを管理する。クライアントコンピュータはまた、カーソル制御デバイスまたはキーボードなどの触覚デバイス１０９０を含んでもよい。カーソル制御デバイスは、クライアントコンピュータにおいて、ユーザがディスプレイ１０８０上の任意の所望の位置にカーソルを選択的に位置付けることを可能にするために使用される。加えて、カーソル制御デバイスは、ユーザが様々なコマンドを選択し、および制御信号を入力することを可能にする。カーソル制御デバイスは、システムに対する入力制御信号に対するいくつかの信号生成デバイスを含む。典型的には、カーソル制御デバイスはマウスであってよく、マウスのボタンは信号を生成するために使用される。代替または追加として、クライアントコンピュータシステムは、感知パッドおよび／または感知スクリーンを備えてよい。
【００４１】
コンピュータプログラムは、コンピュータによって実行可能な命令を備えてもよく、命令は、上記システムに本方法を実行させるための手段を含む。プログラムは、システムのメモリを含む任意のデータ記憶媒体に記録可能であってよい。プログラムは、たとえば、デジタル電子回路で、またはコンピュータハードウェア、ファームウェア、ソフトウェアで、またはこれらの組合せで実装されてよい。プログラムは、装置として、たとえば、プログラム可能プロセッサによる実行のための機械可読記憶デバイスに有形的に具体化された製品として実装されてもよい。方法ステップは、プログラム可能プロセッサが命令のプログラムを実行して、入力データを操作し、および出力を生成することによって本方法の機能を行うことによって、実行されてもよい。よって、プロセッサは、データストレージシステム、少なくとも１つの入力デバイス、および少なくとも１つの出力デバイスからデータおよび命令を受信し、ならびにそれらに命令を送信するようにプログラム可能であってもよく、または結合されてよい。アプリケーションプログラムは、ハイレベル手続き指向もしくはオブジェクト指向プログラミング言語で、または必要な場合にアセンブリ言語もしくは機械言語で実装されてよい。いずれの場合も、言語は、コンパイラ言語またはインタプリタ言語であってよい。プログラムは、完全インストールプログラムまたは更新プログラムであってよい。システム上のプログラムのアプリケーションは、いずれの場合も、本方法を実行するための命令となる。
【００４２】
「３Ｄモデル化されたオブジェクトを設計すること」は、３Ｄモデル化されたオブジェクトを作り上げるプロセスの少なくとも一部である任意の動作または一連の動作を指定する。したがって、本方法は、３Ｄモデル化されたオブジェクトを最初から作成することを含んでよい。代わりに、本方法は、前に作成された３Ｄモデル化されたオブジェクトを提供すること、次いでこの３Ｄモデル化されたオブジェクトを修正することを含んでもよい。コンピュータ支援形状設計を使用することによる仮想製品の設計が、形状を繋げる関係によって高度に強化される。ＣＡＤシステムは、モデル全体を自動的に更新することができるように、設計変更を、関係付けられた形状へ、その関係を通じて伝えすことができる方法で設計意図を捉える。
【００４３】
ＣＡＤの世界では、従来から２つの種類の関係が存在する。従来技術とは対照的に、本方法では、これら２つの種類が共存する。
【００４４】
第１の種類は、いわゆる「手続き型関係」であり、「履歴関係（historical relationship）」とも称される。それは、オブジェクトｙが手続きｆを通じて入力オブジェクトｘから計算されるという事実を取り入れる。これは、記号的にｙ＝ｆ（ｘ）と書かれ（ｆは数学的観点からの「写像」である）、出力オブジェクトｙは、入力オブジェクトｘによって一意に定義されることを意味し、したがって、出力オブジェクトｙを変更する唯一の方法は、入力オブジェクトｘをｘ’に変更し、手続きｙ’＝ｆ（ｘ’）を使用することによってオブジェクトｙの新しいバージョンｙ’を計算することである。手続き型関係は、入力オブジェクトから出力オブジェクトに向かって決定的に方向付けられ、この向きを変更する方法は存在しない。手続き型関係は、既存のオブジェクト上で事後的に作成されてもよい。たとえば、平面プロファイルから押し出された立体（solid）を計算することが、手続きによって実装されてもよい。得られた立体の形状を変更することは、手続きを編集し、入力データ、すなわちプロファイルの形状または深度値を変更することである。別の例は、自動車のフレームを定義する表面の穴であり、穴は、たとえば、窓を表す。手続きおよび非循環データフローを通じて互いから計算される一連の（chain of）オブジェクトが、「履歴ツリー」である。従来技術において履歴ツリーを更新することは、すべてのその入力オブジェクトが最新になるとすぐに各手続きを実行することである。ネットワークは非循環であるので、このプロセスは、有限数のステップの後に終了する。すべての従来技術の履歴ベースの形状モデラーは、この概念に基づいている。
【００４５】
第２の種類の関係は、「有効な関係」と称され、これは、本方法の文脈で、「非履歴関係（non-historical relationships）」または「非手続き型関係」を意味する。有効な関係は、曲線および表面に関係するスタイリング制約（styling constraints）（たとえば、接触（tangency）、適合、接続表面、端点一致、連結の平滑性）を含む。有効な関係はまた、寸法制約（たとえば、距離、角度、円半径、球半径、円筒半径）、および形状的制約（たとえば、一致、共面、接触、同軸、平行）を含む。有効な関係は、既存オブジェクト上で事後的に作成されてよく、それらは、本来的には方向付けられない。使用を容易にするため、それらは、方向付けられてもよいが、この方位は、ＣＡＤシステムによってまたは工業デザイナーによって反転されてもよい。したがって、本方法では、それらは双方向の弧によって表される。有効な関係のネットワークは、従来技術における特殊化されたソルバによって解決される。それは、すべての関係を同時に考慮に入れ、それは、繰り返す数または組合せのアルゴリズムを実行して、たとえば、方程式の系の解を繰り返して探索することにより、解を計算してもよい。たとえば、２Ｄスケッチは専用化されたソルバによって計算され、同様に、剛体の３Ｄ組立も専用化されたソルバによって計算される。
【００４６】
したがって、本方法およびＣＡＤシステムでは、工業デザイナーは、以下の方法で３Ｄモデル化されたオブジェクトを設計してもよい。ＣＡＤシステムは、形状オブジェクトのリスト、および形状オブジェクト間の関係を、デザイナーに提示する（任意のグラフィカルな方法で）。最初から設計する場合、工業デザイナーは、システムにより提供されたライブラリから選択される予め定められた初期形状（primitive shapes）（たとえば、明らかに非限定的例として、区分、円、楕円、円盤、球、長方形、平行六面体、円筒など）のインスタンスを宣言することによって、第１の形状オブジェクトを作成してもよい。工業デザイナーは、そのような初期形状の（長さ、位置などの）パラメータの値を定義してもよい。後に、デザイナーは、新しい形状オブジェクトを、既存のそれを使用することによって、または初期オブジェクトをさらにインスタンス化することによって構築してもよい。いずれの場合も、形状オブジェクトは、後述するように、典型的には相互に関係付けられた方法で３Ｄモデル化されたオブジェクトの形状を定義する（たとえばリストとして）別個に記憶されたデータのブロックである。形状オブジェクトの組は、典型的にはデザイナーに提示され、したがってデザイナーはそれらを区別することができる。
【００４７】
任意の時点で、工業デザイナーは、有効な関係、またはさらに１もしくは複数の既存の形状オブジェクトの間の手続き型関係を定義してよい。コンピュータ実装の観点から、これらの関係は、既存のオブジェクトのリストを修正しないが、それらは、既存のオブジェクトのパラメータの値に対して制約を課す（有効な関係によって影響される場合）。したがって、有効な関係は、それらが新しい形状を作成しないが既存の形状を修正するという意味で非手続き型関係である。有効な関係は、３Ｄモデル化されたオブジェクトの既存の形状オブジェクトにリンクされた制約である。それらは、「有効（live）」と言われるが、その理由は、デザイナーが、既存のオブジェクトの単純な操作によってそのような関係を有効に作成してもよく、工業デザイナーは直ちに結果を見てよいためである（新しい形状が追加される必要なく）。本方法の有効な関係は、スタイリング関係（たとえば、上述された接触、適合、接続表面、端点一致、接続平滑性関係）、機械的関係（たとえば、上述された寸法制約（たとえば、距離、角度、円半径、球半径、円筒半径）、および／または上述した形状的制約（たとえば、一致、共面、接触、同軸、平行））を含んでもよい。これらのタイプの有効な関係は、工業製品が機械パーツまたは消費財である文脈で特に有用であることを証明している。
【００４８】
任意の時点で、デザイナーは、１または複数の既存の形状オブジェクトを含む手続き型関係を定義してよい。手続き型関係は、典型的には、それらが１または複数の既存のオブジェクト（ユーザに提示された既存のオブジェクトの上述されたリストの）を取り、また、それらがそのリストに新しいオブジェクトを追加するという意味で、建設的であってもよい。有効な関係とは対照的に、手続き型関係は、通常は入力形状を修正しない（すなわち、手続き型関係は、その入力形状オブジェクトのパラメータの値に対して行動を有さない）。これらの出力オブジェクトは、入力オブジェクトを削除することが出力オブジェクトを必ず削除するように、それらが由来する入力オブジェクトに持続的に関係付けられる。手続き型関係によって作成されたオブジェクトは、次いで、後続の手続き型関係の入力としてそれら自体で使用されてよく、または、それらは有効な関係に関与されてよい。しかしながら、先に言及されたように、手続き型関係はまた、それにより定義された出力がそれにより定義された入力に対応する場合、既存オブジェクト間に追加されてもよい（そのような対応は、任意選択で手続き型関係の追加によって実施可能である）。
【００４９】
コンピュータデータの観点から、手続き型関係と有効な関係との間の差異が、方法およびシステムのコンピュータ実装に対する大きな影響を有することに留意することが重要である。実際、オブジェクト指向プログラミングを参照すると、これら２種類の関係は、それらが異なる方法で他のオブジェクト（本事例では形状オブジェクト）を含むで、全体的に異なる挙動を有するプログラムされたオブジェクト／クラス（class）である。これらの挙動は、工業的なコンテキストに特に関連する人間工学に影響を有する。本方法は、同じ３Ｄモデル化されたオブジェクトに対する２つのタイプの関係ひいては２つの挙動を可能にするという事実が、特に、非常に複雑でそれぞれが数十もしくは数百の特性を含む可能性がある機械パーツまたは消費財の場合に、有利である。
【００５０】
従来技術では、各種類の関係は、別々に評価または解決されてもよい。手続き型関係は、非循環データフローを更新することによって評価され、有効な関係は、専用アルゴリズムによって解決される。ＣＡＤツールのますます良好な統合を理由に、工業デザイナーが、同じモデルの形状内で両方の種類の関係を作成する使用が存在する。問題は、これら２つの技術を混合するのが困難なことである。典型的な状況は、手続きｙ＝ｆ（ｘ）の出力オブジェクトｙが、第１の有効な関係を通じて別のオブジェクトｚに接続され、それがさらに、第２の有効な関係を通じて手続きの入力オブジェクトｘに接続される。オブジェクトｘを編集し手続きｆ（・）を評価することが、オブジェクトｙを変化させ、それが、オブジェクトｚを変化させ、次いでオブジェクトｘを変化させることができ、オブジェクトｘは手続きｆ（・）の入力オブジェクトである。明らかに、この循環的データフローは、有効なソルバ単独で、および手続き評価単独では行えない解決技術に値する。問題は、全体的および許容可能なソリューションを提供する産業用アルゴリズムが存在しないことである。この結論は、プロトタイプを通じて出願人により行われた試験から得られる。計算された結果は、工業デザイナーの観点から予測不能、不安定、または不自然なあり方で挙動することがある。
【００５１】
明らかに、２つの不満足な状況の間に技術的ギャップが存在する。一方に、２つの別個の技術（要するに、手続き型対非手続き型）があり、他方に、これら２つの技術の完全な統合がある。本方法は、有効な関係および手続き型関係の異種ネットワークへの一定レベルの共存（cohabitation）を可能にする中間ソリューションを構成する。後で提示される例では、ネットワーク全体が有限数列（finite sequence）を通じて更新されて、ネットワークの適切なサブセット上で実行される手続き評価および有効な解決（live solving）を交互に行う。これは、以下では「順次更新（sequential update）」という表現によって参照され得る。
【００５２】
本方法の考えられる適用の例は、図４〜７を参照して次に論じられる。
【００５３】
寸法および形状的（機械的）制約の典型的な使用は、機械組立の設計である。図４は、ＣＡＤシステムの画面上に表示されるように、ヘリコプタの尾部ロータを示す。この機械組立は、形状的関係とともに複数のパーツを含む。各機械パーツは、単一の固体物であり、各形状的関係は、２つの固体物の２つの（couple of）機能表面をリンクする。図５は、すべてのパーツが視認可能であるように組立の分解された構成を示す。この組立では、円筒表面１が円筒表面２と同軸である。円筒表面５は円筒表面６と同軸である。球面３は球面４と同心である。多くの他のそのような形状的関係が、工業デザイナーによって作成される。本方法のソルバは、組立全体がすべての関係に適合するように、すべての固体物の位置を計算する。
【００５４】
スタイリング制約の典型的使用は、車体設計である。図６は、車体の形状が曲線および表面を使用することにより設計されていることを示す。工業デザイナーは、まず曲線を作成し、次いで、曲線の閉じられた輪郭を選択することによって表面が作成される。工業デザイナーはまた、（couples of）２つの曲線または２つの表面をリンクするマッチングおよび接触（tangency）関係を作成する。曲線１から７は、図７のグラフに従ってスタイリング関係を通じて接続される。明確にするため、曲線１の端点は、点８および１０であり、曲線２の端点は、点９および１１であることを理解されたい。曲線１および３は、固定された曲線である。曲線６および７の端点は、曲線１の端点と共有される。曲線２の端点は、曲線６および曲線７上でそれぞれ制約される。曲線４の端点は、曲線１および曲線２上でそれぞれ制約される。曲線５の端点は、曲線２および曲線３上でそれぞれ制約される。最後に、曲線２上に位置する（lying on）曲線５の端点は、曲線２上に位置する曲線４の端点と一致し（coincident with）、この点において、曲線４と曲線５との間の接続が湾曲の連続（curvature continuous）である。スタイリングソルバは、たとえば、曲線５の端点を曲線３に沿ってスライドさせることによって、工業デザイナーが形状を変化させるとき、すべてのこれらの関係を維持することができる。
【００５５】
固体物モデリングの古典的な特徴が表１に列挙されている。本議論の文脈では、「特徴」は、入力オブジェクトと出力オブジェクトとの間の「手続き型関係」を表す。入力オブジェクトの特性は詳述される。出力オブジェクトは常に固体物である。表１の手続き型関係は、すべてまたは部分的に本方法によって意図されてもよい。
【００５６】
【表１】
0006585423.tif 000002
【００５７】
次にステップＳ３０について論じられる。
【００５８】
先に述べられたように、３Ｄモデル化されたオブジェクトを定義するデータの修正は、既存の形状オブジェクトおよび／または既存の関係のパラメータの任意の修正であってもよい。それはまた、新しい形状オブジェクトもしくは新しい関係の追加（Ｓ２０におけるように）、または既存の形状オブジェクトもしくは既存の関係の削除を指定してもよい。そのような修正の際、本方法は、いわゆる「強いグラフ」を判定する。強いグラフは一意であり、およびモデリンググラフの強い構成要素のグラフ（形状オブジェクトを表すノードと、弧のインシデントノードによって表される２つの形状オブジェクトをリンクする関係をそれぞれが表す弧とを有し、手続き型関係は、手続き型関係と同じ向きを有する単方向弧によって表され、有効な関係は、双方向弧によって表される）を指定する。強い構成要素は後で詳述され、またグラフ理論から知られている。グラフ理論による多くの結果が本議論で使用される。古典的な参照文献は、非特許文献２である。非特許文献３は、優先権出願が出願されたとき、強い構成要素概念の議論を提供している。
【００５９】
３Ｄモデル化されたオブジェクトの任意の修正の際、本方法は、オブジェクトの有効な更新（live update）を提供する。これは、３Ｄモデル化されたオブジェクトが工業デザイナーへ表現／表示された場合に、特に有用である。そのような場合、デザイナーは、修正の効果を直接見ることができる。更新は、先に述べられたように、後に行ってもよい。いずれの場合も、更新は、強いグラフに基づいて、より詳細には強いグラフの探索に従って、実行される。言い換えれば、強いグラフの弧は、本方法の更新Ｓ３０の後に続き／更新Ｓ３０によって参照される。さらに言い換えれば、本方法は、強いグラフの構造に従って、より具体的には強いグラフの弧の向きに従って、更新を実行する。後で詳述される特定の例では、強いグラフの探索は、周知の深さ優先探索である。これは、Ｓ２０に関係付けられた基準の良好な使用で、高速かつロバストな更新を可能にする。特に、強いグラフの探索の間、各強い構成要素は、モデリンググラフの残部と独立して解決されてもよい。言い換えれば、本方法は、形状オブジェクトの構造およびそれらをリンクする関係を使用し、その構造は、モデリンググラフによって捕捉され、本方法は、この構造を、別の構造すなわち強いグラフに再編成する。次いで、本方法は、そのような解決と、異なる強い構成要素のオブジェクトをそれらの間でリンクする手続きの再実行（replay）とを適切に交互に行うことにより、個々に強い構成要素に対応する形状オブジェクトのグループを解決する。これは、有効な関係のみが実装されるモデルに対する専用ソルバの再使用を可能にする。たとえば、各強い構成要素は、方程式系ソルバ（すなわち、有効な関係の組を方程式の系に変換し、実質的に系を解決するソルバ）によって、または反復ソルバ（すなわち、有効な関係の組に関与される制約が実質的に順守される状態に到達するように、３Ｄモデル化されたオブジェクトのパラメータの値を反復的に試験するソルバ）によって解決されてもよい。これらのソルバは、従来技術で知られている。それらは、変動ソルバ（variational solvers）およびスタイリングソルバを含む。ソルバの性質は、用途、および解決されることになる強い構成要素に含まれる有効な関係の性質に応じて異なる。
【００６０】
したがって、本方法は、有効な関係と手続き型関係を混合するための制限である「順次基準（sequential criterion）」を定義する。制限は、Ｓ３０を含む方法の例では、順次更新を実行することができることを保証する。さらに、Ｓ２０を含む例における方法は、その順次基準が維持されるような方法で、関係のネットワークを編集する機構を提供する。
【００６１】
図８の図は、順次基準診断および順次更新のための上述された例の処理を示す。有向（モデリング）グラフおよび強いグラフは、本方法によって、計算を実行するために使用される特定のデータに変換される数学的概念である。図９の図は、ネットワークにおける友好な関係または手続き型関係の作成の間に順次基準を省略する（save）ための処理を示す。やはり、有向（モデリング）グラフおよび強いグラフは、本方法によって、計算を実行するために使用される特定のデータに変換される数学的概念である。
【００６２】
本方法は、データモデルおよび更新に関して、手続き型および非手続き型関係の真のレベルの統合を提供する。そして、工業デザイナーにとっての価値は、より柔軟および強力な設計システムならびに拡張された設計機能である。本発明によって定義される順次基準は、限定ではなく指針である。それは、工業デザイナーが異種ネットワークの利益を受けるのを支援し、また、複雑な循環的状況の手作業の管理を回避する。順次基準は、設計プロセスを通じてすべて安全に維持されてよく、常に順次更新を確実にする。これは、ＣＡＤシステムの完全性および信頼性を助ける。本発明の別の利点は、既存の手続き評価および有効なソルバの可能な再使用である。新しいアルゴリズムは、更新シーケンスを定義および実行するオーバヘッドである。これは、実装を容易およびロバストにする。
【００６３】
次に、本方法をより良く理解するためにグラフ理論背景が提供される。
【００６４】
まず、本方法によって使用される有向グラフ（モデリンググラフは有向グラフである）が次に論じられる。
【００６５】
有向グラフは、４タプルＧ＝（Ｘ，Ｕ，α，ω）であり、Ｘはノードの組、Ｕは弧の組であり、α：Ｕ→Ｘ、およびω：Ｕ→Ｘは接続関数である。式α（ｕ）＝ｘは、ｘ∈Ｘが弧ｕ∈Ｕの初期ノードであることを意味する。弧ｕは、ノードｘの出力弧である。式ω（ｕ）＝ｙは、ｙ∈Ｘが弧ｕ∈Ｕの終端ノードであることを意味する。弧ｕは、ノードｙの入力弧である。
【００６６】
これらの表記によれば、組ω-1（ｙ）は、ノードｙの入力弧の組であり、α-1（ｘ）は、ノードｘの出力弧の組であり、組α（ω-1（ｙ））は、ノードｙの入力ノードの組であり、組ω（α-1（ｙ））は、ノードｙの組の出力ノードである。
【００６７】
定義により、ルートノードγは、入力弧を有さず、つまりω-1（γ）＝φを意味する。リーフノード１は、出力弧を有さず、つまりα-1（１）＝φを意味する。
【００６８】
本方法によって使用される他のグラフ理論概念が次に論じられる。
【００６９】
サイクル：サイクルは、弧ｕ1，…，ｕnのリストであり、ｉ＝１，…，ｎ−１についてω（ｕi）＝α（ｕi+1）であり、ω（ｕn）＝α（ｕ1）であるようにされる。サイクルは、同様にノードｘ1，…，ｘnのリストによって定義されてもよく、ｉ＝１，…，ｎ−１について、α（ｕi）＝ｘiおよびω（ｕi）＝ｘi+1であるように弧ｕi、ならびにα（ｕn）＝ｘnおよびω（ｕn）＝ｘ1であるように弧ｕnが存在する。図１０は、有向グラフを示す。ノードの組は、Ｘ＝｛１，２，…，１１｝である。双方向を有する矢印は、逆方向を特徴付ける２つの矢印のグラフィカルな略記である。ノード３、１０、１１はサイクルを定義する。
【００７０】
部分グラフ：ノードのサブセットＹ⊂Ｘを仮定して、Ｇの対応する部分グラフＨが、ノードＹを接続するＧのすべての弧によって定義される。形式的に、Ｈ＝（Ｙ，Ｖ，α，ω）、ただし、Ｖ＝｛ｕ∈Ｕ，α（ｕ）∈Ｙ，ω（ｕ）∈Ｙ）である。
有向非循環グラフ：定義により、有向非循環グラフはサイクルを含まない。
強い構成要素：強い構成要素の目標は、部分グラフがすべてのサイクルを含み、かつそれらが非循環方式でともに接続されるような方法で、有向グラフを部分グラフに編成することである。このグラフ理論概念は、有向グラフの循環および非循環特性を編成するのに最も効率的である。本方法のこの主要な特徴は、以下に詳述される。
【００７１】
形式的には、第１のステップは、ノードの組Ｘに関する関係ρを定義することである。ｘからｙの弧の経路、およびｙからｘの弧の経路が存在する場合、２つのノードｘ，ｙ∈Ｘが関連付けられ、それはｘρｙと表記される。明白に、ρは、同値関係（再帰（reflexive）、対称、推移）である。したがって、基本的代数により、関係ρは、組Ｘを同値クラス（equivalence classes）Ｘ1，…，Ｘpに分離し、Ｘの区画を定義する。これは、ｉ≠ｊである場合、
【００７２】
【数１】
0006585423.tif 000003
【００７３】
およびＸi∩Ｘj＝φを意味する。
【００７４】
定義により、各Ｘiは、グラフＧの強い構成要素である。もちろん、１つのＸiから別のＸjのノードへノードを接続する弧が存在してよいが、それらはいずれのサイクルにも属さない。
【００７５】
すべてのサイクルは、それぞれＧiと表記される、Ｘiによって定義される部分グラフに捕捉される。
【００７６】
写像ｃｌａｓｓ（mapping class）：Ｘ→｛Ｘ1，…，Ｘp｝は、ｘ∈Ｘiである場合、ｃｌａｓｓ（ｘ）によって定義される。この写像は、各ｘが厳密に１つのＸiに属するので的確に定義される。
【００７７】
図１１は、先のグラフの強い構成要素（点線で囲まれた）を示す。形式的に、Ｘ1＝｛７｝、Ｘ2＝｛４，５｝、Ｘ3＝｛１，２，６，８｝、およびＸ4＝｛３，９，１０，１１｝である。さらに、ｃｌａｓｓ（６）＝Ｘ3、ｃｌａｓｓ（４）＝Ｘ2などである。
【００７８】
強い構成要素の計算：強い構成要素は、以下のアルゴリズムによって計算されてもよい。コアアルゴリズムは、所与のノードを含む強い構成要素を計算する。開始する前に、すべてのノードがマークされず、強い構成要素のカウンタｎはゼロである。
１．マークされないノードｘが存在する場合、ｎ＝ｎ＋１、さもなければ、ステップ６に進む。
２．ノードｘにマーク±ｎを設定する。
３．それらの元の向きでグラフの弧を使用することによって、ノードｘから到達することができるすべてのノードに、マーク＋ｎを設定する。
４．それらの逆の向きでグラフの弧を使用することによって、ノードｘから到達することができるすべてのノードに、マーク−ｎを設定する。
５．±ｎがマークされたノードのリストを含む新しい強い構成要素を作成し、ステップ１に進む。
６．終了。
【００７９】
図１２は、ノード３を含む（第１の）強い構成要素の計算を示す。最も左の図は、ステップ２の後のグラフであり、中央の図は、ステップ３の後のグラフであり、最も右の図は、ステップ４の後のグラフである。ノード３の強い構成要素は、｛３，９，１０，１１｝である。
【００８０】
強いグラフ：定義により、強いグラフＳのノードは、強い構成要素Ｘiであり、強いグラフＳの弧は、異なるサブセットＸiからの２つのノードを接続するグラフＧの弧である（いくつかのそのような弧は、場合によってはサブセットＸiの同じペアについて存在し、したがって、いくつかの弧は、場合によっては強いグラフのノードの同じペアを接続する）。形式的に、Ｓ＝（ＸS，ＵS，αS，ωS）であり、
ＸS＝｛Ｘ1，…，Ｘp｝
ＵS＝｛ｕ∈Ｕ，ｃｌａｓｓ（α（ｕ））≠ｃｌａｓｓ（ω（ｕ））｝
αS＝ｃｌａｓｓ（α（ｕ））
ωS＝ｃｌａｓｓ（ω（ｕ））
である。
【００８１】
構成により、強いグラフは常に非循環である。
【００８２】
図１３は、例の強いグラフを示す。
【００８３】
有向非循環グラフにおける親／子ノードおよび集合体（tribe）：Ｋ＝（Ｚ，Ｗ，α，ω）を有向非循環グラフとし、ｚ∈Ｚを、「選択されたノード」と名付けられた特定のノードとする。定義により、ノードｚ’∈Ｚは、ｚからｚ’のつながり（またはｚ’からｚのつながり）が存在する場合、ｚの「子ノード」（または「親ノード」）である。定義により「集合体ノード」は、親ノードまたは子ノードである。
【００８４】
親ノードおよび子ノードは、グラフの弧をアクセスする（visit）ことにより容易に計算されてもよい。
【００８５】
図１４は、有向非循環グラフの例を示し、選択されたノードは「ａ」である。「ａ」の子ノードは、「ｂ」、「ｃ」、および「ｄ」であり、「ａ」の親ノードは、「ｅ」および「ｇ」である。結果として、「ａ」の集合体ノードは、「ｂ」、「ｃ」、「ｄ」、「ｅ」、および「ｇ」である。
【００８６】
次に、有向グラフ（すなわちモデリンググラフ）を有する関係のネットワークのモデル化が論じられる。
【００８７】
形状および関係のネットワークがグラフによってモデル化される。グラフのノードは形状オブジェクトを表し、弧は関係を表す。
【００８８】
手続き型関係ｚ＝ｆ（ｘ，ｙ）は、弧ｕおよびｖが入力オブジェクトｘおよびｙを出力オブジェクトｚに接続することによって表される。弧は、手続きｆの入力オブジェクトｘ、ｙから手続きｆの出力オブジェクトｚに向かって方向付けられる。言い換えれば、α（ｕ）＝ｘ、ω（ｕ）＝ｚ、およびα（ｖ）＝ｙ、ω（ｖ）＝ｚである。単一の手続きは、入力オブジェクトの数に応じて、いくつかの弧によってモデル化されてもよい。手続きの出力オブジェクトは、常に一意である。手続き型関係をモデル化する弧は、「手続き弧」と呼ばれる。これは、図１５によって示されている。
【００８９】
ＣＡＤ工業デザイナーの観点から、有効な関係は、方向付けられてもよく、または方向付けられなくてもよい。方向付けられるとき、それは、逆にされてもよく、または方向付けられないように設定されてもよい。方向付けられないとき、それは、任意の方法で方向付けられてもよい。これらの理由により、有効な関係は、以下のようにモデル化される。
【００９０】
２つの形状ａおよびｂを接続する有効な関係は、２つの弧ｖ、ｗによって表される。１つはａからｂに方向付けられ、他方はｂからａに方向付けられる（双方向弧に相当する）。言い換えれば、α（ｖ）＝ω（ｗ）＝ｘ、およびα（ｗ）＝ω（ｖ）＝ｙである。有効な関係をモデル化する弧は、「有効な弧（live  arcs）」と称される。
【００９１】
このモデリングは、手続き型関係が常に方向付けられ、有効な関係とは反対に決して逆にされ得ないという事実を取り入れる。グラフィカルな観点から、単一の向きを有する矢印が手続き弧であり、二重に方向付けられた矢印が有効な弧である。本来的に、すべての有効な弧は強い構成要素に含まれる。
【００９２】
次に、本方法の例で適用することができる順次更新基準が論じられる。
【００９３】
手続き型および有効な関係のネットワークを仮定して、かつその関連付けられたグラフを仮定して、順次更新に対する基準は、手続き弧を強い構成要素に含めることができないということである。順次基準が満たされる場合、すべての手続き弧は強いグラフに属し、構成により、それらは非循環的な方法で接続される。
【００９４】
図１６のグラフ例は、強い構成要素Ｇ4における手続き弧３→１０を理由に、この基準に適合しない。それは、たとえば、この弧を除去することによって（図１７に示されるように）、または有効な弧３←→１０（図示せず）との交換によって、訂正されてもよい。
【００９５】
次に、本方法によってＳ３０で適用することができる順次更新アルゴリズムの例が論じられる。
【００９６】
交互の連続した有効な解決（live solving）および手続き評価が、強いグラフＳ＝（ＸS，ＵS，αS，ωS）を探索することによって取得される。強いグラフの各ノードが、形状および有効な関係を表す初期グラフの部分グラフを定義することに留意されたい。
【００９７】
強いグラフが複数のリーフノードを特徴付ける場合、一意（および記号の）のリーフノードが、各リーフノードから追加されたリーフノードへの方向付けられた弧を作成することによって追加される。このように、強いグラフが一意のリーフノードを有することを常に想定することができる。
【００９８】
探索アルゴリズムは、特に深さ優先探索を実装するために、後入れ先出しリスト（以下ではＬＩＦＯリスト）を使用する。リストの最後に要素ｘを追加することは、Ｐｕｔ（ｘ）として記述される。リストの最後の要素を読み取ることは、Ｒｅａｄ（ｙ）として記述される。命令Ｒｅａｄ（・）は、リスト内の要素の個数を変更しない。リストから最後の要素を除去することは、ＲｅｍｏｖｅＬａｓｔとして記述される。
【００９９】
順次更新アルゴリズムは、図１８の図で説明される。それは、主に、リーフノードで開始する深さ優先探索であり、弧の逆の向きを使用する。以下で詳述される「ビルド（Build）」方法は、探索の間に呼び出される。初期化は、リスト内に強いグラフの一意のリーフノードを配置することである。開始する前に、すべてのノードは０でマークされ、これは、すべてのｘ∈Ｘsについてｐ（ｘ）：＝０と表記される。大まかに言えば、ｐ（ｘ）＝０は、「ｘにより定義された部分グラフがまだ解決されていない」を表し、ｐ（ｘ）＝１は、「ｘにより定義された部分グラフが解決された」を表す。
【０１００】
例では、強い構成要素を解決するとき、手続き型関係（その入力ノードが前に解決された強い構成要素のうちの１つである手続き型関係を含む）の出力である強い構成要素のノードによって表される形状オブジェクトが、固定して設定される。これは、ロバストな解決、およびユーザが意図する比較的高い順守を可能にする。衝突は、何らかの方法で対処されてよい。
【０１０１】
方法「ビルド」は、強いグラフＳのノードｙ上で呼び出される。このノードは、実際、強い構成要素であり、元のグラフＧのノードのサブセットであり、これは、ｙ＝Ｘiであることを意味する。組ωS-1（ｙ）は、ノードｙのすべての入力弧の組である。本来的に、それらは手続き弧である。組ω（ωS-1（ｙ））は、手続き弧ωS-1（ｙ）の終端ノードである元のグラフのノードの組である。方法「ビルド」は、以下の２つのアクションを実行する。
【０１０２】
Ｂｕｉｌｄ（ｙ）：手続き弧ωS-1（ｙ）によってモデル化されたすべての手続きを評価する。組ω（ωS-1（ｙ））は、この評価の出力オブジェクトを含む。
【０１０３】
ω（ωS-1（ｙ））のオブジェクトは固定され、かつ修正されなくてもよいことを考慮して、ｙ＝Ｘiによって定義された有効な部分グラフ（live sub-graph）を解決する。
【０１０４】
順次更新アルゴリズムは、手続き方法が常にすべてのそれらの入力オブジェクトが評価または解決された後に評価されるように設計される。
【０１０５】
アルゴリズムは例示的なグラフで実行される。読み取りやすくするために、初期グラフＧ（図１９）と強いグラフＳ（図２０）との両方が図示されている。ＬＩＦＯリストはＬで表記される。
【０１０６】
（一意の）リーフノード｛７｝は、Ｌ＝（｛７｝）となるようにリスト内に配置される。Ｌの最終要素｛７｝の入力ノード｛４，５｝は０でマークされるので、それは、Ｌ＝（｛７｝，｛４，５｝）となるようにリストに追加される。Ｌの最終要素｛４，５｝の入力ノード｛１，２，６，８｝は０でマークされるので、それは、Ｌ＝（｛７｝，｛４，５｝，｛１，２，６，８｝）となるようにリストに追加される。
【０１０７】
Ｌの最終要素｛１，２，６，８｝は、入力ノードを有しない。したがって、「ビルド」方法が｛１，２，６，８｝に適用され、これは、ノード１、２、６、８によって定義されるＧの有効な部分グラフが解決されることを意味する。次いで、グラフＳのノード｛１，２，６，８｝が１でマーク付けされ、Ｌ＝（｛７｝，｛４，５｝）となるようにＬから除去される。
【０１０８】
ここで、Ｌの最終要素｛４，５｝のすべての入力ノードが１でマークされ、したがって、「ビルド」方法が｛４，５｝に適用され、これは、
− 入力オブジェクト８から出力オブジェクト４を計算する弧８→４によってモデル化された手続きが評価される、
− オブジェクト４が固定されたことを考慮して、ノード４、５によって定義されたＧの有効な部分グラフが解決される、
ことを意味する。
【０１０９】
グラフＳのノード｛４，５｝は、実際、１でマークされ、Ｌ＝（｛７｝）となるようにＬから除去されてよい。Ｌの最終要素｛７｝の入力ノード｛３，９，１０，１１｝は、０でマークされ、したがって、それがＬに追加され、つまりＬ＝（｛７｝，｛３，９，１０，１１｝）となる。
【０１１０】
Ｌの最終要素｛３，９，１０，１１｝のすべての入力ノードが１でマークされるので、「ビルド」方法が｛３，９，１０，１１｝に適用され、これは、
−入力オブジェクト６から出力オブジェクト３を計算する弧６→３によってモデル化された手続きが評価される、
−オブジェクト３が固定されたことを考慮して、ノード３、９、１０、１１によって定義されたＧの有効な部分グラフが解決される、
ことを意味する。
【０１１１】
次いで、グラフＳのノード｛３，９，１０，１１｝は、１でマークされ、Ｌ＝（｛７｝）となるようにＬから除去される。
【０１１２】
最後に、Ｌの最終要素｛７｝のすべての入力ノードが１でマークされ、したがって、「ビルド」方法が｛７｝に適用され、これは、入力オブジェクト５、８、１１から出力オブジェクト７を計算する弧１１→７、８→７、および５→７によってモデル化された手続きが評価されることを意味する。次いで、グラフＳのノード｛７｝は、１でマークされ、Ｌ＝φとなるようにＬから除去される。
【０１１３】
予想されるように、順次更新アルゴリズムは、交互の連続した手続き評価および有効な解決（解決されるときスターノードは固定される）を以下のように実行する。
１．解決：｛１，２，６，８｝
２．評価：８→４
３．解決：｛４＊，５｝
４．評価：６→３
５．解決：｛３＊，９，１０，１１｝
６．評価：５，８，１１→７
【０１１４】
次に、Ｓ２０によってネットワーク編集（network edition）を通じて順次基準が省略される方法の例が論じられる。
【０１１５】
ここで、問題は、関係のネットワークを工業デザイナーが編集するときに順次基準を維持することである。有効な関係を削除すること、または手続き型関係を削除することは、グラフ内に新しいサイクルを作成することができず、したがって、順次手順が省かれる。新しい手続きオブジェクトを作成することは、新しいノード（出力オブジェクトをモデル化する）、およびいくつかの先行ノード（入力オブジェクトをモデル化する）から新しいノードへ方向付けられた弧を追加することである。この動作は、新しいサイクルを作成することができず、したがって順次基準が省かれる。結果として、順次基準を無効にしてよい単なる動作は、有効な関係を追加すること、または事後的に既存のオブジェクト間に手続き型関係を追加することである。たとえば、図２１のグラフにおけるノード４とノード１との間に有効な関係を追加することは、図２２のグラフに示されるように、手続き弧８→４を含む強い構成要素｛１，２，４，５，６，８｝をもたらす。明らかに、順次手順が失われる。別の例では、図２１のグラフにおけるノード７からノード４への手続き型関係を追加することは、図２３に示されるように、手続き弧５→７および７→４を含む強い構成要素｛４，５，７｝をもたらす。明らかに、順次手順が失われる。
【０１１６】
説明されたように、この例では、提供されたモデリンググラフは、モデリンググラフの各強い構成要素のすべての弧が双方向であるという基準を順守することが意図される。言い換えれば、同じ強い構成要素の形状オブジェクトは手続き型関係によって互いに関係付けられず、それによって、潜在的にそれらを含む手続き型関係が必然的に他の強い構成要素の形状オブジェクトを有することになる。この基準を保持するために、本方法は、Ｓ２０で、既存のオブジェクト間に有効な関係または手続き型関係を追加する際、追加される有効な関係または手続き型関係によってリンクされることになる２つの形状オブジェクトの特定の選択を含む。選択Ｓ２０は、基準に従って実行される。言い換えれば、システムは、有効な関係または手続き型関係を既存の形状オブジェクトの特定のペアに追加することを（少なくとも、２つのオブジェクトを入力として受け取るそれらの有効な関係または手続き型関係について）工業デザイナーに指示してよい。この指示は、厳格であってもよく（すなわち、ユーザは基準を破ることができない）、または単なる指導であってもよい（ユーザは、単に選択において援助され、所与のオブジェクトのペアの選択が基準に適合し、もしくはしない場合に、何らかの方法で通知される）。
【０１１７】
例において、追加される有効な関係によってリンクされることになる２つの形状オブジェクトの選択は、すべての形状オブジェクトのうちから第１の形状オブジェクトを選択することを含む。これは、典型的には、ユーザによって手作業で（すなわちユーザ対話を介して）実行される。次いで、選択は、モデリンググラフ内ですべての形状オブジェクトを識別することを含み（システムによって自動的に）、形状オブジェクトに対し、それらと第１の形状オブジェクトとの間の有効な関係を追加することが基準を破ることになる。第１の形状オブジェクトの強い構成要素に含まれるすべてのノードのすべての集合体ノードを判定することを含む、そのような識別を実装するための効率的かつロバストな方法が、後で説明される。そして、本方法は、識別された形状オブジェクトに従って第２の形状オブジェクトを（典型的にはデザイナーによって、ユーザ対話を介して）選択することを含む。理解することができるように、選択以外のステップは完全に自動とすることができる。上述されたように選択が厳格な場合、第２のオブジェクトの選択は、基準を破るものとして識別されないモデリンググラフの形状オブジェクトに限定される。
【０１１８】
よって、有効な関係を作成するための双方向の対話が、工業デザイナーに第１の要素および第２の要素を選択するように要求する。第１の要素が選択されるとすぐに、例におけるシステムは、選択された場合に順次基準を無効にするネットワークのすべての要素を識別することによって、適切な第２の要素の選択を予測することができる。グラフィカルユーザインタフェースの観点からは、これらの要素を選択不可能にし、かつ強調させないこと（under intensified）で十分である。そして、工業デザイナーに提案された選択は常に順次基準を省く。
【０１１９】
ここで、第１の形状オブジェクトの強い構成要素に含まれるすべてのノードのすべての集合体ノードを判定することは、モデリンググラフの強いグラフを判定し、および強いグラフ内で、第１の形状オブジェクトの強い構成要素のすべての集合体ノードを判定することによって、高速かつロバストな方法で実行されてもよい。
【０１２０】
グラフＧ内の選択されたノードｘ（ネットワークのユーザ選択された要素を表す）を仮定して、不適合ノードが以下のように識別されてもよい。
１．選択されたノードｘを含む強いグラフＳのノードＣｌａｓｓ（ｘ）を取得する。
２．強いグラフＳにおいて、Ｔｒｉｂｅ（Ｃｌａｓｓ（ｘ））と表記されるＣｌａｓｓ（ｘ）の集合体ノードを計算する。
３．Ｉｃ（ｘ）と表記される選択されたノードｘと不適合なグラフＧのノードが、以下のようにすべての集合体ノードの和集合である。
【０１２１】
【数２】
0006585423.tif 000004
【０１２２】
図２４〜図２８は、不適合ノードの識別を例示する。初期グラフＧの選択されたノードは、図２４に示されるようにｘ＝１１である。選択を含む強いグラフノードは、図２５に示されるようにＣｌａｓｓ（１１）＝｛３，９，１０，１１｝である。
【０１２３】
強いグラフにおいて、｛３，９，１０，１１｝の不適合ノードは、図２６に示されるように、｛１，２，６，８｝および｛７｝である。形式に従うと、これは以下を意味する。
【０１２４】
Ｔｒｉｂｅ（Ｃｌａｓｓ（１１））＝Ｔｒｉｂｅ（｛３，９，１０，１１｝）＝｛｛１，２，６，８｝，｛７｝｝
そして、不適合ノードは以下のようになる。
Ｉｃ（１１）＝｛１，２，６，８｝∪｛７｝＝｛１，２，６，７，８｝
初期グラフ上の選択不可能な弧およびノードが、図２７の最も左の図に示されている。図２７の中央の図に示されるように第２のユーザ選択がノード５である場合、ノード１１および５を接続する有効な関係が作成され、結果のグラフは図２７の最も右の図である。
【０１２５】
図２８に示されるように、順次基準が省かれても、弧１１←→５を作成することが強い構成要素を変化させることに注意されるべきである。
【０１２６】
手続き関係を作成するための双方向の対話が、工業デザイナーに第１の要素および第２の要素を選択することを要求する。第１の要素が選択されるとすぐに、本方法は、選択された場合に順次基準を無効にするネットワークのすべての要素を識別することによって、適切な第２の要素の選択を予測することができる。グラフィカルユーザインタフェースの観点からは、これらの要素を選択不可能にし、強調させないことで十分である。そして、ユーザに提案された選択は常に順次基準を省く。ｘを、グラフＧ内の選択されたノード（ネットワークのユーザ選択された要素を表す）とする。選択された要素は、方向付けられた弧が作成される開始ノードであると仮定して。そして、不適合ノードは、以下のように識別される。
１．選択されたノードｘを含む強いグラフＳのノードＣｌａｓｓ（ｘ）を取得する。
２．強いグラフＳにおいて、Ｐａｒｅｎｔ（Ｃｌａｓｓ（ｘ））と表記されるＣｌａｓｓ（ｘ）の親ノードを計算する。
３．Ｉｃ（ｘ）と表記される選択されたノードｘと不適合なグラフＧのノードは、以下のように、すべての親ノードの和集合と共にＣｌａｓｓ（ｘ）のノードである。
【０１２７】
【数３】
0006585423.tif 000005
【０１２８】
選択された要素が、作成されている方向付けられた弧の終端ノードである場合、親方法を子方法に置き換えることで、同じ方法が使用される。
【０１２９】
図２９〜図３２は、不適合ノードの識別を例示する。初期グラフＧの選択されたノードは、図２９の最も左の図に示されるようにｘ＝５であり、ユーザの意図は、ノード５で開始する方向付けられた弧を作成することである。選択を含む強いグラフノードは、図２９の最も右の図に示されるようにＣｌａｓｓ（５）＝｛４，５｝である。強いグラフにおいて、｛４，５｝の不適合ノードは、｛４，５｝それ自体および｛１，２，６，８｝であり、その理由は、Ｐａｒｅｎｔ（Ｃｌａｓｓ（５））＝Ｐａｒｅｎｔ（｛４，５｝）＝（｛１，２，６，８｝）であり、および以下の式による。
【０１３０】
【数４】
0006585423.tif 000006
【０１３１】
初期グラフ上の選択不可能な弧およびノードが、図３０の最も左の図に示されている。図３０の最も右の図に示されるように第２のユーザ選択がノード１１である場合、図３１に示されるように、ノード５をノード１１に接続する手続き型関係が作成される。図３２に示されるように、弧５→１１を作成することが強い構成要素を変化させないことに注意されるべきである。
【０１３２】
典型的には以下のシナリオがシステムによって実行されてよい。
１．第１の作成ステップ
ａ．平面Ｐ1を作成する。
ｂ．平面Ｐ2を作成する。
ｃ．Ｐ1とＰ2との間の距離制約ｄ1を作成する。これは、Ｐ1とＰ2を平行にする。
ｄ．Ｐ2上にプロファイルＫ1をスケッチ（sketch）する。
ｅ．拡張部分ｈ1およびｈ2によってＫ1から固体物パッドＳ1を押し出す（extrude）。
ｆ．平面Ｐ3を作成する。
ｇ．Ｐ3とＳ1の側面との間の距離制約ｄ2を作成する。システムは、平面Ｐ3のみを移動させる。
２．第１の修正ステップ
ａ．Ｐ1を固定する
ｂ．距離値ｄ1を
【０１３３】
【数５】
0006585423.tif 000007
【０１３４】
に変更し、更新を求める。
ｃ．Ｐ2、Ｋ1、Ｓ1は、システムによって変換された
【０１３５】
【数６】
0006585423.tif 000008
【０１３６】
である。
ｄ．Ｐ3は、システムによって移動されない。
３．  第２の修正ステップ
ａ．  Ｐ1を固定解除する
ｂ．  距離値ｄ2を
【０１３７】
【数７】
0006585423.tif 000009
【０１３８】
に変更し、更新を要求する。
ｃ．  Ｐ3が
【０１３９】
【数８】
0006585423.tif 000010
【０１４０】
変換されるべきである。すべての他の形状はシステムによって移動されない。
４．第２の作成ステップ
ａ．平面Ｐ4を作成する。
ｂ．距離制約作成対話に進む。
ｃ．Ｓ1の面を選択する。
ｄ．Ｐ1、Ｐ2、およびＰ3は、システムで選択可能なように提供されない。Ｐ3は、システムで選択可能なように提供される。
【図１】
0006585423.tif 000011
【図２】
0006585423.tif 000012
【図３】
0006585423.tif 000013
【図４】
0006585423.tif 000014
【図５】
0006585423.tif 000015
【図６】
0006585423.tif 000016
【図７】
0006585423.tif 000017
【図８】
0006585423.tif 000018
【図９】
0006585423.tif 000019
【図１０】
0006585423.tif 000020
【図１１】
0006585423.tif 000021
【図１２】
0006585423.tif 000022
【図１３】
0006585423.tif 000023
【図１４】
0006585423.tif 000024
【図１５】
0006585423.tif 000025
【図１６】
0006585423.tif 000026
【図１７】
0006585423.tif 000027
【図１８】
0006585423.tif 000028
【図１９】
0006585423.tif 000029
【図２０】
0006585423.tif 000030
【図２１】
0006585423.tif 000031
【図２２】
0006585423.tif 000032
【図２３】
0006585423.tif 000033
【図２４】
0006585423.tif 000034
【図２５】
0006585423.tif 000035
【図２６】
0006585423.tif 000036
【図２７】
0006585423.tif 000037
【図２８】
0006585423.tif 000038
【図２９】
0006585423.tif 000039
【図３０】
0006585423.tif 000040
【図３１】
0006585423.tif 000041
【図３２】
0006585423.tif 000042