(57)【特許請求の範囲】
【請求項１】
３次元形状モデル上の角部を形成する隣接する２面の共有する稜線に沿って前記２面を滑らかに接続するフィレット面を生成するフィレット面生成手段を備えた３次元形状処理装置において、フィレット面を埋め込む稜線の本数だけ元の３次元形状モデルを複製し、複製した３次元形状モデルのそれぞれに対してそれぞれの稜線に対応したフィレット面埋め込み形状を生成するフィレット面生成手段と、前記フィレット面生成手段により生成されたフィレット面埋め込み形状の埋め込まれたそれぞれの３次元形状間に集合演算操作を実施して、複数のフィレット面の干渉形状を生成する干渉形状生成手段と、を備えたことを特徴とする３次元形状処理装置。
【請求項２】
請求項１記載の３次元形状処理装置において、フィレット面生成手段により生成されたフィレット面埋め込み形状の埋め込まれたそれぞれの３次元形状の形状データを記憶しておく形状データ記憶手段を備えたことを特徴とする３次元形状処理装置。
【請求項３】
データ処理部を備え、３次元形状モデル上の角部を形成する隣接する２面の共有する稜線に沿って前記２面を滑らかに接続するフィレット面を生成する３次元形状処理装置における３次元形状処理方法において、
前記データ処理部は、フィレット面を埋め込む稜線の本数だけ元の３次元形状を複製するステップと、
複製した３次元形状のそれぞれに対してそれぞれの稜線に対応したフィレット面埋め込み形状を生成するステップと、
フィレット面埋め込み形状が埋め込まれたそれぞれの３次元形状間に集合演算操作を実施して複数のフィレット面の干渉形状を生成するステップと、を実行することを特徴とする３次元形状処理方法。
【請求項４】
請求項３に記載された３次元形状処理方法をコンピュータに実行させるためのプログラムを記録したことを特徴とするコンピュータ読み取り可能な記録媒体。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、専用の３次元形状処理装置やパーソナルコンピュータなど情報処理装置などで実施される、生成されている３次元形状モデル上にフィレット面を生成する３次元形状処理方法に係わり、特に、生成された複数のフィレット面同士が干渉しあう場合のフィレット面生成方法に関する。
【０００２】
【従来の技術】
グラフィクス表示装置とコンピュータとを用いたＣＡＤ／ＣＡＭ装置など３次元形状処理装置では、従来より、３次元形状を生成したり、生成されている３次元形状を変形させたり、３次元形状の体積や重心などを計算したり、３次元形状上で様々な判定を行ったりしている。なお、本発明に係わる３次元形状（３次元立体）とは、境界表現形式のソリッドモデルデータとして生成された形状を指し、その境界表現形式のソリッドモデルとは、稜線や頂点や面というような要素により３次元空間上に閉じた領域を定義し、中身の詰まった立体を表現したものである。
本発明は、このような３次元形状処理装置において従来より行われている、３次元形状モデルを構成する任意の稜線を挟んで隣接する２面間に丸めた角部（フィレット面）を生成するフィレット面生成（丸め変形処理）に関するものであるが、このような処理に関する従来技術では、フィレット面生成の際、まず、利用者にフィレット面の半径を指定させ、３次元形状の角を形成する対を成す２面の共通の稜線を指定させて、その稜線に直交する複数の断面内で２面のそれぞれの断面線に接する指定した半径の接円弧を求め、求められた複数の接円弧が２面に接する二つの接点のそれぞれを順につなぐことによりフィレット面を生成する。あるいは、前記稜線の始点から終点に向かって、対になる２面に共に接する状態を保ちつつ、指定された丸め半径を持つフィレット球を転がしたと仮定したときに、２面とフィレット球との接点の描く軌跡をフィレット面の境界曲線としてフィレット面を生成する。
このようなフィレット面生成は、ひとつの３次元形状（立体）でひとつの稜線においてだけ行なわれるとは限らない。頂点を共有する隣接する２つの稜線においてフィレット面が生成されることもしばしばあり、そのような場合には生成された２つのフィレット面が干渉し合う。そのため、そのような場合には、従来、生成されたフィレット面の干渉部分においてフィレット面どうしを滑らかにつなぐ、ぼかし面と呼ばれる面を追加している。例えば図７において、符号Ａは第１のフィレット面の非干渉部分、符号Ｂは第２のフィレット面の非干渉部分、符号Ｃは第１のフィレット面と第２のフィレット面の干渉部分で、フィレット面どうしを滑らかにつないだぼかし面である。
【０００３】
【発明が解決しようとする課題】
しかしながら、場合によっては、フィレット面どうしの干渉部分にぼかし面を生成しない３次元形状を用いたいときもある。そのような場合、従来は、ぼかし面生成後の形状からそれぞれの干渉前の形状を生成する操作を設計者が手動で行い、その干渉前の形状を用いてぼかし面のない干渉部分を有した３次元形状を生成せねばならなかった。従来は、互いに干渉する複数のフィレット面からぼかし面のない干渉形状を自動的に直接生成する手段を提供していないのである。
本発明の目的は、このような従来技術の問題を解決し、ぼかし面のないフィレット面の干渉形状を自動的に生成できるようにすることにより設計の効率化を図ることができるフィレット面生成方法を提供するとともに、併せて、ぼかし面のある干渉形状も容易に生成することができるフィレット面生成方法を提供することにある。
【０００４】
【課題を解決するための手段】
前記の課題を解決するために、請求項１記載の発明では、３次元形状モデル上の角部を形成する隣接する２面の共有する稜線に沿って前記２面を滑らかに接続するフィレット面を生成するフィレット面生成手段を備えた３次元形状処理装置において、フィレット面を埋め込む稜線の本数だけ元の３次元形状モデルを複製し、複製した３次元形状モデルのそれぞれに対してそれぞれの稜線に対応したフィレット面埋め込み形状を生成するフィレット面生成手段と、前記フィレット面生成手段により生成されたフィレット面埋め込み形状の埋め込まれたそれぞれの３次元形状間に集合演算操作を実施して、複数のフィレット面の干渉形状を生成する干渉形状生成手段とを備えた。
また、請求項２記載の発明では、請求項１記載の発明において、フィレット面生成手段により生成されたフィレット面埋め込み形状の埋め込まれたそれぞれの３次元形状の形状データを記憶しておく形状データ記憶手段を備えた。
また、請求項３記載の発明では、データ処理部を備え、３次元形状モデル上の角部を形成する隣接する２面の共有する稜線に沿って前記２面を滑らかに接続するフィレット面を生成する３次元形状処理装置における３次元形状処理方法において、前記データ処理部は、フィレット面を埋め込む稜線の本数だけ元の３次元形状を複製するステップと、複製した３次元形状のそれぞれに対してそれぞれの稜線に対応したフィレット面埋め込み形状を生成するステップと、フィレット面埋め込み形状が埋め込まれたそれぞれの３次元形状間に集合演算操作を実施して複数のフィレット面の干渉形状を生成するステップと、を実行するようにした。
また、請求項４記載の発明は、請求項３に記載された３次元形状処理方法をコンピュータに実行させるためのプログラムを記録したことを特徴とするコンピュータ読み取り可能な記録媒体である。
【０００５】
【発明の実施の形態】
以下、図面により本発明の実施の形態を詳細に説明する。
図１は本発明の一実施例を示す３次元形状処理装置の構成ブロック図である。図示したように、この実施例の３次元形状処理装置は、プログラムや各種データを一時的に記憶するメモリ、およびそのプログラムに従って演算や処理を行うＣＰＵを有したデータ処理部１、プログラムやデータや指示などを人のキー操作に基づき入力するキーボード２、図形や文字などを表示する表示装置（例えばＣＲＴ）３、図形や文字などを紙上に印刷するプリンタ４、表示装置３の画面上に表示された目印を人の操作に基づき移動させると共にその移動に基づくデータを入力するマウス５、フロッピーディスクやハードディスクなど記憶媒体を収容する補助記憶装置６、それらを相互に接続するシステムバス７などを備えている。なお、請求項１記載のフィレット面生成手段および干渉形状生成手段は、この実施例ではデータ処理部１により実現される。
このような構成で、この実施例の３次元形状処理装置では、利用者がキーボード２やマウス５を操作してデータや指示情報を入力し、データ処理部１が、その内容に基づき、所定のプログラムに従って演算や処理を行うことで図形などを生成し、その図形などを表示装置３に表示したりする。また、この３次元形状処理装置は、面と面との接続関係を表す位相データを持つソリッドモデルを取り扱うことができ、３次元形状の角部を形成する対になる２面の共有する稜線を指定して、指定された稜線に沿って指定された丸め半径で前記２面を滑らかに接続するフィレット面を生成する。また、ひとつの３次元形状モデル（立体）の複数の部分に生成したフィレット面どうしの干渉が発生した場合、ぼかし面を生成せずに、複数のフィレット面の干渉形状を持つ３次元形状モデル（以下、３次元形状と略す）を生成することができる。
【０００６】
図２に、この実施例の動作フローの概略を示す。図示したように、この実施例では、まず、フィレット面を埋め込む稜線の本数と等しい数の３次元形状（立体）を、元の３次元形状を複製することにより生成する（Ｓ１）。
次に、生成された各３次元形状にフィレット面を埋め込む処理を行う（Ｓ２）。つまり、３次元形状の角部を形成する対になる２面に共に接する球や円弧を置いたときの接点を求め、これらの補完曲線を求めることによって、フィレット面の境界の形状を算出し、さらにこのフィレット面の境界と元の３次元形状の持つ稜線との交差判定を行って、適切な稜線を作成してフィレット面埋め込み形状を生成するのである（参考文献［１］：T.Harada, et.al, Variable-Radius blending by Using Gregory Patches in Gemetric Modeling, EUROGRAPHICS'91, Eurographics Association, pp.507-516, 1991. 参照）。なお、複製された３次元形状一つにつき一つの稜線に係わるフィレット面の埋め込みを行うので、このフィレット面埋め込みでフィレット面どうしの干渉は発生しない。
続いて、フィレット面埋め込み済みの各３次元形状に対して和（凹状の角の場合）または積（凸状の角の場合）の集合演算を実施して一つの３次元形状にまとめる一体化処理を行う（Ｓ３）。例えば、２つの３次元形状のすべての稜線と面の組合せ、およびすべての面と面の組合せについて干渉を調べ、干渉部分に新たに頂点や稜線を生成し、不要な部分を除去し、最後に２つの３次元形状を接合するのである（参考文献［２］：鳥谷浩志、千代倉弘明編著、三次元ＣＡＤの基礎と応用、共立出版、pp.135-142、1991. 参照）。
３個以上の複製がある場合には、このような一体化処理を繰り返し行なって複数の３次元形状を一つの３次元形状にまとめる。
こうして、本発明の実施例では、フィレット面どうしが干渉する部分にぼかし面のないフィレット面埋め込み形状を生成することができる。
【０００７】
図３に、詳細な動作フローを示す。なお、この動作は、プログラムに従って主としてデータ処理部１により実行される。また、ソリッドモデルとして生成した図４(a)に示した３次元形状のn個所の角部をあらわす稜線 E(1..n) に、指定された丸め半径で、図４(b)に示したようにフィレット面を埋め込むものとし、このとき、互いに干渉するフィレット面の間にぼかし面を生成しないものとする。また、説明上、図４、図５、および図６においてはnを2とし、２個所にフィレット面を埋め込む例を示した。
以下、ステップＳ11〜Ｓ16の動作について図５を参照しながら説明する。
上記のようなフィレット面生成処理を行うに際し、この実施例では、まず、データ処理部１が、利用者に、フィレット面を埋め込む３次元形状B(0)に対し、フィレット面生成位置としてフィレット面を生成する角部を形成する２曲面の共通の稜線E(1..n)を指定させ、さらに、それぞれの丸め半径R(1..n)を指定させる（Ｓ11）。そして、指定された情報をメモリに保持し、現在のフィレット面番号 i
を 1 に初期化する（Ｓ12）。
続いて、３次元形状 B(0) を複製することにより、３次元形状B(0)と同一の形状を持つ３次元形状B(i)を生成する（Ｓ13）。そして、３次元形状B(i)において、３次元形状B(0)上で指定された稜線E(i)と同じ位置にある稜線に対して、丸め半径R(i)のフィレット面を埋め込んだ形状を生成する（参考文献［１］参照）（Ｓ14）。
次に、現在のフィレット面番号 を i + 1 とし（Ｓ15）、iがnよりも大きいか否かを調べる（Ｓ16）。ステップＳ11において指定された稜線E(1..n)すべてについて、対応する複製３次元形状B(1..n)においてフィレット面埋め込みが行われたかどうかを調べるのである。そして、iがnより大きくなければ（Ｓ16でNO）、ステップＳ13から次の稜線についてフィレット面埋め込みを実行する。また、iがnより大きければ（Ｓ16でYES）ステップＳ17へ進む。
【０００８】
以下、ステップＳ17〜Ｓ20の動作について図６を参照しながら説明する。
ステップＳ17では、現在のフィレット面番号 i を再び 1 に初期化し、続いて、生成したフィレット面埋め込み済みの３次元形状B(i)と３次元形状B(0)を集合演算により一体化させ（参考文献［２］参照）、生成された３次元形状をあらためて３次元形状 B(0) とする（Ｓ18）。
次に、現在のフィレット面番号をi + 1 とし（Ｓ19）、iがnよりも大きいか否かを調べる（Ｓ20）。つまり、生成されたフィレット面埋め込み３次元形状B(1..n)がすべて一体化されたかどうかを調べるのである。そして、iがnより大きくなければ（Ｓ20でNO）、ステップＳ18から次のフィレット面埋め込み３次元形状について一体化処理を繰り返し、iがnより大きければ（Ｓ20でYES）処理を終了する。
以上、対象としている３次元形状の複製を生成し、集合演算を行なって複数のフィレット面の干渉形状を生成する方法を説明したが、生成された複数のフィレット面が干渉し合うか否かを調べてから、干渉し合うときのみ、図３に示したような動作フローを実行するようにしてもよい。
また、生成された複数のフィレット面どうしが干渉する場合、前記のような方法でなく、当業者には公知の方法でフィレット面とフィレット面とが交差する交線を求め、その交線をフィレット面のひとつの境界稜線とする複数のフィレット面の干渉形状を生成するようにしてもよい。
また、本発明のフィレット面生成では、複数のフィレット面同士が干渉する場合、干渉形状を生成する前の、複製した３次元形状に個々のフィレット面を埋め込んだ個々の３次元形状の形状データを記憶しておく。これにより、その後、ぼかし面のある干渉形状を容易に生成することができるし、前記のようなぼかし面のない干渉形状についても、干渉形状を記憶しておかないで、必要なときに前記のようにして干渉形状を生成するような方法が可能になる。
また、以上の説明は図１に示したようなハードウェア構成を有した３次元形状処理装置の場合で行なったが、以上説明したような３次元形状処理方法に従ってプログラミングしたプログラムを例えば着脱可能な記録媒体に記憶させ、その記録媒体をこれまで本発明によった３次元形状処理を行えなかったパーソナルコンピュータなど情報処理装置に装着することにより、その情報処理装置においても本発明によった３次元形状処理を行うことができる。
【０００９】
【発明の効果】
以上説明したように、本発明によれば、請求項１記載の発明では、フィレット面を埋め込む稜線の本数だけ元の３次元形状モデルが複製され、複製された３次元形状モデルのそれぞれに対してそれぞれの稜線に対応したフィレット面埋め込み形状が生成され、生成されたフィレット面埋め込み形状の埋め込まれたそれぞれの３次元形状間に集合演算操作が実施され、それにより、複数のフィレット面の干渉形状が生成されるので、ぼかし面のないフィレット面の干渉形状を自動的に生成することができ、したがって、このような干渉形状がほしい場合、設計の効率化を図ることができる。
また、請求項２記載の発明では、請求項１記載の発明において、生成されたフィレット面埋め込み形状の埋め込まれたそれぞれの３次元形状の形状データが記憶しておかれるので、記憶されたその形状データを用いて、ぼかし面のある干渉形状も容易に生成することができる。
また、請求項３記載の発明では、データ処理部を備え、３次元形状モデル上の角部を形成する隣接する２面の共有する稜線に沿って前記２面を滑らかに接続するフィレット面を生成する３次元形状処理装置における３次元形状処理方法において、前記データ処理部は、フィレット面を埋め込む稜線の本数だけ元の３次元形状を複製するステップと、複製した３次元形状のそれぞれに対してそれぞれの稜線に対応したフィレット面埋め込み形状を生成するステップと、フィレット面埋め込み形状が埋め込まれたそれぞれの３次元形状間に集合演算操作を実施して複数のフィレット面の干渉形状を生成するステップと、を実行することで、ぼかし面のないフィレット面の干渉形状を自動的に生成することができ、したがって、このような干渉形状がほしい場合、設計の効率化を図ることができる。
また、請求項４記載の発明では、請求項３に記載された３次元形状処理方法をコンピュータに実行させるためのプログラムを記録したことを特徴とするコンピュータ読み取り可能な記録媒体に記憶されるので、その記録媒体をこれまで３次元形状処理を行えなかったパーソナルコンピュータなど情報処理装置に装着することにより、その情報処理装置においても請求項３記載の発明の効果を得ることができる。
【図面の簡単な説明】
【図１】本発明の一実施例を示す３次元形状処理装置の構成ブロック図である。
【図２】本発明の一実施例を示す３次元形状処理方法の動作フロー図である。
【図３】本発明の一実施例を示す３次元形状処理方法の他の動作フロー図である。
【図４】本発明の一実施例を示す３次元形状処理方法の説明図である。
【図５】本発明の一実施例を示す３次元形状処理方法の他の説明図である。
【図６】本発明の一実施例を示す３次元形状処理方法の他の説明図である。
【図７】従来技術の一例を示す３次元形状処理方法の説明図である。
【符号の説明】
１  データ処理部
２  キーボード
３  表示装置
４  プリンタ
５  マウス
６  補助記憶装置
【図１】
0003896245.tif 000002
【図２】
0003896245.tif 000003
【図３】
0003896245.tif 000004
【図４】
0003896245.tif 000005
【図５】
0003896245.tif 000006
【図６】
0003896245.tif 000007
【図７】
0003896245.tif 000008