(57)【要約】【課題】ＣＡＤシステムにおいて、３次元モデルを更新する際にさらなる動作高速化を達成できる方法を提供する。【解決手段】コンピュータに、複数のコンポーネントで構成される３次元モデルを生成する工程と、複数のコンポーネントのうちの１つに変更を施す工程と、複数のコンポーネントのうちの１つに変更を施す結果として３次元モデルを変化させる可能性がある、複数のコンポーネントのうちの他のコンポーネントを決定する工程と、複数のコンポーネントのうちの変更が施されるコンポーネント、および３次元モデルを変化させる可能性があるとして決定された、複数のコンポーネントのうちの他のコンポーネントを再生成する一方、３次元モデルを変化させる可能性がない、複数のコンポーネントのうちの残りのコンポーネントは再生成しないことにより、３次元モデルを更新する工程とを備える。【選択図】図４
2010524119.tif 000002
【特許請求の範囲】
【請求項１】
３次元モデルを更新する命令を備えた、コンピュータ読み取り可能なデータ記憶媒体であって、
前記命令が、コンピュータに、
複数のコンポーネントで構成される３次元モデルを生成する手順と、
前記複数のコンポーネントのうちの１つに変更を加える手順と、
前記複数のコンポーネントのうちの前記１つに変更が加えられた結果として、前記３次元モデルを変化させる可能性がある、前記複数のコンポーネントのうちの他のコンポーネントを決定する手順と、
前記複数のコンポーネントのうちの変更が加えられたコンポーネント、および前記３次元モデルを変化させる可能性があるとして決定された、前記複数のコンポーネントのうちの前記他のコンポーネントを再生成する一方、前記３次元モデルを変化させる可能性がない、前記複数のコンポーネントのうちの残りのコンポーネントは再生成しないことにより、前記３次元モデルの変更後バージョンを構築する手順とを実行させ、
前記変更後バージョンは、前記複数のコンポーネントの全てのコンポーネントを再生成することによって前記３次元モデルを更新した場合に得られる変更後バージョンと同一である、コンピュータ読み取り可能なデータ記憶媒体。
【請求項２】
請求項１において、前記複数のコンポーネントのうちの前記変更が加えられるコンポーネントが、フィーチャおよびパラメータのいずれかである、コンピュータ読み取り可能なデータ記憶媒体。
【請求項３】
請求項１において、前記３次元モデルを変化させる可能性がある、前記複数のコンポーネントのうちの他のコンポーネントを決定する前記手順をコンピュータに実行させる命令が、命令を備え、この命令がコンピュータに、
前記複数のコンポーネントのうちの前記変更が加えられたコンポーネントを検査して、この変更が加えられたコンポーネントと、この変更が加えられたコンポーネントが親コンポーネントとなる、前記複数のコンポーネントのうちの前記他のコンポーネントうちの１つとの親子リレーションシップの存在を発見する、検査手順を実行させる、コンピュータ読み取り可能なデータ記憶媒体。
【請求項４】
請求項１において、前記３次元モデルを変化させる可能性がある、前記複数のコンポーネントのうちの他のコンポーネントを決定する前記手順をコンピュータに実行させる命令が、命令を備え、この命令がコンピュータに、
前記複数のコンポーネントのうちの前記変更が加えられたコンポーネントを検査して、この変更が加えられたコンポーネントと、この変更が加えられたコンポーネントと隣接するトポロジカルなエンティティを有する、前記複数のコンポーネントのうちの前記他のコンポーネントのうちの１つとのトポロジカルな関係の存在を発見する、検査手順を実行させる、コンピュータ読み取り可能なデータ記憶媒体。
【請求項５】
請求項１において、前記３次元モデルを変化させる可能性がある、前記複数のコンポーネントのうちの他のコンポーネントを決定する前記手順をコンピュータに実行させる命令が、命令を備え、この命令がコンピュータに、
前記複数のコンポーネントのうちの前記他のコンポーネントのうちの少なくとも１つの位置と比較するように、前記複数のコンポーネントのうちの前記変更が加えられたコンポーネントの少なくとも１つの範囲を計算し、前記複数のコンポーネントのうちの前記変更が加えられたコンポーネントと前記複数のコンポーネントのうちの前記他のコンポーネントのうちの少なくとも１つとの交差を決定する手順を実行させる、コンピュータ読み取り可能なデータ記憶媒体。
【請求項６】
請求項１において、さらに、命令を備え、
この命令がコンピュータに、
複数のトポロジカルなエンティティから構成される前記３次元のモデルの表現を構築する手順と、
前記複数のコンポーネントのうちの１つに変更を加えるよりも前に構築され、かつ、前記複数のコンポーネントのうちの前記他のコンポーネントとの間に関係を有するエンティティを、前記複数のトポロジカルなエンティティの中から取り除く手順とを実行させる、コンピュータ読み取り可能なデータ記憶媒体。
【請求項７】
請求項１において、さらに、命令を備え、
この命令がコンピュータに、
複数のトポロジカルなエンティティから構成される前記３次元のモデルの表現を構築する手順と、
前記複数のコンポーネントのうちの前記変更が加えられたコンポーネントおよび前記複数のコンポーネントのうちの前記他のコンポーネントを再生成することによるトポロジカルな影響が反映されるように、前記複数のトポロジカルなエンティティのうち、前記複数のコンポーネントのうちの１つに変更を加えるよりも前に構築されたエンティティに変更を加える手順とを実行させる、コンピュータ読み取り可能なデータ記憶媒体。
【請求項８】
請求項７において、さらに、命令を備え、
この命令がコンピュータに、
有効なモデルを維持するために、前記複数のトポロジカルなエンティティのうちの少なくとも１つのエンティティを再構築する手順を実行させる、コンピュータ読み取り可能なデータ記憶媒体。
【請求項９】
コンピュータ支援設計モデルを更新する、コンピュータにより実行される方法であって、
前記コンピュータ支援設計モデルを複数のコンポーネントとして定義する工程と、
前記複数のコンポーネントのうちの１つのコンポーネントである第１のコンポーネントに変更を適用する工程と、
前記第１のコンポーネントと前記複数のコンポーネントのうちの別のコンポーネントとの間に関係が存在することを決定するために、前記複数のコンポーネントを分析する工程と、
前記第１のコンポーネントと、前記複数のコンポーネントのうちの１つのコンポーネントである第２のコンポーネントとの間の前記関係を発見する工程と、
前記第２のコンポーネントを特定する特定データをデータ構造に格納する工程と、
前記第２のコンポーネントと、前記複数のコンポーネントのうちの他のコンポーネントとの間に別の関係が存在するか否かを決定するように、前記第２のコンポーネントを検査する工程と、
前記複数のコンポーネントのうちの前記他のコンポーネントのうち、前記第２のコンポーネントと前記別の関係を有するコンポーネントを特定する特定データを、前記データ構造に追加する工程と、
前記第１のコンポーネント、および前記複数のコンポーネントのうち、前記特定データによって特定されるコンポーネントを再生成する一方、前記複数のコンポーネントのうち、前記特定データによって特定されない他のコンポーネントは再生成しない工程とを備え、
前記再生成工程は、前記複数のコンポーネントの全てのコンポーネントを再生成することによって更新された場合のコンピュータ支援設計モデルと同一であるコンピュータ支援設計モデルの変更後バージョンを構築する、コンピュータ支援設計モデル更新方法。
【請求項１０】
請求項９において、前記第１のコンポーネントと前記第２のコンポーネントとの間の前記関係が、親子リレーションシップ、隣接関係、および空間的な重複関係のいずれかである、コンピュータ支援設計モデル更新方法。
【請求項１１】
請求項１０において、前記隣接関係は、前記第１のコンポーネントおよび前記第２のコンポーネントが同一のトポロジカルなエンティティを共有することによるものである、コンピュータ支援設計モデル更新方法。
【請求項１２】
請求項１０において、さらに、
前記第１のコンポーネントを取り囲む第１のバウンディングボックスを作成する工程と、
前記第２のコンポーネントを取り囲む第２のバウンディングボックスを作成する工程と、
前記第１のバウンディングボックスと前記第２のバウンディングボックスとの交差を検出する工程と、
前記交差に起因した前記空間的な重複関係が存在することを決定する工程とを備えた、コンピュータ支援設計モデル更新方法。
【請求項１３】
請求項９において、前記別の関係が、親子リレーションシップ、隣接関係、および空間的な重複関係から構成されるグループに含まれる、コンピュータ支援設計モデル更新方法。
【請求項１４】
請求項９において、前記第１のコンポーネントが、フィーチャまたはパラメータである、コンピュータ支援設計モデル更新方法。
【請求項１５】
請求項９において、さらに、
複数のトポロジカルなエンティティおよび対応する複数の幾何学的なエンティティから構成される前記コンピュータ支援設計モデルの表現を構築する工程と、
前記複数のトポロジカルなエンティティのうち、前記第１のコンポーネントに対して変更を適用するよりも前に構築され、かつ、前記複数のコンポーネントのうちの前記特定データによって特定されるコンポーネントとの間に関係を有するエンティティを取り除く工程とを備えた、コンピュータ支援設計モデル更新方法。
【請求項１６】
請求項９において、さらに、
複数のトポロジカルなエンティティから構成される前記コンピュータ支援設計モデルの表現を構築する工程と、
前記第１のコンポーネントおよび前記複数のコンポーネントのうちの前記特定データによって特定されるコンポーネントを再生成した影響に応じて、前記複数のトポロジカルなエンティティのうち、前記第１のコンポーネントに対して変更を適用するよりも前に構築されたエンティティに、変更を加える工程とを備えた、コンピュータ支援設計モデル更新方法。
【請求項１７】
請求項９において、前記第１のコンポーネントおよび前記第２のコンポーネントのうちの少なくとも１つがフィーチャであり、
このフィーチャは、前記特定データによって特定されない他のフィーチャに属する面と合体した面を有し、
前記フィーチャの前記合体した面および前記他のフィーチャの面が、前記第１のコンポーネントおよび前記複数のコンポーネントのうちの前記特定データによって特定されるコンポーネントを再生成するよりも前に分離している、コンピュータ支援設計モデル更新方法。
【請求項１８】
３次元モデルを記憶するデータ記憶システムに動作可能に接続されたデジタルプロセッサと、
前記デジタルプロセッサに動作可能に接続され、命令を含むデータ記憶メモリとを備えたコンピュータ支援設計システムであって、
前記命令が前記プロセッサに、
複数のコンポーネントから構成される３次元モデルを構築する手順と、
前記複数のコンポーネントのうちの１つのコンポーネントに変更を加える手順と、
前記複数のコンポーネントのうちの他のコンポーネントを分析して、前記複数のコンポーネントのうちの変更が加えられたコンポーネントへの依存関係の存在を決定する手順であって、これにより、前記複数のコンポーネントのうちの前記変更が加えられたコンポーネントへの依存関係が決定されたコンポーネントを、前記複数のコンポーネントの中から得る手順と、
前記複数のコンポーネントのうちの前記変更が加えられたコンポーネント、および前記複数のコンポーネントのうちの前記依存関係が決定されたコンポーネントのみを再生成することにより前記３次元モデルを再生成する手順とを実行させ、
前記３次元モデルを再生成する前記手順により、前記複数のコンポーネントの全てのコンポーネントを再生成した場合と同一の更新モデルを作成する、コンピュータ支援設計システム。
【請求項１９】
請求項１８において、前記依存関係が、親子依存関係およびトポロジカルな依存関係のいずれかであるコンピュータ支援設計システム。
【請求項２０】
請求項１８において、さらに、命令を備え、
この命令が前記プロセッサに、
前記複数のコンポーネントのうちの前記変更が加えられたコンポーネントが、前記複数のコンポーネントのうちの前記他のコンポーネントのうちの１つのコンポーネントと幾何学的に重複することを決定する手順を実行させる、コンピュータ支援設計システム。
【発明の詳細な説明】
【関連出願】
【０００１】
本願は、2007年4月12日出願の米国特許出願第11/734,688号の継続出願であって、かつその優先権を主張するものであり、上記出願の全教示は参照により本明細書に引用したものとする。
【技術分野】
【０００２】
本願は、コンピュータ支援設計（ＣＡＤ）に関するものであり、より詳細には、３次元（３Ｄ）ＣＡＤモデルの局所的な更新に関する。
【背景技術】
【０００３】
コンピュータ支援設計（ＣＡＤ）ソフトウェアは、ユーザが複雑な３次元（３Ｄ）モデルを構築および操作することを可能にする。数多くの異なるモデリング手法が、３次元モデルを作成するのに使用される。このような手法の１つとして、ソリッドモデリング手法が挙げられる。ソリッドモデリング手法は、相互に結合したトポロジカル（位相的）なエンティティ（構成単位）（例えば、頂点、稜線（edge）および面（face））の集合であるトポロジカルな３次元モデルを提供する。トポロジカルなエンティティは、これに対応してかつ補助する幾何学的な（geometrical）エンティティ（例えば、点（座標の点）、トリム曲線およびトリム曲面）を有する。幾何学的なエンティティであるトリム曲面は、トポロジカルなエンティティでいえば、トリム曲線に相当する稜線によって境界が決められた面である。一方、幾何学的なエンティティである点（座標の点）は、トポロジカルなエンティティでいえば、頂点に相当する。ＣＡＤシステムには、ソリッドモデリング手法と、パラメトリックモデリング手法のような他のモデリング手法とを組み合わせたものも存在する。パラメトリックモデリング手法は、モデルの種々のフィーチャ（形状要素）およびコンポーネント（構成要素）についての様々なパラメータを定義し、これら様々なパラメータ間の関係に基づいてこれらフィーチャとコンポーネントとの関係を定義するのに用いられる。
【０００４】
設計技術者は３次元ＣＡＤシステムの典型的なユーザである。設計技術者は、３次元モデルの物理的側面および美的側面を設計する人物であり、３次元モデリング手法に熟練している。技術設計者はパーツを作成し、パーツをサブアセンブリに組み立てる。パーツおよびサブアセンブリは、アセンブリを設計するために使用される。
【０００５】
ソリッドモデリングシステムはフィーチャベースの３次元ＣＡＤシステムであり、数多くの幾何学的な構成単位（building block）（以後、フィーチャと称する）を用いてパーツが構築される。フィーチャの例には、ボス（押し出し突起形状）、フィレット（ラウンド角が丸められた形状）、面取り、切抜き（カット）、孔、シェル（開口を有する形状）、ロフト（複数の断面を通る曲面）およびスイープ（ある図形がある経路に沿って移動することで形成される軌跡が描く形状）が含まれる。市販されているフィーチャベースのモデリングシステムには、米国マサチューセッツ州コンコルドのSolidWorks社から入手可能なＳｏｌｉｄＷｏｒｋｓ（登録商標）２００７ソフトウェアシステムが含まれる。
【発明の概要】
【発明が解決しようとする課題】
【０００６】
フィーチャベースのＣＡＤシステムは、ヒストリ（履歴）ベースのＣＡＤシステムかもしれない。ヒストリベースのＣＡＤシステムとは、特定のフィーチャが、先にパーツに含まれていた全てのフィーチャに影響を及ぼし、後にパーツに導入されたフィーチャには全く影響を及ぼさないＣＡＤシステムのことを意味する。これにより、フィーチャベースの３次元ＣＡＤシステムを用いて構築されたパーツの物理的構造は、設計技術者がフィーチャを作成する順番に依存する場合がある。例えば、ボスが孔よりも先に定義され、かつ当該ボスが孔と同一の空間を占める場合、孔とボスが一致する箇所（交差する部分）のボスからマテリアル（部材の一部分）が取り除かれる。反対に、ボスが孔の後に定義され、かつ当該ボスが孔と同一の空間を占める場合、孔とボスが一致する個所のボスからマテリアルが取り除かれることはない。
【０００７】
一般的に、ヒストリベースのＣＡＤシステムは、パーツを、フィーチャを順番に並べたリストとして定義する。この順番リストに含まれる各フィーチャは、対応する再生成アルゴリズムをそれぞれ有しており、この再生成アルゴリズムは、対応するフィーチャの定義に従い、順番リストにおいて先に定義されたフィーチャの生成により生じるジオメトリ（幾何表現）を変更する。パーツは、基本的に、一連のフィーチャ動作を実行することで作成される。設計技術者は、パーツを作成する際、典型的には、パーツのフィーチャのリストにフィーチャを１つずつ追加する。フィーチャを変更するには、まず、設計技術者がフィーチャのデータを変更する。そして、ＣＡＤシステムが、設計技術者がフィーチャを導入した当初の順番どおりに全フィーチャを１つずつ再生成することにより、パーツを再作成する。このようにして、フィーチャが変更される。全てのフィーチャが、典型的には、それらが作成された順番に従って順次再生成される。これにより、設計意図の保護、および、パーツがＣＡＤシステムによって適切に構築されることが保証される。さらに、フィーチャを順番に並べたリストを用いることにより、パラメータの変化を容易に管理できるという利点が生じる。
【０００８】
パーツ全体を再生成することは、ＣＡＤシステムの動作に影響を及ぼす。パーツが複雑な場合には、全てのフィーチャを再生成するのに必要な時間および計算資源が膨大になるため、ＣＡＤシステムの動作に特に影響を与えることになる。したがって、１つのフィーチャにおける単一のパラメータを変更するだけでも、更新処理は極めて遅くなってしまう。
【０００９】
ＳｏｌｉｄＷｏｒｋｓ（登録商標）２００３ソフトウェアは、変更が施される（変更が加えられる）フィーチャおよび当該変更が施されるフィーチャよりも後に定義された全てのフィーチャのみを再生成することにより、パーツ全体を再生成することによる動作への影響に対処した。変更が施されるフィーチャよりも後に定義されるフィーチャも再生成することにより、変更が施されるフィーチャのみならず、それよりも後に定義されたフィーチャも、先に定義されたフィーチャに対して適切に影響することを保証している。この場合、パーツ全体は再生成されないものの、変更の施されるフィーチャが履歴の初期段階で定義されたものであれば、動作が遅くなるという問題は残ってしまう。その理由は、このような状況の場合、パーツの大部分を再生成しなければならないからである。変更が施されるフィーチャおよび当該変更が施されるフィーチャよりも後に定義された全てのフィーチャを再生成するため、ＳｏｌｉｄＷｏｒｋｓ（登録商標）２００３ソフトウェア製品のロールバックコマンドおよびロールフォワードコマンドが容易になった。
【課題を解決するための手段】
【００１０】
現行のＣＡＤシステムのさらなる動作高速化が望まれる。このような高速化は、ＣＡＤモデルを更新するのに必要な再生成時間を減少させる効率的な手段を提供することで実現される。後述するように、このような手段の１つは、モデルに変更が施されるたびに再生成が必要とされるフィーチャの数を減少させる。
【００１１】
一般的に、本発明の一態様は、３次元モデルを更新する命令を備えた、コンピュータ読み取り可能なデータ記憶媒体に関する。前記命令は、コンピュータに、（i）複数のコンポーネントから構成される３次元モデルを生成する手順と、（ii）前記複数のコンポーネントのうちの１つに変更を施す（修正する）手順と、（iii）前記複数のコンポーネントのうちの１つに変更を施す結果として前記３次元モデルを変化させる可能性がある他のコンポーネントを決定する手順と、（iv）前記変更が施されるコンポーネント、および前記３次元モデルを変化させる可能性があるとして決定された前記他のコンポーネントを再生成するが、その一方で、前記３次元モデルを変化させる可能性がない、前記複数のコンポーネントのうちの残りのコンポーネントは再生成しない（すなわち、これらのコンポーネントを維持する、および／または未変更のままにする）ことにより、前記３次元モデルの変更後バージョンを構築する手順とを実行させる。この変更後バージョン（変更版）は、前記複数のコンポーネントの各コンポーネントを生成（再生成）することにより前記３次元モデルを修正した場合と同一の結果となる。
【００１２】
前記３次元モデルを変化させる可能性がある前記他のコンポーネントを決定するために、命令は、コンピュータに、前記変更が施されるコンポーネントを調べて、この変更が施されるコンポーネントが親コンポーネントとなる、前記変更が施されるコンポーネントと前記他のコンポーネントうちの１つとの親子リレーションシップが存在するか否かを見出す手順を実行させる。また、命令は、前記変更が施されるコンポーネントを調べて、前記変更が施されるコンポーネントと前記他のコンポーネントのうちの１つとの間に、当該変更が施されるコンポーネントおよび当該他のコンポーネントのうちの１つが隣接するトポロジカルなエンティティを有するトポロジカルな関係が存在するか否かを見出す手順を実行させてもよい。さらに、前記変更が施されるコンポーネントの少なくとも１つの範囲（一方向の長さ）を割り出し、前記他のコンポーネントのうちの少なくとも１つのコンポーネントの位置と比較して、前記変更が施されるコンポーネントと前記他のコンポーネントのうちの少なくとも１つのコンポーネントとの交差（位置が一致する部分を両方のコンポーネントが含むこと）を決定するようにしてもよい。
【００１３】
ある実施形態では、複数のトポロジカルなエンティティから構成される前記３次元のモデルの表現が構築され、（i）前記複数のトポロジカルなエンティティのうち、前記複数のコンポーネントのうちの１つに変更を施す前記手順よりも前に構築され、かつ、前記複数のコンポーネントのうちの前記他のコンポーネントとの間に関係を有するエンティティが取り除かれるか、または（ii）前記複数のコンポーネントのうちの前記変更が施されるコンポーネントおよび前記複数のコンポーネントのうちの前記他のコンポーネントを再生成することによるトポロジカルな影響が反映されるように、前記複数のトポロジカルなエンティティのうち、前記複数のコンポーネントのうちの１つに変更を施す前記手順よりも前に構築されたエンティティに変更が施される。有効なモデルを維持するために、前記複数のトポロジカルなエンティティのうちの１つを再構築するようにしてもよい。
【００１４】
本発明の別の実施形態は、コンピュータ支援設計モデルを更新する、コンピュータにより実行される方法を提供する。このコンピュータ支援設計モデルは一連のコンポーネントとして定義される。前記一連のコンポーネントにおける第１のコンポーネントに変更が施される。これら一連のコンポーネントが分析され、前記第１のコンポーネントと前記一連のコンポーネントのうちの他のコンポーネントとの間に関係が存在するか否かが決定される。前記第１のコンポーネントと第２のコンポーネントとの間の関係が発見され、前記第２のコンポーネントを特定するデータがデータ構造に保管（格納）される。前記第２のコンポーネントが調べられ、当該第２のコンポーネントと、前記一連のコンポーネントにおける他のコンポーネントとの間に別の関係が存在するか否かが決定される。前記一連のコンポーネントにおける前記他のコンポーネントのうち、前記第２のコンポーネントと前記別の関係を有するコンポーネントを特定するデータが、前記データ構造に追加される。前記第１のコンポーネント、および前記一連のコンポーネントのうち、前記特定データによって特定されるコンポーネントは再生成されるが、その一方、前記一連のコンポーネントのうち、前記特定データによって特定されないコンポーネントは再生成されない。このような再生成によって前記コンピュータ支援設計モデルの変更後バージョンが構築され、この変更後バージョンは、前記一連のコンポーネントにおける各コンポーネントを再生成することで更新された場合のコンピュータ支援設計モデルと同一である。
【００１５】
ある実施形態において、前記第１のコンポーネントと前記第２のコンポーネントとの間の前記関係は、親子リレーションシップ、隣接関係、または空間的な重複関係である。また、前記隣接関係は、前記第１のコンポーネントおよび前記第２のコンポーネントが同一のトポロジカルなエンティティを共有することによって生じてもよい。さらに、前記第１のコンポーネントを取り囲むバウンディングボックスおよび前記第２のコンポーネントを取り囲むバウンディングボックスが作成されて、前記バウンディングボックス間の交差（一致する領域が存在すること）が検出されてもよい。そして、この交差によって、前記空間的な重複関係の存在が決定される。
【００１６】
他の実施形態において、前記別の関係は、親子リレーションシップ（親子関係）、隣接関係、または空間的な重複関係であってもよい。また、前記第１のコンポーネントは、フィーチャまたはパラメータであってもよい。
【００１７】
他の実施形態において、本発明の上記方法は、さらに、（a）複数のトポロジカルなエンティティおよび対応する複数の幾何学的なエンティティから構成される前記３次元モデルの表現を構築する工程と、（b）（i）前記複数のトポロジカルなエンティティのうち、前記第１のコンポーネントに対して変更を施すよりも前に構築され、かつ、前記複数のコンポーネントのうちの前記特定データによって特定されるコンポーネントとの間に関係を有するエンティティを取り除く工程、または（ii）前記複数のトポロジカルなエンティティのうち、前記第１のコンポーネントに対して変更を施すよりも前に構築されたエンティティに対して、前記第１のコンポーネントおよび前記特定データによって特定されるコンポーネントを再生成する前記工程による結果に従って変更を施す工程とを備える。
【００１８】
別の実施形態によると、前記第１のコンポーネントおよび前記第２のコンポーネントのうちの少なくとも１つはフィーチャである。このフィーチャは、前記特定データによっては特定されない他のフィーチャに属する他の面と合体する１つの面を有し、この１つの面および前記他の面が、前記第１のコンポーネントおよび前記一連のコンポーネントのうちの前記特定データによって特定されるコンポーネントを再生成する前では、別個である。
【００１９】
本発明の１つ以上の実施形態の詳細は、添付の図面、および以下に続く説明において示す。本発明の他の特徴、目的および利点は、後述の説明、図面および特許請求の範囲から明らかとなるであろう。
【００２０】
上記内容は、添付図面で示されている本発明の実施形態の例に関する以下のより具体的な説明から明らかとなるであろう。なお、同一の参照符号は異なる図面であっても同一部品を指している。これら図面は必ずしも縮尺どおりではなく、代わりに、本発明の実施形態を説明することに重点が置かれている。
【図面の簡単な説明】
【００２１】
【図１】本発明の一実施形態における、コンピュータ作成（ＣＧ）モデルと、ウィンドウ内に表示されたユーザインターフェースのフィーチャ管理部（feature manager portion）とを示す図である。
【図２】図１のウィンドウ内に表示されたユーザインターフェースのフィーチャ管理部を示す図である。
【図３】本発明の一実施形態における、コンピュータ作成モデルと、ウィンドウ内に表示されたユーザインターフェースのフィーチャ管理部とを示す図である。
【図４】本発明の一実施形態のプロセスを示すフロー図である。
【図５】本発明の一実施形態におけるフィーチャ間の関係を示す、データ構造のブロック図である。
【図６】本発明の実施形態が実装されるコンピュータシステムを示す概略図である。
【発明を実施するための形態】
【００２２】
本発明の例示的実施形態を以下に説明する。
【００２３】
本発明は、モデルに変更が施される際に再生成が必要となるモデルの範囲を決定することにより、３次元（３Ｄ）モデリングシステムの動作を高速化する。本発明は、ＣＡＤエンティティ間の親子リレーションシップ、トポロジカルな関係および幾何学的な関係を分析することにより、いずれのＣＡＤエンティティがモデルの変更前とは異なる変更後の影響を当該モデルに与える可能性があるかを決定する。異なる影響をモデルに与える可能性があるＣＡＤエンティティのみが再生成される。しかし、ＣＡＤエンティティが異なる影響をモデルに与えるか与えないかに関係なしにモデル内の全てのＣＡＤエンティティを再生成することにより作成されるのと、同一の更新モデルが作成される。
【００２４】
本発明の利点として、３次元モデルの更新を一部に限定（局所化）することにより、当該モデルを素早く更新できることが挙げられる。更新時間は、３次元モデル全体のサイズおよび複雑さ（計算量）ではなく、モデルに含まれる一部のフィーチャのサイズおよび複雑さ（計算量）に限定されかつ依存する。例えば、フィーチャのパラメータが変更される際またはフィーチャが編集される際にモデルの全体が更新される必要がないので、本発明を実施するＣＡＤシステムの動作は高速化する。本発明の他の利点として、モデルに含まれる一部のフィーチャを更新するのみであるため、少しの計算資源しか利用しないことが挙げられる。これにより、コンピュータハードウェアを節約したコンピュータモデリングシステムを構成することが可能になる。本発明のさらなる他の利点として、３次元モデル全体をＣＡＤシステムが再生成する際に生じ得るエラーの数を減少できることが挙げられる。生じ得るエラーとして、ＣＡＤソフトウェアの複雑さに起因するものが挙げられ、これらのようなエラーは、警告ダイアログを用いて報知される。生じ得るエラーの重要度が低い場合もあるが、設計技術者は、エラーが深刻なものであるか否かを判断したり、エラーの原因を確定したりするのに時間がかかってしまう。したがって、生じ得るエラーの数を減少させることは極めて有利である。
【００２５】
図１に、コンピュータモニタ上に表示されたウィンドウ１０２を示す。ウィンドウ１０２は、コンピュータ化されたモデリングシステムが実行するモデリングソフトウェアによって作成される。コンピュータ化されたモデリングシステムの例は、図６を参照して後述する。ウィンドウ１０２は、コンピュータで作成された（ＣＧの）従来のウィンドウであり、従来の市販されているソフトウェアプログラミングツール、例えば、米国ワシントン州レドモンドのMicrosoft Corporation社から入手可能なソフトウェアプログラミングツールを用いて当業者がプログラムできる。
【００２６】
ＣＧの３次元モデル１０４は、ウィンドウ１０２のモデリング部１０６内に表示される。数多くある設計要素の中から、モデル１０４はボス（押し出し突起形状）１１０、フィレット（ラウンド角が丸められた形状）が施された稜線部１１２、および稜線部１１４を含む。稜線部１１４は押し出しカット（押し出し切抜き形状）（図示せず）によって作成され、孔パターン１１６を位置決めするのに利用されている。本発明の実施形態は、また、ＦｅａｔｕｒｅＭａｎａｇｅｒ（登録商標）ウィンドウパネル（フィーチャ管理のウィンドウパネル）１０８のような他のウィンドウ領域を有してもよい。ウィンドウパネル１０８には、公開されているパーツ、サブアセンブリ、アセンブリまたは図面の構造が一覧で示されており、これは、３次元モデル１０４および３次元モデル１０４のコンポーネントを設計技術者が視覚化および操作するのに役立つ。ＦｅａｔｕｒｅＭａｎａｇｅｒウィンドウパネル１０８は、フィーチャの階層的な集合としてフィーチャ履歴を設計技術者に提示する。設計技術者は、Ｆｅａｔｕｒｅｍａｎａｇｅｒウィンドウパネル１０８内のフィーチャの名前、またはフィーチャを示すアイコンを選択することにより、フィーチャをハイライト（強調表示）できる。Hirschtickらに発行された米国特許第5,815,154号明細書にはモデルを変更するシステムが開示されており、この変更は、設計技術者がグラフィックを用いてフィーチャの階層的な集合を操作して行われる。
【００２７】
図２に、ＦｅａｔｕｒｅＭａｎａｇｅｒウィンドウパネル１０８を示す。ＦｅａｔｕｒｅＭａｎａｇｅｒウィンドウパネル１０８は、モデル１０４（図１）に含まれるフィーチャを順番に並べたリストを有する。名前が他のフィーチャよりも上に挙げられているフィーチャは、これら他のフィーチャよりも前に作成されたものである。例えば、図１に示した稜線部１１４は、図２の「Cut-Extrude1」という名前（符号２０２がその表示部分を示す）のフィーチャで作成された。図１に示した孔パターン１１６は、図２の「CrvPattern1」という名前（符号２０４がその表示部分を示す）のフィーチャに相当する。「Cut-Extrude1」という名前（２０２）のフィーチャは、ＦｅａｔｕｒｅＭａｎａｇｅｒウィンドウパネル１０８において「CrvPattern1」という名前（２０４）よりも上に表示されているので、「CrvPattern1」という名前（２０４）のフィーチャよりも以前に作成されたことになる。したがって、「Cut-Extrude1」という名前（２０２）のフィーチャに変更が施された場合、「CrvPattern1」という名前（２０４）のフィーチャにも変更が生じる可能性がある。例えば、孔パターン１１６の曲率は、稜線部１１４を作成した押し出しカットの半径に依存しているかもしれない。この場合、「Cut-Extrude1」という名前（２０２）のフィーチャに変更が施されると、本発明は、孔パターン１１６を再生成し、かつ、ＦｅａｔｕｒｅＭａｎａｇｅｒウィンドウパネル１０８において名前が「Cut-Extrude1」の表示部分２０２よりも上方か下方に関係なく、上記変更が施される押し出しカットに対して別の種類の依存関係（後述する）を有するフィーチャについては再生成し、これらを除く他の全てのフィーチャについては再生成しない。
【００２８】
図２には、さらに、図１に示したボス１１０に対応する「Extrude2」というテキスト２０６、および図１に示したフィレットが施された稜線部１１２に対応する「Fillet2」というテキスト２０８が示されている。「Extrude2」というテキスト２０６は、ＦｅａｔｕｒｅＭａｎａｇｅｒウィンドウパネル１０８において「Fillet2」というテキスト２０８よりも上方に表示されているので、ボス１１０に変更が施される場合（例えば、ｚ方向に拡大される場合）、フィレットが施された稜線部１１２も再生成する必要がある。「Extrude2」というテキスト２０６は、「Cut-Extrude1」というテキスト２０２および「CrvPattern1」というテキスト（２０４）よりも上方に表示されている。しかしながら、図１に示されているように、ボス１１０は、ボス１１０のサイズが孔パターン１１６または稜線部１１４に達するまで増大されない限り、稜線部１１４を作成した押し出しカットまたは孔パターン１１６の影響を受けない。「Cut-Extrude1」という名前（２０２）のフィーチャはボス１１０よりも後に作成されている（図２のフィーチャ名が順番に並べられたリストから分かる）が、本発明は、例えばボス１１０のフィーチャと稜線部１１４のフィーチャとが空間的に重複しない限り、「Cut-Extrude1」という名前（２０２）のフィーチャを再生成せず（すなわち、稜線部１１４を再作成せず）、また、孔パターン１１６も再生成しない。さらに、ＦｅａｔｕｒｅＭａｎａｇｅｒウィンドウパネル１０８において「Fillet2」という表示部分２０８よりも上方または下方に表示された名前に対応する他のフィーチャについても、親子リレーションシップ（親子関係）または幾何学的な関係などの関係が存在しない限り、再生成されない。
【００２９】
本発明は、いずれのフィーチャがパーツに影響を与える可能性があるかを、別のフィーチャに変更が施される際に決定する。次に、本発明は、変更が施されたフィーチャおよびパーツに影響を与えるフィーチャのみを更新する。本発明の一例として（これらに限定されるわけではない）、上記変更は、パーツの物理的構造、他のフィーチャに反映される必要がある色彩もしくはテクスチャのような表示属性、または製造プロセスで使用される材料の特性のような他の属性に影響を与えるかもしれない。本発明は、いずれのフィーチャを再生成するかを決定するために、フィーチャ間の関係を探し出して分析する。例えば、本発明は、２つのフィーチャ間に親子リレーションシップを発見するかもしれない。親フィーチャ（parent feature）に変更が施された後、子フィーチャ（child feature）はパーツに対して以前と異なる影響を持つ場合があるので、本発明は、親フィーチャが再生成される際には必ず子フィーチャも再生成されることを保証する。同様に、他の子孫フィーチャ（descendent feature）（例えば、孫フィーチャ）も再生成される。
【００３０】
あるフィーチャが再生成される他の場合として、２つのフィーチャが隣接関係を有する場合、および２つのフィーチャが同一のモデル領域（モデル空間）を占有する場合がある。隣接関係は、２つのフィーチャが共通の稜線または面を有する際に生じる。これは、後で定義されたフィーチャが、それよりも先に定義されたフィーチャからマテリアルを取り除くものである場合に起こり得る。結果として、これらフィーチャは、隣接するトポロジカルなエンティティを備えることになる。複数のフィーチャが同一のモデル領域を共有する場合もあり、このとき、一方のフィーチャが他方のフィーチャからマテリアルを取り除くことが起こり得る。
【００３１】
図３に、種々のフィーチャ間の関係を示す。これらの関係は、フィーチャの再生成の原因となり得る。例えば、モデル３０４は孔パターン３０６を含み、各孔にはフィレットが施されている。この孔パターン３０６は、押し出しカット（図示せず）によって作成された稜線部３０８の位置に依存すると仮定する。稜線部３０８を作成した押し出しカットの半径が減少すると、孔パターン３０６が配列されている部分の曲線の半径（曲線が一部分を構成する円の半径）も減少する。また、孔パターン３０６における孔の数および孔のフィレットの数、または孔のサイズおよび孔のフィレットのサイズが減少するかもしれない。すなわち、稜線部３０８を作成した押し出しカットに変更が施されると、孔パターン３０６（例えば、孔の数、孔のサイズまたはパターンの曲率）および孔のフィレットに変更が生じる可能性がある。しかし、孔のサイズのみの変更は、孔のフィレットのみに影響を与え、押し出しカットの位置または半径には影響を与えないかもしれない。
【００３２】
モデル３０４は、さらに、ボス３１０、およびボス３１０からマテリアルを取り除いた第２の押し出しカット３１２を含む。第２の押し出しカット３１２は面３１４に依存する。その理由は、第２の押し出しカット３１２を作成するために用いられた円スケッチ（circular sketch）３１６が面３１４から延在する平面に位置決めされているからである。つまり、面３１４と第２の押し出しカット３１２との間には親子リレーションシップが存在する。ボス３１０と押し出しカット３１２との間には親子リレーションシップは存在していないが、隣接関係は存在している。というのも、ボス３１０および第２の押し出しカット３１２は、隣接する稜線部、例えば、第２の押し出しカット３１２がボス３１０からマテリアルを取り除いた際に作成された隣接する稜線部３１８を有するからである。
【００３３】
図４のフロー図は、本発明の一実施形態で実行されるプロセス４００を示す。プロセス４００は更新が必要なフィーチャを特定する。この更新は、他のフィーチャに変更が施されることで必要となるものである。プロセス４００は、これら特定されたフィーチャおよび変更（更新）が施されるフィーチャのみを再生成する。第１のステップでは、変更が施されるフィーチャをまず対象として、親／子リレーションシップを探し出し分析する（ステップ４０２）。一実施形態では、変更が施されるフィーチャのデータ構造が調べられ、１つ以上の子フィーチャへのポインタを含んでいるか否かが決定される。このようなポインタが存在する場合には、リストが作成され、各子フィーチャを特定する特定データがこのリストに挿入される（ステップ４０４）。これら子フィーチャも、別の子フィーチャが存在するか否かを見出すための分析対象となり（ステップ４０２）、別の子フィーチャが存在した場合には、これら別の子孫フィーチャ（例えば、変更が施されるフィーチャの孫フィーチャ）を特定する特定データが前記リストに挿入される（ステップ４０４）。本発明の一例（これに限定されるわけではない）として、特定データは、特定されるフィーチャへのポインタ、または特定されるフィーチャの名前であってもよい。一実施形態において、リストの代わりに、テーブルなどのデータ収集構造によって特定データを保管してもよい。他の実施形態では、ポインタの代わりに、フラグ、フィールド値または他の指示子（indicator）を用いて特定データを指定してもよい。
【００３４】
図３に関連してオブジェクト属性設定について前述したように、フィーチャは他のフィーチャと隣接関係を有する場合がある。このとき、隣接関係にある一方のフィーチャに変更が施される場合、設計意図を保護するために両方のフィーチャを再生成する必要があるかもしれない。図４に示すプロセス４００は、隣接する面、稜線または頂点を有するフィーチャを発見するために、トポロジチェック（トポロジ検査）を実行する（ステップ４０６）。トポロジチェックは変更が施されるフィーチャから始まる。データ構造が調べられ、他のフィーチャによって作成された面、稜線または頂点が発見されると、これら面、稜線または頂点を作成した当該他のフィーチャを特定する特定データが前記リストに追加される（ステップ４０８）。
【００３５】
一実施形態では、トポロジチェックの実行に加えて、またはこれに代えて、複数のフィーチャが互いに共通の幾何学的なエンティティ、例えば、共通の点（座標の点）、共通のトリム曲線、共通のトリム曲面を有するか否かを見出すために、ジオメトリチェック（幾何表現検査）を実行する。複数のフィーチャが幾何学的なエンティティを共有するとき、これらフィーチャは隣接関係を有するかもしれない。これらフィーチャが隣接関係を有する場合、これらフィーチャを特定する特定データがリストに追加される。
【００３６】
プロセス４００は、さらに、フィーチャが互いに空間的に交差しているか（空間的に一致している部分があるか）を調べる（検査する）（ステップ４１０）。変更が施されるフィーチャまたはリストで既に特定された他のフィーチャと空間的に交差する全てのフィーチャについて、その特定データがリストに追加される（ステップ４１２）。一実施形態では、変更が施されるフィーチャを取り囲むバウンディングボックス（表示領域）が作成される。次に、残りの各フィーチャについても、それぞれバウンディングボックスが作成される。変更が施されるフィーチャのバウンディングボックスと交差するバウンディングボックスを有する各フィーチャに対して、それぞれのフィーチャを特定する特定データがリストに追加される。バウンディングボックスを用いて空間的重複を調べる上記方法は、さらに、リストに含まれる既に特定された各フィーチャに対しても実行される。フィーチャが新たに特定されてリストに追加されると、これら追加のフィーチャについても、他の全てのフィーチャとの間に空間的な重複があるか否かが調べられる（検査される）。
【００３７】
プロセス４００は、トポロジおよびジオメトリに対して少しずつ変更を施すだけで、再生成されないフィーチャのトポロジおよびジオメトリは維持したままである。すなわち、前述のステップの後、変更が施されるフィーチャおよびリストに含まれるフィーチャが生成した面が、３次元モデルのトポロジ構造から取り除かれる（ステップ４１４）。これらの面に対応するジオメトリも３次元モデルから取り除かれてもよい。一実施形態において、面は、取り除かれずに変更を施される。さらに、有効なモデルを維持するために、エンティティを再構築（例えば、修正）する必要が生じる場合もある。プロセス４００の次のステップでは、リストで特定されたフィーチャが再生成され（ステップ４１６）、プロセス４００が終了する（ステップ４１８）。
【００３８】
本発明の一実施形態では、変更が施されるフィーチャおよびリストで特定されたフィーチャを、図４を用いて前述したように必ずしも再生成する必要はない。代わりに、最終的なデータ構造におけるトポロジおよびジオメトリに加えて、フィーチャの定義に係るデータを変更するだけでもよい。一例として、図３に戻り、押し出しカット３１６の深さを増加させる場合、当該押し出しカット３１６の定義の変更と、稜線部３１８のトポロジおよびこれに対応するジオメトリの変更しか要求されない。さらに、トポロジは変更されないままで、ジオメトリの変更のみが必要かもしれない。
【００３９】
さらに、一実施形態では、フィーチャの全ての面の定義を、フィーチャのデータ構造に保管してもよい。面を定義することにより、稜線および頂点を容易に導き出せる。また、パーツのトポロジ構造に含まれる面は、当該面を定義するフィーチャへのバックポインタ（戻りポインタ）を有する場合がある。このようにして、当業者であれば、ある面がいずれのフィーチャから作成されたかを見出し、当該面についてのトポロジ構造およびこれに対応するジオメトリのみを変更することができるであろう。
【００４０】
図４に示したプロセスは、便宜上、図示の順番で進められるプロセスとして示されている。しかしながら、当業者であれば、リストに追加されるフィーチャは全て、親／子リレーションシップ、隣接関係、トポロジカルな関係および空間的な関係の有無（存在）について調べる必要があることを理解するであろう。つまり、ステップ４０２，４０４，４０６，４０８，４１０および４１２は、リストに特定データが追加されたフィーチャに対して、繰り返し実行される必要がある。
【００４１】
当業者であれば、パーツのデータフォーマットの知識を有しているか、またはその知識を容易に習得することができる。このような知識を用いて、例えば、特定のフィーチャのヘッダ情報と当該フィーチャのデータのサイズまたは長さとを特定することにより、パーツのデータ構造に含まれる、当該フィーチャのデータブロックの始まりおよび終わりを見つけ出すことができる。当業者は、パーツのデータフォーマットの知識を有していれば、子ポインタまたは他のフィーチャによって作成されるトポロジカルなエンティティを見つけ出す（位置を特定する）ことができる。
【００４２】
図５には、図４のリストの展開を示すデータ構造５００の概念図が示されている。このデータ構造５００は、ある時点でのスナップショット（ある時点における状態）であり、パーツが再生成された後には変化するかもしれない。データ構造５００は４つのフィーチャ５０２，５０４，５０６，５０８を含み、これらフィーチャのいくつかは、親／子リレーションシップで互いに関係している。データ構造５００は、図示しない他のフィーチャから構成されてもよい。変更が施されるフィーチャ５０２のデータ構造は、子フィーチャ５０４のデータ構造へのポインタ５１２を含んでいる。子フィーチャ５０４は、さらに、孫フィーチャ５０６のデータ構造へのポインタ５１４を含んでいる。前記変更が施されるフィーチャ５０２は、隣接するフィーチャと面を共有している。したがって、当該変更が施されるフィーチャ５０２のデータ構造はポインタ５１６を含み、このポインタ５１６は、隣接するフィーチャ５０８のデータ構造に含まれる、面５１８の定義の場所を示している。これら４つのフィーチャ５０２，５０４，５０６，５０８間の関係により、本発明は、フィーチャ５０２に変更が施される場合、４つのフィーチャ５０２，５０４，５０６，５０８の全てを再生成する。
【００４３】
本発明の一実施形態では、異なるフィーチャに属する２つ以上の面を１つの面に合体させる場合がある。２つの面が合体した結果の面が検出され、合体した一方の面が図４で説明したリストに特定されたフィーチャに属し、合体した他方の面が図４で説明したリストに特定されていないフィーチャに属する場合、トポロジ構造およびこれに対応するジオメトリから前記一方の面を取り除くと（図４のステップ４１４に関して説明したように）、合体した結果の面が取り除かれて、モデルに穴があく可能性がある。その理由は、リストで特定されていないフィーチャに属する前記他方の面が再生成されないからである。この場合、本発明は、合体した面を２つの面に分割する。本発明の一例（これに限定されるわけではない）として、合体の逆、つまり分裂の動作を用いながら、合体した面を分割してもよい。
【００４４】
本明細書での説明は、フィーチャで構成されるパーツに重点を置いている。しかしながら、パーツのデータ構造は、フィーチャに加えて、他の種類のエンティティを含んでもよい。前述の内容は、フィーチャのデータ構造とは異なるデータ構造として定義された他の種類のエンティティにも適用できる。例えば、一実施形態は、特定のフィーチャに適用されるパラメータであって、パーツ内の別個のデータ構造として定義されたパラメータを含んでもよい。この場合、変更されるパラメータ、および変更されるパラメータによって影響されるフィーチャのみを再生成する必要がある。
【００４５】
図６に、コンピュータ処理されるモデリングシステム６００を示す。このモデリングシステム６００は、中央演算処理装置（ＣＰＵ）６０２、コンピュータモニタ６０４、キーボード入力装置６０６、マウス入力装置６０８、および記憶装置６１０を備える。ＣＰＵ６０２、コンピュータモニタ６０４、キーボード６０６、マウス６０８、および記憶装置６１０は、一般的に入手可能なコンピュータハードウェア装置を含む。例えば、ＣＰＵ６０２は、Ｐｅｎｔｉｕｍ（登録商標） プロセッサを有する。マウス６０８は、従来の左側ボタンおよび右側ボタンを有するものであってもよく、ユーザは、これらのボタンを押すことにより、ＣＰＵ６０２によって実行中のソフトウェアプログラムにコマンドを発行することができる。コンピュータ化されたモデリングシステム６００は、マウス６０８の代わり、またはマウス６０８に加えて、トラックボールやタッチパッド（touch-sensitive pad）などのポインティングデバイスを有してもよく、またはポインティングデバイスおよびキーボード６０６に組み込まれたボタンを有してもよい。以下の説明から明らかになるように、他の適切なコンピュータ用ハードウェアプラットフォームも使用できる。好ましくは、このようなコンピュータ用ハードウェアプラットフォームは、Ｍｉｃｒｏｓｏｆｔ Ｗｉｎｄｏｗｓ ＮＴ（登録商標） 、Ｗｉｎｄｏｗｓ  ９８（登録商標） 、Ｗｉｎｄｏｗｓ ２０００（登録商標） 、Ｗｉｎｄｏｗｓ ＸＰ（登録商標） 、Ｗｉｎｄｏｗｓ ＭＥ（登録商標） 、ＵＮＩＸ（登録商標） 、Ｌｉｎｕｘ、またはＭＡＣ ＯＳオペレーティングシステムを動作できる。
【００４６】
さらなる中央演算処理装置（ＣＰＵ）およびハードウェア装置（例えば、ラピッドプロトタイプ装置、ビデオ装置およびプリンタ装置）が、コンピュータ処理されるモデリングシステム６００に含まれてもよい。さらに、コンピュータ処理されるモデリングシステム６００は、ネットワークハードウェアおよびソフトウェアを備えてもよい。これにより、ハードウェアプラットフォーム６１２への通信が可能になり、数多くあるコンピュータ構成品の中でも特に、ＣＰＵおよび記憶システムを備える複数のコンピュータシステム間の通信が容易になる。
【００４７】
本発明のコンピュータ支援モデリング（ＣＡＭ）ソフトウェアは記憶装置６１０に記憶されてもよく、ＣＰＵ６０２にロードされ当該ＣＰＵ６０２によって実行される。このモデリングソフトウェアによってユーザは３次元モデルを作成および変更でき、かつ本明細書に記載された本発明の構成を実現することができる。ＣＰＵ６０２は、３次元モデルおよび前述した他の構成を表示するためにコンピュータモニタ６０４を使用する。キーボード６０６およびマウス６０８を用いて、ユーザは３次元モデルに関連したデータを入力および変更できる。ＣＰＵ６０２は、キーボード６０６およびマウス６０８からの入力を受け付け、これを処理する。ＣＰＵ６０２は、３次元モデルに関連したデータとともに前記入力を処理し、モデリングソフトウェアの命令に応じて、コンピュータモニタ６０４上の表示に対して相応かつ適切な変更を行う。一実施形態において、このモデリングソフトウェアは、１つ以上のソリッドボディ（中実のボディ）およびサーフェスボディ（中空のボディ）で構成される３次元モデルを構築するのに用いられるソリッドモデリングシステムに基づく。
【００４８】
本発明は、デジタル電子回路、またはコンピュータハードウェア、コンピュータファームウェア、コンピュータソフトウェア、もしくはこれらの組み合わせによって実現されてもよい。本発明の装置は、プログラマブルなプロセッサによって実行可能な、機械読み取り可能な記憶装置に有形に埋め込まれたコンピュータプログラム製品として実現されてもよい。本発明の方法の工程は、入力データを処理して出力を生成するように命令プログラムを実行することで本発明の機能を実施する、プログラマブルなプロセッサによって行われてもよい。有利な実施形態では、本発明は、少なくとも１つのプログラマブルなプロセッサを備えるプログラマブルなシステムで実行可能な、１つ以上のコンピュータプログラムで実現されてもよい。このプログラマブルなプロセッサは、データ記憶システム、少なくとも１つの入力装置および少なくとも１つの出力装置からデータおよび命令を受信し、これらの装置にデータおよび命令を伝送する。各コンピュータプログラムは、高級言語またはオブジェクト指向プログラミング言語で書かれたものであってもよく、もし必要であれば、アセンブリ言語または機械言語で書かれたものであってもよい。いずれにせよ、その言語は、コンパイラ言語またはインタープリタ言語であってもよい。適切なプロセッサの例には、汎用マイクロプロセッサおよび専用マイクロプロセッサの両方が含まれるが、これらに限定されない。一般的に、プロセッサは、読み出し専用メモリ（ＲＯＭ）および／またはランダムアクセスメモリ（ＲＡＭ）から命令およびデータを受け取る。実施形態によっては、命令およびデータはグローバルネットワークを介してダウンロードされる。コンピュータプログラムの命令およびデータを有形で具現化するのに適した記憶装置には、あらゆる形態の不揮発性メモリ、例えば、ＥＰＲＯＭ（紫外線消去型プログラム可能読み出し専用メモリ）、ＥＥＰＲＯＭ（電気的消去型プログラム可能読み出し専用メモリ）およびフラッシュメモリ装置などの半導体メモリ装置、内蔵ハードディスクおよびリムーバブルディスクなどの磁気ディスク、光磁気ディスク（ＭＯディスク）、ならびにＣＤ−ＲＯＭディスクが含まれるが、これらに限定されない。これら記憶装置はいずれも、カスタムＡＳＩＣ（特定用途集積回路）によって補完されてもよく、またはカスタムＡＳＩＣに組み込まれてもよい。
【００４９】
本発明の実施形態を多数説明したが、本発明の精神および範囲から逸脱することなく、様々な変更が可能なことは理解されるであろう。本発明の実施形態によっては、処理の行われる順番を変えてもよい。例えば、ステップ４０６，４０８は、ステップ４１０，４１２よりも前に実行するのではなく、ステップ４１０，４１２の直後に実行しもよい。また、実施形態の要件に応じて、本明細書で説明した特定の処理を組み合わせて実施するか、特定の処理を削除するか、特定の処理を加えるか、または特定の処理の順番を変えてもよい。さらに、本発明は、ＣＡＤモデルをジオメトリックモデル、ソリッドモデル、サーフェスモデル、またはこれらの組合せとして表現するコンピュータ支援モデリング（ＣＡＤ）ソフトウェアで実現されてもよい。
【００５０】
したがって、他の実施形態も、添付の特許請求の範囲に包含される。
【符号の説明】
【００５１】
４０２，４０６，４１０    関係分析および発見工程
４０４，４０８，４１２    特定データ保管および追加工程
４１６                    再生成工程
【図１】
2010524119.tif 000003
【図２】
2010524119.tif 000004
【図３】
2010524119.tif 000005
【図４】
2010524119.tif 000006
【図５】
2010524119.tif 000007
【図６】
2010524119.tif 000008
【国際調査報告】
2010524119.tif 000009
2010524119.tif 000010
2010524119.tif 000011
2010524119.tif 000012