(58)【調査した分野】(Int.Cl.,DB名)
前記選択されたジオメトリの前記修正の前記伝播は、前記少なくとも1つの選択されたジオメトリの前記修正に従って、制約のグラフでモデル化された前記制約に従うジオメトリを解決するステップを含み、前記解決は、前記計算された奥行き値によって規定されるシーケンス順に従って行われる、請求項1に記載のコンピュータ実施方法。
前記グラフの各ノードの奥行き値を計算するステップの後、最小の奥行き値を有する前記ノードから、最大の奥行値を有する前記ノードに、前記グラフの各エッジの向きを決定するステップをさらに含むことを特徴とする請求項1から4のいずれかに記載のコンピュータ実施方法。
前記製品の少なくとも1つのジオメトリを選択するステップの後、少なくとも1つの基準要素を選択するステップをさらに含み、基準要素は、前記伝播するステップで修正されない前記製品のジオメトリであることを特徴とする請求項1から6のいずれかに記載のコンピュータ実施方法。
前記少なくとも1つの選択された基準要素と、前記少なくとも1つの選択されたジオメトリは、前記グラフの最小の奥行き値と同じ奥行き値を有することを特徴とする請求項7に記載のコンピュータ実施方法。
前記ノードによって表される前記ジオメトリは、点、線、曲線、表面、場所、立体のうちの1つであることを特徴とする請求項1から9のいずれかに記載のコンピュータ実施方法。
メモリとグラフィカルユーザインタフェースとに結合されたプロセッサを含むシステムであって、前記メモリは、請求項11に記載のコンピュータプログラムを記録し、前記プロセッサは、前記コンピュータプログラムに従って処理することを特徴とするシステム。
【背景技術】
【0002】
オブジェクトの設計、工学および製造のために多くのシステムおよびプログラムが市場に提供されている。CADは、コンピュータ支援設計(Computer−Aided Design)の頭字語である。例えば、CADは、オブジェクトを設計するソフトウェアソリューションに関する。CAEは、コンピュータ支援工学(Computer−Aided Engineering)の頭字語である。例えば、CAEは、将来の製品の物理的挙動をシミュレーションするソフトウェアソリューションに関する。CAMは、コンピュータ支援製造(Computer−Aided Manufacturing)の頭字語である。例えば、CAMは、製造プロセスおよび作業を規定するソフトウェアソリューションに関する。このようなコンピュータ支援設計システムにおいては、グラフィカルユーザインタフェースが、技術効率という点で重要な役割を果たす。これらの技術は、製造ライフサイクル管理(PLM)システムに組み込んでよい。PLMは、企業が、拡張企業のコンセプトを通して、製品開発のために着想から製品寿命の終わりまで、製品データを共有し、共通のプロセスを応用し、企業知識を活用するのを助ける企業戦略を指す。
【0003】
(CATIA、ENOVIA、DELMIAの商標で)Dassault Systemes社によって提供されるPLMソリューションは、製品工学の知識を体系化する工学ハブ、製造工学の知識を管理する製造ハブ、工学ハブおよび製造ハブの両方に、企業を統合し、結びつけることができる企業ハブを提供する。全てが一緒になって、そのシステムは、製品、プロセスおよびリソースをリンクさせて、動的な知識ベースの製品作成、並びに、最適な製品の定義、製造準備、生産およびサービスを推進する意思決定支援を可能にする、開放的なオブジェクトモデルを供給する。
【0004】
CADシステムにおいては、工業製品を形成するジオメトリを接続する幾何学的制約は、向きがある。2つのジオメトリ間の制約の向きは、1つのジオメトリがマスタであり、他のジオメトリがスレーブ要素であることを意味する。例えば、表面Aと表面Bとの間のマッチング制約を作成するとき、表面Bは変化させず、表面Bの境界線に合わせるために、表面Aを変形させる。作成順は、システムによって保存され、この順に従って修正が行われる。この例では、表面Bを表面Aの修正バージョンに一致するように変形させることは不可能である。
【0005】
作成ステップで制約を方向付けることは、その結果が明白に選択順によって決まるので、実に適切である。そうすると、CADシステムは、予測通りに振る舞い、ユーザビリティが良い。
【0006】
にもかかわらず、修正にあたって、設計意図に合わせるために編集すべきオブジェクトはどれかを理解するのが制約の向きがあるために難しくなる。
【0007】
さらに、修正ステップにおいて、制約の向きは、ジオメトリに関して「可視的」でない。これは、制約(一致、マッチング、滑らかな接続など)を形作る、曲線や表面等のジオメトリが、機械設計のオフセット制約のような矢印に自然には関連付けられないからである。
【0008】
設計者が制約の向きを理解する通常の方法は、マスタがどれで、スレーブがどれかを知るために、ジオメトリの修正してみることである。ジオメトリの修正を試みると、スレーブ要素は直接編集できないので、スレーブ要素が設計意図に従うように振る舞うまで、設計者はマスタ要素への変更を繰り返す。
【0009】
制約の種類に応じて、向きを手動で逆転させることができる。これは、変更プロセスを容易にするが、生産性という点では流れがよいとは言えない。要するに、CADシステムの挙動は、修正の意図よりも、制約ネットワークの向きによって左右される。
【0010】
別の問題は、設計者が有向制約サイクルの作成を許可されていることである。理論的観点から見ると、サイクルというのは、2つ以上の要素間の終わりのない依存性である。ソリューションの存在は、アプリオリ(先験的)として保証されず、ソリューションの計算は、反復プロセスを必要とし得るので、収束と言う問題が起こり得る。ユーザの視点から、また、設計を形作る曲線や表面という文脈において、制約サイクルというのは、実際の設計意図というよりも反復的選択による副次的な影響である。サイクルを扱うための既知のソリューションは、(例えば、英数字メッセージを表示することによって)ユーザが提案に従うか否かを決定できるようにして、ユーザに提案を行うことである。このようなソリューションを用いると、制約された幾何学的オブジェクトの集合を修正することは、警告メッセージを受けながら、制約ネットワークを調整するという問題となる。CADシステムは、単独で制約の向きを変更しないので、好ましいスタイルのインタフェースが、幾何学的オブジェクトをインタラクティブに、かつ、流れるように、移動、または、変形させることである場合、このソリューションは効率的ではない。
【0011】
この文脈において、改良された工業製品の設計法が必要とされ、ジオメトリ間の制約を方向づけられる。
【発明を実施するための形態】
【0027】
図1のフローチャートを参照して、工業製品設計のコンピュータ実施方法が提案されており、工業製品のジオメトリ間の制約は、制約のグラフを用いてモデル化される。制約のグラフはノードとエッジを含み、ノードは工業製品のジオメトリを表し、エッジは工業製品の2つのジオメトリ間の制約を表す。方法はさらに、工業製品の少なくとも1つのジオメトリの選択を含む。方法は、グラフの各ノードに関して、前に選択したジオメトリを表すノードからの奥行き値を計算することを含む。方法は、グラフで1つまたは複数の相反する制約を識別することを含む。相反する制約は有向エッジによって定義され、開始ノードの奥行き値は、終了ノードの奥行き値より大きい。方法はまた、1つまたは複数の識別済みの相反する制約の逆転、言い換えると、1つまたは複数の識別済みの相反する制約の向きを反転させることも含む。方法はさらに、少なくとも1つの選択されたジオメトリを、例えば、ユーザアクションで、修正することを含む。方法はまた、工業製品の1つまたは複数の他のジオメトリに、選択されたジオメトリの修正を伝播することも含む。
【0028】
このような方法は、工業製品の設計を改善するものであり、ここでは、本発明により、修正の意図が、相反する制約を自動的に逆転することによって優先するので、ジオメトリ間の制約が方向付けられる。実際、制約されたジオメトリの集合が与えられ、ユーザが選択した修正しようとする要素の集合が与えられ、および、基準要素のオプション集合が与えられると、本発明は、ユーザ選択に関し、また基準要素に関し、全ての幾何学的要素の奥行き値を計算し、この奥行き値により、相反する制約を決定する。次に、相反する制約の向きが逆転され、その結果、実際に設計者によって修正が行われるときにその修正は設計意図に従った向きの制約ネットワークにより伝播される。さらに向きは、基準要素が修正されないように計算される。修正が行われた後、相反する制約の元の向きが回復され、幾何学的要素の新しい選択が可能になり、その新しい選択に従って、向きを変更する新たなプロセスが実行される。
【0029】
よって、本発明によると、制約の向きが設計者に隠されているので、手動で制約の向きを変えたりマスタ/スレーブの設定を検索したりすることなく、修正が直接行われる。これにより、幾何学的製品は、元の設計者、または最初のバージョンの著者でない別の設計者によって容易に修正することができる。システムは、最初の設計意図、(オプションである)基準要素、および即時修正の意図を調和させることによる自然な挙動を特徴としているので、修正が容易になる。そして、修正ステップで時間が節約され生産性が強化されるので、より短い時間で最終製品が手に入る。さらに、本発明により、グラフの制約サイクルを解決することが可能になる。実際に、異なる奥行き値を有するジオメトリを伴う制約サイクルは、相反する制約を逆転することによって取り除かれる。言い換えれば、ユーザ選択は一時的に、幾何学的要素間での優先を生じさせるので、多くの循環依存性が取り除かれる。全てのサイクルが、このプロセスで取り除かれるわけではなく、存在し続けるサイクルは、関係のないサイクルである。従って、ソルバは、関係のあるサイクルに属する制約を解決することができる。制約サイクルの解決を試みる間、ソルバは止まらないので、計算資源が蓄えられる。本発明の別の利点は、選択されたジオメトリの修正の伝播が行われた後、相反する制約の最初の向きを容易に回復できることである。これによって、最初の設計意図が保存され、データモデルの多様化を避けることによって、プロセス全体をよりロバストにすることができる。
【0030】
方法は、コンピュータで実施される。これは、方法のステップ(または、全てのステップ)が、少なくとも1つのコンピュータ、または、同様の任意のシステムで実行されることを意味する。従って、方法のステップは、場合によっては完全に自動で、または、半ば自動で、コンピュータによって行われる。例を挙げると、方法の少なくとも一部のステップのトリガは、ユーザとコンピュータのインタラクションによって行われてよい。必要とされるユーザとコンピュータのインタラクションのレベルは、予測される自動性のレベルによって決まり、ユーザの希望を実施する必要性とバランスをとってよい。例においては、このレベルは、ユーザが決定してもよく、および/または、予め決定されていてもよい。
【0031】
例えば、製品のジオメトリを選択するステップは、ユーザアクションに基づいて行われてよい。例えば、ユーザは、表示されたジオメトリ表現の選択を行う。同様に、選択されたジオメトリを修正するステップは、ユーザアクションに基づいて行われてよい。
【0032】
方法をコンピュータで実施する典型的な例は、この目的に適合されたシステムを用いて行うことである。システムは、メモリとグラフィカルユーザインタフェース(GUI)に接続されたプロセッサを備えてよい。メモリには、方法を行うための命令を含むコンピュータプログラムが記録されている。メモリは、データベースも記憶してよい。メモリは、このような記憶のために適合された任意のハードウェアで、場合によっては、幾つかの物理的に別れた部分(例えば、プログラム用の部分、場合によっては、データベース用の部分)を含む。
【0033】
「データベース」とは、検索および読み出しのために体系化された任意のデータの集まり(すなわち、情報)を意味する。データベースは、メモリに記憶されて、コンピュータによって素早く検索、読み出しができる。実際、データベースは、様々なデータ処理動作と併用されて、データの記憶、読み出し、修正、削除を容易にするように構成されている。データベースは、記録に分割することができるファイルまたはファイルの集合からなってよく、各記録は、1つまたは複数のフィールドからなっている。フィールドは、データストレージの基本の単位である。ユーザは、主としてクエリを通してデータを読み出してよい。キーワードおよび並べ替えコマンドを使用することによって、ユーザは、多くの記録内のフィールドを素早く検索、再配置、グループ化、および、選択して、使用中のデータベース管理システムの規則に従って、特定のデータ集合体に関するレポートを読み出し、または、作成することができる。
【0034】
その方法の場合には、工業製品は、データベースに記憶されてよい。工業製品のジオメトリ間の制約をモデル化する制約のグラフは、データベースに記憶されてよい。
【0035】
方法は、一般的に、モデルオブジェクトを操作する。モデルオブジェクトは、データベースに記憶されたデータが定義する任意のオブジェクトである。例えば、本発明においては、工業製品は、曲線や表面のようなジオメトリであり得るモデルオブジェクトを用いて設計される。ジオメトリは、幾何学的制約によって接続される。幾何学的制約は、接触、マッチング、接続された表面、端点の一致、接続の滑らかさなどであってよいが、それらに限られない。
【0036】
拡大解釈すると、「モデルオブジェクト」という表現は、データそのものを指定する。システムの種類に従って、モデルオブジェクトは、異なる種類のデータによって定義されてよい。実際、システムは、CADシステム、CAEシステム、CAMシステム、PDMシステム、および/または、PLMシステムの任意の組み合わせであってよい。これらの異なるシステムにおいては、モデルオブジェクトは、対応するデータによって定義される。それに応じて、CADオブジェクト、PLMオブジェクト、PDMオブジェクト、CAEオブジェクト、CAMオブジェクト、CADデータ、PLMデータ、PDMデータ、CAMデータ、CAEデータという。しかしながら、モデルオブジェクトは、これらのシステムの任意の組み合わせに対応するデータによって定義されてよいので、これらのシステムは、互いに排他的ではない。よって、あるシステムは、以下に記載のシステムの定義から明らかなように、CADおよびPLMシステムの両方であってよい。
【0037】
CADシステムとは、モデルオブジェクトのグラフィック表現に基づいて、モデルオブジェクトを少なくとも設計するように適合された任意のシステムを意味する。CATIAは、CADシステムの一例である。この場合、モデルオブジェクトを定義するデータは、モデルオブジェクト表現を可能にするデータを含む。CADシステムは、例えば、辺または線、場合によっては、面または表面を用いて、CADモデルオブジェクトを表現してよい。線、辺、または、表面は、例えば、非一様Bスプライン(NURBS)など、様々な方法で表現してよい。詳細には、CADファイルは仕様を含み、その仕様からジオメトリを生成してよく、それによって、表現を生成することができる。モデルオブジェクトの仕様は、1つのCADファイルに記憶しても、複数のCADファイルに記憶してもよい。CADシステムでモデルオブジェクトを表現するファイルの典型的サイズは、パーツごとに1メガバイトの範囲である。そして、モデルオブジェクトは、典型的には、何千ものパーツの集まりであってよい。
【0038】
CADの文脈においては、モデルオブジェクトは、典型的には、例えば、パーツもしくはパーツの集まり等の製品、または、場合によっては、製品の集まりを表す、3Dモデルオブジェクトであってよい。「3Dモデルオブジェクト」とは、3D表現を可能にするデータによってモデル化される任意のオブジェクトを意味する。3D表現によって、あらゆる角度からパーツを見ることが可能になる。例えば、3Dモデルオブジェクトは、3Dで表現されて、そのオブジェクトの任意の軸を中心に、または、その表現を表示する画面の任意の軸を中心に、取り扱ってよく、回転させてよい。これによって、特に、3Dモデル化されない2Dアイコンが除外される。3D表現を表示することによって設計を容易にする(すなわち、設計者が自分のタスクを統計的に達成する速度を速める)。製品の設計は製造プロセスの一部なので、これによって、その産業における製造プロセスを速める。
【0039】
CADシステムは履歴ベースである。この場合、モデルオブジェクトは、幾何学的特徴の履歴を含むデータによって、さらに定義される。実際に、モデルオブジェクトは、物理的な人(すなわち、設計者/ユーザ)が、標準的なモデリング特徴(例えば、押出、外巻き(revolute)、切断、および/または、丸めなど)および/または、標準的な表面仕上げ特徴(例えば、スイープ、ブレンド、ロフト、フィル、デフォーム、スムージングなど)を用いて、設計してよい。このようなモデリング機能をサポートしている多くのCADシステムは、履歴ベースのシステムである。これは、入力リンクおよび出力リンクを介して上記の幾何学的特徴をリンクさせる非循環のデータフローを通して、設計特徴の作成履歴が保存されるのが典型的であること、を意味する。履歴ベースのモデリングパラダイムは、80年代の初めからよく知られている。モデルオブジェクトは、履歴とB表現(すなわち、境界表現)という2つの持続的なデータ表現によって記述される。B表現は、履歴で定義された計算の結果である。モデルオブジェクトが表されるとき、コンピュータ画面に表示されるパーツの形は、B表現(のモザイク状配置(tessellation))である。パーツの履歴は設計意図である。基本的に、履歴は、モデルオブジェクトが経てきた操作の情報を集めたものである。B表現を履歴と共に保存して複雑なパーツの表示を簡単にしてよい。履歴は、設計意図に従ってパーツの設計変更を可能にするために、B表現と共に保存してよい。
【0040】
PLMシステムとは、物理的に製造された製品を表すモデルオブジェクトの管理に適合された任意のシステムを意味する。従って、PLMシステムにおいては、モデルオブジェクトは、物理的オブジェクトの製造に適したデータによって定義される。これらは、典型的には、寸法値および/または許容値であってよい。オブジェクトを正確に製造するためには、このような値を有しているほうが確かによい。
【0041】
CAMは、コンピュータ支援製造を表す。CAMソリューションとは、製品の製造データを管理するために適合された、ソフトウェアまたはハードウェアの任意のソリューションを意味する。製造データは、一般的に、製造する製品、製造プロセス、および、必要な資源に関連するデータを含む。CAMソリューションを用いて、製品の製造プロセス全体を計画および最適化する。例えば、CAMソリューションは、フィージビリティ、製造プロセスの期間、または、製造プロセスの特定のステップで使用可能な特定のロボット等の資源の数、に関する情報をCAMユーザに提供することができ、それによって、管理または必要とされる投資に関する決定を可能にする。CAMは、CADプロセスおよび、起こり得るCAEプロセスの後に続くプロセスである。このようなCAMソリューションは、Dassault Systemes社により登録商標DELMIAとして提供されている。
【0042】
CAEは、コンピュータ支援工学を表す。CAEソリューションは、モデルオブジェクトの物理的挙動の解析に適合された、ソフトウェアまたはハードウェアの任意のソリューションを意味する。周知の広く用いられているCAE技術は、有限要素法(FEM)である。有限要素法は、典型的には、方程式で物理的挙動を計算、シミュレーションできる要素にモデルオブジェクトを分割することを伴う。このようなCAEソリューションは、Dassault Systemes社により登録商標SIMULIAとして提供されている。別の成長中のCAE技術は、CADジオメトリデータなしで、異なる物理分野の複数のコンポーネントからなる複雑なシステムのモデル化および解析を伴う。CAEソリューションによってシミュレーションが可能になるので、製造する製品の最適化、改良、および、検証が可能になる。CAEソリューションは、Dassault Systemes社により登録商標DYMOLAとして提供されている
PDMは、製品データ管理を表す。PDMソリューションとは、特定の製品に関連する全ての種類のデータを管理するために適合された、ソフトウェアまたはハードウェアの任意のソリューションを意味する。PDMソリューションは、エンジニアだけでなく、プロジェクト管理者、財務担当者、販売担当者、および、購入者を含む、製品のライフサイクルに関わる全ての人々によって用いられてよい。PDMソリューションは、一般的に、製品志向のデータベースに基づいている。PDMソリューションによって、製品のライフサイクルに関わる全ての人々は、製品に関して一貫性のあるデータを共有することができるので、異なるデータを用いなくてよい。このようなPDMソリューションは、Dassault Systemes社により登録商標ENOVIAとして提供されている。
【0043】
図13は、システムのGUIの例を示している。ここでは、システムはCADシステムである。
【0044】
GUI100は、典型的なCADのようなインタフェースであってよく、標準メニューバー110、120、および、ボトムツールバー140、サイドツールバー150を有する。このようなメニューバーおよびツールバーは、ユーザが選択可能なアイコンのセットを含み、各アイコンは、当分野で既知の1つまたは複数の操作または機能に関連付けられる。これらのアイコンの一部は、GUI100に表示されている3Dモデルオブジェクト200を編集する、および/または、3Dモデルオブジェクトに手を加える、ために適合されたソフトウェアツールに関連付けられている。ソフトウェアツールは、ワークベンチにグループ化されてよい。各ワークベンチは、ソフトウェアツールのサブセットを含む。特に、ワークベンチの1つは、モデル化された製品200の幾何学的特徴の編集に適した、編集ワークベンチである。操作時、設計者は、例えば、オブジェクト200のパーツを予め選択してよく、次に、適切なアイコンを選択して、操作(例えば、寸法、色などの変更)を開始してもよく、幾何学的制約を編集してもよい。例えば、典型的なCAD操作は、画面に表示された3Dモデルオブジェクトの打ち抜きや折り畳みのモデル化である。
【0045】
GUIは、例えば、表示された製品200に関連するデータ250を表示してよい。
図2の例においては、「フィーチャーツリー」として表示されたデータ250、および、その3D表現200は、ブレーキのキャリパーとディスクを含むブレーキアセンブリに関する。GUIは、例えば、オブジェクトの3Dの方向付けを容易にするため、また、編集された製品の操作のシミュレーションをトリガするための様々な種類のグラフィックツール130、をさらに示してよく、表示された製品200の様々な属性をレンダリングしてよい。カーソル(図示せず)は、ユーザがグラフィックツールとインタラクトできるように、触覚装置によって制御されてよい。
【0046】
図14は、方法を実行するコンピュータシステムの例を示している。ここでは、システムは、クライアントコンピュータシステムである。
【0047】
その例のクライアントコンピュータは、内部通信BUSl000に接続された中央処理装置(CPU)1010と、同様にBUSに接続されたランダムアクセスメモリ(RAM)1070を含む。クライアントコンピュータは、BUSに接続されたビデオランダムアクセスメモリ1100に関連付けられたグラフィックプロセッシングユニット(GPU)1110をさらに備える。ビデオRAM1100は、当分野では、フレームバッファとしても知られている。大容量記憶装置コントローラ1020は、ハードドライブ1030等の大容量メモリ装置へのアクセスを管理する。コンピュータプログラム命令およびデータを具体的に実現するのに適切な大容量メモリ装置は、例を挙げると、EPROM、EEPROM、フラッシュメモリ装置等の半導体メモリ装置と、内部ハードディスク、リムーバブルディスク等の磁気ディスクと、光磁気ディスクと、CDROMディスク1040等、あらゆる形態の不揮発メモリを含む。その不揮発性メモリはいずれも、特別に設計されたASIC(特定用途向け集積回路)によって補完されてもよく、ASICに組み込まれてもよい。ネットワークアダプタ1050は、ネットワーク1060へのアクセスを管理する。クライアントコンピュータは、カーソル制御装置、キーボード等、の触覚装置1090も含んでよい。カーソル制御装置は、クライアントコンピュータで用いられて、ユーザが、ディスプレイ1080の任意の所望の位置に選択的にカーソルを置くのを可能にする。さらに、カーソル制御装置によって、ユーザは、様々なコマンドを選択し、制御信号を入力することができる。カーソル制御装置は、システムへの入力制御信号のための多くの信号生成装置を含む。典型的には、カーソル制御装置はマウスであってよく、マウスのボタンを用いて信号を生成する。それに代わって、または、それに追加して、クライアントコンピュータシステムは、タッチパッド、および/または、タッチスクリーンを含んでよい。
【0048】
コンピュータプログラムは、コンピュータによって実行可能な命令を含んでよい。命令は、上記システムに方法を実行させる手段を含む。プログラムは、システムのメモリを含む任意のデータ記憶手段に記録可能であってよい。プログラムは、例えば、デジタル電子回路で、または、コンピュータのハードウェア、ファームウェア、ソフトウェア、もしくは、それらの組み合わせで、実施してよい。プログラムは、装置として、例えば、プログラム可能プロセッサで実行されるように、機械可読記憶装置で有形に実現される製品で実施してよい。プログラム可能プロセッサが命令のプログラムを実行して、入力データで演算を行い、出力を生成することによって方法の機能を実行して、方法のステップを行ってよい。従って、プロセッサは、プログラム可能であってよく、データ記憶システム、少なくとも1つの入力装置、および、少なくとも1つの出力装置に接続されて、それらからデータや命令を受信したり、それらにデータや命令を送信したりしてよい。アプリケーションプログラムは、高水準手続き型プログラミング言語もしくはオブジェクト指向プログラミング言語、または、必要に応じて、アセンブリ言語もしくは機械語で実施してよい。いずれの場合でも、その言語は、コンパイラ型言語であっても、インタープリタ型言語であってもよい。プログラムは、完全インストール型のプログラムであってもよく、更新されるプログラムであってもよい。システムのプログラムのアプリケーションは、いずれの場合でも、結果として、方法を実行する命令になる。
【0049】
「工業製品の設計」は、モデルオブジェクト、例えば、3Dモデルオブジェクトを作成するプロセスの少なくとも一部となる任意のアクションまたは任意の一連のアクションを指定する。従って、方法は、走り書きから工業製品を作成することを含んでよい。あるいは、方法は、以前作成した工業製品を提供し、その工業製品を修正することを含んでよい。
【0050】
方法は、製造プロセスに含まれてよく、製造プロセスは、方法の実行後、モデルオブジェクトに対応する物理的製品を生産することを含んでよい。どの場合でも、方法によって設計されたモデルオブジェクトは、製造オブジェクトを表してよい。従って、モデルオブジェクトは、モデル化された立体(すなわち、立体を表すモデルオブジェクト)であってよい。製造オブジェクトは、パーツまたはパーツのアセンブリ等の機械製品であってよい。方法によって、モデルオブジェクトの設計は改良されるので、製品の製造も改良されて、製造プロセスの生産性は上がる。
【0051】
CADソフトウェアソリューションは、航空宇宙産業、建築、消費財、ハイテク装置、工業設備、水産業、オフショア工業、または、輸送など、限定されない、様々な工業分野における工業製品の設計を可能にする。
【0052】
図1に戻る。ステップS100において、工業製品の1つまたは複数のジオメトリを選択する。
【0053】
工業製品は、ジオメトリの集合を用いて表されたモデルオブジェクトである。ジオメトリという用語は、モデルを表すために使用されるエンティティを意味する。実際には、モデルは、線、曲線、面、または、表面等のジオメトリを用いて表される。ジオメトリ間の制約は、例えば、一定の位置または角度を特定するために、ジオメトリ同士を関連付けるために用いてよい。製品のジオメトリ間の制約は、ノードとエッジを含む制約のグラフを用いてモデル化される。グラフのノードは、製品のジオメトリを表し、2つのノード間のエッジは、各ノードが表すジオメトリ間の制約を表す。グラフという用語は、ノードの集合の表現を意味し、ノードの幾つかの対は、エッジ(リンクとも呼ばれる)によって接続されている。あるノードが表すジオメトリは、点、線、曲線、面、場所、立体のうちの1つであってよい。
【0054】
正式には、ジオメトリおよび制約のネットワークは、制約G=(X,U,α,ω)の有向グラフによってモデル化される。ここで、Xはノードの集合、Uは弧の集合、α:U→Xであり、α:U→Xは、接続関数である。式α(u)=xは、x∈Xが弧u∈Uの開始ノードであることを意味し、ω(u)=yは、y∈Xが弧u∈Uの終了ノードであることを意味する。ノードXは、幾何学的オブジェクト(ジオメトリとも呼ばれる)を記号で表すものであり、弧Uは、制約を記号で表すものである。制約の向きは、弧の向きによって得られる。開始ノードα(u)は、制約uのマスタ要素であり、終了ノードω(u)は、制約uのスレーブ要素である。表記ω−1(x)は、ω(u)=xとなる全ての弧uの集合である。表記α(ω−1(x))は、yからxの向きの弧によってノードxに接続された全てのノードyの集合である。表記α−1(x)は、α(u)=xとなる全ての弧uの集合である。表記ω(α−1(x))は、xからyの向きの弧によってノードxに接続された全てのノードyの集合である。モデルは、互いに逆向きである二重の弧によって、無向制約を取り扱う。グラフGは、サイクルを含んでよい。
【0055】
ジオメトリの選択は、当分野で既知のように、ユーザに表示されたジオメトリ表現に対するユーザアクションに基づいて行われてよい。例えば、ユーザは、
図13に示すGUIに表示された工業製品のジオメトリの1つを操作するために、
図14に例示されたシステムの触覚装置を使うことができる。
【0056】
あるいは、ジオメトリの選択は、システムによって自動的に行われてよい。例えば、システムは、最後に編集されたジオメトリを選択する。選択は、連続したユーザアクションと、自動選択の両方に依存してよいことは理解されたい。
【0057】
図2を参照すると、制約のグラフの例が示されている。このグラフにおいて、X={1,・・・,15}は、グラフが15のノードを含むことを意味する。2つのノード間の矢印は、制約を表す。矢先は、スレーブ上にあり、矢印は、マスタから開始される。例えば、ノード8は、ノード8から始まりノード7に到達する(矢印で表される)有向エッジを用いて、ノード7に接続される。ノード8はマスタで、ノード7はスレーブである。2つのノード間の制約が向きを持たない場合、エッジは、両方向矢印によって表される。例えば、ノード3とノード4によって表されるジオメトリは、無向制約で制約されている。制約のグラフは、それぞれ、ノード(1,2,6)、(2,3,7,6)、(7,12,14,11)、(14,11、15)を含む、4つのサイクルを特徴とする。
【0058】
図1に戻る。ステップS110において、少なくとも1つの基準要素を選択する。基準要素とは、製品の修正されないジオメトリを意味する。すなわち、ユーザは、基準要素のジオメトリを修正することはできない。実際に、基準要素が用いられる設計状況というのは、基準要素を所有する別の設計者と基準要素を共有する場合である。制約の向きを変えるプロセスで基準要素が変更されないために、以下に記載のように、基準要素は、ユーザが選択したオブジェクトの集合に系統的に含まれる。
【0059】
1つまたは複数の基準要素の選択は、製品のジオメトリを選択するために説明したのと同じ方法で行うことができる。実際には、基準要素は、自動的に選択され、選択すべき基準要素の識別は、過去のユーザ選択によって行われる。
【0060】
次に、ステップS120において、グラフの各ノードの奥行き値を計算する。計算は、選択されたジオメトリを表すノードから行われる。ノードの奥行き値は、写像p:X→Nによってモデル化される。これは、p(x)がノードxの奥行き値であることを意味し、ここで、Xは、制約のグラフのノードの集合である。奥行値は整数である。ノードの奥行き値を用いて、グラフ内を横断する時の開始ノードからのノードの「距離」を表す。距離は、開始ノードから到着ノードまでグラフを横断する時に出会うグラフのノードの数であってよいが、それに限られない。グラフの横断は、以下のアルゴリズムに従って行われてよい。
【0061】
S´⊂Xを、ステップS100で選択したノードの集合とし、R⊂XをステップS110で選択した基準要素の(場合によっては、空の)集合とする。S=S´∪Rを、ユーザが選択した要素と基準要素とを含む、選択した要素の集合とする。ノードSから開始して、全てのノードx∈Xに関して、以下の原理で奥行き値を計算する。
【0062】
(i)選択したノードSの奥行値を「0」に設定する。従って、選択した基準要素およびジオメトリは、グラフの最小の奥行き値である同じ奥行値を有する。
【0063】
(ii)奥行き値nを有するノードに結合している未訪問のノードは、奥行き値n+1を有する。ノードと選択したノードは、両方のノードがエッジによって接続されているとき、結合されている。
【0064】
奥行き値の計算中、エッジの向きは結合の検索では、考慮されない。従って、選択されたノードSに結合しているノードは、奥行き値「1」を有する。奥行き値「1」のノードに結合しているノードは、奥行き値「2」を有し、奥行き値「2」のノードに結合しているノードは、奥行き値「3」を有し、以下、同様である。
【0065】
グラフ横断中、未訪問のノードを認識するために、全てのノードに関して、最初の奥行き値を記号「−1」にする。
【0066】
For all x∈X do begin
p(x):=−1
End for
次のステップで、全ての選択したノード、すなわち、ステップS100、および、(もしあれば)ステップS110で選択した1つまたは複数のノードに、ゼロの奥行き値を設定する。
【0067】
For all x∈S do begin
p(x):=0
End for
次に、残りの奥行値の計算は下記のように行う。YとZの集合は、グラフのナビゲーションを管理するワーキング変数(working valuables)である。数nは、現在の奥行値で、ナビゲーション中、増加する。
【0070】
図3は、ノード8の記号のジオメトリをユーザが選択したことに従った、
図2のグラフのノードの奥行き値の計算を示している。この例では、選択された基準要素はなく、各ノードの奥行き値は、括弧内に記載されている。
【0071】
記号としての奥行き値「−1」を与え、その後、ユーザが、ノード8の記号としての(または、記号で表された)ジオメトリを選択すると、奥行き値「0」がノード8に与えられる。そして、隣のノード5、9、12、7を通り、奥行値「1」が与えられる。次に、ノード5、9、12、7の隣の、記号としての奥行き値「−1」を有する各ノードに対して、奥行き値「2」が設定される。これらのノードは、ノード7に隣り合うノード11、6、3、4と、ノード12に隣り合うノード14、15である。次に、ノード11、6、3、4、14、15に隣り合い、記号としての奥行き値「−1」を有する各ノードに対して、奥行き値「3」が設定される。これらのノードは、ノード3に隣り合うノード2と、ノード6に隣り合うノード1と、ノード11に隣り合うノード10、13である。奥行き値の計算中、エッジの向きは結合の検索では考慮されない。
【0072】
図1に戻る。ステップS130で、1つまたは複数の相反する制約が識別される。相反する制約は、開始ノードの奥行き値が、終了ノードの奥行き値より大きい有向エッジによって表される。xからyへの向きと考えられるエッジに関しては、開始ノードは、ノードx、終了ノードはノードyである。言い換えると、開始ノードは、エッジの後部で、終了ノードはエッジの頭部である。ここで、相反する弧の集合A={u∈U;p(ω(u))<p(α(u))}⊂Uは、終了ノードの奥行き値が開始ノードの奥行き値より小さい全ての弧から成る。Uは制約を表す記号であることを思い出そう。
【0073】
図4は、
図2のグラフの相反する制約の識別を示している。相反するエッジは、点線で表される。例えば、エッジ(3,7)は、p(7)=1<2=p(3)なので、相反するエッジである。別の例としては、エッジ(9,8)は、1=p(9)>p(8)=0なので、相反するエッジである。
【0074】
ステップS130での相反する制約の識別に、最小の奥行き値を有するノードから最大の奥行き値を有するノードへのグラフの各エッジの向きを決定するステップが先行してよい。この各エッジの向きの決定によりステップS130での識別が容易になり、好都合である。グラフの各ノードの奥行き値を計算するステップの後、向きの決定を行うことは理解されたい。
【0075】
エッジは、同じ奥行き値を有する2つのノードを接続してよい。このようなエッジは、相反する制約として識別されず、変更されない。すなわち、そのエッジは、ステップS130で相反する制約として識別されず、ステップS140で逆転されない。
【0076】
図1に戻る。ステップS140で、ステップS130で識別された1つまたは複数の相反する制約を逆転する。相反する制約を逆転するとは、制約を表すエッジの向きを反転させることを意味する。ステップS140の結果として、集合Aは空集合である、すなわち、制約のグラフは、終了ノードの奥行き値が開始ノードの奥行き値より小さいエッジを含まなくなる。
【0077】
相反する制約の逆転すると、有利なことに、制約のグラフの多くのサイクルを除くことができる。その逆転は以下のように行われる。
【0078】
For all u∈A do begin
z:=α(u)
α(u):=ω(u)
ω(u):=z
End for
図5は、
図4のグラフの相反する制約が逆にされたグラフである。ここでも、向きを変えられたエッジは、点線で表される。例えば、エッジ(7,3)は、p(7)=1<2=p(3)なので、相反するエッジではない。別の例としては、エッジ(8,9)は、0=p(8)<p(9)=1なので、相反するエッジではない。サイクル15−14−11が残っているのと対照的に、サイクル2−1−6、サイクル7−6−2−3、および、サイクル7−12−14−11が消失したことに気付くであろう。サイクル15−14−11を残りサイクルと呼ぶ。
【0079】
次に、
図1のステップS150で、選択したジオメトリを修正する。ジオメトリの修正は、当分野で既知のように行ってよい。例えば、ユーザは、ジオメトリのパラメータを修正する。
【0080】
そして、ステップS160で、ジオメトリの修正は、その工業製品の1つまたは複数の他のジオメトリに伝播される。ジオメトリの修正を伝播するとは、選択されたジオメトリの修正に従って製品のジオメトリを解決することを意味する。ジオメトリの解決は、ジオメトリ間の制約を解決することを伴う。実際には、ジオメトリの解決は、当分野で既知の1つまたは複数のソルバによって行われる。
【0081】
ジオメトリの解決は、計算された奥行き値によって規定されるシーケンス順に従って行われる。実際、相反する制約を表すエッジの向きの変更は、制約ネットワークを順次的に解決することになる。よって、シーケンス順は、ステップS120で計算されたノードの奥行き値によって規定される。
【0082】
シーケンス順は、同じ奥行き値を有するノードのグループ化によって取得されたノードグループに依存する。奥行き値「0」を有するノードは、1つのグループを形成する。そして、有限の繰り返し(finite recurrence)を通して、奥行値n+1を有するノードグループのノードは、このグループのノードを接続する制約と、(前に解決した)奥行値nのジオメトリから奥行値n+1のジオメトリの向きへの制約と、に従って、まとめて解決される。言い換えると、奥行き値n+1を有するノードグループに関して、そのグループのノードによって表されるジオメトリは、そのグループのノード同士を接続するエッジによって表される制約に従って解決され、かつ、そのグループのノードによって表されるジオメトリは、奥行き値nを有するノードグループのノードから奥行き値n+1を有するノードグループのノードに向かう制約によって解決される。従って、順次的な解決は、最小の奥行値を有するノードグループから、最大の奥行値を有するノードグループに向かって行われる。
【0083】
同じ奥行き値でラベル付けられたノードを接続する制約は、サイクルを特徴としてよいこと、は理解されたい。このような残りサイクルは、ユーザ選択によって定義された修正の意図に反しないので、関連性はない。残りサイクルは、1つの制約の逆転、反復など、当分野で既知の任意の専用の方法によって、有利なことに解決することができる。
【0084】
奥行値nのジオメトリから奥行値n+1のジオメトリに向かう制約に従って、奥行き値n+1を有するノードグループのノードを解決するとき、奥行き値nを有するノードグループに関しては、ジオメトリ間の制約が解決され、ジオメトリは固定されていることも理解されたい。
【0085】
図6を参照すると、
図5に示されたグラフのノードが、4つのグループにグループ化されている。ノード8は、奥行値「0」(レベル「0」とも呼ばれる)のノードグループに属し、ノード5、9、7、12は、奥行き値「1」(レベル「1」とも呼ばれる)グループを形成し、ノード4、3、6、11、15、14は、奥行き値「2」(レベル「2」とも呼ばれる)グループを形成し、ノード2、1、10、13は、奥行き値「3」(レベル「3」とも呼ばれる)のグループを形成する。分かり易いように、向きを変更した弧は点線で表す。この例は、奥行き値「2」のグループで生じる残りサイクル15−14−11を特徴としている。
【0086】
解決すべき最初のグループは、レベル「1」のグループである。ノード5、9、7、12で表されるジオメトリは、ノード8によって表されるジオメトリは固定であるとして、ノード8からノード5、9、7、12に向かう制約に従って解決される。解決すべき2番目のグループは、レベル「2」のグループである。ノード4、3、6、11、15、14によって表されるジオメトリは、レベル1のグループのジオメトリは解決されており(従って、それらは固定である)という理解で、ノード5、9、7、12からの向きの制約に従って解決される。レベル「3」も同様に解決される。
【0087】
よって、2つの連続したレベルnおよびn+1を知ることによって、奥行き値n+1を有するノードグループのノードによって表されるジオメトリを解決することができる。これは、有利なことに、ソルバの実施を容易にする。さらに、レベルn+1のグループの解決に関わる必要のあるデータが少なくなるので、ジオメトリの修正の伝播に必要な計算資源が少なくなる。
【0088】
各グループのジオメトリを解決すると、修正の伝播が行われていると考えられる。方法のこのステップでは、選択されたジオメトリの修正は、設計意図に従った向きの制約ネットワークを通って伝播される。さらに、エッジの向きは、(もしあれば)基準要素が修正されないように、計算される。
【0089】
修正が行われた後、ステップS170において、識別済みの相反する制約の元の向きを回復してよい。よって、相反する制約は元の状態に戻る。これによって工業製品のいかなる劣化も避けられ、好都合である。すなわち、元の設計意図が保持される。
【0090】
従って、ステップS170が行われた後、設計者は、幾何学的要素を新しく選択することができ、その新しい選択に従って、向きを変更する新たなプロセスを実行する。よって、各ジオメトリ選択に関して、ユーザは、製品の設計意図を保持しながら、選択したジオメトリを自由に修正することができる。例えば、ワークベンチを形作る曲線および表面を用いる時、その方法は、設計者が意図的に作成したものでない有向制約のサイクルを扱うので、製品のジオメトリの自由な修正が可能になる。満足できない解決となることが一般的な、作成順に1つずつサイクルの制約を評価するとういう方法の代わりに、制約の向きを変えることによって、サイクルを壊す。これは、即時の設計意図を考慮して自然な挙動を提供し、かつ、壊すべきサイクルと残りサイクルとのタイポロジーを提供する。
【0091】
図7〜
図12は、車体の予備設計の曲線の典型的な三次元ネットワークの例を示している。曲線1から曲線7に焦点を当てる。ジオメトリ(すなわち、曲線1から曲線7)は、幾何学的制約によって接続され、幾何学的制約の向きは、元の設計者による、この工業製品の予備設計の作成段階の選択順によって設定される。ジオメトリのネットワークは、機械、機器、用具、電気器具、衣類、織物などが含まれるが、これらに限定されない任意の工業製品の設計に用いられてよいことは理解されたい。
【0092】
図7の曲線1から曲線7は、
図8の制約グラフに従って接続されている。曲線1と曲線3は、基準要素で、グラフでは円で囲まれたノードによって表されている。曲線1と曲線3は、修正することができない。曲線6と曲線7の端点は、曲線1の端点8、9を共有する。曲線2の端点10は曲線6上に制約され、端点11は、曲線7に上に制約される。曲線4の両端点は、それぞれ、曲線1および曲線2上に制約される。曲線5の両端点は、それぞれ、曲線2および曲線3上に制約される。最後に、曲線2上にある曲線5の端点は、曲線2上にある曲線4の端点と一致し、この時点で、曲線4と曲線5間の接続は、曲率連続である。
【0093】
図8に示す制約の向きによって、設計者は、曲線3を修正することなく、
図9の両方向矢印によって示されるように、曲線3上にある曲線5の端点をスライドさせることができる。曲線4上にある曲線5の端点は、曲線4と共有しているので、曲線5を変更することによって移動させることはできず、この端点は、
図9に示すように、曲線5のマスタ要素である。
【0094】
図10は、
図8のグラフのノードの奥行値が計算され、識別済みの相反する制約を点線で表したグラフである。(円で囲まれたノードによってグラフに表された)曲線1および曲線3は基準要素なので、「0」の奥行き値を有することに気付く。曲線5も、設計者が選択したジオメトリなので、「0」の奥行き値を有する。曲線1、3、5は、同じグループレベル「0」に属する。この例においては、ノード3から始まって、ノード5で終わる向きの制約があり、この制約は、計算された奥行き値によって規定されるシーケンス順に従ってジオメトリを解決する時、解決される。
【0095】
図11は、
図10のグラフの相反する制約が逆転されたグラフを示している。相反する制約が逆転されたので、この後、設計者は、曲線5を自由に修正することができる。幾何学的視点から見ると、設計者は、曲線3上にある曲線5の端点をスライドすることができ、曲線2上にある曲線5の端点を自由に移動することができる。それによって、
図12に示すように、曲線2および曲線4の各形状を変更してよい。従って、その後、設計者は、曲線3と曲線1を変更せずに、曲線5から曲線2と曲線4を操作することができる。曲線5の修正が行われると、逆転後の相反する制約の元の向きが回復されるので、修正された製品は、最初のモデルと同じ制約を有する。製品のロバスト性は保持される。