(57)【要約】【課題】制御曲線上のサンプル点を用いたフィレット面生成で、フィレット面の端の位置が正しく求まるフィレット面生成方法を提供する。【解決手段】制御曲線上に適切な間隔でサンプル点を取り（Ｓ２）、断面が存在するサンプル点で（Ｓ３でＹｅｓ）断面曲線を求め（Ｓ４）、始点側の断面の開始位置のサンプル点とその一つ前のサンプル点を得（Ｓ８）、２サンプル点のパラメータ値の差が面の境界の精度として十分小さな値εより大きければ（Ｓ９でＹｅｓ）、２パラメータ値の中間のパラメータ値を求め、そのパラメータ値のサンプル点を得（Ｓ１０）、その中間位置のサンプル点に対応する断面が存在すれば（Ｓ１１でＹｅｓ）、中間位置のサンプル点と一つ始点側のサンプル点とを２サンプル点とし（Ｓ１２）、Ｓ９へ戻り、断面が存在しなければ（Ｓ１１でＮｏ）、中間位置のサンプル点と一つ終点側のサンプル点を２サンプル点とし（Ｓ１３）、Ｓ９へ戻る。Ｓ１４では、終点側について始点側と同様に処理し、最後に、断面曲線の列を通る曲面を求める（Ｓ１５）。【選択図】      図２
2004199176.tif 000002
【特許請求の範囲】
【請求項１】
指定した制御曲線上に複数のサンプル点を与え、その各サンプル点におけるフィレット面の断面曲線を求め、求められた複数の断面曲線を滑らかに結んでフィレット面を生成するフィレット面生成手段を備えた３次元形状処理装置において、前記フィレット面の境界部近傍における前記サンプル点を２分法により増やすように前記フィレット面生成手段を構成したことを特徴とする３次元形状処理装置。
【請求項２】
指定した制御曲線上に複数のサンプル点を与え、その各サンプル点におけるフィレット面の断面曲線を求め、求められた複数の断面曲線を滑らかに結んでフィレット面を生成するフィレット面生成方法において、前記フィレット面の境界部近傍における前記サンプル点を２分法により増やすことを特徴とするフィレット面生成方法。
【請求項３】
請求項２記載のフィレット面生成方法において、前記境界部を挟む二つのサンプル点間の間隔が所定の値以下になるまで前記境界部を挟む二つのサンプル点の中間位置にサンプル点を増やすことを特徴とするフィレット面生成方法。
【請求項４】
請求項３記載のフィレット面生成方法において、前記増やしたサンプル点が前記境界部の外側にある場合には次のサンプル点は前記境界部の内側方向の中間位置とし、前記増やしたサンプル点が前記境界部の内側にある場合には次のサンプル点は前記境界部の外側方向の中間位置とすることを特徴とするフィレット面生成方法。
【請求項５】
請求項２、請求項３、または請求項４記載のフィレット面生成方法において、フィレット面を生成する曲面間に制御曲線を指定してその曲面間のフィレット面を生成することを特徴とするフィレット面生成方法。
【請求項６】
請求項２、請求項３、または請求項４記載のフィレット面生成方法において、フィレット面を生成する曲面と曲線の間に制御曲線を指定してその曲面と曲線の間のフィレット面を生成することを特徴とするフィレット面生成方法。
【請求項７】
請求項２、請求項３、または請求項４記載のフィレット面生成方法において、フィレット面を生成する曲線間に制御曲線を指定してその曲線間のフィレット面を生成することを特徴とするフィレット面生成方法。
【請求項８】
請求項２、請求項３、または請求項４記載のフィレット面生成方法において、曲面と曲線の間のフィレット面をその曲線を制御曲線として生成することを特徴とするフィレット面生成方法。
【請求項９】
請求項２、請求項３、または請求項４記載のフィレット面生成方法において、曲線間のフィレット面をその一方の曲線を制御曲線として生成することを特徴とするフィレット面生成方法。
【請求項１０】
情報処理装置上で実行されるプログラムにおいて、請求項２乃至請求項９のいずれか１項に記載のフィレット面生成方法によったフィレット面生成を実行させるようにプログラミングされていることを特徴とするプログラム。
【請求項１１】
プログラムを記憶した記憶媒体において、請求項１０記載のプログラムを記憶したことを特徴とする記憶媒体。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、専用の３次元形状処理装置やパーソナルコンピュータなど情報処理装置などで実施される生成されている３次元形状モデル上にフィレット面を生成するフィレット面生成方法に係わり、特に、制御曲線を用いてフィレット面を生成するフィレット面生成方法に関する。
【０００２】
【従来の技術】
グラフィクス表示装置とコンピュータとを用いたＣＡＤ／ＣＡＭ装置など３次元形状処理装置では、従来より、３次元形状モデルを生成したり、生成されている３次元形状モデルを変形させたり、生成または変形された３次元形状モデルを検証したりしている。なお、本発明に係わる３次元形状（３次元立体）モデルとは、例えば境界表現形式のソリッドモデルデータとして生成された形状を指し、その境界表現形式のソリッドモデルとは、稜線や頂点や面というような要素により３次元空間上に閉じた領域を定義し、中身の詰まった立体を表現したものである。
本発明は、このような３次元形状処理装置において従来より行われている、３次元形状モデルを構成する任意の稜線を挟んで隣接する２面間などに丸めた角部（フィレット面）を生成するフィレット面生成（丸め変形処理）に関するものであるが、このような処理に関する従来技術では、フィレット面生成の際、まず、利用者にフィレット面の半径を指定させ、３次元形状モデルの角を形成する対を成す２面の共通の稜線を指定させ、例えばその稜線に直交する複数の断面内で２面のそれぞれの断面線に接する指定した半径の接円弧を求め、求められた複数の接円弧が２面に接する二つの接点のそれぞれを順につなぐことによりフィレット面を生成する。あるいは、前記稜線の始点から終点に向かって、対になる２面に共に接する状態を保ちつつ、指定された丸め半径を持つフィレット球を転がしたと仮定したときに、２面とフィレット球との接点の描く軌跡をフィレット面の境界曲線としてフィレット面を生成する。
また、前者の方法では、稜線に直交する断面ではなく、前記における稜線の代わりをする曲線として制御曲線を与え、接円弧の載る平面（断面）を制御曲線の法平面（その点における制御曲線の接線を法線とする平面）として与える方法も提供されている（特許第３０４９０９６号公報参照）。なお、この場合、フィレット面を生成する際の二つの面はつながっていなくてもよい。以下、図１５に従って、制御曲線を用いた従来のフィレット面生成方法の動作フローを説明する。
【０００３】
従来のフィレット面生成では、サンプル点をとる制御曲線がパラメトリック曲線でない場合、まず、パラメトリック曲線に変換する（Ｓ２１）。
次に、制御曲線上に曲線の自由度に応じた適切なパラメータ間隔のサンプル点を取る（図１４参照）（Ｓ２２）。そして、サンプル点の位置に対応する断面が存在するかどうかを調べ（Ｓ２３）、断面が存在する場合は（Ｓ２３でＹｅｓ）断面の曲線を求める（Ｓ２４）。
断面の曲線がすべて求まると（Ｓ２５でＹｅｓ）、求まった断面の曲線をサンプル点のパラメータ値の順にならべて、断面曲線の列にする（図１１参照）（Ｓ２６）。そして、断面曲線の列を通る曲面を求める（図１２参照）（Ｓ２７）。
【特許文献１】特許第３０４９０９６号公報
【０００４】
【発明が解決しようとする課題】
しかしながら、図１５に動作フローを示した従来技術では、求めるフィレット面の断面になる曲線は本来存在するフィレット面の端の位置までは求まらず、サンプル点の位置が求まるフィレット面の端となる。そのため、本来の端の位置と求まるフィレット面の端の位置とでは最大でサンプル点の間隔の違いがあった（図１３参照）。
本発明の目的は、このような従来技術の問題を解決することにあり、具体的には、制御曲線上のサンプル点を用いたフィレット面の生成方法において、フィレット面の端の位置が正しく求まるフィレット面生成方法を提供することにある。
【０００５】
【課題を解決するための手段】
前記の課題を解決するために、請求項１記載の発明では、指定した制御曲線上に複数のサンプル点を与え、その各サンプル点におけるフィレット面の断面曲線を求め、求められた複数の断面曲線を滑らかに結んでフィレット面を生成するフィレット面生成手段を備えた３次元形状処理装置において、フィレット面の境界部近傍における前記サンプル点を２分法により増やすようにフィレット面生成手段を構成した。
また、請求項２記載の発明では、指定した制御曲線上に複数のサンプル点を与え、その各サンプル点におけるフィレット面の断面曲線を求め、求められた複数の断面曲線を滑らかに結んでフィレット面を生成するフィレット面生成方法において、フィレット面の境界部近傍における前記サンプル点を２分法により増やす構成にした。
また、請求項３記載の発明では、請求項２記載の発明において、前記境界部を挟む二つのサンプル点間の間隔が所定の値以下になるまで前記境界部を挟む二つのサンプル点の中間位置にサンプル点を増やす構成にした。
また、請求項４記載の発明では、請求項３記載の発明において、増やしたサンプル点が前記境界部の外側にある場合には次のサンプル点は前記境界部の内側方向の中間位置とし、増やしたサンプル点が前記境界部の内側にある場合には次のサンプル点は前記境界部の外側方向の中間位置とする構成にした。
また、請求項５記載の発明では、請求項２、請求項３、または請求項４記載の発明において、フィレット面を生成する曲面間に制御曲線を指定してその曲面間のフィレット面を生成する構成にした。
【０００６】
また、請求項６記載の発明では、請求項２、請求項３、または請求項４記載の発明において、フィレット面を生成する曲面と曲線の間に制御曲線を指定してその曲面と曲線の間のフィレット面を生成する構成にした。
また、請求項７記載の発明では、請求項２、請求項３、または請求項４記載の発明において、フィレット面を生成する曲線間に制御曲線を指定してその曲線間のフィレット面を生成する構成にした。
また、請求項８記載の発明では、請求項２、請求項３、または請求項４記載の発明において、曲面と曲線の間のフィレット面をその曲線を制御曲線として生成する構成にした。
また、請求項９記載の発明では、請求項２、請求項３、または請求項４記載の発明において、曲線間のフィレット面をその一方の曲線を制御曲線として生成する構成にした。
また、請求項１０記載の発明では、情報処理装置上で実行されるプログラムにおいて、請求項２乃至請求項９のいずれか１項に記載のフィレット面生成方法によったフィレット面生成を実行させるようにプログラミングされている構成にした。
また、請求項１１記載の発明では、プログラムを記憶した記憶媒体において、請求項１０記載のプログラムを記憶した。
【０００７】
【発明の実施の形態】
以下、図面により本発明の実施の形態を詳細に説明する。
図１は本発明の一実施例を示す３次元形状処理装置の構成ブロック図である。図示したように、この実施例の３次元形状処理装置は、プログラムや各種データを一時的に記憶するメモリ（例えばＲＡＭ）およびそのプログラムに従って動作するＣＰＵを有して演算や処理をおこなうデータ処理部１、プログラムやデータや指示などを人のキー操作に基づき入力するキーボード２、３次元形状モデルや文字などを表示する表示装置（例えばＣＲＴ）３、３次元形状モデルや文字などを紙上に印刷するプリンタ４、表示装置３の画面上に表示された目印（カーソル）を人の操作に基づき移動させると共にその移動に基づくデータを入力するマウス５、フロッピー（登録商標）ディスクやハードディスクなど記憶媒体を収容する補助記憶装置６、それらを相互に接続するシステムバス７などを備えている。なお、請求項１記載のフィレット面生成手段は、この実施例ではデータ処理部１により実現される。
このような構成で、この実施例の３次元形状処理装置では、利用者がキーボード２やマウス５を操作してデータや指示情報を入力し、データ処理部１が、その内容に基づき、所定のプログラムに従って演算や処理をおこなうことにより３次元形状モデルを生成したり変形したり、その３次元形状モデルなどを表示装置３に表示したりする。また、この３次元形状処理装置は、面と面との接続関係を表す位相データを持つソリッドモデルなどを取り扱うことができ、例えば３次元形状モデルの角部を形成する対になる２面を指定して、その２面間に指定された丸め半径で前記２面を滑らかに接続するフィレット面を生成する。また、その際、この実施例では、図１５に示した従来技術による動作フローのステップＳ２６の後に２分法を用いた処理を付加して適切な境界を得る。
【０００８】
図２に、この実施例の動作フローを示す。以下、図２に従ってこの実施例の動作を説明する。
この実施例では、サンプル点をとる制御曲線がパラメトリック曲線でない場合、まず、パラメトリック曲線に変換する（Ｓ１）。
次に、制御曲線上に曲線の自由度に応じた適切なパラメータ間隔のサンプル点を取る（図１４参照）（Ｓ２）。そして、当該サンプル点の位置に対応する断面が存在するかどうかを調べ（Ｓ３）、断面が存在する場合は（Ｓ３でＹｅｓ）断面の曲線を求める（Ｓ４）。これを各サンプル点について繰り返すのである（Ｓ５でＮｏ→Ｓ３→Ｓ４）。
こうして、断面の曲線がすべて求まると（Ｓ５でＹｅｓ）、求まった断面の曲線をサンプル点のパラメータ値の順にならべて、断面曲線の列にする（図１１参照）（Ｓ６）。そして、求まった断面列について、制御曲線の始点にあたるサンプル点で断面曲線が求まっているかどうか調べ（Ｓ７）、求まっていれば（Ｓ７でＹｅｓ）ステップＳ１４へ進む。
それに対して、断面曲線が求まっていなければ（Ｓ７でＮｏ）、始点側の断面の開始位置のサンプル点とその一つ前のサンプル点を得る（図３参照）（Ｓ８）。そして、二つのサンプル点のパラメータ値の差を、面の境界の精度として十分小さな値εと比較し（Ｓ９）、その差がεより大きくなければ（図４参照）（Ｓ９でＮｏ）、最も始点側のサンプル点の断面を断面列の最初の断面とし、ステップＳ１４へ進む。
一方、εより大きければ（Ｓ９でＹｅｓ）、二つのパラメータ値の中間のパラメータ値を求め、そのパラメータ値のサンプル点を得る（図５参照）（Ｓ１０）。そして、その中間位置のサンプル点に対応する断面が存在するか否かを調べ（Ｓ１１）、断面が存在すれば（Ｓ１１でＹｅｓ）、中間位置のサンプル点と一つ始点側のサンプル点とを二つのサンプル点とし（Ｓ１２）、ステップＳ９の処理へ戻る。また、断面が存在しなければ（Ｓ１１でＮｏ）、中間位置のサンプル点と一つ終点側のサンプル点を二つのサンプル点とし（Ｓ１３）、ステップＳ９の処理へ戻る。
ステップＳ１４では、終点側の断面の終了位置についてステップＳ７からステップＳ１３の処理を、「始点」を「終点」に、「一つ前のサンプル点」は「一つあとのサンプル点」に入れ替えて逆の処理をおこなう。
そして、最後に、断面曲線の列を通る曲面を求める（図１２参照）（Ｓ１５）。
【０００９】
なお、前記したこの実施例のフィレット面生成方法は、制御曲線を与えるため、前記したように、つながっていない面間にフィレット面を生成する場合に適用することができるし、同じ理由により、次のような種類のフィレット面生成に共通して適用することができる。
（１）曲面間に独立した制御曲線を指定した曲面間のフィレット面生成（図６参照）
（２）曲面と曲線の間に独立した制御曲線を指定した曲面と曲線の間のフィレット面生成（図７参照）
（３）曲線と曲線の間に独立した制御曲線を指定した曲線と曲線の間のフィレット面生成（図８参照）
（４）曲面と曲線の間のフィレット面生成で、その曲線を制御曲線とする場合（図９参照）
（５）曲線と曲線の間のフィレット面生成で、その曲線の一方を制御曲線とする場合（図１０参照）
以上、本発明の一実施例を説明したが、説明したようなフィレット面生成方法に従ってプログラミングしたプログラムを着脱可能な記憶媒体に記憶し、その記憶媒体をこれまで本発明によったフィレット面生成をおこなえなかったパーソナルコンピュータなど情報処理装置に装着することにより、または、そのようなプログラムをネットワークを介してそのような情報処理装置へ転送することにより、そのような情報処理装置においても本発明によったフィレット面生成をおこなうことができる。
【００１０】
【発明の効果】
以上説明したように、本発明によれば、請求項１および請求項２記載の発明では、指定した制御曲線上に複数のサンプル点を与え、その各サンプル点におけるフィレット面の断面曲線を求め、求められた複数の断面曲線を滑らかに結んでフィレット面を生成する際、フィレット面の境界部近傍におけるサンプル点が２分法により増やされるので、本来の端の位置と求められたフィレット面の端の位置とで、最大では長いままのサンプル点間隔分のずれがあった従来技術の問題が解決され、フィレット面の端の位置が従来よりも少ないずれ量で求まる。
また、請求項３記載の発明では、請求項２記載の発明において、境界部を挟む二つのサンプル点間の間隔が所定の値以下になるまで境界部を挟む二つのサンプル点の中間位置にサンプル点が増やされるので、フィレット面の本来の端の位置と求められるフィレット面の端の位置とのずれ量を所望の値以下に収めることができる。
また、請求項４記載の発明では、請求項３記載の発明において、増やしたサンプル点が境界部の外側にある場合には次のサンプル点は境界部の内側方向の中間位置とされ、増やしたサンプル点が境界部の内側にある場合には次のサンプル点は境界部の外側方向の中間位置とされるので、増やしたサンプル点は境界部を挟む二つのサンプル点の一方になる。
また、請求項５記載の発明では、請求項２、請求項３、または請求項４記載の発明において、フィレット面を生成する曲面間に制御曲線を指定し、その制御曲線を用いてその曲面間のフィレット面を生成することができるので、二つの曲面が離れていてその曲面間に境界曲線がないような場合であってもその曲面間にフィレット面を生成することができるし、その際、請求項２、請求項３、または請求項４記載の発明の効果を得ることができる。
【００１１】
また、請求項６記載の発明では、請求項２、請求項３、または請求項４記載の発明において、フィレット面を生成する曲面と曲線の間に制御曲線を指定し、その曲面と曲線の間のフィレット面を生成することができるので、そのような場合のフィレット面生成においても請求項２、請求項３、または請求項４記載の発明の効果を得ることができる。
また、請求項７記載の発明では、請求項２、請求項３、または請求項４記載の発明において、フィレット面を生成する曲線間に制御曲線を指定してその曲線間のフィレット面を生成することができるので、そのような場合のフィレット面生成においても請求項２、請求項３、または請求項４記載の発明の効果を得ることができる。
また、請求項８記載の発明では、請求項２、請求項３、または請求項４記載の発明において、曲面と曲線の間のフィレット面をその曲線を制御曲線として生成することができるので、そのような場合のフィレット面生成においても請求項２、請求項３、または請求項４記載の発明の効果を得ることができる。
また、請求項９記載の発明では、請求項２、請求項３、または請求項４記載の発明において、曲線間のフィレット面をその一方の曲線を制御曲線として生成することができるので、そのような場合のフィレット面生成においても請求項２、請求項３、または請求項４記載の発明の効果を得ることができる。
また、請求項１０記載の発明では、請求項２乃至請求項９のいずれか１項に記載のフィレット面生成方法によったフィレット面生成を実行させるようにプログラミングされているプログラムを情報処理装置上で実行することができるので、情報処理装置を用いて請求項２乃至請求項９のいずれか１項に記載の発明の効果を得ることができる。
また、請求項１１記載の発明では、請求項１０記載のプログラムを着脱可能な記憶媒体に記憶することができるので、その記憶媒体をこれまで請求項２乃至請求項９のいずれか１項に記載の発明によったフィレット面生成をおこなえなかったパーソナルコンピュータなど情報処理装置に装着することにより、そのような情報処理装置においても請求項２乃至請求項９のいずれか１項に記載の発明の効果を得ることができる。
【図面の簡単な説明】
【図１】本発明の一実施例を示す３次元形状処理装置の構成ブロック図である。
【図２】本発明の一実施例を示すフィレット面生成方法の動作フロー図である。
【図３】本発明の一実施例を示すフィレット面生成方法の説明図である。
【図４】本発明の一実施例を示すフィレット面生成方法の他の説明図である。
【図５】本発明の一実施例を示すフィレット面生成方法の他の説明図である。
【図６】本発明の一実施例を示すフィレット面生成方法の他の説明図である。
【図７】本発明の他の実施例を示すフィレット面生成方法の説明図である。
【図８】本発明の他の実施例を示すフィレット面生成方法の説明図である。
【図９】本発明の他の実施例を示すフィレット面生成方法の説明図である。
【図１０】本発明の他の実施例を示すフィレット面生成方法の説明図である。
【図１１】従来技術の一例を示すフィレット面生成方法の説明図である。
【図１２】従来技術の一例を示すフィレット面生成方法の他の説明図である。
【図１３】従来技術の一例を示すフィレット面生成方法の他の説明図である。
【図１４】従来技術の一例を示すフィレット面生成方法の他の説明図である。
【図１５】従来技術の一例を示すフィレット面生成方法の動作フロー図である。
【符号の説明】
１  データ処理部
２  キーボード
３  表示装置
４  プリンタ
５  マウス
６  補助記憶装置
【図１】
2004199176.tif 000003
【図２】
2004199176.tif 000004
【図３】
2004199176.tif 000005
【図４】
2004199176.tif 000006
【図５】
2004199176.tif 000007
【図６】
2004199176.tif 000008
【図７】
2004199176.tif 000009
【図８】
2004199176.tif 000010
【図９】
2004199176.tif 000011
【図１０】
2004199176.tif 000012
【図１１】
2004199176.tif 000013
【図１２】
2004199176.tif 000014
【図１３】
2004199176.tif 000015
【図１４】
2004199176.tif 000016
【図１５】
2004199176.tif 000017