(57)【特許請求の範囲】
【請求項１】
記憶手段と入力手段とが接続された処理手段を含むコンピュータで実施されるコンピュータ支援設計方法であって、
前記記憶手段に格納された、空間的容量を包含する第１のボディおよび第２のボディの物理的構成を指定するトポロジログを参照して、前記処理手段が、前記第１および第２のボディの組み合せを含む第３のボディのトポロジログを定義するステップと、
前記処理手段が、前記第３のボディを３つの類別のセルへ分割するステップであって、前記３つの類別は、１）前記第１および第２のボディの両方に共通した空間を包含するセルと、２）前記第１のボディからのみ導出された空間を包含するセルと、および３）前記第２のボディからのみ導出された空間を包含するセルとを含むステップと、
前記第１、第２、および第３のボディの各々の面を定義する前記トポロジログから得られた情報を前記記憶手段に格納するステップであって、前記情報は、前記第３のボディの各面が前記第１のボディから生じたか、前記第２のボディから生じたかを指定するデータを含むステップと、
前記第３のボディの面を選択する入力を前記入力手段が受信するステップと、
前記記憶手段に格納された前記情報へアクセスし、前記処理手段が、前記入力手段に入力された前記選択された面が前記第１のボディにおいて生じたか、前記第２のボディにおいて生じたかを決定するステップと、
前記記憶手段に格納された前記情報へアクセスし、前記処理手段が、前記選択された面に隣接し、前記選択された面が生じたボディ以外のボディから生じた面を識別するステップと、
前記処理手段が、前記選択された面および前記隣接面によって定義された、後続の処理のためのセルを指定するステップと
を備えることを特徴とするコンピュータ支援設計方法。
【請求項２】
前記セルが前記第３のボディから除去されることを指定する入力を前記入力手段が受信するステップと、
前記処理手段が、前記入力手段に入力された前記指定されたセルを前記第３のボディから除去するステップと
をさらに備えることを特徴とする請求項１に記載の方法。
【請求項３】
前記セルが前記第３のボディの一部として保持されることを指定する入力を前記入力手段が受信するステップと、
前記処理手段が、前記第３のボディから、先の処理のために指定された前記セルが属する前記類別内の、前記指定されたセルを除くすべてのセルを除去するステップと
をさらに備えることを特徴とする請求項１に記載の方法。
【請求項４】
記憶手段と入力手段と表示手段とが接続された処理手段を含むコンピュータを用いたソフトウェア制御方法であって、
ａ）第１のボディおよび第２のボディの組み合せからなる組立体を前記表示手段に表示するステップであって、前記表示は、前記第１のボディから生じた前記組立体の部分をグラフィカルに指示するステップと、
ｂ）オブジェクトの面を選択する入力を前記入力手段が受信するステップと、
ｃ）前記処理手段が、前記入力手段に入力された前記選択された面の親が前記第１のボディにおいて生じたか、前記第２のボディにおいて生じたかを決定し、その結果を含む情報を前記記憶手段に格納するステップと、
ｄ）前記記憶手段に格納された前記情報へアクセスし、前記処理手段が、前記選択された面に隣接した前記オブジェクトの１組の面を決定するステップと、
ｅ）前記記憶手段に格納された前記情報へアクセスし、前記処理手段が、前記選択された面の親が生じたボディと同じボディから生じない親を有する前記隣接面の組を、隣接面が発見されるまで探索するステップと、
ｆ）前記処理手段が、前記選択された面およびステップｅ）で発見された前記隣接面によって境界を画した前記組立体の一部として、前記組立体のセルを定義するステップと
を備えることを特徴とするソフトウェア制御方法。
【請求項５】
前記セルが前記組立体から除去されることを指示する入力を前記入力手段が受信するステップと、
前記処理手段が、前記入力手段に入力された前記指定されたセルを前記組立体から除去するステップと
をさらに備えることを特徴とする請求項４に記載の方法。
【請求項６】
記憶手段と入力手段とが接続された処理手段を含むコンピュータで実行されるコンピュータプログラムが格納されたコンピュータ読取り可能媒体であって、前記コンピュータプログラムは、
前記記憶手段に格納された、空間的容量を包含する第１のボディおよび第２のボディの物理的構成を指定するトポロジログを参照して、前記処理手段が、前記第１および第２のボディの組み合せを含む第３のボディのトポロジログを定義するステップと、
前記処理手段が、前記第３のボディを３つの類別のセルへ分割するステップであって、前記３つの類別は、１）前記第１および第２のボディの両方に共通した空間を包含するセルと、２）前記第１のボディからのみ導出された空間を包含するセルと、および３）前記第２のボディからのみ導出された空間を包含するセルとを含むステップと、
前記第１、第２、および第３のボディの各々の面を定義する前記トポロジログから得られた情報を前記記憶手段に格納するステップであって、前記情報は、前記第３のボディの各面が前記第１のボディから生じたか、前記第２のボディから生じたかを指定するデータを含むステップと、
前記第３のボディの面を選択する入力を前記入力手段が受信するステップと、
前記記憶手段に格納された前記情報へアクセスし、前記処理手段が、前記入力手段に入力された前記選択された面が前記第１のボディにおいて生じたか、前記第２のボディにおいて生じたかを決定するステップと、
前記記憶手段に格納された前記情報へアクセスし、前記処理手段が、前記選択された面に隣接し、前記選択された面が生じたボディ以外のボディから生じた面を識別するステップと、
前記処理手段が、前記選択された面および前記隣接面によって定義された、後続の処理のためのセルを指定するステップと
をコンピュータに実行させることを特徴とするコンピュータ読取り可能媒体。
【請求項７】
前記コンピュータプログラムは、
前記セルが前記第３のボディから除去されることを指定する入力を前記入力手段が受信するステップと、
前記処理手段が、前記入力手段に入力された前記指定されたセルを前記第３のボディから除去するステップと
をさらにコンピュータに実行させることを特徴とする請求項６に記載のコンピュータ読取り可能媒体。
【請求項８】
前記コンピュータプログラムは、
前記セルが前記第３のボディの一部として保持されることを指定する入力を前記入力手段が受信するステップと、
前記処理手段が、前記第３のボディから、先の処理のために指定された前記セルが属する前記類別内の、前記指定されたセルを除くすべてのセルを除去するステップと
をさらにコンピュータに実行させることを特徴とする請求項６に記載のコンピュータ読取り可能媒体。
【請求項９】
記憶手段と入力手段と表示手段とが接続された処理手段を含むコンピュータで実行されるコンピュータプログラムが格納されたコンピュータ読取り可能媒体であって、前記コンピュータプログラムは、
ａ）第１のボディおよび第２のボディの組み合せからなる組立体を前記表示手段に表示するステップであって、前記表示は、前記第１のボディから生じた前記組立体の部分をグラフィカルに指示するステップと、
ｂ）前記組立体の面を選択する入力を前記入力手段が受信するステップと、
ｃ）前記処理手段が、前記入力手段に入力された前記選択された面が前記第１のボディにおいて生じたか、前記第２のボディにおいて生じたかを指定するデータを含む情報を前記記憶手段に格納するステップと、
ｄ）前記記憶手段に格納された前記情報へアクセスし、前記処理手段が、前記選択された面に隣接した前記組立体の１組の面を決定するステップと、
ｅ）前記記憶手段に格納された前記情報へアクセスし、前記処理手段が、前記選択された面が生じたボディと同じボディから生じない前記隣接面の組を、隣接面が発見されるまで探索するステップと、
ｆ）前記処理手段が、前記選択された面およびステップｅ）で発見された前記隣接面によって境界を画した前記組立体の一部として、前記組立体のセルを定義するステップと
をコンピュータに実行させることを特徴とするコンピュータ読取り可能媒体。
【請求項１０】
第１のボディおよび第２のボディの組み合せからなる組立体を表示する表示手段と、記憶手段と入力手段とが接続された処理手段を含むコンピュータで実行されるコンピュータプログラムが格納されたコンピュータ読取り可能媒体であって、前記表示手段は、前記第１のボディから生じた前記組立体の部分をグラフィカルに指示し、前記コンピュータプログラムは、
ａ）前記入力手段が、前記組立体の面を選択する入力を受信するステップと、
ｂ）前記処理手段が、前記入力手段に入力された前記選択された面が前記第１のボディにおいて生じたか、前記第２のボディにおいて生じたかを指定するデータを含む情報を前記記憶手段に格納するステップと、
ｃ）前記記憶手段に格納された前記情報へアクセスし、前記処理手段が、前記選択された面に隣接した前記組立体の１組の面を決定するステップと、
ｄ）前記記憶手段に格納された前記情報へアクセスし、前記処理手段が、前記選択された面が生じたボディと同じボディにおいて生じない前記隣接面の組を、隣接面が発見されるまで探索するステップと、
ｅ）前記処理手段が、前記選択された面およびステップｄ）で発見された前記隣接面によって境界を画した前記組立体の一部として、前記組立体のセルを定義するステップと
をコンピュータに実行させることを特徴とするコンピュータ読取り可能媒体。
【請求項１１】
前記コンピュータプログラムは、
前記入力手段が、前記セルが前記組立体から除去されることを指示するユーザ入力を受信するステップと、
前記処理手段が、前記入力手段に入力された前記指定されたセルを前記組立体から除去ステップと
をさらにコンピュータに実行させることを特徴とする請求項１０に記載のコンピュータ読取り可能媒体。
【請求項１２】
記憶手段と入力手段とが接続された処理手段を含むコンピュータで実施されるコンピュータ支援設計方法であって、
ａ）第１のボディの物理的構成を指定する第１の組のデータを前記記憶手段に格納するステップであって、前記第１の組のデータは、前記第１のボディの１組の面を含むステップと、
ｂ）第２のボディの物理的構成を指定する第２の組のデータを前記記憶手段に格納するステップであって、前記第２の組のデータは、前記第２のボディの１組の面を含をステップと、
ｃ）前記処理手段が、前記第１および第２のボディの組み合せを含む第３のボディを指定する第３の組のデータを定義するステップであって、前記第３の組のデータは、前記第３のボディの１組の面を含み、前記第３の組のデータは、前記第３のボディの各面について、前記第３のボディの前記面が生じた元の前記第１または第２のボディの前記各面を指示するステップと、
ｄ）前記第３のボディの面を選択する入力を前記入力手段が受信するステップと、
ｅ）前記記憶手段に格納された前記データを参照し、前記処理手段が、前記第３のボディの前記選択された面が生じた前記第１のボディの面か、前記第２のボディの面かを決定するステップと、
ｆ）前記記憶手段に格納された前記データを参照し、前記処理手段が、前記選択された面に隣接した、前記選択された面が生じた面に対応するボディ以外のボディに属する面において生じた前記第３のボディの面を識別するステップと、
ｇ）前記処理手段が、前記選択された面および前記隣接面によって定義された前記第３のボディの一部を、後続の処理のために指定するステップと
を備えることを特徴とするコンピュータ支援設計方法。
【請求項１３】
先の処理のために指定された前記第３のボディの前記一部が前記第３のボディから除去されることを命令する入力を前記入力手段が受信するステップと、
前記処理手段が、前記一部を前記第３のボディから除去するステップと
をさらに備えることを特徴とする請求項１２に記載の方法。
【請求項１４】
先の処理のために指定された前記第３のボディの前記一部が前記第３のボディの一部として保持されることを命令する入力を前記入力手段が受信するステップと、
前記処理手段が、前記第３のボディの前記一部が前記第１のボディにおいて生じたか、前記第２のボディにおいて生じたかを決定するステップと、
前記処理手段が、前記第３のボディから、先の処理のために指定された前記第３のボディの前記一部に対応する前記ボディにおいてのみ生じた前記第３のボディのすべての部分を、先の処理のために指定された前記一部を除いて除去するステップと
をさらに備えることを特徴とする請求項１２に記載の方法。
【請求項１５】
記憶手段と入力手段とが接続された処理手段を含むコンピュータで実行されるコンピュータプログラムが格納されたコンピュータ読取り可能媒体であって、前記コンピュータプログラムは、
ａ）第１のボディの物理的構成を指定する第１の組のデータを前記記憶手段に格納するステップであって、前記第１の組のデータは、前記第１のボディの１組の面を含むステップと、
ｂ）第２のボディの物理的構成を指定する第２の組のデータを前記記憶手段に格納するステップであって、前記第２の組のデータは、前記第２のボディの１組の面を含むステップと、
ｃ）前記処理手段が、前記第１および第２のボディの組み合せを含む第３のボディを指定する第３の組のデータを定義するステップであって、前記第３の組のデータは、前記第３のボディの１組の面を含み、前記第３の組のデータは、前記第３のボディの各面について、前記第３のボディの前記面が生じた元の前記第１または第２のボディの前記各面を指示するステップと、
ｄ）前記第３のボディの面を選択する入力を前記入力手段が受信するステップと、
ｅ）前記記憶手段に格納された前記データを参照し、前記処理手段が、前記第３のボディの前記選択された面が生じた前記第１のボディの面か、前記第２のボディの面かを決定するステップと、
ｆ）前記記憶手段に格納された前記データを参照し、前記処理手段が、前記選択された面に隣接した、前記選択された面が生じた面に対応するボディ以外のボディに属する面において生じた前記第３のボディの面を識別するステップと、
ｇ）前記処理手段が、前記選択された面および前記隣接面によって定義された前記第３のボディの一部を、後続の処理のために指定するステップと
をコンピュータに実行させることを特徴とするコンピュータ読取り可能媒体。
【請求項１６】
前記コンピュータプログラムは、
先の処理のために指定された前記第３のボディの前記一部が前記第３のボディから除去されることを命令する入力を前記入力手段が受信するステップと、
前記処理手段が、前記一部を前記第３のボディから除去するステップと
をさらにコンピュータに実行させることを特徴とする請求項１５に記載のコンピュータ読取り可能媒体。
【請求項１７】
前記コンピュータプログラムは、
先の処理のために指定された前記第３のボディの前記一部が前記第３のボディの一部として保持されることを命令する入力を前記入力手段が受信するステップと、
前記処理手段が、前記第３のボディの前記一部が前記第１のボディにおいて生じたか、前記第２のボディにおいて生じたかを決定するステップと、
前記処理手段が、前記第３のボディから、先の処理のために指定された前記第３のボディの前記一部に対応する前記ボディにおいてのみ生じた前記第３のボディのすべての部分を、先の処理のために指定された前記一部を除いて除去するステップと
をさらにコンピュータに実行させることを特徴とする請求項１５に記載のコンピュータ読取り可能媒体。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、コンピュータ支援設計（ＣＡＤ）、コンピュータ支援生産（ＣＡＭ）、コンピュータ支援エンジニアリング（ＣＡＥ）およびプログラムデータ管理（ＰＤＭＩＩ）ソフトウェアシステムの分野におけるコンピュータソフトウェアユーティリティプログラムに関し、より詳細には、このようなシステムにおける部分設計および組立てアプリケーションに関する。
【０００２】
【従来の技術】
部分設計および組み立て操作では、一部分がしばしば２つ以上のボディ（ｂｏｄｉｅｓ）を結合させることによって構築される。たとえば、このようなボディは、立方体、球体、円筒形、直方体または円錐形などの単純な３次元形状、またはより複雑な形状の形になることができる。このようなボディは、別の方法では、ボディの外形（ｏｕｔｅｒ  ｓｈｅｌｌ）を定義することによって決定され、これはいくつかの「面（ｆａｃｅ）」から構成される。したがって、たとえば、立方体の形状を有するボディは６面を有し、それぞれが正方形である。
【０００３】
既存のＣＡＤシステムでは、部分がしばしば２つのボディを組合わせることによって組み立てられ、２つのボディの容量が重複する。たとえば図１に示すように、ここでは２つの直方体が交差する。部分設計では、ボディが別のボディと組立てられるとき、ボディのある部分を除去するか、あるいは逆に、ボディのある部分を保持することが望ましい。たとえば、図１を参照すると、設計者は、１０で示される部分など、組立体の一部を除去し、組立体の残りの部分を保持することを望むであろう。フランスのＤａｓｓａｕｌｔ  Ｓｙｓｔｅｍｅｓ  ｏｆ  ＳｕｒｅｓｎｅｓによってＣＡＴＩＡ（登録商標）という名称で販売されている、既知のＣＡＤ／ＣＡＭ／ＣＡＥシステムでは、これを、トリム（ＴＲＩＭ）操作として知られている操作によって達成することができる。
【０００４】
トリム操作の最初のステップは、２つのボディの容量を新しい容量の組またはセルに分割するステップである。セルは３つのグループに分けられる。すなわち、グループＩは、ボディＡからのみ生ずる容量を有するセルであり、グループＩＩは、ボディＢからのみ生ずる容量を有するセルであり、グループＩＩＩは、両方のボディに共通した容量を有するセルである。このステップは、「カットボディ（ＣｕｔＢｏｄｉｅｓ）」操作と呼ばれる。図１に示すように、図示のような２つの直方体の組立体が、５つの「セル」が生まれるという結果になる。セル１２および１３は、第１のボディであるボディＡからのみ生じる。セル１０および１１は、第２のボディであるボディＢからのみ生じ、セル１４は、ボディＡとボディＢの両方から生じる。見るとわかるように、５つのセルはそれぞれ１組の面を有し、これらがセルを定義する。
【０００５】
トリム操作の第２のステップは、セルを保持するかあるいは除去して、ブール演算に従ってユーザの仕様を満たす、完成された組立体を作成する。具体的には、ユーザが、第１のボディに第２のボディが追加されることを指定した場合に、すべてのセルが併合される。ユーザが、２つのボディの間の交差を保持すると指定した場合に、両方のボディに属するセルのみが保持される。ユーザが、第１のボディからのセルが組立体から除去されることを指定した場合（「除去」操作）に、そのセルが除去される。逆に、ユーザが、第１のボディからのセルが保持されることを指定した場合（「保持」操作）、選択されたセルが保持され、第１のボディからの他のすべてのセルが除去され、第２のボディからのみ導出されたセルが保持され、両方のボディに共通したすべてのセルが保持される。実際には、ユーザがセルの面の１つを選択して、どのセルが保持されるかあるいは除去されるかを決定する。
【０００６】
このような既存のシステムは、ユーザによって選択された面であり、必ず第１のボディにおいて生じ、他のボディの両側に延びることがなく、すなわち、他のボディの面によって分離または分割されていない面である限り、うまく動作する。具体的には、２つの部分が組み立てられるとき、組立体の構成が、各ボディの１または複数の面を変更する結果となることがしばしばある。この場合には、３種類の面が作成される。すなわち、１）この処理において不変のままにされる面（「不変」または「影響を受けない」面）、２）２つ以上の部分に分割される面（「分割」面）、および３）２つの元のボディにおいて同じ背景表面を有する面である。後者の類別の面が１つの面に併合され、ゆえに「簡素化面」と呼ばれる。これらの３タイプの面を図２に示し、ここでは、ボディＢの面２０としてその構成から変更されなかったので、面２６は不変面である。面２７および３０は、それぞれボディＢの面２２の一部なので分割面である。面２７および３０はボディＡの逆側にもある。同様に、面２８および３１は、ボディＡの面２３から生じる分割面である。面３２は簡素化面であり、面２４（ボディＡ）および面２１（ボディＢ）の組み合せから生じた結果である。
【０００７】
既存のＣＡＴＩＡ（登録商標）システムでは、ユーザは、除去または保持操作を加えるために不変面のみを直接指示することができる。ユーザが分割された面を選択して、除去または保持機能のためにセルを指示した場合には、結果として生じる分割面を含むすべてのセルで、操作を実行する。これを避けるために、ユーザは、まず孔などの特徴を面に追加しなければならない。これは時間のかかる処理であり、不必要な複雑さを設計処理に加える。これは特に、不必要な特徴（たとえば、孔）を、ボディ部分の組み立ての前に追加しなければならないからであり、したがって、予め考慮することが必要となり、設計処理の自由度が妨げられる。多数の組立体では、ユーザが不変面にアクセスすることができないので、実際に選択することができる唯一の面が分割面である。多くの場合、単にユーザが不変面の上の分割面を選択することがより論理的である。加えて、多くの場合、単に組立体に不変面がないので、選択することができる唯一の面が分割面である。経験により、少なくともすべてのトリム操作の半分が、分割面の選択を必要とし、したがって不必要な特徴を分割面に追加することがわかった。
【０００８】
【発明が解決しようとする課題】
図３は問題を例示する。図３は、２つの交差するボディを示し、主要ボディ５０は薄壁５１を含み、小さいボディ５２は、たとえば、薄壁を強化することを意図している。ユーザは、壁５１の近い側から突き出している、強化ボディの部分５２ａを除去することを望む。既知のシステムでは、除去されるボディの部分５２ａのすべての面が分割面なので、ユーザは選択するための有効な面を有していない。図５に示す所望の結果に達するために、ユーザは、図４に示すバイパス操作に頼らなければならず、ここでは、ユーザが小さい特徴５３を除去したいボディの部分の幾何形状に追加する。このように、ユーザが除去あるいは保持したいボディの特定の部分にタグを付けることができる。他の場合には，無用な特徴を追加するこの必要性は、大抵の設計者によって不自然で煩わしい操作として不快に思われ、トリム操作の広範な使用を制限することになる。
【０００９】
したがって、不必要な部分を追加する必要がなく、ユーザがトリム操作において保持するかあるいは除去するセルの分割面を選択することが可能となるシステムが必要である。
【００１０】
本発明は、他の場合には不必要な幾何形状の特徴を、操作に関係するボディに追加する必要性をユーザに課すことなく、ユーザがトリム操作を実行することが可能となるシステム、方法および装置を提供する。
【００１１】
【課題を解決するための手段】
本発明の一態様によれば、これは、既存の部分設計システムの他の既知の特徴を利用することによって達成され、これは、各ボディについて、ボディのトポロジの履歴を記述するログをシステムに格納することからなる。
【００１２】
本発明の一態様によれば、トリム操作は上述のようなカットボディ操作から開始し、これは２つのボディＡおよびＢをセルに分割する。論じたように、分割によって、３つの類別のセルが提供される。すなわち、（Ｉ）Ａからのみ生じるセル、（ＩＩ）Ｂからのみ生じるセル、および（ＩＩＩ）ＡおよびＢに共通したセルである（図１）。本発明によれば、次のステップは、２つのボディの合体（「Ａ∪Ｂ操作」）から生じた組立体におけるすべての面を、カットボディ操作後のそれらの状況（「子」状況）とそれらの以前の状況（「親」状況）との比較に従って、３つの類別に分類することを含む。この比較は、元のボディの各々のトポロジログを使用して行われる。
【００１３】
本明細書で説明するように、Ａ∪Ｂログにおけるあらゆる面が、ボディＡのトポロジログかボディＢのトポロジログのいずれか、あるいはその両方において親面を有することを理解されたい。他方では、ＡログまたはＢログにおける親面が、いくつかの子をＡ∪Ｂログに有する可能性がある。面分類処理では、面が上述のように類別される。すなわち、組み立て操作によって影響を受けない面、操作中に分割され、したがってユーザがそれらの適切な部分を選択することができるように区切られる必要のある面、および簡素化面である。
【００１４】
本発明による処理の次のステップは、ユーザが「保持」操作を選択したか「除去」操作を選択したかを決定すること、次いで指定された操作を実行することからなる。除去操作をまず説明する。選択された面が簡素化面であった場合、これは組立体全体を除去する結果となるので、ユーザはこの選択が誤りであることを知らされる。選択された面が影響を受けない面であった場合、システムはこの面が属するボディセルを識別し、これを除去する。これはすでに、従来の技術で言及した既存のシステムにおいて達成された。しかし、選択された面が分割面であった場合、本発明による方法は、トポロジログの情報を使用して、選択された面および無関係の親（選択された面の親とは異なるボディからの親）を有する面によって決定されたセルを発見することからなる。次に、このセルは除去される。
【００１５】
保持操作は除去操作と大変類似している。保持操作では、同じ方法を使用して、選択されたセルを識別する。選択されたセルが属するグループが示され、そのグループの他のセル全てが除去される。選択されたセル、および他のグループからのセルが、保持される。したがって、図１を参照して、セル１０（グループＩＩ）が保持されるために選択された場合に、セル１０は保持されるが、セル１１（グループＩＩ）は除去される。セル１２および１３（グループＩ）、およびセル１４（グループＩＩＩ）は保持される。
【００１６】
【発明の実施の形態】
図６を参照して、コンピュータ１００の物理リソースを示す。これは本発明に従ってプログラミングすることができる。コンピュータ１００は、プロセッサホストバス１０２に接続された中央処理装置１０１を有し、それを介してデータ、アドレスおよび制御信号を提供する。プロセッサ１０１は、Ｐｅｎｔｉｕｍ（登録商標）シリーズプロセッサ、Ｋ６プロセッサ、ＭＩＰＳ（登録商標）プロセッサ、Ｐｏｗｅｒ  ＰＣ（登録商標）プロセッサまたはＡＬＰＨＡ（登録商標）プロセッサなど、従来のシングルチップまたはマルチチップの汎用マイクロプロセッサいずれかにすることができる。加えて、プロセッサ１０１は、デジタル信号プロセッサまたはグラフィックスプロセッサなど、従来の特定用途向けマイクロプロセッサのいずれかにすることができる。マイクロプロセッサ１０１は、プロセッサホストバス１０２に接続する従来のアドレス、データ、および制御線を有することができる。
【００１７】
コンピュータ１００は、ＤＲＡＭ（Ｄｙｎａｍｉｃ  Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）メモリコントローラ１０４を有するシステムコントローラ１０３を含むことができる。システムコントローラ１０３は、ホストバス１０２に接続して、ランダムアクセスメモリ１０５へのインタフェースを提供することができる。システムコントローラ１０３は、ホストバスに対し、周辺バスとのブリッジング機能も提供することができる。コントローラ１０３は、それによって、プロセッサホストバス１０２上の信号を、主要周辺バス１１０上の信号と相互に交換することができる。周辺バス１１０は、たとえば、ＰＣＩ（Ｐｅｒｉｐｈｅｒａｌ  Ｃｏｍｐｏｎｅｎｔ  Ｉｎｔｅｒｃｏｎｎｅｃｔ）バス、ＩＳＡ（Ｉｎｄｕｓｔｒｙ  Ｓｔａｎｄａｒｄ  Ａｒｃｈｉｔｅｃｔｕｒｅ）バス、またはマイクロチャネル（Ｍｉｃｒｏ−Ｃｈａｎｎｅｌ）バスにすることができる。加えて、コントローラ１０３は、データバッファリング、および、ホストバス１０２と周辺バス１１０の間でデータ転送レートの調整を提供することができる。コントローラ１０３はそれによって、たとえば、６４ビット、６６ＭＨｚインタフェースおよび５３３Ｍｂｙｔｅｓ／ｓｅｃのデータ転送レートを有するプロセッサ１０１が、データパスビット幅、クロック速度、またはデータ転送レートが異なるデータパスを有するＰＣＩバス１１０とインタフェースをとることを可能にすることができる。
【００１８】
アクセサリデバイスは、たとえば、ハードディスクドライブ１１３に結合されたハードディスクドライブ制御インタフェース１１１、ビデオディスプレイ１１５に結合されたビデオディスプレイコントローラ１１２、および、キーボードおよびマウスコントローラ１２１を含み、バス１２０に結合して、プロセッサ１０１によって制御することができる。コンピュータシステムは、コンピュータシステムネットワーク、イントラネットまたはインターネットへの接続を含むことができる。データおよび情報は、このような接続を介して送受信することができる。
【００１９】
コンピュータ１００は、不揮発性ＲＯＭ（Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）メモリ１２２を含んで、基本的なコンピュータソフトウェアルーチンを格納することもできる。ＲＯＭ１２２は、ＥＥＰＲＯＭ（Ｅｌｅｃｔｒｏｎｉｃａｌｌｙ  Ｅｒａｓａｂｌｅ  Ｐｒｏｇｒａｍｍａｂｌｅ  ＲＯＭ）などの可変メモリを含んで、構成データを格納することができる。ＢＩＯＳ（Ｂａｓｉｃ  Ｉｎｐｕｔ  Ｏｕｔｐｕｔ  Ｓｙｓｔｅｍ）ルーチン１２３をＲＯＭ１２２に含めることができ、これは基本的なコンピュータ初期設定、システム検査、および入出力（Ｉ／Ｏ）サービスを提供することができる。ＢＩＯＳ１２３は、オペレーティングシステムをディスク１１３から「ブート」させることを可能にするルーチンを含むこともできる。高レベルのオペレーティングシステムの例は、Ｍｉｃｒｏｓｏｆｔ  Ｗｉｎｄｏｗｓ９８（商標）、Ｗｉｎｄｏｗｓ  ＮＴ（商標）、ＵＮＩＸ、ＬＩＮＵＸ、Ａｐｐｌｅ  ＭａｃＯＳ（商標）オペレーティングシステム、または他のオペレーティングシステムである。
【００２０】
オペレーティングシステムは、ＲＡＭメモリ１０５に完全にロードすることができ、あるいは一部をＲＡＭメモリ１０５、ディスクドライブ記憶装置１１３またはネットワークのいずれかの記憶装置に含めることができる。オペレーティングシステムは、ソフトウェアアプリケーション、ソフトウェアシステムおよびソフトウェアシステムのツールを実行するための機能を提供することができる。ソフトウェアの機能は、本発明によれば、ビデオディスプレイコントローラ１１２およびコンピュータシステム１００の他のリソースにアクセスして、ビデオコンピュータディスプレイ１１５上に設計のモデルを提供することができる。
【００２１】
本明細書で使用するトポロジログの概念は、図７を参照することによって説明される。この図に示すように、ボディＡのトポロジログは、ボディの各面のデータ、すなわち（ａ１、ａ２、ａ３、ａ４、ａ５、ａ６）からなる。面ａ４、ａ５、およびａ６は、この図では視野から隠れているので図示しない。同様に、ボディＢのトポロジログは、６面（ｂ１、ｂ２、ｂ３、ｂ４、ｂ５、ｂ６）からなり、隠れている面はこの図では図示しない。図８を参照して、ボディＡ∪Ｂのトポロジログを示し、これはボディの各面のデータを含む。したがって、たとえば、面ｃ１は簡素化面で、その親である面ａ３およびｂ３の組み合せの結果生じたものである。面ｃ２は不変面で、その親はｂ１である。面ｃ３は分割面で、その親は面ｂ２であり、その分割面はａ１である。
【００２２】
図９を参照して、本発明の方法を示したフローチャートを図示する。この図に示したように、この処理は、トリム操作の対象となる２つのボディを選択することから開始する（６０、６１）。トリム操作の最初のステップは、カットボディ操作であり、これは２つのボディの容積を、ボディＡにのみ属する容積、ボディＢにのみ属する容積、または両方のボディに共通する容積の間の境界によって、線引きされたセルに分割する（６２、６３）。次いで、２つのボディのトポロジログが比較されて、ボディＡおよびボディＢの合体、すなわち「子」面によって作成されたボディの各面の履歴が決定される（６４）。ボディＡ∪Ｂのトポロジログは、各々の子に対する親面を指示し、親面が属するボディを指示する。処理の次のステップは、ユーザによって保持操作が選択されたか除去操作が選択されたかを検査することである（６５、６６）。これらの操作は、図９および図１０において記載する。
【００２３】
図１０のフローチャートおよび図６のトポロジログを参照して、除去操作の処理を記載する。システムは、どの面を除去操作のために選択したかを指示するユーザ入力を受信する（７０）。ユーザが簡素化面を選択した場合、メッセージ（７１）がユーザに送信され、この選択が組立体全体を除去する結果となることを指示する。ユーザが影響を受けない面を選択した場合（７２  ｙｅｓ）、この面を使用して、除去されるセルを識別する（７３）。セルにすでに除去のためのフラグが立てられている場合、このセルはすでに除去されており、システムは次に選択された面を探索するので、何も行わない（７４  ｙｅｓ）。セルが事前に処置のためのタグを付けられていなかった場合、選択された面が属するセルは、組立体から除去される（７５）。
【００２４】
ユーザが影響を受ける面（すなわち、分割面）を選択した場合（７２  ｎｏ）、選択された面の親面を決定する目的のために、トポロジログが探索される（７６）。これが決定された後、Ａ∪Ｂトポロジログが探索され、選択された面に隣接する面を発見する（７７）。隣接面は、選択された面と共通のエッジを共有する、組立体の外形上の面として定義される。したがって、図８を参照して、ユーザが分割面ｃ３を選択した場合、面ｃ３に隣接した面は、簡素化面ｃ１、影響を受けない面ｃ２、分割面ｃ４、および、この図では見えないが、簡素化面ｃ１と形状が等しい組立体の背面である。隣接面が識別された後、隣接面の親を発見し、隣接面のいずれかの親が選択された面の親と同じボディに属するかどうかを決定する目的のために、ボディＡおよびボディＢのトポロジログが探索される（７８、７９）。共通の親があった場合（７９  ｙｅｓ）、この方法は次の隣接面へスキップし、再度、隣接面の親を発見し、隣接面のいずれかの親が選択された面の親と同じボディに属するかどうかを決定する目的のために、ボディＡおよびボディＢのトポロジログを探索することによって、進行する（８０）。ログは、選択された面と同じ親を有していない隣接面が発見されるまで、探索される（７９ｎｏ）。次いで、その面を使用して、何が除去されるか、すなわち、異なる親を有する隣接面によって境界を画して制限されたような、選択された面を有するセルを定義する（８１）。識別されたセルが、続いて除去され（７５）、他に選択された面がなくなるまで、処理全体が、次に選択された面について繰り返され（８３  ｙｅｓ）、選択された面がなくなった場合は処理が終了する（８３  ｎｏ）。
【００２５】
このとき、前述の処理がセルの特徴を識別するという結果になることを理解されたい。除去操作では、セルが識別された後、これが除去される（図１０、ステップ７５）。保持操作の方法は、セルが識別される方法と同様である。保持方法（図１１）は、ステップ７５′のみが異なり、選択されたセルが識別され、そのグループが決定された後、これが他のグループからのセルと共に保持される。選択されたセルと同じグループ（したがって同じボディ）から選択されていないセルは除去される。保持および除去操作は、共に同じ結果を達成するので、両方を提供することがなぜ必要かと思われるかもしれない。その理由は、多数の設計者が、除去したいものよりも保持したいものを定義する方がより自然であることがわかっているからである。
【００２６】
除去操作で実施したような本発明を、以下で図１、図７、図８および図１０を参照して記載する。図８は、図６に示したボディＡおよびＢの組み合せの結果であることを思い出されたい。この例では、ユーザが、図１で１０が付いた最上のセルを除去することを望んでいるとる。セル１０は、グループＩＩのセルであり、これは、その容積がボディＢからのみ生じたものだからである（図１）。例示のため、ユーザが図８に示す面ｃ３を選択し、除去操作を指定すると仮定する。ｃ３は簡素化面でも不変面でもないので、システムは直接ｃ３の親を決定するステップへ進行する（図１０、ステップ７６）。この場合、トポロジログから、ｃ３の親がボディＢからのｂ２であることが決定される。次いで、システムは、面ｃ３に隣接するすべての面を識別する（図１０、ステップ７７）。隣接面は、ｃ１、ｃ２、ｃ４および組立体の背面であり、これはｃ１と形状が等しい簡素化面であり、この例ではｃ１４として指示される。
【００２７】
次のステップは、隣接面の１つを選択し、このような隣接面の親が面ｃ３の親と同じボディに属するかどうかを決定することになる（図１０、ステップ７８、７９）。隣接面ｃ１が最初に照会されると仮定すると、ｃ１の親は、ボディＡおよびＢの両方から生じたａ３およびｂ３であることが決定される。したがって、図１０の照会７９に対する応答は肯定的となり、すなわち、面ｃ３および面ｃ１はそれぞれ同じボディ、すなわちボディＢから生じた親を有する。同じ結果が、面ｃ１４に関する照会についても得られる。次に検査される面がｃ２であると仮定すると、ｃ２の親は、ｂ１であると決定され、これはボディＢから生じたものである。再度、図１０の照会７９に対する応答は肯定的となり、すなわち、面ｃ３および面ｃ２はそれぞれ同じボディ、すなわちボディＢから生じた親を有する。最後に、照会は隣接面ｃ４を調べる。ｃ４の親は、ａ１である。したがって、ｃ４の親（ボディＡからのもの）は、面ｃ３の親と同じボディ（ボディＢ）から生じない。したがって、図１０のステップ７９の照会に対する応答は否定的となり、システムは、セル１０（図１）を識別してタグを付け、これは、後続の処理のために面ｃ４によって制限された面ｃ３によって定義される（図１０、ステップ８１）。この例では、タグが付けられたセルが続いて除去される（図１０、ステップ７５）。次いで、他の面がユーザによって選択されている場合、処理全体が繰り返され、（図１０、ステップ８３  ｙｅｓ）、そうでない場合は、処理が終了する（図１０、ステップ８３  ｎｏ）。時々、図１０の照会７９があらゆる隣接面について肯定的に回答され（すなわち、選択された面の親および隣接面の親が同じボディからのものである）、検査する隣接面が残っていない場合、メッセージがユーザに送信され、エラーが発生したことが指示される（図１０、ステップ８２）。
【００２８】
このとき、ユーザが除去機能ではなく保持機能を要求したと仮定しよう。その場合、問題のセルの識別を決定する方法は同じものとなる。違いは、問題のセルが識別された後に、そのセルがシステムによって除去されることである。この例では、セル１０が識別された後、システムは、グループＩＩのセルであるセル１０を保持するが、グループＩＩのセルの残り、すなわちセル１１を除去する（図１１、ステップ７５′）。加えて、システムは、グループＩのセル（１２および１３）、およびグループＩＩＩのセル（１４）を保持する。
【００２９】
本発明は、デジタル電子回路、またはコンピュータハードウェア、ファームウェア、ソフトウェアまたはそれらの組み合せにおいて実施することができる。本発明の装置は、プログラミング可能プロセッサによって実行するための機械で読取り可能な記憶デバイスで、具体的に実施されたコンピュータプログラム製品において実施することができ、本発明の方法ステップは、入力データを操作して出力を生成することによって、本発明の機能を実行するための命令からなるプログラムを実行するプログラミング可能なプロセッサによって実行することができる。
【００３０】
本発明は、データ記憶システムからデータおよび命令を受信するため、かつデータおよび命令をそれらへ送信するために結合された少なくとも１つのプログラミング可能プロセッサ、少なくとも１つの入力デバイス、および少なくとも１つの出力デバイスを含むプログラミング可能システム上で実行可能な、１つまたは複数のコンピュータプログラムで有効に実施できる。アプリケーションプログラムは、高レベルの手続き形またはオブジェクト指向プログラミング言語、または、望む場合はアセンブリまたは機械語で実施することができ、いずれの場合も、言語をコンパイルあるいは解釈実行される言語にすることができる。
【００３１】
一般に、プロセッサは、命令およびデータを読み取り専用メモリおよび／またはランダムアクセスメモリから受信する。コンピュータプログラム命令およびデータを具体的に実施するために適した記憶デバイスには、すべての形式の不揮発性メモリが含まれ、例として、ＥＰＲＯＭ、ＥＥＰＲＯＭ、およびフラッシュメモリデバイスなどの半導体メモリデバイス、内部ハードディスクおよび取り外し可能ディスクなどの磁気ディスク、光磁気ディスク、およびＣＤ−ＲＯＭディスクが含まれる。前述のいずれも、専用に設計されたＡＳＩＣ（特定用途向け集積回路）によって補足され、あるいはそれに組み込むことが可能である。
【００３２】
本発明のいくつかの実施形態を記載した。様々な変更を、本発明の精神および範囲から離れることなく行うことができることを理解されたい。したがって、他の実施は、特許請求の範囲の範囲内である。
【図面の簡単な説明】
【図１】カットボディ操作の結果を示し、組立体に併合された２つのボディが、それら元のボディに従ってセルに分割された例を示す図である。
【図２】２つのボディを組立体に併合する前のボディおよびそれらの面、および、２つのボディの併合した後の結果として生じた面を例示する図である。
【図３】組立体の２つのボディである主要ボディおよび強化ボディの交差の一例を示す図である。
【図４】従来技術の方法に関し、除去される強化ボディの一部の面における不必要な部分を追加する例を示す図である。
【図５】強化ボディの望ましくない部分を除去した後の、図３の組立体を例示する図である。
【図６】本発明を使用することが可能であるコンピュータシステムのブロック図である。
【図７】２つのボディのトポロジログを示す図である。
【図８】図７について２つのボディの併合によって形成された組立体のトポロジログを示す図である。
【図９】本発明の方法全体の概略図である。
【図１０】本発明による「除去」操作の概略図である。
【図１１】本発明による「保持」操作の概略図である。
【符号の説明】
１０、１１、１２、１３、１４    セル
２０、２１、２２、２３、２４、２５、２６、２７、２８、２９、３０、３１、３２、ａ１、ａ２、ａ３、ｂ１、ｂ２、ｂ３、ｃ１、ｃ２、ｃ３、ｃ４、ｃ５、ｃ６、ｃ７、ｃ１４    面
５０    主要ボディ
５１    薄壁
５２    小さいボディ
５２ａ    部分
５３    タグ
【図１】
0003606372.tif 000002
【図２】
0003606372.tif 000003
【図３】
0003606372.tif 000004
【図４】
0003606372.tif 000005
【図５】
0003606372.tif 000006
【図６】
0003606372.tif 000007
【図７】
0003606372.tif 000008
【図８】
0003606372.tif 000009
【図９】
0003606372.tif 000010
【図１０】
0003606372.tif 000011
【図１１】
0003606372.tif 000012