(57)【特許請求の範囲】
【請求項１】
複数の基本立体である親フィーチャの和、差又は積をとる集合演算によって詳細形状を表現するＣＳＧ方式三次元ＣＡＤにおける任意面の編集処理をコンピュータに実行させる方法であって、
編集対象の面を親フィーチャ面及び複数の隣接フィーチャ面によって特定する面特定テーブルと編集内容を特定する面編集テーブルとをあらかじめ登録するステップと、
前記面特定テーブルを読み込むステップと、
前記面特定テーブルに記載されている親フィーチャ面と同一属性を有する面を詳細形状の複数の面から検索するステップと、
前記検索によって得られた面のそれぞれについて隣接面を検索し、得られた隣接面の属性を取り出すステップと、
前記面特定テーブルに記載された隣接フィーチャ面と同一の属性を有する隣接面が最も多い面を編集対象の面であると判定するステップと、
得られた編集対象の面に対して、前記面編集テーブルの記載内容にしたがって編集処理を施すステップと
を有することを特徴とするＣＳＧ方式三次元ＣＡＤにおける任意面の編集方法。
【請求項２】
複数の基本立体である親フィーチャの和、差又は積をとる集合演算によって詳細形状を表現するＣＳＧ方式三次元ＣＡＤにおける任意面の編集処理をコンピュータに実行させるためのコンピュータプログラムであって、
編集対象の面を親フィーチャ面及び複数の隣接フィーチャ面によって特定する面特定テーブルと編集内容を特定する面編集テーブルとをあらかじめ登録するステップと、
前記面特定テーブルを読み込むステップと、
前記面特定テーブルに記載されている親フィーチャ面と同一属性を有する面を詳細形状の複数の面から検索するステップと、
前記検索によって得られた面のそれぞれについて隣接面を検索し、得られた隣接面の属性を取り出すステップと、
前記面特定テーブルに記載された隣接フィーチャ面と同一の属性を有する隣接面が最も多い面を編集対象の面であると判定するステップと、
得られた編集対象の面に対して、前記面編集テーブルの記載内容にしたがって編集処理を施すステップと
をコンピュータに実行させることを特徴とするコンピュータプログラム。
【請求項３】
複数の基本立体である親フィーチャの和、差又は積をとる集合演算によって詳細形状を表現するＣＳＧ方式三次元ＣＡＤにおける任意面の編集処理をコンピュータに実行させるためのプログラムが記録されたコンピュータ読み取り可能な記録媒体であって、
編集対象の面を親フィーチャ面及び複数の隣接フィーチャ面によって特定する面特定テーブルと編集内容を特定する面編集テーブルとをあらかじめ登録するステップと、
前記面特定テーブルを読み込むステップと、
前記面特定テーブルに記載されている親フィーチャ面と同一属性を有する面を詳細形状の複数の面から検索するステップと、
前記検索によって得られた面のそれぞれについて隣接面を検索し、得られた隣接面の属性を取り出すステップと、
前記面特定テーブルに記載された隣接フィーチャ面と同一の属性を有する隣接面が最も多い面を編集対象の面であると判定するステップと、
得られた編集対象の面に対して、前記面編集テーブルの記載内容にしたがって編集処理を施すステップと
を有するプログラムが記録されていることを特徴とする記録媒体。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、ＣＳＧ方式の三次元ＣＡＤにおいて任意面に対する編集操作を可能にする方法、及び、コンピュータプログラムに関する。
【０００２】
【発明の背景と課題】
三次元ＣＡＤ（Ｃｏｍｐｕｔｅｒ  Ａｉｄｅｄ  Ｄｅｓｉｇｎ）における立体モデルの表現方式として、ＣＳＧ（Ｃｏｎｓｔｒｕｃｔｉｖｅ  Ｓｏｌｉｄ  Ｇｅｏｍｅｔｒｙ）と呼称されるものがある。この方式では、立体を構成する要素として基本立体を定義し、複数の基本立体の和、差又は積をとる集合演算によって立体を表現する。例えば図８に示すように、直方体である第１の要素（以下、フィーチャという）１０１と直方体である第２のフィーチャ１０２との差を求める演算によって、詳細形状の立体１０３を表現することができる。
【０００３】
一方、最も一般的な立体モデルの表現方式であるＢＲｅｐ（ＢｏｕｎｄａｒｙＲｅｐｒｅｓｅｎｔａｔｉｏｎ）では、立体そのものを直接的に表現する。つまり、立体（ｓｏｌｉｄ）は複数の面（ｆａｃｅ）から構成され、各面は複数の稜線（ｅｄｇｅ）からなり、各稜線は両端の頂点（ｖｅｒｔｅｘ）を有する。この方式は境界表現法とも呼称され、立体を直接表現するデータを有するので、表示等の速度が速い長所を有する。しかし、ＢＲｅｐ方式はデータ構造が複雑でありデータ量が多いといった欠点を有する。
【０００４】
これに対して、上記のＣＳＧは表現が単純であり、少ないデータ量で立体を表現することができるメリットを有する。また、一度設計した形状を比較的容易に変更（編集）できるメリットもある。例えば、図８に示すように、立体１０３の切欠き部１０３ａの幅を大きくしたい場合は、第２のフィーチャ１０２の幅を変更したもの１０２’を用いて、第１のフィーチャ１０１との差を求める演算を再実行すればよい。これにより、幅が広がった切欠き部１０３ａ’を有する立体１０３’が得られる。
【０００５】
しかし、ＣＳＧ方式の表現では、立体を構成するフィーチャ単位での編集は容易であるが、任意の面に対する編集（局所的な変形）が困難である。このことは上記のメリットの裏返しでもある。例えば、図９に示すように、立体１０３の切欠き部１０３ａの両側の面１０３ｂ及び１０３ｃを同時に伸縮させて新たな立体１０４とする編集は可能（ＯＫ）であるが、一方の面１０３ｂのみを伸縮させて新たな立体１０５とする編集は不可（ＮＧ）である。面１０３ｂ及び面１０３ｃは共に第１のフィーチャ１０１の面１０１ａ（図８参照）に対応しており、ＣＳＧ方式の表現では元のフィーチャ面単位での編集のみが可能だからである。これに対して、ＢＲｅｐ方式では、上記のように、すべての面が複数の稜線で個別に定義されているので、各面（例えば、１０３ｂ及び１０３ｃ）は個別に編集することができる。
【０００６】
本発明は、上記のような課題に鑑みてなされたものであり、ＣＳＧ方式の三次元ＣＡＤにおいて任意面の編集を可能にする方法及びコンピュータプログラムを提供することを目的とする。
【０００７】
【課題を解決するための手段】
本発明によるＣＳＧ方式三次元ＣＡＤにおける任意面の編集方法は、複数の基本立体である親フィーチャの和、差又は積をとる集合演算によって詳細形状を表現するＣＳＧ方式三次元ＣＡＤにおける任意面の編集処理をコンピュータに実行させるための方法であって、編集対象の面を親フィーチャ面及び複数の隣接フィーチャ面によって特定する面特定テーブルと編集内容を特定する面編集テーブルとをあらかじめ登録するステップと、前記面特定テーブルを読み込むステップと、前記面特定テーブルに記載されている親フィーチャ面と同一属性を有する面を詳細形状の複数の面から検索するステップと、前記検索によって得られた面のそれぞれについて隣接面を検索し、得られた隣接面の属性を取り出すステップと、前記面特定テーブルに記載された隣接フィーチャ面と同一の属性を有する隣接面が最も多い面を編集対象の面であると判定するステップと、得られた編集対象の面に対して、前記面編集テーブルの記載内容にしたがって編集処理を施すステップとを有することを特徴とする。
【０００８】
このような方法によれば、ＣＳＧ方式でありながら詳細形状の任意の面を構成要素のフィーチャ面を用いて特定することができるので、ＢＲｅｐ方式の場合と同様に任意の面を編集することができるようになる。
【０００９】
上記のようなＣＳＧ方式三次元ＣＡＤにおける任意面の編集方法を実施するための本発明によるコンピュータプログラムは、編集対象の面を親フィーチャ面及び複数の隣接フィーチャ面によって特定する面特定テーブルと編集内容を特定する面編集テーブルとをあらかじめ登録するステップと、前記面特定テーブルを読み込むステップと、前記面特定テーブルに記載されている親フィーチャ面と同一属性を有する面を詳細形状の複数の面から検索するステップと、前記検索によって得られた面のそれぞれについて隣接面を検索し、得られた隣接面の属性を取り出すステップと、前記面特定テーブルに記載された隣接フィーチャ面と同一の属性を有する隣接面が最も多い面を編集対象の面であると判定するステップと、得られた編集対象の面に対して、前記面編集テーブルの記載内容にしたがって編集処理を施すステップとをコンピュータに実行させることを特徴とする。
【００１０】
このようなコンピュータプログラムをＣＳＧ方式三次元ＣＡＤプログラムに組み込むことにより、ＣＳＧ方式でありながら詳細形状の任意の面を構成要素のフィーチャ面を用いて特定し、ＢＲｅｐ方式の場合と同様に任意の面を編集することができるようになる。
【００１１】
上記のようなコンピュータプログラムを含むＣＳＧ方式三次元ＣＡＤプログラムは、例えばＣＤ−ＲＯＭのようなコンピュータ読み取り可能な記録媒体に記録された状態で供給され、記録媒体からコンピュータにインストールされ実行される。
【００１２】
【発明の実施の形態】
以下、本発明の実施形態を図面に基づいて説明する。
図１は、本発明に係るＣＳＧ方式三次元ＣＡＤにおける任意面の編集方法を実施するためのコンピュータシステムの例を示すブロック図である。本発明のＣＳＧ方式三次元ＣＡＤにおける任意面の編集方法は、パーソナルコンピュータやワークステーションのようなコンピュータシステムにインストールされる専用プログラム（ＣＳＧ方式三次元ＣＡＤプログラム）の機能の一部として実施される。
【００１３】
ＣＳＧ方式三次元ＣＡＤプログラム（以下、単にＣＡＤプログラムという）は、例えばＣＤ−ＲＯＭ（光ディスク）のような記録媒体５に記録された状態で供給され、ドライブ装置４を介してコンピュータ本体１の補助記憶装置（ハードディスクドライブＨＤＤ）１３にインストールされる。
【００１４】
補助記憶装置１３にインストールされたＣＡＤプログラムは、主メモリ１２にロードされ、実行される。コンピュータ本体１は、主メモリ１２及び補助記憶装置１３の他に、入力部１１及び表示出力部１４を備えている。入力部１１にはキーボード、マウス等の入力装置２が接続され、表示出力部１４にはＣＲＴ（陰極線管）、ＬＣＤ（液晶表示装置）等の表示装置３が接続されている。補助記憶装置１３には、オペレーティングシステム、ＣＡＤプログラム等の各種プログラムの他に、ＣＡＤプログラムによって作成された各種図面ファイルやその編集のためのデータ等に関するデータファイル６が格納されている。後述する任意面の編集に用いられる面特定テーブル及び面編集テーブルもこの補助記憶装置１３に格納される。
【００１５】
図２は、本発明によるＣＳＧ方式における立体の任意面の特定方法の概念図である。図示の例では、詳細形状の立体１１が第１のフィーチャ（要素）１２と第２のフィーチャ１３との差を求める演算によって表現される。この場合に、任意の面を第１及び第２のフィーチャ１２，１３の面を用いて特定することができれば、ＢＲｅｐ方式の場合と同様に任意の面を編集することができるようになる。
【００１６】
図２において、例えば面Ｆ１は、第１のフィーチャ１２の面ＦＡ１が分割されたものである。また、面Ｆ１に隣接する面は４個あり、それぞれの面は第１及び第２のフィーチャ１２，１３の各面に対応している。図２において第１のフィーチャ１２の右側面ＦＡ１、後側の側面をＦＡ２、上面をＦＡ３、下面をＦＡ４とする。また、第２のフィーチャ１３の後側の側面をＦＢ１とする。なお、図において隠れた面を示す記号には下線を付している。以下の図においても同様とする。
【００１７】
この場合、編集対象の面Ｆ１は、対応する親フィーチャの面（以下、親フィーチャ面という）ＦＡ１と、４個の隣接面に対応する親フィーチャの面（以下、隣接フィーチャ面という）ＦＡ２，ＦＡ３，ＦＡ４及びＦＢ１を用いて特定することができる。したがって、立体の任意の面を特定するためのデータ構造は、図３に示すようになる。なお、隣接する面の数（隣接面数）をＮ個としている。このようなデータ構造を有するテーブルをＣＧＳの構成要素（フィーチャ）の一つとして管理することにより、ＣＧＳ形式の三次元ＣＡＤにおいても、詳細形状（立体）の任意の面を特定することができる。その結果、任意面の編集操作が可能になる。編集操作には、伸縮操作、公差情報の付加等が含まれる。
【００１８】
図４は、ＣＳＧ形式とその演算式である２分木構造との関係を例示する図である。前述の例において、第１のフィーチャ１２をＡで表し、第２のフィーチャ１３をＢで表したとき、ＡとＢとの差によって詳細形状の立体１１を表現する演算式は２分木構造２１で表される。
【００１９】
図５は、ＣＳＧ形式における面編集と２分木構造との関係を例示する図である。また、図６は、面特定テーブル及び面編集テーブルの例を示す図表である。この例では、面Ｆ１を伸縮させる面編集における面特定フィーチャをＣで表し、面伸縮の演算子を％と定義している。このときの面特定フィーチャＣに対応する面特定テーブルは図６（ａ）に示すようになる。但し、各面を表す記号は図２に示した通りである。また、編集内容を示す面編集テーブルは、図６（ｂ）に示すようになる。
【００２０】
図７は、本実施形態に係る面編集のアルゴリズムを示すフローチャートである。まず、ステップ＃１０１で面編集のための面特定フィーチャ、すなわち、図６（ａ）に示した面特定テーブルを読み込む。なお、立体（詳細形状）の各面には、元となる構成フィーチャの面のＩＤが属性として付加されている。あるいは、構成フィーチャの面が特定可能である。実際、ＣＳＧ方式三次元ＣＡＤでは一般的に、構成フィーチャを特定可能とするために、詳細形状の面に構成フィーチャの面のＩＤが属性として付加されている。
【００２１】
次のステップ＃１０２において、詳細形状の面から面特定フィーチャに記述された親フィーチャ面と同一属性を有する面を検索する。結果として、１又は複数の面が得られる。すでに編集が行われているような場合に、１個の面もマッチしない場合もあり得る。
【００２２】
次のステップ＃１０３において、検索結果で得られた面のそれぞれについて隣接面を検索し、得られた隣接面の属性を取り出す。そして、面特定テーブルに記載された隣接フィーチャ面と同一の属性を有する隣接面が最も多い面を編集対象の面であると判定する（ステップ＃１０４）。ほとんどの場合は、編集対象の面のすべての隣接面と面特定テーブルに記載されたすべての隣接フィーチャ面との属性が一致するが、すでに編集が行われているような場合に、一致しない隣接面と隣接フィーチャ面とが発生し得る。そこで、このように属性が一致する面が最も多い面を編集対象の面であると判定（推定）する。
【００２３】
例えば、図２に示した立体モデルと図６（ａ）に示した面特定テーブルを参照すると、ステップ＃１０２における検索の結果、親フィーチャ面ＦＡ１と同一属性を有する面として、立体１１の２つの面Ｆ１及びＦ２が得られる。次のステップ＃１０３において、面Ｆ１の隣接面として４個の面ＦＡ２，ＦＡ３，ＦＡ４及びＦＢ１が得られると共に、面Ｆ２の隣接面として４個の面ＦＡ２，ＦＡ４，ＦＡ５及びＦＢ２が得られる。続くステップ＃１０４における面特定テーブルに記載された隣接フィーチャ面との照合の結果、面Ｆ１は４個の隣接面すべてが一致するのに対して、面Ｆ２は２個の面（ＦＡ２及びＦＡ４）しか一致しない。この結果、面Ｆ１が編集対象の面であると判定される。
【００２４】
次のステップ＃１０５において、図６（ｂ）に例示したような面編集テーブルの記載内容にしたがって、上記の処理で得られた編集対象の面に編集処理を施す。
【００２５】
以上、本発明の実施形態を変形例と共に説明したが、本発明は上記の実施形態に限らず、種々の形態で実施可能である。図示した立体（詳細形状）とその要素（フィーチャ）やデータテーブルは例示に過ぎない。
【００２６】
【発明の効果】
以上に説明したように、本発明のＣＳＧ方式三次元ＣＡＤにおける任意面の編集方法及びコンピュータプログラムによれば、詳細形状の任意の面を構成要素のフィーチャ面を用いて特定することができるので、ＢＲｅｐ方式の場合と同様に任意の面を編集することができるようになる。
【図面の簡単な説明】
【図１】本発明に係るＣＳＧ方式三次元ＣＡＤにおける任意面の編集方法を実施するためのコンピュータシステムの例を示すブロック図。
【図２】本発明によるＣＳＧ方式における立体の任意面の特定方法の概念図である。
【図３】立体の任意の面を特定するためのデータ構造を示す図表である。
【図４】ＣＳＧ形式とその演算式である２分木構造との関係を例示する図である。
【図５】ＣＳＧ形式における面編集と２分木構造との関係を例示する図である。
【図６】面特定テーブル及び面編集テーブルの例を示す図表である。
【図７】本実施形態に係る面編集のアルゴリズムを示すフローチャートである。
【図８】ＣＳＧ方式による立体表現の例を示す図
【図９】ＣＳＧ方式による立体表現における編集の例を示す図
【符号の説明】
５  記録媒体
６  データファイル（面特定テーブル、面編集テーブル）
１１  詳細形状（立体）
１２，１３  親フィーチャ（基本立体）
Ｆ１  編集対象面
ＦＡ１  親フィーチャ面
ＦＡ２，ＦＡ３，ＦＡ４，ＦＡ５，ＦＢ１，ＦＢ２  隣接フィーチャ面
【図１】
0003926175.tif 000002
【図２】
0003926175.tif 000003
【図３】
0003926175.tif 000004
【図４】
0003926175.tif 000005
【図５】
0003926175.tif 000006
【図６】
0003926175.tif 000007
【図７】
0003926175.tif 000008
【図８】
0003926175.tif 000009
【図９】
0003926175.tif 000010