(57)【特許請求の範囲】
【請求項１】
文脈自由文法のシード構造と、
前記文法の規則の集合と、
少なくとも２つの設計フィーチャであって、各設計フィーチャが前記集合のうちの少なくとも１つの規則によって定義される、少なくとも２つの設計フィーチャと、
前記シード構造と前記規則の集合とによって決定される前記設計フィーチャ間の優先順序と
を使用することによってモデル化されるパーツを設計するためのコンピュータが実行する方法であって、
前記方法は
前記優先順序に従って、前記パーツの表現をグラフィカルユーザインタフェースに表示するステップと、
前記規則の集合を変更することによって、前記２つの設計フィーチャ間の前記優先順序を変更するステップと、
前記変更された優先順序に従って、前記パーツの表現を表示するステップと
を含み、前記各ステップは前記コンピュータによって実行されることを特徴とする方法。
【請求項２】
前記優先順序を変更する前記ステップにおいて、スワップ規則が、前記規則の集合に追加されることを特徴とする請求項１に記載の方法。
【請求項３】
前記規則の集合は、スワップ規則を含み、
前記優先順序を変更する前記ステップにおいて、前記スワップ規則が、前記規則の集合から削除される
ことを特徴とする請求項１に記載の方法。
【請求項４】
前記規則の集合は、スワップ規則を含み、
前記優先順序を変更する前記ステップにおいて、アンスワップ規則が、前記規則の集合に追加される
ことを特徴とする請求項１に記載の方法。
【請求項５】
前記優先順序を変更する前記ステップにおいて、前方移動規則または後方移送規則が、前記規則の集合に追加され、その際、前記優先順序が変更されることを特徴とする請求項１に記載の方法。
【請求項６】
表示する各ステップの以前に、前記コンピュータが前記規則を前記シード構造に適用するステップをさらに含むことを特徴とする請求項１乃至５のいずれかに記載の方法。
【請求項７】
各規則の適用が、前記規則の少なくとも１つの非終端記号に従って、前記シード構造を変更することを特徴とする請求項６に記載の方法。
【請求項８】
各規則が、前記規則の前記非終端記号に対応する前記シード構造の非終端記号を置き換えることを特徴とする請求項７に記載の方法。
【請求項９】
各設計フィーチャが、
ストックフィーチャタイプ、
プッシュフィーチャタイプ、
コンタクトフィーチャタイプ、
スティフナフィーチャタイプ、
カットフィーチャタイプ、および
サーフェス抽出フィーチャタイプ
を含むグループに属すタイプを有することを特徴とする請求項１乃至８のいずれかに記載の方法。
【請求項１０】
変更する前記ステップにおいて、前記２つの設計フィーチャの前記タイプに依存するスワップ規則が、前記規則の集合に追加されることを特徴とする請求項９に記載の方法。
【請求項１１】
前記シード構造と前記規則の集合が、前記フィーチャのそれぞれのタイプに従って、前記フィーチャ間のデフォルト優先順序を定義することを特徴とする請求項１乃至１０のいずれかに記載の方法。
【請求項１２】
ボディインホワイトパーツを設計するための方法であって、
前記シード構造と前記規則の集合が、前記フィーチャ間のデフォルト優先順序を、それぞれのタイプに従って定義し、
スティフナフィーチャが、コンタクトフィーチャよりも低位のデフォルト優先度を有し、コンタクトフィーチャ自体は、プッシュフィーチャよりも低位のデフォルト優先度を有し、プッシュフィーチャ自体は、カットフィーチャよりも低位のデフォルト優先度を有する
ことを特徴とする請求項１０に記載の方法。
【請求項１３】
コンピュータ支援設計システムであって、
ａ）データベースであって、
文脈自由文法のシード構造と、
前記文法の規則の集合と、
少なくとも２つの設計フィーチャであって、各設計フィーチャが前記集合のうちの少なくとも１つの規則によって定義される、少なくとも２つの設計フィーチャと、
前記シード構造と前記規則の集合とによって決定される前記設計フィーチャ間の優先順序と
によってモデル化されるパーツを記憶するデータベースと、
ｂ）請求項１乃至１２のいずれかの前記方法を実行するのに適したグラフィカルユーザインタフェースと
を含むことを特徴とするコンピュータ支援設計システム。
【請求項１４】
コンピュータによって実行される命令を含むコンピュータプログラムであって、前記命令は、コンピュータ支援設計システムのグラフィカルユーザインタフェースを用いて、請求項１乃至１２のいずれかの前記方法を実行するための手段を含み、
前記システムは、
文脈自由文法のシード構造と、
前記文法の規則の集合と、
少なくとも２つの設計フィーチャであって、各設計フィーチャが前記集合のうちの少なくとも１つの規則によって定義される、少なくとも２つの設計フィーチャと、
前記シード構造と前記規則の集合とによって決定される前記設計フィーチャ間の優先順序と
を使用することによってモデル化されるパーツを記憶するデータベースをさらに含む
ことを特徴とするコンピュータプログラム。
【請求項１５】
コンピュータ可読記憶媒体であって、請求項１４に記載のコンピュータプログラムを記録することを特徴とするコンピュータ可読記憶媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、コンピュータプログラムおよびシステムの分野に関し、より詳細には、パーツを設計するためのコンピュータ実施方法であって、前記パーツが設計フィーチャ（ｄｅｓｉｇｎ  ｆｅａｔｕｒｅ）によってモデル化される、コンピュータ実施方法に関する。
【背景技術】
【０００２】
商標ＣＡＴＩＡのもとで出願人によって提供されるものなど、パーツの設計のための多くのシステムおよびプログラムが市販されている。これらのいわゆるＣＡＤ（コンピュータ支援設計）システムは、ユーザが、パーツの複雑な３Ｄ（３次元）モデルを構成し、操作することを可能にする。
【０００３】
多くの異なるモデリング技法を使用して、パーツを設計することができる。これらの技法は、ソリッドモデリング、ワイヤフレームモデリング、およびサーフェスモデリングを含む。ソリッドモデリング技法は、トポロジカルな３Ｄモデルを提供し、その場合、３Ｄモデルは、例えば、相互接続されたエッジおよび面分（ｆａｃｅ）の集まりである。幾何学的には、パーツを表現する３Ｄソリッドモデルは、閉じた表面（ｃｌｏｓｅｄ  ｓｋｉｎ）を定義する、トリミングされた面（ｔｒｉｍｍｅｄ  ｓｕｒｆａｃｅ）の集まりである。トリミングされた面は、エッジによって境界を定められたトポロジカルな面分に対応する。閉じた表面は、パーツのマテリアルで満たされた３Ｄ空間の有界な領域を定義する。一方、ワイヤフレームモデリング技法は、単純な３Ｄ直線の集まりとしてパーツを表現するのに使用されることができ、サーフェスモデリングは、外面の集まりとしてパーツを表現するのに使用されることができる。ＣＡＤシステムは、これらのモデリング技法と、パラメトリックモデリング技法などの他のモデリング技法とを組み合わせることができる。
【０００４】
パラメトリックモデリング技法は、パーツの異なる設計フィーチャについての様々なパラメータを定義するのに、および様々なパラメータ間の関係に基づいて、これらの設計フィーチャ間の関係を定義するのに使用されることができる。ソリッドモデリングとパラメトリックモデリングは、パラメトリックソリッドモデリングをサポートするＣＡＤシステムにおいて、組み合わせることができる。
【０００５】
設計エンジニアは、３Ｄ  ＣＡＤシステムの代表的なユーザである。設計エンジニアは、３Ｄモデルの機能的側面、物理的側面、および美的側面を設計し、３Ｄモデリング技法に精通している。設計エンジニアは、パーツを設計し、その後、パーツを組み立てて、１つまたは複数のサブアセンブリ（ｓｕｂａｓｓｅｍｂｌｙ）にすることができる。パーツに加えて、サブアセンブリは、他のサブアセンブリからも成ることができる。パーツおよびサブアセンブリを使用して、設計エンジニアは一般に、アセンブリ（ａｓｓｅｍｂｌｙ）を設計する。
【０００６】
例えば、コンピュータ支援設計システムを用いる自動車車体設計の分野において、既存のソリューションは、幾何学的でトポロジカルな対話的コマンドをユーザに提供する。設計者は、点、平面、曲線、および面を扱い、この作業は、外部スタイリングサーフェス（ｓｔｙｌｉｎｇ  ｓｕｒｆａｃｅ）から開始して、最終的な「ボディインホワイト（ｂｏｄｙ−ｉｎ−ｗｈｉｔｅ）」形状を得るために、これらの曲線および面を生成し、変形し、オフセットし、スイープし、外挿し、トリミングし、平滑化し、接続することである。
【０００７】
したがって、パーツは一般に、ＣＡＤシステムにおいて一般に提供されるツールを使用し、様々な幾何学的ビルディングブロックを使用して設計される。パーツを設計するときに設計エンジニアが設計フィーチャを作成する順序は、フィーチャベースのＣＡＤにおいては、そのパーツの物理的構造に影響する。したがって、これらのシステムは、手順ベース（ｈｉｓｔｏｒｙ−ｂａｓｅｄ）であると言われる。例えば、最初に円筒でブロックをカットし、次にカット円筒によって残された空洞の内部に延びるボス（ｂｏｓｓ）を追加することによって構成されたパーツは、ホールの内部にボスのマテリアルを有するホールを備える。円筒カットの前にボスが追加され、次に元のブロックのマテリアルだけでなく、後から追加されたボスのマテリアルもカットされるように、操作の順序を逆にした場合、その内部にマテリアルを有さないホールがもたらされる。
【０００８】
これが図１から図３に例示されており、図１から図３は、従来技術ＣＡＤシステムの画面上に表示されたウィンドウを示している。図１は、構成中のパーツの３つのビューを含むウィンドウ２を示している。上面図４、前面図６、および回転図８は、パーツが２つのブロックフィーチャ（ｂｌｏｃｋ  ｆｅａｔｕｒｅ）（すなわち上側ブロック１２および下側ブロック１４）によって部分的に定義されることを示している。加えて、上面図４および前面図６は、円の押出し輪郭（ｅｘｔｒｕｄｅｄ  ｐｒｏｆｉｌｅ）１０を明瞭に示している。押出し輪郭１０の目的は、パーツに円筒カットフィーチャ（ｃｙｌｉｎｄｒｉｃａｌ  ｃｕｔ  ｆｅａｔｕｒｅ）を作成することである。図２は、押出し輪郭１０がカットフィーチャを構成するのに使用された後の、ウィンドウ２を示している。上側ブロック１２および下側ブロック１４から押出し輪郭１０内にあるマテリアルを取り除くことによって、カット１６が作成された。カットフィーチャ１６を含む前に、上側ブロック１２および下側ブロック１４がパーツ定義に含まれていた（すなわち既存であった）場合、手順ベースのＣＡＤシステムでは、図２に示されるように、カット１６が現れる。図３は、カットフィーチャ１８が上側ブロック１２からマテリアルを取り除かなかったパーツを含むウィンドウ２を示している。最初に下側ブロック１４がパーツ定義に含まれ、２番目にカットフィーチャ１８がパーツ定義に含まれ、３番目に上側ブロックがパーツ定義に含まれた場合、手順ベースのＣＡＤシステムにおいては、図３に示されるように、カット１８が現れる。図１〜図３の例は、パーツを定義するための設計フィーチャを入力する順序が、パーツの出力形状に影響することを示している。機械パーツに関するこの説明は、例えば、成形パーツ、回路における電気的フィーチャ、またはより一般にその組み立てがパーツもしくはコンポーネントを形成する任意のタイプのフィーチャなど、設計システムにおける他のタイプのパーツまたはコンポーネントにも当てはまる。
【０００９】
既存のＣＡＤシステムは、設計者によって実行される幾何学的な操作の手順を得ることによって、事後的な変更を可能にする。パーツの設計を変更することは、設計者が入力パラメータまたは幾何学的オブジェクトを変更し、システムが操作の手順を再実行して、新しい結果をもたらすことである。
【００１０】
手順ベースのシステムは、様々な問題を引き起こす。
【００１１】
「ワイヤフレームおよびサーフェス」ＣＡＤシステムのワークベンチを使用する場合、例えば、「ボディインホワイト」パーツを設計するとき、フィーチャが過剰にオーバラップしない限り、フィーチャを容易に作成し、変更することができる。設計フィーチャのオーバラップは、それらの設計フィーチャ間の空間的な衝突に対応する。ＣＡＤシステムは、結果の幾何学的形状がそれでも計算され得るように、このようなケースにもなんとか対処しなければならない。一定のオーバラップ率を超えると、この複雑さは、ＣＡＤシステムによって対処することができず、オーバラップフィーチャを互いにどのようにトリミングすべきかをイメージし、基本ツールを用いて結果の幾何学的形状を生成することは、設計者の責任となる。したがって、設計者が、かなり以前に最初に設計したパーツの設計を変更することは困難である。実際のところ、このようなケースでは、設計者は、オーバラップする設計フィーチャにどのように対処したかを忘れていることがあり、したがって、それを変更意図のために考慮することができない。
【００１２】
既存のシステムによって提供される幾何学的セマンティックのため、ユーザの心の中にある設計意図ではなくて、設計結果のみがシステムによって獲得される。これは、ＣＡＤシステムが手順的な設計を獲得する場合であっても同じである。この結果、最終的な形状の品質は、設計者にすべての責任がある。高い品質に達するには、専用の方法が、ＣＡＤエディタとアプリケーションスペシャリスト（パーツの適用分野のスペシャリスト）とによって設定されなければならない。この方法は、設計者に教えられなければならず、専用のプロセスが、生産においてそれが実際に使用されることをチェックしなければならない。これは時間と金を費やし、組織問題を引き起こす。
【００１３】
他方、記録された操作の手順を再実行することによる変更は、新しいがむしろ同様の結果を計算する。大幅な設計変更は、多くの幾何学的オブジェクトの削除および作成を必要とする。さらに、一定レベルの複雑さ（一般に幾何学的オブジェクトおよびそれらの関係の数）を超えると、元の設計者だけしか変更を実行できないことがある。自分が以前に行ったことを設計者がまだ覚えているとは限らないので、これすらも保証されない。
【００１４】
事前定義されたテンプレートの使用が提案されたが、これらはセマンティックレベルを引き上げない。このようなテンプレートは、設計作成フェーズをスピードアップし、多くの幾何学的オブジェクトを一発で作成することによって、ダイアログアクセラレータとして機能する。しかし、変更および再作成上の難点が同様に残る。
【００１５】
手順に依存するため、共同設計は困難である。交換可能でないフィーチャは、非同期の共同作業を通して容易に共有できないことはよく知られている。実際のところ、ユーザＡが設計フィーチャＦをユーザＢに送り、ユーザＢがその中の適正な場所にフィーチャＦを挿入する場合、順序付けられた系列を自動的に実行することはできない。
【００１６】
これらの問題は、「Ｐａｒｔ  ｄｅｓｉｇｎ  ｓｙｓｔｅｍ  ｕｓｉｎｇ  ａ  ｃｏｎｔｅｘｔ−ｆｒｅｅ  ｇｒａｍｍａｒ」と題する特許文献１によって扱われている。この特許は、設計フィーチャと、文脈自由文法（ｃｏｎｔｅｘｔ−ｆｒｅｅ  ｇｒａｍｍａｒ）を使用して定義されるシード構造（ｓｅｅｄ  ｓｔｒｕｃｔｕｒｅ）とを用いてパーツを設計するための手順ベースの設計システムについて説明しており、シード構造は、インスタンス化された設計フィーチャからコントリビューション（ｃｏｎｔｒｉｂｕｔｉｏｎ）を受け取るように適合させられる。シード構造は、コントリビューションを受け取る順序が、シード構造によって出力される結果を変化させず、またはより具体的には、コアシステムによるこの結果の評価を変化させないように構築される。シード構造は、エディタによって編集することができる。エディタは、シード構造の機能を変化させずに、コアシステムの能力に従って、シード構造がより効率的になるように、既存のシード構造を適合させることが可能である。エディタは、与えられた応用において、シード構造の機能的な能力を増加させることも可能である。
【００１７】
文脈自由文法のシード構造の使用を通して、特許文献１は、ＣＡＤシステムが宣言的（ｄｅｃｌａｒａｔｉｖｅ）な設計フィーチャを提供することを保証するインフラストラクチャについて説明している。このように、それは、設計フィーチャがインスタンス化される順序が結果のパーツに関係しない場合でも、手順ベースの設計システムの利点を提供する。
【００１８】
しかし、特許文献１によって説明されるソリューションは、利便性を欠いている。実際のところ、この特許におけるシード構造の機能は、アプリケーションスペシャリストが関わる概念ステージにおいて固定化され、エンドユーザによって変更することはできない。パーツを設計する場合、設計者は、これらの機能を考慮に入れなければならない。結果として、以前に考案されたシード構造によってサポートされる設計意図だけしか具体化することができない。したがって、設計者は、シード構造によって提供される機能に設計者自身の設計意図を適合させて設計するよう強制される。このような低い利便性は、簡単で非現実的なパーツの設計を許すにすぎない。
【先行技術文献】
【特許文献】
【００１９】
【特許文献１】米国特許第７４９５６６２号明細書
【非特許文献】
【００２０】
【非特許文献１】Introduction to Automata Theory, Language and Computation, J.E. Hopcroft and J.D. Ullmann, Addison-Wesley, 1979
【発明の概要】
【００２１】
したがって、本発明の目的は、手順ベースの設計システムの利点と高い利便性とを有する、パーツを設計する手段を、設計者に提供することである。
【００２２】
この目的は、
−文脈自由文法のシード構造と、
−文法の規則の集合と、
−少なくとも２つの設計フィーチャであって、各設計フィーチャが集合のうちの少なくとも１つの規則によって定義される、少なくとも２つの設計フィーチャと、
−シード構造と規則の集合とによって決定される設計フィーチャ間の優先順序（ｐｒｉｏｒｉｔｙ  ｏｒｄｅｒ）と
を使用することによってモデル化されるパーツを設計するためのコンピュータ実施方法を用いて達成され、方法は、
−優先順序に従って、パーツの表現をグラフィカルユーザインタフェースに表示するステップと、
−規則の集合を変更することによって、２つの設計フィーチャ間の優先順序を変更するステップと、
−変更された優先順序に従って、パーツの表現を表示すステップと
を含む。
【００２３】
好ましい実施形態は、以下の特徴、すなわち、
−優先順序を変更するステップにおいて、スワップ規則（ｓｗａｐ  ｒｕｌｅ）が、規則の集合に追加されること、
−規則の集合は、スワップ規則を含み、優先順序を変更するステップにおいて、スワップ規則が、規則の集合から削除されること、
−規則の集合は、スワップ規則を含み、優先順序を変更するステップにおいて、アンスワップ規則（ｕｎ−ｓｗａｐ  ｒｕｌｅ）が、規則の集合に追加されること、
−優先順序を変更するステップにおいて、前方移動規則（ｂｒｉｎｇ−ｔｏ−ｆｒｏｎｔ  ｒｕｌｅ）または後方移送規則（ｓｅｎｄ−ｔｏ−ｂａｃｋ  ｒｕｌｅ）が、規則の集合に追加され、その際、優先順序が変更されること、
−方法が、表示する各ステップの前に、規則をシード構造に適用するステップをさらに含むこと、
−各規則の適用が、規則の少なくとも１つの非終端記号（ｎｏｎ−ｔｅｒｍｉｎａｌ  ｓｙｍｂｏｌ）に従って、シード構造を変更すること、
−各規則が、規則の非終端記号に対応するシード構造の非終端記号を置き換えること、
−各設計フィーチャが、ストックフィーチャタイプ（ｓｔｏｃｋ  ｆｅａｔｕｒｅ  ｔｙｐｅ）、プッシュフィーチャタイプ（ｐｕｓｈ  ｆｅａｔｕｒｅ  ｔｙｐｅ）、コンタクトフィーチャタイプ（ｃｏｎｔａｃｔ  ｆｅａｔｕｒｅ  ｔｙｐｅ）、スティフナフィーチャタイプ（ｓｔｉｆｆｅｎｅｒ  ｆｅａｔｕｒｅ  ｔｙｐｅ）、カットフィーチャタイプ（ｃｕｔ  ｆｅａｔｕｒｅ  ｔｙｐｅ）、およびサーフェス抽出フィーチャタイプ（ｓｕｒｆａｃｅ  ｅｘｔｒａｃｔｉｏｎ  ｆｅａｔｕｒｅ  ｔｙｐｅ）を含むグループに属すタイプを有すること、
−変更するステップにおいて、２つの設計フィーチャのタイプに依存するスワップ規則が、規則の集合に追加されること、
−シード構造と規則の集合が、フィーチャのそれぞれのタイプに従って、フィーチャ間のデフォルト優先順序を定義すること、
−方法が、ボディインホワイトパーツを設計するために実行され、シード構造と規則の集合が、フィーチャ間のデフォルト優先順序を、それぞれのタイプに従って定義し、スティフナフィーチャが、コンタクトフィーチャよりも低位のデフォルト優先度（ｐｒｉｏｒｉｔｙ）を有し、コンタクトフィーチャ自体は、プッシュフィーチャよりも低位のデフォルト優先度を有し、プッシュフィーチャ自体は、カットフィーチャよりも低位のデフォルト優先度を有すること
のうちの１つまたは複数を含む。
【００２４】
ａ）データベースであって、
−文脈自由文法のシード構造と、
−文法の規則の集合と、
−少なくとも２つの設計フィーチャであって、各設計フィーチャが集合のうちの少なくとも１つの規則によって定義される、少なくとも２つの設計フィーチャと、
−シード構造と規則の集合とによって決定される設計フィーチャ間の優先順序と
によってモデル化されるパーツを記憶するデータベースと、
ｂ）上述の方法を実行するのに適したグラフィカルユーザインタフェースと
を含むコンピュータ支援設計システムも提供される。
【００２５】
コンピュータによって実行される命令を含むコンピュータプログラムも提供され、命令は、コンピュータ支援設計システムのグラフィカルユーザインタフェースを用いて、上述の方法を実行するための手段を含み、システムは、
−文脈自由文法のシード構造と、
−文法の規則の集合と、
−少なくとも２つの設計フィーチャであって、各設計フィーチャが集合のうちの少なくとも１つの規則によって定義される、少なくとも２つの設計フィーチャと、
−シード構造と規則の集合とによって決定される設計フィーチャ間の優先順序と
を使用することによってモデル化されるパーツを記憶するデータベースをさらに含む。
【００２６】
上述のコンピュータプログラムが記録される、コンピュータ可読記憶媒体も提供される。
【００２７】
本発明のさらなる特徴および利点は、以下に列挙される添付の図面を参照しながら、非限定的な例として与えられた、本発明の実施形態についての以下の説明を読むことで明らかになろう。
【図面の簡単な説明】
【００２８】
【図１】従来技術の手順ベースのシステムにおけるパーツの図である。
【図２】従来技術の手順ベースのシステムにおけるパーツの図である。
【図３】従来技術の手順ベースのシステムにおけるパーツの図である。
【図４】文脈自由文法の単語をチェックするためのプッシュダウンオートマトン（ｐｕｓｈｄｏｗｎ  ａｕｔｏｍａｔｏｎ）を示す図である。
【図５】図４のプッシュダウンオートマトンによってチェックできる文法を用いて生成された単語に対応する木の一例を示す図である。
【図６】スワップ優先度の概念を説明する一例を示す図である。
【図７】スワップ優先度の概念を説明する一例を示す図である。
【図８】スワップ優先度の概念を説明する一例を示す図である。
【図９】スワップ優先度の概念を説明する一例を示す図である。
【図１０】スワップ優先度の概念を説明する一例を示す図である。
【図１１】スワップ優先度の概念を説明する一例を示す図である。
【図１２】図６〜図１１の例において使用される文法を用いて生成される単語に対応する木の例を示す図である。
【図１３】図６〜図１１の例において使用される文法を用いて生成される単語に対応する木の例を示す図である。
【図１４】図６〜図１１の例において使用される文法を用いて生成される単語に対応する木の例を示す図である。
【図１５】図６〜図１１の例において使用される文法を用いて生成される単語に対応する木の例を示す図である。
【図１６】前方移動操作および後方移送操作の原理を示す図である。
【図１７】優先順序を変更するためのシード構造とコントリビューションを示す図である。
【図１８】優先順序を変更するためのシード構造とコントリビューションを示す図である。
【図１９】優先順序を変更するためのシード構造とコントリビューションを示す図である。
【図２０】ボディインホワイトフィーチャの例を示す図である。
【図２１】ボディインホワイトフィーチャの例を示す図である。
【図２２】ボディインホワイトフィーチャの例を示す図である。
【図２３】ボディインホワイトフィーチャの例を示す図である。
【図２４】ボディインホワイトフィーチャの例を示す図である。
【図２５】ボディインホワイトフィーチャの例を示す図である。
【図２６】ボディインホワイトフィーチャ間のデフォルト優先順序を示す図である。
【図２７】４つの設計フィーチャを与えた場合に、すべての可能な系列順序が同じ結果をもたらすこと、この系列がどのようになり得ても、システムが結果の幾何学的形状を常に計算することを示す図である。
【図２８】ボディインホワイトパーツを設計するためのシード構造を示す図である。
【図２９】ボディインホワイトパーツを設計するためのシード構造を示す図である。
【図３０】コンタクトフィーチャのコントリビューションを示す図である。
【図３１】ボディインホワイトフィーチャ間の優先順序を変更するための可能性を示す図である。
【図３２】ボディインホワイトフィーチャ間の優先度管理を示す図である。
【図３３】ボディインホワイトフィーチャ間の優先度管理を示す図である。
【図３４】ボディインホワイトフィーチャ間の優先度管理を示す図である。
【図３５】ボディインホワイトフィーチャ間の優先度管理を示す図である。
【発明を実施するための形態】
【００２９】
本発明によるコンピュータ実施方法は、パーツを設計することを目的とする。パーツは、文脈自由文法のシード構造と、文法の規則の集合と、少なくとも２つの設計フィーチャであって、各設計フィーチャが集合のうちの少なくとも１つの規則によって定義される、少なくとも２つの設計フィーチャと、シード構造と規則の集合とによって決定される設計フィーチャ間の優先順序とを使用することによってモデル化される。方法は、優先順序に従って、パーツの表現をグラフィカルユーザインタフェースに表示するステップを含む。方法は、規則の集合を変更することによって、２つの設計フィーチャ間の優先順序を変更するステップも含む。方法は、変更された優先順序に従って、パーツの表現を表示すステップも含む。
【００３０】
シード構造と規則の集合とによって決定される設計フィーチャ間の優先順序は、宣言的なシステムにおいて、手順ベースの設計システムの利点を提供する。規則の集合を変更することによって優先順序を変更するステップは、高い利便性を設計者に提供する。
【００３１】
本発明による方法は、パーツを設計することを目的とする。「パーツ」という用語は一般に、工業製品の機械的構成要素のことを指す。しかし、本発明の範囲内で多くのバリエーションが可能である。例えば、方法は、パーツのアセンブリを、場合によっては、工業製品そのもの（例えば自動車の車輪）を設計するために使用することもできる。さらに、本発明は、機械的パーツの設計のみを目的とせず、コンピュータ設計が必要とされるどんな分野にも適用可能である。例えば、本発明は、ビデオゲームの分野に適用可能である。
【００３２】
方法を例示する前に、文脈自由文法について簡潔に説明する。文脈自由文法に関する詳細は、非特許文献１において見出すことができる。
【００３３】
文脈自由文法Ｇは、Ｇ＝（Ｘ、Ｖ、Ｐ）によって定義され、Ｘは終端記号（ｔｅｒｍｉｎａｌ  ｓｙｍｂｏｌ）の集合、Ｖは非終端記号の集合、Ｐは規則の集合である。規則は、対（Ｓ、ｍ）であり、第１のオブジェクトは、非終端記号であり、第２のオブジェクトは、終端記号と非終端記号から成る文字列であり、より正確には、Ｐは、Ｖ×（Ｘ∪Ｖ）*の部分集合である。規則は、
【００３４】
【数１】
0005646954.tif 000002
【００３５】
とも書かれ、言い換えると、文字列に適用される規則は、非終端記号を、終端記号と非終端記号から成る文字列に変化させる。文法における記号の列は、単語（ｗｏｒｄ）と呼ばれる。文脈自由文法の使用は、文法の規則を適用することによって、明確に定義されたシンタックスで単語を再帰的に生成することを可能にする。文脈自由文法理論は、これらの単語をスキャンするためのアルゴリズム、すなわち、シンタックスをチェックして、単語が文法の規則の適用を通して生成されたことを保証するアルゴリズムも提供する。この点に関して、非終端記号の機能は、非終端記号が介在する規則の適用のおかげで、終端記号と非終端記号から成る文字列によって置き換えられる。
【００３６】
パーツは、文脈自由文法のシード構造によってモデル化される。シード構造は、文脈自由文法で定義され、編集される。このようなものとして、シード構造は、文脈自由文法の単なる単語である。文法は、シード構造を定義するための、規則に則った厳格な環境を提供する。文法は、シード構造のシンタックスをチェックして、シード構造がシンタックス規則に違反しないようにすることを可能にする。これは、方法が使用される適用分野から完全に独立している。これは、特許文献１において説明されており、以下でメタ文法を参照してさらに詳細に説明される。
【００３７】
パーツは、文法の規則の集合を使用することによってもモデル化される。パーツは、少なくとも２つの設計フィーチャによってもモデル化される。各設計フィーチャは、規則の集合のうちの少なくとも１つの規則によって定義される。
【００３８】
文法の規則の集合は、文法のすべての規則の中から取られた、順序をもたない規則の集まりである。集合の概念についての知識は、集合論から得られる。
【００３９】
パーツを設計する場合、設計者は一般に、シード構造から開始する。使用されるシード構造は、適用分野に依存することがある。例えば、設計者は一般に、船のパーツを設計する場合は、自動車のパーツを設計するためのシード構造とは異なるシード構造を使用する。
【００４０】
その後、設計者は、パーツをモデル化するための設計フィーチャを作成する。設計フィーチャは、例えば幾何学的な制約またはトポロジカルな制約など、パーツに加えられる制約である。設計フィーチャは、設計者によって使用されるＣＡＤシステムの機能によって提供される。これ以降フィーチャとも呼ばれる設計フィーチャは、これらのタイプに従って分類される。例えば、図１〜図３は、（ブロック１２、１４によって表される立体（ｖｏｌｕｍｅ）を合わせたものに対応する）ブロックフィーチャと、（カット１６に対応する）円筒カットフィーチャの使用を示している。多くのフィーチャを設計者に提供することができる。設計者に提供されるフィーチャのリストは、設計者によって使用されるＣＡＤシステムに依存する。非網羅的なリストは、ブロックフィーチャ、押出しフィーチャ（ｅｘｔｒｕｓｉｏｎ  ｆｅａｔｕｒｅ）、ラウンドフィーチャ（ｒｏｕｎｄ  ｆｅａｔｕｒｅ）、フィレットフィーチャ（ｆｉｌｅｔ  ｆｅａｔｕｒｅ）などを含む。他のタイプのフィーチャは、後ほど開示される。タイプに加えて、設計フィーチャは、パラメータを利用することができる。例えば、図１〜図３の例を参照すると、ブロックフィーチャは、合体した立体の座標を利用する。同じことが、立体カットのためのカットフィーチャにも当てはまる。フィーチャのための可能なパラメータは、設計者によって使用されるＣＡＤシステムに依存する。パーツの同じ幾何学的またはトポロジ的モデルを、異なるフィーチャを用いて達成することもできる。例えば、カット１６は、円筒カットフィーチャを作成し、パラメータとして、円筒の軸の座標と、円筒の半径と、場合によっては高さを入力することによって、得ることができる。しかし、カット１６は、（カットの形状について指定のない）カットフィーチャを作成し、パラメータとして、カットが円筒であるという情報を入力し、その後、円筒の軸の座標と、円筒の半径と、場合によっては高さを入力することによっても、得ることができる。したがって、同じ幾何学的形状を有する２つのパーツは、設計者によって使用されるシステムが同じである場合でも、異なるモデル化を行うことができる。
【００４１】
方法は、パーツをモデル化するために、当技術分野で知られた任意のフィーチャを用いて実行することができる。各設計フィーチャは、規則の集合のうちの少なくとも１つの規則によって定義される。設計フィーチャは、１つの規則または複数の規則によって定義することができる。設計フィーチャは、１つまたは複数のコントリビューションから成ることができる。コントリビューションは、パーツモデルの変更であり、例えば、立体の追加、立体のカット、立体の平行移動、立体の回転、立体の縮小などである。各コントリビューションは、文法の規則によって定義することができる。その場合、いくつかのコントリビューションから成るフィーチャは、簡略化が達成されないならば、少なくともそのコントリビューションの数と同数の規則を用いて定義される。場合によってはいくつかの規則を用いてフィーチャを定義できるようにすることで、高度な機能が設計者に提供される。設計者は、基本操作に制限されない。したがって、アプリケーションスペシャリストによって直感的に理解されるフィーチャがモデル化できる。以下では、コントリビューションは、これらを実施する規則を参照することができ、逆に、規則は、コントリビューションを参照することができる。
【００４２】
フィーチャを定義する規則は、任意の順序でシード構造に適用することができる。上で説明されたように、シード構造への規則の適用を通して、単語が得られる。規則の適用の順序に応じて、単語が異なることもある。
【００４３】
パーツをモデル化する設計フィーチャ間の優先順序は、シード構造と規則の集合とによって決定される。優先順序は、設計意図を言い換えたものである。図１〜図３を参照して上で述べられたように、ブロックフィーチャとカットフィーチャの間の優先順序に応じて、結果が異なる。シード構造に規則を適用する順序がどうであれ、優先順序は、得られた単語によってモデル化されたパーツが同じになることを保証する。優先順序は、規則の適用の順序に関する追加情報を用いずに、シード構造と規則の集合とによって決定されるので、方法は、宣言的なシステムにおいて、手順ベースのシステムの利点を、すなわち、設計意図をフィーチャ間の優先度に言い換えることの利点を提供する。手順ベースの方法は、規則の適用の順序を記録することによって、宣言フィーチャの順序を把握するが、本発明の方法は、このような記録を必要としない。規則は、宣言的なままであり、すなわち、規則間の適用の順序はもたない。しかし、それでも、設計意図は、フィーチャ間の優先度を用いて言い換えられる。結果として、パーツの設計の事後的な変更、または同時設計が、容易に実行される。加えて、方法論を設計者に教示するのに費やされる時間が節約される。
【００４４】
文脈自由文法の使用は、再帰的関数を使用することによって、シード構造にコントリビューションを適用することを容易にする。具体的には、シード構造は、多くの終端記号と非終端記号とを含む単語である。それらの記号は、シード構造にコントリビューションを適用するために使用される。非終端記号は、シード構造への「入力」として理解することができる。終端記号は、オブジェクト（例では立体）を組み合わせる操作を指定するために使用される。この点に関して、シード構造へのコントリビューションの適用は、単にシード構造の非終端記号をコントリビューションで置き換えることによって実行することができ、コントリビューションが単語であると仮定すると、これは単に、文法の与えられた規則になる。シード構造にコントリビューションを任意の回数だけ適用できる能力である再帰性を保証する場合、シード構造の非終端記号を、コントリビューションばかりではなく、置き換えられた非終端記号も含む系列で置き換えることによって、シード構造にコントリビューションを適用することで十分である。本明細書の残りの部分では、置き換えられる非終端記号が置き換わる文字列に現れる規則は、置換（ｓｕｂｓｔｉｔｕｔｉｏｎ）または記号置換（ｓｙｍｂｏｌｉｃ  ｓｕｂｓｔｉｔｕｔｉｏｎ）と呼ばれることもある。置換のこの定義を使用すると、シード構造の非終端記号を、非終端記号とコントリビューションとを含む単語に変化させるための置換を使用することによって、規則がシード構造に適用される。これは、結果の単語がまだ非終端記号を含むことを保証し、その非終端記号に対して、さらなるコントリビューションを再び適用することができる。これはさらに、コントリビューションの入力にわたって、シード構造の構造が維持されることを保証する。
【００４５】
文脈自由文法の使用はさらに、エキスパートユーザが、システムが宣言的なままであることを保証することを容易にし、それには、シード構造にコントリビューションを適用することを可能にする置換規則が交換可能なままであることを、すなわち、規則の適用の順序がどうであれ、結果が同じとなるように、シード構造および規則が適合されることをチェックすることで十分である。
【００４６】
上記の説明を例示するために、これから、図４および図５を参照して、簡単な文脈自由文法について説明する。この文法は、以下のように定義される。
【００４７】
【数２】
0005646954.tif 000003
【００４８】
記号ａは、第１の終端記号であり、任意の立体（ｓｏｌｉｄ）を表し、実施形態では、コントリビューションによって、またはコアシステムのプリミティブおよび動作の順序付けられた系列によって定義される。記号φは、第２の終端記号であり、和集合（＋）、減算（−）、共通部分（ｘ）などの任意の演算を表す。非終端記号Ｓは、規則の集合Ｐに含まれる規則を使用して、非終端記号と終端記号の系列によって置き換えることができる。具体的には、第１の規則
【００４９】
【数３】
0005646954.tif 000004
【００５０】
は、非終端記号Ｓを、２つの非終端記号の間の演算の結果によって置き換える。この結果は、ＳＳφと表記されるが、これは、ＳφＳという表記のよりコンパクトな方法であるにすぎない。木によって表現する場合、第１の演算は、木のリーフＳを、２つのブランチを有するノードによって置き換える。そのノードが、ブランチの終端に配置される２つの非終端記号に演算φを施した結果である。第２の演算
【００５１】
【数４】
0005646954.tif 000005
【００５２】
は、非終端記号を終端記号によって置き換え、一般には、終端記号である与えられた値を木のリーフに適用する場合に使用される。
【００５３】
この文法を用いて生成される単語のシンタックスは、図４に表されたプッシュダウンオートマトンによってチェックすることができる。この図では、状態１は初期状態であり、状態２は最終状態である。最後の記号を読んだ後、オートマトンが最終状態に達した場合、シンタックスは正しく、さもなければ、シンタックスは正しくない。形式言語の分野の当業者であれば、文法内のどの単語のシンタックスも容易にチェックできることを理解するであろう。したがって、文脈自由文法の使用は、プッシュダウンオートマトンの使用を通して、単語のシンタックスをチェックすることを可能にする。
【００５４】
図５は、この文法で符号化される単語に対応する２分木の一例である。この木は、単語ａｂｃ＋ｄ−−に対応し、これは、ａ−（（ｂ＋ｃ）−ｄ）を表記するコンパクトな方法である。もちろん、これは、利用される方式が単語を読む方法に依存する。他の文法は、依然として木に対応するが、異なる形を有する単語を生成することがある。
【００５５】
この木は、文法規則の以下の系列を通して生成される。
【００５６】
【数５】
0005646954.tif 000006
【００５７】
言い換えると、非終端記号Ｓから開始し、非終端記号を、ルートに−演算をもち、２つのブランチ６０、６２を有する木によって置き換えるために、第１の演算が適用される。第２の演算が、木の第１のブランチ６０のリーフにある非終端記号Ｓを、終端記号ａによって置き換えるために適用される。次に、第１の演算が、ブランチ６２のリーフにある残りの非終端記号に適用され、この非終端記号は、ルートに−演算をもち、２つのブランチ６４、６６を有する木によって置き換えられる。第２の演算が、木のブランチ６６のリーフにある非終端記号Ｓを、終端記号ｄによって置き換えるために適用される。次に、第１の演算が、ブランチ６４のリーフにある非終端記号に適用され、この非終端記号は、ルートに＋演算をもち、２つのブランチ６８、７０を有する木によって置き換えられる。第２の演算が、ブランチ６８、７０のリーフにある非終端記号Ｓを、終端記号ｂ、ｃによって置き換えるために２回適用される。図５の例では、Ｓのすべてのインスタンスが木または終端記号によって置き換えられたので、非終端記号Ｓはそれ以上現れない。
【００５８】
図５の説明では、記号ａは、終端記号を表すために使用され、可能な立体ａ、ｂ、ｃ、ｄのうちの１つとしても使用される。したがって、文脈自由文法には多数の規則があり得ることが理解される。実際のところ、立体ａに許された異なるパラメータと同数のＳ→ａの形の規則が存在し得る。逆に、記号ａは、コントリビューションによって使用されるパラメータが記憶されたメモリアロケーションへの参照とすることができる。その場合、そのようなメモリアロケーションと同数の規則が存在し得る。システムにおいてそのような規則が符号化される方法は、当業者には明らかであり、さらに詳細には説明されない。
【００５９】
図４および図５の例は、生成される単語がどのように木に対応し得るかを示している。実際のところ、文脈自由文法は、木に対応する単語（すなわち木と同型の単語）を生成するのに適し得る。木は、パーツをモデル化するための直感的な表現であり、したがって、フィーチャベースのＣＡＤにおいて広く使用されている。したがって、木に対応する単語を生成するように適合された文脈自由文法は、パーツの直感的なモデリングを提供するという利点を有する。しかし、他のタイプの文脈自由文法も使用することができる。
【００６０】
方法は、優先順序に従って、パーツの表現をグラフィカルユーザインタフェースに表示するステップを含む。パーツの設計者は一般に、グラフィカルユーザインタフェースに表示されたパーツの表現を用いて作業を行う。パーツは、シード構造、規則の集合、設計フィーチャ、および設計フィーチャ間の優先順序を使用することによってモデル化されるが、パーツの表現は、直感的な設計を可能にして、設計者の作業を容易にする。
【００６１】
方法は、規則の集合を変更することによって、前記２つの設計フィーチャ間の優先順序を変更するステップも含む。このステップは、高い利便性でパーツを設計することを可能にする。実際のところ、シード構造および規則の集合によって決定された優先順序を用いるシステムは、設計は宣言的であっても、手順ベースの方法の利点を保つ。２つの設計フィーチャ間の優先順序の変更は、そのようなシステムを使用する設計者に柔軟性を提供する。これらのステップは一緒になって、手順ベースのシステムの利点を有する宣言的なシステムを用いてパーツを設計するためのツールを提供する。
【００６２】
方法は、変更された優先順序に従って、パーツの表現を表示すステップも含むことができる。これは、設計者が変更の結果を観察することを可能にする。結果が十分に満足できるものでない場合、設計者は、他のフィーチャを用いて、すなわち、フィーチャの１つと別のフィーチャの間の優先順序または他の２つのフィーチャ間の優先順序を変更して、行為を繰り返すことができる。したがって、変更するステップと表示するステップは、繰り返すことができる。
【００６３】
パーツの表現は、３次元とすることができる。３Ｄ表現は、現実的なビューを設計者に提供する。しかし、方法は、２次元的表現にも適用される。
【００６４】
そのような方法は、学習とトレーニングの時間を短縮し、また複雑さを低下させ、並行／協同的なチームワーク設計を可能にすることによって、設計時間サイクルを短縮する。フィーチャの本質的な挙動が、最終的な結果のより良好な品質を保証する。節約された時間は、市場に出荷するまでの時間を短くすることができ、または他の代替設計の研究に費やすことができる。
【００６５】
パーツは、３つ以上のフィーチャによってモデル化することができる。その場合、方法は、その間に優先順序を有する２つのフィーチャを選択するステップを含むことができる。その後、これらの２つのフィーチャ間の優先順序のみを変更することができる。これは、局所的な柔軟性を可能にする。方法は逆に、その間に優先順序を有する３つ以上のフィーチャを選択するステップを含むことができる。その後、１つのステップにおいて、順序を変更することができる。例えば、３つのフィーチャが選択された場合、優先順位が最も低いフィーチャをトップの位置に配置することができる。適用分野または設計者の好みに応じて、他の機能を提供することもできる。
【００６６】
方法は、表示する各ステップの前に、規則の集合のうちの規則をシード構造に適用するステップも含むことができる。これは、パーツの表現がそれから容易に計算される、パーツをモデル化する単語を提供する。代替として、方法は、シード構造に規則を実際に適用することなく、規則をスキャンし、表現を動的に変更することによって、表現を表示することもできる。これは、ユーザに異なるコントリビューションを指し示すという利点がある。
【００６７】
各規則の適用は、規則の非終端記号に従って、シード構造を変更することができる。したがって、シード構造は、異なる種類の規則に従って変更されることによって、優先順序を定義することができる。その後、各規則は、規則の非終端記号に対応するシード構造の非終端記号を置き換えることができる。したがって、２つの設計フィーチャ間の優先順序は、設計フィーチャを定義する規則に含まれる文脈自由文法の非終端記号（または複数の非終端記号）と、シード構造内におけるこの記号（または複数の記号）の位置とによって、少なくとも部分的に決定される。
【００６８】
これから、優先順序の変更が生じ得る異なる状況について説明する。
【００６９】
一例では、優先順序を変更するステップにおいて、スワップ規則が、規則の集合に追加される。規則の集合へのスワップ規則の追加は、シード構造を変化させることなく、優先度をスワップすることを、すなわち、２つのフィーチャ間の優先順序を変更することを可能にする。
【００７０】
優先度スワップの概念は、図６〜図１１を参照して、単純なモデルによって説明され、その後、一般化される。図６〜図１１の例では、第１のフィーチャは、立体であるストックを入力し、その後、いくつかのマテリアルをストックに追加すること、またはストックから削除することができる。マテリアルの削除は、マテリアルの追加よりも高い優先度を有する。この適用セマンティックは、図６によって表される木に対応するシード構造を通して得られる。以下では、「シード構造」という用語は、シード構造自体に加えて、シード構造に対応する木またはシード構造をもたらす規則のことも指す。
【００７１】
反対の適用セマンティック（マテリアルの追加がマテリアルの削除よりも高い優先度を有する）は、図７のシード構造によって獲得できることに留意されたい。
【００７２】
今、設計者が、１つの「ストック」フィーチャである立体Ｓと、３つの「追加」フィーチャＡ、Ｂ、Ｃと、２つの「削除」フィーチャＤ、Ｅとを、順序付けられた系列がどうなり得るかに関係なく、インスタンス化する。したがって、パーツは、図６のシード構造と、上記のフィーチャを決定する規則の集合とによって、モデル化される。規則の集合は、後ほど詳説される。便宜的に、フィーチャは、Ｓｔｏｃｋ（Ｓ）、Ａｄｄ（Ａ）、Ｒｅｍｏｖｅ（Ｄ）、Ａｄｄ（Ｂ）、Ａｄｄ（Ｃ）、Ｒｅｍｏｖｅ（Ｅ）と名付けられる。フィーチャのリストは、図８の左端の部分に表されている。削除フィーチャは、追加フィーチャよりも高い優先度を有する。図８の右端に表された図８の構造は、この設計意図を集めたものである。
【００７３】
この構造は、Ｄ、Ｅが、Ａ、Ｂ、Ｃをトリミングするので、デフォルト挙動（削除がより高い優先度を有する）に準拠している。しかし、設計者が、この挙動をフィーチャの任意の対に対して変更することを望むと仮定する。例えば、設計者が、「追加」フィーチャＢに「削除」フィーチャＤよりも高い優先度をもたせることを望むと仮定する。これは、シード構造を変化させることなく、立体Ｄをシード構造の「削除」ノードに追加する直前に、立体Ｂを立体Ｄから削除することによって、達成することができる。これは、図９の木をもたらす。
【００７４】
このように、立体Ｄから立体Ｂによって占められる空間が除かれ、立体Ｄは立体Ｂをトリミングしない。図９においてＳｗａｐ（Ｂ、Ｄ）として表される「ＢとＤのスワップ」フィーチャが、設計フィーチャのリストに追加される。スワップフィーチャは、文法の少なくとも１つの規則によって定義することができる。したがって、２つのフィーチャ間の優先度のスワップは、パーツをモデル化する規則の集合への少なくとも１つの規則の追加を含むことができる。例えば、フィーチャＤとフィーチャＡをスワップし、その後でＥとＡをスワップするなど、他のフィーチャ間の優先度のスワップは、このプロセスを繰り返し、それによって、図１０の木とフィーチャのリストがもたされる。
【００７５】
したがって、設計者によるそれまでの行為の上に、規則の集合は、スワップ規則を含むことができる。その場合、優先順序を変更するステップにおいて、スワップ規則を規則の集合から取り除くことができる。これは、以前行った優先順序の変更をキャンセルすることを可能にする。
【００７６】
逆に、優先順序を変更するステップにおいて、アンスワップ規則を規則の集合に追加することができる。アンスワップ規則は、アンスワップ設計フィーチャを実施する。アンスワップ規則は、以前にスワップされた優先度の「アンスワップ」によって、規則の集合にスワップ規則を追加する以前の挙動に戻ることを可能にする、文法の規則である。コントリビューション管理の観点から、これは、対応する局所的な削除を回復することである。例えば、Ｓｗａｐ（Ｂ、Ｄ）の「アンスワップ」は、図１１の木をもたらす。規則の集合へのアンスワップ規則の追加は、キャンセルの痕跡を残しながら、以前行った順序の変更をキャンセルすることを可能にする。図１１では、アンスワップ規則は、それが適用されたスワップ規則に施した取り消し線（「Ｓｗａｐ（Ｂ、Ｄ）」）によって表されている。
【００７７】
図６〜図１１の例におけるように、シード構造と規則の集合は、フィーチャ間のデフォルト優先順序を定義することができる。このデフォルト優先順序は、フィーチャのそれぞれのタイプに従って定義することができる。例えば、上述の例は、３つのタイプのフィーチャ（ストック、追加、削除）を提供する。デフォルト優先度を高優先度から低優先度に降順に列挙すると、削除、次に追加、次にストックとなる。これは、最初にストックフィーチャが適用され、次に追加フィーチャ、次に削除フィーチャが適用されることを意味する。デフォルト優先順序の提供は、より高い適用性を適用分野に提供する。
【００７８】
デフォルト優先順序は、適用分野と、フィーチャのタイプに依存する。適用分野に適合されたデフォルト優先順序は、その適用分野向けのパーツを設計する場合、かなりの時間節約を可能にする。したがって、少なくとも２つのフィーチャによってモデル化されるパーツの場合、２つのフィーチャ間の優先順序は、このようなデフォルト優先順序の結果とすることができる。デフォルト優先順序は、後で詳説されるように、シード構造と、規則の集合とによって決定される。簡潔に言えば、設計フィーチャは、シード構造に適用される、文法の少なくとも１つの規則によって定義される。この規則は、少なくとも１つの非終端記号を介在させる。デフォルト優先順序は、他の非終端記号に対する、シード構造内におけるこの非終端記号の位置によって部分的に決定することができる。非終端記号の位置は、コントリビューションがパーツに適用される順序を決定し、したがって、優先順序を決定する。デフォルト優先度は、例えば８０％など、大部分の頻出設計状況を解決するように定義される。これは、８０％の工業パーツを設計できることを意味しているわけではなく、この理由は、ほとんどどの工業パーツにも、２つのフィーチャ間のデフォルト優先度をスワップする必要がある状況が少なくとも１つは存在することを経験が示しているためである。結果として、少なくとも先に述べられたようなスワップ規則によって実施される「優先度スワップ」フィーチャは、工業パーツの設計を終えるために必須である。言い換えると、「優先度スワップ」フィーチャがないと、簡単で非現実的なパーツしか設計することができない。
【００７９】
方法が、構造の深さを制御しながら、すべての可能なスワップ組合せを提供することは明らかである。高々２つの深さレベルが、元の（スワップなしの）構造に追加される。デフォルト優先順序によって決定されるデフォルト挙動が、ほとんどいつでも有効であるにもかかわらず、どのような工業設計にも、優先度スワップが必要である場合が常に存在する。本物の設計フィーチャ（スワップフィーチャ）を介したこの機能の提供は、柔軟性および使い易さに貢献する。
【００８０】
スワッププロセスの数学的証明は、優先度スワップの後で計算された結果が、操作が逆順で実行された場合に計算される結果と同じであることを保証する。一般化は簡単であるので、以下の簡単な場合において、この結果を証明すれば十分である。
【００８１】
ストック立体Ｓ、標準の追加フィーチャＡ、および標準の削除フィーチャＤから開始すると、構造（Ｓ＋Ａ）−Ｄがもたらされる。その後、追加フィーチャと削除フィーチャの優先度のスワップが、構造（Ｓ＋Ａ）−（Ｄ−Ａ）をもたらす。標準のブール代数と標準の記法を使用すると、数学的証明は、
【００８２】
【数６】
0005646954.tif 000007
【００８３】
であることを述べ、ここで、
【００８４】
【数７】
0005646954.tif 000008
【００８５】
は、Ｘの補集合を表し、＋は和集合を表し、・は共通部分を表し、−は差集合（またはカット）を表す。
【００８６】
これは、優先度スワップが、操作順序を逆転することと等価であることを意味する。完全を期して、「マテリアル追加」が最高の優先度を有する代替の単純な構造についても、この結果が詳述される。最初の構造は、（Ｓ−Ｄ）＋Ａである。優先度のスワップは、（Ｓ−Ｄ）＋（Ａ−Ｄ）をもたらし、これは、以下で証明されるように、（Ｓ＋Ａ）−Ｄに等しい。
【００８７】
【数８】
0005646954.tif 000009
【００８８】
整合性のため、「優先度スワップ」の概念が、これから、文脈自由文法によって再度定式化される。特許文献１の記法を使用すると、上述の例の単純なシード構造を定義する文脈自由文法は、
【００８９】
【数９】
0005646954.tif 000010
【００９０】
となる。
【００９１】
終端記号δは、親ノードの下の子ノードの数を数えるシンタックス特性であり、文法の単語と同型な木を構築するのに使用される。
【００９２】
最初の置換
【００９３】
【数１０】
0005646954.tif 000011
【００９４】
を通して、シード構造を生成した後、生成ステップに対応する記号置換は、以下の通りである。
【００９５】
【数１１】
0005646954.tif 000012
【００９６】
これは、設計意図を捉えた、図１２の木と同型な、単語Ｓｓｔｏｃｋδ2＋ＡＢＣａｄｄδ4＋δ2＋ＤＥｒｅｍｏｖｅδ3＋δ2−をもたらす。
【００９７】
上で定義された文法は、設計フィーチャ間のデフォルト優先順序を可能にする。「スワップ」フィーチャの使用を可能にするには、文法に対する以下の調整を必要とする。
【００９８】
【数１２】
0005646954.tif 000013
【００９９】
付加的な非終端記号Ｔが必要とされ、パーツが削除フィーチャによってモデル化される場合、置換
【０１００】
【数１３】
0005646954.tif 000014
【０１０１】
の代わりに、削除ノードに追加される各コントリビューションへの立体コントリビューションの削除の可能性を予期して、置換
【０１０２】
【数１４】
0005646954.tif 000015
【０１０３】
を使用する。削除フィーチャと、例えば追加フィーチャとのスワップは、実際には、規則の集合へのスワップ規則の追加である置換
【０１０４】
【数１５】
0005646954.tif 000016
【０１０５】
を通して行われる。
【０１０６】
より一般には、スワップフィーチャのために、いくつかのスワップ規則が必要とされることがある。これは、後の例におけるように、フィーチャがいくつかのコントリビューションから成る場合である。その場合、優先度の変更は、スワップ規則を規則の集合に追加することによって達成される。同じことが、いくつかのアンスワップ規則によって実施できるアンスワップフィーチャについても当てはまる。しかし、以下では、一般性を失うことなく、スワップ（または反対にアンスワップ）を実行するために、１つのスワップ（または反対にアンスワップ）が規則の集合に追加されることが考察される。
【０１０７】
上述の例に戻ると、拡張された構造は、
Ｓｓｔｏｃｋδ2＋ＡＢＣａｄｄδ4＋δ2＋ＤＴδ＋δ2−ＥＴδ＋δ2−ｒｅｍｏｖｅδ3＋δ2−
であり、図１３の木と同型である。
【０１０８】
幾何学的な評価について、ｓｔｏｃｋ、ａｄｄ、ｒｅｍｏｖｅ、およびＴなどの、単語内に残っている非終端記号は、空集合のように振る舞う。ＢとＤの優先度のスワップは、コントリビューションＤにＴが付加されたオカレンスに置換
【０１０９】
【数１６】
0005646954.tif 000017
【０１１０】
を適用することに相当する。これは、
Ｓｓｔｏｃｋδ2＋ＡＢＣａｄｄδ4＋δ2＋ＤＢＴδ2＋δ2−ＥＴδ＋δ2−ｒｅｍｏｖｅδ3＋δ2−
をもたらし、これは、図１４の木に対応する。
【０１１１】
ＤとＡの優先度のスワップと、その後の、ＡとＥの優先度のスワップは、コントリビューションＤおよびコントリビューションＥにＴ記号が付加されたものに対する
【０１１２】
【数１７】
0005646954.tif 000018
【０１１３】
によって行われ、
Ｓｓｔｏｃｋδ2＋ＡＢＣａｄｄδ4＋δ2＋ＤＢＡＴδ3＋δ2−ＥＡＴδ2＋δ2−ｒｅｍｏｖｅδ3＋δ2−
をもたらし、これは、図１５の木に対応する。
ＢとＤの優先度のアンスワップは、２つのステップを必要とする。最初に、ＢＡＴδ3＋をＡＢＴδ3＋に変更することによって、単語
Ｓｓｔｏｃｋδ2＋ＡＢＣａｄｄδ4＋δ2＋ＤＢＡＴδ3＋δ2−ＥＡＴδ2＋δ2−ｒｅｍｏｖｅδ3＋δ2−
を、
Ｓｓｔｏｃｋδ2＋ＡＢＣａｄｄδ4＋δ2＋ＤＡＢＴδ3＋δ2−ＥＡＴδ2＋δ2−ｒｅｍｏｖｅδ3＋δ2−
に変換する。これは、「＋」が交換的および結合的な演算であるために（和集合が交換的および結合的であるために）可能である。その後、アンスワップ規則である、後退記号置換（ｂａｃｋｗａｒｄ  ｓｙｍｂｏｌｉｃ  ｓｕｂｓｔｉｔｕｔｉｏｎ）
【０１１４】
【数１８】
0005646954.tif 000019
【０１１５】
を適用することで、期待される結果がもたらされる。
Ｓｓｔｏｃｋδ2＋ＡＢＣａｄｄδ4＋δ2＋ＤＡＴδ2＋δ2−ＥＡＴδ2＋δ2−ｒｅｍｏｖｅδ3＋δ2−
先の優先順序の変更は、スワップの概念に関連した。異なる状況は、優先順序を変更するステップにおいて、前方移動規則または後方移送規則を規則の集合に追加することができ、その上で優先順序が変更される。これは、より高い柔軟性を設計者に提供する。
【０１１６】
設計目的で、あるフィーチャの優先度が、（時間的に）過去のフィーチャおよび（時間的に）未来のフィーチャを含む、他のどのフィーチャの優先度よりも常に高い（または反対に低い）ことが有益なことがある。これは、前方移動（または反対に後方移送）フィーチャを定義する前方移動（または反対に後方移送）規則によって達成される。図１６のチャートが、この原理を示している。「標準」のフィーチャは一般に、シード構造と文法の規則とによって決定されたデフォルト優先順序に従って振る舞う。「後方」フィーチャは、設計者によって低い優先度を与えられたフィーチャである。「前方」フィーチャは、設計者によって高い優先度を与えられたフィーチャである。
【０１１７】
理論的な観点からは、これは、動的な優先度スワップによって解決することができる。前方フィーチャの生成は、後続するすべてのフィーチャの動的な更新を必要とするので、これは現実的ではない。
【０１１８】
代替ソリューションは、「前方」フィーチャまたは「後方」フィーチャ専用のノードをシード構造に追加することである。シード構造内では、後方フィーチャノードは、ストックの後、スティフナの前に配置され、前方フィーチャノードは、「プッシュ」ノードの後、「カット」ノードの前に配置される。優先順序を変更するためのそのような前方移動規則または後方移送規則を提供することで、コンピュータリソースが節約される。
【０１１９】
方法はさらに、優先順序を変更するリセット操作を含むことができる。リセット操作は、前方移動操作および後方移送操作によって追加された規則を単純にキャンセルすることができる。リセットは、それらの規則の跡を逆に辿りながら、それらの影響をキャンセルする（すなわち、パーツの表現を表示すときに、それらが使用されないようにする）ことができる。
【０１２０】
後方フィーチャおよび前方フィーチャの概念を与えた場合、問題となるのは、異なるタイプの２つの後方フィーチャの相対的な優先度をどのように扱うべきかである。例えば、上述の例を参照すると、追加フィーチャと削除フィーチャがともに、後方に移送される。デフォルト挙動は、それらの相対的なデフォルト優先度を維持することであり、（後方）「削除」の優先度を（後方）「追加」の優先度よりも高くする。さらに、標準のフィーチャについて説明されたのと同じ戦略を使用して、それらの相対的な優先度をスワップすることが可能である。言い換えると、ユーザ対話の以下の系列が可能にされる：
１．追加フィーチャＡ1を作成する。
２．削除フィーチャＲ1を作成する。
３．Ａ1を後方に移送する。
４．Ｒ1を後方に移送する。
５．Ａ1とＲ1の優先度をスワップする。
【０１２１】
「スワップ」操作を「後方移送」操作および「前方移動」操作と比較するために、厳格な調査が提供される。フィーチャＡ、Ｂ、Ｃが、フィーチャＤよりも低い優先度を有すると仮定する。キーポイントは、ＡとＤ、ＢとＤ、ＣとＤをスワップした後の結果の幾何学的形状が、Ｄを後方に移送した後と同じになることを保証することである。証明は、先に定義された単純なシード構造上で与えられる。フィーチャＡ、Ｂ、Ｃ、Ｄを生成した後、シード構造およびコントリビューションは、図１７に表されるようになる。
【０１２２】
ＡとＤ、ＢとＤ、ＣとＤをスワップした後、シード構造およびコントリビューションは、図１８に表されるようになる。
【０１２３】
次の計算は、これが、立体Ｓの後、Ａ、Ｂ、Ｃを追加する前に、立体Ｄを削除したのと等価であり、したがって、立体Ｄを含む低優先度ノード「後方フィーチャ」を正当化することを証明している。簡潔さのため、Ｘ：＝Ａ＋Ｂ＋Ｃとする。
【０１２４】
【数１９】
0005646954.tif 000020
【０１２５】
最後の式はまさしく、図１９に表される構造およびコントリビューションに等価である。
【０１２６】
スワップおよびアンスワップの場合のように、前方移動操作および後方移送操作は、２つ以上の規則によって実施することができる。
【０１２７】
結果として、シード構造は、後方フィーチャまたは前方フィーチャ内に、「スワップ」操作ばかりでなく、「後方移送」操作および「前方移動」操作をサポートする新しいノードを備えることができる。これは、初期シード構造の簡単な拡張である。ノードの命名は、後方追加（Ｂａｃｋ  Ａｄｄ）、後方削除（Ｂａｃｋ  Ｒｅｍｏｖｅ）、前方追加（Ｆｒｏｎｔ  Ａｄｄ）、前方削除（Ｆｒｏｎｔ  Ｒｅｍｏｖｅ）とすることができる。
【０１２８】
前方移動操作または後方移送操作を定義する規則は、スワップ規則に関する説明に鑑みて、当業者には容易に理解できるので、ここでは明確に説明されない。
【０１２９】
パーツが少数の基本フィーチャ（ストック、追加、削除）を用いて設計される簡単な例を参照して、方法が説明された。以下では、特定の適用分野に関して、方法が説明される。
【０１３０】
パーツをモデル化する各設計フィーチャは、
−ストックフィーチャタイプと、
−プッシュフィーチャタイプと、
−コンタクトフィーチャタイプと、
−スティフナフィーチャタイプと、
−カットフィーチャタイプと、
−サーフェス抽出フィーチャタイプと
を含むグループに属すタイプを有する。
【０１３１】
場合によっては、方法は、上記のグループの間でタイプを選択することによって、パーツをモデル化するフィーチャを定義するステップを含む。好ましくは、グループは、設計者の自由である。言い換えると、設計者によって使用されるソフトウェアは、上記のフィーチャタイプのいずれかに属するフィーチャを用いてパーツをモデル化するための能力を有する。
【０１３２】
上記のグループの利点は、自動車車体という特定の分野のためのパーツを設計するためのフィーチャの直感的で包括的なパネルを提供することである。したがって、本発明は、コンピュータ支援設計システムを使用する直感的な自動車車体設計を可能にする。正確には、板金パーツおよびプレス成形金型（ｐｒｏｄｕｃｔｉｏｎ  ｓｔａｍｐｉｎｇ  ｄｉｅ）を含む、「ボディインホワイト」フェーズが特に扱われる。上記のグループのフィーチャは、「ボディインホワイト」フィーチャと呼ばれる。
【０１３３】
「ボディインホワイト」（またはＢｉＷ）とは、自動車車体板金（ドア、ボンネット、ラゲージドアを含む）は組み立てまたは設計されたが、コンポーネント（シャーシ、モータ）およびトリム（フロントガラス、座席、内装、電子装置など）はまだ付け加えられていない、自動車製造段階のことである。図２０に、ＢｉＷパーツが表されている。
【０１３４】
「ボディインホワイト」フィーチャを用いる設計のための入力データは、スタイリングサーフェスと、少なくとも１つの抜き方向（ｓｔａｍｐｉｎｇ  ｄｉｒｅｃｔｉｏｎ）とを含むことができる。抜き方向は、パーツをモデル化するフィーチャのパラメータを定義するための方向である。慣習にならい、また簡潔さのため、以下では一貫して、１つの抜き方向を使用し、それをｚ軸とするが、それはどの方向とすることもできる。抜き方向は、ほとんどすべてのフィーチャによって共有される。設計中に抜き方向を変更した場合、フィーチャは、新しい方向に従って更新される。
【０１３５】
スタイリングサーフェスは、シートパーツの開始形状である。設計者の仕事は、機能仕様が満たされるように、フィーチャをトリミングし、組み合わせて、この基本形状にすることである。
【０１３６】
これから、図２０〜図２５を参照して、ＢｉＷフィーチャについて説明する。図２０は、カットフィーチャ、コンタクトフィーチャ、ネガティブプッシュ（ｎｅｇａｔｉｖｅ  ｐｕｓｈ）フィーチャ、ポジティブプッシュ（ｐｏｓｉｔｉｖｅ  ｐｕｓｈ）フィーチャ、およびスティフナフィーチャを有する、ＢｉＷパーツの一例を提供している。図２１は、図２０のパーツにおけるカットフィーチャの一例を提供している。図２２は、図２０のパーツにおけるネガティブプッシュフィーチャおよびポジティブプッシュフィーチャの一例を提供している。図２３は、図２０のパーツにおけるコンタクトフィーチャの一例を提供している。図２４は、図２０のパーツにおける上向きシンスティフナ（ｕｐｗａｒｄ  ｔｈｉｎ  ｓｔｉｆｆｅｎｅｒ）フィーチャおよび下向きシンスティフナ（ｄｏｗｎｗａｒｄ  ｔｈｉｎ  ｓｔｉｆｆｅｎｅｒ）フィーチャの一例を提供している。図２５は、別のパーツにおけるシックスティフナ（ｔｈｉｃｋ  ｓｔｉｆｆｅｎｅｒ）フィーチャの一例を提供している。
【０１３７】
定義上、カットフィーチャ（または「カット」）は、シートパーツからマテリアルを削除する。カットフィーチャは、内部ホールを開け、またはその境界をトリミングする。多くの場合、ホールの形状は、輪郭であり、ホールは、この輪郭を抜き方向に沿って押し出して開けられる。カットは、重量の低減、排水口の作成、スペースの予約、ゲートの作成、シート上での固定器具の作成、金型上へのシートの固定または位置付けのために使用される。例外的に、特別な目的で、カットは、シートパーツから削除される任意の立体とすることができる。
【０１３８】
定義上、シートパーツは、空間の領域を避けるために、プッシュフィーチャ（または「プッシュ」）を通して変形される。一般に、この領域は、自動車内でシートパーツとぶつかってはならない別のデバイスによって占有されている（または占有される）。シートパーツが下部から上部に向かって変形されるか（ポジティブプッシュ）、それとも上部から下部に向かって変形されるか（ネガティブプッシュ）は、設計者の決定である。プッシュのための入力データは、抜き方向に従った「上方」または「下方」指定を伴った、任意の立体である。結果のシートパーツと入力立体の間の距離がｄよりも小さくならないように、オプションの間隔距離（ｃｌｅａｒａｎｃｅ  ｄｉｓｔａｎｃｅ）ｄを指定することもできる。
【０１３９】
定義上、コンタクトフィーチャ（または「コンタクト領域」）は、メインシートに接続される面である。コンタクトフィーチャは、シートパーツと他の何らかのデバイスまたはパーツの間の共通領域である。コンタクトフィーチャは、載置ゾーン（ｌａｎｄｉｎｇ  ｚｏｎｅ）または取付けゾーン（ｆｉｘｉｎｇ  ｚｏｎｅ）とすることができる。コンタクト面は通常、平面輪郭によって定義されるが、抜き方向に関して折り重ならない限り、スタイリングサーフェスのオフセットを含む、面のどのような部分とすることもできる。
【０１４０】
定義上、スティフナフィーチャ（または、「スティフナ」）は、パーツをより頑健するために付加される板金工作物のエンボスフィーチャ（ｅｍｂｏｓｓｅｄ  ｆｅａｔｕｒｅ）である。結果のスティフナは、スタイリングサーフェスとスタイリングサーフェスのオフセットの間に広がる。シンスティフナは、スタイリングサーフェス上に広がる直線または曲線の平面ネットワークと、厚さとによって定義される。シックスティフナは、平面閉領域によって定義され、これらの閉領域の上で、スタイリングサーフェスが局所的にオフセットされる。
【０１４１】
そのようなフィーチャを定義することで、ボディインホワイトパーツを設計するのに使用されるように方法が適合される。シード構造と規則の集合は、それぞれのタイプに従って、フィーチャ間のデフォルト優先順序を定義することもできる。スティフナのフィーチャは、コンタクトフィーチャよりも低いデフォルト優先度を有し、コンタクトフィーチャ自体は、プッシュフィーチャよりも低いデフォルト優先度を有し、プッシュフィーチャ自体は、カットフィーチャよりも低いデフォルト優先度を有する。この通りのデフォルト順序は、ボディインホワイト設計者の意図に最も近いので、ボディインホワイト設計にとって理想的である。
【０１４２】
デフォルトでは、フィーチャの相対的優先度は、以下のように定義される。カット優先度は、他のすべてよりも高い。プッシュ優先度は、コンタクトおよびスティフナよりも高い。コンタクト優先度は、スティフナよりも高い。これは、空間的に重なり合う場合、カットは他のどのフィーチャもトリミングし、プッシュはコンタクトまたはスティフナをトリミングし、コンタクトはスティフナをトリミングすることを意味する。優先度は、図２６によって得られる。
【０１４３】
本発明の２つの主な特性が、図２７によって示されている。第１に、システムは、フィーチャの重なり合いが複雑で数多い場合であっても、また順序付けられた系列がどのようになり得ても、幾何学的な結果を計算するように適合される。第２に、最終的な結果は、フィーチャ作成順序に依存しない。したがって、システムは宣言的である。これが、カットフィーチャ、プッシュフィーチャ、コンタクトフィーチャ、およびスティフナフィーチャの異なる作成順序を表す、グラフ内の上部から下部までのすべての経路が、同じ点で終了する理由である。
【０１４４】
ボディインホワイトパーツの設計に特に適合されたシード構造が、これから、図２８を参照して説明される。
【０１４５】
簡潔さのために、抜き方向を垂直方向とするが、それは一般性を制約しない。
【０１４６】
「ボディインホワイト」シード構造は、入力サーフェスから生成された立体ストックから開始する。設計者によって提供されたこのサーフェスは、フィーチャがその上で実施されなければならない（場合によってはトリミングされていない）スタイリングサーフェスである。ストック立体は、十分低い水平面（以下では「下部平面（ｂｏｔｔｏｍ  ｐｌａｎｅ）」と呼ばれる）まで、抜き方向に、入力サーフェスを押出したものである。このコントリビューションは、ノードＳＴＫを供給する。
【０１４７】
ポジティブプッシュは、ストックに入力立体を追加する。このコントリビューションは、ノードＰＰを供給する。ネガティブプッシュは、ストックから入力立体を削除する。このコントリビューションは、ノードＮＰを供給する。
【０１４８】
コンタクトは一般に、平面輪郭によって定義される。立体コントリビューションは、下方に平行移動された入力サーフェスまで、この輪郭を下方に押し出し、ドラフトすることによって生成される。この平行移動の値については後ほど説明される。この立体コントリビューションは、ストックに追加される。このコントリビューションは、ノードＰＣを供給する。別の立体コントリビューションが、上方に平行移動された入力サーフェスまで、この輪郭を上方に押し出すことによって生成される。この立体コントリビューションはストックから削除される。それは、ノードＮＣを供給する。同じ定義は、オフセットコンタクトまたはサーフェスコンタクトについても当てはまり、下向き立体コントリビューションおよび上向き立体コントリビューションがそれぞれ、ストックに追加され、ストックから削除される。
【０１４９】
スティフナは、ストックに追加される下向き立体押出し（それはノードＰＳを供給する）と、ストックから削除される上向き立体押出し（それはノードＮＳを供給する）とを用いて定義される。同じ定義は、シンスティフナまたはシックスティフナについても当てはまる。
【０１５０】
カットは、抜き方向に平行でない平面輪郭によって定義される。この輪郭は、抜き方向に沿って、十分に高い平面（後ほど説明される「上部平面（ｔｏｐ  ｐｌａｎｅ）」）まで、また下部平面まで押し出される。このコントリビューションは、ノードＣを供給する。
【０１５１】
プッシュ、コンタクト、およびスティフナのすべての立体コントリビューションが、ストックに追加され、ストックから削除された後、変更された立体ストックの上部サーフェスが抽出される。この抽出は、上向きに上部平面まで、下向きに下部平面まで、変更された立体ストックを入力スタイリングサーフェスの立体押出しと交差させることによって円滑化することができる。その後、この上部サーフェスは、カット立体によってトリミングされる。代替的に、変更された立体ストックから、立体押出しの相補物をカットすることによっても、同じ結果を得ることができる。これは、不要な破片を排除する。
【０１５２】
各フィーチャのコントリビューションは、フィーチャ間のデフォルト優先順序の逆順で、ストック立体に線形的に適用される。これは、図２８に表されるように、シード構造の上から下までにわたる。このように、最初のコントリビューション（低い優先度）は、次のコントリビューションによってトリミングされ、まさに最後のコントリビューション（最高の優先度）まで、同様なことが繰り返される。これらの原理は、図２８のシード構造をもたらす。
【０１５３】
これから、ボディインホワイト文脈自由文法（ＢｉＷ文法）について詳細に説明する。この文法は、これから詳述されるように、図２８を参照して説明された機能を実行するように適合される。終端記号は、Ｘ＝｛δ，ｘ，＋，−，Ａ，Ｂ，Ｃ，Ｄ，Ｅ，…｝であり、ここで、
δは、操作に対する入力記号の数を獲得し、
ｘ、＋、−は、それぞれサーフェス抽出、和集合、減算の操作であり（等価の和集合記号は∪）、
Ａ、Ｂ、Ｃ、…は、立体である。
【０１５４】
非終端記号は、
【０１５５】
【数２０】
0005646954.tif 000021
【０１５６】
であり、ここで、
【０１５７】
【数２１】
0005646954.tif 000022
【０１５８】
は、開始記号であり、
ｓｔｋ、ｐｓ、ｎｓ、ｐｃ、ｎｃ、ｐｐ、ｎｐ、ｃは、設計フィーチャタイプ（ストック、ポジティブおよびネガティブスティフナコントリビューション、ポジティブおよびネガティブコンタクトコントリビューション、ポジティブおよびネガティブプッシュコントリビューション、カットコントリビューション）を想起し、実際に、これらの記号は、フィーチャタイプのすべてのオカレンスを指示するために、インデックス付けすることができ、
Ｔは、管理優先度記号である。
【０１５９】
記号置換は、以下のように定義される。まさに最初の置換が、シード構造
【０１６０】
【数２２】
0005646954.tif 000023
【０１６１】
を生成し、これは図２８の木に対応する。
【０１６２】
次の置換が、ストック立体を生成する。優先度管理は、まだ必要とされない。
【０１６３】
【数２３】
0005646954.tif 000024
【０１６４】
次の置換が、他のフィーチャのコントリビューションを追加する。それらは、後ほど説明されるように、記号Ｔを通した優先度管理機能を必要とする。
【０１６５】
【数２４】
0005646954.tif 000025
【０１６６】
理論によれば、シード構造を定義する式の整合性は、メタ文法からの段階的生成によって証明される。メタ文法は、以下の通りであり、
【０１６７】
【数２５】
0005646954.tif 000026
【０１６８】
ここで、Ａ＝Ｘ∪Ｖは、応用（例えば「ボディインホワイト」）文法の終端記号と非終端記号からなる集合である。情報として、すべてのステップが付録Ａに列挙されている。付録Ａの系列は、一意的ではない。
【０１６９】
シード構造は、このメタ文法を通して、ソフトウェアエンジニアまたは熟練した設計者によって編集することができる。これは、シード構造を特定の必要性に適合させることを可能にする。例えば、シード構造においてプッシュ「追加」とプッシュ「削除」を入れ換えることによって、すべてのプッシュフィーチャについて、デフォルト挙動（すなわちデフォルト優先順序）を変更することができる。この決定は、適用基準に従って、シード構造の設計中に行われる。
【０１７０】
これから、ＢｉＷ文法におけるフィーチャのインスタンス化について説明する。
【０１７１】
スティフナは、それぞれストックに追加およびストックから削除される２つの立体Ｓ+およびＳ-を通して、シートパーツに寄与する。シード構造におけるこれらのコントリビューションの挿入は、以下の記号置換の系列を通して行われる。
【０１７２】
【数２６】
0005646954.tif 000027
【０１７３】
コンタクトは、それぞれストックに追加およびストックから削除される２つの立体Ｃ+およびＣ-を通して、シートパーツに寄与する。シード構造におけるこれらのコントリビューションの挿入は、以下の記号置換の系列を通して行われ、図３０によって例示されている。
【０１７４】
【数２７】
0005646954.tif 000028
【０１７５】
ポジティブプッシュは、ストックに追加される１つの立体、例えばＰ+を通して、シートパーツに寄与する。シード構造におけるこのコントリビューションの挿入は、以下の記号置換を通して行われる。
【０１７６】
【数２８】
0005646954.tif 000029
【０１７７】
ネガティブプッシュは、ストックから削除される１つの立体、例えばＰ-を通して、シートパーツに寄与する。シード構造におけるこのコントリビューションの挿入は、以下の記号置換を通して行われる。
【０１７８】
【数２９】
0005646954.tif 000030
【０１７９】
カットは、抽出サーフェスから削除される１つの立体、例えばＣを通して、シートパーツに寄与する。シード構造におけるこのコントリビューションの挿入は、以下の記号置換を通して行われる。
【０１８０】
【数３０】
0005646954.tif 000031
【０１８１】
先に述べられたように、前方移動および後方移送を扱うため、シード構造上に新しいノードを生成することも可能である。これらの追加ノードは動的に生成できるにも関わらず、それらを基本シード構造に含めたほうがより便利である。これが図２９に示されている。
【０１８２】
図３１のチャートは、「前方移動」コマンド、「後方移送」コマンド、「スワップ」コマンド、および「リセット」コマンドを混合する、すべての可能性を集めている。上述の説明に鑑みて、パーツをモデル化するフィーチャ間の優先順序を変更するために、場合によってはさらに精巧な他のコマンドを使用することができる。
【０１８３】
これから、図３２〜図３５を参照して、ＢｉＷのフィーチャ間の優先度管理について説明する。とりわけ、同じタイプの２つのフィーチャ間の優先度をどのように管理するかについて説明する。また、これから、２つのＢｉＷのフィーチャ間の優先順序をどのように変更するかについても説明する。
【０１８４】
優先度管理は、設計意図であり、設計フィーチャと同様の方法で得られる。言い換えると、先の説明を通して述べられたように、２つの設計フィーチャ間の優先度のスワップは、設計者が「スワップ」フィーチャを作成して、これを２つの設計フィーチャに供給することである。
【０１８５】
先に強調されたように、フィーチャは、１つまたは複数のコントリビューションをパーツに適用することができる（各コントリビューションはパーツをモデル化する規則の集合のうちの１つの規則に対応する）。とりわけ、ＢｉＷのフィーチャは、１つまたは２つのコントリビューションを適用する。
【０１８６】
最初に、図３２〜図３３を参照して、オーバラッピング代数（ｏｖｅｒｌａｐｐｉｎｇ  ａｌｇｅｂｒａ）について説明する。それらは、同じタイプの２つのフィーチャを扱い、各々は、２つの立体を通してシード構造に寄与し、一方はストックに追加され、他方はストックから削除される。スティフナおよびコンタクトのみが、この定義に一致する。オーバラッピング代数は、このような２つのフィーチャを混合するすべての可能性を提供する。
【０１８７】
最初に、図３２を参照して、２コントリビューションオーバラッピングＢｉＷフィーチャの代数について説明する。
【０１８８】
明確にするため、以下はコンタクトフィーチャに関して記されているが、スティフナフィーチャについても当てはまる。Ｆ1およびＦ2を２つのコンタクトとし、
【０１８９】
【数３１】
0005646954.tif 000032
【０１９０】
をそれぞれのコントリビューションとする。立体
【０１９１】
【数３２】
0005646954.tif 000033
【０１９２】
は、ストックに追加され、立体
【０１９３】
【数３３】
0005646954.tif 000034
【０１９４】
は、ストックから削除される。コンタクトＦ1とコンタクトＦ2がオーバラップする場合、（図３２の左端のパーツ上に表された）デフォルト挙動は、ｍｉｎ（Ｆ1，Ｆ2）を計算することができ、それは、低位のコンタクトが上位のコンタクトをトリミングすることを意味する。これは、コンタクト減算は、シード構造によって、コンタクト加算の後に実行されるためである。それにも関わらず、
【０１９５】
【数３４】
0005646954.tif 000035
を
【０１９６】
【数３５】
0005646954.tif 000036
から削除し、
【０１９７】
【数３６】
0005646954.tif 000037
を
【０１９８】
【数３７】
0005646954.tif 000038
から削除することによって、結果のｍａｘ（Ｆ1，Ｆ2）を得ることができる。形式的に、これは、以下の置換の系列を通して行われる。
【０１９９】
【数３８】
0005646954.tif 000039
【０２００】
最終的に、
【０２０１】
【数３９】
0005646954.tif 000040
【０２０２】
を
【０２０３】
【数４０】
0005646954.tif 000041
【０２０４】
から削除することによって、（図３２の右端のパーツ上に表された）変更された挙動「Ｆ1が常にＦ2をトリミングする」を得ることができ、これは以下の置換を通して行われる。
【０２０５】
【数４１】
0005646954.tif 000042
【０２０６】
上記の規則は、同じタイプの２つの２コントリビューションフィーチャ間のデフォルト優先順序を変更するための、パーツをモデル化する規則の集合に追加するスワップ規則を提供する。
【０２０７】
今から、図３３を参照して、１コントリビューションオーバラッピングＢｉＷフィーチャの代数について説明する。これは、プッシュフィーチャ専用である。実際のところ、カットフィーチャは、もともと交換可能であり、したがって、２つのカットフィーチャ間の優先度管理について対処する必要はない。
【０２０８】
ポジティブプッシュおよびネガティブプッシュは、他のフィーチャに対して同じ優先度を有する。それにも関わらず、これらがオーバラップする場合、（図３３の左端のパーツ上に表された）デフォルト挙動は、シード構造がプッシュ加算の後にプッシュ減算を実行するので、ネガティブプッシュによってポジティブプッシュをトリミングすることである。このデフォルト挙動は、シード構造においてプッシュ「追加」とプッシュ「削除」を入れ換えることによって、すべてのプッシュフィーチャについて変更することができる。この決定は、適用基準に従って、シード構造の設計中に行われる。デフォルト挙動によって決定された優先順序は、変更することができる。Ｐ+をポジティブプッシュとし、Ｐ-をネガティブプッシュとする。規則の集合に追加できる以下のスワップ規則によって指定されるように、Ｐ-からＰ+を削除することによって、（図３３の右端のパーツ上に表された）挙動変化を得ることができる。
【０２０９】
【数４２】
0005646954.tif 000043
【０２１０】
これから、図３４〜図３５を参照して、異なるタイプの２つのフィーチャ間の優先度の管理について説明する。
【０２１１】
最初に、スティフナフィーチャとコンタクトフィーチャの間の優先度の管理について説明する。Ｓをスティフナとし、Ｓ+、Ｓ-をこのコントリビューションとする。Ｃをコンタクトとし、Ｃ+、Ｃ-をこのコントリビューションとする。デフォルトでは、コンタクトＣが、スティフナＳをトリミングする。Ｃ+からＳ-を削除し、Ｃ-からＳ+を削除することによって、この優先度の逆転（スティフナＳがコンタクトＣをトリミングする）が得られ、これは、以下の置換の系列を通して得られる。
【０２１２】
【数４３】
0005646954.tif 000044
【０２１３】
今度は、スティフナフィーチャとポジティブプッシュフィーチャの間の優先度の管理について説明する。Ｓをスティフナとし、Ｓ+、Ｓ-をこのコントリビューションとする。Ｐ+をポジティブプッシュとする。デフォルトでは、プッシュＰ+が、スティフナＳをトリミングする。Ｐ+からＳ-を削除することによって、この優先度の逆転（スティフナＳがプッシュＰ+をトリミングする）が得られ、これは、以下の置換を通して得られる。
【０２１４】
【数４４】
0005646954.tif 000045
【０２１５】
今度は、スティフナフィーチャとネガティブプッシュフィーチャの間の優先度の管理について説明する。Ｓをスティフナとし、Ｓ+、Ｓ-をこのコントリビューションとする。Ｐ-をネガティブプッシュとする。デフォルトでは、プッシュＰ-が、スティフナＳをトリミングする。Ｐ-からＳ+を削除することによって、この優先度の逆転（スティフナＳがプッシュＰ-をトリミングする）が得られ、これは、以下の置換を通して得られる。
【０２１６】
【数４５】
0005646954.tif 000046
【０２１７】
今度は、図３４を参照して、スティフナフィーチャとカットフィーチャの間の優先度の管理について説明する。Ｓをスティフナとし、Ｓ+、Ｓ-をこのコントリビューションとする。Ｋをカットとする。デフォルトでは、Ｋが、スティフナＳをカットする。ＫからＳ+およびＳ-を削除することによって、この優先度の逆転（スティフナＳがＫによってカットされない）が得られ、これは、以下の置換の系列を通して行われる。
【０２１８】
【数４６】
0005646954.tif 000047
【０２１９】
今度は、図３５を参照して、コンタクトフィーチャとポジティブプッシュフィーチャの間の優先度の管理について説明する。Ｃをコンタクトとし、Ｃ+、Ｃ-をそのコントリビューションとする。Ｐ+をポジティブプッシュとする。デフォルトでは、プッシュＰ+が、コンタクトＣをトリミングする。Ｐ+からＣ-を削除することによって、この優先度の逆転（コンタクトＣがプッシュＰ+をトリミングする）が得られ、これは、以下の置換を通して得られる。
【０２２０】
【数４７】
0005646954.tif 000048
【０２２１】
今度は、コンタクトフィーチャとネガティブプッシュフィーチャの間の優先度の管理について説明する。Ｃをコンタクトとし、Ｃ+、Ｃ-をそのコントリビューションとする。Ｐ-をネガティブプッシュとする。デフォルトでは、プッシュＰ-が、コンタクトＣをトリミングする。Ｐ-からＣ+を削除することによって、この優先度の逆転（コンタクトＣがプッシュＰ-をトリミングする）が得られ、これは、以下の置換を通して得られる。
【０２２２】
【数４８】
0005646954.tif 000049
【０２２３】
今度は、コンタクトフィーチャとカットフィーチャの間の優先度の管理について説明する。Ｃをコンタクトとし、Ｃ+、Ｃ-をそのコントリビューションとする。Ｋをカットとする。デフォルトでは、Ｋが、コンタクトＣをカットする。ＫからＣ+およびＣ-を削除することによって、この優先度の逆転（コンタクトＣがＫによってカットされない）が得られ、これは、以下の置換の系列を通して行われる。
【０２２４】
【数４９】
0005646954.tif 000050
【０２２５】
今度は、ポジティブプッシュフィーチャとカットフィーチャの間の優先度の管理について説明する。Ｐ+をポジティブプッシュとする。Ｋをカットとする。デフォルトでは、Ｋが、プッシュＰ+をカットする。ＫからＰ+を削除することによって、この優先度の逆転（プッシュＰ+がＫによってカットされない）が得られ、これは、以下の置換を通して行われる。
【０２２６】
【数５０】
0005646954.tif 000051
【０２２７】
今度は、ネガティブプッシュフィーチャとカットフィーチャの間の優先度の管理について説明する。Ｐ-をネガティブプッシュとする。Ｋをカットとする。デフォルトでは、Ｋが、プッシュＰ-をカットする。ＫからＰ-を削除することによって、この優先度の逆転（プッシュＰ-がＫによってカットされない）が得られ、これは、以下の置換を通して行われる。
【０２２８】
【数５１】
0005646954.tif 000052
【０２２９】
今度は、前方フィーチャと後方フィーチャの間の優先度の管理について説明する。前方フィーチャを作成することは、標準ノードの代わりに、専用の前方ノードに寄与することである。後方フィーチャを作成することは、標準ノードの代わりに、専用の後方ノードに寄与することである。標準フィーチャを後方に移送することは、このコントリビューションを標準ノードから削除し、これらを専用の後方ノードに移すことである。標準フィーチャを前方に移動することは、このコントリビューションを標準ノードから削除し、これらを専用の前方ノードに移すことである。前方フィーチャまたは後方フィーチャをリセットすることは、このコントリビューションを前方ノードまたは後方ノードから削除し、これらを標準ノードに移すことである。
【０２３０】
上の説明は、２つのＢｉＷのフィーチャ間の優先度を逆転させるための手段を提供する。とりわけ、示されたように、２つのフィーチャ間のデフォルト優先順序を変更するために、１つまたは複数のスワップ規則を追加することが常に可能である。
【０２３１】
ＣＡＤシステムの観点からの一般的態様において、方法が説明された。設計者が、一般にグラフィカルユーザインタフェースを通して、フィーチャを作成（すなわちインスタンス化）している間、システムは、バックプロセスにおいて、シード構造と規則の集合を管理する。グラフィカルユーザインタフェースを通したユーザの行為は、先に説明されたように、バックプロセスにおいて、規則の集合の変更をもたらす。シード構造の符号化、規則の符号化、およびグラフィカルユーザインタフェースの開発は、ソフトウェア技術者の役割であり、詳細には説明されない。
【０２３２】
ソリッドモデリング操作が指定されるので、ソリッドモデリング操作（和集合、共通部分、減算など）を実施することによって、実施例は、本発明の恩恵に浴することができる。これは本発明の直接的な使用である。実施例にとってサーフェスモデリングアルゴリズム（主に分割およびトリミング）が好まれる場合、本発明は、ソリッドモデリング操作を通して得られた結果として結果を定義することによって、これらのサーフェシング操作をどのように組み合わせるかを指定する助けとなる。
【０２３３】
フィーチャの各コントリビューションのために規則が追加される。これらは内部パラメータである。フィーチャを指定する場合、設計者は一般に、幾何学的オブジェクトを指定するためのパラメータ値を入力する。したがって、立体コントリビューションの形状は、２つのタイプの入力に基づいている。一方は、ユーザ定義オブジェクト（主に輪郭および厚さ）であり、他方は、内部パラメータおよび幾何学的形状である。これらの内部入力は、以下のものを含む：
−入力サーフェスの下方に十分離して配置される下部平面。これは、カットコントリビューションおよびストック立体の下側限界を定義する。これは、入力サーフェス拡大バウンディングボックス（ｉｎｐｕｔ  ｓｕｒｆａｃｅ  ｅｎｌａｒｇｅｄ  ｂｏｕｎｄｉｎｇ  ｂｏｘ）から計算することができる。
−入力サーフェスの上方に十分離して配置される上部平面。これは、カットコントリビューションの上側限界を定義する。これは、入力サーフェス拡大バウンディングボックスから計算することができる。
−入力サーフェスを上方に平行移動させた上側サーフェス。これは、ストック立体から削除されるドラフト立体コントリビューション（スティフナおよびコンタクトのドラフト立体コントリビューション）の上側限界を定義する。
−入力サーフェスを下方に平行移動させた下側サーフェス。これは、ストック立体に追加されるドラフト立体コントリビューション（スティフナおよびコンタクトのドラフト立体コントリビューション）の下側限界を定義する。
−ＢｉＷシートパーツに妥当性をもって適用できる可能な限り最高および最低のフィーチャに関係する上側サーフェスおよび下側サーフェスの平行移動値。これらのサーフェスの１つを超えたフィーチャの生成は失敗をもたらす。システムは、設計誤りとユーザによって解釈される奇妙な形状（予期しないカット、非連結のシートパーツ）を生成する。
【０２３４】
方法は、「ボディインホワイト」設計に適合された他のフィーチャに拡張することができる。本発明で説明されるシード構造は、潜在的に、例えばフランジフィーチャ（ｆｌａｎｇｅ  ｆｅａｔｕｒｅ）など、他の「ボディインホワイト」フィーチャをサポートすることができる。新しいフィーチャを設計することは、シード構造ノードを通してコントリビューションを設定し、拡大することである。既存のノードが新しいフィーチャをサポートできない場合、既存のフィーチャおよび挙動を維持しながら、新しいノードをシード構造に追加することができる。
【０２３５】
上記の要素は、本発明の応用の例にすぎない。とりわけ、開示されたシード構造は、一意的に定義されない。実際のところ、異なるシード構造が、同じ設計方式（同じデフォルト順序で適用されるコントリビューション）をもたらすことがある。前記シード構造は、等価であると言われる。
【０２３６】
シード構造は、正確なシンタックスを通して被演算子と演算記号を混合した代数式と見なすことができる。演算特性（主に交換性と分配性）に依存して、別の等価な構造が存在することができる。例えば、集合論の以下のブール式（Ｓ∪Ａ）−Ｒは、
【０２３７】
【数５２】
0005646954.tif 000053
【０２３８】
によって証明されるように、一方を他方に変形することができるので、（Ｓ−Ｒ）∪（Ａ−Ｒ）と等価である。
【０２３９】
ポストフィックス規約を用いて式を書き換えると、これは、シード構造ＳＡ∪Ｒ−が、シード構造ＳＲ−ＡＲ−∪と等価であることを意味する。結果として、定義上、代数操作の系列を使用して、一方を他方に変形することができる場合、２つのシード構造は等価である。許される代数操作は、シード構造に含まれる操作の特性の結果である。先の例では、以下の定義および特性が、すなわち、「ある集合を別の集合へ移動することは、第１の集合と第２の集合の補集合との共通部分をとることである」および「共通部分は和集合に対して分配することができる」が使用されている。
【０２４０】
これが有効な２次元多様体（２−ｍａｎｉｆｏｌｄ）オブジェクトである場合、従来の手順ベースのＣＡＤシステムを用いて設計された既存の「ボディインホワイト」シートパーツを、入力サーフェスとして含むことができる。形状は、コントリビューションおよびシード構造に従って、宣言的フィーチャによってトリミングされる。他方、シード構造からもたらされる出力サーフェスは、有効な２次元多様体であるので、従来のＣＡＤシステムにおいて再利用することができる。任意のさらなる操作（ドローイング、オフセット、アセンブリ、トリミング、マシニングなど）を実行することができ、結合性が維持される。
【０２４１】
本発明は、以下の要素のうちの１つまたは複数を指定するため、とりわけ、技術に対する貢献である：
−「ボディインホワイト」フィーチャのリスト。各フィーチャは、「ボディインホワイト」パーツの設計者に意味のある正確な機能を満たすように定義される。
−フィーチャがオーバラップする場合のデフォルト挙動。これは、複数のフィーチャが３Ｄ空間内で隣接位置を占有する場合に、複数のフィーチャが互いをどのようにトリミングすべきかを定義する。フィーチャのオーバラップがどのようなものであっても、システムは常に幾何学的解決を提供する。
−デフォルト挙動が設計意図に合わない場合の、局所的および大域的な優先度変更（すなわち変化）。状況および／または方法の実施に応じて、優先度変化は、フィーチャの特性として、または適切な設計フィーチャとして獲得される。
−前記デフォルト挙動および変更された挙動に従って、前記フィーチャを処理できる専門のシード構造。
−手順自由設計（すなわち宣言的な設計）、（「ボディインホワイト」フィーチャのコントリビューション、すなわち、規則の集合によって供給されるシード構造によって計算される）結果の形状は、フィーチャ生成順序に依存しない。
【０２４２】
これらの特性のおかげで、設計者は適切なセマンティックを扱うので、本発明は、「ボディインホワイト」ＣＡＤシステムを、より学び易く、より使い易くする。内部の複雑さ（主に操作の手順）は隠蔽される。本来的に品質が保証され、手順自由特性が、共同設計を可能にする。
【０２４３】
方法は、ＣＡＤシステムとともに実行することができる。コンピュータ支援設計システムは、文脈自由文法のシード構造と、前記文法の規則の集合と、少なくとも２つの設計フィーチャであって、各設計フィーチャが前記集合のうちの少なくとも１つの規則によって定義される、少なくとも２つの設計フィーチャと、シード構造と規則の集合とによって決定される設計フィーチャ間の優先順序とを使用することによってモデル化されるパーツを記憶するデータベースを含むことができ、システムは、上で詳細に説明された方法を実行するのに適したグラフィカルユーザインタフェースをさらに含むことができる。
【０２４４】
コンピュータプログラムは、コンピュータによって実行される命令を含むことができ、命令は、コンピュータ支援設計システムの（に備わる）グラフィカルユーザインタフェースを用いて方法を実行するための手段を含む。システムは、文脈自由文法のシード構造と、前記文法の規則の集合と、少なくとも２つの設計フィーチャであって、各設計フィーチャが前記集合のうちの少なくとも１つの規則によって定義される、少なくとも２つの設計フィーチャと、シード構造と規則の集合とによって決定される設計フィーチャ間の優先順序とによってモデル化されるパーツを記憶するデータベースをさらに含む。ＣＡＤシステムが本発明の方法を実行するのに適したものとなるように、そのようなプログラムを使用して、ＣＡＤシステムを更新することができる。
【０２４５】
従来技術において知られているように、そのようなプログラムは、コンピュータ可読記憶媒体上に記録することができる。
【０２４６】
（付録Ａ）
0005646954.tif 000054
【０２４７】
0005646954.tif 000055
【０２４８】
0005646954.tif 000056
【符号の説明】
【０２４９】
２  ウィンドウ
４  上面図
６  前面図
８  回転図
１０  押出し輪郭
１２  上側ブロック
１４  下側ブロック
１６  カット
１８  カットフィーチャ
６０  ブランチ
６２  ブランチ
６４  ブランチ
６８  ブランチ
７０  ブランチ
【図１】
0005646954.tif 000057
【図２】
0005646954.tif 000058
【図３】
0005646954.tif 000059
【図４】
0005646954.tif 000060
【図５】
0005646954.tif 000061
【図６】
0005646954.tif 000062
【図７】
0005646954.tif 000063
【図８】
0005646954.tif 000064
【図９】
0005646954.tif 000065
【図１０】
0005646954.tif 000066
【図１１】
0005646954.tif 000067
【図１２】
0005646954.tif 000068
【図１３】
0005646954.tif 000069
【図１４】
0005646954.tif 000070
【図１５】
0005646954.tif 000071
【図１６】
0005646954.tif 000072
【図１７】
0005646954.tif 000073
【図１８】
0005646954.tif 000074
【図１９】
0005646954.tif 000075
【図２０】
0005646954.tif 000076
【図２１】
0005646954.tif 000077
【図２２】
0005646954.tif 000078
【図２３】
0005646954.tif 000079
【図２４】
0005646954.tif 000080
【図２５】
0005646954.tif 000081
【図２６】
0005646954.tif 000082
【図２７】
0005646954.tif 000083
【図２８】
0005646954.tif 000084
【図２９】
0005646954.tif 000085
【図３０】
0005646954.tif 000086
【図３１】
0005646954.tif 000087
【図３２】
0005646954.tif 000088
【図３３】
0005646954.tif 000089
【図３４】
0005646954.tif 000090
【図３５】
0005646954.tif 000091