(57)【特許請求の範囲】
【請求項１】
任意のワークステーションで行われる任意の修正が、システム内の各他のワークステーションで複製されるように、複数のユーザが別々のワークステーションでオブジェクトのモデルを同時に修正できるようにする手段を提供し、ピアツーピアアーキテクチャで配置された複数のワークステーションからなる前記システムで使用するためのコンピュータシステム動作方法であって、
モデルの修正を指定する入力をユーザから第１ワークステーションで受け取るステップと、
前記入力を、前記モデルの修正される部分および行われる前記修正を指定するコマンドに変換するステップと、
第１の幾何モデラによって、前記コマンドに従って前記第１ワークステーションで前記モデルを修正するステップと、
前記システム内の他のワークステーションにネットワークを介して前記コマンドを送信するステップと、
第２ワークステーションで前記コマンドの処理を行うステップであって、前記処理はインタプリタを介して前記コマンドを解釈することを含み、前記インタプリタは各ワークステーションで同じであるステップと、
前記第１の幾何モデラと異なる第２の幾何モデラによって、前記コマンドに従って前記第２ワークステーションで前記モデルを修正するステップと
を備えたことを特徴とするコンピュータシステム動作方法。
【請求項２】
前記複数のワークステーションのそれぞれが、ディストリビュータコンポーネントと、フィーチャモデラと、幾何モデラとを含むアプリケーションを実行することを特徴とする請求項１に記載のコンピュータシステム動作方法。
【請求項３】
前記複数のワークステーションのそれぞれが、ディストリビュータコンポーネントと、フィーチャモデラとを含むアプリケーションを実行することを特徴とする請求項１に記載のコンピュータシステム動作方法。
【請求項４】
前記複数のワークステーションのそれぞれの前記幾何モデラは、永続ジェネリックネーミングを使用することを特徴とする請求項１に記載のコンピュータシステム動作方法。
【請求項５】
前記入力は、セル情報に関する１つまたは複数の制約を含み、前記方法は、
制約のそれぞれについて、前記モデルのどのセルが前記制約の要件を満たすかを判定するステップと、
前記制約の前記要件のすべてを満たすセルのリストを生成するステップと
をさらに備えたことを特徴とする請求項１に記載のコンピュータシステム動作方法。
【請求項６】
前記制約は、
ａ）セル寸法に関する制約と、
ｂ）セルのトポロジに関する制約と、
ｃ）モデル展開のヒストリに関する制約と、
ｄ）セルの特定の属性に関する制約と、
ｅ）セルの幾何学的指示に関する制約と
を含む群から選択されることを特徴とする請求項５に記載のコンピュータシステム動作方法。
【請求項７】
前記入力は、セル情報に関する１つまたは複数の制約を含み、
ａ）前記入力の最初の制約を選択し、前記制約の要件を満たす幾何セルを見つけるためにアクセスされなければならない前記ＣＡＤシステムのコンポーネントを識別するステップと、
ｂ）前記モデルの前記セルを検索し、サブセットとして、前記入力の最初の制約の要件を満たすセルだけを保存するステップと、
ｃ）前記入力の次の制約を選択し、該次の制約の要件を満たす幾何セルを見つけるためにアクセスされなければならない前記ＣＡＤシステムのコンポーネントを識別するステップと、
ｄ）セルの前記サブセットを検索し、該サブセット内で、前記入力の前記次の制約の要件を満たすセルだけを保存するステップと、
ｅ）前記入力の残りの制約のそれぞれについて、ステップｃ）およびｄ）を繰り返すステップと
を含むことを特徴とする請求項１に記載のコンピュータシステム動作方法。
【請求項８】
前記制約は、
ａ）セル寸法に関する制約と、
ｂ）セルのトポロジに関する制約と、
ｃ）モデル展開のヒストリに関する制約と、
ｄ）セルの特定の属性に関する制約と、
ｅ）セルの幾何学的指示に関する制約と
を含む群から選択される
ことを特徴とする請求項７に記載のコンピュータシステム動作方法。
【請求項９】
モデルの修正を指定する入力をユーザから第１ワークステーションで受け取るステップと、
前記入力を、前記モデルの修正される部分および行われる前記修正を指定するコマンドに変換するステップと、
第１の幾何モデラによって、前記コマンドに従って前記第１ワークステーションで前記モデルを修正するステップと、
ネットワークを介して前記ネットワーク上の他のワークステーションに前記コマンドを送信するステップと、
第２ワークステーションで前記コマンドの処理を行うステップであって、前記処理はインタプリタを介して前記コマンドを解釈することを含み、前記インタプリタは各ワークステーションで同じであるステップと、
前記第１の幾何モデラと異なる第２の幾何モデラによって、前記コマンドに従って前記第２ワークステーションで前記モデルを修正するステップと
を備えた方法をコンピュータに実行させるプログラムを含むことを特徴とするコンピュータ読み取り可能な記録媒体。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、コンピュータ支援設計（ＣＡＤ；computer aided design）システム、コンピュータ支援製造（ＣＡＭ；computer aided manufacturing）システム、コンピュータ支援エンジニアリング（ＣＡＥ；computer/aided engineering）システム、製品ライフサイクルマネジメント（ＰＬＭ；product lifecycle management）システム、および製品データ管理（ＰＤＭ；product data managemen）システム（以下では「ＣＡＤ」システムと呼称する）の分野に関する。
【０００２】
【従来の技術】
アイデアのすばやく明確な交換は、設計チームがプロジェクトに取り組んでいる時に最も重要である。しかし、設計チームのメンバが、親密に非常に接近して作業しているのでない限り、アイデアの交換は、しばしば非効率的であり、不完全である。設計チームが、組織内のさまざまな部署または異なる地理的位置に分散し、その結果、チームメンバが自然発生的な対話に参加できない場合がある。設計チームのメンバは、異なる会社、異なる国、異なる産業にまたがって、ますます分散する可能性がある。設計チームに、そのような相違を有するメンバが含まれる時に、効率的で自然発生的なアイデアの交換が、存在しないことがしばしばである。
【０００３】
既存のシステムでは、設計の基礎となるアイデアが、しばしば、ファクシミリによって送信されたスケッチによる、電話を介する口頭の通信によるなど、時代錯誤的で時間がかかる形でチームによって共有される。設計の詳細または理論的基礎の多くが、この形では失われる。同様に、検討されたが探査されなかったアイデアを含む、設計につながる中間ステップが、通信されない。したがって、アイデアのソースから離れた位置にいるチームのメンバは、アイデアの展開を観察することの利益を得なかったので、設計提案に至る設計過程の繰り返しを行う可能性がある。より効率的になるために、一部の設計チームが、定期的な直接顔を合わせる会議をスケジューリングする場合がある。しかし、そのような会議は、移動の時間およびコストから、生産性の低下につながる。
【０００４】
同時設計努力によるアイデアの交換を容易にするために、さまざまな試みが行われてきた。たとえば、設計が、複数のチームメンバ（クライアント）に接続された中央サーバに常駐する「非同期」協調設計（ａｓｙｎｃｈｒｏｎｏｕｓ  ｃｏｌｌａｂｏｒａｔｉｖｅ  ｄｅｓｉｇｎ）が試みられた。これは役に立つが、複数の短所を有する。モデルが中央サーバに常駐するので、サーバが機能していない場合に、すべての設計活動が停止する。また、そのようなシステムでは、一時に１人のチームメンバしかモデルを修正できない。各チームメンバは、チームのメンバが設計を修正してる間、待たなければならず、各チームメンバは、サーバが結果を各チームメンバに送信するのを待たなければならない。この設計は、一時に１方向にしか進行できない。さらに、送信されなければならないデータの量が多く、これによって、処理がかなり遅くなる。
【０００５】
したがって、チームメンバが同時に１つのモデルに取り組むことができる、真の「同期」協調設計を可能にするシステムの必要がある。
【０００６】
既知のＣＡＤ／ＣＡＭ／ＣＡＥ／ＰＬＭシステムには、一般に、幾何モデラ（ｇｅｏｍｅｔｒｉｃ  ｍｏｄｅｌｅｒ）が含まれ、この幾何モデラが、常時、モデルジオメトリの作成および保守を担当する。モデルの各幾何要素すなわち、各頂点、辺、面、およびモデルの各体積が、幾何モデラ内の異なるセル（ｃｅｌｌ）に対応する。たとえば、立方体の箱のモデルは、箱の角ごとのセル（８セル）、箱の辺ごとのセル（１２セル）、箱の面ごとのセル（６セル）、および箱の体積（１セル）を有する。一般に、各セルは、一意の識別子を有し、各セルに、関連する特定の幾何特徴を定義するデータが含まれる。
【０００７】
より高度な既知のＣＡＤシステムでは、フィーチャと称する高水準の仕様からモデルのジオメトリを作成し、このフィーチャは、ユーザにとってより直観的であり、ユーザが達成しようとしているジオメトリを定義する、より柔軟でありより一般的な方法をユーザに提供する。そのようなフィーチャに基づくシステムでは、モデルが、フィーチャの組として定義される。フィーチャの例は、円筒、穴、辺のフィレット、または直方体である。
【０００８】
一部のフィーチャベースＣＡＤシステムは、「制約ソルバ（ｃｏｎｓｔｒａｉｎｔ  ｓｏｌｖｅｒ）」などの１つまたは複数の対話コンポーネントを有する場合がある。一般に、制約ソルバは、ＣＡＤアプリケーションのコンポーネントのうちで、ユーザが設計の重要な機能的態様を定義できるようにし、システムが設計の他の態様を計算できるようにし、その結果、非常に重要な条件が満足されるようにするコンポーネントである。例えば、モデル設計がその環境で正しく機能するか他の部品と正しく嵌合するために、満足されなければならないある判断基準が存在する場合がある。たとえば、オブジェクトの２つの面が平行であること、またはモデルのある側面がある長さを有することが絶対に必要である場合がある。設計者／ユーザは、これらの非常に重要な設計要素を、モデルの未完成のモックアップ上で指定し、その後、制約ソルバを活動化することができる。制約ソルバは、設計の他の次元／判断基準の計算に進み、その結果、非常に重要な条件が満たされる。対話コンポーネントは、それらがフィーチャモデラと対話するのでそのように呼ばれる。
【０００９】
フィーチャの組に対応するジオメトリが、セルの組であり、ここでは、各頂点、各辺、各面、および各体積が、特定のセルに対応する。モデルフィーチャは、その特性および複雑さに応じて、セルに変換される時に、０個のセル（幾何的制約などの非幾何フィーチャの場合）、１個のセル、または多数の幾何セルに変換される場合がある。その一方で、各幾何セルが、１つまたは複数のフィーチャに由来する場合がある。言い換えると、モデルの複数のフィーチャが、共通のセルを有する場合がある。フィーチャベースＣＡＤシステムでは、幾何モデラは、通常は、モデルのトポロジ的修正のヒストリ（ｈｉｓｔｏｒｙ）を記憶する、時折トポロジカルジャーナル（ｔｏｐｏｌｏｇｉｃａｌ  ｊｏｕｒｎａｌ）と呼ばれるコンポーネントと、以下で説明する、時折ジェネリックネームサーバ（ｇｅｎｅｒｉｃ  ｎａｍｅ  ｓｅｒｖｅｒ）と呼ばれるもう１つのコンポーネントとに関連する。
【００１０】
モデルのフィーチャのいくつかを、純粋にその幾何特性に関して表現することができる。たとえば、平行６面体の箱は、通常は、単純にｘ、ｙ、ｚ座標系でのその寸法によって特徴を表すことができる。しかし、他のフィーチャは、そのように単純に特徴を表すことができない。たとえば、上で参照した箱の特定の辺は、通常は、純粋にその幾何特性によって識別することができない。辺を一意に識別できるのは、箱への参照と、箱の上のその位置の追加の指定によることだけである。この追加情報を含むセルのそのような一意の識別子を、セルの「ジェネリックネーム」と称し、これはジェネリックサーバによって生成される。セルのジェネリックネームは、セル自体と一緒にモデルに保管される。
【００１１】
現在のジェネリックネーミング（ｇｅｎｅｒｉｃ  ｎａｍｉｎｇ）方式は、多数の短所を有する。システムによって生成されるジェネリックネームは、アクセスできる時に、読み取るのに極端に複雑であり、その結果、非常に経験のあるコンピュータ専門家でなければ、ジェネリックネームを読み書きすることはほとんど不可能である。また、ジェネリックネームは、システム論理に基づくが、このシステム論理は、通常は、モデルを心に描く時にユーザが用いる論理と非常に異なる。これらの短所があるので、ユーザが、操作したいセルを記述したスクリプトを記述することが、不可能ではないとしても非常に困難になっている。これは、特にスクリプト言語だけによってモデルを設計し、修正することを求めるユーザにとって、現在のシステムの主要な不利益である。また、システム自体の論理によって定義された関連性に頼ることをユーザに強制することによって、ユーザがフィーチャの間の関連についてユーザ自身の論理を使用することもできなくなる。さらに、ジェネリックネームは、汎用ではなく、幾何モデラに固有であり、したがって、同一のタイプの幾何モデラによってのみ理解される。
【００１２】
【発明が解決しようとする課題】
したがって、ユーザが、単純で直観的な構文を使用してモデルのセルまたはセルの組を簡単に識別できるようにし、異なる幾何モデラによって理解され得る形で幾何セルを識別する方法を提供するシステムの必要がある。
【００１３】
本発明は、このような問題に鑑みてなされたもので、その目的とするところは、ＣＡＤモデリングでの非常に高められた生産性を提供し、とりわけ、同期協調設計を提供する、協調設計の方法、及びその装置、並びにそのシステムを提供することにある。
【００１４】
【課題を解決するための手段】
本発明は、チームメンバがモデルを同時に変更できるようにするアーキテクチャで設計チームのメンバをリンクするシステムおよび方法を提供する。このシステムは、モデル変更の処理に関して中央サーバ構成に頼らない点で、堅牢である。モデル内の変更は、各ローカル端末で行われる。したがって、大量のモデルデータを、ネットワークを介して送信する必要がない。そうではなく、コマンドだけが、ネットワークを介して送信され、これは、ジオメトリの差に関するデータが送信される場合または各修正の後にモデル全体が送信される場合より、はるかに短い時間とはるかに安価なハードウェアで達成することができる。
【００１５】
本発明によれば、設計中のコンピュータモデルを記述したデータが、ユーザＡに割り当てられたワークステーションのメモリに保管される。Ａは、ユーザのグループ（Ａ、Ｂ、…Ｎ）に属し、これらのユーザは、設計チームのメンバであり、したがって、モデルの将来の設計開発でＡと共同作業することが期待される。逆に、新しいモデルが開発されることになり、グループの１人または複数のユーザが、新しいモデルの開発に向かって共同作業することが期待される状況がありえる。各ユーザ（Ｂ、…Ｎ）は、めいめいのワークステーション（ワークステーションＢ、…、ワークステーションＮ）を与えられ、すべてのワークステーションが、インターネット、イントラネット、または他のタイプのネットワークとすることができる同一のコンピュータネットワークに接続される。
【００１６】
本発明の好ましい実施形態では、ユーザのグループ（ワークグループ）が、協調努力への潜在的な参加者として識別される。各ユーザワークステーションは、ネットワークへの接続線用のポートを有するように構成され、グループ内の他のすべてのワークステーションの識別データが保管される。好ましい実施形態では、すべてのワークステーションが等しい地位を有し、設計過程全体の間に、クライアントおよびサーバの両方として動作する。グループ内には専用のサーバもクライアントもない。このタイプの編成を、「ピアツーピア」編成と称する。ピアツーピア編成の場合に、１ワークステーションの障害または１ワークステーションのネットワーク接続の障害は、他のワークステーションの協調努力に一切影響せずに、そのワークステーションがセッションを去ることだけをもたらす。
【００１７】
協調グループのメンバの１人が、率先してグループで自分のモデル（既存または新規のモデル）を共有する。共有されるモデルは、ユーザワークステーションの作業メモリに存在するモデルであり、ワークステーションの記憶ユニットに保管された既存モデルのより最近の版である場合がある。この率先によって、協調努力セッションの開始が構成される。モデル共有の提案のリストを調べ、その特定のセッションに参加するかどうかを決定するのは、グループ内の他のユーザ次第である。
【００１８】
セッションへの参加を決定したグループのユーザは、修正の最新の状態のモデルのコピーを受信する。これは、モデル自体があるユーザから別のユーザに送信される唯一の時である。新規ユーザが参加した時に、複数のユーザが既にセッションに加わっている場合には、好ましい実施形態では、新規ユーザが、既にセッションに加わっている他のどのユーザからでもモデルのコピーを得ることができ、その結果、ある特定の接続が切断されても、参加を行うことができる。
【００１９】
セッションのユーザは、自分のワークステーションのモデルを修正することによって、設計への取組を始めることができる。各ユーザのアクションは、ローカルシステムによって、ユーザアクションが行われたコンテキストを考慮に入れたコマンドに変換される。このコマンドが、ローカルに実行されて、ローカルシステム上のモデルが変更される。ローカルシステムでのコマンドの実行と並列に、そのコマンドが、セッションの他の参加者に送信される。モデルを更新するコマンドの交換は、完全に同期式であり、すなわち、ワークステーションが、同時にリアルタイムでデータを送受信することができる。
【００２０】
ユーザは、セッションから去ることを望む時に、単純にセッションから切断する。モデルを、その現在の状態でユーザのワークステーションに保存することができ、ユーザは、望むならばモデルに対して独立に取り組むことを継続することができる。
【００２１】
本発明の好ましい実施形態では、ワークステーションのすべてが、同一のアプリケーションソフトウェアを有し、これによって、ワークステーション間の通信が容易になる。しかし、後で完全に説明するように、本発明は、ソフトウェアの一部がすべてのワークステーションで同一ではない場合であっても、実践することができる。いくつかの情況で、たとえばワークステーションが異なる幾何モデラを有する時に、高水準でモデルの一部を識別するシステムを使用し、その結果、ネットワークを介して送信されるコマンドが別個の幾何モデラによって理解され得るようにする必要がある。
【００２２】
したがって、本発明の一態様によれば、この高水準通信を達成するシステムおよび方法が開発された。本発明のこの態様によれば、「セル記述子（ｃｅｌｌ  ｄｅｓｃｒｉｐｔｏｒ）」が、モデルの幾何セルの一部またはすべてについて生成される。セル記述子は、簡単にスクリプト作成可能すなわち、単純で直観的な構文を使用することによって、スクリプト内でユーザが宣言することができる。セル記述子は、ジェネリックネームサーバによって生成されたジェネリックネームと同一の機能をサービスするが、本明細書に記載の複数の長所を有する。
【００２３】
本発明のセル記述子システムは、ターゲットのセルまたはセルの組の、プロパティ（ｐｒｏｐｅｒｔｙ）に対する制約の組の定義にある。これらの制約は、ＣＡＤシステムで既に使用可能なセル情報に関する。好ましい実施形態では、下記の５種類の制約が定義されている。
【００２４】
１．セル寸法に関する制約：頂点は０次元になり、辺は１次元、面は２次元、体積は３次元になる。
【００２５】
２．トポロジすなわち、近傍の概念を含む、セルがお互いに関して配置される方法に基づく制約。
【００２６】
３．たとえば、連続作成、融合、切断、および再利用など、セルを作るモデル展開のヒストリに基づく制約。したがって、たとえば、ユーザが、２つの円筒がモデル内でそのような円筒としてもはや存在しない場合であっても、モデルの２つの円筒の交差を識別するスクリプトを記述することができる。しかし、２つの円筒の交差は、モデル展開のヒストリを含むデータから導出することができる。
【００２７】
４．特定の属性（ａｔｔｒｉｂｕｔｅ）に基づく制約。属性には、２種類がある。システム内で使用される特定の幾何モデラによって定義される属性（たとえば、ＵＰ（上）、ＤＯＷＮ（下）、ＲＩＧＨＴ（右）、ＬＥＦＴ（左）、ＦＲＯＮＴ（前）、ＢＡＣＫ（後）など、空間的な位置決めに関する属性）、または、ユーザ自身によってフィーチャに付加される属性（色、材料特性、製造プロパティ、技術的属性など）。
【００２８】
５．幾何学的指示に基づく制約。たとえば、そのような制約は、所与の方向で（すなわち所与のベクトルに沿って）可視のすべての面、モデル内のすべての球、すべての平坦な面、ある面積を有するすべての面などとすることができる。
【００２９】
制約の各タイプならびに実際の制約のそれぞれを、平均的なユーザによる制約の宣言をかなり単純化する単純で直観的な言語で記述することができる。
【００３０】
さらに、本発明のもう１つの態様によれば、異なるタイプの制約を、ブール演算子（Ｂｏｏｌｅａｎ  ｏｐｅｒａｔｏｒ）によって単一の制約に組み合わせることができる。
【００３１】
本発明のもう１つの態様によれば、他の計算機が異なる幾何モデラおよび関連コンポーネントを使用する場合であっても、セル記述子が、たとえば通信ネットワークを介して、他の計算機に配布しやすい。関連コンポーネントが使用される場合に、セル記述子を他の計算機がセル記述子として理解できるようにするために、非常に単純なインタープリタ（ｉｎｔｅｒｐｒｅｔｅｒ）を、他の計算機のコンポーネントに追加するだけでよい。
【００３２】
【発明の実施の形態】
以下、図面を参照して本発明の実施形態を詳細に説明する。なお、各図面において同様の機能を有する箇所には同一の符号を付し、説明の重複は省略する。
【００３３】
図１を参照すると、本発明を実践する際にワークステーションとして使用することのできるコンピュータシステム１００の物理リソースが示されている。コンピュータ１００は、プロセッサホストバス１０２に接続された中央プロセッサ１０１を有し、プロセッサホストバス１０２を介して、プロセッサ１０１がデータ信号、アドレス信号、および制御信号を供給する。プロセッサ１０１は、Ｐｅｎｔｉｕｍ（登録商標）シリーズプロセッサ、Ｋ６（商標）プロセッサ、ＭＩＰＳ（登録商標）プロセッサ、ＰｏｗｅｒＰＣ（登録商標）プロセッサ、またはＡＬＰＨＡ（登録商標）プロセッサなどの、従来の汎用のシングルチップまたはマルチチップのマイクロプロセッサのいずれかとすることができる。さらに、プロセッサ１０１を、ディジタル信号プロセッサまたはグラフィックスプロセッサなどの従来の特殊目的マイクロプロセッサとすることができる。マイクロプロセッサ１０１は、それをプロセッサホストバス１０２に結合する従来のアドレス線、データ線、および制御線を有することができる。
【００３４】
コンピュータ１００に、統合されたＲＡＭメモリコントローラ１０４を有するシステムコントローラ１０３を含めることができる。システムコントローラ１０３は、ホストバス１０２に結合することができ、ランダムアクセスメモリ１０５へのインタフェースを提供する。システムコントローラ１０３は、ホストバスに周辺バスブリッジ機能を提供することもできる。コントローラ１０３は、これによって、プロセッサホストバス１０２上の信号を、プライマリ周辺バス１１０上の信号と互換性のある形で交換できるようにすることができる。周辺バス１１０は、たとえば、Ｐｅｒｉｐｈｅｒａｌ  Ｃｏｍｐｏｎｅｎｔ  Ｉｎｔｅｒｃｏｎｎｅｃｔ（ＰＣＩ）バス、Ｉｎｄｕｓｔｒｙ  Ｓｔａｎｄａｒｄ  Ａｒｃｈｉｔｅｃｔｕｒｅ（ＩＳＡ）バス、またはマイクロチャネルバスとすることができる。さらに、コントローラ１０３は、ホストバス１０２と周辺バス１１０の間のデータバッファリングおよびデータ転送速度マッチングを提供することができる。コントローラ１０３は、これによって、たとえば、６４ビット６６ＭＨｚインタフェースおよび５３３Ｍバイト／秒のデータ転送レートを有するプロセッサ１０１を、データパスビット幅、クロック速度、またはデータ転送レートが異なるデータパスを有するＰＣＩバス１１０にインタフェースできるようにすることができる。
【００３５】
たとえば、ハードディスクドライブ１１３に結合されたハードディスクドライブ制御インタフェース１１１、ビデオディスプレイ１１５に結合されたビデオディスプレイコントローラ１１２、およびキーボードおよびマウスコントローラ１２１を含むアクセサリデバイスを、バス１１０に結合し、プロセッサ１０１によって制御することができる。コンピュータシステムに、コンピュータシステムネットワーク、イントラネット、またはインターネットへの接続を含めることができる。データおよび情報を、そのような接続を介して送受信することができる。
【００３６】
コンピュータ１００に、基本的なコンピュータソフトウェアルーチンが保管される不揮発性ＲＯＭメモリ１２２も含めることができる。ＲＯＭ１２２には、構成データを保管するための、ＥＥＰＲＯＭ（Ｅｌｅｃｔｒｏｎｉｃａｌｌｙ  Ｅｒａｓａｂｌｅ  Ｐｒｏｇｒａｍｍａｂｌｅ  Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）などの変更可能メモリを含めることができる。ＢＩＯＳルーチン１２３を、ＲＯＭ１２２に含めることができ、ＢＩＯＳルーチン１２３は、基本的なコンピュータ初期化、システムテスト、および入出力（Ｉ／Ｏ）サービスを提供する。ＢＩＯＳ１２３に、オペレーティングシステムをディスク１１３から「ブート」できるようにするルーチンも含めることができる。高水準オペレーティングシステムの例が、Ｍｉｃｒｏｓｏｆｔ  Ｗｉｎｄｏｗｓ  ９８（商標）オペレーティングシステム、Ｗｉｎｄｏｗｓ  ＮＴ（商標）オペレーティングシステム、Ｗｉｎｄｏｗｓ  ２０００（商標）オペレーティングシステム、ＵＮＩＸ（登録商標）オペレーティングシステム、ＬＩＮＵＸオペレーティングシステム、Ａｐｐｌｅ  ＭａｃＯＳ（商標）オペレーティングシステム、または他のオペレーティングシステムである。
【００３７】
オペレーティングシステムは、ＲＡＭメモリ１０５に完全にロードすることができ、また、オペレーティングシステムに、ＲＡＭメモリ１０５内の部分、ディスクドライブストレージ１１３内の部分、またはネットワークロケーションのストレージ内の部分を含めることができる。オペレーティングシステムは、ソフトウェアアプリケーション、ソフトウェアシステム、およびソフトウェアシステムのツールを実行する機能性を提供することができる。ソフトウェア機能性は、ビデオディスプレイコントローラ１１２およびコンピュータ１００内の他のリソースにアクセスして、ビデオコンピュータディスプレイ１１５上にオブジェクトのモデルを提供することができる。
【００３８】
協調設計
図１のコンピュータなどのコンピュータを、本発明のユーザのそれぞれのワークステーションとして使用することができる。本明細書で述べるように、各ワークステーションは、ワークステーション間の非集中通信を可能にする、インターネットまたはイントラネットなどのネットワークを介して他のワークステーションに接続される。
【００３９】
図２に、好ましい実施形態のシステムのユーザによって使用される方法を示す。ユーザは、新規モデルの作成（２２０）または既存モデルのオープン（２２１）のいずれかを行うが、そのどちらもが、ユーザの活動の対象になる。ユーザがモデルの修正を望む場合（２２６）には、ユーザが、１つまたは複数のコマンドを発行し、そのコマンドが実行され（２２７）、モデルが変更される。その後、ユーザは、セッションを終了する（２２９）か、モデルの修正を継続するかのオプション（２２８）を有する。ユーザは、いつでも、モデルの共有（２２３）を決定することもできる。ユーザがモデルの共有を望む場合には、セッションが、モデルの現在の構成と共に保管され（２２４）、協調セッションを開始することができる（２２５）。ユーザは、自分のローカルワークステーションでモデルの修正を継続すると同時に、モデルを共有することができる。この方法のこの態様によって、真の協調設計が可能になる。ユーザが、協調設計セッションを開始した後にモデルの修正を継続する場合には、ユーザのコマンドがローカルに実行されて、ユーザのワークステーションのモデルが変更され、さらに、そのコマンドが、以下で完全に説明するように、セッションの他のユーザに送信される。
【００４０】
図３に、協調設計セッションへの参加を望むユーザによって行われるステップを示す。ユーザは、セッションが進行中であるかどうかを調べるために、ワークグループの他のワークステーションに照会する（１３０）。その後、ユーザが、参加したいセッションを選択し（１３１）、セッションのモデルが、ユーザのワークステーションにダウンロードされる（１３２）。前に述べたように、これは、モデル全体がネットワークを介して送信される唯一の時である。好ましい実施形態では、現在の共同作業にかかわる各ユーザのワークステーションにモデルが常駐するので、アクティブなユーザであればどのユーザからでもモデルをダウンロードすることができる。
【００４１】
図４に、協調セッションの動作を示す。協調セッション中に、システムは、いつでも新規ユーザを受け入れる態勢ができている（１４１）。ユーザがセッションに参加する時（１４２）に、そのユーザに、モデルの現在の版が与えられる。さらに、各ワークステーションは、ローカルユーザからモデルを修正するローカルコマンドを受け入れ、実行する態勢ができている（１４３）。そのようなローカル修正が行われる時（１４４）に、必ず、そのコマンドが、すべてのユーザにも送信される。各ワークステーションは、いつでも協調セッションのユーザのいずれかからのコマンドを受信し、実行する態勢ができている（１４５）。そのようなコマンドを受信した時に、ローカルワークステーションは、そのコマンドを実行し、モデルをローカルに修正する（１４６）。
【００４２】
本発明の一実施形態では、ユーザが、電話または電子メールによって通信して、モデルおよびユーザが意図する変更を論ずることができる。変更の主張者は、提案された変更を自分のワークステーションで行うことができ、その後、これが、協調セッションの他のユーザに同時に送信される。変更は、各ワークステーションでほぼ同時に行われ、各ユーザが、主張者が提案したものを即座に正確に見ることができ、これによって、妨げられずに創造プロセスを進めることが可能になる。これは、口頭で通信される変更をワークグループの各設計者が心に描かなければならず、ワークグループの設計者のそれぞれの心中の異なるモデル構成につながる既存の方法に対する大きな改善である。
【００４３】
好ましい実施形態では、コマンドが、フィーチャイベントのシーケンスすなわち、モデルに対する一連の読取／書込動作として、ローカルに実行される。フィーチャイベントのシーケンスが、トランザクションを構成し、これがトランザクションジャーナルにログ記録される。トランザクションジャーナルには、モデルに関係しないイベントまたは高水準用語でコマンドを記述するイベントなどの他の情報も含めることができる。
【００４４】
本発明の好ましい実施形態では、３つの基本的なタイプのコマンドすなわち、新しいフィーチャの作成に使用されるコマンドである「インスタンス化（ｉｎｓｔａｎｔｉａｔｅ）」コマンドと、フィーチャを修正する「セット」コマンドと、ごみ箱（ｔｒａｓｈ  ｂｉｎ）への移動（フィーチャの削除）を含む、フィーチャを移動する「オウン（ｏｗｎ）」コマンドが、ネットワークを介して配布される。好ましい実施形態では、コマンドが、２つの部分すなわち、順序（その名前）および、存在する場合に引数からなる。コマンドの引数には、たとえばユーザによって選択され、コマンドが適用されるオブジェクトと、コマンドを実行可能にするのに必要な他の情報などのコンテキストが含まれる。ネットワークを介して送信できるコマンドのタイプおよびフォーマットが、大幅に変化する可能性があり、そのすべてが本発明の範囲に含まれることを理解されたい。
【００４５】
本発明のさらなる態様を、ネットワークを介して接続された２つのワークステーションを概略的に表す図５に関して説明する。本発明に従って共同作業を行うために、ディストリビュータ（ｄｉｓｔｒｉｂｕｔｏｒ）コンポーネント（５１ａ、５１ｂ）、フィーチャモデラ（５３ａ、５３ｂ）、および、存在する場合に、関連する対話コンポーネント（５２ａ、５２ｂ）（この例では制約ソルバ）が、同一でなければならない。しかし、アプリケーションは、同一である必要がない。たとえば、アプリケーションを、ワークステーション１ではＣＡＤシステムとし、ワークステーション２では仮想製品データ管理システムとすることができる。
【００４６】
ここで、幾何モデラ（５４ａ、５４ｂ）に焦点を合わせる。好ましい実施形態では、ネットワークを介して送信されるコマンドによって、フィーチャが管理される。フィーチャには、コマンドの実行に必要なモデルの再構成に使用されるセルを識別するジェネリックネームが含まれる。幾何モデラが、ワークステーション１とワークステーション２で同一である場合には、共同作業は、幾何モデラが「永続（ｐｅｒｓｉｓｔｅｎｔ）ジェネリックネーミング」を使用する場合に、本発明の下で可能である。「永続」ジェネリックネーミングは、ジェネリックネームサーバがセルにジェネリックネームを割り当てた後に、その特定の名前が、その後、そのセルを参照するのに必ず使用される、一部の幾何モデラの態様を指す。永続ジェネリックネーミングが使用される場合に、ジェネリックネームは、モデルが修正された時に変化しない。これは、たとえばセルを除去する形でモデルが変更される場合に発生する可能性がある、セルがモデルの一部でなくなる場合にもあてはまる。永続ジェネリックネーミングが使用される時には、コマンドを受信した時のワークステーション側の混乱がない。コマンドは、変換の必要なしに実行することができる。というのは、モデルのセルのすべてのジェネリックネームが、両方のワークステーションで同一になるからである。本発明の好ましい実施形態では、ワークステーションのすべてが、同一の幾何モデラを有し、その幾何モデラで、永続ジェネリックネーミングが使用される。
【００４７】
しかし、すべての幾何モデラが永続ジェネリックネーミングを使用するわけではない。幾何モデラのなかには、変更が行われるたびにモデルのセルのそれぞれに新しい名前を割り当てるものと、所与の時の幾何モデラの状態に依存するジェネリックネームを使用するものがある。ワークステーションが、永続ジェネリックネーミングを使用しない幾何モデラを備えている場合には、ジェネリックネームを含むコマンドを受信した時に、混乱が生じる可能性がある。送信されたジェネリックネームは、特にモデルが修正され、その結果、起点ワークステーションでのモデルと同一の状態でなくなった場合に、受信側のワークステーションで判読不能になる可能性がある。その場合には、コマンドを受信側ワークステーションで理解できるようにするために、モデルのセルを識別する、より高水準の方法が必要である。セルを識別するより高水準の方法は、以下で完全に説明する「セル記述子」の使用を介して提供される。
【００４８】
同様に、幾何モデラがワークステーションの間で異なる場合に、セル記述子を使用しなければならない。セル記述子が使用される場合には、各ワークステーションが、以下で説明する、同一のセル記述子インタープリタを備えていなければならない。
【００４９】
あるアプリケーションが幾何モデラを使用しない場合であっても、ディストリビュータコンポーネントがフィーチャモデラレベルで機能するので、協調設計が可能であることに留意されたい。この情況は、たとえば、ユーザが、モデルの表現をユーザにグラフィカルに表示しないアプリケーション（モデルの部品およびこれらの部品のコストに焦点を合わせるＰＤＭコスト制御システムなど）を実行している場合に生じる可能性がある。その場合には、ユーザワークステーションが幾何モデラを備える必要はなく、共同作業が可能である。
【００５０】
セル記述子
セル記述子の詳細な説明を、図６に示された例を参照することによって行う。図６では、モデルが、ＣＡＤシステムディスプレイに示されている。ワッフル焼き型に似たモデル２０が、２つの側面と上面が可視になるように表示されている。この特定の例では、ディスプレイが、右側のモデル表示部分２１、左側のフィーチャツリー部分２２、およびディスプレイの上部に沿ったメニューツールバー２３に分割されている。ディスプレイの構成を、当業者に明白な、多数の形で変更できることを理解されたい。
【００５１】
この特定の例では、ユーザが、上面の持ち上げられた部分の辺（代表的な１つが符号２４によって指定されている）のすべてにフィレットを置くことを望む。実際には、図６には、例示を簡単にするために、フィレットが既に定位置にあるモデルが示されている。図６から簡単にわかるように、フィレットが配置される辺の数は、かなり多い（すなわち、６４辺）。既存のシステムでは、フィレットコマンドのコンテキストとして識別されるように、各辺を別々に指定しなければならないはずである。これは、既存のシステムでは、たとえば、カーソルを各辺の上に置き、Ｃｔｒｌキーを押し下げたままでマウスをクリックすることによって、行うことができる。しかし、本発明を用いると、所望の辺のすべてを、単純で直観的な構文を使用してユーザが作成する１つのスクリプトで識別することができる。したがって、好ましい実施形態では、所望の辺のすべてを、２つのユーザ対話だけで識別し、操作することができる。
【００５２】
したがって、この例では、ユーザが、モデルの辺のいずれかを選択し、フィレットがその辺に置かれることを指定することによって、フィレットコマンドを開始する。実際には、ユーザは、辺２４などの、ディスプレイ内で簡単に選択可能である辺を選択するが、ユーザは、コマンドを開始するために、どの辺でも選択することができる。これが行われた時に、ユーザは、セル記述子スクリプトを記述することによって、システムにフィレットを置かせたい１つまたは複数の辺を指定することができる。この例では、ユーザが、この目的のために指定されたディスプレイ上の区域２５内でセル記述子をタイプする。この例では、ユーザが、次の代表的なスクリプトを記述する。
【００５３】
"{body=<^^P> dim=1 neighbor={dim=2 attribute="UP"}}"
このスクリプトは、部品（ｂｏｄｙ＝＜＾＾Ｐ＞）から、「ＵＰ」属性を持つ（ａｔｔｒｉｂｕｔｅ＝″ＵＰ″）隣り合う（ｎｅｉｇｈｂｏｒ）面（ｄｉｍ＝２）に接続された辺（ｄｉｍ＝１）を選択することを意味する。
【００５４】
したがって、システムは、所与のセル記述子に一致する辺のそれぞれにフィレットを追加するように指示される。システムは、このスクリプトを実行し、スクリプトに一致するセルのリストを返す。その後、フィレットコマンドが、リストのセルのそれぞれに対して実行される。
【００５５】
この例では、本発明によって達成される、生産性の大きな改善が示される。所望の辺を１つずつ選択し、各辺に対してフィレットコマンドを実行しなければならないのではなく、ユーザは、１つのフィレットコマンドだけを指定し、所望の辺のすべてを識別する単純なスクリプトを記述するだけでよい。スクリプトが、上で述べた制約の１つまたは複数の存在を伝えるならば、スクリプトの記述に使用される特定の構文を変更することができることが、当業者には理解されるであろう。
【００５６】
本発明によって提供されるツールの威力を示すもう１つの例を示す。やはり図６に焦点を合わせると、フィーチャツリーから、このモデルが、６つの「ブラインドポケット（ｂｌｉｎｄ  ｐｏｃｋｅｔ）」が上面に適用された箱からなることがわかる。ブラインドポケットのうちの３つは、箱の１側面に平行であり、残りの３つは、最初の３つのブラインドポケットに垂直に走る。これによって、箱の上面の「ワッフル焼き型」または「板チョコ」パターンが作られる。ユーザが、ワッフル焼き型面を有する面の外側の辺だけにフィレットを追加することを望むと仮定する。ブラインドポケットが追加された時に作成された、そのような辺が、１６個（面ごとに４個）ある。これらの１６個の辺は、ブラインドポケットの追加の前に箱の上面に沿って存在した元の４つの辺の残りの部分である。したがって、これらは、モデルのヒストリデータを使用して定義することができる。フィレットコマンドを開始した後に、ユーザは、フィレットを追加しなければならない辺が、ブラインドポケットの追加の前に箱の上面に接続されていた辺であることを指定するスクリプトを記述する。そのスクリプトは、次のようになる。
【００５７】
"{body=<^^P> dim=1 from={body=^B dim=1} neighbor={dim=2 attribute="UP"}}"
このスクリプトは、部品（ｂｏｄｙ＝＜＾＾Ｐ＞）から、「ＵＰ」属性を持つ（ａｔｔｒｉｂｕｔｅ＝″ＵＰ″）隣り合う（ｎｅｉｇｈｂｏｒ）面（ｄｉｍ＝２）に接続された箱Ｂの辺からの（ｆｒｏｍ＝｛ｂｏｄｙ＝＾Ｂ  ｄｉｍ＝１｝）辺（ｄｉｍ＝１）を選択することを意味する。
【００５８】
前の例では、ユーザが、１つのスクリプトを用いて、直接にモデル自体の中にあるのではなく、ヒストリデータにある情報を使用して１６個の辺を指定することができる。これによって、設計プロセスが簡単になる。上で説明した制約のさまざまな組み合わせを介して、ユーザが、比較的簡単にモデルの望みの部分を選択できることがわかる。
【００５９】
さらに、簡単に理解でき、ユーザの論理に直接に関係する制約を使用することによってセル記述子が構成されるという事実の部分的な結果として、生産性の大きな改善が達成されることがわかる。システムがセル記述子を理解し、適用する全般的な処理を、これから説明する。図７に焦点を合わせると、セル記述子処理システムの概略表現が示されている。ユーザが、セルまたはセルの組をターゲットにすることを望む時に、そのユーザは、セル記述子スクリプト３０内で、上で説明したように、ターゲットを定義する制約または制約のシーケンスを宣言する。システムは、最初に宣言された制約から始めて、モデル内のセルの組全体を調べて、制約を満たすセルだけを保存する。複数の制約が宣言された場合に、システムは、前のレベルで保存されたセルのサブセットに対して次の制約を適用する。この「フィルタリング」処理は、すべての制約が適用された時に終了する。適用することができる制約の組３２は、寸法、近傍、ヒストリ、属性、およびジオメトリに関して上で説明した制約である。図７の、インタープリタとＣＡＤシステムの間の矢印は、インタープリタからシステムの適当な部分へのコードの交換を意味する。インタープリタは、セル記述子内のフィルタに基づいて、システムのどの部分にアクセスして所望のセル情報を得るかを判定する。処理の終りで使用可能なセルの組３３は、ユーザによってセル記述子内で設定されたすべての判断基準を満たすセルの組である。その後、対応するセルを、ユーザ定義コマンドに従って操作することができる。
【００６０】
図７では、インタープリタ３１が、セルのリストを得るために幾何モデラ３４とインタフェースすることが示されている。インタープリタは、セル記述子の構文を判読し、ＣＡＤシステムのうちで、フィルタの制約を満たすセルのリストを得るためにアクセスしなければならない部分を、フィルタごとに判定する。セル記述子スクリプトが、セル記述子が作られたシステムと異なる幾何モデラを使用するシステムによって処理される場合には、インタープリタは、使用される特定の幾何モデラについて、モデラのうちで、セル記述子の制約を満たすセルのリストを得るためにアクセスしなければならない部分を判定する機能もサービスする。本発明のセル記述子は、すべてのＣＡＤシステムに対処するのに十分に一般的である。生成される結果のセルのリストは、使用されるシステムに無関係に同一である。
【００６１】
図８を参照すると、システムがセル記述子を理解し、適用する際の全般的な処理が示されている。本発明の処理は、システムがセル記述子を受け取る時（４０）に開始される。前に述べたように、セル記述子は、ユーザによってローカルに生成される場合と、別のユーザまたはシステムから通信ネットワークを介してシステムによって受信される場合がある。セルの識別（「セルＩＤ」）を保管するリストをリセットし（４１）、インタープリタが、セル記述子スクリプト内の最初のフィルタを選択する（４２）。その後、インタープリタは、最初のフィルタまたは制約の要件を満たすセルＩＤのリストについて、幾何モデラに尋ねるアルゴリズムを起動する（４３）。これに応答して、幾何モデラが、制約を満たすセルＩＤのリストを作成し（４４）、それが、セルＩＤのリストに保管される。その後、システムが、セル記述子に他のフィルタがあるかどうかを判定する（４５）。そうである場合には、開始点として前のレベルで識別されたセルのサブセットを使用して、次のフィルタについてこの処理を繰り返す。そのようなセルのセルＩＤが保管され、この処理は、セル記述子内のフィルタのすべてが適用され、セルＩＤの最終的なリストが保管されるまで繰り返される。
【００６２】
本発明は、「マクロ」の使用を容易にすることによる生産性の大きな改善も提供する。マクロは、ユーザが複数のアクションを一緒に結び付け、１ステップでそれらのアクションを活動化できるようにする、マクロコマンドである。ＣＡＤ／ＣＡＭ／ＣＡＥ／ＰＬＭアプリケーションでは、ユーザが、設計プロセス中に繰り返して使用したい一連のコマンドをマクロに組み立てることができる。たとえば、ユーザが、「上」に面するオブジェクトの面のそれぞれに面仕上げを追加し、さらに、その面の色を指定することを望む場合がある。このユーザは、選択された面のそれぞれに色を追加し、各面の面仕上げを指定するマクロを作成することができる。ユーザは、その後、直列の形で「上」面を個別に選択し、各面に対してマクロを実行する。
【００６３】
アクションが行われる部品の所望の部分（この例では「上」に面する面）も選択するマクロを記述できると、非常に有用である。これは、既存のシステムでは可能でない。というのは、上で述べたように各面のジェネリックネームが一意であり、したがって、マクロ内での使用に従わないからである。しかし、本発明のセル記述子を使用すると、そのようなセルをマクロの一部として指定することができる。本発明のこの態様は、生産性を高めるための強力なツールである。そのようなマクロは、所与のオブジェクト内で面から面へ転送可能であるだけではなく、異なるオブジェクトに転送可能とすることができる。実際に、本明細書で説明する種類のマクロは、ソフトウェア独立の言語で記述され、転送先のシステムがセル記述子を解読するインタープリタを備える場合に、異なるＣＡＤシステムに転送することさえできる。
【００６４】
本発明のもう１つの態様では、セル記述子によって、ユーザの（または会社の）知識に基づく設計概念の導入のための媒体が提供される。たとえば、上で、図４の「ワッフル焼き型」モデルの「すべての外部辺」へのフィレットの適用の場合を述べた。しかし、知識ベース制約の導入を介して、ユーザが、セル記述子を使用して、オブジェクトの「すべての危険な辺」を選択することができる。ユーザは、危険な辺の定義（たとえば、指定された最小値未満の面取り半径を有する辺）を、定義するか別のソースからインポートするだけでよい。「危険」の定義は、マクロ内で見つかる。
【００６５】
前述は、既存の状態または「静的状態」でのモデル内でセルを見つけるのに使用される、知識ベース制約の使用の例である。本発明のセル記述子を使用すると、ユーザは、セルを「動的に」指定することもできる、すなわち、セル記述子によって、モデル内で固定されているのではなく、セル記述子の解釈中に計算される、セルのパラメータの値が指定される。例として、ロボットなどの装置が、作業セル内で位置決めされ、ユーザが、ロボットが円弧を介して回転される時に、モデル（ロボット）のどのセルが作業セル内で隣接するオブジェクトと衝突するかを知ることを望む場合を考慮されたい。本発明のセル記述子は、所望のセルを見つけるためにＣＡＤシステムの既存の機能性にアクセスするために記述することができる。
【００６６】
本発明の他の態様では、本発明のセル記述子方法を使用して、「生成文法スクリプト（ｇｅｎｅｒａｔｉｖｅ  ｓｃｒｉｐｔ）」すなわち、オブジェクトの純テキスト記述を作成することができる。たとえば、図６を参照すると、この「ワッフル焼き型」モデルは、代表的な例として下記のテキストを使用して、スクリプト言語だけを使用して作成することができる。
0003762719.tif 000002
0003762719.tif 000003
前述の例では、モデルが、部品「Ｐ」からなるものとして定義され、この部品「Ｐ」が、箱「Ｂ」および６つのブラインドポケットからなる。ワッフル焼き型部品Ｐの基本形状は、指定された高さ、幅、および奥行き寸法（プロパティ）を有する箱Ｂである。したがって、この箱が、作成され、３次元（ｘ、ｙ、ｚ）座標系で指定された位置に配置される。箱の上面のワッフル焼き型パターンは、上で述べたように箱に６つの「ブラインドポケット」を追加することによって作られる。６つのブラインドポケットは、ブラインドポケットの高さ、幅、および奥行きを指定し、ブラインドポケットがｘ、ｙ、ｚ座標系のどこに配置されるかを指定して、箱の上面の形状を変更することによって定義される。ブラインドポケットのそれぞれが、部品内に空所を作り、これによって、最終的に箱の上部のワッフル焼き型構成がもたらされる。上の例のスクリプトでは、第１のブラインドポケットだけが定義されている。第２から第６のブラインドポケットは、類似する形で定義されるが、ｘ、ｙ、ｚ座標が異なる。箱が作られる時に、ＣＡＤシステムが、モデルの各幾何セルのジェネリックネームを作成する。
【００６７】
前述のスクリプトを用いてモデルの基本形状を作成したので、ユーザは、図６に示されているように、ワッフル焼き型パターンの辺にフィレットを置く必要がある。しかし、これは、本発明のセル記述子なしでは実現可能でない。というのは、フィレットが適用される辺が、簡単には識別されないからである。上で述べたように、辺のそれぞれが、システム論理に基づく一意のジェネリックネームを有し、したがって、単一のスクリプトで、１つまたは複数の辺を参照し、それらにフィレットフィーチャを追加する方法はない。上辺にフィレットを追加するためには、セル記述子が必要である。上で示したスクリプトを、次のようにセル記述子を追加して修正する。
0003762719.tif 000004
ここで、セル記述子によって、半径５．０のフィレットが、セル記述子内で指定された辺に置かれることが指定される。
【００６８】
本発明のセル記述子によって、ユーザが、オブジェクトのグラフィカル描写を参照せずに、完全にテキストスクリプトからオブジェクトを作成できるようになることがわかる。ユーザは、自分の頭の中でオブジェクトを視覚化するだけでよく、そのオブジェクトを作成するスクリプトを記述することができる。この特徴は、本発明がユーザの生産性を高める方法のもう１つの例である。
【００６９】
協調設計でのセル記述子の使用
したがって、本発明の好ましい実施形態によれば、ユーザＡが、自分のワークステーションでアクションを実行する。その後、ワークステーションＡシステムが、アクションのコンテキストを考慮に入れて、ユーザアクションをコマンドに変換する。
【００７０】
システムは、ワークステーションＡでモデルに対してコマンドを実行し、コマンドの識別およびコマンドに対応するトランザクション（イベントのリスト）を、ワークステーションＡのトランザクションジャーナルにログ記録する。その後、システムは、セッションに登録された他のすべてのユーザのワークステーションにコマンドの識別を送信する。
【００７１】
本発明の一実施形態では、セル記述子の使用が必要であるかどうかを調べるために、協調セッションのユーザが打ち合わせる。必要である場合には、モデル変更を開始するユーザが、セル記述子を使用してそれを行う。セル記述子が、受信側ワークステーションで解釈され、コマンドが実行される。本発明のもう１つの実施形態では、送信された識別データからコマンドを導出することができない受信側ワークステーションが、ワークステーションＡにメッセージを送り返すことができる。その場合には、ユーザＡが、セル記述子を使用したコマンドを再送信することができる。代替案では、すべてのワークステーションが、さまざまなコマンドに関する他のワークステーションの能力のディレクトリを保管することができる。その場合には、Ａが、セル記述子を使用するかどうかについて知らされる。
【００７２】
受信側ワークステーションＢでは、コマンドが、要求されるフィーチャイベントのシーケンスに関して分析され、モデルが更新される。
【００７３】
本発明のシステムが、従来のクライアント／サーバ編成よりも、ネットワーク障害または機器障害に対してはるかに鈍感であることがわかる。クライアント／サーバ構造では、ネットワーク障害またはサーバ障害が、データの消失をもたらす。本発明の構造では、各ワークステーションが、モデルのマスタであり、その結果、ネットワーク障害またはワークステーションの１つでの障害が、１つまたはすべてのワークステーションに関するセッションの終了をもたらすが、モデル自体に関するデータの消失を伴わない。
【００７４】
また、このシステムは、モデル駆動システムの場合のように、修正が行われるたびにネットワークを介するモデルの新版の転送を必要とするのではない。このシステムは、幾何的な相違に関するデータの転送も必要とせず、コマンドの転送だけを必要とする。これによって、ネットワークを介して交換されるデータの量がかなり制限される。
【００７５】
共同作業は、多くのいわゆる「リアルタイム」システムの場合のように同期式であるだけではなく、さまざまなワークステーションによっていつでも並列にデータを送受信できるという点で、完全に同期式である。
【００７６】
前述の方法を、すべてのＣＡＤ／ＣＡＭ／ＣＡＥ／ＰＬＭシステムを含む、オブジェクトを設計するシステムに適用できることを理解されたい。本発明は、ディジタル電子回路で、またはコンピュータハードウェア、ファームウェア、ソフトウェア、もしくはこれらの組合せで実施することができる。本発明の装置は、プログラマブルプロセッサによる実行のために計算機可読記憶装置内で有形に実施されるコンピュータプログラム製品で実施することができ、本発明の方法ステップは、入力データを操作し、出力を生成することによって本発明の機能を実行するための命令のプログラムを実行するプログラマブルプロセッサによって実行することができる。
【００７７】
本発明は、データ記憶システム、少なくとも１つの入力装置、および少なくとも１つの出力装置との間で、データおよび命令を受け取り送るために結合された、少なくとも１つのプログラマブルプロセッサを含むプログラマブルシステム上で実行可能な、１つまたは複数のコンピュータプログラムで有利に実施することができる。アプリケーションプログラムは、高水準手続き言語またはオブジェクト指向言語、もしくは、所望の場合にアセンブリ言語または機械語で実施することができ、どの場合でも、言語は、コンパイルされる言語または解釈される言語とすることができる。アプリケーションは、ローカルなＪａｖａ（登録商標）アプリケーションとして、またはウェブブラウザの内部で実施することができる。
【００７８】
一般に、プロセッサは、読取専用メモリまたはランダムアクセスメモリから命令およびデータを受け取る。コンピュータプログラム命令およびデータを有形に実施するのに適する記憶装置には、たとえば、ＥＰＲＯＭ、ＥＥＰＲＯＭ、およびフラッシュメモリデバイスなどを含む半導体メモリデバイス、内蔵ハードディスクおよび取外し可能ディスクなどの磁気ディスク、光磁気ディスク、およびＣＤ−ＲＯＭディスクを含む、すべての形態の不揮発性メモリが含まれる。前述のいずれであっても、特別に設計されたＡＳＩＣ（特定用途向け集積回路）によって補足するか、それに組み込むことができる。
【００７９】
本発明の好ましい実施形態を説明した。本発明の趣旨および範囲から逸脱せずに、さまざまな修正を行うことができることを理解されたい。したがって、他の実施形態は、特許請求の範囲に含まれる。
【００８０】
【発明の効果】
以上説明したように本発明によれば、ＣＡＤモデリングでの非常に高められた生産性を提供し、とりわけ、同期協調設計を提供することができる。
【図面の簡単な説明】
【図１】好ましくはワークステーションシステムとして、本発明と共に使用することができる、コンピュータシステムのブロック図である。
【図２】モデルの共有または修正を望む、本発明のユーザの動作を表す流れ図である。
【図３】協調セッションへの参加を望む、本発明のユーザの動作を表す流れ図である。
【図４】協調セッション中の本発明のシステムの代表的な動作を表す流れ図である。
【図５】本発明による協調設計を達成するのに必要なシステムの概略図である。
【図６】本発明によるセル記述子スクリプト入力を示す、モデルのＣＡＤシステム表示の例の図である。
【図７】本発明による、セル記述子からセルのリストへの進行を示す概略図である。
【図８】本発明のセル記述子によるセルのリストを作成するために、本発明のシステムによって行われるステップをグラフィカルに示す図である。
【符号の説明】
２０  モデル
２１  モデル表示部分
２２  フィーチャツリー部分
２３  メニューツールバー
２４  辺
２５  区域
３０  セル記述子スクリプト
３１  インタープリタ
３２  制約の組
３３  セルの組
３４  幾何モデラ
５１ａ  ディストリビュータコンポーネント
５１ｂ  ディストリビュータコンポーネント
５２ａ  対話コンポーネント
５２ｂ  対話コンポーネント
５３ａ  フィーチャモデラ
５３ｂ  フィーチャモデラ
５４ａ  幾何モデラ
５４ｂ  幾何モデラ
【図１】
0003762719.tif 000005
【図２】
0003762719.tif 000006
【図３】
0003762719.tif 000007
【図４】
0003762719.tif 000008
【図５】
0003762719.tif 000009
【図６】
0003762719.tif 000010
【図７】
0003762719.tif 000011
【図８】
0003762719.tif 000012