JP2008186074A - 形状データ変換方法、形状データ変換プログラムおよび形状データ変換装置 - Google Patents
形状データ変換方法、形状データ変換プログラムおよび形状データ変換装置 Download PDFInfo
- Publication number
- JP2008186074A JP2008186074A JP2007016688A JP2007016688A JP2008186074A JP 2008186074 A JP2008186074 A JP 2008186074A JP 2007016688 A JP2007016688 A JP 2007016688A JP 2007016688 A JP2007016688 A JP 2007016688A JP 2008186074 A JP2008186074 A JP 2008186074A
- Authority
- JP
- Japan
- Prior art keywords
- data
- chamfer
- shape
- chamfering
- shape data
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Landscapes
- Processing Or Creating Images (AREA)
Abstract
【課題】幾何情報を含まない第1のデータによる面取りを、幾何情報を含み、利便性の高い第2のデータによる面取りへ容易に変換することを目的とする。
【解決手段】物体の表面形状を記述しており、幾何情報を含まないビットマップデータD1、点群データD2、ポリゴンデータD3などによる面取りの情報から、面取り位置を算出し、面取り位置を幾何情報としたデータD4,D5における面取りの情報を生成することを特徴とする。
【選択図】図1
【解決手段】物体の表面形状を記述しており、幾何情報を含まないビットマップデータD1、点群データD2、ポリゴンデータD3などによる面取りの情報から、面取り位置を算出し、面取り位置を幾何情報としたデータD4,D5における面取りの情報を生成することを特徴とする。
【選択図】図1
Description
本発明は、形状データ変換方法、形状データ変換プログラムおよび形状データ変換装置の技術に関する。
X線CT(Computerized Tomography)装置、表面計測プローブ、レーザ計測機、CCD(Charged Coupled Device)カメラなどの3次元計測装置(3次元ディジタイザ)によって対象物の立体形状を計測した後、その表面形状を記述するデータ(表面形状モデル)を生成することが一般的に行われている。このような3次元計測装置によって計測されたビットマップデータや点群データは、表面形状についての局所的な情報を持つだけで大域的な情報(幾何情報:位相幾何学的な情報)を持っていない。一方、表面形状を記述するデータ形式として、一般の3次元CAD(Computer Aided Design)におけるデータ形式に用いられるB−reps(Boundary-representations:境界表現)がある。B−repsのデータ(B−repsデータ)は、面や、エッジなどの幾何情報や、幾何情報の関係を記述した位相情報などの大域的な情報である幾何情報を持っており、操作性や利用性においてビットマップデータや点群データよりも優れている。このような理由から、3次元計測装置から得られたビットマップデータや点群データをB−repsデータに変換して操作性や利用性を高めることは有用である。
ビットマップデータや点群データをB−repsデータに変換する方法としては、ビットマップデータや点群データが表している立体形状の表面から幾何学的な特徴面(平面や円筒面などといった幾何学的に定義された面)を抽出した後、残りの表面上に自由曲面を生成する方法がある(例えば、特許文献1参照)。また、ビットマップデータからポリゴンデータを生成する技術も開示されている(例えば、特許文献2参照)。さらに、点群データから物体表面の3角形ポリゴンデータを生成する技術も開示されている(例えば、非特許文献1参照)。
ところで、機械部品においては、応力集中をさけるために、面と面のつなぎ目に対して丸みをつける処理が施されることもある。B−repsデータに対して、このような丸み付け処理が施された部位は「フィレット面」と呼ばれる面として定義される。このようなフィレット面を生成する技術も開示されている(例えば、特許文献3,4参照)。
面と面とのつなぎ目をとる処理としては、前記したフィレット面を作成する他に、面取りと呼ばれる処理がある。面取りとは、面と面とが接続している角を除いた部分である。面と面とが接続している箇所を除いた結果生じる面、すなわち面取りの処理対象面を、面取り面と記載する。
機械部品には、このような面取りが多く含まれているため、X線CT装置などから取得したビットマップデータや点群データから面取りを生成して、B−repsデータに変換したいというニーズが強くある。
ビットマップデータや点群データから面取りを生成して、B−repsデータに変換する方法としては、ビットマップデータや点群データが表している立体形状の表面上で、面取りが定義されている領域に、ユーザが入力部を介して自由曲面をフィッティングさせる方法が一般的である。この方法では、面取り面は自由曲面として定義される。ひとつの面取り面は複数の自由曲面の集まりとして定義される。
特開2002−230056号公報(請求項1)
特公平6−32042号公報(請求項1)
特開2003−263464号公報(請求項1)
特開2003−271681号公報(請求項1)
Nina Amenta, Marshall Bern and Manolis Kamvysselis, "A New Voronoi-Based Surface Reconstruction Algorithm",Computer Graphics",1998, vol32, p415-p421
前記したユーザが入力部を介して自由曲面をフィッティングさせることによって、B−repsデータにおける面取りを生成する方法は、変換後のB−repsデータの利便性が低くなるという問題がある。すなわち、面取りにおける面取り面を定義するために必要な自由曲面の数が増えることにより、B−repsデータのサイズが大きくなってしまうという問題がある。また、このような方法で生成したB−repsデータには、面取り位置といった面取りに関する幾何情報や、位相情報を含まないため、当該B−repsデータを3次元CADに読み込んだ後に、3次元CAD上で面取りの修正などを行いたい場合、生成した自由曲面を一つ一つユーザが入力部を介して移動させる必要があるため、作業が煩雑となり、利便性が低い。
このような背景に鑑みて本発明がなされたのであり、本発明は、幾何情報を含まない第1のデータによる面取りを、幾何情報を含み、利便性の高い第2のデータによる面取りへ容易に変換することを目的とする。
前記課題を解決するため、本発明を完成するに至った。すなわち、本発明は、物体の表面形状を記述しており、幾何情報を含まない第1のデータを、物体の表面形状を記述しており、幾何情報を含む第2のデータへ変換し、第1のデータによる面取りの情報を、第2のデータによる面取りの情報へ変換する処理において、第1のデータによる面取りの情報から、面取り位置を算出し、面取り位置を幾何情報とした第2のデータにおける面取りの情報を生成することを特徴とする。
本発明によれば、幾何情報を含まない第1のデータによる面取りを、幾何情報を含み、利便性の高い第2のデータによる面取りへ容易に変換することができる。
本実施形態の説明に入る前に、比較例の技術について説明する。
ビットマップデータや点群データをB−repsデータに変換する方法としては、ビットマップデータや点群データが表している立体形状の表面から幾何学的な特徴面(平面や円筒面などといった幾何学的に定義された面)を抽出した後、残りの表面上に自由曲面を生成する方法がある(例えば、特許文献1参照)。また、ビットマップデータからポリゴンデータを生成する技術がある(例えば、特許文献2参照)。さらに、点群データから物体表面の3角形ポリゴンデータを生成する技術がある(例えば、非特許文献1参照)。
ビットマップデータや点群データをB−repsデータに変換する方法としては、ビットマップデータや点群データが表している立体形状の表面から幾何学的な特徴面(平面や円筒面などといった幾何学的に定義された面)を抽出した後、残りの表面上に自由曲面を生成する方法がある(例えば、特許文献1参照)。また、ビットマップデータからポリゴンデータを生成する技術がある(例えば、特許文献2参照)。さらに、点群データから物体表面の3角形ポリゴンデータを生成する技術がある(例えば、非特許文献1参照)。
また、機械部品においては、応力集中をさけるために、面と面のつなぎ目に対して丸みをつける処理が施されることもある。B−repsデータに対して、このような丸み付け処理が施された部位は「フィレット面」と呼ばれる面として定義される。図18は、フィレット面の代表的な例を示す図である。図18に示すように、フィレット面1803に接続する2つの面1801,1802の交線1804に対して、その交線に垂直な平面1805上で丸み付けの半径1806を指定すると、図中のハッチングで示したフィレット面1803が設定される技術がある(例えば、特許文献3,4参照)。
面と面とのつなぎ目をとる処理としては、前記したフィレット面を作成する他に、面取りと呼ばれる処理がある。図16は、面取りの代表的な例を示す図である。図16に示すように、グループ601に属する面およびグループ602に属する面の接続している箇所を削除した面が、面取り面1601である。ここで、グループとは、同一の幾何情報を有するポリゴンの集合のことである。
なお、特許文献3,4に記載されている技術を用いて生成されたフィレット面のB−repsデータは、データサイズが小さく、フィレット面に関する幾何学的特徴量を含んでいるので、利便性は高い。しかしながら、フィレット面が丸み付けの半径により定義されるものであるのに対して、面取りは面取り位置により定義されるものであり、面取り面をフィレット面として定義することはできず、特許文献3,4に記載されている技術で面取りを生成することは難しい。
(立体形状データ変換装置の構成)
図1は、本実施形態に係る立体形状データ変換装置の構成を示す機能ブロック図である。
立体形状データ変換装置1(形状データ変換装置)は、以下の構成を有してなる。
ポリゴン変換部2は、X線CT(Computerized Tomography)装置、表面計測プローブ、レーザ計測機、CCD(Charged Coupled Device)カメラなどの図示しない3次元計測装置(3次元ディジタイザ)から立体形状データ変換装置1へ入力されたビットマップデータD1や、点群データD2をポリゴンデータD3に変換する機能を持つ。ここで、ポリゴンデータD3は、対象物の表面形状モデルを微小な3角形面(ポリゴン)の集合として記述するデータである。ビットマップデータD1や、点群データD2をポリゴンデータD3(第1のデータ)へ変換する方法は、既知の技術であるため詳細な説明を省略する(例えば、特許文献2または非特許文献1参照)。
ポリゴンデータD3には、各ポリゴンの頂点座標が記述されている。ポリゴンデータD3は、例えば次のようなデータ構成となっている。
図1は、本実施形態に係る立体形状データ変換装置の構成を示す機能ブロック図である。
立体形状データ変換装置1(形状データ変換装置)は、以下の構成を有してなる。
ポリゴン変換部2は、X線CT(Computerized Tomography)装置、表面計測プローブ、レーザ計測機、CCD(Charged Coupled Device)カメラなどの図示しない3次元計測装置(3次元ディジタイザ)から立体形状データ変換装置1へ入力されたビットマップデータD1や、点群データD2をポリゴンデータD3に変換する機能を持つ。ここで、ポリゴンデータD3は、対象物の表面形状モデルを微小な3角形面(ポリゴン)の集合として記述するデータである。ビットマップデータD1や、点群データD2をポリゴンデータD3(第1のデータ)へ変換する方法は、既知の技術であるため詳細な説明を省略する(例えば、特許文献2または非特許文献1参照)。
ポリゴンデータD3には、各ポリゴンの頂点座標が記述されている。ポリゴンデータD3は、例えば次のようなデータ構成となっている。
ポリゴン1=(頂点1の座標(X1a,Y1a,Z1a),頂点2の座標(X2a,Y2a,Z2a),頂点3の座標(X3a,Y3a,Z3a))
ポリゴン2=(頂点1の座標(X1b,Y1b,Z1b),頂点2の座標(X2b,Y2b,Z2b),頂点3の座標(X3b,Y3b,Z3b))
:
ポリゴンn=(頂点1の座標(X1n,Y1n,Z1n),頂点2の座標(X2n,Y2n,Z2n),頂点3の座標(X3n,Y3n,Z3n))
ポリゴン2=(頂点1の座標(X1b,Y1b,Z1b),頂点2の座標(X2b,Y2b,Z2b),頂点3の座標(X3b,Y3b,Z3b))
:
ポリゴンn=(頂点1の座標(X1n,Y1n,Z1n),頂点2の座標(X2n,Y2n,Z2n),頂点3の座標(X3n,Y3n,Z3n))
ポリゴン記憶部3は、メモリやHD(Hard Disk)で構成され、入力されたポリゴンデータD3を記憶し、必要時に出力する機能を持つ。
グループ生成部4は、ポリゴン記憶部32からポリゴンデータD3を取得し、さらに入力部8からグループ生成に必要な情報を受け、グループデータD4を生成してグループ記憶部5に送る機能を持つ。グループ生成部4が生成するグループデータD4は、グループを記述するデータである。グループとは、ポリゴンデータD3に含まれているポリゴンの集合によって定義される単一の領域のことであり、一つのグループは一つの幾何情報と対応している。幾何情報とは、平面、円筒面、自由曲面などの幾何学的に定義された面のことであり、B−repsデータD5を構成する要素である。幾何情報を定義するには、平面、円筒面、自由曲面といった形態(形状)の分類を表す「種別情報」と、この形態を詳細に規定する「特徴量」が必要である。
グループデータD4には、各グループに含まれるポリゴンの集合、各グループに対応する幾何情報の種別情報および特徴量などが記述されている。グループデータD4は、例えば、ポリゴンの集合や、種別情報や、特徴量などを有する。
ポリゴンの集合は、例えば該当するグループに所属するポリゴンの識別番号が羅列されている。
ポリゴンの集合は、例えば該当するグループに所属するポリゴンの識別番号が羅列されている。
種別情報としては、例えば、平面、球面、円筒面、円錐面、回転面、面取り、自由曲面などの幾何形状がある。さらに、特徴量は、各種別情報に応じて、次のように変わる。例えば、種別情報が、面取りであれば、特徴量は、接続面や、面取り位置となり、種別情報が、自由曲面であれば、特徴量は、曲面の次数や、制御点や、ノット列となる。また、種別情報が、平面であれば、特徴量は、基準点や、単位法線ベクトルなどとなり、種別情報が、球面であれば、特徴量は、中心点や、半径などとなる。
グループ生成部4は、幾何情報のうち、面の幾何情報に対応するグループデータD4を生成する。面の幾何情報に対応するグループデータD4の生成方法は、特許文献1に記載されている技術を用いることにより可能である。
グループ記憶部5は、メモリやHD(Hard Disk)で構成され、グループ生成部4や、面取り生成部6から入力されたグループデータD4を記憶し、必要時に出力する機能を持つ。
面取り生成部6は、グループ記憶部5からグループデータD4を取得し、入力部8から面取りに必要な情報を受け、面取りの幾何情報を含んだグループデータD4を生成してグループ記憶部5に送る機能を持つ。面取り生成部6は、幾何情報のうち、面取りに対応するグループデータD4を生成する。面取り生成部6の詳細については、図3〜図18を参照して後記する。
グループ記憶部5は、メモリやHD(Hard Disk)で構成され、グループ生成部4や、面取り生成部6から入力されたグループデータD4を記憶し、必要時に出力する機能を持つ。
面取り生成部6は、グループ記憶部5からグループデータD4を取得し、入力部8から面取りに必要な情報を受け、面取りの幾何情報を含んだグループデータD4を生成してグループ記憶部5に送る機能を持つ。面取り生成部6は、幾何情報のうち、面取りに対応するグループデータD4を生成する。面取り生成部6の詳細については、図3〜図18を参照して後記する。
B−reps生成部7は、グループ記憶部5からグループデータD4を取得し、さらに、入力部8からB−repsデータD5の生成に必要な情報を受け、B−repsデータD5を生成して出力する機能を備える。B−repsデータD5は、例えば特許文献1に記載の技術により生成される。
入力部8は、キーボードやマウスなどで構成され、ビットマップデータD1あるいは点群データD2あるいはポリゴンデータD3からB−repsデータD5を生成して、これを出力するまでの処理に必要な情報を、グループ生成部4や、面取り生成部6や、B−reps生成部7へ入力する機能を有する。
画像構成部10は、ポリゴン記憶部3からポリゴンデータD3を、グループ記憶部5からグループデータD4を取得し、取得したポリゴンデータD3や、グループデータD4を視認可能な映像データに変換する。
表示部9は、画像構成部10において変換された映像データを表示する機能を持つ。
画像構成部10は、ポリゴン記憶部3からポリゴンデータD3を、グループ記憶部5からグループデータD4を取得し、取得したポリゴンデータD3や、グループデータD4を視認可能な映像データに変換する。
表示部9は、画像構成部10において変換された映像データを表示する機能を持つ。
なお、ポリゴン変換部2、グループ生成部4、面取り生成部6およびB−reps生成部7は、HDに格納されている立体データ変換プログラムが、RAM(Random Access Memory)などに展開され、CPU(Central Processing Unit)によって実行されることにより具現化する。
また、本実施形態では、ポリゴン記憶部3、グループ記憶部5などは、立体形状データ変換装置1内に設けられているが、これに限らず、ポリゴン記憶部3およびグループ記憶部5のうち、少なくとも1つを、例えば、データベースの形で、立体形状データ変換装置1の外部に設けてもよい。
また、本実施形態では、ポリゴン記憶部3、グループ記憶部5などは、立体形状データ変換装置1内に設けられているが、これに限らず、ポリゴン記憶部3およびグループ記憶部5のうち、少なくとも1つを、例えば、データベースの形で、立体形状データ変換装置1の外部に設けてもよい。
(全体処理)
次に、図1を参照しつつ、図2に沿って立体形状データ変換装置1で実行される立体形状データ変換方法の実施形態について説明する。
図2は、本実施形態に係る立体形状データ変換方法の処理の流れを示すフローチャートである。
ステップS101〜ステップS104の処理は、立体形状データ変換プログラムが立体形状データ変換装置1において、起動されることにより開始され、立体形状データ変換プログラムが終了に伴い終了する。
次に、図1を参照しつつ、図2に沿って立体形状データ変換装置1で実行される立体形状データ変換方法の実施形態について説明する。
図2は、本実施形態に係る立体形状データ変換方法の処理の流れを示すフローチャートである。
ステップS101〜ステップS104の処理は、立体形状データ変換プログラムが立体形状データ変換装置1において、起動されることにより開始され、立体形状データ変換プログラムが終了に伴い終了する。
まず、ポリゴン変換部2が、X線CT(Computerized Tomography)装置、表面計測プローブ、レーザ計測機、CCD(Charged Coupled Device)カメラなどの3次元計測装置(3次元ディジタイザ)から入力されたビットマップデータD1あるいは点群データD2をポリゴンデータD3に変換する(S101)。ポリゴン変換部2は、変換されたポリゴンデータD3をポリゴン記憶部3に記憶させる。なお、ビットマップデータD1あるいは点群データD2からポリゴンデータD3への変換は立体形状データ変換装置1以外の装置でなされることもある。そのような場合、立体形状データ変換装置1は、ポリゴンデータD3を直接入力する機能も備えている。すなわち、立体形状データ変換装置1にポリゴンデータD3が直接入力された場合、ステップS101の処理は省略され、入力されたポリゴンデータD3がポリゴン記憶部3に記憶される。
次に、グループ生成部4は、ポリゴンデータD3から面の幾何情報に対応するグループを生成する(S102)。すなわち、ポリゴンデータD3の表面形状を構成する頂点(要素)のうち、同一の面に所属する頂点の情報と、当該面に関する幾何情報とを含むグループのデータであるグループデータD4を生成する。グループの生成およびグループのデータであるグループデータD4の生成は、特許文献1に記載の手法で行なわれる。
ここで、面とは、平面、曲面などである。
ここで、面とは、平面、曲面などである。
そして、面取り生成部6が、面取りを生成する(S103)。面取りを生成する面取り生成処理の詳細な説明は、図3〜図18を参照して後記する。
さらに、B−reps生成部7は、ステップS102およびステップS103で生成したグループデータD4からB−repsデータD5を生成する(S104)。グループデータD4からB−repsデータD5の生成方法は、例えば、特許文献1に記載の技術を用いて行われる。
(面取り生成処理)
次に、図1を参照しつつ、図3に沿って、図2のステップS103の面取りを生成する面取り生成処理の概略を説明する。
図3は、面取り生成処理の流れを示すフローチャートである。
なお、図3における各処理の詳細は、図5〜図18を参照して後記する。
次に、図1を参照しつつ、図3に沿って、図2のステップS103の面取りを生成する面取り生成処理の概略を説明する。
図3は、面取り生成処理の流れを示すフローチャートである。
なお、図3における各処理の詳細は、図5〜図18を参照して後記する。
まず、面取り生成部6は、入力部8を介して、面取り面に接続する2つのグループと、面取りの種別情報を指定する(S201)ことにより、面取り生成部6は、ポリゴンデータから、2つの面を検出する。以下、請求項における面は、本実施形態におけるグループに相当するものとする。この処理の詳細は、図5を参照して後記する。
次に、面取り生成部6は、グループ間の交線を求める(S202)。この処理の詳細は、図6を参照して後記する。
そして、入力部8を介して、面取りの開始点と、終了点とが指定される(S203)。この処理の詳細は、図6〜図8を参照して後記する。
さらに、面取り生成部6は、切断平面を定義(設定)する(S204)。この処理は、図9を参照して後記する。
次に、面取り生成部6は、切断平面と、立体形状との輪郭形状を求める(S205)。この処理は、図10を参照して後記する。
次に、面取り生成部6は、グループ間の交線を求める(S202)。この処理の詳細は、図6を参照して後記する。
そして、入力部8を介して、面取りの開始点と、終了点とが指定される(S203)。この処理の詳細は、図6〜図8を参照して後記する。
さらに、面取り生成部6は、切断平面を定義(設定)する(S204)。この処理は、図9を参照して後記する。
次に、面取り生成部6は、切断平面と、立体形状との輪郭形状を求める(S205)。この処理は、図10を参照して後記する。
そして、面取り生成部6は、切断平面と、グループ(面)との交線(曲線)を求める(S206)。この処理は、図10を参照して後記する。
次に、面取り生成部6は、ステップS205で求めた輪郭形状に対して、面取りに属する点(面取り所属要素)を検索する(S207)。この処理は、図11〜図13を参照して後記する。
さらに、面取り生成部6は、ステップS204で設定したすべての切断平面に対して、ステップS205〜ステップS207の処理を行ったか否かを判定する(S208)。
ステップS208において、すべての切断平面に対して、ステップS205〜ステップS207の処理を行っていないと、面取り生成部6が判定した場合(S208→No)、面取り生成部6は、ステップS205へ処理を戻す。
ステップS208において、すべての切断平面に対して、ステップS205〜ステップS207の処理を行っていると、面取り生成部6が判定した場合(S208→Yes)、面取り生成部6は、面取り位置分布を求める(S209)。ステップS209の処理は、図4、図14および図15を参照して後記する。
次に、面取り生成部6は、ステップS205で求めた輪郭形状に対して、面取りに属する点(面取り所属要素)を検索する(S207)。この処理は、図11〜図13を参照して後記する。
さらに、面取り生成部6は、ステップS204で設定したすべての切断平面に対して、ステップS205〜ステップS207の処理を行ったか否かを判定する(S208)。
ステップS208において、すべての切断平面に対して、ステップS205〜ステップS207の処理を行っていないと、面取り生成部6が判定した場合(S208→No)、面取り生成部6は、ステップS205へ処理を戻す。
ステップS208において、すべての切断平面に対して、ステップS205〜ステップS207の処理を行っていると、面取り生成部6が判定した場合(S208→Yes)、面取り生成部6は、面取り位置分布を求める(S209)。ステップS209の処理は、図4、図14および図15を参照して後記する。
そして、面取り生成部6は、面取りを生成し(S210)、すべての面取りを生成したか否かを判定する(S211)。
ステップS211において、すべての面取りを生成していないと、面取り生成部6が判定した場合(S211→No)、面取り生成部6は、ステップS201へ処理を戻す。
ステップS211において、すべての面取りを生成していると、面取り生成部6が判定した場合(S211→Yes)、面取り生成部6は、面取り生成処理を終了し、図2のステップS104へ処理を進める。
ステップS211において、すべての面取りを生成していないと、面取り生成部6が判定した場合(S211→No)、面取り生成部6は、ステップS201へ処理を戻す。
ステップS211において、すべての面取りを生成していると、面取り生成部6が判定した場合(S211→Yes)、面取り生成部6は、面取り生成処理を終了し、図2のステップS104へ処理を進める。
(面取り位置分布算出処理)
次に、図1を参照しつつ、図4に沿って図3のステップS209における面取り位置分布を求める面取り位置分布算出処理の概略を説明する。
図4は、面取り位置分布算出処理の流れを示すフローチャートである。
なお、図4における各処理の詳細は、図14および図15を参照して後記する。
まず、面取り生成部6が、ステップS202で求めた交線上における分割点の位置を求め(S301)、続いて、面取り生成部6が、面取り位置を求める(S302)。ステップS302の処理は、図14を参照して後記する。
そして、面取り生成部6は、スプライン補間を行って面取り位置分布を求めた(S303)後、面取り生成部6は、面取り位置分布算出処理を終了し、図3のステップS210へ処理を進める。ステップS303の処理は、図15を参照して後記する。
次に、図1を参照しつつ、図4に沿って図3のステップS209における面取り位置分布を求める面取り位置分布算出処理の概略を説明する。
図4は、面取り位置分布算出処理の流れを示すフローチャートである。
なお、図4における各処理の詳細は、図14および図15を参照して後記する。
まず、面取り生成部6が、ステップS202で求めた交線上における分割点の位置を求め(S301)、続いて、面取り生成部6が、面取り位置を求める(S302)。ステップS302の処理は、図14を参照して後記する。
そして、面取り生成部6は、スプライン補間を行って面取り位置分布を求めた(S303)後、面取り生成部6は、面取り位置分布算出処理を終了し、図3のステップS210へ処理を進める。ステップS303の処理は、図15を参照して後記する。
次に、図1から図4を参照しつつ、図5から図18に沿って図3および図4における各処理の詳細な説明を行う。なお、図5から図18において、同様の要素に対しては、同一の符号を付し、説明を省略する。
(各処理の詳細な説明)
図5は、ステップS201における接続グループおよび種別情報指定の画面例を示す図である。
ステップS201の段階で、表示部9には、例えば、図5に示すような画面が表示される。表示画面501には、ポリゴンが表示されるエリア502と、接続グループを指定するエリア503と、面取り種類を指定するエリア504とで構成される。エリア502で表示されるデータは、ポリゴン記憶部3に記憶されているポリゴンデータD3、およびグループ記憶部5に記憶されているグループデータD4である。
図5に示すように、エリア503には、ステップS102で生成されたグループのリストが2つ表示されており、利用者はそれぞれのリスト上で面取りに接続するグループを入力部8であるマウスなどでクリックすることによって接続するグループを指定する。エリア502では、エリア503で指定されたグループに含まれるポリゴン群が、例えば、ハイライト表示される。図5の画面例では、面取りに接続するグループとしてグループbとグループcとが選択されている。
また、エリア504には、利用者が選択可能な複数の面取り種類が表示されており、利用者は選択したい面取り種類をマウスでクリックする。ここで、図5の画面例に表示されている「可変」はエッジに沿って面取り位置が変化する「可変面取り」を表わしており、「一定」は面取り位置が一定の値をとる「一定面取り」を表わしている。すなわち、「可変面取り」では、面取りの幅が場所によって変化するのに対し、「一定面取り」における面取りの幅は、場所によらず一定である。図5の例では、面取り種類として「一定面取り」が選択されている。以上の操作により、当該面取りの面取り面に接続する2つのグループと、面取り種類の情報が決定される。
なお、ハッチング部分(グループ601とグループ602の領域)は、特許文献1に記載の技術によって面のグループとして定義済みのため、平坦な構造として表示されている(特許文献1参照)。
図5は、ステップS201における接続グループおよび種別情報指定の画面例を示す図である。
ステップS201の段階で、表示部9には、例えば、図5に示すような画面が表示される。表示画面501には、ポリゴンが表示されるエリア502と、接続グループを指定するエリア503と、面取り種類を指定するエリア504とで構成される。エリア502で表示されるデータは、ポリゴン記憶部3に記憶されているポリゴンデータD3、およびグループ記憶部5に記憶されているグループデータD4である。
図5に示すように、エリア503には、ステップS102で生成されたグループのリストが2つ表示されており、利用者はそれぞれのリスト上で面取りに接続するグループを入力部8であるマウスなどでクリックすることによって接続するグループを指定する。エリア502では、エリア503で指定されたグループに含まれるポリゴン群が、例えば、ハイライト表示される。図5の画面例では、面取りに接続するグループとしてグループbとグループcとが選択されている。
また、エリア504には、利用者が選択可能な複数の面取り種類が表示されており、利用者は選択したい面取り種類をマウスでクリックする。ここで、図5の画面例に表示されている「可変」はエッジに沿って面取り位置が変化する「可変面取り」を表わしており、「一定」は面取り位置が一定の値をとる「一定面取り」を表わしている。すなわち、「可変面取り」では、面取りの幅が場所によって変化するのに対し、「一定面取り」における面取りの幅は、場所によらず一定である。図5の例では、面取り種類として「一定面取り」が選択されている。以上の操作により、当該面取りの面取り面に接続する2つのグループと、面取り種類の情報が決定される。
なお、ハッチング部分(グループ601とグループ602の領域)は、特許文献1に記載の技術によって面のグループとして定義済みのため、平坦な構造として表示されている(特許文献1参照)。
図6は、ステップS202におけるグループ間の交線を求める処理、およびステップS203における面取り開始点と面取り終了点を求める処理を示す図である。
ここで、図6のグループ601は、図5のグループbに対応し、図6のグループ602は、図5のグループcに対応する。
ステップS202において、面取り生成部6は、グループ601およびグループ602において定義されている幾何情報を用いて、幾何情報が示す面(以下、グループ601(第1の面)およびグループ602(第2の面)と記載する)を延長した際に生じる交線603を求める。例えば、グループ601およびグループ602が平面であれば、面取り生成部6は、グループ601およびグループ602に対応する特徴量(基準点、法線ベクトルなど)をグループ記憶部5から取得し、この特徴量を使用することによって、交線603を求める。すなわち、面取り生成部6は、第1のデータであるポリゴンデータD3に基づく表面形状における、隣接した第1の面であるグループ601および第2の面であるグループ602の境界に対応した所定長の交線603を求める。
ここで、図6のグループ601は、図5のグループbに対応し、図6のグループ602は、図5のグループcに対応する。
ステップS202において、面取り生成部6は、グループ601およびグループ602において定義されている幾何情報を用いて、幾何情報が示す面(以下、グループ601(第1の面)およびグループ602(第2の面)と記載する)を延長した際に生じる交線603を求める。例えば、グループ601およびグループ602が平面であれば、面取り生成部6は、グループ601およびグループ602に対応する特徴量(基準点、法線ベクトルなど)をグループ記憶部5から取得し、この特徴量を使用することによって、交線603を求める。すなわち、面取り生成部6は、第1のデータであるポリゴンデータD3に基づく表面形状における、隣接した第1の面であるグループ601および第2の面であるグループ602の境界に対応した所定長の交線603を求める。
ステップS203では、図6に示すように、交線603上で面取り開始点604と面取り終了点605とが、入力部8を介して指定されるか、面取り生成部6が算出することにより、交線603のうち面取り開始点604と面取り終了点605とを端点とする部分区間(面取り区間)を定める。なお、ステップS203は、省略することも可能である。
面取り開始点604および面取り終了点605を指定する方法は、図7を参照して説明する第1の面取り区間指定方法と、図8を参照して説明する第2の面取り区間指定方法とがある。
面取り開始点604および面取り終了点605を指定する方法は、図7を参照して説明する第1の面取り区間指定方法と、図8を参照して説明する第2の面取り区間指定方法とがある。
図7は、第1の面取り区間指定方法の一例を示す図である。
第1の面取り区間指定方法は、面取り開始点604と面取り終了点605(図6参照)とをマウスなどの入力部8を介して指定する方法である。
具体的には、図6に示すように、表示部9に交線603が表示されており、利用者は交線603上の任意の場所にマウスカーソル701を移動させてクリックすることにより、マウスクリック位置の点を面取り開始点604として指定する。面取り終了点605に関しても、同様の方法で指定する。以上の操作により、面取り開始点604と面取り終了点605とが決定される。この方法では、面取り開始点604の座標値と、面取り終了点605の座標値とは、入力部8から面取り生成部6へ入力される。
第1の面取り区間指定方法は、面取り開始点604と面取り終了点605(図6参照)とをマウスなどの入力部8を介して指定する方法である。
具体的には、図6に示すように、表示部9に交線603が表示されており、利用者は交線603上の任意の場所にマウスカーソル701を移動させてクリックすることにより、マウスクリック位置の点を面取り開始点604として指定する。面取り終了点605に関しても、同様の方法で指定する。以上の操作により、面取り開始点604と面取り終了点605とが決定される。この方法では、面取り開始点604の座標値と、面取り終了点605の座標値とは、入力部8から面取り生成部6へ入力される。
図8は、第2の面取り区間指定方法の一例を示す図である。
第2の面取り区間指定方法は、グループに属するポリゴンデータD3を利用して、面取り開始点604と面取り終了点605とを面取り生成部6が探索する方法である。なお、図8におけるグループ601,602は、ポリゴンデータD3で構成されていることを模式的に示しており、符号801,802は、グループ601,602におけるポリゴンの頂点を示している。
具体的には、面取り生成部6は、図8に示すように、グループ601とグループ602に含まれるポリゴンの頂点801,802を交線603上に投影(射影)した点803を求める。面取り生成部6は、当該投影した点803の中で、交線603上で最も端に位置する2つの点を検索し、それらの点を面取り開始点604と面取り終了点605とする。
第2の面取り区間指定方法は、グループに属するポリゴンデータD3を利用して、面取り開始点604と面取り終了点605とを面取り生成部6が探索する方法である。なお、図8におけるグループ601,602は、ポリゴンデータD3で構成されていることを模式的に示しており、符号801,802は、グループ601,602におけるポリゴンの頂点を示している。
具体的には、面取り生成部6は、図8に示すように、グループ601とグループ602に含まれるポリゴンの頂点801,802を交線603上に投影(射影)した点803を求める。面取り生成部6は、当該投影した点803の中で、交線603上で最も端に位置する2つの点を検索し、それらの点を面取り開始点604と面取り終了点605とする。
図9は、ステップS204における切断平面を定義する処理を示す図である。
ステップS204(切断平面設定過程)では、面取り生成部6が、図9に示すように、面取り区間内の交線603上の分割点901を通り、分割点901における交線603の接ベクトルに垂直な平面である切断平面902を1つ以上設定する。この処理により、面取り生成部6は、求めた交線603上にて、当該交線603と所定の角度となるように、かつグループ601およびグループ602を切断する切断平面902を複数定義する。
すなわち、面取り生成部6は、グループ601,602のうち、少なくとも1つのグループが有する幾何情報が示す面に対し、所定の角度で切断平面を複数設定する。分割点901の指定方法としては、利用者が入力部8を介して面取り区間の分割数を指定し、面取り生成部6が、この指定した分割数で面取り区間を等間隔に分割することにより定める方法が一般的である。この方法で分割点901を指定した場合、面取り開始点604と面取り終了点605点が必ず分割点901に含まれる。このため、分割点901の数は全体で(指定された分割数+1)個になる。図9の例では、面取り生成部6は、面取り区間を3つに等分割して4個の分割点901を指定し、その分割点901における切断平面902を設定している。切断平面902の大きさは、予め設定されているものとする。
ステップS204(切断平面設定過程)では、面取り生成部6が、図9に示すように、面取り区間内の交線603上の分割点901を通り、分割点901における交線603の接ベクトルに垂直な平面である切断平面902を1つ以上設定する。この処理により、面取り生成部6は、求めた交線603上にて、当該交線603と所定の角度となるように、かつグループ601およびグループ602を切断する切断平面902を複数定義する。
すなわち、面取り生成部6は、グループ601,602のうち、少なくとも1つのグループが有する幾何情報が示す面に対し、所定の角度で切断平面を複数設定する。分割点901の指定方法としては、利用者が入力部8を介して面取り区間の分割数を指定し、面取り生成部6が、この指定した分割数で面取り区間を等間隔に分割することにより定める方法が一般的である。この方法で分割点901を指定した場合、面取り開始点604と面取り終了点605点が必ず分割点901に含まれる。このため、分割点901の数は全体で(指定された分割数+1)個になる。図9の例では、面取り生成部6は、面取り区間を3つに等分割して4個の分割点901を指定し、その分割点901における切断平面902を設定している。切断平面902の大きさは、予め設定されているものとする。
なお、本実施形態では、グループ601およびグループ602の交線603を求め、この交線603の接ベクトルに垂直な切断平面902を設定したが、これに限らず、例えば、グループ601およびグループ602のどちらか一方の幾何情報に含まれている法線に対し、所定の角度で切断平面902を設定してもよい。
図10は、ステップS205の輪郭形状を求める処理、およびステップS206の切断平面と、グループとの交線を求める処理を示す図である。
ステップS205では、図9に示すように、面取り生成部6が、切断平面902とポリゴンデータD3によって記述される表面形状との間で交線計算を行い、ポリゴンデータD3の表面形状に対応した輪郭形状1001を求める。ポリゴンデータD3を構成する微小3角形面と切断平面902の交線形状は常に直線であるので、輪郭形状1001はこれら直線の集合、すなわち折れ線として表される。
ステップS205では、図9に示すように、面取り生成部6が、切断平面902とポリゴンデータD3によって記述される表面形状との間で交線計算を行い、ポリゴンデータD3の表面形状に対応した輪郭形状1001を求める。ポリゴンデータD3を構成する微小3角形面と切断平面902の交線形状は常に直線であるので、輪郭形状1001はこれら直線の集合、すなわち折れ線として表される。
ステップS206では、グループ601およびグループ602のグループデータD4に含まれている幾何情報(特徴量)を用いることによって、面取り生成部6が、グループ601,602に含まれる幾何情報が示す面と、切断平面902とが交わった結果生じる交線である曲線1002,1003を求める。すなわち、面取り生成部6は、求めた輪郭形状1102を代表する第1の代表曲線である曲線1002および輪郭形状1103を代表する第2の代表曲線である曲線1003をそれぞれ設定する。
図10の例では、面取り生成部6が、グループ601と切断平面902間の交線である曲線1002(第1の代表曲線)、およびグループ601と切断平面902間の交線である曲線1003(第2の代表曲線)を求める。曲線1002と、曲線1003とを延長した際に生じる交点が、切断面内第1交点である分割点901となる。
図10の例では、面取り生成部6が、グループ601と切断平面902間の交線である曲線1002(第1の代表曲線)、およびグループ601と切断平面902間の交線である曲線1003(第2の代表曲線)を求める。曲線1002と、曲線1003とを延長した際に生じる交点が、切断面内第1交点である分割点901となる。
次に、図11〜図13を参照して、ステップS207の処理について説明する。
ステップS207では、面取り生成部6が、輪郭形状1001に対して面取りに属する点の集合である面取り所属点1101を検出する。ここで、面取り所属点1101とは、折れ線形状として定義される輪郭形状1001を構成するポリゴンの頂点(以下、頂点と記述する)のうち、面取りに属する頂点のことである。
面取り所属点1101を求める方法は、図11を参照して説明する第1の面取り所属点群検索方法と、図12および図13を参照して説明する第2の面取り所属点群検索方法とがある。
ステップS207では、面取り生成部6が、輪郭形状1001に対して面取りに属する点の集合である面取り所属点1101を検出する。ここで、面取り所属点1101とは、折れ線形状として定義される輪郭形状1001を構成するポリゴンの頂点(以下、頂点と記述する)のうち、面取りに属する頂点のことである。
面取り所属点1101を求める方法は、図11を参照して説明する第1の面取り所属点群検索方法と、図12および図13を参照して説明する第2の面取り所属点群検索方法とがある。
図11は、第1の面取り所属点群検索方法の処理を示す図である。
まず、面取り生成部6が、輪郭形状1001の中で、グループ601(図10参照),602(図10参照)に含まる領域を検索する。すなわち、面取り生成部6は、グループ601に対応した第1の輪郭形状である輪郭形状1102およびグループ602に対応した第2の輪郭形状である輪郭形状1103をそれぞれ求める。これは、グループデータD4に該当するグループに属するポリゴンの集合が含まれているので、面取り生成部6が、このポリゴンの集合を取得することによって検索できる。
図11では、グループ601,602に属する輪郭形状1102,1103が太線で示されている。なお、輪郭形状1102は、第1の輪郭形状であり、輪郭形状1103は、第2の輪郭形状である。
まず、面取り生成部6が、輪郭形状1001の中で、グループ601(図10参照),602(図10参照)に含まる領域を検索する。すなわち、面取り生成部6は、グループ601に対応した第1の輪郭形状である輪郭形状1102およびグループ602に対応した第2の輪郭形状である輪郭形状1103をそれぞれ求める。これは、グループデータD4に該当するグループに属するポリゴンの集合が含まれているので、面取り生成部6が、このポリゴンの集合を取得することによって検索できる。
図11では、グループ601,602に属する輪郭形状1102,1103が太線で示されている。なお、輪郭形状1102は、第1の輪郭形状であり、輪郭形状1103は、第2の輪郭形状である。
次に、面取り生成部6が、輪郭形状1001の中で、面取りに属する領域を検索する。面取りに属する領域はグループ601とグループ602とに接続しているので、面取りに属する領域の輪郭形状1104は、輪郭形状1102と輪郭形状1103に接続する関係にある。すなわち、面取り生成部6が、グループデータD4に含まれるポリゴンの集合を用いて、輪郭形状1001のうち、輪郭形状1102および輪郭形状1103に含まれないような領域を検索することで、輪郭形状1104を検索することができる。図11においては、このような方法で検索した面取りに所属する領域の輪郭形状1104が細線で示されている。
最後に、面取り生成部6が、輪郭形状1104に含まれるポリゴンの頂点を検索することにより、面取り所属点1101が求まる。
最後に、面取り生成部6が、輪郭形状1104に含まれるポリゴンの頂点を検索することにより、面取り所属点1101が求まる。
図12および図13は、第2の面取り所属点群検索方法の処理を示す図である。
まず、面取り生成部6は、輪郭形状1001の中で、グループ601(図10参照(、およびグループ602(図10参照)に含まれる輪郭形状1201,1202を検索する。これは、第1の面取り所属点群検索方法と同様な方法で行う。
まず、面取り生成部6は、輪郭形状1001の中で、グループ601(図10参照(、およびグループ602(図10参照)に含まれる輪郭形状1201,1202を検索する。これは、第1の面取り所属点群検索方法と同様な方法で行う。
次に、面取り生成部6は、図13に示すように、輪郭形状1001のうち、グループ601(図10参照)に含まれる輪郭形状1201に対して、輪郭形状1201に含まれる頂点1302を曲線1002上に射影した点1301を求める。続いて、面取り生成部6は、射影した点1301の中で、曲線1002と曲線1003の交点(分割点901)に最も近い点1303を検索し、点1303の投影元の頂点1302をグループ601の境界点1304とする。面取り生成部6は、グループ602(図10参照)に属する輪郭形状1202(図12参照)に対しても同様な方法でグループ602の境界点1304を求める。
次に、面取り生成部6は、図12に示すように境界点1304を通り、曲線1002、1003に垂直な直線である第2の直線1204、1205を算出する。
そして、面取り生成部6は、輪郭形状1001に含まれる頂点のうち、曲線1002,1003と第2の直線1204,1205によって囲まれる領域に含まれる頂点を選択し、この頂点を面取り所属点1101とする。
なお、輪郭形状1001のうち、輪郭形状1201,1202以外の部分が面取りに所属する輪郭形状1203である。
そして、面取り生成部6は、輪郭形状1001に含まれる頂点のうち、曲線1002,1003と第2の直線1204,1205によって囲まれる領域に含まれる頂点を選択し、この頂点を面取り所属点1101とする。
なお、輪郭形状1001のうち、輪郭形状1201,1202以外の部分が面取りに所属する輪郭形状1203である。
第1の所属点群検索方法は、処理が少ないという利点があるが、例えば面取りの部分に穴が存在するなど、面取りに不連続な部分がある場合には適用できない。
これに対し、第2の所属点群検索方法は、面取りに不連続な部分があっても適用することが可能となる。
これに対し、第2の所属点群検索方法は、面取りに不連続な部分があっても適用することが可能となる。
次に、図14および図15を参照して、ステップS209のサブステップであるステップS301〜ステップS303の処理の説明を行う。
次に、図9に戻って、ステップS301の分割点901の位置を求める処理の説明を行う。
ステップS301では、面取り生成部6が、交線603上の各分割点901の位置ti(図示せず)を求める。これは、面取り生成部6が、交線603に対し、面取り開始点604を原点とする座標tを設定することにより、交線603上の各分割点901の位置を算出することができる。
なお、ここではiは、0以上の整数であり、各分割点901の番号を意味する。すなわち、図9の例では、面取り開始点604ではi=0(座標t0)とし、その隣の分割点901では、i=1(座標t1)とする。そして、t1の分割点901の隣の分割点901では、i=2(座標t2)とし、面取り終了点605では、i=3(座標t3)とする。
ステップS301では、面取り生成部6が、交線603上の各分割点901の位置ti(図示せず)を求める。これは、面取り生成部6が、交線603に対し、面取り開始点604を原点とする座標tを設定することにより、交線603上の各分割点901の位置を算出することができる。
なお、ここではiは、0以上の整数であり、各分割点901の番号を意味する。すなわち、図9の例では、面取り開始点604ではi=0(座標t0)とし、その隣の分割点901では、i=1(座標t1)とする。そして、t1の分割点901の隣の分割点901では、i=2(座標t2)とし、面取り終了点605では、i=3(座標t3)とする。
図14は、ステップS302における面取り位置を求める処理を示す図である。
ここで用いるiは、ステップS301の説明において用いたiと同様の意味を有する。
面取り生成部6は、図14に示すように、切断平面902において、複数の面取り所属点1101に対し、最小二乗法を適用することによって第1の直線1401を求める。すなわち、面取り生成部6は、それぞれの面取り所属点1101の近傍を通る第1の直線1401を算出する。次に、面取り生成部6は、曲線1002と、第1の直線1401との交点である切断面内第2交点1402を求める。そして、面取り生成部6は、分割点901と、切断面内第2交点1402との距離d1iを求める。同様に、面取り生成部6は、曲線1003と、第1の直線1401との交点である切断面内第2交点1403を求め、分割点901と、切断面内交点1403との距離d2iを求める。
ここで用いるiは、ステップS301の説明において用いたiと同様の意味を有する。
面取り生成部6は、図14に示すように、切断平面902において、複数の面取り所属点1101に対し、最小二乗法を適用することによって第1の直線1401を求める。すなわち、面取り生成部6は、それぞれの面取り所属点1101の近傍を通る第1の直線1401を算出する。次に、面取り生成部6は、曲線1002と、第1の直線1401との交点である切断面内第2交点1402を求める。そして、面取り生成部6は、分割点901と、切断面内第2交点1402との距離d1iを求める。同様に、面取り生成部6は、曲線1003と、第1の直線1401との交点である切断面内第2交点1403を求め、分割点901と、切断面内交点1403との距離d2iを求める。
距離d1i,d2iの具体的な求め方は、面取り生成部6が、第1の直線1401の法線ベクトルNi(図示せず)、第1の直線1401と曲線1002との交点座標Q1i(図示せず)、各面取り所属点1101の座標Pijを求め、式(1)で定義される面取り所属点1101と第1の直線1401間の距離の2乗和fiを最小化させることにより求められる。ここで、jは、切断平面ごとに、各面取り所属点1101に対して一意に付される番号である。
求めた距離d1i,d2iが輪郭形状1001(図10参照)における面取り位置となる。この面取り位置は、グループデータD4の情報としてグループ記憶部5に記憶される。そして、この面取り位置は、B−reps生成部7によって、B−repsデータの面取りの特徴量として、B−repsデータに変換される。なお、グループ601,602は、B−repsデータD5における面取りの幾何情報のうち、接続面として、B−reps生成部7によってB−repsデータに変換される。また、式(1)において、NiとQ1iは、d1i、d2iの関数として表わすことが可能である。
図15は、ステップS303における面取り位置分布を求める処理を示す図である。
図15において、横軸は、ステップS301で求めた座標tを示し、縦軸は、ステップS302で求めたd1を示す。すなわち、点1501は、図14の曲線1002と、第1の直線1401との交点である切断面内第2交点1402を示し、この点1501を切断平面902ごとにプロットしたものである。従って、各点1501のt座標は、点1501が属する切断平面902における分割点901(図9参照)の位置tiを示す。そして、各点1501のd1座標は、前記したように各切断平面902において、ステップS302で求めたd1iを示す。なお、面取り生成部6は、同様の処理を、図14の曲線1003と、第1の直線1401との交点である切断面内第2交点1403についても行う。
そして、面取り生成部6は、各点1501をスプライン補間によって、滑らかに接続することによって、切断平面902間の面取り位置の分布である面取り位置分布を算出すると同時に、面取り面のエッジを滑らかにする。
図15において、横軸は、ステップS301で求めた座標tを示し、縦軸は、ステップS302で求めたd1を示す。すなわち、点1501は、図14の曲線1002と、第1の直線1401との交点である切断面内第2交点1402を示し、この点1501を切断平面902ごとにプロットしたものである。従って、各点1501のt座標は、点1501が属する切断平面902における分割点901(図9参照)の位置tiを示す。そして、各点1501のd1座標は、前記したように各切断平面902において、ステップS302で求めたd1iを示す。なお、面取り生成部6は、同様の処理を、図14の曲線1003と、第1の直線1401との交点である切断面内第2交点1403についても行う。
そして、面取り生成部6は、各点1501をスプライン補間によって、滑らかに接続することによって、切断平面902間の面取り位置の分布である面取り位置分布を算出すると同時に、面取り面のエッジを滑らかにする。
なお、面取りの種類が「一定面取り」である場合は、面取り生成部6が、交線603(図6参照)に沿った面取り位置分布が一定となるように拘束をかける。これは、ステップS302において、距離d1i、d2iに対して拘束をかけて、第1の直線1401(図14参照)を求めることにより実現可能である。具体的には、d1i=d1、d2i=d2として定数化するという拘束をかけて、以下の式(2)で定義されるFを最小化させるd1、d2を求めることにより実現される。
図16は、本実施形態によって作成された面取りの例を示す図である。
図16に示すように、本実施形態によって、グループ601に属する面とグループ602に属する面とを接続する面取り面1601を生成することが可能となる。なお、図16において、面取り面1601上の破線は、切断平面902が生成された箇所を示す。
図16に示すように、本実施形態によって、グループ601に属する面とグループ602に属する面とを接続する面取り面1601を生成することが可能となる。なお、図16において、面取り面1601上の破線は、切断平面902が生成された箇所を示す。
(効果)
次に、図17を参照して、本実施形態の効果を説明する。
次に、図17を参照して、本実施形態の効果を説明する。
図17は、面取りの代表的な例を示す図である。
図17に示すように、交線603に対して、交線603に垂直な各平面(切断平面902)上で面取り位置を指定すると、面取り面1701が設定されることにより、面取りが設定される。面取りの幾何情報の特徴量の1つである面取り位置は、切断平面902ごとにおける交線603からの距離d1i,d2iで定義される。面取りの特徴量の他の1つである接続面は、グループ601,602が示す面となる。
図17に示すように、交線603に対して、交線603に垂直な各平面(切断平面902)上で面取り位置を指定すると、面取り面1701が設定されることにより、面取りが設定される。面取りの幾何情報の特徴量の1つである面取り位置は、切断平面902ごとにおける交線603からの距離d1i,d2iで定義される。面取りの特徴量の他の1つである接続面は、グループ601,602が示す面となる。
なお、本実施形態では、面取りを行う2つのグループに接続する面取り面を生成する面取りについて説明したが、これに限らず、3つ以上のグループに対して、本実施形態を適用してもよい。この場合、それぞれのグループに接続する面取り面を生成することによって面取りを行う、例えば、3つのグループを用いた場合は、2つの面取り面が生成され、4つのグループを用いた場合は、3つの面取り面が生成される。
また、3つ以上の面に隣接する(例えば、三角錐の頂点を面取りする)場合などにおいても、同様の処理によって面取りを生成することができる。
また、3つ以上の面に隣接する(例えば、三角錐の頂点を面取りする)場合などにおいても、同様の処理によって面取りを生成することができる。
本実施形態によれば、利用者は面取りに接続する2つのグループを指定する処理と、上記2つのグループの交線上で面取りの開始点と終了点を指定する処理を行うだけで簡単に面取りを生成することができる。また、ポリゴンデータをフィッティングさせて面取り位置分布を求めているので、高精度に面取りを生成することができる。さらに、変換後のB−repsデータは、データサイズが小さく、面取りに関する幾何情報を含んでいるので、3次元CAD上における修正が容易であり、利便性の高いデータである。
以上のように、本実施形態によれば、面取りを含むビットマップデータや点群データから生成されたポリゴンデータからB−repsデータへの変換について、面取りが設定されている領域に対して、簡単な操作で、高精度に面取りを生成し、利便性の高いB−repsデータに変換することができる。
本実施形態によって、生成された面取りのB−repsデータは、設計や解析の分野などにおいて有用なデータとして広く利用することができる。
以上のように、本実施形態によれば、面取りを含むビットマップデータや点群データから生成されたポリゴンデータからB−repsデータへの変換について、面取りが設定されている領域に対して、簡単な操作で、高精度に面取りを生成し、利便性の高いB−repsデータに変換することができる。
本実施形態によって、生成された面取りのB−repsデータは、設計や解析の分野などにおいて有用なデータとして広く利用することができる。
1 立体形状データ変換装置
2 ポリゴン変換部
2 頂点
3 ポリゴン記憶部
4 グループ生成部
5 グループ記憶部
6 面取り生成部
7 B−reps生成部
8 入力部
9 表示部
10 画像構成部
D1 ビットマップデータ
D2 点群データ
D3 ポリゴンデータ
D4 グループデータ
D5 B−repsデータ
32 ポリゴン記憶部
501 表示画面
601 グループ
602 グループ
603 交線
604 面取り開始点
605 面取り終了点
901 分割点(切断面内第1交点)
902 切断平面
1001,1102,1103,1104,1201,1202,1203 輪郭形状
1002 曲線(第1の代表曲線)
1003 曲線(第2の代表曲線)
1101 面取り所属点
1204,1205 第2の直線
1303,1304 境界点
1401 第1の直線
1402,1403 切断面内第2交点
2 ポリゴン変換部
2 頂点
3 ポリゴン記憶部
4 グループ生成部
5 グループ記憶部
6 面取り生成部
7 B−reps生成部
8 入力部
9 表示部
10 画像構成部
D1 ビットマップデータ
D2 点群データ
D3 ポリゴンデータ
D4 グループデータ
D5 B−repsデータ
32 ポリゴン記憶部
501 表示画面
601 グループ
602 グループ
603 交線
604 面取り開始点
605 面取り終了点
901 分割点(切断面内第1交点)
902 切断平面
1001,1102,1103,1104,1201,1202,1203 輪郭形状
1002 曲線(第1の代表曲線)
1003 曲線(第2の代表曲線)
1101 面取り所属点
1204,1205 第2の直線
1303,1304 境界点
1401 第1の直線
1402,1403 切断面内第2交点
Claims (14)
- 物体の表面形状を記述しており、幾何情報を含まない第1のデータを、物体の表面形状を記述しており、幾何情報を含む第2のデータへ変換し、前記第1のデータによる面取りの情報を、前記第2のデータによる面取りの情報へ変換する形状データ変換装置における形状データ変換方法であって、
形状データ変換装置が、
前記第1のデータによる面取りの情報から、面取り位置を算出し、前記面取り位置を幾何情報とした前記第2のデータにおける面取りの情報を生成することを特徴とする形状データ変換方法。 - 前記面取り位置の算出は、
前記形状データ変換装置が、
前記第1のデータに基づく表面形状における、隣接した第1の面および第2の面の境界に対応した所定長の交線を求め、
前記求めた交線上にて、当該交線と所定の角度となるように、かつ前記第1の面および前記第2の面を切断する切断平面を複数定義し、
前記定義した複数の切断平面のそれぞれについて、
前記第1の面に対応した第1の輪郭形状および前記第2の面に対応した第2の輪郭形状をそれぞれ求め、
前記求めた第1の輪郭形状を代表する第1の代表曲線および前記第2の輪郭形状を代表する第2の代表曲線をそれぞれ設定し、
前記第1の輪郭形状および前記第2の輪郭形状と、前記第1の代表曲線および前記第2の代表曲線とから、面取りに属する要素を割り出すことにより実行されること、
を特徴とする請求項1に記載の形状データ変換方法。 - 前記面取り位置の算出は、
前記形状データ変換装置が、
前記第1のデータの表面形状を構成する要素のうち、同一の面に所属する要素の情報と、当該面に関する幾何情報とを有するグループを複数検出し、
前記グループのうち、少なくとも1つのグループが有する幾何情報が示す面に対し、所定の角度で切断平面を複数設定し、
前記設定した切断平面ごとに、
当該切断平面における、前記表面形状に対応した輪郭形状を算出し、
それぞれの前記グループが有する幾何情報を基に、前記幾何情報が示す面と、前記切断平面とが交わった結果生じる交線である曲線を、前記グループごとに算出し、
延長したそれぞれの前記曲線同士が交わる点である切断面内第1交点を算出し、
前記輪郭形状を構成する要素のうち、前記面取りに所属する要素である面取り所属要素を、複数検出し、
それぞれの前記面取り所属要素の近傍を通る第1の直線を算出し、
前記算出した曲線と、前記算出した第1の直線との交点である切断面内第2交点を、前記曲線ごとに算出し、
前記算出した切断面内第1交点と、前記算出した切断面内第2交点との距離を、前記切断面内第2交点ごとに算出し、
それぞれの前記距離を面取り位置とすることを特徴とする請求項1に記載の形状データ変換方法。 - 前記形状データ変換装置が、
前記輪郭形状を構成する要素のうち、それぞれの前記グループに属する要素を除いた要素を前記面取り所属要素とすることを特徴とする請求項3に記載の形状データ変換方法。
- 前記形状データ変換装置が、
前記輪郭形状を構成する要素のうち、前記グループに属する要素を、前記曲線へ射影した要素を算出し、
前記射影した要素のうち、前記切断面内第1交点に最も近い要素を、前記グループごとに算出し、
前記切断面内第1交点に最も近い要素を通り、前記各曲線に垂直な第2の直線を複数算出し、
それぞれの前記曲線と、当該算出したそれぞれの前記第2の直線とで囲まれた要素を前記面取り所属要素とすることを特徴とする請求項3に記載の形状データ変換方法。 - 検出されたそれぞれの前記グループが有する幾何情報を基に、前記幾何情報が示すそれぞれの面を延長した際に生じる交線を算出し、
前記交線の接ベクトルに対して垂直となる切断平面を、複数設定することを特徴とする請求項3に記載の形状データ変換方法。 - 前記形状データ変換装置が、
前記第1のデータを構成する要素のうち、前記グループに属する要素を、前記算出した交線へ射影した要素を算出し、
前記射影した要素のうち、最も外側に位置する要素を、それぞれ面取り開始要素および面取り終了要素とし、
前記面取り開始要素および前記面取り終了要素間で、前記切断平面を複数設定することを特徴とする請求項6に記載の形状データ変換方法。 - 前記形状データ変換装置が、
前記設定した切断平面ごとにおける、前記切断面内第2交点を、互いにスプライン補間して接続することを特徴とする請求項3に記載の形状データ変換方法。 - 前記幾何情報とは、幾何情報および位相情報であることを特徴とする請求項1に記載の形状データ変換方法。
- 前記形状データ変換装置が、
前記第2のデータから、B−repsデータを生成することを特徴とする請求項1に記載の形状データ変換方法。 - 前記第1のデータとは、ポリゴンデータであることを特徴とする請求項1に記載の形状データ変換方法。
- 前記形状データ変換装置が、
計測装置から入力されたビットマップデータまたは点群データを前記第1のデータへ変換することを特徴とする請求項1に記載の形状データ変換方法。 - 請求項1から請求項12のいずれか一項に記載の形状データ変換方法を、コンピュータに実行させることを特徴とする形状データ変換プログラム。
- 物体の表面形状を記述しており、幾何情報を含まない第1のデータを、物体の表面形状を記述しており、幾何情報を含む第2のデータへ変換し、前記第1のデータによる面取りの情報を、前記第2のデータによる面取りの情報へ変換する形状データ変換装置であって、
前記第1のデータを記憶する記憶部と、
前記記憶部から、前記第1のデータを取得し、
前記第1のデータによる面取りの情報から、面取り位置を算出し、前記面取り位置を幾何情報とする第2のデータにおける面取りの情報を生成する面取り生成部を有することを特徴とする形状データ変換装置。
Priority Applications (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP2007016688A JP2008186074A (ja) | 2007-01-26 | 2007-01-26 | 形状データ変換方法、形状データ変換プログラムおよび形状データ変換装置 |
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP2007016688A JP2008186074A (ja) | 2007-01-26 | 2007-01-26 | 形状データ変換方法、形状データ変換プログラムおよび形状データ変換装置 |
Publications (1)
| Publication Number | Publication Date |
|---|---|
| JP2008186074A true JP2008186074A (ja) | 2008-08-14 |
Family
ID=39729109
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| JP2007016688A Pending JP2008186074A (ja) | 2007-01-26 | 2007-01-26 | 形状データ変換方法、形状データ変換プログラムおよび形状データ変換装置 |
Country Status (1)
| Country | Link |
|---|---|
| JP (1) | JP2008186074A (ja) |
Cited By (1)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US12312671B2 (en) | 2020-09-17 | 2025-05-27 | United Semiconductor Japan Co., Ltd. | Mask structure for deposition device, deposition device, and operation method thereof |
-
2007
- 2007-01-26 JP JP2007016688A patent/JP2008186074A/ja active Pending
Cited By (1)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US12312671B2 (en) | 2020-09-17 | 2025-05-27 | United Semiconductor Japan Co., Ltd. | Mask structure for deposition device, deposition device, and operation method thereof |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| CN100570639C (zh) | 使用网格数据作为特征的逆向建模方法 | |
| JP4934789B2 (ja) | 補間処理方法および補間処理装置 | |
| JP6468757B2 (ja) | 三次元モデル生成方法、三次元モデル生成システム及び三次元モデル生成プログラム | |
| JP4615951B2 (ja) | 形状モデル作成方法、および構造最適化システム | |
| JP7187234B2 (ja) | 三次元形状作成装置、三次元形状作成方法および三次元形状作成プログラム | |
| JP2008305372A (ja) | 3次元スキャンデータを用いてロフトサーフィスを計算するためのシステム及び方法 | |
| WO2005066852A1 (ja) | 三次元cadデータの近似および表示方法、その方法を実行するシステム | |
| EP1729233A2 (en) | CAD method, CAD system and program storage medium storing CAD program thereof | |
| JP2009122999A (ja) | 三次元形状最適化装置および三次元形状最適化方法 | |
| US8587586B2 (en) | Electronic device and method for meshing curved surface | |
| WO2015182654A1 (ja) | 干渉チェックシステム | |
| JP2010061259A (ja) | 3次元立体形状データ変換装置および変換方法 | |
| JP3786410B2 (ja) | フィレット作成方法、及び3次元cadプログラム | |
| JP2008186074A (ja) | 形状データ変換方法、形状データ変換プログラムおよび形状データ変換装置 | |
| JP2003323461A (ja) | Cadデータ作成装置および情報加工方法 | |
| JP4620565B2 (ja) | 解析メッシュ生成装置 | |
| JP4597766B2 (ja) | 解析用メッシュ生成システム | |
| JP7645484B2 (ja) | 情報処理方法及び情報処理装置 | |
| JP4707581B2 (ja) | 表面形状データ変換方法および表面形状データ変換装置 | |
| JP4771807B2 (ja) | コンピュータ支援設計装置、そのプログラム及び方法 | |
| McLaurin et al. | Automated edge grid generation based on arc-length optimization | |
| JP6727932B2 (ja) | 点群面張りによる曲面生成装置および曲面生成用プログラム | |
| JP2002328958A (ja) | メッシュ生成方法、プログラム、記録媒体およびメッシュ生成システム | |
| JP4912756B2 (ja) | ポリゴンデータ分割方法およびポリゴンデータ分割装置 | |
| JP3786412B2 (ja) | フィレット作成方法、及び3次元cadプログラム |