JP2009211724A - 文脈自由文法を用いた部品設計システム - Google Patents
文脈自由文法を用いた部品設計システム Download PDFInfo
- Publication number
- JP2009211724A JP2009211724A JP2009144595A JP2009144595A JP2009211724A JP 2009211724 A JP2009211724 A JP 2009211724A JP 2009144595 A JP2009144595 A JP 2009144595A JP 2009144595 A JP2009144595 A JP 2009144595A JP 2009211724 A JP2009211724 A JP 2009211724A
- Authority
- JP
- Japan
- Prior art keywords
- seed structure
- operations
- contribution
- history
- primitives
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Withdrawn
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T17/00—Three dimensional [3D] modelling, e.g. data description of 3D objects
- G06T17/005—Tree description, e.g. octree, quadtree
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F30/00—Computer-aided design [CAD]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T17/00—Three dimensional [3D] modelling, e.g. data description of 3D objects
- G06T17/10—Constructive solid geometry [CSG] using solid primitives, e.g. cylinders, cubes
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02P—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN THE PRODUCTION OR PROCESSING OF GOODS
- Y02P90/00—Enabling technologies with a potential contribution to greenhouse gas [GHG] emissions mitigation
- Y02P90/02—Total factory control, e.g. smart factories, flexible manufacturing systems [FMS] or integrated manufacturing systems [IMS]
Landscapes
- Physics & Mathematics (AREA)
- Engineering & Computer Science (AREA)
- Geometry (AREA)
- Theoretical Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computer Graphics (AREA)
- Software Systems (AREA)
- Computer Hardware Design (AREA)
- Evolutionary Computation (AREA)
- General Engineering & Computer Science (AREA)
- Stored Programmes (AREA)
- Processing Or Creating Images (AREA)
Abstract
【課題】履歴ベースの設計システムに基づいて、部品、または部品のアセンブリを設計する宣言的なシステムを提供する。
【解決手段】このシステム(40)は、プリミティブおよび演算によるストレージフォーマットを有する。モデリングされたオブジェクトが、演算およびプリミティブの順序づけられたシーケンスによって、履歴ベースの設計システムにおいて定義される。この宣言的なシステムは、いくつかの機能フィーチャを有する。こうした機能は、エンドユーザによって選択され(48)インスタンス化される。インスタンス化された機能フィーチャは、コントリビューション(50)を提供する。各コントリビューションは、履歴ベースの設計システムの、演算およびプリミティブの順序づけられたシーケンスである。コントリビューション(50)は、シード構造(52)によって受け取られる。エディタ(56)は、シード構造を文法に従って編集する。
【選択図】図5
【解決手段】このシステム(40)は、プリミティブおよび演算によるストレージフォーマットを有する。モデリングされたオブジェクトが、演算およびプリミティブの順序づけられたシーケンスによって、履歴ベースの設計システムにおいて定義される。この宣言的なシステムは、いくつかの機能フィーチャを有する。こうした機能は、エンドユーザによって選択され(48)インスタンス化される。インスタンス化された機能フィーチャは、コントリビューション(50)を提供する。各コントリビューションは、履歴ベースの設計システムの、演算およびプリミティブの順序づけられたシーケンスである。コントリビューション(50)は、シード構造(52)によって受け取られる。エディタ(56)は、シード構造を文法に従って編集する。
【選択図】図5
Description
本発明は、コンピュータプログラムおよびシステムの分野に関し、より詳細には、部品設計プログラムおよびシステムに関する。
いくつかのシステムおよびプログラム、たとえば出願人によってCATIAという商標で提供されているものが、部品、または部品のアセンブリの設計の市場で販売されている。こうしたいわゆるコンピュータ支援設計(CAD)システムは、ユーザが、部品、または部品のアセンブリの複合3次元(3D)モデルを組み立て、処理することを可能にする。
異なるいくつかのモデリング技法を、アセンブリのモデルを作成するのに用いることができる。こうした技法は、ソリッドモデリング、ワイヤフレームモデリング、およびサーフェスモデリングを含む。ソリッドモデリング技法は、トポロジカルな3Dモデルを実現し、この3Dモデルは、たとえば、相互に連結されたエッジおよび面の集合体である。幾何学的には、3Dソリッドモデルとは、閉じられた面(closed skin)を定義するトリム面の集合体である。トリム面は、エッジによって境界が定められるトポロジカルな面に対応する。閉じられた面は、部品の材料で満たされた3D空間の、境界づけられた領域を定義する。一方、ワイヤフレームモデリング技法は、モデルを単純な3Dラインの集合体として表すのに用いることができ、サーフェスモデリングは、モデルを外面の集合体として表すのに用いることができる。CADシステムは、こうしたモデリング技法、および他のモデリング技法、たとえばパラメトリックモデリング技法を組み合わせることができる。
パラメトリックモデリング技法は、モデルの異なるフィーチャおよびコンポーネント用の様々なパラメータを定義するのに、また、そうしたフィーチャとコンポーネントの間の関係を、様々なパラメータの間の関係に基づいて定義するのに用いることができる。ソリッドモデリングおよびパラメトリックモデリングは、パラメトリックソリッドモデリングをサポートするCADシステムにおいて、組み合わせることができる。
設計技師は、3D CADシステムの一般的なユーザである。設計技師は、3Dモデルの機能的、物理的および外見的な面を設計し、3Dモデリング技法に熟練している。設計技師は、部品を作成し、部品を1つまたは複数のサブアセンブリに組み立てることができる。部品だけでなく、サブアセンブリも、他のサブアセンブリからなることがあり得る。部品およびサブアセンブリを使って、設計技師はアセンブリを設計する。これ以降、部品およびサブアセンブリは、まとめて「コンポーネント」と呼ばれる。
部品またはコンポーネントは、様々な幾何学的ビルディングブロックを使って、一般にCADシステムにおいて提供されるツールを使って構成される。設計技師が、部品を構成しながらフィーチャを作成する順序は、フィーチャベースのCADにおいて、その部品の物理構造に影響を与える。こうしたシステムはしたがって、履歴ベースである。たとえば、最初にブロックを円筒形でカットし、次いでカットを行った円筒形によって残された隙間の内部に伸びる突起を追加することによって構成された部品は、ホール内部の突起の材料をもつホールを生じる。円筒形によるカットの前に突起が追加されるように動作の順序が逆にされると、カット動作は、元のブロックの材料をカットするだけでなく、後から加えられた突起の材料もカットすることになり、内部に材料をもたないホールを生じる。このことは、図1から図3に例示され、こうした図は、従来技術のCADシステムの画面に表示されるウィンドウを示す。図1は、構成中の部品の3通りのビューを含むウィンドウ2を示す。上面図4、正面図6、および回転図8は、部品が2つのブロックフィーチャ(すなわち、上側ブロック12および下側ブロック14)によって部分が定義されることを明らかにしている。さらに、上面図4および正面図6は、円形の突出プロファイル(extruded profile)10を簡単に示している。突出プロファイル10の目的は、部品に円筒形のカットフィーチャ(cut feature)を作成することである。図2は、突出プロファイル10がカットフィーチャを構成するのに使われた後のウィンドウ2を示す。カット16は、突出プロファイル10内にあった材料を上側ブロック12および下側ブロック14から取り去ることによって作成された。カットフィーチャ16を含める前に、部品定義に上側ブロック12および下側ブロック14が含まれていた(すなわち、存在していた)場合、カット16は、履歴ベースのCADシステムにおいて、図2に示されるように現れる。図3は、カットフィーチャ18が上側ブロック12から材料を取り去らなかった場合の部品を含むウィンドウ2を示す。下側ブロック14が第1に部品定義に含められ、カットフィーチャ18が第2に部品定義に含められ、第3に上側ブロックが部品定義に含められた場合、カット18は、履歴ベースのCADシステムにおいて、図3に示されるように現れ得る。図1〜図3の例は、コンポーネントを定義するためにフィーチャが入力される順序が、コンポーネントの出力形状に影響することを示す。機械的な部品を参照しているこの説明は、設計システムにおける他のタイプの部品またはコンポーネント、たとえば型取りによる部品、回路の電気的フィーチャ、またはより一般的には、そのアセンブリが部品またはコンポーネントを形成するどのタイプのフィーチャにも当てはまる。
たとえば、特許文献1は、このような履歴ベースのCADシステムにおけるフィーチャの順序の問題に対する解決法を提供する。この解決法は、フィーチャ作成順序およびフィーチャ再生順序を別個にするという原理に基づく。フィーチャ作成は、ユーザがコンポーネントにフィーチャを追加する順序を参照する。フィーチャ再生順序は、幾何学的なフィーチャ動作が基底の幾何学モデルに適用される順序を参照する。このことは、所与のフィーチャがそれに対して影響を与える他のフィーチャを表すフィーチャ有効範囲に、その所与のフィーチャを関連づけることによって遂行される。フィーチャ有効範囲は、明示的でよく、その場合、CADシステムのユーザは、所与のフィーチャがそれに対して作用する他のフィーチャの一覧を明示的に構築する。フィーチャ有効範囲は、暗黙でもよく、その場合、規則体系に基づいて、たとえばフィーチャが導入される順序、近接計算、またはフィーチャの属性に依拠して、システムによって自動的に定義される。フィーチャ有効範囲を明示的に定義することは、ユーザにさらに負担を与える。フィーチャ有効範囲の暗黙の定義は、予めプログラミングされた所与の数の規則に限定される。特許文献1はさらに、フィーチャ有効範囲に従ってフィーチャを動的にグループ化し順序づけて、フィーチャチェーンを構築することを論じている。フィーチャチェーンは、3つのボリュームを保持する。第1のボリュームは、材料を追加するすべてのフィーチャを組み合わせる正のボリュームである。第2のボリュームは、材料を取り除くすべてのフィーチャを組み合わせる負のボリュームである。第3のボリュームは、正のボリュームおよび負のボリュームを組み合わせる。フィーチャチェーンは、フィーチャツリーによって作成され表される。こうしたツリーは、フィーチャ有効範囲を考慮に入れて作成される。システムはしたがって、フィーチャツリーを構築するために、フィーチャ有効範囲に依存する。より一般的には、この特許において提案されている解決法は、時間的な複雑さ、すなわちフィーチャが定義される順序を有効範囲に変えることと等価である。しかし、有効範囲の定義は、フィーチャに適正な順序を定義することと同程度に複雑な場合がある。
特許文献2は、水平構成によるCAD−CAMモデリングシステムを論じている。この特許は、データ面を定義すること、およびデータ面に新しいフィーチャをリンクすることを提案している。したがって、フィーチャは、それぞれ独立して修正可能であるとされている。この解決法は、ユーザが、データ面を定義し、新しい各フィーチャごとに、どのデータ面にそのフィーチャが付与されるべきかを決定することを必要とする。この解決法は、いくつかのフィーチャを他のフィーチャとはそれぞれ独立して修正することを可能にする。しかし、この解決法は、上述したように、フィーチャの時間的な順序についての問題に対処していない。図1〜図3の例を再度参照すると、上側ブロック、下側ブロックおよび突出プロファイルが同じデータ面に「付与される(attached)」ということは、こうしたフィーチャが定義される順序が、その結果生じる部品またはコンポーネントを変え得るという事実を変えない。
履歴依存(history dependent)でない他のシステムも提案されている。こうした他のシステムは、境界表現モデリングに依拠するシステムを含む。システムは、境界表現のみを格納し、表現を定義するユーザ動作のシーケンスは格納しない。こうしたシステムに伴う問題は、システムが、ユーザが既に設計されている構造を変更し、または修正することをほとんど可能にしていないことである。より具体的には、こうしたシステムは、新しい構造の生成においてユーザを助けるツールを提供することができる。こうしたツールは、既存の境界を外挿(extrapolate)し、境界に対する限られた変更を行うだけである。こうしたツールはまた、予めプログラミングされている限られた一連の変更に依拠する。図4は、境界表現モデリングにおける部品の断面の例である。この部品は、ホールがその中に穿設されているボリューム20である。このホールは、軸26を中心とした曲線24の回転、および底面28によって定義される形状を有する。底面がシステムによって線として識別される場合、ホールの底面28の、点線で表される位置30への置換えは、システムによって可能にされることがあり得る。底面が線として識別されない場合、底面の移動は、底面を完全に再設計することを含む場合がある。さらに、底面が移動される場合、壁24の下部は、拡張される必要がある。この拡張は、壁の下部を再設計することを含み得る。反対に、履歴ベースのシステム(history based system)では、壁24の下部は、円錐面の再限定(relimination)として定義されることができ、単に設計シナリオを「再現する(replay)」こと、すなわち再限定ステップを「再現する」(replaying the relimitation step)ことによって、容易に拡張される。この例は、履歴ベースのシステムの利点のいくつかを示している。すなわち、履歴ベースのシステムは、エンドユーザの設計意図を取り込む。言い換えると、履歴ベースのシステムは、後続の設計ステップを反映する。履歴ベースのシステムは、容易な事後変更も可能にする。
Introduction to Automata Theory, Language and Computation, J.E. Hopcroft, J.D. Ullmann, Addison-Wesley, 1979
したがって、より容易に使用することができるとともに履歴依存システム(history-dependent system)の利点を提供するCADシステムが必要である。このようなシステムは、好ましくは、ユーザの要求、およびシステムが用いられる当該分野に容易に適応されるべきである。
本発明は、部品、または部品のアセンブリを設計するシステムであって、
(a)プリミティブ(primitive)および演算(operation)によるストレージフォーマット(storage format)を有する履歴ベースの設計システム(history-based design system)であって、前記部品または部品のアセンブリは、前記履歴ベースの設計システムにおいて、演算およびプリミティブの順序づけられたシーケンス(ordered sequence)によって定義(define)される履歴ベースの設計システムと、
(b)少なくとも2つの機能フィーチャ(functional feature)であって、それぞれの機能フィーチャは1組の仕様(specification)を提供することによりエンドユーザによってインスタンス化(instantiate)されるように適合(adapt)され、該インスタンス化された機能フィーチャは、少なくとも1つのコントリビューション(contribution)を提供し、該コントリビューションは、前記履歴ベースの設計システムにおける演算およびプリミティブの順序づけられたシーケンスである、少なくとも2つの機能フィーチャと、
(c)文脈自由文法(context-free grammar)を用いて定義(define)されるシード構造(seed structure)であって、該シード構造は、前記インスタンス化された機能フィーチャ(instantiated functional feature)から前記コントリビューションを受け取り(receive)、該受け取ったコントリビューションの演算およびプリミティブを順序づけ、該演算およびプリミティブの順序づけられたシーケンスを前記履歴ベースのシステムに提供するように適合されたシード構造と、
(d)前記文法により前記シード構造を編集するエディタ(editor)と、
を有する、システムである。
(a)プリミティブ(primitive)および演算(operation)によるストレージフォーマット(storage format)を有する履歴ベースの設計システム(history-based design system)であって、前記部品または部品のアセンブリは、前記履歴ベースの設計システムにおいて、演算およびプリミティブの順序づけられたシーケンス(ordered sequence)によって定義(define)される履歴ベースの設計システムと、
(b)少なくとも2つの機能フィーチャ(functional feature)であって、それぞれの機能フィーチャは1組の仕様(specification)を提供することによりエンドユーザによってインスタンス化(instantiate)されるように適合(adapt)され、該インスタンス化された機能フィーチャは、少なくとも1つのコントリビューション(contribution)を提供し、該コントリビューションは、前記履歴ベースの設計システムにおける演算およびプリミティブの順序づけられたシーケンスである、少なくとも2つの機能フィーチャと、
(c)文脈自由文法(context-free grammar)を用いて定義(define)されるシード構造(seed structure)であって、該シード構造は、前記インスタンス化された機能フィーチャ(instantiated functional feature)から前記コントリビューションを受け取り(receive)、該受け取ったコントリビューションの演算およびプリミティブを順序づけ、該演算およびプリミティブの順序づけられたシーケンスを前記履歴ベースのシステムに提供するように適合されたシード構造と、
(d)前記文法により前記シード構造を編集するエディタ(editor)と、
を有する、システムである。
前記演算(operation)は、可換演算(commutative operation)および非可換演算(non-commutative operation)を含み、前記シード構造は、前記コントリビューションを受け取るように適合された入力(input)を有し、前記シード構造は、各入力において受け取られた前記コントリビューションに対して前記可換演算を適用し、前記コントリビューションに対して適用された前記可換演算の結果に、前記可換演算または前記非可換演算を適用するように適合される。
前記シード構造は、前記文脈自由文法において、非循環指向グラフ(acyclic oriented graph)として表される。
前記シード構造はバイナリツリー(binary tree)、あるいは、非バイナリツリー(non-binary tree)とすることができる。
前記文脈自由文法の終端アルファベット(terminal alphabet)は、少なくとも1つのソリッド(solid)、ユニオン(union)、インターセクション(intersection)およびサブトラクション(subtraction)を含むことができる。前記終端アルファベットは、さらに、並置(juxtaposition)を含むことができる。
ある実施形態において、前記文脈自由文法の前記終端アルファベットは、少なくとも1つの曲線(curve)、少なくとも1つの面(surface)、および再限定(relimitation)を含む。
本発明は、また、部品、または部品のアセンブリを設計するための履歴フリーシステム(history-free system)を提供する方法であって、
(a)プリミティブおよび演算によるストレージフォーマットを有する履歴ベースの設計システムを提供するステップであって、前記部品または部品のアセンブリは、前記履歴ベースの設計システムにおいて、演算およびプリミティブの順序づけられたシーケンスによって定義されるステップと、
(b)少なくとも2つの機能フィーチャを提供するステップであって、それぞれの機能フィーチャは1組の仕様を提供することによりエンドユーザによってインスタンス化されるように適合され、該インスタンス化された機能フィーチャは、少なくとも1つのコントリビューションを提供し、該コントリビューションは、前記履歴ベースの設計システムにおける演算およびプリミティブの順序づけられたシーケンスであるステップと、
(c)文脈自由文法を用いてシード構造を定義するステップであって、該シード構造は、前記インスタンス化された機能フィーチャから前記コントリビューションを受け取り、該受け取ったコントリビューションの演算およびプリミティブを順序づけ、該演算およびプリミティブの順序づけられたシーケンスを前記履歴ベースのシステムに提供するように適合されたステップと、
を有する方法を提供する。
(a)プリミティブおよび演算によるストレージフォーマットを有する履歴ベースの設計システムを提供するステップであって、前記部品または部品のアセンブリは、前記履歴ベースの設計システムにおいて、演算およびプリミティブの順序づけられたシーケンスによって定義されるステップと、
(b)少なくとも2つの機能フィーチャを提供するステップであって、それぞれの機能フィーチャは1組の仕様を提供することによりエンドユーザによってインスタンス化されるように適合され、該インスタンス化された機能フィーチャは、少なくとも1つのコントリビューションを提供し、該コントリビューションは、前記履歴ベースの設計システムにおける演算およびプリミティブの順序づけられたシーケンスであるステップと、
(c)文脈自由文法を用いてシード構造を定義するステップであって、該シード構造は、前記インスタンス化された機能フィーチャから前記コントリビューションを受け取り、該受け取ったコントリビューションの演算およびプリミティブを順序づけ、該演算およびプリミティブの順序づけられたシーケンスを前記履歴ベースのシステムに提供するように適合されたステップと、
を有する方法を提供する。
ある実施形態において、前記演算は、可換演算および非可換演算を含み、前記シード構造を定義するステップは、前記コントリビューションを受け取るように適合された入力を有し、前記シード構造は、各入力において受け取られた前記コントリビューションに対して前記可換演算を適用し、前記コントリビューションに対して適用された前記可換演算の結果に、前記可換演算または前記非可換演算を適用するように適合される。
前記文脈自由文法を用いてシード構造を定義するステップにおいて、前記シード構造は、非循環指向グラフとして表される。
前記文脈自由文法を用いてシード構造を定義するステップにおいて、前記シード構造は、バイナリツリーあるいは非バイナリツリーとすることができる。
本発明を適用したコンピュータ支援設計システム(computer-aided design system)について、添付の図面を参照して、非限定的な例を以下に説明する。
これ以降、本明細書では、「部品(part)」または「部品のアセンブリ(assembly of parts)」という言葉は、コンピュータ支援設計システムにおいてモデリングされる、すなわち設計されるオブジェクト(object)を示すのに使われる。
図5を参照して、本発明によるシステムの全体構造を説明する。
図6および図7を参照して、文脈自由文法に関して説明を行う。
本発明の第1の実施形態は、図8〜図18を参照して説明する。本発明は、薄型ソリッド(thin solid)のモデリングに適用される。
本発明の第2の実施形態は、図19〜図20を参照して説明する。本発明は、対応するモールドを有する薄型ソリッドの並行モデリング(the concurrent modeling of thin solids with the corresponding moulds)に適用される。
本発明の第3の実施形態は、図21〜図30および図35を参照して説明する。シード構造を非バイナリツリーで表すことを可能にする一般的な文脈自由文法が開示される。
最後に、本発明の第4の実施形態として、図31〜図34を参照して説明する。本実施形態は、境界表現(B-rep)エバリュエータ(evaluator)内での、モデリングされたオブジェクトの高速評価を可能にする。
本発明は、CADシステムのユーザが、フィーチャ順序(feature order)を気にすることなく、部品、または部品のアセンブリを設計することを可能にする。本質的に、本発明によって提供されるシステムは、履歴フリー型設計システムである。ただし、このシステムは、履歴ベースの設計システムを含み、したがって、上述したように履歴ベースのシステムの利点をもたらす。したがって、本発明によるシステムは、ユーザの設計意図を取り込み、事後変更を可能にする。
このことは、システムにおいて、以下のものを提供することによって実現される。
−履歴ベースの、または履歴従属型のコンピュータ支援設計システム;
−エンドユーザによってアクセスされインスタンス化される1組の機能フィーチャ。
−シード構造。
−履歴ベースの、または履歴従属型のコンピュータ支援設計システム;
−エンドユーザによってアクセスされインスタンス化される1組の機能フィーチャ。
−シード構造。
履歴ベースの設計システムでは、モデリングされたオブジェクトは、演算およびプリミティブの順序づけられたシーケンスによって定義される。このシステムは、このような順序づけられたシーケンスの形で、データを受け取るように適合される。ソリッドオブジェクトのモデリングに適合された設計システムにおけるプリミティブ、すなわちブロックの例が、図1〜図3を参照して与えられる。演算の例は、たとえば、図1の2つのブロックに適用されるような組立てや、たとえば図2および図3の様々な段階で適用されるようなカットを含む。シーケンス中の順序の重要性は、図1〜3図を参照して例示される。このような履歴ベースの設計システムは、当業者に公知であり、上で言及したCATIAシステムを含む。このようなシステムにおいて使用可能なプリミティブおよび演算も、当業者に公知である。
履歴ベースのシステムは、図5の40で表されており、これ以上は詳述しない。このシステム40は、本明細書ではこれ以降、「コアシステム(core system)」とも呼ばれ、プリミティブ(primitive)および演算(operation)の順序づけられたシーケンス(ordered sequence)を受け取るように適合されるというだけで十分である。システム40は、次いで、受け取ったシーケンスを評価して、モデリングされたオブジェクトを計算し、モデリングされたオブジェクトをユーザに表示し、シーケンスを格納し、または、受け取った、順序づけられたシーケンスのどのような追加処理も提供することができる。このシステムにおいて、境界表現タイプエバリュエータ(B-rep type evaluator)を使うことができる。境界表現タイプエバリュエータとは、入力されたソリッドの境界記述から、得られたソリッドの境界記述を計算する、幾何学的、かつトポロジカルなアルゴリズムである。
本発明を適用したシステム42は、履歴フリー型であり、宣言的である。システム42は、エンドユーザインターフェース44を備える。このインターフェースは、機能フィーチャの組から機能フィーチャを選択し、選択された機能フィーチャを、パラメータを用いてインスタンス化(instantiate)する機能を、エンドユーザに提供する。このことは、図5において、エンドユーザインターフェース44に入力されるパラメータ46および選択された機能フィーチャ48で概略的に表される。機能フィーチャは、対象となっている分野に適した設計機能を表す。たとえば、設計システムが、ソリッドの設計に適用される場合、機能フィーチャは、ハウジング、スルーホール、ブラインドホールを含むことができる。機能フィーチャの他の例は、後で論じられる。所与の機能フィーチャが、選択された機能フィーチャに関連したパラメータまたは値を与えることによって、インスタンス化されることができる。たとえば、ハウジングは、プロファイル、高さおよび厚さというパラメータを与えることによってインスタンス化(instantiate)されることができる。スルーホールは、位置決め点、軸および直径を与えることによってインスタンス化されることができる。ブラインドホールは、位置決め点、軸および直径、ならびに深さを与えることによってインスタンス化されることができる。後で論じられるように、機能フィーチャの組は、エキスパートユーザによって適合されることができる。
ユーザインターフェース44は、コントリビューション50を出力し、コントリビューション50は、シード構造52に与えられる。コントリビューションは、後で詳しく論じられる。本質的に、エンドユーザインターフェース44への、インスタンス化された機能フィーチャの入力(instantiated functional feature input)は、インターフェース44による少なくとも1つのコントリビューション出力(contribution output)をもたらす。このコントリビューションとは、コアシステム(core system)におけるプリミティブおよび演算の順序づけられたシーケンス(ordered sequence)である。コントリビューションは、後で論じられるように、シード構造(seed structure)の所与の入力において与えられる。
コントリビューションは、シード構造52に与えられる。シード構造は、コントリビューションを受け取り、受け取ったコントリビューションに基づいて、コアシステム40にデータフロー54をもたらす。データフロー54は、プリミティブおよび演算の順序づけられたシーケンスであり、コアシステムによって処理されるように適合される。より詳細には、シード構造は、コントリビューションを受け取り、コントリビューションに演算を適用すること、または追加のプリミティブを加えることによって、こうしたコントリビューションを処理する。シード構造は、所与のコントリビューションを分離することも、区切ることもしない。言い換えると、シード構造に入力された所与のコントリビューションは、シード構造によって提供された、得られたシーケンス中に見いだされる。
シード構造は、コントリビューションが受け取られる順序が、シード構造によって出力される結果、またはより具体的には、コアシステムによるこの結果の評価を変えないように構築される。シード構造のこのプロパティは、以下の理由により保証される。
−シード構造にコントリビューションを与えるのに用いられる規則が可換的である;
−各コントリビューションが、シード構造によってそのままの状態に保たれる。
−シード構造にコントリビューションを与えるのに用いられる規則が可換的である;
−各コントリビューションが、シード構造によってそのままの状態に保たれる。
本質的に、エンドユーザは、可換的であると思われるツール、すなわち機能フィーチャを提供される。機能フィーチャは、したがって、エンドユーザによって、どの順序でもインスタンス化されることができる。非可換演算は、コントリビューション中に含まれるか、またはシード構造によって実行される。コントリビューションは、シード構造において分割されることも区切られることもないので、コントリビューション中のプリミティブおよび演算の順序は、設計システムによって修正されない。シード構造における順序づけはユーザ依存ではないので、シード構造における非可換演算は、ユーザ依存でない結果をもたらす。
さらに、本システムは、図5の56で概略的に表される、シード構造を編集するエディタを提供する。このエディタは、エキスパートユーザが、シード構造を修正し、設計システムが使用される所与の技術分野の特定要件にシード構造を適合させることを可能にする。シード構造は、文脈自由文法で定義され、この文法で編集されることができる。この文法の構文規則を守ることは、シード構造が、様々なコントリビューションを順序づけるプロパティを常に保持して、機能フィーチャがエンドユーザによってインスタンス化される順序に関わらず、コアシステム40における出力データフローの同一評価をもたらすことを保証する。
本発明の好ましい使用において、エキスパートユーザは、能力の高い設計者である。エキスパートユーザは、当該技術分野(航空宇宙用板金加工、航空宇宙用機械加工部品、自動車駆動機構など)、ならびにCADシステムの動作および制限(多様体(manifold solid)または非多様体、線形CSG(Constructive Solid Geometry)構造、バランスCSG構造など)を熟知している。エンドユーザは、機械設計者であり、様々な機能フィーチャを提供される。コンピュータシステムにおいてユーザに権利が与えられることができる方法は、当業者に公知であり、これ以上詳述されない。
図5の矢印58で示されるように、エディタは、エキスパートユーザが、たとえば新しい機能フィーチャを追加するために、機能フィーチャの組を変更することも可能にし得る。
システム42は、エンドユーザの視点から見ると、オブジェクトの容易なモデリングを可能にするという利点をもつ。第1に、オブジェクトのモデリングを容易にする、当該分野に適合された機能フィーチャが提供される。第2に、機能フィーチャがインスタンス化される順序は、その結果生じる、モデリングされたオブジェクトに関連しない。
システム42は、シード構造を編集することによって、当該分野に容易に適合されるというさらなる利点をもつ。この利点は、様々な技術分野に同じ設計システムを使うことを可能にし、エキスパートユーザが、システムをカスタマイズすることを可能にする。シード構造のいくつかの例は、後で明らかにされる。図8〜図15の例において、シード構造は、薄型プラスチック部品の設計に適合される。図16〜図17の例において、シード構造は、同時に上側モールドおよび下側モールドを設計することを可能にする。説明はさらに、モデリングされたオブジェクトの評価を最適化するように適合されたシード構造の図27〜図30を参照して、暫定的な結果が格納される場合の例を与える。コアシステムの能力に従って、シード構造は適合されることができる。
エディタは、既存のシード構造を、コアシステムの能力に従ってより効率的にさせるように、その機能を変えることなく適合させることを可能にする。エディタは、所与のアプリケーションにおいてシード構造の性能を向上させることも可能にする。たとえば、エディタは、後で例示されるように、ソリッドに対して、ソリッドコンポーネントおよびそのモールドを並行して設計することを可能にする。エディタは、アセンブリの対応する要素、たとえば結合によってハウジングを形成する2つの部品を同時に設計することを可能にする。エディタは、エキスパートユーザが、所与のアプリケーションに適合されたシード構造を作成することも可能にする。たとえば、艦船製造では、壁、開口部、強化部材が、特定の再限定と組み合わされる。シード構造は、この分野で用いられる設計方法を取り込むエディタにおいて設計されることができる。より一般的には、CADシステムにおいて用いられるどの設計工程も、シード構造およびそれに関連づけられた機能フィーチャに取り込まれることができる。
さらに、後で論じられるように、エディタは、エキスパートユーザが、既存の機能フィーチャを修正することも、新しい機能フィーチャを作成することも可能にし得る。
本発明を適用したシステムはさらに、コンカレントエンジニアリング(concurrent engineering)を可能にする。コンカレントエンジニアリングは、共有部品またはアセンブリに同時に取り組む数人の設計者を調整する技術である。各設計者は、(共有)部品を変更することになっており、他の設計者による変更点を受け取るようにもなっている。重要な点は、変更を調和することである。このことは、従来技術のシステムでは、各設計者による変更が実行される順序が、その結果生じる、モデリングされたオブジェクトに影響し得るので、問題となる。本発明における、設計変更の間の順序への非依存は、各設計者によって実行される変更または追加の直接併合を可能にする。
本発明の実施形態を詳述する前に、文脈自由文法について簡潔に説明する。文脈自由文法に関する詳細は、たとえば、非特許文献1に見られることができる。この参照文献は、文脈自由文法を論じているが、このような文法をコンピュータ支援設計システムにおいて使うための提案を行っていない。
文脈自由文法Gは、G=(X,V,P)によって定義され、この式において、Xは1組の終端記号であり、Vは1組の非終端記号(non-terminal symbol)であり、Pは1組の規則(rule)である。規則とは、(S,m)という一対であり、第1のオブジェクトは非終端記号であり、第2のオブジェクトは、終端記号および非終端記号からなる文字列である。より正確には、Pは、V×(X∪V)*の部分集合である。規則は、
のようにも書き表される。言い換えると、規則は、非終端記号を終端記号および非終端記号からなる文字列に変える。文脈自由文法を使うことは、ワードを明確な構文で再帰的に作成することを可能にし、また、アルゴリズムに、こうしたワードを走査させ、構文を調べさせ、計算を開始させる。この点において、非終端記号の機能は、ある機能のおかげで、終端記号および非終端記号からなる文字列によって置き換えられることになる。ここで、文法における一連の記号は、ワードと呼ばれる。
シード構造52は、文脈自由文法で定義され編集される。このように、シード構造は、文脈自由文法ではワードに過ぎない。文脈自由文法は、シード構造を定義する、形式的で厳密な環境を最初に提供する。エディタ56で編集されたシード構造の構文を調べることは、エンドユーザが構文規則に違反しないようにすることを可能にする。このことは、システム42が使われる分野から完全に独立している。
文脈自由文法の使用は、再帰関数を使うことによって、シード構造にコントリビューションを入力することを容易にする。具体的には、シード構造は、いくつかの終端記号および非終端記号を含むワードであり、こうした記号は、シード構造にコントリビューションを与えるために使われる。非終端記号は、シード構造への「入力(input)」として理解されることができ、終端記号は、オブジェクト(この例ではソリッドオブジェクト)を組み合わせる演算を指定するのに使われる。この点において、シード構造にコントリビューションを与えることは、シード構造の非終端記号をコントリビューションで置き換えるだけで実行されることができる。コントリビューションをワードであると仮定すると、シード構造にコントリビューションを与えることは、所与の文法規則に過ぎない。再帰性、すなわちシード構造に任意の数のコントリビューションを与える能力を保証するためには、シード構造の非終端記号を、コントリビューションだけでなく、置き換えられる非終端記号も含むシーケンスで置き換えることによって、シード構造にコントリビューションを与えるだけで十分である。これ以降本明細書では、置き換えられた非終端記号が置換え文字列に出現する規則は、置換(substitution)と呼ばれる。この置換の定義を使って、コントリビューションが、シード構造の非終端記号を、非終端記号およびコントリビューションを含むワードに変える置換を用いることによって、シード構造に与えられる。このことは、その結果生じるワードが非終端記号を依然として含むことを保証し、その非終端記号には、追加コントリビューションが再度与えられることができる。このことはさらに、シード構造の構造が、コントリビューションの入力を通じて保たれることを保証する。
文脈自由文法を使うとさらに、エキスパートユーザが、システム42が相変わらず宣言的であることを保証することが容易になる。コントリビューションがシード構造に与えられることを可能にする置換規則が、相変わらず可換的であることを調べるだけで十分である。
次に、本発明において使われる最も単純な文脈自由文法が、図6および7を参照して論じられる。この文法は、以下のように定義される。
記号aは、第1の終端記号であり、コントリビューションによる、またはコアシステムの、プリミティブおよび演算の順序づけられたシーケンスによる実施形態において定義されるどのソリッドも表す。記号φは、第2の終端記号であり、ユニオン(+)、サブトラクション(−)およびインターセクション(.)という演算など、どの演算も表す。非終端記号Sは、規則の組Pに含まれる規則を用いて、一連の非終端記号および終端記号によって置き換えられることができる。具体的には、第1の規則
は、非終端記号Sを、2つの非終端記号の間の演算φの結果で置き換える。この結果はSSφと記され、SφSをより簡略に表しているに過ぎない。ツリーに関していうと、第1の演算は、ツリーのリーフSを、2つの分岐をもつノードで置き換える。このノードは、分岐の終端にある2つの非終端記号に対する演算φの結果である。第2の演算
は、非終端記号を終端記号で置き換え、通常、所与の値、すなわち終端記号がツリーのリーフに適用されるべきときに使われる。
この文法を使って作成されたワードの構文は、図6に表されるプッシュダウンオートマトンによって調べられることができる。この図において、状態1は初期状況であり、状態2は最終状況である。オートマトンが、最後の記号を読んだ後に最終状況に到達した場合、構文は正しい。そうでない場合、構文は正しくない。形式言語の当業者であれば、文法におけるどのワードの構文も容易に調べられることができることが理解されよう。
図7は、この文脈自由文法で符号化されたバイナリツリーの例である。このツリーは、ワードabc+d−−によって符号化され、このワードは、a−((b+c)−d)を簡略に表している。このツリーは、文法規則の以下のシーケンスを介して作成される。
言い換えると、ツリーは、非終端記号Sから始まる。第1の演算は、非終端記号を、ルートにa−演算がある2つの分岐60および62をもつツリーで置き換えるために適用される。第2の演算は、ツリーの第1の分岐60のリーフにある非終端記号Sを終端記号aで置き換えるために適用される。第1の演算は次いで、分岐62のリーフにある残りの非終端記号に適用され、この非終端記号は、ルートにa−演算がある2つの分岐64、66をもつツリーで置き換えられる。第2の演算は、ツリーの分岐66のリーフにある非終端記号Sを終端記号dで置き換えるために適用される。第1の演算は次いで、分岐64のリーフにある非終端記号に適用され、この非終端記号は、ルートにa+演算がある2つの分岐68、70をもつツリーで置き換えられる。第2の演算は、分岐68、70のリーフにある非終端記号Sを終端記号bおよびcで置き換えるために、二度適用される。図7の例において、Sのすべてのインスタンスがツリーまたは終端記号で置き換えられたので、非終端記号Sはこれ以上現れない。図7の記述において、記号aは、終端記号を記述するために使われる。終端記号は、可能なソリッドa、b、cおよびdの1つとしても使われる。
図8〜図18は、本発明の第1の実施形態における設計システムを例示する。この第1の実施形態におけるシード構造は、バイナリツリーとして表される。説明のために、設計システムは、薄型ソリッド、たとえば射出成形によるプラスチック部品の設計に適用される。2つの機能フィーチャが提供される。第1の機能フィーチャは薄型ブロックであり、第2の機能フィーチャは取付け部分である。
図8は、この例におけるシード構造の概略図である。図8のシード構造は、薄型ソリッドが2つのソリッドのサブトラクションによって構造化されることを考慮して導出される。第1のソリッドは薄型ソリッドの外部形状であり、第2のソリッドは薄型ソリッドの内部形状である。薄型ソリッドに対する機械機能は、以下の5つの基本演算に分解することができる。
−外部形状に材料を追加する、
−外部形状から材料を取り除く、
−内部形状に材料を追加する、
−内部形状から材料を取り除く、
−全体形状から材料を取り除くことによって、全体形状が二度と材料で満たされることができないようにする。
−外部形状に材料を追加する、
−外部形状から材料を取り除く、
−内部形状に材料を追加する、
−内部形状から材料を取り除く、
−全体形状から材料を取り除くことによって、全体形状が二度と材料で満たされることができないようにする。
シード構造は、基本演算が以下の順序で実行されることを表す。
−外部形状に材料を追加し、外部形状から材料を取り除くことによって、外部形状を定義する、
−内部形状に材料を追加し、内部形状から材料を取り除くことによって、内部形状を定義する、
−外部形状から内部形状を取り除く、
−全体形状から材料を取り除くことによって、全体形状が二度と材料で満たされることができないようにする。
−外部形状に材料を追加し、外部形状から材料を取り除くことによって、外部形状を定義する、
−内部形状に材料を追加し、内部形状から材料を取り除くことによって、内部形状を定義する、
−外部形状から内部形状を取り除く、
−全体形状から材料を取り除くことによって、全体形状が二度と材料で満たされることができないようにする。
演算をこの順序で用いると、生じるソリッドが常に同じものになる。
シード構造は、以下の文脈自由文法G0=(X,V,P)で定義されることができ、この式では、以下のようになる。
この文脈自由文法は、図6および図7を参照して開示された文法を精密にしたバージョンである。上記のように、第1の終端記号aは、どのソリッドも表す。第2、第3および第4の終端記号+、−、・はそれぞれ、ユニオン、サブトラクションおよびインターセクションを表す。第1の非終端記号Sは、総称的である。非終端記号e+、e−、i+、i−およびuは、上に列挙した5つの演算においてコントリビューションの入力を表すために、便宜上使われる。こうした非終端記号は、「ハンドル(handle)」とみなすことができる。具体的には、非終端記号e+は、外部形状に材料を追加するために使われる、などである。非終端記号e+、e−、i+、i−およびuの幾何学的な評価は空集合であるので、シード構造の幾何学形状は空集合である。このことは、バイナリツリーにおける実際のソリッドとの共存を可能にする。言い換えると、非終端記号e+、e−、i+、i−およびuは、シード構造の出力で提供された、順序づけられたシーケンスに残ることができ、このことは、取得されたソリッドに対してどのような因果関係ももたない。
形式文法(formal grammar)における第1の演算(first operation)は、シード構造を提供することである。一般的な記号Sは、e+e−−i+i−−−u−と書き表される、図8のシード構造で置き換えられる。シード構造を形成するツリーのリーフは、記号「e+」、「e−」、「i+」、「i−」および「u」である。こうしたリーフ(leaves)は、上で論じられた5つの演算に、上で与えられた順序で対応する。シード構造において、記号「−」は、サブトラクション(subtraction)を表す。ツリー構造は、次のように説明されることができる。ツリーのノード80において、外部形状から取り除かれた材料(リーフe−)は、外部形状に追加された材料(リーフe+)からサブトラクションされる。結果は、簡潔な表現でe+e−−と記される。グラフのノード82において、内部形状から取り除かれた材料(リーフi−)は、内部形状に追加された材料(リーフi+)からサブトラクションされる。結果は、やはりi+i−−と記されることができる。グラフのノード84において、ノード82の結果i+i−−は、ノード80の結果e+e−−からサブトラクションされ、したがって、簡潔な表現でe+e−−i+i−−−と記される結果につながる。実際に、このことは、外部形状から薄型ソリッドの内部形状をサブトラクションすることと同等である。ツリールートである、グラフのノード86において、全体形状から取り除かれるべき材料は、ノード84の結果からサブトラクションされる。このことは、e+e−−i+i−−−u−と記される。
第2の組の演算は、置換演算を含み、置換演算はそれぞれ、非終端記号の1つを、コントリビューションおよび置き換えられる非終端記号を含むシーケンスで置き換えることである。「ハンドル」に少なくとも1つの置換を適用すると、モデリングされたオブジェクトをもたらす。
上述したように、置換は、シード構造を保存するという第1のプロパティを有し、シード構造では、さらにコントリビューションが与えられることを可能にするために、置換が適用された後でも、置き換えられた非終端記号が使用可能である。さらに、置換は、どの順序でコントリビューションが与えられても、その結果生じる、モデリングされたオブジェクトを変えないという第2のプロパティを有する。たとえば、
e+b+c+e−−i+i−−−u−
は、材料bおよびcをこの順序で外部形状に追加することによって取得される。モデリングされたオブジェクトは、
e+c+b+e−−i+i−−−u−
と同じであり、これは、材料cおよびbを、この順序で外部形状に追加することによって取得される。したがって、第2の組の演算、すなわち置換が可換的であるおかげで、機能フィーチャは、どの順序でもインスタンス化されることができる。その結果得られるソリッドは、機能フィーチャがインスタンス化される順序に依存しない。
e+b+c+e−−i+i−−−u−
は、材料bおよびcをこの順序で外部形状に追加することによって取得される。モデリングされたオブジェクトは、
e+c+b+e−−i+i−−−u−
と同じであり、これは、材料cおよびbを、この順序で外部形状に追加することによって取得される。したがって、第2の組の演算、すなわち置換が可換的であるおかげで、機能フィーチャは、どの順序でもインスタンス化されることができる。その結果得られるソリッドは、機能フィーチャがインスタンス化される順序に依存しない。
上述したように、図8の例示的なシード構造は、エキスパートユーザによって修正されることができる。修正されたシード構造の例が、以下に挙げられる。シード構造を修正するために、以下の文法G1を使うことができる。
この文法は、実際には、上で定義されたように文法G0を「含み(include)」、「メタ文法(meta-grammar)」を表す。このメタ文法は、どのシード構造を定義することも可能にする。文法G0と反対に、文法G0は、システムが相変わらず宣言的であることを保証しない。実際、文法G1は、非可換的な置換を定義することを可能にする。文法G1は、エキスパートユーザによって修正または作成されたシード構造の構文を調べるために使われることができる。このことは、上で論じられたシード構造(e+e−−i+i−−−u−)を別のシード構造に変えることを可能にする。文法G0、またはその修正版は、可換的な置換を使用し、システム全体が宣言的であり履歴フリー(history-free)であることを保証する。
図9〜図18は、図8のシード構造および様々な機能フィーチャを用いて取得される、モデリングされたオブジェクトの例を示す。この例において用いられる第1の機能フィーチャは、基本となる薄型ブロックである。このブロックは、平面プロファイルおよび突出の長さによって定義される。厚さは、設計において機械部品に付与された、予め定義された値である。各機能フィーチャは、その値を再定義しない。この規定は、薄型プラスチック部品の設計に有利であるが、規定なしでも設計されることができる。所与のオブジェクトに対して厚さが定義されると仮定すると、機能フィーチャは、プロファイルおよび突出の長さを提供することによって、エンドユーザによって実施することができる。
慣例により、この例では、底面は、デフォルトの開放面である。したがって、この薄型ブロックは、入力データ、すなわちプロファイル、高さおよび厚さから容易に作成される2つの突出ソリッドAおよびBによって定義される。突出ソリッドAは、リーフe+に与えられたコントリビューションである、外部形状に追加された材料を表す。突出ソリッドBは、リーフi+に与えられたコントリビューションである、シード構造において内部形状に追加され、内部形状から取り除かれる材料を表す。コントリビューションAおよびBは、ユーザによって提供された情報に基づいて、エンドユーザインターフェース44によって定義される。
図9は、コントリビューションAおよびBを示す。コントリビューションAは、平面プロファイルに対応する外側形状と、突出部分の長さに対応する長さLとを有するソリッドである。コントリビューションBは、平面プロファイルに対応する外側形状を有し、予め定義された厚さおよび同じ長さLを引いたソリッドである。論じられたように、コントリビューションAは、演算
を用いて、リーフe+に与えられ、コントリビューションBは、演算
を用いて、リーフi+に与えられる。したがって、シード構造から開始して、薄型ブロックを作成すると、図10のツリーに等価なワードe+A+e−−i+B+i−−−u−を生じる。このツリーは、履歴ベースのシステムにおける標準エバリュエータを介して、図11のモデリングされたオブジェクトを生じさせる。この評価中、エバリュエータにおいて、A+e+=AかつB+i+=Bであることに留意されたい。
機能フィーチャのこの第1の例は、シード構造のエントリに与えられたコントリビューションが、ユーザの様々な入力に基づいて定義されることを明確にする。エンドユーザは、様々なコントリビューションに関心をもつ必要はない。エンドユーザの唯一の入力は、機能フィーチャ、およびこうした機能フィーチャのパラメータに関する。
この例において用いられる第2の機能フィーチャは、図12で表される取付け部分フィーチャである。このフィーチャは、空間中の点、方向およびホールタイプによって定義される。こうした様々なパラメータは、機能フィーチャを実施する際に、エンドユーザによって入力される。やはり、所与のモデリングされたオブジェクトに対して厚さが固定されると仮定され、固定されていない場合、厚さは追加パラメータとなり得る。空間中の点、および方向を定義するために、従来技術において論じられている方法、たとえば特許文献2で論じられているようなデータ面(datum plane)などを使うことができる。
この取付け部分の機能フィーチャは、穿設された円形ブロック、および適切な空間確保を部品に追加し、そうすることによって、組立てが容易になる。その結果、取付け部分は、図12においてC、D、E、FおよびGで参照される、いくつかのコントリビューションとなる。コントリビューションは、エンドユーザによって入力された機能フィーチャのパラメータに従って定義される。
第1のコントリビューションは、外部形状から材料を取り除く。この材料は、図12でCと記され、このコントリビューションは、関数
を用いて、シード構造のリーフe−に与えられる。コントリビューションCは、実際に外部形状から円錐部分を取り除き、図12の上部から、コントリビューションFの上側ディスクまで伸びる。第2のコントリビューションDおよび第3のコントリビューションEは、内部形状から材料を取り除く。こうしたコントリビューションは、関数
および
を用いて、シード構造のリーフi−に与えられる。この段階で、第2および第3のコントリビューションが与えられる順序は、その結果生じる、モデリングされたオブジェクトにとって重要でないことに留意されたい。第4のコントリビューションFは、関数
を用いて、リーフe+において外部形状に材料を追加する。第5のコントリビューションGは、関数
を用いて、穿設された領域を永久に取り除く。定義により、穿設された領域は、どの場合でも材料で満たされることができない。uという記号の役割は、このプロパティを取り込むことである。
現在の部品上に作成された取付け部分は、更新されたワードe+F+A+e−C+−i+B+i−E+D+−−uG+−となる。このワードは、図13で表されるバイナリCSGツリーと等価である。モデリングされた対応するオブジェクトは、図14にに示してある。やはり、様々なコントリビューションがシード構造のリーフに与えられる順序は、評価されるモデリングされたオブジェクトと関係しないことに留意されたい。言い換えると、以下のワードe+A+F+e−C+−i+B+i−D+E+−−uG+−は、履歴ベースの設計システムにおいて評価されると、モデリングされた同一のオブジェクトをもたらす。
機械機能と関連する基本ソリッドの間のリンクを維持するために、追加データ構造を使うことができる。この例では、薄型ソリッドフィーチャとコントリビューションAおよびBとの間にリンクがあり得る。取付け部分フィーチャとコントリビューションC、D、E、FおよびGとの間にもリンクがある。このことは、エンドユーザが、いくつかのコントリビューション、たとえばコントリビューションAおよびBが実際に、所与の機能フィーチャのインスタンス化から生じることを維持することを可能にする。機能フィーチャに対する修正は次いで、影響を受ける様々なコントリビューションを変えることになる。
図11の薄型ソリッドおよび図12の取付け部分の例において、インスタンス化された(instantiated)様々な機能フィーチャの間には依存関係(dependency)がないことにも留意されたい。システム側から見ると、取付け部分は、薄型ソリッドなしで存在することができる。薄型ソリッドは、削除されることができる。この部品は、構文的、およびトポロジカルな観点から、依然として有効である。このことは、図15から図17に例示されている。図15および図16において、取付け部分は、ソリッドの中央にインスタンス化される。斜視図15は、取付け部分を有する、結果である薄型ソリッドの内側を示す。この図は、外側形状に追加されたコントリビューションF、および内部形状から取り除かれたコントリビューションDを示す。図15における、コントリビューションDとFの間の線は、判り易くするために表わしているに過ぎず、エバリュエータによって作成される、モデリングされたオブジェクトには存在しない。図16は、取付け部分を有する、結果として生じた薄型ソリッドの上側を示す。この図は、外部形状から取り除かれたコントリビューションCを示す。図17において、取付け部分は、薄型ソリッドの外側でインスタンス化される。したがって、コントリビューションC、DおよびEは、取り除くべき材料がない位置に与えられるので、どの材料も取り除かない。コントリビューションFは、図6の薄型ソリッドAとは別の円盤形で、外部形状に材料を追加する。コントリビューションGは、コントリビューションFとして追加された円盤から材料を取り除き、そうすることによって、その結果生じる取付け部分は単に、別個の、穿設された円盤となる。技術的な見地からは、薄型ソリッドの外側への材料の追加は、無意味になる場合がある。構文的またはトポロジカルな見地からは、結果として生じた、モデリングされたオブジェクトは正しい。こうした図の例は、取付け部分が、どの位置でも構文エラーなしでインスタンス化されることができることを示す。その結果生じるオブジェクトは、コアシステムによって常に評価されることができる。
さらに、ラウンド、フィレットおよびドラフトを、基本ソリッドに追加することができる。このことは、ラウンドされた(あるいはドラフトまたはフィレットされた)基本ソリッドが基本ソリッドのように動作するので、構文を変えない。こうした追加フィーチャのパラメータは、機能フィーチャ定義に含まれることができる。たとえば、ラウンドされドラフトされた薄型ソリッドは、図18に表される部品を生じる。
エキスパートユーザおよびエンドユーザの役割は、これまでの例を通して説明される。薄型プラスチック部品業界をよく知っているエキスパートユーザは、以下のものを設計する。
−シード構造;
−機能フィーチャ。
−シード構造;
−機能フィーチャ。
機能フィーチャはすべて、専用の「薄型プラスチック部品(thin plastic part)」ワークベンチにおいて、エンドユーザに利用可能となり得る。エンドユーザは、このワークベンチを開き、予め専用に定義された宣言的な機能フィーチャを使って、薄型部品を設計する。
図8〜図18に示した実施形態は、2つの機能フィーチャのみを提供する。より多くの機能フィーチャが、エキスパートユーザによって定義されることができる。たとえば、薄型プラスチックソリッドの例では、他のタイプの取付け部分を提供することができる。機能フィーチャは、一方では、機能フィーチャをインスタンス化するためにエンドユーザに提供されるパラメータ(群)を含む。他方では、機能フィーチャは、シード構造に与えられるべき様々なコントリビューションを含む。各コントリビューションは、エンドユーザによって入力されたパラメータに従って定義される。エキスパートユーザは、任意の数の機能フィーチャを定義することができる。
システムの動作は、図8〜図18に示してある。エキスパートユーザは最初に、シード構造および機能フィーチャを定義する。エンドユーザは、機能フィーチャの1つまたは複数をインスタンス化する。このインスタンス化は、図8、図10および図13に示すシード構造に与えられるコントリビューションという結果をもたらす。置換の再帰性のおかげで、新しいコントリビューションが、常に追加されることができる。いつでも、対応するワード(すなわち対応するツリー構造)は、履歴ベースの設計システムにおいて評価されることができる。エンドユーザにとって、システムは、履歴ベースであるとみえる。しかし、上述したように、機能フィーチャのいずれも、フィーチャがインスタンス化される順序からそれぞれ独立して修正されることができる。上述したように、このことは、コントリビューションがシード構造に与えられる順序が、モデリングされたオブジェクトと無関係となるように、シード構造およびコントリビューションが構築されるおかげである。
第2の実施形態は、図19および図20に示してある。本実施形態は、部品、およびこの部品用のモールドを同時に設計することを可能にする。図8〜図18のシード構造およびコントリビューションは、部品用に使われることができる。さらに、追加シード構造が、モールドの上三角行列および下三角行列用に提供される。
本実施形態における文脈自由文法は、図8〜図18を参照して論じた文脈自由文法に類似している。以下の追加終端記号および関数が提供される。
上三角行列および下三角行列用の開始形状が、UおよびLとして定義される。UおよびLは、例示した文脈自由文法において非終端記号であり、当然ながら、特定の機能フィーチャによって定義されることができる。こうした形状は、上三角行列Uおよび下三角行列Lを有する最も単純なモールドの例である。こうした行列の形状は、エンドユーザの責任、特に結合(join)サーフェス定義による。
P1およびP2における追加機能は、上三角行列Uおよび下三角行列用のシード構造を提供する。こうしたシード構造は、図19および図20に示してある。図19の、上三角行列用シード構造は、ワードU e+−e−+によって定義される。Uは、上三角行列の開始形状である。「ハンドル」e+、e−は、図8〜図18の実施形態の場合と同じ意味をもつ。図20の、下三角行列用シード構造は、ワードLi++i−−によって定義される。Lは、下三角行列用の開始形状であり、「ハンドル」i+およびi−は、上記の実施形態の場合と同じである。インスタンス化された機能フィーチャからのコントリビューションが、3つのツリーに同時に与えられる。
具体的には、薄型ソリッドが、図9〜図11を参照して上述したように定義されると仮定する。外部形状に対するコントリビューションAは、図10を参照して上述したように与えられる。コントリビューションAは、図19のツリーにも与えられ、ワードU A e++−e−+となる。言い換えると、薄型部品の外部形状は、上側モールドUから取り除かれる。内部形状に対するコントリビューションBは、図10を参照して上述したように与えられる。さらに、このコントリビューションは、図20のツリーに与えられ、ワードL B i+++i−−となる。このことは、薄型ソリッドの内部形状が下側モールドLに追加されることを意味する。この段階で、上側および下側モールドに追加用ワードまたはシード構造を提供するだけで、上側および下側モールドが部品そのものとして同時に定義されることが理解されよう。コントリビューションは、上で定義したものと同じであることが理解されよう。ただし、シード構造は、モデリングされたオブジェクト、上側モールドおよび下側モールド用に、3つの別個のワードを含む。
ここで、第2の機能フィーチャが、取付け部分を追加するためにインスタンス化されると仮定する。図19のツリーは、U A Fe+++−C e−++となり、図20のツリーは、L B i+++D i−+E+−となる。この例は、シード構造が、部品ならびに上側および下側モールドを並行して設計するために、いくつかのワードを含むことができることを示す。
したがって、部品の中での新しい機能フィーチャのインスタンス化は、上三角および下三角行列の形状を自動的に更新する。機械加工フィーチャがモールドのすぐ外の部品上に現れないので、uという非終端記号は、モールド構造に現れないことに留意されたい。
図19〜図20の例は、エキスパートユーザにシード構造を修正されることにより、このエキスパートユーザが設計システムを自分の要求に適合させること、を可能にすることを示す。
図21〜図29は、本発明の別の実施形態における設計システムを例示する。本実施形態におけるシステムは、非バイナリツリー(non-binary tree)を使用する。非バイナリツリーは、より単純でより短いシード構造の提供を可能にする。共通の非バイナリ文脈自由文法は、図21〜図24に示してある。特定の非バイナリ文脈自由文法を使うツリー構造の第1の例は、図24〜図26に示してある。非バイナリツリーの使用の第2の例は、図27および図28にしめしてある。図29は、非バイナリツリーを使って、図8〜図18と同じシード構造を開示している。
本実施形態では、以下の文脈自由文法を使用する。文法は、GT=(X,V,P)であり、この式で、以下が成り立つ。
終端記号aは、ツリーのどのノードも表す。終端記号δは、親ノードの下の子ノードの数をカウントする構文フィーチャであり、ツリーを構築するのに使われる。このレベルの抽象化では、オペランド記号と演算記号の間の区別がない。この指定(specialization)は、文法を使うアプリケーションによって行われる。このことは、終端記号の組が、上で挙げた例とは反対に、どの「演算」も含まないことを説明する。
非終端記号Sは、規則の組Pに含まれる規則を使って、一連の非終端記号および終端記号によって置き換えられることができる。非終端記号Tは、ツリーに分岐を追加し、終端記号δを使って、ツリー中の分岐をカウントするのに使われる。言い換えると、非終端記号Tは、ツリー中のどの場所でも、置換を許可することを可能にする。
第1の規則
は、非終端記号Sを、1つの分岐をもつツリーで置き換える。第2の規則
は、ツリーのノードSに1つの分岐を追加する。第3の規則
は、非終端記号を終端記号で置き換え、通常、ツリーのノードに所与の値、すなわち終端記号が与えられるべきときに使われる。第4の規則
は、非終端記号を1で置き換え、したがって、シード構造から非終端記号Tを削除する。この第4の規則は、所与のノードにこれ以上の分岐を追加する必要がないとき、特にツリーが完成されたときに使われる。
明らかに、どのバイナリツリーも、φをδ2φで置換することによって書き換えられる場合、この言語に従っている。この文法はしたがって、上で論じられた文法を包含する。
図21は、ワードahbcdδ3eδgδ3iによって符号化されたツリーに対する、この文法の使用を例示する。このツリーは、以下の一連の文法規則によって作成される。
図22は、この文法を用いて作成されたワードの構文を調べることができるオートマトンを示す。状態0は初期状態であり、状態1は最終状態である。
ツリーとワードの間の等価性は、動作をオートマトンの遷移に関連づけることによって、実証されることができる。2つのヒープ、すなわちH1およびH2が有用である。ヒープに対する標準演算、すなわちポップアップ(オブジェクトをヒープの一番上に置くこと)およびプッシュダウン(ヒープの一番上からオブジェクトを取ること)が利用可能である。遷移(p,a,q)に関連づけられた動作は、以下のようになる。
H2が空でないとき do begin
H2の一番上からyを取る。
ツリーに枝(y,a)を追加する。
エンド
H1の一番上にaを置く。
遷移(q,δ,p)に関連づけられた動作は、以下のようになる。
H1の一番上からyを取る。
H2の一番上にyを置く。
H2が空でないとき do begin
H2の一番上からyを取る。
ツリーに枝(y,a)を追加する。
エンド
H1の一番上にaを置く。
遷移(q,δ,p)に関連づけられた動作は、以下のようになる。
H1の一番上からyを取る。
H2の一番上にyを置く。
ワード全体が走査された後、ヒープH1は、ルートノードであるただ1つのオブジェクトを含むはずであり、ヒープH2は、空になるはずである。そうならない場合、構文は間違っている。図22のオートマトンはしたがって、文法におけるどのツリーの構文のチェックも可能にする。このようなオートマトンの使用はしたがって、エディタ内で、エキスパートユーザによって入力されたシード構造の構文を調べることを可能にする。
前述の文法は、以下の理由により、メタ言語を定義する。どの(文脈自由)文法も、いわゆる導出木において非終端記号、終端記号および規則を取り込むグラフによって記述されることができる。前述の文法は、どのツリーも記述するように設計されているので、それ自体を記述することができる。ツリー文法の導出木が、図23に表される。したがって、どのツリーも、この文脈自由文法で記述されることができる。エディタは、明確に設計された何らかの終端記号をもつ、このメタ言語も、この言語のより制限されたバージョンも使うことができる。共通メタ言語の使用は、設計システムの適合可能分野を増加させたが、能力の高いユーザによって行われるべき作業も増加させる。一方、言語の記号または演算をより明確に定義することは、能力の高いユーザがシード構造を書き、または修正することを助ける。
図21〜図23に示した文法は、さらに、指向非循環グラフ(directed acyclic graph)がどのループもサイクルも含まない場合、どの指向非循環グラフも包含することを可能にする。この拡張は、言語が、部品構造のデータフロー中の共有データ、共有入力または結果を処理することを可能にする。データはしたがって、設計システムにおいて共有されることができる。
図24は、モデリングされたオブジェクトのプロダクト(product)も構造も表すことができる指向非循環グラフである。このグラフは、共有ノードを必要な回数だけ複製することによって、ツリーに変えられることができる。その結果得られるツリーが、図25に表される。
共有(sharing)は、記号の繰返しを通して取り込まれる。開始グラフ(initial graph)は、2つのルートノード、すなわちiおよびjを特徴とするので、共有ノードを複製すると、それぞれワードaebcδ2ecdδ2fδ2hgδ4iおよびgfdδ3jによって符号化された2つのツリーが生じる。1組のツリーへの、非循環グラフの分解は、一義的でない。たとえば、前述のグラフは、図26のツリーおよび以下のワードになり得る。
abceδ2efhδ2gδ4i
gcdδ2fdδ3j
abceδ2efhδ2gδ4i
gcdδ2fdδ3j
このツリー分解の非一義性は、同じレベルの情報が取り込まれるので、障害にならない。可能なより優れたまたは最高の分解基準は、アプリケーションの責任である。
図24〜図26の例から、シード構造および得られるワードは、図19および20を参照して例示してあるように一義的でなくてよいことが理解されよう。
図27および図28は、図21〜図23の1つから導出された文法で定義された非バイナリツリーを用いるツリー構造を開示する。このツリーは、部品からなる複合アセンブリを設計するのに用いられ、主プロダクトの、そのコンポーネントへのトップダウン型の再帰的分解を取り込む。「・・・含む・・・(includes)」という意味的リンク(semantic link)が、本システムによって取り込まれる。プロダクトストラクチャ文法は、エキスパートユーザが、主プロダクトに追加されたどの装置も、適切な下位プロダクトを自動的に更新するような方法で、予め定義されたスケルトン構造を設計することを可能にする。プロダクトストラクチャコンテキストには、順序への依存がないことを留意されたい。追加される値は、構造定義であり、新しい装置の追加の容易さである。
ワードS1T1δaS2T2δbfT3δcδ3dは、図27で表される単純なツリー構造を取り込む。この構造には、タイプSおよびTという非終端記号が備えられている。こうした非終端記号には、理解しやすくするためにのみ、インデックスが与えられる。このツリーにおいて、dは部品のアセンブリまたは下位プロダクトa、bおよびcである。fは、下位プロダクトcのコンポーネントである。非バイナリ文法は、以下の演算により、コンポーネントeを下位プロダクトaに、かつコンポーネントgおよびhを下位プロダクトcに追加することを可能にする。
タイプTの記号は、
という置換を可能にし、上式においてxは終端記号であることに留意されたい。この置換は、以下のワードS1eT1δ2aS2T2δbfgT3δ3cδ3dおよび図28のツリーを生じる。前述の通り、非終端記号S1およびS2は、さらなる置換のために相変わらず使用可能である。
非バイナリツリーの使用はしたがって、追加されるコンポーネントの数に対する制限なく、所与のレベルでコンポーネントまたはコントリビューションを追加することをより容易にする。
非バイナリツリーは、図8〜図18に示したように、薄型ソリッドを対象としたシード構造用に使われることができる。形式文法は以下のようになる。
図8〜図18を参照して論じた文法と比較すると、この文法は、追加終端記号δを含む。上述したように、この記号は、所与のノードから発生した分岐の数をカウントするために使われる。この議論では、単に議論をわかりやすくするために、非終端記号Tを使っていない。
演算の組P中の第1の演算は、シード構造をもたらす。そのワードは、e+δ+e−δ+δ2−i+δ+i−δ+δ2−δ2−uδ+δ2−であり、対応するツリーは、図8のツリーと同様であり、図29に表される。繰返しになるが、このシード構造は、メタ文法を使って構築される。ただし、置換のおかげで、ツリーに分岐を追加する能力が提供される。置換は、
というタイプの演算であり、この演算において、zは、非終端記号e+、e−、i+、i−およびuのいずれも表す。置換はしたがって、zを含むリストに新しいオペランドを追加する。言い換えると、置換は、zに兄弟を追加する。置換は、図8〜18の実施形態と比較するとツリーの深さが制限されるという点において、ツリーを単純化する。
コントリビューションは、上述したように定義されることができる。薄型ソリッドおよび取付け部分のコントリビューションを、上記のようにインスタンス化すると、図30のツリー、または以下のワードをもたらす。
AFe+δ3+Ce−δ2+δ2−Bi+δ2+DEi−δ3+δ2−δ2−Guδ2+δ2−
AFe+δ3+Ce−δ2+δ2−Bi+δ2+DEi−δ3+δ2−δ2−Guδ2+δ2−
履歴ベースの設計システムにおける、このワードの評価が、図14のモデリングされたオブジェクトをもたらすことは明白である。しかし、図30のツリーの深さは4であり、図13のツリーの深さは5である。図8のシード構造における追加コントリビューションにより、ツリーの深さはさらに増すことになるが、本実施形態のシード構造への追加コントリビューションによって、図30のツリーの深さがこれ以上増すことはない。
したがって、シード構造を定義する、非バイナリ文脈自由文法の使用は、エキスパートユーザに役立つ可能性を広げる。
次に、本発明の第3の実施形態について、図31〜図34を参照して説明する。第3の実施形態は、モデリングされたオブジェクトのコンポーネントに対する変更の後の、このモデリングされたオブジェクトの評価を速めることを可能にする。この目的のために、中間ソリッドが、変更の場合の再評価を避けるように、可能な限り保たれる。
コンポーネントに対する変更の問題は、図31に例示してある。図31は、図13のツリー構造と似ているが、「ハンドル」をもたないツリー構造を示す。このツリー中のリーフ(leaf)Lが修正(modify)されると仮定する。中間ソリッド(intermediate solid)が保たれる場合、再現される演算(replayed operation)は、ルートソリッドから、変更されるリーフソリッドへのパスに対する演算である。図31の例では、再現される唯一の演算は、ツリーのリーフLからルートへのパスに対する演算だけであり、すなわち図31に示した4つの演算である。ソリッドの新しい形状を得るためには、4つの演算だけが再計算(recompute)されればよい。
この利益を残しておくためには、置換は、既存の中間ソリッドができる限り変化しない状態にとどまるような方法で構造を増分すべきである。これは、新しいソリッドが既存のソリッドの上に現れているので、図8のバイナリツリー文法およびシード構造には当てはまらない。このことは、無用な境界表現演算を引き起こし得る。
この第3の実施形態における文法およびシード構造の目標は、新しいソリッドを、構造中の可能な最良の場所に配置することである。文法は以下のようになる。
この文法では、記号xは、空集合として評価を行うダミーソリッドを表す。シード構造は、第1の演算によって提供され、置換は、他の演算において提供される。置換は、上で論じた理由のため、明らかに可換的である。
シード構造は、ワード
xe++xe−+−xi++xi−+−−xu+−
であり、図32のツリーとして表される。品質の観点から見ると、図8の「ハンドル」はそれぞれ、終端記号xおよびそれに対応するハンドルから形成される2リーフツリーによって置き換えられる。
xe++xe−+−xi++xi−+−−xu+−
であり、図32のツリーとして表される。品質の観点から見ると、図8の「ハンドル」はそれぞれ、終端記号xおよびそれに対応するハンドルから形成される2リーフツリーによって置き換えられる。
置換規則は、
によって、文法で表されるように定義され、この式で、zはやはり非終端記号e+、e−、i+、i−およびuのいずれをも表し、aは、どの基本ソリッドも表す。
このシード構造の演算は、図11および図12の同じ薄型ソリッドおよび取付け部分を用いて再度例示される。薄型ソリッドの機能フィーチャは、以下の置換によって取り込まれる。
この置換は、図33で表されるツリーまたは以下のワードにつながる。
xA+e+xe−+−xB+i++xi−+−−xu+−
xA+e+xe−+−xB+i++xi−+−−xu+−
取付け部分の機能フィーチャは、以下の置換によって取り込まれる。
こうした置換は、図34で表されるツリーおよび以下のワードをもたらす。
xA+F+e++xC+e−+−xB+i++xD+E+i−+−−xG+u+−
xA+F+e++xC+e−+−xB+i++xD+E+i−+−−xG+u+−
文法により期待されるように、新しい基本ソリッドが、ツリー中で既存のソリッドの後に現れる。したがって、中間結果は、新しいソリッドが追加された後でも保たれ、再利用されることができる。たとえば、FがAの後になり、EがDの後になる。
本実施形態では、バイナリツリー、および図8〜図18に示した文法から派生した文法を用いる。この第3の実施形態において論じた利点が、非バイナリツリーにも当てはまることに注目すべきである。同じ解決法を、薄型ソリッド以外の、モデリングされたオブジェクト用に、他のシード構造にも提供することができる。
本発明は、詳細な説明において提供した例に限定されない。特に、そうした例において論じたシステムとは異なる履歴ベースの設計システムを用いることができる。各実施形態を参照して論じた様々な解決法は、他の実施形態に適用されることができる。このことは特に、エキスパートユーザの職務の説明、および図8〜図18の第1の実施形態を参照して与えられたシステムの動作の説明に当てはまる。こうした説明は、他の実施形態にも当てはまる。
上で挙げられた例では、モールドされた薄型ソリッドに言及している。追加の、または代替的な演算およびコントリビューションが、他のタイプのモデリングされたオブジェクト用に使われることができる。たとえば、部品のアセンブリ用に、さらに複数の部品が並置されることを可能にすることができる。このことは、追加の非終端記号を簡単に表す。サーフェスから、モデリングされたオブジェクト、たとえば打抜きによる金属製自動車部品を設計するために終端記号として、曲線およびサーフェスを使うことができる。演算は、したがって、既存のモデリングされたオブジェクトの部品を打ち抜く再限定、または、曲線またはサーフェスをカットするカットを含むことができる。
上で挙げた例では、非終端記号はすべて、初期シード構造中で使われる。一連の置換規則は、初期シード構造中になかった新しい非終端記号を導入することができる。このようにできることにより、シード構造は、より複雑になり得る。動的な非終端記号が、さらなる置換規則において再利用されることができる。たとえば、いくつかの設計ステップの後、第1のサブトラクション(subtraction)の後でソリッド部品に材料を追加する必要がある。図30のツリー構造は、この演算をサポートすることができず、材料の追加を可能にする図35の構造に変えられることができる。図35のツリーは、ソリッドコントリビューションを取り込む状態にある新しい非終端記号fを特徴とする。置換規則のシーケンスは、式
AFe+δ3+Ce−δ2+δ2−Bi+δ2+DEi−δ3+δ2−δ2−Guδ2+δ2−
で始まり、この式は、図30のツリーを表す。この式において、第1のサブトラクション記号は、非終端記号
AFe+δ3+Ce−δ2+δ2−Bi+δ2+DEi−δ3+δ2−δ2−Guδ2+δ2−
で始まり、この式は、図30のツリーを表す。この式において、第1のサブトラクション記号は、非終端記号
で置き換えられ、この記号は、構文を保存し、ノード挿入の準備をする。この結果、以下の式がもたらされる。
予想通り、シード構造の編集は、メタ文法を必要とする。次いで、以下の置換が実行される。
この置換、および結果として得られる式は、図35の予想されるツリーに対応する。
AFe+δ3+Ce−δ2+δ2−fδ+δ2+Bi+δ2+DEi−δ3+δ2−δ2−Guδ2+δ2−
AFe+δ3+Ce−δ2+δ2−fδ+δ2+Bi+δ2+DEi−δ3+δ2−δ2−Guδ2+δ2−
この例は、同じメタ文法を用いて、より複雑なシード構造を作成するためにシード構造を修正することができることを示す。
論理変数の値に従って、機能フィーチャに付与された置換規則を実行することもしないことも可能である。この変数は、一般に「アクティビティ(activity)」と呼ばれ、機能フィーチャ定義に組み込まれることができ、エンドユーザは、どの規則またはプログラムを介しても、その値(「真」または「偽」)を定義する。このことは、モデリングされたオブジェクト中に機能フィーチャを保持することを可能にし、機能フィーチャは、コアシステム内のエバリュエータによって考慮されない。機能フィーチャは、非活動化されており、必要な場合に活動化されることができる。論理変数の使用は、モデリングされたオブジェクトの追加ビューの提供も可能にする。たとえば、どの機械加工ステップの前でも、モデリングされたオブジェクトのビューを提供したいと思う場合がある。その場合、モデリングされたオブジェクトを評価する前に、ハンドルuに与えられるコントリビューションを非活動化する。この例は、完全な機能フィーチャだけでなく、機能フィーチャのコントリビューションも非活動化することができることを示す。
最後に、置き換えられた非終端記号がターゲット構造中にない場合、置換規則は実行されなくてよい。これは、置換規則の標準動作であり、エラーメッセージにはつながらない。たとえば、上側および下側モールドの例では、図19および図20のシード構造は、ハンドルuを含まない。このことは、コントリビューションGが考慮されることなく、システムが上側および下側モールドに取付け部分の機能フィーチャを与えることを妨げない。
上記において、コンピュータシステムにおける本発明の実装形態は、十分詳細には論じられなかった。履歴ベースの設計システム40の実装形態は、当業者に公知である。図5の追加フィーチャは、同じコンピュータシステムでも、別のコンピュータシステムでも、既存のプログラミング言語(C++、Java(登録商標)、フォートランなど)、ならびにどのCADシステムでも通常は利用可能なプログラムのライブラリなどのツールを使うことによって、実装されることができる。このようなライブラリのプログラムは、以下のことを可能にする。
−オブジェクトを作成する;
−オブジェクトを書く;
−モデリングされたオブジェクトを読む、など。
−オブジェクトを作成する;
−オブジェクトを書く;
−モデリングされたオブジェクトを読む、など。
したがって、図5に表したように、既存のどのCADシステムでも本発明を実装することができ、その場合、CADシステムは、図5のコアシステム40として用いられる。
このこともやはり、ほとんどの既存のCADシステムが、本発明の追加要素がプログラミングされることができるプログラミングプラットフォームを提供するので、より容易に行われる。
本発明は、CADシステムの好ましい実施形態を参照して説明されたが、コンピュータ支援製造(CAM)システムおよびコンピュータ支援エンジニアリング(CAE)システムにも適用されることができる。他のシステム、たとえが製品データ管理(PDM)システム、仮想製品モデリング(VPM)または製品ライフサイクル管理(PLM)システム、さらに企業資源計画(ERP)システム用に、類似の文法およびメタ文法を使うことができる。このようなシステムは、(一般的な意味における)製品上で実行されるようにタスクを編成する。一般に処理モデラに依拠するこのようなシステムでは、クエリおよびタスクは、順序に依存する。以下のテーブルは、説明したCADシステムの要素とPDMシステムの要素の間の、可能な対応例を示す。
−履歴ベースの設計システム 順序に基づくクエリシステム;
−機能フィーチャ パラメトリックタスク(parametric task);
−フィーチャパラメータ タスクパラメータ;
−部品 タスク;
−プリミティブ 基本動作;
−演算 演算。
−履歴ベースの設計システム 順序に基づくクエリシステム;
−機能フィーチャ パラメトリックタスク(parametric task);
−フィーチャパラメータ タスクパラメータ;
−部品 タスク;
−プリミティブ 基本動作;
−演算 演算。
PDMシステムにおけるタスクとは、基本動作および演算の、順序づけられたシーケンスであり、CADシステムにおける部品に対応する。上のテーブルは、CADシステムを参照して上で論じられた解決策が、PDMシステムにも適用され、同様の利点をもたらすことを示す。
40 履歴ベースの設計システム
44 エンドユーザインターフェース
46 パラメータ
48 選択された機能フィーチャ
50 コントリビューション
52 シード構造
54 データフロー
56 エディタ
44 エンドユーザインターフェース
46 パラメータ
48 選択された機能フィーチャ
50 コントリビューション
52 シード構造
54 データフロー
56 エディタ
Claims (13)
- 部品、または部品のアセンブリを設計するシステムであって、
(a)プリミティブおよび演算によるストレージフォーマットを有する履歴ベースの設計システムであって、前記部品または部品のアセンブリは、前記履歴ベースの設計システムにおいて、演算およびプリミティブの順序づけられたシーケンスによって定義される履歴ベースの設計システムと、
(b)少なくとも2つの機能フィーチャであって、それぞれの機能フィーチャは1組の仕様を提供することによりエンドユーザによってインスタンス化されるように適合され、該インスタンス化された機能フィーチャは、少なくとも1つのコントリビューションを提供し、該コントリビューションは、前記履歴ベースの設計システムにおける演算およびプリミティブの順序づけられたシーケンスである、少なくとも2つの機能フィーチャと、
(c)文脈自由文法を用いて定義されるシード構造であって、該シード構造は、前記インスタンス化された機能フィーチャから前記コントリビューションを受け取り、該受け取ったコントリビューションの演算およびプリミティブを順序づけ、該演算およびプリミティブの順序づけられたシーケンスを前記履歴ベースのシステムに提供するように適合されたシード構造と、
(d)前記文法により前記シード構造を編集するエディタと、
を有することを特徴とするシステム。 - 前記演算は、可換演算および非可換演算を含み、前記シード構造は、前記コントリビューションを受け取るように適合された入力を有し、前記シード構造は、各入力において受け取られた前記コントリビューションに対して前記可換演算を適用し、前記コントリビューションに対して適用された前記可換演算の結果に、前記可換演算または前記非可換演算を適用するように適合される、ことを特徴とする請求項1に記載のシステム。
- 前記シード構造は、前記文脈自由文法において、非循環指向グラフとして表される、ことを特徴とする請求項1または2に記載のシステム。
- 前記シード構造はバイナリツリーである、ことを特徴とする請求項3に記載のシステム。
- 前記シード構造は非バイナリツリーである、ことを特徴とする請求項3に記載のシステム。
- 前記文脈自由文法の終端アルファベットは、少なくとも1つのソリッド、ユニオン、インターセクションおよびサブトラクションを含む、ことを特徴とする請求項1ないし5のいずれかに記載のシステム。
- 前記終端アルファベットは並置をさらに含む、ことを特徴とする請求項6に記載のシステム。
- 前記文脈自由文法の前記終端アルファベットは、少なくとも1つの曲線、少なくとも1つの面、および再限定を含む、ことを特徴とする請求項1ないし5のいずれかに記載のシステム。
- 部品、または部品のアセンブリを設計するための履歴フリーシステムを提供する方法であって、
(a)プリミティブおよび演算によるストレージフォーマットを有する履歴ベースの設計システムを提供するステップであって、前記部品または部品のアセンブリは、前記履歴ベースの設計システムにおいて、演算およびプリミティブの順序づけられたシーケンスによって定義されるステップと、
(b)少なくとも2つの機能フィーチャを提供するステップであって、それぞれの機能フィーチャは1組の仕様を提供することによりエンドユーザによってインスタンス化されるように適合され、該インスタンス化された機能フィーチャは、少なくとも1つのコントリビューションを提供し、該コントリビューションは、前記履歴ベースの設計システムにおける演算およびプリミティブの順序づけられたシーケンスであるステップと、
(c)文脈自由文法を用いてシード構造を定義するステップであって、該シード構造は、前記インスタンス化された機能フィーチャから前記コントリビューションを受け取り、該受け取ったコントリビューションの演算およびプリミティブを順序づけ、該演算およびプリミティブの順序づけられたシーケンスを前記履歴ベースのシステムに提供するように適合されたステップと、
を有することを特徴とする方法。 - 前記演算は、可換演算および非可換演算を含み、前記シード構造を定義するステップは、前記コントリビューションを受け取るように適合された入力を有し、前記シード構造は、各入力において受け取られた前記コントリビューションに対して前記可換演算を適用し、前記コントリビューションに対して適用された前記可換演算の結果に、前記可換演算または前記非可換演算を適用するように適合される、ことを特徴とする請求項9に記載の方法。
- 前記文脈自由文法を用いてシード構造を定義するステップにおいて、前記シード構造は、非循環指向グラフとして表される、ことを特徴とする請求項9または10に記載の方法。
- 前記文脈自由文法を用いてシード構造を定義するステップにおいて、前記シード構造はバイナリツリーである、ことを特徴とする請求項11に記載の方法。
- 前記文脈自由文法を用いてシード構造を定義するステップにおいて、前記シード構造は非バイナリツリーである、ことを特徴とする請求項11に記載の方法。
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
EP03291846A EP1501026A1 (en) | 2003-07-25 | 2003-07-25 | CAD system using a context-free grammar |
Related Parent Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2004216270A Division JP4477443B2 (ja) | 2003-07-25 | 2004-07-23 | 文脈自由文法を用いた部品設計システム |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2009211724A true JP2009211724A (ja) | 2009-09-17 |
Family
ID=33484059
Family Applications (2)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2004216270A Expired - Lifetime JP4477443B2 (ja) | 2003-07-25 | 2004-07-23 | 文脈自由文法を用いた部品設計システム |
JP2009144595A Withdrawn JP2009211724A (ja) | 2003-07-25 | 2009-06-17 | 文脈自由文法を用いた部品設計システム |
Family Applications Before (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2004216270A Expired - Lifetime JP4477443B2 (ja) | 2003-07-25 | 2004-07-23 | 文脈自由文法を用いた部品設計システム |
Country Status (5)
Country | Link |
---|---|
US (1) | US7495662B2 (ja) |
EP (1) | EP1501026A1 (ja) |
JP (2) | JP4477443B2 (ja) |
KR (1) | KR100669059B1 (ja) |
CA (1) | CA2475660C (ja) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2013543619A (ja) * | 2010-09-29 | 2013-12-05 | シーメンス プロダクト ライフサイクル マネージメント ソフトウェアー インコーポレイテッド | 統合されたノンヒストリ型とヒストリベース型のモデリング |
JP7509537B2 (ja) | 2018-12-29 | 2024-07-02 | ダッソー システムズ | 編集可能なフィーチャツリーの推測のためのデータ集合を形成すること |
Families Citing this family (24)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP1672548A1 (en) * | 2004-12-20 | 2006-06-21 | Dassault Systèmes | Process and system for rendering an object in a view using a product lifecycle management database |
US7885722B2 (en) * | 2006-03-23 | 2011-02-08 | Autoform Engineering Gmbh | Method planning for manufacturing sheet-metal forming parts |
WO2007127432A2 (en) * | 2006-04-27 | 2007-11-08 | Carnegie Mellon University | Method and apparatus for quantifying aesthetic preferences in product design using production rules |
US7643027B2 (en) | 2007-01-18 | 2010-01-05 | Dassault Systemes Solidworks Corporation | Implicit feature recognition for a solid modeling system |
US7933756B2 (en) * | 2007-03-07 | 2011-04-26 | Riwebb Incorporated | Multi-representational model having two or more models of a mechanical object |
US8704827B2 (en) * | 2007-12-21 | 2014-04-22 | Mako Surgical Corp. | Cumulative buffering for surface imaging |
US10372833B2 (en) * | 2008-04-14 | 2019-08-06 | The Boeing Company | Part standard geometry management in a computer aided design system |
TWI468960B (zh) * | 2008-04-18 | 2015-01-11 | Hon Hai Prec Ind Co Ltd | 零件動態生成系統及方法 |
US8244508B1 (en) * | 2008-09-26 | 2012-08-14 | SpaceClaim Corporation | Method for modifying a piece of 3D geometry |
US8301419B1 (en) * | 2009-10-09 | 2012-10-30 | The Boeing Company | Managing information for generating models of parts |
EP2325769B1 (en) * | 2009-10-30 | 2018-10-24 | Dassault Systèmes | Part design using a context-free grammar |
US8890867B2 (en) | 2010-10-28 | 2014-11-18 | Parametric Technology Corporation | Methods and systems for dynamically loading portions of a computer-aided design model on demand |
US8892404B2 (en) | 2010-10-28 | 2014-11-18 | Parametric Technology Corporation | Methods and systems for consistent concurrent operation of a plurality of computer-aided design applications |
US20120110595A1 (en) * | 2010-10-28 | 2012-05-03 | Michael Reitman | Methods and systems for managing concurrent design of computer-aided design objects |
US8818769B2 (en) | 2010-10-28 | 2014-08-26 | Parametric Technology Corporation | Methods and systems for managing synchronization of a plurality of information items of a computer-aided design data model |
EP2474930B1 (en) | 2010-12-30 | 2018-10-24 | Dassault Systèmes | Updating a modeled object |
EP2474928A1 (en) | 2010-12-30 | 2012-07-11 | Dassault Systèmes | Merging of modeled objects |
EP2474929A1 (en) | 2010-12-30 | 2012-07-11 | Dassault Systèmes | Modeled object updating |
US9697326B1 (en) * | 2012-02-27 | 2017-07-04 | Kelly Eric Bowman | Topology graph optimization |
EP2849099B1 (en) * | 2013-09-11 | 2021-07-28 | Dassault Systèmes | A computer-implemented method for designing an industrial product modeled with a binary tree. |
US11507052B2 (en) * | 2018-09-24 | 2022-11-22 | The Boeing Company | System and method of voxel based parametric specification for manufacturing a part |
EP3674932A1 (en) | 2018-12-30 | 2020-07-01 | Dassault Systèmes | Modeling using a weak type definition |
EP3674931A1 (en) * | 2018-12-30 | 2020-07-01 | Dassault Systèmes | Flexible modeling using a weak type definition |
KR102573282B1 (ko) * | 2023-04-27 | 2023-09-01 | 주식회사 피앤피어드바이저리 | 캐드 데이터를 이용하여 인터페이스 매트릭스를 생성하고, 생성된 인터페이스 매트릭스를 이용해 제품을 설계하기 위한 방법 및 장치 |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
DE19612016A1 (de) | 1996-03-15 | 1997-09-18 | Daimler Benz Ag | Verfahren zur rechnergestützten Geometriemodellierung |
US6629065B1 (en) * | 1998-09-30 | 2003-09-30 | Wisconsin Alumni Research Foundation | Methods and apparata for rapid computer-aided design of objects in virtual reality and other environments |
US7313504B2 (en) * | 2001-10-15 | 2007-12-25 | Solidworks Corporation | Model management technology using grouping of features |
-
2003
- 2003-07-25 EP EP03291846A patent/EP1501026A1/en not_active Withdrawn
-
2004
- 2004-07-21 CA CA2475660A patent/CA2475660C/en not_active Expired - Lifetime
- 2004-07-23 JP JP2004216270A patent/JP4477443B2/ja not_active Expired - Lifetime
- 2004-07-23 US US10/898,068 patent/US7495662B2/en not_active Expired - Lifetime
- 2004-07-23 KR KR1020040057833A patent/KR100669059B1/ko active IP Right Grant
-
2009
- 2009-06-17 JP JP2009144595A patent/JP2009211724A/ja not_active Withdrawn
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2013543619A (ja) * | 2010-09-29 | 2013-12-05 | シーメンス プロダクト ライフサイクル マネージメント ソフトウェアー インコーポレイテッド | 統合されたノンヒストリ型とヒストリベース型のモデリング |
JP7509537B2 (ja) | 2018-12-29 | 2024-07-02 | ダッソー システムズ | 編集可能なフィーチャツリーの推測のためのデータ集合を形成すること |
Also Published As
Publication number | Publication date |
---|---|
JP4477443B2 (ja) | 2010-06-09 |
CA2475660A1 (en) | 2005-01-25 |
KR20050012685A (ko) | 2005-02-02 |
EP1501026A1 (en) | 2005-01-26 |
US7495662B2 (en) | 2009-02-24 |
JP2005044365A (ja) | 2005-02-17 |
US20050038642A1 (en) | 2005-02-17 |
CA2475660C (en) | 2012-03-13 |
KR100669059B1 (ko) | 2007-01-15 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP4477443B2 (ja) | 文脈自由文法を用いた部品設計システム | |
Ma et al. | Associative feature modeling for concurrent engineering integration | |
JP5646954B2 (ja) | 文脈自由文法を使用するパーツ設計 | |
US8305376B2 (en) | Locally updating a three-dimensional model | |
US7313504B2 (en) | Model management technology using grouping of features | |
JP6985131B2 (ja) | 2軸3Dプリンティングプロセスの結果のB−Rep | |
EP2474930A1 (en) | Updating a modeled object | |
US20130317797A1 (en) | Direct attachments to proxy bodies | |
KR20160024824A (ko) | 순차적 업데이트를 위한 기준 | |
JP5623796B2 (ja) | オブジェクトのコンピュータ支援設計のシステム内でオブジェクトの間の関係のステータスを更新するプロセス | |
CN111191327A (zh) | 五关节焊接机器人参数化自动建模系统 | |
Badreddin et al. | Investigation and evaluation of UML Action Languages | |
KR20050084119A (ko) | 다이-스탬핑 모델링을 위한 소프트웨어 | |
Kelly et al. | How MetaEdit+ Supports Co-Evolution of Modeling Languages, Tools and Models | |
Bigand et al. | Integration of FMS performance evaluation models using patterns for an information system design | |
Golkar | Development of knowledge based engineering support for design and analysis of car components using NX–Knowledge Fusion | |
Ranta¹ et al. | Cutting and pasting | |
Brun et al. | How the design process analysis can improve the design process management: A way to cooperative design | |
Xue et al. | Design Process Modeling for the Future CAD Systems | |
Mbang et al. | The Feature-Based Styling Process in Car Body Engineering: Introducing styling features | |
Singh et al. | S tt SSS S SSSZZSSS |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20090617 |
|
A761 | Written withdrawal of application |
Free format text: JAPANESE INTERMEDIATE CODE: A761 Effective date: 20100317 |