(57)【要約】      （修正有）【課題】工業製品設計のコンピュータ実施方法等を提供する。【解決手段】方法は、製品の少なくとも１つのジオメトリを選択するステップＳ１００と、少なくとも１つの選択されたジオメトリを表すノードからの、グラフの各ノードの奥行き値を計算するステップＳ１２０と、グラフの相反する制約を識別する、相反する制約は有向エッジによって表され、開始ノードの奥行き値は終了ノードの奥行き値より大きいステップＳ１３０と、識別済みの相反する制約を逆転するステップＳ１４０と、少なくとも１つの選択されたジオメトリを修正するステップＳ１５０とを含む。【選択図】図１
2015179515.tif 000002
【特許請求の範囲】
【請求項１】
工業製品の設計のコンピュータ実施方法であって、前記工業製品のジオメトリ間の制約が、ノードとエッジとを含む制約のグラフを用いてモデル化され、ノードはジオメトリを表し、エッジは２つのジオメトリ間の制約を表す、コンピュータ実施方法であって、
前記製品の少なくとも１つのジオメトリを選択するステップと、
前記少なくとも１つの選択されたジオメトリを表すノードからの前記グラフの各ノードの奥行き値を計算するステップと、
１つまたは複数の相反する制約を前記グラフで識別するステップであって、相反する制約は有向エッジによって表され、開始ノードの奥行き値は終了ノードの奥行き値より大きい、ステップと、
前記識別された１つまたは複数の相反する制約を逆転するステップと、
前記少なくとも１つの選択されたジオメトリを修正するステップと、
前記選択されたジオメトリの前記修正を伝播するステップと
を含むことを特徴とするコンピュータ実施方法。
【請求項２】
前記選択されたジオメトリの前記修正の前記伝播は、前記少なくとも１つの選択されたジオメトリの前記修正に従って、制約のグラフでモデル化された前記制約に従うジオメトリを解決するステップを含み、前記解決は、前記計算された奥行き値によって規定されるシーケンス順に従って行われる、請求項１に記載のコンピュータ実施方法。
【請求項３】
同じ奥行き値を有するノードはグループ化され、ジオメトリ間の前記制約を解決する前記シーケンス順は、奥行き値ｎ＋１を有するノードグループに関して、
前記グループのノードを接続するエッジによって表される制約に従って前記ジオメトリを解決するステップと、
奥行き値ｎを有するノードグループのノードから、奥行き値ｎ＋１を有する前記ノードグループのノードの方に向かう制約に従って前記ジオメトリを解決するステップと
を含むことを特徴とする請求項２に記載のコンピュータ実施方法。
【請求項４】
奥行き値ｎを有する前記ノードグループのジオメトリ間の制約は解決されることを特徴とする請求項３に記載のコンピュータ実施方法。
【請求項５】
前記グラフの各ノードの奥行き値を計算するステップの後、最小の奥行き値を有する前記ノードから、最大の奥行値を有する前記ノードに、前記グラフの各エッジの向きを決定するステップをさらに含むことを特徴とする請求項１から４のいずれかに記載のコンピュータ実施方法。
【請求項６】
同じ奥行き値を有する２つのノードを接続するエッジは変更されないことを特徴とする請求項１から５のいずれかに記載のコンピュータ実施方法。
【請求項７】
前記製品の少なくとも１つのジオメトリを選択するステップの後、少なくとも１つの基準要素を選択するステップをさらに含み、基準要素は、前記伝播ステップで修正されない前記製品のジオメトリであることを特徴とする請求項１から６のいずれかに記載のコンピュータ実施方法。
【請求項８】
前記少なくとも１つの選択された基準要素と、前記少なくとも１つの選択されたジオメトリは、前記グラフの最小の奥行き値と同じ奥行き値を有することを特徴とする請求項７に記載のコンピュータ実施方法。
【請求項９】
前記選択されたジオメトリの前記修正を伝播するステップの後、前記識別された１つまたは複数の逆転済みの相反する制約の元の向きを回復するステップをさらに含むことを特徴とする請求項１から８のいずれかに記載のコンピュータ実施方法。
【請求項１０】
前記ノードによって表される前記ジオメトリは、点、線、曲線、表面、場所、立体のうちの１つであることを特徴とする請求項１から９のいずれかに記載のコンピュータ実施方法。
【請求項１１】
請求項１から１０に記載のいずれかの方法を行うための命令を含むコンピュータプログラム。
【請求項１２】
請求項１１に記載のコンピュータプログラムを記録したコンピュータ可読記憶媒体。
【請求項１３】
メモリとグラフィカルユーザインタフェースとに結合されたプロセッサを含むシステムであって、前記メモリは、請求項１１に記載のコンピュータプログラムを記録することを特徴とするシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、コンピュータプログラムおよびコンピュータシステムの分野に関し、より詳細には、工業製品のジオメトリ間の制約が、ノードおよびエッジを含む制約のグラフを用いてモデル化される、工業製品を設計する方法、システムおよびプログラムに関する。
【背景技術】
【０００２】
オブジェクトの設計、工学および製造のために多くのシステムおよびプログラムが市場に提供されている。ＣＡＤは、コンピュータ支援設計（Ｃｏｍｐｕｔｅｒ−Ａｉｄｅｄ  Ｄｅｓｉｇｎ）の頭字語である。例えば、ＣＡＤは、オブジェクトを設計するソフトウェアソリューションに関する。ＣＡＥは、コンピュータ支援工学（Ｃｏｍｐｕｔｅｒ−Ａｉｄｅｄ  Ｅｎｇｉｎｅｅｒｉｎｇ）の頭字語である。例えば、ＣＡＥは、将来の製品の物理的挙動をシミュレーションするソフトウェアソリューションに関する。ＣＡＭは、コンピュータ支援製造（Ｃｏｍｐｕｔｅｒ−Ａｉｄｅｄ  Ｍａｎｕｆａｃｔｕｒｉｎｇ）の頭字語である。例えば、ＣＡＭは、製造プロセスおよび作業を規定するソフトウェアソリューションに関する。このようなコンピュータ支援設計システムにおいては、グラフィカルユーザインタフェースが、技術効率という点で重要な役割を果たす。これらの技術は、製造ライフサイクル管理（ＰＬＭ）システムに組み込んでよい。ＰＬＭは、企業が、拡張企業のコンセプトを通して、製品開発のために着想から製品寿命の終わりまで、製品データを共有し、共通のプロセスを応用し、企業知識を活用するのを助ける企業戦略を指す。
【０００３】
（ＣＡＴＩＡ、ＥＮＯＶＩＡ、ＤＥＬＭＩＡの商標で）Ｄａｓｓａｕｌｔ  Ｓｙｓｔｅｍｅｓ社によって提供されるＰＬＭソリューションは、製品工学の知識を体系化する工学ハブ、製造工学の知識を管理する製造ハブ、工学ハブおよび製造ハブの両方に、企業を統合し、結びつけることができる企業ハブを提供する。全てが一緒になって、そのシステムは、製品、プロセスおよびリソースをリンクさせて、動的な知識ベースの製品作成、並びに、最適な製品の定義、製造準備、生産およびサービスを推進する意思決定支援を可能にする、開放的なオブジェクトモデルを供給する。
【０００４】
ＣＡＤシステムにおいては、工業製品を形成するジオメトリを接続する幾何学的制約は、向きがある。２つのジオメトリ間の制約の向きは、１つのジオメトリがマスタであり、他のジオメトリがスレーブ要素であることを意味する。例えば、表面Ａと表面Ｂとの間のマッチング制約を作成するとき、表面Ｂは変化させず、表面Ｂの境界線に合わせるために、表面Ａを変形させる。作成順は、システムによって保存され、この順に従って修正が行われる。この例では、表面Ｂを表面Ａの修正バージョンに一致するように変形させることは不可能である。
【０００５】
作成ステップで制約を方向付けることは、その結果が明白に選択順によって決まるので、実に適切である。そうすると、ＣＡＤシステムは、予測通りに振る舞い、ユーザビリティが良い。
【０００６】
にもかかわらず、修正にあたって、設計意図に合わせるために編集すべきオブジェクトはどれかを理解するのが制約の向きがあるために難しくなる。
【０００７】
さらに、修正ステップにおいて、制約の向きは、ジオメトリに関して「可視的」でない。これは、制約（一致、マッチング、滑らかな接続など）を形作る、曲線や表面等のジオメトリが、機械設計のオフセット制約のような矢印に自然には関連付けられないからである。
【０００８】
設計者が制約の向きを理解する通常の方法は、マスタがどれで、スレーブがどれかを知るために、ジオメトリの修正してみることである。ジオメトリの修正を試みると、スレーブ要素は直接編集できないので、スレーブ要素が設計意図に従うように振る舞うまで、設計者はマスタ要素への変更を繰り返す。
【０００９】
制約の種類に応じて、向きを手動で逆転させることができる。これは、変更プロセスを容易にするが、生産性という点では流れがよいとは言えない。要するに、ＣＡＤシステムの挙動は、修正の意図よりも、制約ネットワークの向きによって左右される。
【００１０】
別の問題は、設計者が有向制約サイクルの作成を許可されていることである。理論的観点から見ると、サイクルというのは、２つ以上の要素間の終わりのない依存性である。ソリューションの存在は、アプリオリ（先験的）として保証されず、ソリューションの計算は、反復プロセスを必要とし得るので、収束と言う問題が起こり得る。ユーザの視点から、また、設計を形作る曲線や表面という文脈において、制約サイクルというのは、実際の設計意図というよりも反復的選択による副次的な影響である。サイクルを扱うための既知のソリューションは、（例えば、英数字メッセージを表示することによって）ユーザが提案に従うか否かを決定できるようにして、ユーザに提案を行うことである。このようなソリューションを用いると、制約された幾何学的オブジェクトの集合を修正することは、警告メッセージを受けながら、制約ネットワークを調整するという問題となる。ＣＡＤシステムは、単独で制約の向きを変更しないので、好ましいスタイルのインタフェースが、幾何学的オブジェクトをインタラクティブに、かつ、流れるように、移動、または、変形させることである場合、このソリューションは効率的ではない。
【００１１】
この文脈において、改良された工業製品の設計法が必要とされ、ジオメトリ間の制約を方向づけられる。
【発明の概要】
【００１２】
従って、工業製品設計をコンピュータで実施する方法であって、工業製品のジオメトリ間の制約は、ノードおよびエッジを含む制約のグラフを用いてモデル化され、ノードはジオメトリを表し、エッジは２つのジオメトリ間の制約を表す、方法であって、
−製品の少なくとも１つのジオメトリを選択するステップと、
−少なくとも１つの選択されたジオメトリを表すノードからの、グラフの各ノードの奥行き値を計算するステップと、
−相反する制約を、前記グラフで識別するステップであって、相反する制約は有向エッジによって表され、開始ノードの奥行き値は終了ノードの奥行き値より大きい、ステップと、
−識別済みの相反する制約を逆転させるステップと、
−少なくとも１つの選択されたジオメトリを修正するステップと、
−選択されたジオメトリの修正を伝播するステップと
を含む方法が提供される。
【００１３】
方法は、以下の１つまたは複数を含んでよい。
【００１４】
−選択されたジオメトリの修正の伝播は、少なくとも１つの選択されたジオメトリの修正に従って、制約のグラフでモデル化された制約に従うジオメトリを解決するステップを含み、解決は、計算された奥行き値によって規定されるシーケンス順に従って行われる。
【００１５】
−同じ奥行き値を有するノードはグループ化され、ジオメトリ間の制約を解決する前記シーケンス順は、奥行き値ｎ＋１を有するノードグループに関して、グループのノードを接続するエッジによって表される制約に従ってジオメトリを解決するステップと、奥行き値ｎを有するノードグループのノードから、奥行き値ｎ＋１を有する前記ノードグループのノードの方に向かう制約に従ってジオメトリを解決するステップとを含む。
【００１６】
−奥行き値ｎを有するノードグループのジオメトリ間の制約は解決される。
【００１７】
−グラフの各ノードの奥行き値を計算するステップの後、最小の奥行き値を有するノードから、最大の奥行値を有するノードに、グラフの各エッジの向きを決定するステップ。
【００１８】
−同じ奥行き値を有する２つのノードを接続するエッジは変更されない。
【００１９】
−製品の少なくとも１つのジオメトリを選択するステップの後、少なくとも１つの基準要素を選択するステップをさらに含み、基準要素は、伝播ステップで修正されない製品のジオメトリである。
【００２０】
−少なくとも１つの選択された基準要素と、少なくとも１つの選択されたジオメトリは、グラフの最小の奥行き値と同じ奥行き値を有する。
【００２１】
−選択されたジオメトリの修正を伝播するステップの後、識別された１つまたは複数の逆転済みの相反する制約の元の向きを回復するステップ。
【００２２】
−ノードによって表されるジオメトリは、点、線、曲線、表面、場所、立体のうちの１つである。
【００２３】
方法を行うための命令を含むコンピュータプログラムがさらに提供される。
【００２４】
コンピュータプログラムを記録したコンピュータ可読記憶媒体がさらに提供される。
【００２５】
メモリとグラフィカルユーザインタフェースとに結合されたプロセッサを含むシステムであって、メモリは、上記コンピュータプログラムを記録する、システムが提供される。
【図面の簡単な説明】
【００２６】
本発明の実施形態について図面を参照しながら、制限を目的としない例を用いて説明する。
【図１】方法の一例を示すフローチャート。
【図２】有向グラフすなわち制約のグラフの一例。
【図３】図２のグラフの一例であって、各ノードの計算された奥行き値がノード８のユーザ選択に従い表示されていることを示す。
【図４】図２のグラフの一例であって、相反する制約が点線で表されている。
【図５】図２のグラフの一例であって、相反する制約を反転させたものが点線で表されていることを示す。
【図６】図３の計算された奥行き値によって規定されたシーケンス順に従って行われるジオメトリの解決例。
【図７】車体の予備設計に関し、幾何学的制約を介して接続されたジオメトリの三次元ネットワーク例。
【図８】図７のジオメトリの三次元ネットワークの制約のグラフの一例。
【図９】図７のジオメトリの三次元ネットワークであって、両方向矢印が、曲線３を修正することなく設計者によって移動させることができる曲線３上にある曲線５の端点を示す。
【図１０】図８のグラフの相反する制約を点線で表したグラフ。
【図１１】図８の相反する制約を逆転させたグラフ。
【図１２】図７のジオメトリの三次元ネットワークであって、曲線２上にある曲線５の端点は、設計者によって移動可能であることを示す。
【図１３】ＣＡＤシステムのグラフィカルユーザインタフェースの一例。
【図１４】本発明による方法を実行するコンピュータシステムの一例。
【発明を実施するための形態】
【００２７】
図１のフローチャートを参照して、工業製品設計のコンピュータ実施方法が提案されており、工業製品のジオメトリ間の制約は、制約のグラフを用いてモデル化される。制約のグラフはノードとエッジを含み、ノードは工業製品のジオメトリを表し、エッジは工業製品の２つのジオメトリ間の制約を表す。方法はさらに、工業製品の少なくとも１つのジオメトリの選択を含む。方法は、グラフの各ノードに関して、前に選択したジオメトリを表すノードからの奥行き値を計算することを含む。方法は、グラフで１つまたは複数の相反する制約を識別することを含む。相反する制約は有向エッジによって定義され、開始ノードの奥行き値は、終了ノードの奥行き値より大きい。方法はまた、１つまたは複数の識別済みの相反する制約の逆転、言い換えると、１つまたは複数の識別済みの相反する制約の向きを反転させることも含む。方法はさらに、少なくとも１つの選択されたジオメトリを、例えば、ユーザアクションで、修正することを含む。方法はまた、工業製品の１つまたは複数の他のジオメトリに、選択されたジオメトリの修正を伝播することも含む。
【００２８】
このような方法は、工業製品の設計を改善するものであり、ここでは、本発明により、修正の意図が、相反する制約を自動的に逆転することによって優先するので、ジオメトリ間の制約が方向付けられる。実際、制約されたジオメトリの集合が与えられ、ユーザが選択した修正しようとする要素の集合が与えられ、および、基準要素のオプション集合が与えられると、本発明は、ユーザ選択に関し、また基準要素に関し、全ての幾何学的要素の奥行き値を計算し、この奥行き値により、相反する制約を決定する。次に、相反する制約の向きが逆転され、その結果、実際に設計者によって修正が行われるときにその修正は設計意図に従った向きの制約ネットワークにより伝播される。さらに向きは、基準要素が修正されないように計算される。修正が行われた後、相反する制約の元の向きが回復され、幾何学的要素の新しい選択が可能になり、その新しい選択に従って、向きを変更する新たなプロセスが実行される。
【００２９】
よって、本発明によると、制約の向きが設計者に隠されているので、手動で制約の向きを変えたりマスタ／スレーブの設定を検索したりすることなく、修正が直接行われる。これにより、幾何学的製品は、元の設計者、または最初のバージョンの著者でない別の設計者によって容易に修正することができる。システムは、最初の設計意図、（オプションである）基準要素、および即時修正の意図を調和させることによる自然な挙動を特徴としているので、修正が容易になる。そして、修正ステップで時間が節約され生産性が強化されるので、より短い時間で最終製品が手に入る。さらに、本発明により、グラフの制約サイクルを解決することが可能になる。実際に、異なる奥行き値を有するジオメトリを伴う制約サイクルは、相反する制約を逆転することによって取り除かれる。言い換えれば、ユーザ選択は一時的に、幾何学的要素間での優先を生じさせるので、多くの循環依存性が取り除かれる。全てのサイクルが、このプロセスで取り除かれるわけではなく、存在し続けるサイクルは、関係のないサイクルである。従って、ソルバは、関係のあるサイクルに属する制約を解決することができる。制約サイクルの解決を試みる間、ソルバは止まらないので、計算資源が蓄えられる。本発明の別の利点は、選択されたジオメトリの修正の伝播が行われた後、相反する制約の最初の向きを容易に回復できることである。これによって、最初の設計意図が保存され、データモデルの多様化を避けることによって、プロセス全体をよりロバストにすることができる。
【００３０】
方法は、コンピュータで実施される。これは、方法のステップ（または、全てのステップ）が、少なくとも１つのコンピュータ、または、同様の任意のシステムで実行されることを意味する。従って、方法のステップは、場合によっては完全に自動で、または、半ば自動で、コンピュータによって行われる。例を挙げると、方法の少なくとも一部のステップのトリガは、ユーザとコンピュータのインタラクションによって行われてよい。必要とされるユーザとコンピュータのインタラクションのレベルは、予測される自動性のレベルによって決まり、ユーザの希望を実施する必要性とバランスをとってよい。例においては、このレベルは、ユーザが決定してもよく、および／または、予め決定されていてもよい。
【００３１】
例えば、製品のジオメトリを選択するステップは、ユーザアクションに基づいて行われてよい。例えば、ユーザは、表示されたジオメトリ表現の選択を行う。同様に、選択されたジオメトリを修正するステップは、ユーザアクションに基づいて行われてよい。
【００３２】
方法をコンピュータで実施する典型的な例は、この目的に適合されたシステムを用いて行うことである。システムは、メモリとグラフィカルユーザインタフェース（ＧＵＩ）に接続されたプロセッサを備えてよい。メモリには、方法を行うための命令を含むコンピュータプログラムが記録されている。メモリは、データベースも記憶してよい。メモリは、このような記憶のために適合された任意のハードウェアで、場合によっては、幾つかの物理的に別れた部分（例えば、プログラム用の部分、場合によっては、データベース用の部分）を含む。
【００３３】
「データベース」とは、検索および読み出しのために体系化された任意のデータの集まり（すなわち、情報）を意味する。データベースは、メモリに記憶されて、コンピュータによって素早く検索、読み出しができる。実際、データベースは、様々なデータ処理動作と併用されて、データの記憶、読み出し、修正、削除を容易にするように構成されている。データベースは、記録に分割することができるファイルまたはファイルの集合からなってよく、各記録は、１つまたは複数のフィールドからなっている。フィールドは、データストレージの基本の単位である。ユーザは、主としてクエリを通してデータを読み出してよい。キーワードおよび並べ替えコマンドを使用することによって、ユーザは、多くの記録内のフィールドを素早く検索、再配置、グループ化、および、選択して、使用中のデータベース管理システムの規則に従って、特定のデータ集合体に関するレポートを読み出し、または、作成することができる。
【００３４】
その方法の場合には、工業製品は、データベースに記憶されてよい。工業製品のジオメトリ間の制約をモデル化する制約のグラフは、データベースに記憶されてよい。
【００３５】
方法は、一般的に、モデルオブジェクトを操作する。モデルオブジェクトは、データベースに記憶されたデータが定義する任意のオブジェクトである。例えば、本発明においては、工業製品は、曲線や表面のようなジオメトリであり得るモデルオブジェクトを用いて設計される。ジオメトリは、幾何学的制約によって接続される。幾何学的制約は、接触、マッチング、接続された表面、端点の一致、接続の滑らかさなどであってよいが、それらに限られない。
【００３６】
拡大解釈すると、「モデルオブジェクト」という表現は、データそのものを指定する。システムの種類に従って、モデルオブジェクトは、異なる種類のデータによって定義されてよい。実際、システムは、ＣＡＤシステム、ＣＡＥシステム、ＣＡＭシステム、ＰＤＭシステム、および／または、ＰＬＭシステムの任意の組み合わせであってよい。これらの異なるシステムにおいては、モデルオブジェクトは、対応するデータによって定義される。それに応じて、ＣＡＤオブジェクト、ＰＬＭオブジェクト、ＰＤＭオブジェクト、ＣＡＥオブジェクト、ＣＡＭオブジェクト、ＣＡＤデータ、ＰＬＭデータ、ＰＤＭデータ、ＣＡＭデータ、ＣＡＥデータという。しかしながら、モデルオブジェクトは、これらのシステムの任意の組み合わせに対応するデータによって定義されてよいので、これらのシステムは、互いに排他的ではない。よって、あるシステムは、以下に記載のシステムの定義から明らかなように、ＣＡＤおよびＰＬＭシステムの両方であってよい。
【００３７】
ＣＡＤシステムとは、モデルオブジェクトのグラフィック表現に基づいて、モデルオブジェクトを少なくとも設計するように適合された任意のシステムを意味する。ＣＡＴＩＡは、ＣＡＤシステムの一例である。この場合、モデルオブジェクトを定義するデータは、モデルオブジェクト表現を可能にするデータを含む。ＣＡＤシステムは、例えば、辺または線、場合によっては、面または表面を用いて、ＣＡＤモデルオブジェクトを表現してよい。線、辺、または、表面は、例えば、非一様Ｂスプライン（ＮＵＲＢＳ）など、様々な方法で表現してよい。詳細には、ＣＡＤファイルは仕様を含み、その仕様からジオメトリを生成してよく、それによって、表現を生成することができる。モデルオブジェクトの仕様は、１つのＣＡＤファイルに記憶しても、複数のＣＡＤファイルに記憶してもよい。ＣＡＤシステムでモデルオブジェクトを表現するファイルの典型的サイズは、パーツごとに１メガバイトの範囲である。そして、モデルオブジェクトは、典型的には、何千ものパーツの集まりであってよい。
【００３８】
ＣＡＤの文脈においては、モデルオブジェクトは、典型的には、例えば、パーツもしくはパーツの集まり等の製品、または、場合によっては、製品の集まりを表す、３Ｄモデルオブジェクトであってよい。「３Ｄモデルオブジェクト」とは、３Ｄ表現を可能にするデータによってモデル化される任意のオブジェクトを意味する。３Ｄ表現によって、あらゆる角度からパーツを見ることが可能になる。例えば、３Ｄモデルオブジェクトは、３Ｄで表現されて、そのオブジェクトの任意の軸を中心に、または、その表現を表示する画面の任意の軸を中心に、取り扱ってよく、回転させてよい。これによって、特に、３Ｄモデル化されない２Ｄアイコンが除外される。３Ｄ表現を表示することによって設計を容易にする（すなわち、設計者が自分のタスクを統計的に達成する速度を速める）。製品の設計は製造プロセスの一部なので、これによって、その産業における製造プロセスを速める。
【００３９】
ＣＡＤシステムは履歴ベースである。この場合、モデルオブジェクトは、幾何学的特徴の履歴を含むデータによって、さらに定義される。実際に、モデルオブジェクトは、物理的な人（すなわち、設計者／ユーザ）が、標準的なモデリング特徴（例えば、押出、外巻き（revolute）、切断、および／または、丸めなど）および／または、標準的な表面仕上げ特徴（例えば、スイープ、ブレンド、ロフト、フィル、デフォーム、スムージングなど）を用いて、設計してよい。このようなモデリング機能をサポートしている多くのＣＡＤシステムは、履歴ベースのシステムである。これは、入力リンクおよび出力リンクを介して上記の幾何学的特徴をリンクさせる非循環のデータフローを通して、設計特徴の作成履歴が保存されるのが典型的であること、を意味する。履歴ベースのモデリングパラダイムは、８０年代の初めからよく知られている。モデルオブジェクトは、履歴とＢ表現（すなわち、境界表現）という２つの持続的なデータ表現によって記述される。Ｂ表現は、履歴で定義された計算の結果である。モデルオブジェクトが表されるとき、コンピュータ画面に表示されるパーツの形は、Ｂ表現（のモザイク状配置（tessellation））である。パーツの履歴は設計意図である。基本的に、履歴は、モデルオブジェクトが経てきた操作の情報を集めたものである。Ｂ表現を履歴と共に保存して複雑なパーツの表示を簡単にしてよい。履歴は、設計意図に従ってパーツの設計変更を可能にするために、Ｂ表現と共に保存してよい。
【００４０】
ＰＬＭシステムとは、物理的に製造された製品を表すモデルオブジェクトの管理に適合された任意のシステムを意味する。従って、ＰＬＭシステムにおいては、モデルオブジェクトは、物理的オブジェクトの製造に適したデータによって定義される。これらは、典型的には、寸法値および／または許容値であってよい。オブジェクトを正確に製造するためには、このような値を有しているほうが確かによい。
【００４１】
ＣＡＭは、コンピュータ支援製造を表す。ＣＡＭソリューションとは、製品の製造データを管理するために適合された、ソフトウェアまたはハードウェアの任意のソリューションを意味する。製造データは、一般的に、製造する製品、製造プロセス、および、必要な資源に関連するデータを含む。ＣＡＭソリューションを用いて、製品の製造プロセス全体を計画および最適化する。例えば、ＣＡＭソリューションは、フィージビリティ、製造プロセスの期間、または、製造プロセスの特定のステップで使用可能な特定のロボット等の資源の数、に関する情報をＣＡＭユーザに提供することができ、それによって、管理または必要とされる投資に関する決定を可能にする。ＣＡＭは、ＣＡＤプロセスおよび、起こり得るＣＡＥプロセスの後に続くプロセスである。このようなＣＡＭソリューションは、Ｄａｓｓａｕｌｔ  Ｓｙｓｔｅｍｅｓ社により登録商標ＤＥＬＭＩＡとして提供されている。
【００４２】
ＣＡＥは、コンピュータ支援工学を表す。ＣＡＥソリューションは、モデルオブジェクトの物理的挙動の解析に適合された、ソフトウェアまたはハードウェアの任意のソリューションを意味する。周知の広く用いられているＣＡＥ技術は、有限要素法（ＦＥＭ）である。有限要素法は、典型的には、方程式で物理的挙動を計算、シミュレーションできる要素にモデルオブジェクトを分割することを伴う。このようなＣＡＥソリューションは、Ｄａｓｓａｕｌｔ  Ｓｙｓｔｅｍｅｓ社により登録商標ＳＩＭＵＬＩＡとして提供されている。別の成長中のＣＡＥ技術は、ＣＡＤジオメトリデータなしで、異なる物理分野の複数のコンポーネントからなる複雑なシステムのモデル化および解析を伴う。ＣＡＥソリューションによってシミュレーションが可能になるので、製造する製品の最適化、改良、および、検証が可能になる。ＣＡＥソリューションは、Ｄａｓｓａｕｌｔ  Ｓｙｓｔｅｍｅｓ社により登録商標ＤＹＭＯＬＡとして提供されている
ＰＤＭは、製品データ管理を表す。ＰＤＭソリューションとは、特定の製品に関連する全ての種類のデータを管理するために適合された、ソフトウェアまたはハードウェアの任意のソリューションを意味する。ＰＤＭソリューションは、エンジニアだけでなく、プロジェクト管理者、財務担当者、販売担当者、および、購入者を含む、製品のライフサイクルに関わる全ての人々によって用いられてよい。ＰＤＭソリューションは、一般的に、製品志向のデータベースに基づいている。ＰＤＭソリューションによって、製品のライフサイクルに関わる全ての人々は、製品に関して一貫性のあるデータを共有することができるので、異なるデータを用いなくてよい。このようなＰＤＭソリューションは、Ｄａｓｓａｕｌｔ  Ｓｙｓｔｅｍｅｓ社により登録商標ＥＮＯＶＩＡとして提供されている。
【００４３】
図１３は、システムのＧＵＩの例を示している。ここでは、システムはＣＡＤシステムである。
【００４４】
ＧＵＩ１００は、典型的なＣＡＤのようなインタフェースであってよく、標準メニューバー１１０、１２０、および、ボトムツールバー１４０、サイドツールバー１５０を有する。このようなメニューバーおよびツールバーは、ユーザが選択可能なアイコンのセットを含み、各アイコンは、当分野で既知の１つまたは複数の操作または機能に関連付けられる。これらのアイコンの一部は、ＧＵＩ１００に表示されている３Ｄモデルオブジェクト２００を編集する、および／または、３Ｄモデルオブジェクトに手を加える、ために適合されたソフトウェアツールに関連付けられている。ソフトウェアツールは、ワークベンチにグループ化されてよい。各ワークベンチは、ソフトウェアツールのサブセットを含む。特に、ワークベンチの１つは、モデル化された製品２００の幾何学的特徴の編集に適した、編集ワークベンチである。操作時、設計者は、例えば、オブジェクト２００のパーツを予め選択してよく、次に、適切なアイコンを選択して、操作（例えば、寸法、色などの変更）を開始してもよく、幾何学的制約を編集してもよい。例えば、典型的なＣＡＤ操作は、画面に表示された３Ｄモデルオブジェクトの打ち抜きや折り畳みのモデル化である。
【００４５】
ＧＵＩは、例えば、表示された製品２００に関連するデータ２５０を表示してよい。図２の例においては、「フィーチャーツリー」として表示されたデータ２５０、および、その３Ｄ表現２００は、ブレーキのキャリパーとディスクを含むブレーキアセンブリに関する。ＧＵＩは、例えば、オブジェクトの３Ｄの方向付けを容易にするため、また、編集された製品の操作のシミュレーションをトリガするための様々な種類のグラフィックツール１３０、をさらに示してよく、表示された製品２００の様々な属性をレンダリングしてよい。カーソル（図示せず）は、ユーザがグラフィックツールとインタラクトできるように、触覚装置によって制御されてよい。
【００４６】
図１４は、方法を実行するコンピュータシステムの例を示している。ここでは、システムは、クライアントコンピュータシステムである。
【００４７】
その例のクライアントコンピュータは、内部通信ＢＵＳｌ０００に接続された中央処理装置（ＣＰＵ）１０１０と、同様にＢＵＳに接続されたランダムアクセスメモリ（ＲＡＭ）１０７０を含む。クライアントコンピュータは、ＢＵＳに接続されたビデオランダムアクセスメモリ１１００に関連付けられたグラフィックプロセッシングユニット（ＧＰＵ）１１１０をさらに備える。ビデオＲＡＭ１１００は、当分野では、フレームバッファとしても知られている。大容量記憶装置コントローラ１０２０は、ハードドライブ１０３０等の大容量メモリ装置へのアクセスを管理する。コンピュータプログラム命令およびデータを具体的に実現するのに適切な大容量メモリ装置は、例を挙げると、ＥＰＲＯＭ、ＥＥＰＲＯＭ、フラッシュメモリ装置等の半導体メモリ装置と、内部ハードディスク、リムーバブルディスク等の磁気ディスクと、光磁気ディスクと、ＣＤＲＯＭディスク１０４０等、あらゆる形態の不揮発メモリを含む。その不揮発性メモリはいずれも、特別に設計されたＡＳＩＣ（特定用途向け集積回路）によって補完されてもよく、ＡＳＩＣに組み込まれてもよい。ネットワークアダプタ１０５０は、ネットワーク１０６０へのアクセスを管理する。クライアントコンピュータは、カーソル制御装置、キーボード等、の触覚装置１０９０も含んでよい。カーソル制御装置は、クライアントコンピュータで用いられて、ユーザが、ディスプレイ１０８０の任意の所望の位置に選択的にカーソルを置くのを可能にする。さらに、カーソル制御装置によって、ユーザは、様々なコマンドを選択し、制御信号を入力することができる。カーソル制御装置は、システムへの入力制御信号のための多くの信号生成装置を含む。典型的には、カーソル制御装置はマウスであってよく、マウスのボタンを用いて信号を生成する。それに代わって、または、それに追加して、クライアントコンピュータシステムは、タッチパッド、および／または、タッチスクリーンを含んでよい。
【００４８】
コンピュータプログラムは、コンピュータによって実行可能な命令を含んでよい。命令は、上記システムに方法を実行させる手段を含む。プログラムは、システムのメモリを含む任意のデータ記憶手段に記録可能であってよい。プログラムは、例えば、デジタル電子回路で、または、コンピュータのハードウェア、ファームウェア、ソフトウェア、もしくは、それらの組み合わせで、実施してよい。プログラムは、装置として、例えば、プログラム可能プロセッサで実行されるように、機械可読記憶装置で有形に実現される製品で実施してよい。プログラム可能プロセッサが命令のプログラムを実行して、入力データで演算を行い、出力を生成することによって方法の機能を実行して、方法のステップを行ってよい。従って、プロセッサは、プログラム可能であってよく、データ記憶システム、少なくとも１つの入力装置、および、少なくとも１つの出力装置に接続されて、それらからデータや命令を受信したり、それらにデータや命令を送信したりしてよい。アプリケーションプログラムは、高水準手続き型プログラミング言語もしくはオブジェクト指向プログラミング言語、または、必要に応じて、アセンブリ言語もしくは機械語で実施してよい。いずれの場合でも、その言語は、コンパイラ型言語であっても、インタープリタ型言語であってもよい。プログラムは、完全インストール型のプログラムであってもよく、更新されるプログラムであってもよい。システムのプログラムのアプリケーションは、いずれの場合でも、結果として、方法を実行する命令になる。
【００４９】
「工業製品の設計」は、モデルオブジェクト、例えば、３Ｄモデルオブジェクトを作成するプロセスの少なくとも一部となる任意のアクションまたは任意の一連のアクションを指定する。従って、方法は、走り書きから工業製品を作成することを含んでよい。あるいは、方法は、以前作成した工業製品を提供し、その工業製品を修正することを含んでよい。
【００５０】
方法は、製造プロセスに含まれてよく、製造プロセスは、方法の実行後、モデルオブジェクトに対応する物理的製品を生産することを含んでよい。どの場合でも、方法によって設計されたモデルオブジェクトは、製造オブジェクトを表してよい。従って、モデルオブジェクトは、モデル化された立体（すなわち、立体を表すモデルオブジェクト）であってよい。製造オブジェクトは、パーツまたはパーツのアセンブリ等の機械製品であってよい。方法によって、モデルオブジェクトの設計は改良されるので、製品の製造も改良されて、製造プロセスの生産性は上がる。
【００５１】
ＣＡＤソフトウェアソリューションは、航空宇宙産業、建築、消費財、ハイテク装置、工業設備、水産業、オフショア工業、または、輸送など、限定されない、様々な工業分野における工業製品の設計を可能にする。
【００５２】
図１に戻る。ステップＳ１００において、工業製品の１つまたは複数のジオメトリを選択する。
【００５３】
工業製品は、ジオメトリの集合を用いて表されたモデルオブジェクトである。ジオメトリという用語は、モデルを表すために使用されるエンティティを意味する。実際には、モデルは、線、曲線、面、または、表面等のジオメトリを用いて表される。ジオメトリ間の制約は、例えば、一定の位置または角度を特定するために、ジオメトリ同士を関連付けるために用いてよい。製品のジオメトリ間の制約は、ノードとエッジを含む制約のグラフを用いてモデル化される。グラフのノードは、製品のジオメトリを表し、２つのノード間のエッジは、各ノードが表すジオメトリ間の制約を表す。グラフという用語は、ノードの集合の表現を意味し、ノードの幾つかの対は、エッジ（リンクとも呼ばれる）によって接続されている。あるノードが表すジオメトリは、点、線、曲線、面、場所、立体のうちの１つであってよい。
【００５４】
正式には、ジオメトリおよび制約のネットワークは、制約Ｇ＝（Ｘ，Ｕ，α，ω）の有向グラフによってモデル化される。ここで、Ｘはノードの集合、Ｕは弧の集合、α：Ｕ→Ｘであり、α：Ｕ→Ｘは、接続関数である。式α（ｕ）＝ｘは、ｘ∈Ｘが弧ｕ∈Ｕの開始ノードであることを意味し、ω（ｕ）＝ｙは、ｙ∈Ｘが弧ｕ∈Ｕの終了ノードであることを意味する。ノードＸは、幾何学的オブジェクト（ジオメトリとも呼ばれる）を記号で表すものであり、弧Ｕは、制約を記号で表すものである。制約の向きは、弧の向きによって得られる。開始ノードα（ｕ）は、制約ｕのマスタ要素であり、終了ノードω（ｕ）は、制約ｕのスレーブ要素である。表記ω−１（ｘ）は、ω（ｕ）＝ｘとなる全ての弧ｕの集合である。表記α（ω−１（ｘ））は、ｙからｘの向きの弧によってノードｘに接続された全てのノードｙの集合である。表記α−１（ｘ）は、α（ｕ）＝ｘとなる全ての弧ｕの集合である。表記ω（α−１（ｘ））は、ｘからｙの向きの弧によってノードｘに接続された全てのノードｙの集合である。モデルは、互いに逆向きである二重の弧によって、無向制約を取り扱う。グラフＧは、サイクルを含んでよい。
【００５５】
ジオメトリの選択は、当分野で既知のように、ユーザに表示されたジオメトリ表現に対するユーザアクションに基づいて行われてよい。例えば、ユーザは、図１３に示すＧＵＩに表示された工業製品のジオメトリの１つを操作するために、図１４に例示されたシステムの触覚装置を使うことができる。
【００５６】
あるいは、ジオメトリの選択は、システムによって自動的に行われてよい。例えば、システムは、最後に編集されたジオメトリを選択する。選択は、連続したユーザアクションと、自動選択の両方に依存してよいことは理解されたい。
【００５７】
図２を参照すると、制約のグラフの例が示されている。このグラフにおいて、Ｘ＝｛１，・・・，１５｝は、グラフが１５のノードを含むことを意味する。２つのノード間の矢印は、制約を表す。矢先は、スレーブ上にあり、矢印は、マスタから開始される。例えば、ノード８は、ノード８から始まりノード７に到達する（矢印で表される）有向エッジを用いて、ノード７に接続される。ノード８はマスタで、ノード７はスレーブである。２つのノード間の制約が向きを持たない場合、エッジは、両方向矢印によって表される。例えば、ノード３とノード４によって表されるジオメトリは、無向制約で制約されている。制約のグラフは、それぞれ、ノード（１，２，６）、（２，３，７，６）、（７，１２，１４，１１）、（１４，１１、１５）を含む、４つのサイクルを特徴とする。
【００５８】
図１に戻る。ステップＳ１１０において、少なくとも１つの基準要素を選択する。基準要素とは、製品の修正されないジオメトリを意味する。すなわち、ユーザは、基準要素のジオメトリを修正することはできない。実際に、基準要素が用いられる設計状況というのは、基準要素を所有する別の設計者と基準要素を共有する場合である。制約の向きを変えるプロセスで基準要素が変更されないために、以下に記載のように、基準要素は、ユーザが選択したオブジェクトの集合に系統的に含まれる。
【００５９】
１つまたは複数の基準要素の選択は、製品のジオメトリを選択するために説明したのと同じ方法で行うことができる。実際には、基準要素は、自動的に選択され、選択すべき基準要素の識別は、過去のユーザ選択によって行われる。
【００６０】
次に、ステップＳ１２０において、グラフの各ノードの奥行き値を計算する。計算は、選択されたジオメトリを表すノードから行われる。ノードの奥行き値は、写像ｐ：Ｘ→Ｎによってモデル化される。これは、ｐ（ｘ）がノードｘの奥行き値であることを意味し、ここで、Ｘは、制約のグラフのノードの集合である。奥行値は整数である。ノードの奥行き値を用いて、グラフ内を横断する時の開始ノードからのノードの「距離」を表す。距離は、開始ノードから到着ノードまでグラフを横断する時に出会うグラフのノードの数であってよいが、それに限られない。グラフの横断は、以下のアルゴリズムに従って行われてよい。
【００６１】
Ｓ´⊂Ｘを、ステップＳ１００で選択したノードの集合とし、Ｒ⊂ＸをステップＳ１１０で選択した基準要素の（場合によっては、空の）集合とする。Ｓ＝Ｓ´∪Ｒを、ユーザが選択した要素と基準要素とを含む、選択した要素の集合とする。ノードＳから開始して、全てのノードｘ∈Ｘに関して、以下の原理で奥行き値を計算する。
【００６２】
（ｉ）選択したノードＳの奥行値を「０」に設定する。従って、選択した基準要素およびジオメトリは、グラフの最小の奥行き値である同じ奥行値を有する。
【００６３】
（ｉｉ）奥行き値ｎを有するノードに結合している未訪問のノードは、奥行き値ｎ＋１を有する。ノードと選択したノードは、両方のノードがエッジによって接続されているとき、結合されている。
【００６４】
奥行き値の計算中、エッジの向きは結合の検索では、考慮されない。従って、選択されたノードＳに結合しているノードは、奥行き値「１」を有する。奥行き値「１」のノードに結合しているノードは、奥行き値「２」を有し、奥行き値「２」のノードに結合しているノードは、奥行き値「３」を有し、以下、同様である。
【００６５】
グラフ横断中、未訪問のノードを認識するために、全てのノードに関して、最初の奥行き値を記号「−１」にする。
【００６６】
Ｆｏｒ  ａｌｌ  ｘ∈Ｘ  ｄｏ  ｂｅｇｉｎ
ｐ（ｘ）：＝−１
Ｅｎｄ  ｆｏｒ
次のステップで、全ての選択したノード、すなわち、ステップＳ１００、および、（もしあれば）ステップＳ１１０で選択した１つまたは複数のノードに、ゼロの奥行き値を設定する。
【００６７】
Ｆｏｒ  ａｌｌ  ｘ∈Ｓ  ｄｏ  ｂｅｇｉｎ
ｐ（ｘ）：＝０
Ｅｎｄ  ｆｏｒ
次に、残りの奥行値の計算は下記のように行う。ＹとＺの集合は、グラフのナビゲーションを管理するワーキング変数(working valuables)である。数ｎは、現在の奥行値で、ナビゲーション中、増加する。
【００６８】
2015179515.tif 000003
【００６９】
2015179515.tif 000004
【００７０】
図３は、ノード８の記号のジオメトリをユーザが選択したことに従った、図２のグラフのノードの奥行き値の計算を示している。この例では、選択された基準要素はなく、各ノードの奥行き値は、括弧内に記載されている。
【００７１】
記号としての奥行き値「−１」を与え、その後、ユーザが、ノード８の記号としての（または、記号で表された）ジオメトリを選択すると、奥行き値「０」がノード８に与えられる。そして、隣のノード５、９、１２、７を通り、奥行値「１」が与えられる。次に、ノード５、９、１２、７の隣の、記号としての奥行き値「−１」を有する各ノードに対して、奥行き値「２」が設定される。これらのノードは、ノード７に隣り合うノード１１、６、３、４と、ノード１２に隣り合うノード１４、１５である。次に、ノード１１、６、３、４、１４、１５に隣り合い、記号としての奥行き値「−１」を有する各ノードに対して、奥行き値「３」が設定される。これらのノードは、ノード３に隣り合うノード２と、ノード６に隣り合うノード１と、ノード１１に隣り合うノード１０、１３である。奥行き値の計算中、エッジの向きは結合の検索では考慮されない。
【００７２】
図１に戻る。ステップＳ１３０で、１つまたは複数の相反する制約が識別される。相反する制約は、開始ノードの奥行き値が、終了ノードの奥行き値より大きい有向エッジによって表される。ｘからｙへの向きと考えられるエッジに関しては、開始ノードは、ノードｘ、終了ノードはノードｙである。言い換えると、開始ノードは、エッジの後部で、終了ノードはエッジの頭部である。ここで、相反する弧の集合Ａ＝｛ｕ∈Ｕ；ｐ（ω（ｕ））＜ｐ（α（ｕ））｝⊂Ｕは、終了ノードの奥行き値が開始ノードの奥行き値より小さい全ての弧から成る。Ｕは制約を表す記号であることを思い出そう。
【００７３】
図４は、図２のグラフの相反する制約の識別を示している。相反するエッジは、点線で表される。例えば、エッジ（３，７）は、ｐ（７）＝１＜２＝ｐ（３）なので、相反するエッジである。別の例としては、エッジ（９，８）は、１＝ｐ（９）＞ｐ（８）＝０なので、相反するエッジである。
【００７４】
ステップＳ１３０での相反する制約の識別に、最小の奥行き値を有するノードから最大の奥行き値を有するノードへのグラフの各エッジの向きを決定するステップが先行してよい。この各エッジの向きの決定によりステップＳ１３０での識別が容易になり、好都合である。グラフの各ノードの奥行き値を計算するステップの後、向きの決定を行うことは理解されたい。
【００７５】
エッジは、同じ奥行き値を有する２つのノードを接続してよい。このようなエッジは、相反する制約として識別されず、変更されない。すなわち、そのエッジは、ステップＳ１３０で相反する制約として識別されず、ステップＳ１４０で逆転されない。
【００７６】
図１に戻る。ステップＳ１４０で、ステップＳ１３０で識別された１つまたは複数の相反する制約を逆転する。相反する制約を逆転するとは、制約を表すエッジの向きを反転させることを意味する。ステップＳ１４０の結果として、集合Ａは空集合である、すなわち、制約のグラフは、終了ノードの奥行き値が開始ノードの奥行き値より小さいエッジを含まなくなる。
【００７７】
相反する制約の逆転すると、有利なことに、制約のグラフの多くのサイクルを除くことができる。その逆転は以下のように行われる。
【００７８】
Ｆｏｒ  ａｌｌ  ｕ∈Ａ  ｄｏ  ｂｅｇｉｎ
ｚ：＝α（ｕ）
α（ｕ）：＝ω（ｕ）
ω（ｕ）：＝ｚ
Ｅｎｄ  ｆｏｒ
図５は、図４のグラフの相反する制約が逆にされたグラフである。ここでも、向きを変えられたエッジは、点線で表される。例えば、エッジ（７，３）は、ｐ（７）＝１＜２＝ｐ（３）なので、相反するエッジではない。別の例としては、エッジ（８，９）は、０＝ｐ（８）＜ｐ（９）＝１なので、相反するエッジではない。サイクル１５−１４−１１が残っているのと対照的に、サイクル２−１−６、サイクル７−６−２−３、および、サイクル７−１２−１４−１１が消失したことに気付くであろう。サイクル１５−１４−１１を残りサイクルと呼ぶ。
【００７９】
次に、図１のステップＳ１５０で、選択したジオメトリを修正する。ジオメトリの修正は、当分野で既知のように行ってよい。例えば、ユーザは、ジオメトリのパラメータを修正する。
【００８０】
そして、ステップＳ１６０で、ジオメトリの修正は、その工業製品の１つまたは複数の他のジオメトリに伝播される。ジオメトリの修正を伝播するとは、選択されたジオメトリの修正に従って製品のジオメトリを解決することを意味する。ジオメトリの解決は、ジオメトリ間の制約を解決することを伴う。実際には、ジオメトリの解決は、当分野で既知の１つまたは複数のソルバによって行われる。
【００８１】
ジオメトリの解決は、計算された奥行き値によって規定されるシーケンス順に従って行われる。実際、相反する制約を表すエッジの向きの変更は、制約ネットワークを順次的に解決することになる。よって、シーケンス順は、ステップＳ１２０で計算されたノードの奥行き値によって規定される。
【００８２】
シーケンス順は、同じ奥行き値を有するノードのグループ化によって取得されたノードグループに依存する。奥行き値「０」を有するノードは、１つのグループを形成する。そして、有限の繰り返し（finite recurrence）を通して、奥行値ｎ＋１を有するノードグループのノードは、このグループのノードを接続する制約と、（前に解決した）奥行値ｎのジオメトリから奥行値ｎ＋１のジオメトリの向きへの制約と、に従って、まとめて解決される。言い換えると、奥行き値ｎ＋１を有するノードグループに関して、そのグループのノードによって表されるジオメトリは、そのグループのノード同士を接続するエッジによって表される制約に従って解決され、かつ、そのグループのノードによって表されるジオメトリは、奥行き値ｎを有するノードグループのノードから奥行き値ｎ＋１を有するノードグループのノードに向かう制約によって解決される。従って、順次的な解決は、最小の奥行値を有するノードグループから、最大の奥行値を有するノードグループに向かって行われる。
【００８３】
同じ奥行き値でラベル付けられたノードを接続する制約は、サイクルを特徴としてよいこと、は理解されたい。このような残りサイクルは、ユーザ選択によって定義された修正の意図に反しないので、関連性はない。残りサイクルは、１つの制約の逆転、反復など、当分野で既知の任意の専用の方法によって、有利なことに解決することができる。
【００８４】
奥行値ｎのジオメトリから奥行値ｎ＋１のジオメトリに向かう制約に従って、奥行き値ｎ＋１を有するノードグループのノードを解決するとき、奥行き値ｎを有するノードグループに関しては、ジオメトリ間の制約が解決され、ジオメトリは固定されていることも理解されたい。
【００８５】
図６を参照すると、図５に示されたグラフのノードが、４つのグループにグループ化されている。ノード８は、奥行値「０」（レベル「０」とも呼ばれる）のノードグループに属し、ノード５、９、７、１２は、奥行き値「１」（レベル「１」とも呼ばれる）グループを形成し、ノード４、３、６、１１、１５、１４は、奥行き値「２」（レベル「２」とも呼ばれる）グループを形成し、ノード２、１、１０、１３は、奥行き値「３」（レベル「３」とも呼ばれる）のグループを形成する。分かり易いように、向きを変更した弧は点線で表す。この例は、奥行き値「２」のグループで生じる残りサイクル１５−１４−１１を特徴としている。
【００８６】
解決すべき最初のグループは、レベル「１」のグループである。ノード５、９、７、１２で表されるジオメトリは、ノード８によって表されるジオメトリは固定であるとして、ノード８からノード５、９、７、１２に向かう制約に従って解決される。解決すべき２番目のグループは、レベル「２」のグループである。ノード４、３、６、１１、１５、１４によって表されるジオメトリは、レベル１のグループのジオメトリは解決されており（従って、それらは固定である）という理解で、ノード５、９、７、１２からの向きの制約に従って解決される。レベル「３」も同様に解決される。
【００８７】
よって、２つの連続したレベルｎおよびｎ＋１を知ることによって、奥行き値ｎ＋１を有するノードグループのノードによって表されるジオメトリを解決することができる。これは、有利なことに、ソルバの実施を容易にする。さらに、レベルｎ＋１のグループの解決に関わる必要のあるデータが少なくなるので、ジオメトリの修正の伝播に必要な計算資源が少なくなる。
【００８８】
各グループのジオメトリを解決すると、修正の伝播が行われていると考えられる。方法のこのステップでは、選択されたジオメトリの修正は、設計意図に従った向きの制約ネットワークを通って伝播される。さらに、エッジの向きは、（もしあれば）基準要素が修正されないように、計算される。
【００８９】
修正が行われた後、ステップＳ１７０において、識別済みの相反する制約の元の向きを回復してよい。よって、相反する制約は元の状態に戻る。これによって工業製品のいかなる劣化も避けられ、好都合である。すなわち、元の設計意図が保持される。
【００９０】
従って、ステップＳ１７０が行われた後、設計者は、幾何学的要素を新しく選択することができ、その新しい選択に従って、向きを変更する新たなプロセスを実行する。よって、各ジオメトリ選択に関して、ユーザは、製品の設計意図を保持しながら、選択したジオメトリを自由に修正することができる。例えば、ワークベンチを形作る曲線および表面を用いる時、その方法は、設計者が意図的に作成したものでない有向制約のサイクルを扱うので、製品のジオメトリの自由な修正が可能になる。満足できない解決となることが一般的な、作成順に１つずつサイクルの制約を評価するとういう方法の代わりに、制約の向きを変えることによって、サイクルを壊す。これは、即時の設計意図を考慮して自然な挙動を提供し、かつ、壊すべきサイクルと残りサイクルとのタイポロジーを提供する。
【００９１】
図７〜図１２は、車体の予備設計の曲線の典型的な三次元ネットワークの例を示している。曲線１から曲線７に焦点を当てる。ジオメトリ（すなわち、曲線１から曲線７）は、幾何学的制約によって接続され、幾何学的制約の向きは、元の設計者による、この工業製品の予備設計の作成段階の選択順によって設定される。ジオメトリのネットワークは、機械、機器、用具、電気器具、衣類、織物などが含まれるが、これらに限定されない任意の工業製品の設計に用いられてよいことは理解されたい。
【００９２】
図７の曲線１から曲線７は、図８の制約グラフに従って接続されている。曲線１と曲線３は、基準要素で、グラフでは円で囲まれたノードによって表されている。曲線１と曲線３は、修正することができない。曲線６と曲線７の端点は、曲線１の端点８、９を共有する。曲線２の端点１０は曲線６上に制約され、端点１１は、曲線７に上に制約される。曲線４の両端点は、それぞれ、曲線１および曲線２上に制約される。曲線５の両端点は、それぞれ、曲線２および曲線３上に制約される。最後に、曲線２上にある曲線５の端点は、曲線２上にある曲線４の端点と一致し、この時点で、曲線４と曲線５間の接続は、曲率連続である。
【００９３】
図８に示す制約の向きによって、設計者は、曲線３を修正することなく、図９の両方向矢印によって示されるように、曲線３上にある曲線５の端点をスライドさせることができる。曲線４上にある曲線５の端点は、曲線４と共有しているので、曲線５を変更することによって移動させることはできず、この端点は、図９に示すように、曲線５のマスタ要素である。
【００９４】
図１０は、図８のグラフのノードの奥行値が計算され、識別済みの相反する制約を点線で表したグラフである。（円で囲まれたノードによってグラフに表された）曲線１および曲線３は基準要素なので、「０」の奥行き値を有することに気付く。曲線５も、設計者が選択したジオメトリなので、「０」の奥行き値を有する。曲線１、３、５は、同じグループレベル「０」に属する。この例においては、ノード３から始まって、ノード５で終わる向きの制約があり、この制約は、計算された奥行き値によって規定されるシーケンス順に従ってジオメトリを解決する時、解決される。
【００９５】
図１１は、図１０のグラフの相反する制約が逆転されたグラフを示している。相反する制約が逆転されたので、この後、設計者は、曲線５を自由に修正することができる。幾何学的視点から見ると、設計者は、曲線３上にある曲線５の端点をスライドすることができ、曲線２上にある曲線５の端点を自由に移動することができる。それによって、図１２に示すように、曲線２および曲線４の各形状を変更してよい。従って、その後、設計者は、曲線３と曲線１を変更せずに、曲線５から曲線２と曲線４を操作することができる。曲線５の修正が行われると、逆転後の相反する制約の元の向きが回復されるので、修正された製品は、最初のモデルと同じ制約を有する。製品のロバスト性は保持される。
【図１】
2015179515.tif 000005
【図２】
2015179515.tif 000006
【図３】
2015179515.tif 000007
【図４】
2015179515.tif 000008
【図５】
2015179515.tif 000009
【図６】
2015179515.tif 000010
【図７】
2015179515.tif 000011
【図８】
2015179515.tif 000012
【図９】
2015179515.tif 000013
【図１０】
2015179515.tif 000014
【図１１】
2015179515.tif 000015
【図１２】
2015179515.tif 000016
【図１３】
2015179515.tif 000017
【図１４】
2015179515.tif 000018
【外国語明細書】
2015179515000001.pdf