(57)【要約】【課題】フィレット面を含むビットマップデータや点群データを容易に利便性の高いＢ−ｒｅｐｓデータに変換する。【解決手段】ビットマップデータや点群データをＢ−ｒｅｐｓデータに変換するデータ変換方法において、フィレット面を作成するために該フィレット面に接続する２つの曲面を指定し、その後、Ｂ−ｒｅｐｓデータへの変換する。フィレット面に接続する２つのグループを指定し、そのグループ間の第１交線上でフィレット面の開始点と終了点を指定し、開始点と終了点の間で第１交線に垂直な垂直平面を複数定義し、垂直平面夫々表面形状との断面形状を求め、垂直平面夫々２つのグループとの第２交線を求め、断面形状夫々フィレット面に属する点群を検索し、第１交線上に沿ったフィレット面の半径分布を求め、２つのグループと半径分布からフィレット面を生成する。【選択図】図１
2008059235.tif 000002
【特許請求の範囲】
【請求項１】
ビットマップデータや点群データをＢ−ｒｅｐｓデータに変換するデータ変換方法において、
フィレット面を作成するために該フィレット面に接続する２つの曲面を指定し、
その後、Ｂ−ｒｅｐｓデータへの変換する立体形状データ変換方法。
【請求項２】
フィレット面を有する表面形状モデルのビットマップデータや点群データから幾何学的な特徴面を抽出することによりビットマップデータや点群データをＢ−ｒｅｐｓデータ化することで、前記ビットマップデータや点群データのＢ−ｒｅｐｓデータへの変換を行う立体形状データ変換方法において、
前記フィレット面に接続する２つのグループを指定し、
前記２つのグループ間の第１交線を求め、
前記第１交線上で、前記フィレット面の開始点と終了点を指定し、
前記開始点と前記終了点の間で、前記交線に垂直な垂直平面を複数定義し、
前記垂直平面それぞれについて、前記表面形状との断面形状を求め、
前記垂直平面それぞれについて、前記２つのグループとの第２交線を求め、
前記断面形状それぞれについて、前記フィレット面に属する点群を検索し、
前記第１交線上に沿った、前記フィレット面の半径分布を求め、
前記２つのグループと前記半径分布から、前記フィレット面を生成することを特徴とする立体形状データ変換方法。
【請求項３】
前記断面形状それぞれについて、前記２つのグループに属する領域を求め、
前記断面形状について、前記領域に挟まれる領域に含まれる点群を検索することで、前記フィレット面に属する点群を検索するようにされている請求項２に記載の立体形状データ変換方法。
【請求項４】
前記第２交線上で、前記２つのグループの境界点を求め、
前記境界点を通る前記第２交線に垂直な直線を求め、
前記断面形状について、前記直線と前記第２交線によって囲まれる領域に含まれる点群を検索することで、前記フィレット面に属する点群を検索するようにされている請求項２に記載の立体形状データ変換方法。
【請求項５】
前記断面形状それぞれについて、前記第１交線上に沿った位置を求め、
前記断面形状それぞれについて、前記フィレット面に属する点群に最もあてはまる、前記第２交線に接する円を求め、
前記断面形状における前記位置と前記円の半径の値を補間することで、前記第１交線上に沿った前記フィレット面の半径分布を求めるようにされている請求項２に記載の立体形状データ変換方法。
【請求項６】
前記断面形状それぞれについて、円の半径の値に拘束をかけて、前記フィレット面に属する点群に最もあてはまる、前記第２交線に接する円を求めるようにされている請求項５に記載の立体形状データ変換方法。
【請求項７】
ビットマップデータや点群データをＢ−ｒｅｐｓデータに変換する
手順が記述されたプログラムにおいて、
フィレット面に接続する２つの曲面の指定を可能とする機能を有し、
該機能によりフィレット面を作成する第一の手順と、
該第一の手順後に、Ｂ−ｒｅｐｓデータへの変換を行う手順を
実行するためのコンピュータプログラム
【請求項８】
請求項２から請求項６のいずれか１項に記載の立体形状データ変換方法を実行するための手順を記述したコンピュータプログラム。
【請求項９】
ビットマップデータや点群データをＢ−ｒｅｐｓデータに変換するデータ変換装置において、
フィレット面を作成するために該フィレット面に接続する２つの曲面を指定する手段と、
前記ビットマップデータや点群データをＢ−ｒｅｐｓデータへ変換する手段とを備えた立体形状データ変換装置。
【請求項１０】
フィレット面を有する表面形状モデルのビットマップデータや点群データから幾何学的な特徴面を抽出することによりビットマップデータや点群データをＢ−ｒｅｐｓデータ化することで、前記ビットマップデータや点群データのＢ−ｒｅｐｓデータへの変換を行うようにされた立体形状データ変換装置において、
前記フィレット面に接続する２つのグループを指定する手段と、
前記２つのグループ間の第１交線を求める手段と、
前記第１交線上で、前記フィレット面の開始点と終了点を指定する手段と、
前記開始点と前記終了点の間で、前記交線に垂直な垂直平面を複数定義する手段と、
前記垂直平面それぞれについて、表面形状との断面形状を求める手段と、
前記垂直平面それぞれについて、前記２つのグループとの第２交線を求める手段と、
前記断面形状それぞれについて、前記フィレット面に属する点群を検索する手段と、
前記第１交線上に沿った、前記フィレット面の半径分布を求める手段と、
前記２つのグループと前記半径分布から、前記フィレット面を生成する手段を備えていることを特徴とする立体形状データ変換装置。
【請求項１１】
前記断面形状について、前記２つのグループに属する領域を求める手段と、
前記断面形状について、前記領域に挟まれる領域に含まれる点群を検索することで、前記フィレット面に属する点群を検索する手段を備えている請求項１０に記載の立体形状データ変換方法。
【請求項１２】
前記第２交線上で、前記２つのグループの境界点を求める手段と、
前記境界点を通る前記第２交線に垂直な直線を求める手段と、
前記断面形状について、前記直線と前記第２交線によって囲まれる領域に含まれる点群を検索することで、前記フィレット面に属する点群を検索する手段を備えている請求項１０に記載の立体形状データ変換装置。
【請求項１３】
前記断面形状それぞれについて、前記第１交線上に沿った位置を求める手段と、
前記断面形状それぞれについて、前記フィレット面に属する点群に最もあてはまる前記第２交線に接する円を求める手段と、
前記断面形状における前記位置と前記円の半径の値を補間することで、前記第１交線上に沿った、前記フィレット面の半径分布を求める手段を備えている請求項１０に記載の立体形状データ変換装置。
【請求項１４】
前記断面形状それぞれについて、円の半径の値に拘束をかけて、前記フィレット面に属する点群に最もあてはまる、前記第２交線に接する円を求める手段を備えている請求項１０に記載の立体形状データ変換装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、対象物の表面形状を表す表面形状モデルの作成技術に関し、特に表面形状モデルを記述しているポリゴンデータを操作性や利用性の高いＢ−ｒｅｐｓデータに変換する立体形状データ変換技術に関する。
【背景技術】
【０００２】
ビットマップデータや点群データをＢ−ｒｅｐｓデータに変換する方法としては、ビットマップデータや点群データが表している立体形状の表面から幾何学的な特徴面（平面や円筒面などといった幾何学的に定義された面）を抽出した後、残りの表面上に自由曲面を作成する方法がある（特許文献１）。ビットマップデータからポリゴンデータを作成する手法としては、特許文献２に、点群データからポリゴンデータを作成する手法としては非特許文献１に記載され、フィレット面生成方法としては、特許文献１、特許文献３、特許文献４等がある。
【０００３】
【特許文献１】特開２００２−２３００５６号公報
【特許文献２】特開昭６２−３７７８２号公報
【特許文献３】特開２００３−２６３４６４号公報
【特許文献４】特開２００３−２７１６８１号公報
【非特許文献１】「Modeling scattered function data on curved surfaces」(C.  Bajaj／G.Xu）
【発明の開示】
【発明が解決しようとする課題】
【０００４】
しかし、機械部品のようにフィレット面が多く含まれているビットマップデータや点群データをＢ−ｒｅｐｓデータに変換する場合に課題を残している。変換後のＢ−ｒｅｐｓデータの利便性、サイズ、フィレット面の形状を変更、高精度なフィレット面生成、変換時間等の問題もある。フィレット面を含むビットマップデータや点群データのＢ−ｒｅｐｓデータへの変換について、フィレット面が定義されている領域に対して、簡単な操作で、高精度にフィレット面を作成し、利便性の高いＢ−ｒｅｐｓデータに変換することができるようにすることが望まれる。
【０００５】
本発明の目的は、フィレット面を含むビットマップデータや点群データを容易に利便性の高いＢ−ｒｅｐｓデータに変換することにある。
【課題を解決するための手段】
【０００６】
ビットマップデータや点群データをＢ−ｒｅｐｓデータに変換するデータ変換方法において、フィレット面を作成するために該フィレット面に接続する２つの曲面を指定し、その後、Ｂ−ｒｅｐｓデータへの変換する。
【発明の効果】
【０００７】
本発明によると、フィレット面を含むビットマップデータや点群データを容易に利便性の高いＢ−ｒｅｐｓデータに変換することができる。
【発明を実施するための最良の形態】
【０００８】
以下、本発明を実施するための形態について説明する。本実施の形態では、ビットマップデータや点群データをＢ−ｒｅｐｓデータに変換するデータ変換方法において、フィレット面を作成するために該フィレット面に接続する２つの曲面を指定し、その後、Ｂ−ｒｅｐｓデータへの変換する。そして、フィレット面を含むビットマップデータや点群データを容易に利便性の高いＢ−ｒｅｐｓデータに変換する。
【０００９】
まず、ビットマップデータや点群データをＢ−ｒｅｐｓデータに変換する技術につき説明する。対象物の立体形状を計測してその表面形状を記述するデータ（表面形状モデル）を生成するには、Ｘ線ＣＴ装置、表面計測プローブ、レーザ計測機、ＣＣＤカメラなどの３次元計測装置（３次元ディジタイザ）が用いられる。これらの３次元計測装置のなかで、Ｘ線ＣＴ装置は局所的なセルの集合であるビットマップデータを出力し、それ以外の装置は局所的な点の集合である点群データを出力する。これらビットマップデータや点群データは、表面形状についての局所的な情報を持つだけで大域的な情報（位相幾何学的な情報）を持っていない。一方、表面形状を記述するデータ形式として、一般の３次元ＣＡＤにおけるデータ形式がある。このＣＡＤにおけるデータ形式は、「Ｂ−ｒｅｐｓ」（Ｂｏｕｎｄａｒｙ−ｒｅｐｒｅｓｅｎｔａｔｉｏｎｓ：境界表現）と呼ばれ、大域的な情報を持っており、操作性や利用性においてビットマップデータや点群データよりも優れている。こうしたことから、３次元計測装置による計測で得られたビットマップデータや点群データをＢ−ｒｅｐｓデータに変換して操作性や利用性を高める。
【００１０】
ビットマップデータや点群データをＢ−ｒｅｐｓデータに変換する方法としては、ビットマップデータや点群データが表している立体形状の表面から幾何学的な特徴面（平面や円筒面などといった幾何学的に定義された面）を抽出した後、残りの表面上に自由曲面を作成する方法がある。この方法で例えばビットマップデータの表面形状モデルをＢ−ｒｅｐｓデータによる表面形状モデルに変換するには、表示装置の画面上にビットマップデータの表面形状モデルを表示し、これを利用者が見ながら対話的に操作を行ってＢ−ｒｅｐｓデータを作成する。
【００１１】
ここで、画面上にビットマップデータなどによる表面形状モデルを表示する際には「ポリゴンデータ」と呼ばれるデータ形式を用いるのが一般的である。したがってビットマップデータや点群データのＢ−ｒｅｐｓデータへの変換は、ポリゴンデータのＢ−ｒｅｐｓデータへの変換としてなされるのが通常である。ポリゴンデータは、表面形状モデルを記述する代表的なデータ形式であり、微小な３角形面の集合として構成される。
【００１２】
ところで、機械部品においては、応力集中をさけるために、表面形状のエッジ部分に対して丸みをつける処理が施されることが多い。Ｂ−ｒｅｐｓデータに対して、上述の丸み付け処理が施された部位は「フィレット面」と呼ばれる面として定義される。図１７、図１８にこのようなフィレット面の代表的な例を示す。図１７に示すように、エッジに接続する２つの曲面に対して、一定の半径で丸み付け処理を行うと、図中のハッチングで示したフィレット面が定義される。このようにして定義されるフィレット面は「径一定フィレット面」と呼ばれる。また、図１８に示すように、エッジに接続する２つの曲面に対して、エッジに沿った半径分布を指定して丸み付け処理を行うと、図中のハッチングで示したフィレット面が定義される。ここで、エッジに沿った半径分布は、エッジに沿って定義される座標軸ｔの関数として定義されるのが普通である。このようにして定義されるフィレット面は「可変フィレット面」と呼ばれる。
【００１３】
機械部品には、上述のフィレット面が含まれていることが多いため、ビットマップデータや点群データからフィレット面を生成して、Ｂ−ｒｅｐｓデータに変換したいというニーズが強くある。
【００１４】
ビットマップデータや点群データからフィレット面を生成して、Ｂ−ｒｅｐｓデータに変換する方法としては、次の２つの方法があげられる。
【００１５】
第１の方法では、ビットマップデータや点群データが表している立体形状の表面上で、フィレット面が定義されている領域に自由曲面をフィッティングさせる。この方法では、フィレット面は自由曲面として定義される。ひとつのフィレット面は複数の自由曲面の集まりとして定義される。
【００１６】
第２の方法では、ビットマップデータや点群データが表している立体形状の表面上で、利用者が、フィレット面の境界線、あるいはフィレットの境界線を定義するためのパラメータ値と補助線のいずれかを指定することでフィレット面を生成する。
【００１７】
上述した幾何学的な特徴面に着目してビットマップデータや点群データをＢ−ｒｅｐｓデータに変換する手法は有効性が高い。但し、第１の方法は、フィレット面を、ビットマップデータや点群データにフィッティングさせた自由曲面として定義しているので、ビットマップデータや点群データに対して高精度にフィレット面を生成することができるが、変換後のＢ−ｒｅｐｓデータの利便性が低くなる。すなわち、フィレット面を定義するために必要な自由曲面の数が増えることにより、Ｂ−ｒｅｐｓデータのサイズが大きくなったり、また、Ｂ−ｒｅｐｓデータがフィレット面の半径等といったフィレット面に関する幾何学的特徴量を含まないために、そのデータを３次元ＣＡＤに読み込んでフィレット面の形状を変更することが難しい。
【００１８】
上記第２の方法は、変換後のＢ−ｒｅｐｓデータは、データサイズが小さく、フィレット面に関する幾何学的特徴量を含んでいるので、利便性は高い。しかしながら、その幾何学的特徴量は、ビットマップデータや点群データをフィッティングさせて定まるものでなく、利用者が間接的にその値を指定することにより定まるものである。利用者が指定する値によっては、ビットマップデータや点群データからかけ離れたフィレット面が生成されることもあり得るので、高精度にフィレット面を生成できない。また、利用者がフィレット面の幾何学的特徴量を間接的に指定する手順は複雑であり、Ｂ−ｒｅｐｓデータへの変換に要する作業時間が長くなる。フィレット面を含むビットマップデータや点群データのＢ−ｒｅｐｓデータへの変換について、フィレット面が定義されている領域に対して、簡単な操作で、高精度にフィレット面を作成し、利便性の高いＢ−ｒｅｐｓデータに変換することができるようにすることが望まれる。
【００１９】
図１に第１の実施形態による立体形状データ変換装置のシステム構成を示す。本実施形態における立体形状データ変換装置は、入力されたビットマップデータＤ１あるいは点群データＤ２あるいはポリゴンデータＤ３からＢ−ｒｅｐｓデータＤ５を作成して、これを出力する。そのために、ポリゴン変換手段Ｃ１、ポリゴン記憶手段Ｃ２、グループ生成手段Ｃ３、グループ記憶手段Ｃ４、フィレット面生成手段Ｃ５、Ｂ−ｒｅｐｓ生成手段Ｃ６、入力手段Ｃ７、表示手段Ｃ８を備えている。
【００２０】
ポリゴン変換手段Ｃ１は、ビットマップデータＤ１あるいは点群データＤ２をポリゴンデータＤ３に変換する機能を持つ。ポリゴン変換手段Ｃ１によって変換されるポリゴンデータＤ３は、対象物の表面形状モデルを微小な３角形面（ポリゴン）の集合として記述するデータである。ビットマップデータＤ１あるいは点群データＤ２は、上記の従来における変換技術によりポリゴンデータＤ３に変換されるのが通常である。
【００２１】
ポリゴンデータＤ３には、各ポリゴンの頂点座標が記述されている。ポリゴンデータＤ３は、例えば次のようなデータ構成となっている。
【００２２】
ポリゴン１＝（頂点１の座標（Ｘ１，Ｙ１，Ｚ１），頂点２の座標（Ｘ２，Ｙ２，
Ｚ２），頂点３の座標（Ｘ３，Ｙ３，Ｚ３））
ポリゴン２＝（頂点１の座標（Ｘ１，Ｙ１，Ｚ１），頂点２の座標（Ｘ２，Ｙ２，
Ｚ２），頂点３の座標（Ｘ３，Ｙ３，Ｚ３））
ポリゴンｎ＝（頂点１の座標（Ｘ１，Ｙ１，Ｚ１），頂点２の座標（Ｘ２，Ｙ２，
Ｚ２），頂点３の座標（Ｘ３，Ｙ３，Ｚ３））
ポリゴン記憶手段Ｃ２は、メモリやハードディスクで構成され、入力されたデータを記憶し、必要時に出力する機能を持つ。
【００２３】
グループ生成手段Ｃ３は、ポリゴンデータＤ３とグループ生成コマンドＤ６を受け、グループデータＤ４を作成してグループ記憶手段Ｃ４に送る機能を持つ。グループ生成手段Ｃ３が作成するグループデータＤ４は、「グループ」を記述するデータである。「グループ」とは、ポリゴンデータＤ３に含まれているポリゴンの集合によって定義される単一の領域のことであり、一つのグループは一つの「幾何形状」と対応している。「幾何形状」とは、平面、円筒面、自由曲面などの幾何学的に定義された曲面のことであり、Ｂ−ｒｅｐｓデータを構成する要素である。幾何形状を定義するには、平面、円筒面、自由曲面といった形態（形状）の分類を表す「種別情報」と、形態を詳細に規定する「特徴量」が必要である。
【００２４】
グループデータＤ４には、各グループに含まれるポリゴンの集合、各グループに対応する幾何形状の種別情報、幾何形状の特徴量が記述されている。グループデータＤ４は、たとえば次のようなデータ構成となっている。
【００２５】
グループａの記述（ポリゴンの集合、種別情報、特徴量）
グループｂの記述（ポリゴンの集合、種別情報、特徴量）
グループｍの記述（ポリゴンの集合、種別情報、特徴量）
種別情報としては、例えば、平面、球面、円筒面、円錐面、回転面、フィレット面、自由曲面などの幾何形状がある。さらに、特徴量は種別情報に応じて、次のように変わる。
【００２６】
（種別情報）        （特徴量）
平面          ：  基準点，単位法線ベクトル
球面          ：  中心点，半径
円筒面        ：  中心軸の基準点，中心軸の単位方向ベクトル，半径
円錐面        ：  中心軸の基準点，中心軸の単位方向ベクトル、頂点、母線角度
回転面        ：  中心軸の基準点，中心軸の単位方向ベクトル、母線
フィレット面  ：  接続面、半径分布
自由曲面      ：  曲面の次数，制御点，ノット列
グループ生成手段Ｃ３は、上で示した形状のうち、フィレット面以外の幾何形状に対応するグループデータを生成する。フィレット面以外の幾何形状に対応するグループデータＤ４は、上記の従来におけるグループデータ生成技術により生成されるのが通常である。
【００２７】
ポリゴン記憶手段Ｃ４は、メモリやハードディスクで構成され、入力されたデータを記憶し、必要時に出力する機能を持つ。
【００２８】
フィレット面生成手段Ｃ５は、グループデータＤ４とフィレット面生成コマンドＤ７を受け、グループデータＤ４を作成してグループ記憶手段Ｃ４に送る機能を持つ。フィレット面生成手段Ｃ５は、上で示した形状のうち、フィレット面に対応するグループデータを生成する。フィレット面生成手段Ｃ５の詳細については後述する。
【００２９】
Ｂ−ｒｅｐｓデータ生成手段Ｃ６は、グループデータＤ４とＢ−ｒｅｐｓデータ生成コマンドＤ８を受け、Ｂ−ｒｅｐｓデータＤ５を生成して出力する機能を備える。Ｂ−ｒｅｐｓデータＤ５は、上記の従来におけるＢ−ｒｅｐｓデータ作成技術により作成されるのが通常である。
【００３０】
入力手段Ｃ７は、キーボードやマウスなどで構成され、ビットマップデータＤ１あるいは点群データＤ２あるいはポリゴンデータＤ３からＢ−ｒｅｐｓデータＤ５を作成して、これを出力するまでの処理に必要なコマンドなどを利用者が入力するのに機能する。すなわち利用者は、この入力手段Ｃ２を介して、グループ生成コマンドＤ６、フィレット面生成コマンドＤ７、Ｂ−ｒｅｐｓデータ生成コマンドＤ８などのコマンドを入力する。
【００３１】
表示手段Ｃ８は、ポリゴン記憶手段Ｃ２からポリゴンデータＤ３を、グループ記憶手段Ｃ４からグループデータＤ４を、それぞれ取り出して（入力して）、利用者に視覚的に表示する機能を持つ。
【００３２】
以上が立体形状データ変換装置Ｃの構成である。次に、立体形状データ変換装置で実行される立体形状データ変換方法の実施形態について説明する。本実施形態の立体形状データ変換方法における処理は、図２にその流れを示すように、ステップＰ１〜ステップＰ４の４つの処理過程を含む。
【００３３】
ステップＰ１（ポリゴンデータ変換過程）では、ポリゴン変換手段Ｃ１を用いて、入力されたビットマップデータＤ１あるいは点群データＤ２をポリゴンデータＤ３に変換する。変換されたポリゴンデータＤ３はポリゴン記憶手段Ｃ２を用いてメモリやハードディスク上に記憶される。ここで、ビットマップデータＤ１あるいは点群データＤ２からポリゴンデータＤ３への変換は立体形状データ変換装置Ｃ以外でなされることもある。そこで、立体形状データ変換装置ＣはポリゴンデータＤ３を直接入力する機能も備えている。すなわち、立体形状データ変換装置ＣにポリゴンデータＤ３が入力された場合、ステップＰ１では、変換処理は省略され、入力されたポリゴンデータＤ３がポリゴンリゴン記憶手段Ｃ２を用いてメモリやハードディスク上に記憶される。
【００３４】
ステップＰ２（グループデータ作成過程）では、グループ生成手段Ｃ３を用いて、ポリゴンデータＤ３からフィレット面以外の幾何形状に対応するグループデータＤ４を作成する。グループデータＤ４の作成は上述の手法で行なわれる。具体的には、表示手段Ｃ８の画面上に表示されているポリゴンデータＤ３つまり表面形状モデルを見ながら利用者が対話的な操作で幾何学的特徴面の抽出などを行ってグループデータＤ４を作成する。この時点で、ポリゴンデータＤ３の中で、フィレット面が定義されている領域以外の領域に対して、グループデータＤ４が作成される。
【００３５】
ステップＰ３（フィレット面生成過程）では、フィレット面生成手段Ｃ５がフィレット面生成処理を行う。フィレット面生成過程における処理の流れを図３に示す。この処理は、ステップＰ５〜ステップＰ１５の１１つの処理過程を含む。
【００３６】
ステップＰ５（接続グループ指定過程）では、入力手段２を用いて、表示手段Ｃ８の画面上に表示されているポリゴンデータＤ３に対して、図４に示すように、フィレット面に接続する２つのグループ（グループＤ９、グループＤ１０）を指定する。ここで、図４においては、グループＤ９、グループＤ１０に含まれるポリゴン群がハッチング表示されている。
【００３７】
接続グループ指定方法の一例を図５に基づいて説明する。図５に示すように、表示手段Ｃ８の表示画面の左側に、ステップＰ２で作成されたグループのリストが２つ表示されており、利用者はそれぞれのリスト上でフィレット面に接続するグループをマウスでクリックする。表示手段Ｃ８の表示画面の右側では、選択されたグループに含まれるポリゴン群がハイライト表示される。図３の例では、フィレット面に接続するグループとしてグループｂとグループｃが選択されている。以上の操作により、フィレット面に接続する２つのグループが決定される。
【００３８】
ステップＰ６（第１交線計算過程）では、グループＤ９、グループＤ１０において定義されている幾何形状の間で交線計算を行い、図４に示すように、グループＤ９とグループＤ１０間の交線である第１交線Ｄ１１を求める。
【００３９】
ステップＰ７（フィレット面区間指定過程）では、図４に示すように、第１交線Ｄ１１上でフィレット面開始点Ｄ１２とフィレット面終了点Ｄ１３を指定することにより、第１交線Ｄ１１のうちフィレット面開始点Ｄ１２とフィレット面終了点Ｄ１３を端点とする部分区間（フィレット面区間）を定める。フィレット面開始点Ｄ１２とフィレット面終了点Ｄ１３を指定する方法は、表示手段Ｃ８の画面上に表示されている第１交線Ｄ１１上の点を利用者がクリックすることで求める方法（第１のフィレット面区間指定方法）、グループＤ９とグループＤ１０に含まれるポリゴン群の頂点を第１交線Ｄ１１上に投影することで求める方法（第２のフィレット面区間指定方法）から選択する。
【００４０】
第１のフィレット面区間指定方法の一例を図６に基づいて説明する。図６に示すように、表示手段Ｃ８に第１交線Ｄ１１が表示されており、利用者は第１交線Ｄ１１上にマウスカーソルを移動させてクリックすることにより、マウスクリック位置の点をフィレット面開始点Ｄ１２として指定する。図６の例では、黒丸で記した点が、ユーザーが指定したフィレット面開始点である。フィレット面終了点Ｄ１３に関しても、同様な方法で指定する。以上の操作により、フィレット面開始点Ｄ１２とフィレット面終了点Ｄ１３が決定される。
【００４１】
次に第２のフィレット面区間指定方法を図７に基づいて説明する。図７に示すように、グループＤ９とグループＤ１０に含まれるポリゴン群の頂点を第１交線Ｄ１１上に投影した点を求める。図７においては、グループＤ９とグループＤ１０に含まれるポリゴン群の頂点の一部が白抜きの黒丸で示されており、それらの頂点を第１交線Ｄ１１上に投影した点が黒丸で示されている。投影した点の中で、第１交線Ｄ１１上で最も端に位置する２つの点を検索し、それらの点をフィレット面開始点Ｄ１２とフィレット面終了点Ｄ１３とする。以上の操作により、フィレット面開始点Ｄ１２とフィレット面終了点Ｄ１３が決定される。
【００４２】
ステップＰ７に続くステップＰ８（垂直平面定義過程）では、図８に示すように、フィレット面区間内の第１交線Ｄ１１上の点Ｄ１４を通り、点Ｄ１４における第１交線Ｄ１１の接ベクトルに垂直な垂直平面Ｄ１５を１つ以上定義する。点Ｄ１４の指定方法としては、利用者がフィレット面区間の分割数を指定し、指定した分割数でフィレット面区間を等間隔に分割することにより定める方法が一般的である。この方法で点Ｄ１４を指定した場合、フィレット面開始点Ｄ１２とフィレット面終了点Ｄ１３点が必ず点Ｄ１４に含まれ、点Ｄ１４の数は全体で（分割数＋１）個になる。図８の例では、上で述べた指定方法を用いて、フィレット面区間を３つに等分割して４個の点Ｄ１４を指定し、それに伴って４つの垂直平面Ｄ１５を定義している。
【００４３】
ステップＰ９（断面形状計算過程）では、図９に示すように、垂直平面Ｄ１５とポリゴンデータＤ３によって記述される表面形状との間で交線計算を行い、断面形状Ｄ１６を求める。ポリゴンデータＤ３を構成する微小３角形面と垂直平面Ｄ１５の交線形状は常に直線であるので、断面形状Ｄ１６はこれら直線の集合、すなわち折れ線として定義される。
【００４４】
ステップＰ１０（第２交線計算過程）では、グループＤ９、グループＤ１０において定義されている幾何形状と垂直平面Ｄ１５の間で交線計算を行い、グループＤ９と垂直平面Ｄ１５間の交線である第２交線Ｄ１７、およびグループＤ１０と垂直平面Ｄ１５間の交線である第２交線Ｄ１８を求める。図９には、このようにして求めた第２交線Ｄ１７、Ｄ１８が点線で示されている。
【００４５】
ステップＰ１１（フィレット面所属点群検索過程）では、断面形状Ｄ１６に対してフィレット面所属点群Ｄ１９を検索する。ここで、フィレット面所属点群Ｄ１９とは、折れ線形状として定義される断面形状Ｄ１６を構成する頂点群のうち、フィレット面近傍に位置する点群のことである。フィレット面所属点群Ｄ１９を求める方法は、断面形状Ｄ１６のうちグループＤ９、グループＤ１０に含まる領域を検索し、これらの領域に挟まれる領域に含まれる点群を検索する方法（第１のフィレット面所属点群検索方法）、第２交線上で、グループＤ９、グループＤ１０の境界点Ｄ２３を求め、境界点Ｄ２３を通る第２交線に垂直な直線と第２交線によって囲まれる領域に含まれる点群を検索する方法（第２のフィレット面所属点群検索方法）から選択する。
【００４６】
第１のフィレット面所属点群検索方法を図１０に基づいて説明する。最初に、断面形状Ｄ１６の中で、グループＤ９、グループＤ１０に含まる領域を検索する。これは、グループＤ９、グループＤ１０に含まるポリゴン群が既知であるので、断面形状Ｄ１６の中で、グループＤ９、グループＤ１０に含まるポリゴン群と垂直平面Ｄ１５の間の交線を検索することにより実現可能である。図１０においては、上に述べた方法で検索した領域が太線で示されている。断面形状Ｄ１６ａがグループＤ９に含まれる領域、断面形状Ｄ１６ｂがグループＤ１０に含まれる領域である。
【００４７】
次に、断面形状Ｄ１６の中で、フィレット面に属する領域を検索する。フィレット面はグループＤ９とグループ１０に接続しているので、断面形状Ｄ１６においても、フィレット面に属する領域は断面形状Ｄ１６ａと断面形状Ｄ１６ｂに接続する関係にある。すなわち、フィレット面に属する領域は断面形状Ｄ１６ａと断面形状Ｄ１６ｂに挟まれる領域であるので、断面形状Ｄ１６の中からこのような領域を検索することで実現可能である。図１０においては、上に述べた方法で検索した領域（断面形状Ｄ１６ｃ）が細線で示されている。
【００４８】
最後に、断面形状Ｄ１６ｃに含まれる頂点を選択することにより、フィレット面所属点群Ｄ１９が求まる。図１０においては、上に述べた方法で求めたフィレット面所属点群Ｄ１９が白抜きの黒丸で示されている。以上の操作により、フィレット面所属点群Ｄ１９が検索される。
【００４９】
次に、第２のフィレット面所属点群検索方法を図１１に基づいて説明する。最初に、断面形状Ｄ１６の中で、グループＤ９、グループＤ１０に含まる領域を検索する。これは、第１のフィレット面所属点群検索方法と同様な方法で行う。
【００５０】
次に、図１２に示すように、グループＤ９に含まれる領域（断面形状Ｄ１６ａ）に対して、断面形状Ｄ１６ａに含まれる点群を第２交線Ｄ１７上に投影した点を求める。図１２においては、断面形状Ｄ１６ａに含まれる点群の一部が白抜きの黒丸で示されており、それらの点群を第２交線Ｄ１７上に投影した点が黒丸で示されている。投影した点の中で、第２交線Ｄ１７とＤ１８の交点に最も近い点を検索し、この点をグループＤ９の境界点Ｄ２３とする。グループＤ１０に対しても同様な方法でグループＤ１０の境界点Ｄ２３を求める。
【００５１】
次に、図１１に示すように境界点Ｄ２３を通り、第２交線Ｄ１７、Ｄ１８に垂直な直線Ｄ２４、Ｄ２５を定義する。
【００５２】
最後に、断面形状Ｄ１６上の点群のうち、第２交線Ｄ１７、Ｄ１８と直線Ｄ２４、Ｄ２５によって囲まれる領域に含まれるものを選択することにより、フィレット面所属点群Ｄ１９が求まる。図１１においては、上に述べた方法で求めたフィレット面所属点群Ｄ１９が白抜きの黒丸で示されている。以上の操作により、フィレット面所属点群Ｄ１９が検索される。
【００５３】
ステップＰ１１に続くステップＰ１２では、全ての垂直平面Ｄ１５に対して、断面形状Ｄ１６、第２交線Ｄ１７、第２交線Ｄ１８、フィレット面所属点群Ｄ１９を求めたか否かを判断し、その判断結果が否定的であれば、ステップＰ９に戻ってステップＰ１１までを残りの垂直平面Ｄ１５について繰り返し、その判断結果が肯定的になればステップＰ１３（フレット面半径分布算出過程）に進む。
【００５４】
ステップＰ１３では、第１交線Ｄ１１に沿ったフレット面の半径分布を算出する。フレット面半径分布算出過程における処理の流れを図１３に示す。この処理は、ステップＰ１６〜ステップＰ１８の３つの処理過程を含む。
【００５５】
ステップＰ１６（断面形状位置算出過程）では、第１交線Ｄ１１に沿った断面形状Ｄ１６の位置ｔｉを求める。これは、断面形状Ｄ１６の基準点Ｄ１４が第１交線Ｄ１１上の点であるので、基準点Ｄ１４に対して、フィレット面開始点Ｄ１２を起点とする第１交線Ｄ１１の弧長を算出することにより求めることができる。
【００５６】
次にステップＰ１７（フレット面半径算出過程）では、垂直平面Ｄ１５におけるフレット面の半径を求める。これは、図１４に示すように、垂直平面Ｄ１５において、フィレット面所属点群Ｄ１９から第２交線Ｄ１７と第２交線Ｄ１８に接する円Ｄ２０を最小二乗法により求めることにより実現される。より具体的には、円Ｄ２０の半径をｒｉ、円Ｄ２０の中心座標をＯｉ、フィレット面所属点群Ｄ１９の座標をＰｉｊとして、（式１）で定義されるフィレット面所属点群Ｄ１９と円Ｄ２０間の距離の２乗和ｆｉを最小化させる半径ｒｉを求めることにより、求めた半径ｒｉが断面形状Ｄ１６におけるフィレット面の半径となる。
【００５７】
【数１】
2008059235.tif 000003
【００５８】
次にステップＰ１８（フレット面半径分布補間過程）では、図１５に示すように、ステップＰ１６とステップＰ１７で求めた各断面形状Ｄ１６における位置ｔｉと半径ｒｉをデータとして持つパラメータＤ２１に対してスプライン補間を行って、第１交線Ｄ１１に沿ったフィレット面の半径分布を求める。
【００５９】
ここで、第１交線Ｄ１１に沿ったフィレット面の半径が一定となる、あるいは半径が線形に変化するといった具合に、第１交線Ｄ１１に沿ったフィレット面の半径分布に対してある拘束をかけたい場合がある。これは、ステップＰ１７において、円Ｄ２０の半径ｒｉに対して拘束をかけて、円Ｄ２０を求めることにより実現可能である。例えば、第１交線Ｄ１１に沿ったフィレット面の半径が線形に変化する場合は、ｒｉ＝Ｒ１×（１−ｔｉ）＋Ｒ２×ｔｉという拘束をかけて、式２で定義されるＦを最小化させるＲ１、Ｒ２を求めることにより実現可能である。
【００６０】
【数２】
2008059235.tif 000004
【００６１】
また、第１交線Ｄ１１に沿ったフィレット面の半径が一定になる場合は、ｒｉ＝Ｒ３という拘束をかけて、式３で定義されるＦを最小化させるＲ３を求めることにより実現可能である。
【００６２】
【数３】
2008059235.tif 000005
【００６３】
以上がフレット面半径分布算出過程における処理の内容である。
【００６４】
次に、図３のステップＰ１４（フィレット面作成過程）では、図１６に示すように、グループＤ９、グループＤ１０において定義されている幾何形状と、第１交線Ｄ１１に沿ったフィレット面の半径分布より、当業者にとって周知であるフィレット面作成方法を用いてフィレット面Ｄ２２が作成される。
【００６５】
ステップＰ１５では、ポリゴンデータＤ３によって記述される表面形状のうちフィレット面が定義されている領域の全てに対して、フィレット面Ｄ２２が作成されたか否かを判断し、その判断結果が否定的であれば、ステップＰ５に戻ってステップＰ１４までを残りのフィレット面が定義されている領域について繰り返し、その判断結果が肯定的になれば処理を終了する。以上がフィレット面生成過程における処理の内容である。
【００６６】
次に、図２のステップＰ４（Ｂ−ｒｅｐｓ生成過程）では、Ｂ−ｒｅｐｓ生成手段Ｃ６を用いて、グループデータＤ４からＢ−ｒｅｐｓデータＤ５を作成する。以上が、立体形状データ変換装置Ｃによる立体形状データ変換処理である。本実施形態では、利用者はフィレット面に接続する２つのグループを指定する処理と、上記２つのグループの交線上でフレット面の開始点と終了点を指定する処理（この処理は省略することも可能である）を行うだけで簡単にフィレット面を作成することができる。また、ポリゴンデータをフィッティングさせてフィレット面の半径分布を求めているので、高精度にフィレット面を作成することができる。さらに、変換後のＢ−ｒｅｐｓデータは、データサイズが小さく、フィレット面に関する幾何学的特徴量を含んでいるので、利便性の高いデータとなっている。
【００６７】
以上のように、本実施形態によれば、フィレット面を含むビットマップデータや点群データのＢ−ｒｅｐｓデータへの変換について、フィレット面が定義されている領域に対して、簡単な操作で、高精度にフィレット面を作成し、利便性の高いＢ−ｒｅｐｓデータに変換することができる。
【００６８】
また、フィレット面に接続する２つの曲面に対して、これらの曲面間の交線と垂直に交わる平面上で、ビットマップデータや点群データをフィティングさせてフィレット面の半径を求め、そのフィレット面の半径から曲面間の交線に沿ったフィレット面の半径分布を求め、さらにそのフィレット面の半径分布からフィレット面を作成している。従って、利用者はフィレット面に接続する２つの曲面を指定するだけで簡単に高精度なフィレット面を作成することができ、また、変換後のＢ−ｒｅｐｓデータは、データサイズが小さく、フィレット面に関する幾何学的特徴量を含んでいるので、利便性の高いデータとなっている。
【００６９】
更に、本実施例では、フィレット面を含むビットマップデータや点群データに対して、簡単な操作で高精度にフィレット面を作成し、利便性の高いＢ−ｒｅｐｓデータへの変換を可能とするものであり、Ｂ−ｒｅｐｓデータが利用される設計や解析の分野などにおいて有用なものとして広く利用することができる。
【図面の簡単な説明】
【００７０】
【図１】第１の実施形態による立体形状データ変換装置の構成を示す図である。
【図２】立体形状データ変換装置Ｃによる立体形状データ変換方法の処理手順を示す図である。
【図３】立体形状データ変換装置Ｃによるフィレット面生成方法の処理手順を示す図である。
【図４】立体形状データ変換装置Ｃにおける、フィレット面に接続する２つのグループと、それら２つのグループ間の第１交線と、第１交線上のフィレット面開始点、フィレット面終了点の関係を示す図である。
【図５】立体形状データ変換装置Ｃによるフィレット面に接続する２つのグループを指定方法の一例を示す図である。
【図６】立体形状データ変換装置Ｃによる第１のフィレット面区間指定方法の一例を示す図である。
【図７】立体形状データ変換装置Ｃによる第２のフィレット面区間指定方法を示す図である。
【図８】立体形状データ変換装置Ｃにおける、フィレット面区間内の第１交線上の点を通り、その点における第１交線の接ベクトルに垂直な平面を示す図である。
【図９】立体形状データ変換装置Ｃにおける、垂直平面と表面形状との交線である断面形状と、フィレット面に接続する２つのグループと垂直平面の交線である第２交線の関係を示す図である。
【図１０】立体形状データ変換装置Ｃによる第１のフィレット面所属点群検索方法を示す図である。
【図１１】立体形状データ変換装置Ｃによる第２のフィレット面所属点群検索方法を示す図である。
【図１２】立体形状データ変換装置Ｃによる第２交線上でフィレット面に接続する２つのグループの境界点を求める方法を示す図である。
【図１３】立体形状データ変換装置Ｃによる、第１交線に沿ったフレット面の半径分布を算出する処理手順を示す図である。
【図１４】立体形状データ変換装置Ｃによる断面形状におけるフレット面の半径を求める方法を示す図である。
【図１５】立体形状データ変換装置Ｃによるスプライン補間によって第１交線に沿ったフレット面半径分布を求める方法を示す図である。
【図１６】立体形状データ変換装置Ｃでフィレット面を生成する具体的な例を示す図である。
【図１７】エッジに接続する２つの曲面に対して一定の半径で丸み付け処理を行うことで定義されるフィレット面の例を示す図である。
【図１８】エッジに接続する２つの曲面に対してエッジに沿った半径分布を指定して丸み付け処理を行うことで定義されるフィレット面の例を示す図である。
【符号の説明】
【００７１】
Ｃ…第１の実施形態による立体形状データ変換装置、Ｃ１…ポリゴン変換手段、Ｃ２…ポリゴン記憶手段、Ｃ３…グループ生成手段、Ｃ４…グループ記憶手段、Ｃ５…フィレット面生成手段、Ｃ６…Ｂ−ｒｅｐｓ生成手段、Ｃ７…入力手段、Ｃ８…表示手段、Ｄ１…ビットマップデータ、Ｄ２…点群データ、Ｄ３…ポリゴンデータ、Ｄ４…グループデータ、Ｄ５…Ｂ−ｒｅｐｓデータ、Ｄ６…グループ生成コマンド、Ｄ７…フィレット面生成コマンド、Ｄ８…Ｂ−ｒｅｐｓデータ生成コマンド、Ｄ９…フィレット面に接続する２つのグループ、Ｄ１０…フィレット面に接続する２つのグループ、Ｄ１１…第１交線、Ｄ１２…フィレット面開始点、Ｄ１３…フィレット面終了点、Ｄ１４…フィレット面区間内の第１交線上の点、Ｄ１５…垂直平面、Ｄ１６…断面形状、Ｄ１６ａ…断面形状Ｄ１６のうちグループＤ９に含まれる領域、Ｄ１６ｂ…断面形状Ｄ１６のうちグループＤ１０に含まれる領域、Ｄ１６ｃ…断面形状Ｄ１６のうちフィレット面に含まれる領域、Ｄ１７…第２交線、Ｄ１８…第２交線、Ｄ１９…フィレット面所属点群、Ｄ２０…第２交線Ｄ１７と第２交線Ｄ１８に接する円、Ｄ２１…断面形状Ｄ１６の位置とフィレット面の半径をデータとして持つパラメータ、Ｄ２２…フィレット面、Ｄ２３…２交線上のグループＤ９、グループＤ１０の境界点。
【図１】
2008059235.tif 000006
【図２】
2008059235.tif 000007
【図３】
2008059235.tif 000008
【図４】
2008059235.tif 000009
【図５】
2008059235.tif 000010
【図６】
2008059235.tif 000011
【図７】
2008059235.tif 000012
【図８】
2008059235.tif 000013
【図９】
2008059235.tif 000014
【図１０】
2008059235.tif 000015
【図１１】
2008059235.tif 000016
【図１２】
2008059235.tif 000017
【図１３】
2008059235.tif 000018
【図１４】
2008059235.tif 000019
【図１５】
2008059235.tif 000020
【図１６】
2008059235.tif 000021
【図１７】
2008059235.tif 000022
【図１８】
2008059235.tif 000023