以下、本発明の実施形態について添付図面を参照しながら説明する。
本発明の実施形態に係る自動フィレットの作成では、CAD装置で作成された三次元形状モデルのデータからフィレットを作成する稜線を抽出し、稜線にユーザによって設定されたフィレット半径のフィレットを作成する際に、稜線についてそれぞれ縮退領域、コーナー領域、フィレット干渉領域及びこれら領域以外の領域である基本領域を算出し、稜線全体について縮退領域、コーナー領域、フィレット干渉領域及び基本領域に応じて自動的にフィレットを作成する。
図1は、本発明の第1実施形態に係る自動フィレットの作成によってフィレットを作成する三次元形状モデルを示す図である。本発明の第1実施形態に係る自動フィレットの作成では、図1に示すような三次元形状モデル1の稜線全体について自動的にフィレットを作成する。三次元形状モデルとしては、例えばプレス工具などの三次元形状モデルを用いることができる。
自動フィレットの作成では、三次元形状モデル1のデータから有限要素分割したメッシュデータを作成し、また、三次元形状モデル1のデータから予め設定された稜線抽出条件に基づいてフィレットが作成される稜線を抽出する。
図2は、稜線の抽出を説明するための説明図である。図2(a)は、図1の要部を拡大して示し、図2(b)は、図2(a)におけるY2B−Y2B線に沿った三次元形状モデルの断面を示している。図2(a)に示すように、三次元形状モデル1は、面F1、面F2、面F3、面F4などの複数の面によって構成されている。なお、面には平面状の面のほか曲面状の面も含まれる。
また、面F1は、境界線B1、境界線B2、境界線B3、境界線B4によって構成され、面F2は、境界線B1、境界線B5、境界線B6、境界線B7によって構成され、三次元形状モデル1を構成する面は、複数の境界線によって構成されている。なお、境界線には直線状の境界線のほか曲線状の境界線も含まれる。
稜線を抽出する際には、三次元形状モデル1を構成する隣接する2つの面の境界線において該2つの面の法線間角度が、稜線抽出条件として設定された所定の折れ判定角度以上である境界線を抽出する。図2(b)に示すように、隣接する面F1と面F2の境界線B1において面F1の法線NF1と面F2の法線NF2の法線間角度θB1が5度などの折れ判定角度θS1以上である場合には境界線B1を抽出する。
一方、隣接する面F1と面F3の境界線B3における面F1の法線NF1と面F3の法線NF3の法線間角度θB3が折れ判定角度θS1未満である場合には境界線B3を抽出しない。境界線は、境界線上の少なくとも1つの構成点における法線間角度が折れ判定角度θS1以上である場合に抽出する。なお、図2では、隣接する2つの面F1、F3の境界線において2つの面F1、F3の法線間角度が折れ判定角度未満である境界線B3を二点鎖線で示している。
次に、抽出した境界線を稜線抽出条件として設定された境界線グループ化定義に基づいてグループ化し、グループ化された境界線を稜線として抽出する。境界線グループ化定義として、1つの境界線が他の境界線と接続していない場合は1つのグループとすることと、2つの境界線がC1連続(接線連続)である場合は1つのグループとすることと、2つの境界線がC0連続(位置連続)である場合は別のグループとすることと、3つ以上の境界線が接続する場合はそれぞれ別々のグループとすることとが設定されている。
本実施形態では、2つの境界線の端点が一致すると共に該端点で2つの境界線の接線のなす角度が折れ判定角度θS1未満である場合に2つの境界線がC1連続であるとし、2つの境界線の端点が一致すると共に該端点で2つの境界線の接線のなす角度が折れ判定角度θS1以上である場合に2つの境界線がC0連続であるとする。
図3は、稜線の抽出を説明するための別の説明図であり、図2(a)におけるY3方向から見た三次元形状モデルを示している。図3に示すように、境界線B4の端点P1と境界線B8の端点P1が一致すると共に端点P1で境界線B4の接線SB4と境界線B8の接線SB8のなす角度θP1が折れ判定角度θS1未満である場合、2つの境界線B4、B8がC1連続とされて1つのグループとされ、1つの稜線E1として抽出される。
一方、境界線B4の端点P2と境界線B5の端点P2が一致すると共に端点P2で境界線B4の接線SB4と境界線B5の接線SB5のなす角度θP2が折れ判定角度θS1以上である場合、2つの境界線B4、B5がC0連続とされて別のグループとされ、稜線E1とは別の稜線E2として抽出される。このように、三次元形状モデル1から抽出された境界線を境界線グループ化定義に基づいてグループ化し、グループ化された境界線をそれぞれ1つの稜線として抽出する。
前記自動フィレットの作成では、XYZ座標系で三次元形状モデル1と共に抽出した稜線を表示装置に表示した後に、表示装置に表示した稜線がユーザによって選択されると、稜線に作成するフィレットのフィレット半径の入力画面が表示され、ユーザによって稜線に作成するフィレットのフィレット半径が入力されて設定される。全稜線について一定のフィレット半径を入力することも、各稜線にフィレット半径を入力することも可能である。
そして、全稜線についてフィレット半径が設定されて全稜線に作成するフィレットのフィレット半径が取得されると、稜線のそれぞれについて、稜線に設定されたフィレット半径に基づいてフィレットを作成した場合に他の稜線に作成されるフィレットと干渉する領域を稜線の縮退領域、コーナー領域及びフィレット干渉領域として算出し、これらの領域を除く領域を稜線の基本領域として算出する。
本実施形態では、稜線の縮退領域として、稜線のうち2つの稜線のみが合流する合流点(2つの稜線のみの端点が一致する端点)で2つの稜線間角度が所定の縮退判定角度以下である2つの稜線について、合流点から2つの稜線にそれぞれ取得されたフィレット半径のフィレットを作成するとフィレットどうしが干渉する境界点までの領域を算出する。
稜線のコーナー領域として、稜線のうち複数の稜線が合流する合流点に合流する複数の稜線について、合流点から取得されたフィレット半径に基づいて設定された所定距離だけ離れた境界点までの領域を算出する。コーナー領域の算出では、稜線のうち縮退領域を除く稜線であって、複数の稜線が合流する合流点に合流する複数の稜線について、合流点から取得されたフィレット半径に基づいて設定された所定距離だけ離れた境界点までの領域を算出する。
稜線のフィレット干渉領域として、稜線のうちコーナー領域を除く稜線について、稜線と該稜線に最も近い他の稜線とにそれぞれ取得されたフィレット半径に基づいてフィレットを作成するとフィレットどうしが干渉する領域をフィレット干渉領域として算出する。
稜線の基本領域として、稜線について、縮退領域、コーナー領域及びフィレット干渉領域を除く領域を算出する。
次に、稜線の縮退領域、コーナー領域、フィレット干渉領域及び基本領域の算出について具体的に説明する。
図4は、稜線の縮退領域の算出を説明するための説明図であり、図1の要部を拡大して示している。稜線の縮退領域を算出する際には、稜線のうち2つの稜線のみが合流する合流点で2つの稜線間角度が予め設定された縮退判定角度以下である合流点を縮退基準点として抽出する。
図4に示すように、面F11と面F13の境界線B11が稜線として抽出されることなく面F11と面F12の境界線が稜線E11として抽出されると共に面F12と面F13の境界線が稜線E12として抽出されるときに、2つの稜線E11、E12のみが合流する合流点T11で2つの稜線E11、E12間角度、具体的には2つの稜線E11、E12の接線SE11、SE12のなす角度θT11が5度などの縮退判定角度θS2以下である場合、合流点T11を縮退基準点として抽出する。
そして、縮退基準点に合流する2つの稜線について、縮退基準点から2つの稜線にそれぞれ設定されたフィレット半径のフィレットを作成するとフィレットどうしが干渉する境界点を縮退境界点として算出し、縮退基準点から縮退境界点までの領域を稜線の縮退領域として算出する。
図4に示すように、縮退基準点T11に合流する2つの稜線E11、E12のうち一方の稜線E11について、縮退基準点T11から所定距離離れた構成点P11に対応する他方の稜線E12の最近点Q12を算出すると共に最近点Q12までの最近点距離DMIN(P11,Q12)を算出する。
図5は、稜線の縮退領域を説明するための別の説明図である。図5(a)は、図4における稜線E11の構成点P11を通って稜線E11に直交する断面を示し、図5(b)は、図4における稜線E12の最近点Q12を通って稜線E12に直交する断面を示している。なお、図5(a)及び図5(b)では、図4における縮退基準点T11側から見た断面を示している。
図5(a)に示すように、稜線E11にフィレット半径R11が設定されている場合、フィレット半径R11のフィレットFL11を作成したときの面F12側のR止まり点をP11´とし、面F11側のR止まり点をP11´´とし、フィレットFL11の中心をC11とし、面F11と面F12のなす角度の二分の一をθ11とすると、構成点P11とR止まり点P11´の距離D11は、以下の数1に示す式で表すことができる。
また、図5(b)に示すように、稜線E12にフィレット半径R12が設定されている場合、フィレット半径R12のフィレットFL12を作成したときの面F12側のR止まり点をQ12´とし、面F13側のR止まり点をQ12´´とし、フィレットFL12の中心をC12とし、面F12と面F13のなす角度の二分の一をθ12とすると、最近点Q12とR止まり点Q12´の距離D12は、以下の数2に示す式で表すことができる。
そして、最近点距離DMIN(P11,Q12)が距離D11と距離D12の和と等しくなる構成点P11が、以下の数3で示す式を用いて算出され、この構成点P11を、2つの稜線E11、E12にそれぞれ設定されたフィレット半径のフィレットを作成するとフィレットどうしが干渉する境界点である縮退境界点として算出する。縮退境界点P11が算出されると、縮退基準点T11に合流する稜線E11について、縮退基準点T11から縮退境界点P11までの領域を稜線の縮退領域として算出する。
縮退基準点T11に合流する稜線E12についても、縮退基準点T11に合流する稜線E11と同様にして、後述する図8に示すように、縮退境界点P12を算出して縮退基準点T11から縮退境界点P12までの領域を稜線の縮退領域として算出する。
稜線の縮退領域が算出されると、稜線の縮退領域について、縮退基準点に合流する2つの稜線に作成するフィレットどうしが干渉しないようにフィレット半径を補正した補正フィレット半径を算出する。
図6は、縮退領域における補正フィレット半径の算出を説明するための説明図である。縮退領域における補正フィレット半径を算出する際には、縮退基準点に合流する一方の稜線の縮退領域にある構成点について他方の稜線の最近点を算出すると共に最近点距離を算出し、最近点距離を縮退基準点に合流する2つの稜線に設定されたフィレット半径に応じて比例配分した距離に基づいて補正フィレット半径を算出する。
図6に示すように、稜線E11の縮退領域にある構成点P11Aについて、該構成点P11Aに対応する稜線E12の最近点Q12Aを算出すると共に最近点Q12Aまでの最近点距離DMIN(P11A,Q12A)を算出する。
図7は、縮退領域における補正フィレット半径の算出を説明するための別の説明図であり、図6における稜線E11の構成点P11Aを通って稜線E11に直交する断面を示している。図7に示すように、稜線E11の構成点P11Aにおける補正フィレット半径をR11Aとし、フィレット半径R11AのフィレットFL11Aを作成したときの面F12側のR止まり点をP11A´とし、面F12側のR止まり点をP11A´´とし、フィレットFL11Aの中心をC11Aとし、面F11と面F12のなす角度の二分の一をθ11Aとすると、構成点P11AとR止まり点P11A´の距離D11Aは、以下の数4に示す式で表すことができる。
本実施形態では、最近点距離DMIN(P11A,Q12A)を稜線E11に設定されたフィレット半径R11と稜線E12に設定されたフィレット半径R12に応じて比例配分させた距離が構成点P11AとR止まり点P11A´の距離D11Aに等しいものとし、構成点P11AとR止まり点P11A´の距離D11Aは、以下の数5に示す式でも表すことができる。
前記数4、数5で示す式から、稜線E11の縮退領域にある構成点P11Aについて補正される補正フィレット半径R11Aは、以下の数6で示す式を用いて算出される。稜線E11の縮退領域についてそれぞれ構成点P11Aと同様にして補正フィレット半径が算出される。
図8は、縮退領域における補正フィレット半径の算出を説明するための更に別の説明図である。図8に示すように、縮退基準点T11に合流する稜線E12の縮退境界点P12を算出して縮退基準点T11から縮退境界点P12までの領域が縮退領域として算出される場合、稜線E12の縮退領域にある構成点P12Aについて補正される補正フィレット半径R12Aは、稜線E11の縮退領域における補正フィレット半径の算出と同様に、以下の数7で示す式を用いて算出される。稜線E12の縮退領域についてそれぞれ構成点P12Aと同様にして補正フィレット半径が算出される。
なお、稜線E12の縮退領域にある構成点P12Aに対応する稜線E11の最近点をQ11Aとし、最近点Q11Aまでの最近点距離をDMIN(P12A,Q11A)とし、稜線E12に設定されたフィレット半径をR12とし、稜線E11に設定されたフィレット半径をR11とし、面F12と面F13のなす角度の二分の一をθ12Aとして表している。
このようにして、三次元形状モデル1について、稜線全体から稜線の縮退領域が算出されると共に稜線の縮退領域について補正フィレット半径が算出される。稜線の縮退領域における補正フィレット半径は、縮退境界点から縮退基準点に向かうにつれて稜線に設定されたフィレット半径が徐々に縮小補正される。
図9は、稜線のコーナー領域の算出を説明するための説明図であり、図1の要部を拡大して示している。稜線のコーナー領域を算出する際には、稜線のうち複数の稜線が合流する合流点をコーナー基準点として抽出する。コーナー領域の算出では、複数の稜線が合流する合流点であっても、稜線の縮退領域を形成する合流点である縮退基準点は除くものとする。
図9に示すように、面F21と面F22の境界線が稜線E21として抽出され、面F22と面F23の境界線が稜線E22として抽出され、面F23と面F21の境界線が稜線E23として抽出され、複数の稜線E21、E22、E23が合流する合流点T21が縮退基準点ではない場合、合流点T21をコーナー基準点として抽出する。
そして、コーナー基準点から、コーナー基準点に合流する複数の稜線にそれぞれ設定されたフィレット半径に基づいて設定された所定距離だけ離れた境界点をコーナー境界点として算出し、コーナー基準点からコーナー境界点までの領域を稜線のコーナー領域として算出する。本実施形態では、コーナー基準点から、コーナー基準点に合流する複数の稜線にそれぞれ設定されたフィレット半径のうち最大フィレット半径に所定の係数αを掛けた距離だけ離れた境界点をコーナー境界点として算出する。
図9に示すように、コーナー基準点T21に合流する稜線E21、E22、E23について、稜線E21、E22、E23にそれぞれフィレット半径R21、R22、R23が設定されている場合、フィレット半径R21、R22、R23のうち最大フィレット半径をRMAX(R21、R22、R23)とすると、コーナー基準点T21から稜線E21、E22、E23にそれぞれ最大フィレット半径RMAX(R21、R21、R23)に所定の係数αを掛けた距離D21、D22、D23だけ離れた境界点P21、P22、P23がコーナー境界点として算出される。距離D21、D22、D23は、以下の数8に示す式で表すことができ、本実施形態では所定の係数αとしてα=1.2が用いられる。
コーナー境界点P21、P22、P23が算出されると、コーナー基準点T21に合流する稜線E21、E22、E23についてそれぞれ、コーナー基準点T21からコーナー境界点P21、P22、P23までの領域が稜線のコーナー領域として算出される。
本実施形態ではまた、複数の稜線が合流するコーナー基準点について算出されたコーナー領域が他のコーナー基準点について算出されたコーナー領域と干渉するか否かを判定する。
図10は、稜線のコーナー領域の干渉判定を説明するための説明図であり、図1の要部を拡大して示している。稜線のコーナー領域の干渉を判定する際には、コーナー基準点に合流する複数の稜線が合流する他のコーナー基準点のうち最も近い最近コーナー基準点を抽出して最近コーナー基準点とのコーナー基準点間距離を算出し、コーナー基準点間距離がコーナー基準点からコーナー境界点までの距離と最近コーナー基準点から該最近コーナー基準点に対応するコーナー境界点までの距離の和より小さいか否かを判定する。
図10に示すように、稜線E31、E32、E33が合流するコーナー基準点T31についてコーナー基準点T31からコーナー境界点P31、P32、P33までの領域がコーナー領域として算出されている場合、稜線E31、E32、E33が合流する他のコーナー基準点T41、T51のうち最も近いコーナー基準点T41が最近コーナー基準点として抽出される。なお、図10では、コーナー基準点T41についてコーナー基準点T41からコーナー境界点P41、P42、P43までの領域が稜線のコーナー領域として算出されている。
そして、コーナー基準点T31から最近コーナー境界点T41までのコーナー基準点間距離D(T31、T41)が算出され、コーナー基準点間距離D(T31、T41)が、コーナー基準点T31からコーナー境界点P33までの距離と、最近コーナー基準点T41からコーナー境界点P41までの距離の和より小さいか否かが判定される。
稜線E31、E32、E33にそれぞれ設定されるフィレット半径をR31、R32、R33とし、フィレット半径R31、R32、R33のうち最大フィレット半径をRMAX(R31、R32、R33)とし、コーナー基準点T31からコーナー境界点P33までの距離をD33とすると、距離D33は以下の数9に示す式で表すことができる。
また、稜線E41、E42、E43にそれぞれ設定されるフィレット半径をR41、R42、R43とし、フィレット半径R41、R42、R43のうち最大フィレット半径をRMAX(R41、R42、R43)とし、最近コーナー基準点T41からコーナー境界点P41までの距離をD41とすると、距離D41は以下の数10に示す式で表すことができる。
そして、コーナー基準点間距離D(T31、T41)が、コーナー基準点T31からコーナー境界点P33までの距離D33と最近コーナー基準点T41からコーナー境界点P41までの距離D41の和より小さいか否かが判定され、以下の数11に示す式が成立するか否かが判定される。
コーナー基準点間距離D(T31、T41)が、コーナー基準点T31からコーナー境界点P33までの距離D33と最近コーナー基準点T41からコーナー境界点P41までの距離D41の和より小さいと判定されると、コーナー基準点T31について算出されたコーナー領域が他のコーナー基準点について算出されたコーナー領域と干渉すると判定される。
コーナー領域が他のコーナー領域と干渉すると判定されると、他のコーナー領域との干渉を回避するようにコーナー領域を補正して補正コーナー領域を算出する。補正コーナー領域を算出する際には、コーナー基準点間距離からコーナー基準点に合流する複数の稜線に設定されたフィレット半径と最近コーナー基準点に合流する複数の稜線に設定されたフィレット半径に基づいて設定された所定距離だけ離れた境界点を補正コーナー境界点として算出し、コーナー基準点から補正コーナー境界点までの領域を補正コーナー領域として算出する。
本実施形態では、コーナー基準点間距離をコーナー基準点に合流する複数の稜線に設定されたフィレット半径の最大フィレット半径と最近コーナー基準点に合流する複数の稜線に設定されたフィレット半径の最大フィレット半径に応じて比例配分させた距離だけ離れた境界点を補正コーナー境界点として算出する。
図11は、補正コーナー領域の算出を説明するための説明図であり、図10の要部を拡大して示している。コーナー基準点T31について、コーナー基準点間距離D(T31、T41)をコーナー基準点T31に合流する稜線E31、E32、E33に設定されたフィレット半径の最大フィレット半径RMAX(R31、R32、R33)と最近コーナー基準点T41に合流する稜線E41、E42、E43に設定されたフィレット半径の最大フィレット半径RMAX(R41、R42、R43)とに応じて比例配分させた距離をD(T31、T41)´とすると、距離D(T31、T41)´は、以下の数12で示す式を用いて算出される。
図11に示すように、コーナー基準点T31に合流する稜線E31、E32、E33のうち最近コーナー基準点T41を有する稜線E33では、コーナー基準点T31から距離D(T31、T41)´だけ離れた境界点P33´が補正コーナー境界点として算出され、コーナー基準点T31に合流する稜線E31、E32、E33のうち最近コーナー基準点T41を有する稜線E33を除く稜線E32、E33ではコーナー基準点T31から距離D(T31、T41)´に所定の係数αを掛けた距離だけ離れた境界点P31´、P32´が補正コーナー境界点として算出される。
コーナー基準点T31から補正コーナー境界点P33´までの距離をD33´とすると、距離D33´は以下の数13で示す式で表すことができ、コーナー基準点T31から補正コーナー境界点P31´、P32´までの距離をそれぞれD31´、D32´とすると、距離D31´、D32´は以下の数14で示す式で表すことができる。
補正コーナー境界点P31´、P32´、P33´が算出されると、コーナー基準点T31に合流する稜線E31、E32、E33についてそれぞれ、コーナー基準点T31から補正コーナー境界点P31´、P32´、P33´までの領域が補正コーナー領域として算出される。
このようにして、三次元形状モデル1について、稜線全体から稜線のコーナー領域が算出され、コーナー領域が他のコーナー領域と干渉すると判定される場合にはコーナー領域が補正されて補正コーナー領域が算出される。
図12は、稜線のフィレット干渉領域の算出を説明するための説明図であり、図1の要部を拡大して示している。稜線のフィレット干渉領域を算出する際には、稜線のうちコーナー領域を除く稜線について、稜線と該稜線に最も近い他の稜線とにそれぞれ設定されたフィレット半径に基づいてフィレットを作成するとフィレットどうしが干渉する領域をフィレット干渉領域として算出する。
本実施形態では、コーナー領域を除く稜線の各構成点についてコーナー領域を除く他の稜線の最近点を算出すると共に最近点距離を算出し、算出された最近点距離が、構成点と該構成点を有する稜線に設定されたフィレット半径に基づいて作成するフィレットのR止まり点との距離と、最近点と該最近点を有する稜線に設定されたフィレット半径に基づいて作成するフィレットのR止まり点との距離の和より小さいか否かを判定し、小さいと判定される稜線の構成点からなる領域をフィレット干渉領域として算出する。
図12に示すように、面F51と面F52の境界線が稜線E51として抽出され、面F52と面F53の境界線が稜線E52として抽出され、面F53と面F54の境界線が稜線E53として抽出されている場合、例えば稜線E51の構成点P51について該構成点P51に最も近い他の稜線E52の最近点Q52を算出すると共に最近点Q52までの最近点距離DMIN(P51,Q52)を算出する。
図13は、稜線のフィレット干渉領域の算出を説明するための別の説明図である。図13(a)は、図12における稜線E51の構成点P51を通って稜線E51に直交する断面を示し、図13(b)は、図12における稜線E52の最近点Q52を通って稜線E52に直交する断面を示している。
図13(a)に示すように、稜線E51にフィレット半径R51が設定されている場合、稜線E51の構成点P51についてフィレット半径R51のフィレットFL51を作成したときの面F52側のR止まり点をP51´とし、面F51側のR止まり点をP51´´とし、フィレットFL51の中心をC51とし、面F51と面F52のなす角度の二分の一をθ51とすると、構成点P51とR止まり点P51´の距離D51は、以下の数15で示す式で表すことができる。
また、図13(b)に示すように、稜線E52にフィレット半径R52が設定されている場合、稜線E52の最近点Q52についてフィレット半径R52のフィレットFL52を作成したときの面F52側のR止まり点をQ52´とし、面F53側のR止まり点をQ52´´とし、フィレットFL52の中心をC52とし、面F52と面F53のなす角度の二分の一をθ52とすると、最近点Q52とR止まり点Q52´の距離D52は、以下の数16で示す式で表すことができる。
そして、最近点距離DMIN(P51,Q52)が距離D51と距離D52の和より小さいか否かが判定され、以下の数17に示す式が成立するか否かが判定される。最近点距離DMIN(P51,Q52)が距離D51と距離D52の和より小さいと判定されると、稜線E51の構成点P51に作成するフィレットが他の稜線に作成するフィレットと干渉すると判定される。
コーナー領域を除く稜線について、稜線の各構成点について、稜線E51の構成点P51と同様に、稜線の各構成点に作成するフィレットが他の稜線に作成するフィレットと干渉するか否かが判定され、他の稜線に作成するフィレットと干渉すると判定される稜線の構成点からなる領域がフィレット干渉領域として算出される。
稜線のフィレット干渉領域が算出されると、稜線のフィレット干渉領域について、稜線と該稜線に最も近い他の稜線とにそれぞれ作成するフィレットどうしが干渉しないようにフィレット半径を補正した補正フィレット半径を算出する。
図14は、フィレット干渉領域における補正フィレット半径の算出を説明するための説明図であり、図12における稜線E51の構成点P51を通って稜線E51に直交する断面を示している。フィレット干渉領域における補正フィレット半径を算出する際には、稜線のフィレット干渉領域の構成点について最も近い他の稜線の最近点を算出すると共に最近点距離を算出し、最近点距離を2つの稜線に設定されたフィレット半径に応じて比例配分させた距離に基づいて補正フィレット半径を算出する。
図12に示すように、稜線E51のフィレット干渉領域にある構成点P51について、稜線のフィレット干渉領域を算出する場合と同様に、構成点P51に最も近い他の稜線E52の最近点Q52を算出すると共に最近点Q52までの最近点距離DMIN(P51,Q52)を算出する。
そして、図14に示すように、稜線E51の構成点P51における補正フィレット半径をR51´とし、フィレット半径R51´のフィレットFL51´を作成したときの面F52側のR止まり点をP51A´とし、面F51側のR止まり点をP51A´´とし、フィレットFL51´の中心をC51´とすると、構成点P51とR止まり点P51A´の距離D51´は、以下の数18に示す式で表すことができる。
本実施形態では、最近点距離DMIN(P51,Q52)を稜線E51に設定されたフィレット半径R51と稜線E52に設定されたフィレット半径R52とに応じて比例配分させた距離が構成点P51とR止まり点P51A´の距離D51´に等しいものとし、構成点P51とR止まり点P51A´の距離D51´は、以下の数19に示す式でも表すことができる。
前記数18、数19で示す式から、稜線E51のフィレット干渉領域にある構成点P51について補正される補正フィレット半径R51´は、以下の数20で示す式を用いて算出される。稜線のフィレット干渉領域についてそれぞれ構成点P51と同様にして補正フィレット半径が算出される。
フィレット干渉領域の算出やフィレット干渉領域における補正フィレット半径の算出では、稜線の構成点や稜線の構成点に対応する他の稜線の最近点が稜線の縮退領域にある場合、稜線に設定されたフィレット半径に代えて縮退領域について補正された補正フィレット半径を用いてフィレット干渉領域やフィレット干渉領域における補正フィレット半径が算出される。
このようにして、三次元形状モデル1について、稜線全体から稜線のフィレット干渉領域が算出されると共に稜線のフィレット干渉領域について補正フィレット半径が算出される。
稜線についてそれぞれ、縮退領域、コーナー領域及びフィレット干渉領域が算出されると、縮退領域、コーナー領域及びフィレット干渉領域を除く領域が稜線の基本領域として算出される。
三次元形状モデル1から抽出された稜線についてそれぞれ、縮退領域、コーナー領域、フィレット干渉領域及び基本領域が算出されると、稜線の縮退領域、コーナー領域、フィレット干渉領域及び基本領域についてそれぞれ自動的にフィレットを作成して稜線が滑らかに丸められる。
稜線の基本領域では稜線に設定されたフィレット半径のフィレットが作成され、稜線の縮退領域では稜線に設定されたフィレット半径が補正された補正フィレット半径のフィレットが作成され、稜線のフィレット干渉領域では稜線に設定されたフィレット半径が補正された補正フィレット半径のフィレットが作成され、稜線のコーナー領域では後述するようにコーナー基準点に合流する稜線に設定されたフィレット半径に基づいてフィレットとしてのコーナー形状が作成される。
図15は、稜線の縮退領域に作成されるフィレットを示す図であり、図4に示す縮退基準点T11に合流する稜線E11、E12の縮退領域に作成されるフィレットを示している。図15に示すように、稜線E11の縮退領域では補正フィレット半径のフィレットFL11Aが作成され、稜線E12の縮退領域では補正フィレット半径のフィレットFL12Aが作成される。一方、縮退基準点T11から縮退境界点よりも離れた稜線E11の基本領域では稜線E11に設定されたフィレット半径R11のフィレットFL11が作成され、縮退基準点T11から縮退境界点よりも離れた稜線E12の基本領域では稜線E12に設定されたフィレット半径R12のフィレットFL12が作成される。
図16は、稜線のフィレット干渉領域に作成されるフィレットを示す図であり、図12に示す稜線E51、E52、E53のフィレット干渉領域に作成されるフィレットを示している。図16に示すように、稜線E51のフィレット干渉領域では補正フィレット半径のフィレットFL51Aが作成され、稜線E52のフィレット干渉領域では補正フィレット半径のフィレットFL52Aが作成され、稜線E53のフィレット干渉領域では補正フィレット半径のフィレットFL53Aが作成される。一方、稜線E51のフィレット干渉領域の両側の基本領域では稜線E51に設定されたフィレット半径R51のフィレットFL51が作成される。
次に、稜線のコーナー領域におけるフィレットの作成について説明する。
稜線のコーナー領域にフィレットを作成する際には先ず、コーナー基準点に合流する複数の稜線によって構成される複数の面の平均法線ベクトルをコーナー基準点の法線ベクトルとして算出した後に、コーナー基準点に合流する稜線のコーナー境界点について稜線に設定されたフィレット半径に基づいてフィレットの断面ラインを算出する。稜線のコーナー境界点が縮退領域にある場合、稜線に設定されたフィレット半径に代えて縮退領域について補正された補正フィレット半径を用いて断面ラインを算出する。
図17は、稜線のコーナー領域における断面ラインの算出を説明するための説明図であり、図1の要部を拡大して示している。図17に示すように、面FS1、FS2間の稜線ES1、面FS2、FS3間の稜線ES2、面FS3、FS1間の稜線ES3について、コーナー基準点Tcからコーナー境界点PS1、PS2、PS3までの領域がコーナー領域として算出されている場合、コーナー基準点Tcの法線ベクトルVcとして、コーナー基準点Tcに合流する稜線ES1、ES2、ES3によって構成される面FS1、FS2、FS3の法線ベクトルの平均値が算出される。
コーナー基準点Tcの法線ベクトルVcは、コーナー基準点Tcにおける面FS1、FS2、FS3の法線ベクトルをそれぞれVS1、VS2、VS3とすると、以下の数21で示す式を用いて算出される。法線ベクトルVS1、VS2、VS3としては単位ベクトルが用いられる。なお、稜線ES1、ES2、ES3はコーナー基準点Tcの法線ベクトルVcに対して反時計回りに符号の数字が大きくなるように設定されている。
コーナー基準点Tcの法線ベクトルVcが算出されると、図17に示すように、コーナー基準点Tcに合流する稜線ES1、ES2、ES3のコーナー境界点PS1、PS2、PS3についてそれぞれ稜線ES1、ES2、ES3に設定されたフィレット半径に基づいてフィレットの断面ラインLS1、LS2、LS3が算出される。
断面ラインLS1、LS2、LS3はそれぞれ、コーナー基準点Tcの法線ベクトルVcに対して反時計回り後方側の始点PS11、PS21、PS31と反時計回り前方側の終点PS1E、PS2E、PS3Eを有し、稜線ES1、ES2、ES3に設定されたコーナー境界点PS1、PS2、PS3におけるフィレット半径をそれぞれRS1、RS2、RS3とすると曲率半径RS1、RS2、RS3の円弧形状に形成される。
断面ラインLS1の始点PS11及び終点PS1Eはそれぞれ面FS1及びFS2側のR止まり点であり、断面ラインLS2の始点PS21及び終点PS2Eはそれぞれ面FS2及びFS3側のR止まり点であり、断面ラインLS3の始点PS31及び終点PS3Eはそれぞれ面FS3及びFS1側のR止まり点である。
コーナー基準点に合流する稜線のコーナー境界点についてそれぞれフィレットの断面ラインが算出されると、コーナー基準点の法線ベクトルに対して反時計回りに隣り合う断面ライン間を接続する中間ラインを算出する。
図18は、中間ラインの算出を説明するための説明図である。図18に示すように、コーナー基準点Tcに合流する稜線ES1、ES2、ES3のコーナー境界点PS1、PS2、PS3についてそれぞれ断面ラインLS1、LS2、LS3が算出されると、コーナー境界点PS1、PS2、PS3におけるコーナー基準点Tcに向かう方向ベクトルV1M、V2M、V3Mが算出される。方向ベクトルV1M、V2M、V3Mとして単位ベクトルが用いられる。
そして、断面ラインLS1、LS2、LS3の始点PS11、PS21、PS31及び終点PS1E、PS2E、PS3Eにおけるコーナー基準点Tcに向かう方向ベクトルとして、断面ラインLS1、LS2、LS3に対応するコーナー境界点PS1、PS2、PS3における方向ベクトルV1M、V2M、V3Mがそれぞれ設定され、隣り合う断面ラインの始点及び終点の座標と、隣り合う断面ラインの始点及び終点におけるコーナー基準点に向かう方向ベクトルとから、隣り合う断面ライン間を接続する中間ラインが算出される。
図18に示すように、隣り合う断面ラインLS1、LS2間を接続する中間ラインLM1が算出され、隣り合う断面ラインLS2、LS3間を接続する中間ラインLM2が算出され、隣り合う断面ラインLS3、LS1間を接続する中間ラインLM3が算出される。
図19は、中間ラインの算出を説明するための別の説明図である。図19では、コーナー基準点Tcの法線ベクトルVcに対して反時計回りに隣り合う断面ラインLS1と断面ラインLS2とを接続する中間ラインLM1を算出する場合について示している。
中間ラインLM1を算出する際には、図19(a)に示すように、コーナー基準点Tcへの方向ベクトルV1Mが設定された断面ラインLS1の終点PS1Eとコーナー基準点Tcへの方向ベクトルV2Mが設定された断面ラインLS2の始点PS21の点間距離D(PS1E,PS21)が算出され、図19(b)に示すように、断面ラインLS1の終点PS1E及び断面ラインLS2の始点PS21からそれぞれコーナー基準点Tcへの方向ベクトルV1M及びV2Mの方向に点間距離D(PS1E,PS21)の三分の一の距離だけ離れた位置に制御点PS1EA及びPS21Aが設定される。
そして、図19(c)に示すように、断面ラインLS1の終点PS1E及び断面ラインLS2の始点PS2の座標と、制御点PS1EA及びPS21Aの座標とから、断面ラインLS1の終点PS1Eと断面ラインLS2の始点PS21を接続する補間曲線として3次のベジエ曲線が算出され、この曲線が断面ラインLS1、LS2間を接続する中間ラインLM1として算出される。
断面ラインLS2、LS3間を接続する中間ラインLM2及び断面ラインLS3、LS1間を接続する中間ラインLM3についても、中間ラインLM1の算出と同様にして算出される。このようにして、断面ライン間を接続する中間ラインが算出されると、断面ラインと中間ラインによって囲まれる閉領域が形成される。
中間ラインが算出されると、中間ラインを修正するか否かを判定する。中間ラインを修正するか否かは、断面ラインと中間ラインによって囲まれる閉領域内にコーナー基準点が存在するか否かで判定する。
図20は、中間ラインの修正判定を説明するための説明図である。中間ラインを修正するか否かを判定する際には、断面ラインと中間ラインによって囲まれる閉領域を、コーナー基準点を通ってコーナー基準点の法線ベクトルがZ軸となるXY平面に投影させ、投影断面ラインと投影中間ラインによって囲まれる投影閉領域内にコーナー基準点が存在するか否かが判定される。
図20(a)に示すように、XYZ座標系において断面ラインLS1、LS2、LS3及び中間ラインLM1、LM2、LM3が算出されている場合、断面ラインLS1、LS2、LS3と中間ラインLM1、LM2、LM3によって囲まれる閉領域A1が、コーナー基準点Tcを通ってコーナー基準点Tcの法線ベクトルVcがZ軸となるXY平面に投影され、図20(b)に示すように、投影断面ラインLS1´、LS2´、LS3´と投影中間ラインLM1´、LM2´、LM3´によって囲まれる投影閉領域A1´が算出される。
そして、投影閉領域A1´内にコーナー基準点Tcが存在するか否かが、既知の内外判定法を用いて判定される。図20(b)に示すように、投影断面ラインLS1´、LS2´、LS3´と投影中間ラインLM1´、LM2´、LM3´による投影閉領域A1´内にコーナー基準点Tcが存在すると判定される場合、断面ラインLS1、LS2、LS3と中間ラインLM1、LM2、LM3とによって囲まれる閉領域A1内にコーナー基準点Tcが存在すると判定され、中間ラインを修正しないと判定される。
なお、図20(b)では、図20(a)に示す稜線ES1、ES2、ES3が投影された投影稜線をES1´、ES2´、ES3´とし、図20(a)に示す断面ラインLS1、LS2、LS3の始点PS11、PS21、PS31及び終点PS1E、PS2E、PS3Eが投影された投影断面ラインLS1´、LS2´、LS3´の投影始点及び投影終点をそれぞれPS11´、PS21´、PS31´及びPS1E´、PS2E´、PS3E´として表している。
図21は、中間ラインの修正判定を説明するための別の説明図である。図21に示す三次元形状モデルについても、図21(a)に示すXYZ座標系において断面ラインLS1、LS2、LS3と中間ラインLM1、LM2、LM3による閉領域A1が、コーナー基準点Tcを通ってコーナー基準点Tcの法線ベクトルVcがZ軸となるXY平面に投影され、図21(b)に示す投影断面ラインLS1´、LS2´、LS3´と投影中間ラインLM1´、LM2´、LM3´による投影閉領域A1´が算出される。
図21(b)に示すように、投影閉領域A1´内にコーナー基準点Tcが存在しない場合は、断面ラインLS1、LS2、LS3と中間ラインLM1、LM2、LM3とによる閉領域A1内にコーナー基準点Tcが存在しないと判定され、中間ラインを修正すると判定される。
中間ラインを修正すると判定されると、断面ライン間を接続する中間ラインから修正する中間ラインを特定する。中間ラインの両側の端点と該両側の端点におけるコーナー基準点への方向ベクトルの交点とによって囲まれる閉領域内にコーナー基準点が存在する中間ラインを修正する中間ラインとして特定する。
図22は、修正する中間ラインの特定を説明するための説明図である。修正する中間ラインを特定する際には、図22(a)に示すように、XYZ座標系における断面ラインLS1、LS2、LS3と中間ラインLM1、LM2、LM3による閉領域が、コーナー基準点Tcを通ってコーナー基準点Tcの法線ベクトルVcがZ軸となるXY平面に投影され、図22(b)に示すように、投影断面ラインLS1´、LS2´、LS3´と投影中間ラインLM1´、LM2´、LM3´が算出される。
また、図22(a)に示すように、中間ラインLM1、LM2、LM3の一方の端点となる断面ラインLS1、LS2、LS3の終点PS1E、PS2E、PS3E及び他方の端点となる断面ラインLS2、LS3、LS1の始点PS21、PS31、PS11におけるコーナー基準点Tcへの方向ベクトルV1M及びV2M、V2M及びV3M、V3M及びV1Mが、コーナー基準点Tcを通ってコーナー基準点Tcの法線ベクトルVcがZ軸となるXY平面に投影され、図22(b)に示すように、投影方向ベクトルV1M´及びV2M´、V2M´及びV3M´、V3M´及びV1M´が算出される。
そして、投影中間ラインについてそれぞれ、投影中間ラインの両側の端点から投影方向ベクトルの方向に延びる直線の交点が算出され、投影中間ラインの両側の端点と算出された交点とによって囲まれる三角形閉領域内にコーナー基準点が存在するか否かが既知の内外判定法を用いて判定される。
図22(b)に示すように、投影中間ラインLM1´について、投影中間ラインLM1´の両側の端点PS1E´、PS21´からそれぞれ投影方向ベクトルV1M´、V2M´の方向に延びる直線の交点PM1´が算出され、投影中間ラインLM1´の両側の端点PS1E´、PS21´と算出された交点PM1´とによって囲まれる三角形閉領域AM1内にコーナー基準点Tcが存在するか否かが既知の内外判定法を用いて判定される。
投影中間ラインLM2´及びLM3´についても、投影中間ラインLM1´と同様にして、投影中間ラインLM2´の両側の端点PS2E´、PS31´と交点PM2´とによって囲まれる三角形閉領域AM2及び投影中間ラインLM3´の両側の端点PS3E´、PS11´と交点PM3´とによって囲まれる三角形閉領域AM3内にそれぞれコーナー基準点Tcが存在するか否かが既知の内外判定法を用いて判定される。
図22(b)に示すように、三角形閉領域AM1、AM2内にコーナー基準点Tcが存在せず、三角形閉領域AM3内にコーナー基準点Tcが存在すると判定される場合、三角形閉領域AM3を構成する2つの端点PS3E´、PS11´を有する投影中間ラインLM3´に対応する中間ラインLM3が、修正する中間ラインとして特定される。
修正する中間ラインが特定されると、特定された中間ラインについて、断面ライン及び中間ラインによる閉領域内にコーナー基準点が存在するように中間ラインを修正する。中間ラインを修正する際には、中間ラインを算出する際に設定された制御点を変更して中間ラインを修正する。
図23は、中間ラインの修正を説明するための説明図である。図23(a)に示すように、XYZ座標系において修正する中間ラインLM3について、中間ラインLM3の両側の端点PS3E、PS11から両側の端点PS3E、PS11にそれぞれ設定されたコーナー基準点Tcへの方向ベクトルV3M、V1Mの方向に延びる直線LE、L1が算出されると共に、直線LE、L1における直線LE、L1間の距離が最小となる最近点PCE、PC1が算出される。
次に、直線LE、L1についてそれぞれ中間ラインLM3の端点PS3E、PS11と最近点PCE、PC1の点間距離DE、D1が算出され、端点PS3E、PS11からそれぞれコーナー基準点Tcへの方向ベクトルV3M、V1Mの方向に点間距離DE、D1の十分の一の距離だけ離れた位置に制御点PS3EA、PS11Aが設定される。
そして、端点PS3E、PS11の座標と、制御点PS3EA、PS11Aの座標とから、中間ラインLM1の算出と同様にして、3次のベジエ曲線が算出され、この曲線が断面ラインLS1、LS3間を接続する中間ラインLM3を補正した修正中間ラインLM3Aとして算出される。
修正中間ラインLM3Aが算出されると、中間ラインLM3に代えて修正中間ラインLM3Aを用い、断面ラインLS1、LS2、LS3と中間ラインLM1、LM2、LM3Aとによる閉領域A1A内にコーナー基準点Tcが存在するか否かについて、前述した断面ラインLS1、LS2、LS3と中間ラインLM1、LM2、LM3とによる閉領域A1内にコーナー基準点Tcが存在するか否かについての判定と同様にして判定される。
閉領域A1A内にコーナー基準点Tcが存在すると判定される場合は、中間ラインLM3に代えて修正中間ラインLM3Aが中間ラインとして用いられるが、閉領域A1A内にコーナー基準点Tcが存在しないと判定される場合は、再度中間ラインが修正される。
再度中間ラインを修正する際には、端点PS3E、PS11からそれぞれコーナー基準点Tcへの方向ベクトルV3M、V1Mの方向にさらに点間距離DE、D1の十分の一の距離だけ、すなわち点間距離DE、D1の十分の二の距離だけ離れた位置にそれぞれ制御点PS3EA、PS11Aが設定され、端点PS3E、PS11の座標と、制御点PS3EA、PS11Aの座標とから、断面ラインLS1、LS3間を接続する中間ラインLM3を補正した修正中間ラインLM3Aが算出される。
再び中間ラインLM3に代えて修正中間ラインLM3Aを用い、断面ラインLS1、LS2、LS3と中間ラインLM1、LM2、LM3Aによる閉領域A1A内にコーナー基準点Tcが存在するか否かについて判定され、断面ラインLS1、LS2、LS3と中間ラインLM1、LM2、LM3Aとによる閉領域A1A内にコーナー基準点Tcが存在するまで繰り返され、図23(b)に示すように、断面ラインLS1、LS2、LS3と中間ラインLM1、LM2、LM3Aによる閉領域A1A内にコーナー基準点Tcが存在する修正中間ラインLM3Aが算出される。
このようにして、コーナー基準点に合流する稜線のコーナー領域について断面ライン及び中間ラインが算出されると、断面ライン及び中間ラインの中点を算出すると共に断面ライン及び中間ラインの中点におけるコーナー基準点Tcに向かう方向ベクトルを算出する。
図24は、断面ライン及び中間ラインの中点及び該中点からコーナー基準点への方向ベクトルの算出を説明するための説明図である。図24(a)に示すように、XYZ座標系において断面ラインLS1、LS2、LS3と中間ラインLM1、LM2、LM3が算出されている場合、断面ラインLS1、LS2、LS3についてそれぞれ中点PS1M、PS2M、PS3Mが算出され、断面ラインLS1、LS2、LS3の中点PS1M、PS2M、PS3Mにおけるコーナー基準点Tcに向かう方向ベクトルVS1M、VS2M、VS3Mとして、断面ラインLS1、LS2、LS3に対応するコーナー境界点PS1、PS2、PS3におけるコーナー基準点Tcに向かう方向ベクトルV1M、V2M、V3Mがそれぞれ設定されて算出される。
図24(b)に示すように、中間ラインLM1、LM2、LM3についてもそれぞれ中点PM1M、PM2M、PM3Mが算出される。中間ラインLM1、LM2、LM3の中点PM1M、PM2M、PM3Mにおけるコーナー基準点Tcに向かう方向ベクトルを算出する際には、断面ラインLS1、LS2、LS3の終点PS1E、PS2E、PS3Eにおけるコーナー境界点PS1、PS2、PS3に向かう方向の接線ベクトルVLS1E、VLS2E、VLS3Eが算出されると共に、断面ラインLS2、LS3、LS1の始点PS21、PS31、PS11におけるコーナー境界点PS2、PS3、PS1に向かう方向の接線ベクトルVLS21、VLS31、VLS11が算出される。
そして、中間ラインLM1の中点PM1Mにおけるコーナー基準点Tcに向かう方向ベクトルVM1Mとして、以下の数22で示す式を用いて、中間ラインLM1のコーナー基準点Tcの法線ベクトルVcに対して反時計回り後方側の端点である断面ラインLS1の終点PS1Eにおける接線ベクトルVLS1Eと、中間ラインLM1のコーナー基準点Tcの法線ベクトルVcに対して反時計回り前方側の端点である断面ラインLS2の始点PS21における接線ベクトルVLS21の平均値が算出される。
中間ラインLM2、LM3の中点PM2M、PM3Mにおけるコーナー基準点Tcに向かう方向ベクトルVM2M、VM3Mについても同様に、以下の数23、数24で示す式を用いて、中間ラインLM2、LM3のコーナー基準点Tcの法線ベクトルVcに対して反時計回り後方側の端点である断面ラインLS2、LS3の終点PS2E、PS3Eにおける接線ベクトルVLS2E、VLS3Eと、中間ラインLM2、LM3のコーナー基準点Tcの法線ベクトルVcに対して反時計回り前方側の端点である断面ラインLS3、LS1の始点PS31、PS11における接線ベクトルVLS31、VLS11の平均値が算出される。
このようにして、断面ライン及び中間ラインの中点と断面ライン及び中間ラインの中点におけるコーナー基準点に向かう方向ベクトルが算出される。中間ラインが修正された場合は、修正中間ラインについて中点と該中点におけるコーナー基準点に向かう方向ベクトルが算出される。
次に、断面ラインと中間ラインによって囲まれる閉領域についてコーナータイプを算出し、算出されたコーナータイプに応じて断面ラインと中間ラインによって囲まれる閉領域内に該閉領域内を分割するための分割中心点を算出する。
コーナータイプを算出する際には、断面ラインと中間ラインによって囲まれる閉領域について、中間ラインとして修正中間ラインが用いられていないと判定されると共に、断面ラインの中点からそれぞれコーナー基準点に向かう方向ベクトルをコーナー基準点の法線ベクトルがZ軸となるXY平面に投影させた投影方向ベクトルについて2つの投影方向ベクトルのなす角度のうち最も大きい最大角度が所定角度、具体的には135度以上であるか否かが判定される。
図25は、コーナータイプの算出を説明するための説明図である。中間ラインとして修正中間ラインが用いられていないと判定される場合に、図25(a)に示すように、XYZ座標系における断面ラインLS1、LS2、LS3及び中間ラインLM1、LM2、LM3が、コーナー基準点Tcを通ってコーナー基準点Tcの法線ベクトルVcがZ軸となるXY平面に投影され、図25(b)に示すように、投影断面ラインLS1´、LS2´、LS3´及び投影中間ラインLM1´、LM2´、LM3´が算出される。
また、図25(a)に示すように、断面ラインLS1、LS2、LS3の中点PS1M、PS2M、PS3M及び該中点PS1M、PS2M、PS3Mにおけるコーナー基準点Tcへの方向ベクトルVS1M、VS2M、VS3Mがそれぞれ、コーナー基準点Tcを通ってコーナー基準点Tcの法線ベクトルVcがZ軸となるXY平面に投影され、図25(b)に示すように、投影中点PS1M´、PS2M´、PS3M´及び投影方向ベクトルVS1M´、VS2M´、VS3M´が算出される。
そして、投影方向ベクトルVS1M´、VS2M´、VS3M´について2つの投影方向ベクトルのなす角度のうち最も大きい最大角度が135度以上であるか否かが判定される。2つの投影方向ベクトルのなす角度は、2つの投影方向ベクトルの内積を用いて算出することができる。
図25(b)に示すように、投影方向ベクトルVS1M´、VS2M´のなす角度及び投影方向ベクトルVS3M´、VS1M´のなす角度よりも投影方向ベクトルVS2M´、VS3M´のなす角度が大きく投影方向ベクトルVS2M´、VS3M´のなす角度が最大角度θMAXであり135度以上である場合、2つの投影方向ベクトルのなす角度のうち最大角度が135度以上であると判定される。
断面ラインと中間ラインによって囲まれる閉領域について、中間ラインとして修正中間ラインが用いられていないと判定され、断面ラインの中点におけるコーナー基準点への方向ベクトルが投影された投影方向ベクトルについて投影方向ベクトルのなす角度のうち最大角度が135度以上であると判定される場合、コーナータイプが第1タイプとして算出される。
本実施形態では、断面ラインと中間ラインによって囲まれる閉領域について、中間ラインとして修正中間ラインが用いられていないと判定され、断面ラインの中点におけるコーナー基準点への方向ベクトルが投影された投影方向ベクトルについて投影方向ベクトルのなす角度のうち最大角度が135度以上ではないと判定される場合についても、コーナー基準点に合流する稜線が2つ、すなわち断面ラインが2つであると判定される場合にはコーナータイプが第1タイプとして算出される。
一方、中間ラインとして修正中間ラインが用いられていないと判定されると共に、断面ラインの中点におけるコーナー基準点への方向ベクトルが投影された投影方向ベクトルについて投影方向ベクトルのなす角度のうち最大角度が135度以上ではないと判定され、コーナー基準点に合流する稜線が2つではないと判定される場合、コーナータイプが第2タイプとして算出される。
図26は、コーナータイプの算出を説明するための別の説明図である。中間ラインとして修正中間ラインが用いられていないと判定されると共に、図26(a)に示すように、断面ラインLS1、LS2、LS3の中点PS1M、PS2M、PS3Mにおけるコーナー基準点Tcへの方向ベクトルVS1M、VS2M、VS3Mが、図26(b)に示すように、コーナー基準点Tcを通ってコーナー基準点Tcの法線ベクトルVcがZ軸となるXY平面に投影された投影方向ベクトルVS1M´、VS2M´、VS3M´について、投影方向ベクトルVS1M´、VS3M´のなす角度が最大角度θMAXであり135度以上ではないと判定され、且つコーナー基準点Tcに合流する稜線が2つではないと判定される場合、コーナータイプが第2タイプとして算出される。
また、断面ラインと中間ラインによって囲まれる閉領域について中間ラインとして修正中間ラインが用いられていると判定される場合、コーナータイプが第3タイプとして算出される。
断面ラインと中間ラインによって囲まれる閉領域についてそれぞれコーナータイプが算出されると、断面ラインと中間ラインによって囲まれる閉領域内にコーナータイプに応じて分割中心点を算出する。
図27は、第1タイプの分割中心点の算出を説明するための説明図である。第1タイプについて分割中心点を算出する際には、断面ラインの中点におけるコーナー基準点への方向ベクトルがコーナー基準点を通ってコーナー基準点の法線ベクトルがZ軸となるXY平面に投影された投影方向ベクトルについて、2つの投影方向ベクトルのなす角度のうち最大角度となる2つの投影方向ベクトルに対応する2つの断面ラインをペアとして、ペアを構成する2つの断面ラインの中点を接続するフレームラインが算出され、フレームラインの中点が分割中心点として算出される。
図27に示すように、断面ラインLS1、LS2、LS3の中点PS1M、PS2M、PS3Mにおけるコーナー基準点Tcへの方向ベクトルが投影された投影方向ベクトルについて2つの投影方向ベクトルのなす角度のうち最大角度となる2つの投影方向ベクトルに対応する2つの断面ラインLS2、LS3をペアとして、ペアを構成する2つの断面ラインLS2、LS3の中点PS2M、PS3Mを接続するフレームラインLF(S2、S3)が算出される。
フレームラインLF(S2、S3)は、2つの中点PS2M、PS3Mの座標と、2つの中点PS2M、PS3Mにおけるコーナー基準点Tcへの方向ベクトルVS2M、VS3Mとから、中間ラインLM1の算出と同様にして算出される。
そして、フレームラインLF(S2、S3)の中点PMF(S2、S3)が算出され、算出された中点PMF(S2、S3)が分割中心点Pzとして算出される。
図28は、第2タイプの分割中心点の算出を説明するための説明図である。第2タイプについて分割中心点を算出する際には、断面ラインと、該断面ラインにコーナー基準点の法線ベクトルに対して反時計回りに隣り合う断面ラインにコーナー基準点の法線ベクトルに対して反時計回りに接続される中間ラインをそれぞれペアとして、ペアを構成する断面ライン及び中間ラインの中点を接続するフレームラインが算出され、フレームラインの中点が算出され、フレームラインの中点の平均座標にある点が分割中心点として算出される。
図28に示すように、断面ラインLS1、LS2、LS3と中間ラインLM2、LM3、LM1がそれぞれペアとされ、ペアを構成する断面ラインLS1、LS2、LS3の中点PS1M、PS2M、PS3Mと中間ラインLM2、LM3、LM1の中点PM2M、PM3M、PM1Mをそれぞれ接続するフレームラインLF(S1、M2)、LF(S2、M3)、LF(S3、M1)が算出される。フレームラインLF(S1、M2)、LF(S2、M3)、LF(S3、M1)は、第1タイプにおけるフレームラインLF(S2、S3)の算出と同様にして算出される。
そして、フレームラインLF(S1、M2)、LF(S2、M3)、LF(S3、M1)の中点PMF(S1、M2)、PMF(S2、M3)、PMF(S3、M1)がそれぞれ算出され、中点PMF(S1、M2)、PMF(S2、M3)、PMF(S3、M1)の平均座標が算出され、該平均座標にある点が分割中心点Pzとして算出される。
図29は、第3タイプの分割中心点の算出を説明するための説明図である。第3タイプについて分割中心点を算出する際には、修正中間ラインと、断面ラインの中点におけるコーナー基準点への方向ベクトルが投影された投影方向ベクトルのうち、修正中間ラインの中点におけるコーナー基準点への方向ベクトルが投影された投影方向ベクトルとのなす角度が最も大きい投影方向ベクトルに対応する断面ラインをペアとして、ペアを構成する修正中間ライン及び断面ラインの中点を接続するフレームラインが算出され、フレームラインの中点が分割中心点として算出される。
図29(a)に示すように、修正中間ラインLM3Aの中点PM3MAにおけるコーナー基準点Tcへの方向ベクトルVM3MAと、断面ラインLS1、LS2、LS3の中点PS1M、PS2M、PS3Mにおけるコーナー基準点Tcへの方向ベクトルVS1M、VS2M、VS3Mとがそれぞれ、コーナー基準点Tcを通ってコーナー基準点Tcの法線ベクトルVcがZ軸となるXY平面に投影され、図29(b)に示すように、投影方向ベクトルVM3MA´と投影方向ベクトルVS1M´、VS2M´、VS3M´とが算出される。
そして、図29(b)に示すように、断面ラインLS1、LS2、LS3の中点PS1M、PS2M、PS3Mにおけるコーナー基準点Tcへの方向ベクトルVS1M、VS2M、VS3Mが投影された投影方向ベクトルVS1M´、VS2M´、VS3M´のうち、修正中間ラインLM3Aの中点PM3MAにおけるコーナー基準点Tcへの方向ベクトルVM3MAが投影された投影方向ベクトルVM3MA´とのなす角度が最も大きい投影方向ベクトルVS2M´が算出される。
投影方向ベクトルVM3MA´とのなす角度が最も大きい投影方向ベクトルVS2M´が算出されると、修正中間ラインLM3Aと算出された投影方向ベクトルVS2M´に対応する断面ラインLS2をペアとして、図29(a)に示すように、ペアを構成する修正中間ラインLM3Aの中点PM3MAと断面ラインLS2の中点PS2Mを接続するフレームラインLF(S2、M3A)が算出される。フレームラインLF(S2、M3A)は、第1タイプにおけるフレームラインLF(S2、S3)の算出と同様にして算出される。
そして、フレームラインLF(S2、M3A)の中点PMF(S2、M3A)が算出され、算出された中点PMF(S2、M3A)が分割中心点Pzとして算出される。
コーナータイプに応じて断面ラインと中間ラインによって囲まれる閉領域内に分割中心点が算出されると、分割中心点と断面ライン及び中間ラインの中点とをそれぞれ接続して断面ラインと中間ラインによって囲まれる閉領域内を分割する分割ラインを算出する。
分割ラインを算出する際には、断面ライン及び中間ラインのラインについてそれぞれペアを設定し、ペアを構成するラインの中点を接続するフレームラインを算出し、フレームラインの中点におけるフレームラインの両側の端点である断面ライン、中間ラインの中点に向かう方向の接線ベクトルを算出し、フレームラインの中点における断面ライン、中間ラインの中点に向かう方向の接線ベクトルを分割中心点における断面ライン、中間ラインの中点に向かう方向の接線ベクトルとして設定し、分割中心点における断面ライン、中間ラインの中点に向かう方向の接線ベクトルを用いて分割中心点と断面ライン、中間ラインの中点とを接続する分割ラインを算出する。
図30は、第1タイプの分割ラインの算出を説明するための別の説明図である。第1タイプについて分割ラインを算出する際には、図30(a)に示すように、断面ラインLS1、LS2、LS3の中点PS1M、PS2M、PS3Mにおけるコーナー基準点Tcへの方向ベクトルVS1M、VS2M、VS3Mと、中間ラインLM1、LM2、LM3の中点PM1M、PM2M、PM3Mにおけるコーナー基準点Tcへの方向ベクトルVM1M、VM2M、VM3Mがそれぞれ、コーナー基準点Tcを通ってコーナー基準点Tcの法線ベクトルVcがZ軸となるXY平面に投影され、図30(b)に示すように、投影方向ベクトルVS1M´、VS2M´、VS3M´と投影方向ベクトルVM1M´、VM2M´、VM3M´が算出される。
そして、分割中心点Pzを算出する際に算出された2つの断面ラインLS2、LS3のペアに加え、このペアを構成する断面ラインLS2、LS3を除く断面ラインLS1と中間ラインLM1、LM2、LM3とについてそれぞれ、該断面ラインLS1と中間ラインLM1、LM2、LM3とにそれぞれ対応する投影方向ベクトルVS1M´、VM1M´、VM2M´、VM3M´が他の断面ライン、中間ラインに対応する投影方向ベクトルとのなす角度が最も大きい他の投影方向ベクトルに対応する他の断面ライン、中間ラインがペアとして設定される。
図30(a)に示す断面ラインLS1、LS2、LS3及び中間ラインLM1、LM2、LM3では、断面ラインLS2、LS3のペアに加え、断面ラインLS1と中間ラインLM2のペア、中間ラインLM1と中間ラインLM2のペア、中間ラインLM3と中間ラインLM2のペアが設定される。
図31は、第1タイプの分割ラインの算出を説明するための別の説明図である。断面ライン、中間ラインについてペアが設定されると、図31に示すように、ペアを構成する断面ラインLS2及び断面ラインLS3、断面ラインLS1及び中間ラインLM2、中間ラインLM1及び中間ラインLM2、中間ラインLM3及び中間ラインLM2についてそれぞれ中点を接続するフレームラインLF(S2、S3)、LF(S1、M2)、LF(M1、M2)、LF(M3、M2)が算出される。フレームラインLF(S1、M2)、LF(M1、M2)、LF(M3、M2)の算出は、フレームラインLF(S2、S3)の算出と同様にして算出される。
そして、各フレームラインLF(S2、S3)、LF(S1、M2)、LF(M1、M2)、LF(M3、M2)の中点PMF(S2、S3)、PMF(S1、M2)、PMF(M1、M2)、PMF(M3、M2)が算出されると共に、各中点PMF(S2、S3)、PMF(S1、M2)、PMF(M1、M2)、PMF(M3、M2)における各フレームラインLF(S2、S3)、LF(S1、M2)、LF(M1、M2)、LF(M3、M2)の一方側の端点に向かう方向の接線ベクトルV1MF(S2、S3)、V1MF(S1、M2)、V1MF(M1、M2)、V1MF(M3、M2)と他方側の端点に向かう方向の接線ベクトルV2MF(S2、S3)、V2MF(S1、M2)、V2MF(M1、M2)、V2MF(M3、M2)が算出される。
図32は、第1タイプの分割ラインの算出を説明するための更に別の説明図である。各フレームラインの一方側及び他方側の端点に向かう方向の接線ベクトルが算出されると、図32(a)に示すように、算出された接線ベクトルV1MF(S1、M2)、V1MF(S2、S3)、V2MF(S2、S3)、V1MF(M1、M2)、V2MF(S1、M2)、V1MF(M3、M2)が、分割中心点Pzにおける各フレームラインの一方側及び他方側の端点である断面ラインLS1、LS2、LS3、中間ラインLM1、LM2、LM3の中点PS1M、PS2M、PS3M、PM1M、PM2M、PM3Mに向かう方向の接線ベクトルとして設定される。
分割中心点における1つの断面ライン又は中間ラインの中点に向かう方向の接線ベクトルが複数存在する場合、この断面ライン又は中間ラインと、投影方向ベクトルのなす角度が最も大きい投影方向ベクトルに対応する断面ライン又は中間ラインとを接続するフレームラインの中点におけるフレームラインの断面ライン又は中間ラインの中点に向かう方向の接線ベクトルが、分割中心点における断面ライン又は中間ラインの中点に向かう方向の接線ベクトルとして設定される。
図31に示すように、中間ラインLM2の中点PM2Mに向かう方向の接線ベクトルV2MF(S1、M2)、V2MF(M1、M2)、V2MF(M3、M2)が複数存在する場合、図32(a)に示すように、中間ラインLM2と、投影方向ベクトルのなす角度が最も大きい投影方向ベクトルに対応する断面ラインLS1とを接続するフレームラインLF(S1、M2)の中点PMF(S1、M2)におけるフレームラインLF(S1、M2)の中間ラインLM2の中点に向かう方向の接線ベクトルV2MF(S1、M2)が、分割中心点Pzにおける中間ラインLM2の中点PM2Mに向かう方向の接線ベクトルとして設定される。
次に、分割中心点Pzにおける断面ラインLS1、LS2、LS3、中間ラインLM1、LM2、LM3の中点PS1M、PS2M、PS3M、PM1M、PM2M、PM3Mに向かう方向の接線ベクトルV1MF(S1、M2)、V1MF(S2、S3)、V2MF(S2、S3)、V1MF(M1、M2)、V2MF(S1、M2)、V1MF(M3、M2)を用いて、図32(b)に示すように、分割中心点Pzと、断面ラインLS1、LS2、LS3、中間ラインLM1、LM2、LM3の中点PS1M、PS2M、PS3M、PM1M、PM2M、PM3Mを接続する分割ラインLS1D、LS2D、LS3D、LM1D、LM2D、LM3Dが算出される。
分割中心点Pzと断面ラインLS1の中点PS1Mを接続する分割ラインLS1Dは、分割中心点Pzと断面ラインLS1の中点PS1Mの座標と、分割中心点Pzにおける断面ラインLS1の中点PS1Mに向かう方向の接線ベクトルV1MF(S1、M2)と、断面ラインLS1の中点PS1Mにおけるコーナー基準点Tcへの方向ベクトルVS1Mとから、中間ラインLM1の算出と同様にして算出される。他の分割ラインLS2D、LS3D、LM1D、LM2D、LM3Dについても、分割ラインLS1Dと同様にして算出される。
図33は、第2タイプの分割ラインの算出を説明するための説明図である。第2タイプについて分割ラインを算出する際には、分割中心点を算出するときと同様に、断面ラインと、該断面ラインにコーナー基準点の法線ベクトルに対して反時計回りに隣り合う断面ラインにコーナー基準点の法線ベクトルに対して反時計回りに接続される中間ラインがそれぞれペアとして設定される。
断面ライン、中間ラインについてそれぞれペアが設定されると、分割中心点を算出するときと同様に、図33に示すように、ペアを構成する断面ラインLS1、LS2、LS3の中点PS1M、PS2M、PS3Mと中間ラインLM2、LM3、LM1の中点PM2M、PM3M、PM1Mをそれぞれ接続するフレームラインLF(S1、M2)、LF(S2、M3)、LF(S3、M1)が算出される。
そして、各フレームラインLF(S1、M2)、LF(S2、M3)、LF(S3、M1)の中点PMF(S1、M2)、PMF(S2、M3)、PMF(S3、M1)が算出されると共に、各中点PMF(S1、M2)、PMF(S2、M3)、PMF(S3、M1)における各フレームラインLF(S1、M2)、LF(S2、M3)、LF(S3、M1)の一方側の端点に向かう方向の接線ベクトルV1MF(S1、M2)、V1MF(S2、M3)、V1MF(S3、M1)と他方側の端点に向かう方向の接線ベクトルV2MF(S1、M2)、V2MF(S2、M3)、V2MF(S3、M1が算出される。
図34は、第2タイプの分割ラインの算出を説明するための別の説明図である。各フレームラインの一方側及び他方側の端点に向かう方向の接線ベクトルが算出されると、図34(a)に示すように、算出された接線ベクトルV1MF(S1、M2)、V1MF(S2、M3)、V1MF(S3、M1)、V2MF(S3、M1)、V2MF(S1、M2)、V2MF(S2、M3)が、分割中心点Pzにおける各フレームラインの一方側及び他方側の端点である断面ラインLS1、LS2、LS3、中間ラインLM1、LM2、LM3の中点PS1M、PS2M、PS3M、PM1M、PM2M、PM3Mに向かう方向の接線ベクトルとして設定される。
次に、分割中心点Pzにおける断面ラインLS1、LS2、LS3、中間ラインLM1、LM2、LM3の中点PS1M、PS2M、PS3M、PM1M、PM2M、PM3Mに向かう方向の接線ベクトルV1MF(S1、M2)、V1MF(S2、M3)、V1MF(S3、M1)、V2MF(S3、M1)、V2MF(S1、M2)、V2MF(S2、M3)を用いて、図34(b)に示すように、分割中心点Pzと、断面ラインLS1、LS2、LS3、中間ラインLM1、LM2、LM3の中点PS1M、PS2M、PS3M、PM1M、PM2M、PM3Mを接続する分割ラインLS1D、LS2D、LS3D、LM1D、LM2D、LM3Dが算出される。分割ラインLS1D、LM1D、LS2D、LM2D、LS3D、LM3Dは、第1タイプの分割ラインLS1Dと同様にして算出される。
図35は、第3タイプの分割ラインの算出を説明するための説明図である。第3タイプについて分割ラインを算出する際には、図35(a)に示すように、断面ラインLS1、LS2、LS3の中点PS1M、PS2M、PS3Mにおけるコーナー基準点Tcへの方向ベクトルVS1M、VS2M、VS3Mと、中間ラインLM1、LM2、LM3Aの中点PM1M、PM2M、PM3MAにおけるコーナー基準点Tcへの方向ベクトルVM1M、VM2M、VM3MAがそれぞれ、コーナー基準点Tcを通ってコーナー基準点Tcの法線ベクトルVcがZ軸となるXY平面に投影され、図35(b)に示すように、投影方向ベクトルVS1M´、VS2M´、VS3M´と投影方向ベクトルVM1M´、VM2M´、VM3MA´が算出される。
そして、分割中心点Pzを算出する際に算出された中間ラインLM3A及び断面ラインLS2のペアに加え、このペアを構成する中間ラインLM3A及び断面ラインLS2を除く断面ラインLS1、LS3と中間ラインLM1、LM2についてそれぞれ、該断面ラインLS1、LS3と中間ラインLM1、LM2にそれぞれ対応する投影方向ベクトルVS1M´、VS3M´、VM1M´、VM2M´が他の断面ライン、中間ラインに対応する投影方向ベクトルとのなす角度が最も大きい他の投影方向ベクトルに対応する他の断面ライン、中間ラインがペアとして設定される。
図35(a)に示す断面ラインLS1、LS2、LS3及び中間ラインLM1、LM2、LM3Aでは、中間ラインLM3A及び断面ラインLS2のペアに加え、断面ラインLS1及び中間ラインLM3Aのペア、断面ラインLS3及び中間ラインLM3Aのペア、中間ラインLM1及び中間ラインLM3Aのペア、中間ラインLM2及び中間ラインLM3Aのペアが設定される。
図36は、第3タイプの分割ラインの算出を説明するための別の説明図である。断面ライン、中間ラインについてペアが設定されると、図36に示すように、ペアを構成する中間ラインLM3A及び断面ラインLS2、断面ラインLS1及び中間ラインLM3A、断面ラインLS3及び中間ラインLM3A、中間ラインLM1及び中間ラインLM3A、中間ラインLM2及び中間ラインLM3Aについてそれぞれ中点を接続するフレームラインLF(M3A、S2)、LF(S1、M3A)、LF(S3、M3A)、LF(M1、M3A)、LF(M2、M3A)が算出される。フレームラインLF(S1、M3A)、LF(S3、M3A)、LF(M1、M3A)、LF(M2、M3A)の算出は、フレームラインLF(M3A、S2)の算出と同様にして算出される。
そして、各フレームラインLF(M3A、S2)、LF(S1、M3A)、LF(S3、M3A)、LF(M1、M3A)、LF(M2、M3A)の中点PMF(M3A、S2)、PMF(S1、M3A)、PMF(S3、M3A)、PMF(M1、M3A)、PMF(M2、M3A)が算出されると共に、各中点PMF(M3A、S2)、PMF(S1、M3A)、PMF(S3、M3A)、PMF(M1、M3A)、PMF(M2、M3A)における各フレームラインLF(M3A、S2)、LF(S1、M3A)、LF(S3、M3A)、LF(M1、M3A)、LF(M2、M3A)の一方側の端点に向かう方向の接線ベクトルと他方側の端点に向かう方向の接線ベクトルが算出される。
図37は、第3タイプの分割ラインの算出を説明するための更に別の説明図である。各フレームラインの一方側及び他方側の端点に向かう方向の接線ベクトルが算出されると、図37(a)に示すように、算出された接線ベクトルV1MF(S1、M3A)、V2MF(M3A、S2)、V1MF(S3、M3A)、V1MF(M1、M3A)、V1MF(M2、M3A)、V1MF(M3A、S2)が、分割中心点Pzにおける各フレームラインの一方側及び他方側の端点である断面ラインLS1、LS2、LS3、中間ラインLM1、LM2、LM3Aの中点PS1M、PS2M、PS3M、PM1M、PM2M、PM3MAに向かう方向の接線ベクトルとして設定される。
第3タイプについても、第1タイプと同様に、分割中心点における1つの断面ライン又は中間ラインの中点に向かう方向の接線ベクトルが複数存在する場合、この断面ライン又は中間ラインと、投影方向ベクトルのなす角度が最も大きい投影方向ベクトルに対応する断面ライン又は中間ラインとを接続するフレームラインの中点におけるフレームラインの断面ライン又は中間ラインの中点に向かう方向の接線ベクトルが、分割中心点における断面ライン又は中間ラインの中点に向かう方向の接線ベクトルとして設定される。
図36に示すように、中間ラインLM3Aの中点PM3MAに向かう方向の接線ベクトルが複数存在する場合、図37(a)に示すように、中間ラインLM3Aと、投影方向ベクトルのなす角度が最も大きい投影方向ベクトルに対応する断面ラインLS2とを接続するフレームラインLF(M3A、S2)の中点PMF(M3A、S2)におけるフレームラインLF(M3A、S2)の中間ラインLM3Aの中点に向かう方向の接線ベクトルV1MF(M3A、S2)が、分割中心点Pzにおける中間ラインLM3Aの中点PM3MAに向かう方向の接線ベクトルとして設定される。
次に、分割中心点Pzにおける断面ラインLS1、LS2、LS3、中間ラインLM1、LM2、LM3Aの中点PS1M、PS2M、PS3M、PM1M、PM2M、PM3MAに向かう方向の接線ベクトルV1MF(S1、M3A)、V2MF(M3A、S2)、V1MF(S3、M3A)、V1MF(M1、M3A)、V1MF(M2、M3A)、V1MF(M3A、S2)を用いて、図37(b)に示すように、分割中心点Pzと、断面ラインLS1、LS2、LS3、中間ラインLM1、LM2、LM3Aの中点PS1M、PS2M、PS3M、PM1M、PM2M、PM3MAを接続する分割ラインLS1D、LS2D、LS3D、LM1D、LM2D、LM3DAが算出される。分割ラインLS1D、LM1D、LS2D、LM2D、LS3D、LM3DAは、第1タイプの分割ラインLS1Dと同様にして算出される。
分割ラインが算出されると、断面ラインと中間ラインによって囲まれる閉領域内が分割ラインによって分割されて断面ライン及び中間ラインと断面ライン及び中間ラインの中点とにそれぞれ接続する分割ラインとによって囲まれる分割領域が複数形成され、分割領域にそれぞれ自由曲面を形成してフィレットを作成する。
図38は、断面ラインと中間ラインによって囲まれる閉領域内の曲面の形成を説明するための説明図である。図38(a)に示すように、分割ラインが算出されると、断面ラインLS1、LS2、LS3と中間ラインLM1、LM2、LM3によって囲まれる閉領域A1内が分割ラインLS1D、LS2D、LS3D、LM1D、LM2D、LM3Dによって分割されて分割領域A11〜A16が複数形成される。
具体的には、断面ラインLS1及び中間ラインLM1と分割ラインLS1D、LM1Dとによって囲まれる分割領域A11と、中間ラインLM1及び断面ラインLS2と分割ラインLM1D、LS2Dとによって囲まれる分割領域A12と、断面ラインLS2及び中間ラインLM2と分割ラインLS2D、LM2Dとによって囲まれる分割領域A13と、中間ラインLM2及び断面ラインLS3と分割ラインLM2D、LS3Dとによって囲まれる分割領域A14と、断面ラインLS3及び中間ラインLM3と分割ラインLS3D、LM3Dとによって囲まれる分割領域A15と、中間ラインLM3及び断面ラインLS1と分割ラインLM3D、LS1Dとによって囲まれる分割領域A16とが形成される。
そして、分割領域A11〜A16についてそれぞれ、分割領域A11〜A16を構成する断面ライン、中間ライン及び2つの分割ラインにそれぞれ直交する分割領域A11〜A16の内方側に向かう方向の勾配ベクトルが算出される。勾配ベクトルを算出する際には先ず、分割領域A11〜A16を構成する断面ライン、中間ライン及び2つの分割ラインのそれぞれについて両側の端点における直交する方向の勾配ベクトルが算出される。
図38(b)に示すように、断面ラインLS2、中間ラインLM2及び2つの分割ラインLM2D、LS2Dによって囲まれる分割領域A13では、断面ラインLS2について、一方の端点PS2Mにおける直交する方向の勾配ベクトルとして、端点PS2Mにおけるコーナー基準点Tcへの方向ベクトルVS2Mが算出され、他方の端点PS2Eにおける直交する方向の勾配ベクトルとして、端点PS2Eにおけるコーナー基準点Tcへの方向ベクトルVS2Mが算出される。
中間ラインLM2については、一方の端点PS2Eにおける直交する方向の勾配ベクトルとして、端点PS2Eである断面ラインLS2の終点PS2Eにおけるコーナー境界点PS2に向かう方向の接線ベクトルVLS2Eが算出され、他方の端点PM2Mにおける直交する方向の勾配ベクトルとして、端点PM2Mにおけるコーナー基準点Tcへの方向ベクトルVM2Mが算出される。
分割ラインLM2Dについては、一方の端点PM2Mにおける直交する方向の勾配ベクトルとして、中間ラインLM2の中点PM2Mにおける分割領域A13の内方側に向かう方向の接線ベクトルVLM2Mが算出され、他方の端点である分割中心点Pzにおける直交する方向の勾配ベクトルとして、分割中心点Pzにおける断面ラインLS2の中点PS2Mに向かう方向の接線ベクトルV1MF(S2、M3)が算出される。
分割ラインLS2Dについては、一方の端点である分割中心点Pzにおける直交する方向の勾配ベクトルとして、分割中心点Pzにおける中間ラインLM2の中点PM2Mに向かう方向の接線ベクトルV2MF(S1、M2)が算出され、他方の端点PS2Mにおける直交する方向の勾配ベクトルとして、断面ラインLS2の中点PS2Mにおける分割領域A13の内方側に向かう方向の接線ベクトルVLS2Mが算出される。
分割領域A11〜A16を構成する断面ライン、中間ライン及び2つの分割ラインのそれぞれについて両側の端点における直交する方向の勾配ベクトルが算出されると、各ラインの両側の端点間について直交する方向における分割領域A11〜A16の内方側に向かう方向の勾配ベクトルが算出される。
図38(b)に示すように、分割領域A13では、断面ラインLS2の両側の端点PS2M、PS2E間について直交する方向における分割領域A13の内方側に向かう方向の勾配ベクトルVS22は、両側の端点PS2M、PS2Eにおける直交する方向の勾配ベクトルVS2M、VS2Mから補間法、具体的には線形補間法を用いて算出される。
中間ラインLM2、分割ラインLM2D、分割ラインLS2Dについても、断面ラインLS2と同様にして、中間ラインLM2、分割ラインLM2D、分割ラインLS2Dそれぞれの両側の端点間について直交する方向における分割領域A13の内方側に向かう方向の勾配ベクトルVM21、VM2D、VS2Dが、両側の端点における直交する方向の勾配ベクトルから補間法を用いて算出される。
分割領域A11、A12、A14〜A16についても、分割領域A13と同様にして、分割領域を構成する断面ライン、中間ライン及び2つの分割ラインにそれぞれ直交する分割領域の内方側に向かう方向の勾配ベクトルが算出される。
分割領域A11〜A16を構成する断面ライン、中間ライン及び2つの分割ラインにおける勾配ベクトルが算出されると、各ラインの形状及び勾配ベクトルを用いて、分割領域A11〜A16にCoons曲面などの既知の自由曲面が形成されて該自由曲面からなるコーナー形状の曲面が形成され、稜線のコーナー領域にフィレットが作成される。
図38では、コーナータイプが第2タイプである場合について説明しているが、コーナータイプが第1タイプ、第3タイプである場合についても、コーナータイプが第2タイプである場合と同様にして、断面ラインと中間ラインによって囲まれる閉領域内が分割ラインによって分割されて断面ライン及び中間ラインと断面ライン及び中間ラインの中点とにそれぞれ接続する分割ラインとによって囲まれる分割領域にそれぞれ自由曲面が形成されて稜線のコーナー領域にフィレットが形成される。
図39は、稜線のコーナー領域に形成されるフィレットを示す図である。図39(a)は、図32(b)に示すコーナータイプが第1タイプである場合について、図39(b)は、図34(b)に示すコーナータイプが第2タイプである場合について、図39(c)は、図37(b)に示すコーナータイプが第3タイプである場合について示している。図39では、分割領域をそれぞれ4つの要素に分割するメッシュが形成された状態で示されている。
図39(a)、図39(b)、図39(c)に示すように、断面ラインと中間ラインによって囲まれる閉領域内が分割ラインによって分割された分割領域にそれぞれ自由曲面が形成され、稜線のコーナー領域にフィレットとしてのコーナー形状が作成される。
このようにして、稜線のコーナー領域について、コーナー基準点に合流する複数の稜線のコーナー境界点について稜線に設定されたフィレット半径に基づいてフィレットの断面ラインが算出され、断面ライン間を接続する中間ラインが算出され、断面ラインと中間ラインによって囲まれる閉領域内に曲面が形成されてフィレットが作成される。
前述した実施形態では、コーナー基準点に3つの稜線が合流するコーナー領域について説明しているが、コーナー基準点に2つの稜線が合流するコーナー領域やコーナー基準点に4つ以上の稜線が合流するコーナー領域についてもコーナー基準点に3つの稜線が合流するコーナー領域と同様にして稜線のコーナー領域についてフィレットが作成される。
このように、本実施形態に係る自動フィレットの作成では、三次元形状モデルのデータからフィレットを作成する稜線を抽出し、稜線に設定されたフィレット半径のフィレットを作成する際に、稜線についてそれぞれ縮退領域、コーナー領域、フィレット干渉領域及び基本領域を算出し、稜線全体について縮退領域、コーナー領域、フィレット干渉領域及び基本領域に応じて自動的にフィレットを作成する。
本実施形態では、三次元形状モデル1から有限要素分割したメッシュデータが作成され、三次元形状モデル1から稜線が抽出され、稜線についてそれぞれ縮退領域、コーナー領域、フィレット干渉領域及び基本領域が算出され、稜線全体について縮退領域、コーナー領域、フィレット干渉領域及び基本領域に応じて自動的にフィレットが作成されてフィレットメッシュデータが作成される。そして、三次元形状モデル1から有限要素分割したメッシュデータに、フィレットメッシュデータが結合されて、フィレットが作成された三次元形状モデルのメッシュデータが作成される。
本実施形態ではまた、フィレットが作成された三次元形状モデルのメッシュデータを表示装置に表示する際に、ユーザによって稜線に設定されたフィレット半径を補正したフィレット半径を用いてフィレットが作成された部分、具体的には稜線の縮退領域、フィレット干渉領域及び補正コーナー領域に形成されたフィレットをハイライト表示してユーザに報知させるようになっている。
次に、本発明の第1実施形態に係る自動フィレット作成システムについて説明する。
図40は、本発明の第1実施形態に係る自動フィレット作成システムの全体構成を示すブロック図である。本発明の第1本実施形態に係る自動フィレット作成システムは、前述した実施形態に係る自動フィレットの作成を行うように構成されている。
前記自動フィレット作成システムは、図40に示すように、コンピュータ100を中心として構成され、コンピュータ100は、中央演算装置101と、稜線に作成するフィレットのフィレット半径などを入力するためのキーボードなどの入力装置102と、三次元形状モデルなどを表示するためのディスプレイなどの表示装置103と、三次元形状モデルに自動的にフィレットを作成するためのプログラムやデータなどを記憶するメモリなどの記憶装置104と、フィレットが作成された三次元形状モデルなどを出力するプリンタなどの出力装置105とを有している。
中央演算装置101は、入力装置102、表示装置103及び出力装置105を制御すると共に、記憶装置104にアクセス可能に構成され、入力装置102を介して入力された情報と記憶装置104に記憶されているプログラムやデータを用いて、三次元形状モデルに自動的にフィレットを作成すると共にフィレットが作成された三次元形状モデルを記憶装置104に保存するように構成されている。
図41は、図40に示すシステムの記憶装置の構成を示す図である。図41に示すように、記憶装置104は、プログラム記憶部とデータ記憶部とを有している。プログラム記憶部には、三次元形状モデルに自動的にフィレットを作成する自動フィレット作成プログラム、三次元形状モデルを有限要素分割したメッシュを作成するメッシュ作成プログラム、三次元形状モデルから稜線を抽出する稜線抽出プログラム、稜線の縮退領域を算出する縮退領域算出プログラム、稜線のコーナー領域を算出するコーナー領域算出プログラム、稜線のフィレット干渉領域を算出するフィレット干渉領域算出プログラム、稜線の基本領域を算出する基本領域算出プログラム、稜線にそれぞれフィレットを作成するフィレット作成プログラム、及び三次元形状モデルなどを表示する表示プログラムなどが記憶されている。
一方、データ記憶部には、三次元形状モデルのデータが記憶される三次元形状モデルデータファイル、稜線抽出条件データ及び縮退判定角度データなどが記憶される条件データファイル、三次元形状モデルのメッシュデータやフィレットが作成された三次元形状モデルのメッシュデータが記憶されるメッシュデータファイル、抽出された稜線データが記憶される稜線データファイル、稜線に設定されるフィレット半径データが記憶されるフィレット半径データファイル、稜線の縮退領域が記憶される縮退領域データファイル、稜線のコーナー領域が記憶されるコーナー領域データファイル、稜線のフィレット干渉領域が記憶されるフィレット干渉領域データファイル、稜線の基本領域が記憶される基本領域データファイル、及びフィレットメッシュデータが記憶されるフィレットメッシュデータファイルなどが記憶されている。
次に、三次元形状モデルに自動的にフィレットを作成する動作について説明する。
図42は、自動フィレット作成システムによる自動フィレット作成動作を示すフローチャートである。三次元形状モデルに自動的にフィレットを作成する前に、コンピュータ100には、ユーザによって三次元形状モデルのデータが三次元形状モデルデータファイルに記憶されると共に、稜線抽出条件データとしての折れ判定角度データ及び境界線グループ化定義データと縮退判定角度データが条件データファイルに記録される。
三次元形状モデルに自動的にフィレットを作成するための各種データ、具体的には三次元形状モデルのデータ、稜線抽出条件としての折れ判定角度データ及び境界線グループ化定義データ、縮退判定角度データが記憶された状態で、三次元形状モデルに自動的にフィレットを作成するための計算が行われる。
先ず、図42に示すように、三次元形状モデルに自動的にフィレットを作成するための各種データが取得される。具体的には、三次元形状モデルのデータが取得され(ステップS1)、稜線抽出条件データとしての折れ判定角度データ及び境界線グループ化定義データと縮退判定角度データとが取得される(ステップS2)。そして、三次元形状モデルが有限要素分割されたメッシュデータが作成され(ステップS3)、作成されたメッシュデータがメッシュデータファイルに記憶される。
次に、三次元形状モデルのデータから稜線抽出条件データに基づいてフィレットが作成される稜線が抽出される(ステップS4)。三次元形状モデルのデータから稜線抽出条件としての折れ判定角度に基づいて折れ判定角度以上の境界線が抽出され、抽出された境界線が稜線抽出条件としての境界線グループ化定義に基づいてグループ化されて稜線として抽出される。抽出された稜線は、稜線データファイルに記憶される。
稜線が抽出されると、抽出された稜線が三次元形状モデル1と共に表示装置103に表示された後に、入力装置102を介してユーザによって稜線にそれぞれ設定されるフィレット半径が取得される(ステップS5)。稜線にそれぞれ設定されるフィレット半径が取得されると、フィレット半径がフィレット半径データファイルに記憶され、稜線の縮退領域の算出が行われる(ステップS6)。
図43は、縮退領域の算出動作を示すフローチャートである。稜線の縮退領域の算出では、図43に示すように、ステップS4において抽出された稜線から縮退基準点が抽出される(ステップS21)。2つの稜線のみが合流する合流点で2つの稜線間角度がステップS2において取得された縮退判定角度以下である合流点が縮退基準点として抽出される。
縮退基準点が抽出されると、縮退境界点が算出される(ステップS22)。縮退基準点に合流する2つの稜線について、縮退基準点から2つの稜線にそれぞれ作成するフィレットどうしが干渉する境界点が縮退境界点として算出される。縮退境界点が算出されると、縮退基準点から縮退境界点までの領域が縮退領域として算出される(ステップS23)。
稜線の縮退領域が算出されると、縮退領域について補正フィレット半径が算出される(ステップS24)。縮退基準点に合流する一方の稜線の縮退領域にある構成点について他方の稜線の最近点が算出されると共に最近点距離が算出され、最近点距離が縮退基準点に合流する2つの稜線に設定されたフィレット半径に応じて比例配分された距離に基づいて補正フィレット半径が算出される。算出された縮退領域及び補正フィレット半径は、縮退領域データファイルに記憶される。縮退領域について補正フィレット半径が算出されると、図42に示すように、稜線のコーナー領域の算出が行われる(ステップS7)。
図44は、コーナー領域の算出動作を示すフローチャートである。稜線のコーナー領域の算出では、図44に示すように、ステップS4において抽出された稜線からコーナー基準点が抽出される(ステップS31)。複数の稜線が合流する合流点であって、ステップS21において抽出された縮退基準点を除く合流点がコーナー基準点として抽出される。
コーナー基準点が抽出されると、コーナー境界点が算出される(ステップS32)。コーナー基準点に合流する複数の稜線にそれぞれ設定されたフィレット半径に基づいて設定された所定距離だけ離れた境界点がコーナー境界点として算出される。コーナー境界点が算出されると、コーナー基準点からコーナー境界点までの領域が稜線のコーナー領域として算出される(ステップS33)。
稜線のコーナー領域が算出されると、コーナー領域が他のコーナー基準点について算出されたコーナー領域と干渉するか否かが判定される(ステップS34)。コーナー領域の干渉判定は、コーナー基準点に合流する複数の稜線が合流する他のコーナー基準点のうち最も近い最近コーナー基準点が抽出されて最近コーナー基準点とのコーナー基準点間距離が算出され、コーナー基準点間距離がコーナー基準点からコーナー境界点までの距離と最近コーナー基準点からコーナー境界点までの距離の和より小さいか否かが判定される。
ステップS34での判定結果がノー(NO)の場合、すなわちコーナー基準点間距離がコーナー基準点からコーナー境界点までの距離と最近コーナー基準点からコーナー境界点までの距離の和より小さくないと判定され、コーナー領域が干渉しないと判定される場合、ステップS33において算出されたコーナー領域がコーナー領域として用いられ、図42に示すように、稜線のフィレット干渉領域の算出が行われる(ステップS8)。
一方、ステップS34での判定結果がイエス(YES)の場合、すなわちコーナー基準点間距離がコーナー基準点からコーナー境界点までの距離と最近コーナー基準点からコーナー境界点までの距離の和より小さいと判定され、コーナー領域が干渉すると判定される場合、コーナー領域について補正コーナー領域が算出される(ステップS35)。
補正コーナー領域の算出では、コーナー基準点間距離からコーナー基準点に合流する複数の稜線に設定されたフィレット半径と最近コーナー基準点に合流する複数の稜線に設定されたフィレット半径に基づいて設定された所定距離だけ離れた補正コーナー境界点が算出され、コーナー基準点から補正コーナー境界点までの領域が補正コーナー領域として算出される。補正コーナー領域が算出されると、補正コーナー領域がコーナー領域として用いられる。算出されたコーナー領域及び補正コーナー領域は、コーナー領域データファイルに記憶される。そして、図42に示すように、稜線のフィレット干渉領域の算出が行われる(ステップS8)。
図45は、フィレット干渉領域の算出動作を示すフローチャートである。稜線のフィレット干渉領域の算出では、図45に示すように、ステップS4において抽出された稜線からフィレット干渉領域が算出される(ステップS41)。
フィレット干渉領域の算出では、抽出された稜線のうちコーナー領域を除く稜線について、稜線の各構成点についてコーナー領域を除く他の稜線の最近点が算出されると共に最近点距離が算出され、最近点距離が、構成点と該構成点を有する稜線に作成するフィレットのR止まり点との距離と、最近点と該最近点を有する稜線に作成するフィレットのR止まり点との距離の和より小さいか否かが判定され、小さいと判定される稜線の構成点からなる領域がフィレット干渉領域として算出される。
稜線のフィレット干渉領域が算出されると、フィレット干渉領域について補正フィレット半径が算出される(ステップS42)。稜線のフィレット干渉領域の構成点について最も近い他の稜線の最近点が算出されると共に最近点距離が算出され、最近点距離が2つの稜線に設定されたフィレット半径に応じて比例配分された距離に基づいて補正フィレット半径が算出される。算出されたフィレット干渉領域及び補正フィレット半径は、フィレット干渉領域データファイルに記憶される。
フィレット干渉領域の算出及びフィレット干渉領域における補正フィレット半径の算出では、稜線が縮退領域にある場合、稜線に設定されたフィレット半径に代えて縮退領域について補正された補正フィレット半径を用いてフィレット干渉領域及びフィレット干渉領域における補正フィレット半径が算出される。
フィレット干渉領域について補正フィレット半径が算出されると、図42に示すように、稜線の基本領域の算出が行われる(ステップS9)。稜線の基本領域の算出では、ステップS4において抽出された稜線から縮退領域、コーナー領域及びフィレット干渉領域を除く領域が稜線の基本領域として算出される。算出された基本領域は、基本領域データファイルに記憶される。
稜線についてそれぞれ縮退領域、コーナー領域、フィレット干渉領域及び基本領域が算出されると、稜線の縮退領域、コーナー領域、フィレット干渉領域及び基本領域についてそれぞれ自動的にフィレットが作成される(ステップS10〜S13)。
ステップS10において稜線の縮退領域についてフィレットが作成され、稜線の縮退領域についてステップS24において算出された補正フィレット半径のフィレットが作成される。稜線の縮退領域についてそれぞれ補正フィレット半径のフィレットが作成される。次に、ステップS11において稜線のコーナー領域についてフィレットが作成される。
図46は、コーナー領域のフィレット作成動作を示すフローチャートである。稜線のコーナー領域についてフィレットの作成では、図46に示すように、コーナー基準点の法線ベクトルが算出される(ステップS51)。コーナー基準点に合流する複数の稜線によって構成される面の平均法線ベクトルがコーナー基準点の法線ベクトルとして算出される。
コーナー基準点の法線ベクトルが算出されると、コーナー基準点に合流する稜線のコーナー境界点について稜線に設定されたフィレット半径に基づいてフィレットの断面ラインが算出される(ステップS52)。断面ラインの算出では、稜線のコーナー境界点がフィレット干渉領域にある場合、稜線に設定されたフィレット半径に代えてフィレット干渉領域について補正された補正フィレット半径を用いてフィレットの断面ラインが算出される。
フィレットの断面ラインが算出されると、コーナー基準点の法線ベクトルに対して反時計回りに隣り合う断面ライン間を接続する中間ラインが算出される(ステップS53)。中間ラインの算出では、断面ラインの始点及び終点におけるコーナー基準点への方向ベクトルとしてコーナー境界点におけるコーナー基準点への方向ベクトルが設定され、隣り合う断面ラインの始点及び終点と、始点及び終点におけるコーナー基準点への方向ベクトルとから、3次のベジエ曲線を用いて中間ラインが算出される。
そして、中間ラインを修正するか否かが判定される(ステップS54)。中間ラインの修正判定は、断面ラインと中間ラインによって囲まれる閉領域内にコーナー基準点が存在するか否かで判定され、閉領域内にコーナー基準点が存在しないと判定される場合は中間ラインを修正すると判定される。
ステップS54での判定結果がイエスの場合、すなわち断面ラインと中間ラインによって囲まれる閉領域内にコーナー基準点が存在しないと判定され、中間ラインを修正すると判定される場合、ステップS53において算出された中間ラインが修正される(ステップS55)。
中間ラインの修正では、断面ライン間を接続する中間ラインから修正する中間ラインが特定され、特定された中間ラインについて、断面ライン及び中間ラインによる閉領域内にコーナー基準点が存在するように中間ラインが修正される。中間ラインが修正されると、断面ライン及び中間ラインの中点におけるコーナー基準点への方向ベクトルが算出される(ステップS56)。
一方、ステップS54での判定結果がノーの場合、すなわち断面ラインと中間ラインによって囲まれる閉領域内にコーナー基準点が存在すると判定され、中間ラインを修正しないと判定される場合、中間ラインが修正されることなく、断面ライン及び中間ラインの中点におけるコーナー基準点への方向ベクトルが算出される(ステップS56)。そして、断面ラインと中間ラインによって囲まれる閉領域についてコーナータイプが算出される(ステップS57)。
図47は、コーナータイプの算出動作を示すフローチャートである。コーナータイプの算出では、図47に示すように、断面ラインと中間ラインによって囲まれる閉領域について中間ラインが修正されたか否かが判定される(ステップS71)。
ステップS71での判定結果がノーの場合、すなわち断面ラインと中間ラインによって囲まれる閉領域について中間ラインが修正されていないと判定される場合、断面ラインの中点におけるコーナー基準点への方向ベクトル間の最大角度が135度以上であるか否かが判定される(ステップS72)。コーナー基準点への方向ベクトル間の最大角度が135度以上であるか否かの判定は、断面ラインの中点におけるコーナー基準点への方向ベクトルが投影された投影方向ベクトルについて2つの投影方向ベクトルのなす角度のうち最大角度が135度以上であるか否かで判定される。
ステップS72での判定結果がイエスの場合、すなわち断面ラインの中点におけるコーナー基準点への方向ベクトル間の最大角度が135度以上であると判定される場合、断面ラインと中間ラインによって囲まれる閉領域についてコーナータイプが第1タイプとして算出される(ステップS73)。
一方、ステップS72での判定結果がノーの場合、すなわち断面ラインの中点におけるコーナー基準点への方向ベクトル間の最大角度が135度以上ではないと判定される場合、コーナー基準点に合流する稜線が2つであるか否かが判定され(ステップS74)、断面ラインが2つであるか否かが判定される。
ステップS74での判定結果がイエスの場合についても、すなわちコーナー基準点に合流する稜線が2つであると判定される場合についても、断面ラインと中間ラインによって囲まれる閉領域についてコーナータイプが第1タイプとして算出される(ステップS73)。
一方、ステップS74での判定結果がノーの場合、すなわちコーナー基準点に合流する稜線が2つではないと判定される場合、断面ラインと中間ラインによって囲まれる閉領域についてコーナータイプが第2タイプとして算出される(ステップS75)。
また、ステップS71での判定結果がイエスの場合、すなわち断面ラインと中間ラインによって囲まれる閉領域について中間ラインが修正されたと判定される場合、断面ラインと中間ラインによって囲まれる閉領域についてコーナータイプが第3タイプとして算出される(ステップS76)。
断面ラインと中間ラインによって囲まれる閉領域についてコーナータイプが算出されると、断面ラインと中間ラインによって囲まれる閉領域内にステップS57において算出されたコーナータイプに応じて分割中心点が算出される(ステップS58)。
分割中心点が算出されると、コーナータイプに応じて分割中心点と断面ライン及び中間ラインの中点とをそれぞれ接続して断面ラインと中間ラインによって囲まれる閉領域内を分割する分割ラインが算出される(ステップS59)。
分割ラインが算出されると、断面ラインと中間ラインによって囲まれる閉領域内が分割ラインによって分割されて断面ライン及び中間ラインと断面ライン及び中間ラインの中点とにそれぞれ接続する分割ラインとによって囲まれる分割領域が複数形成され、分割領域にそれぞれ自由曲面が形成されて稜線のコーナー領域についてフィレットが作成される(ステップS60)。コーナー基準点ごとにコーナー基準点に合流する稜線のコーナー領域についてフィレットが作成される。
次に、図42に戻って、ステップS12において稜線のフィレット干渉領域についてフィレットが作成され、稜線のフィレット干渉領域についてステップS41において算出された補正フィレット半径のフィレットが作成される。稜線のフィレット干渉領域についてそれぞれ補正フィレット半径のフィレットが作成される。
そして、ステップS13において稜線の基本領域についてフィレットが作成され、稜線の基本領域について稜線に設定されたフィレット半径のフィレットが作成される。稜線の基本領域についてそれぞれ稜線に設定されたフィレット半径のフィレットが作成される。ステップS10〜S13において算出された稜線の縮退領域、コーナー領域、フィレット干渉領域及び基本領域について作成されたフィレットのメッシュデータは、フィレットメッシュデータに記憶される。
稜線の縮退領域、コーナー領域、フィレット干渉領域及び基本領域についてそれぞれフィレットが作成されると、作成されたフィレットのメッシュデータが三次元形状モデルから有限要素分割されたメッシュデータに結合されて三次元形状モデルのメッシュデータが変更され、フィレットが作成された三次元形状モデルのメッシュデータが作成される(ステップS14)。
このようにして、三次元形状モデルからフィレットを作成する稜線が抽出され、稜線についてそれぞれ縮退領域、コーナー領域、フィレット干渉領域及び基本領域が算出され、稜線全体について縮退領域、コーナー領域、フィレット干渉領域及び基本領域に応じて自動的にフィレットが作成される。
本実施形態では、稜線についてそれぞれ縮退領域、コーナー領域、フィレット干渉領域及び基本領域を算出して、稜線全体について縮退領域、コーナー領域、フィレット干渉領域及び基本領域に応じてフィレットが作成されているが、稜線について縮退領域、コーナー領域及びフィレット干渉領域の少なくとも1つの領域を算出して、算出された領域に応じてフィレットを作成するようにすることも可能である。
このように、本実施形態に係る自動フィレットの作成では、三次元形状モデルから稜線が抽出され、抽出された稜線に作成するフィレットのフィレット半径が取得され、抽出された稜線のうち合流点に合流する複数の稜線について、合流点からフィレット半径に基づいて設定された所定距離だけ離れた境界点までの領域がコーナー領域として算出される。そして、稜線のコーナー領域について、合流点に合流する複数の稜線の境界点についてそれぞれフィレット半径に基づいてフィレットの断面ラインが算出され、断面ライン間を接続する中間ラインが算出され、断面ラインと中間ラインによって囲まれる閉領域内に曲面が形成されてフィレットが作成される。
これにより、三次元形状モデルのフィレットが作成される稜線のうち合流点に合流する複数の稜線にフィレットを作成するとフィレットどうしが干渉するコーナー領域について、コーナー領域の境界点についてそれぞれ算出されたフィレットの断面ラインと断面ライン間を接続する中間ラインによって囲まれる閉領域内に曲面を形成してフィレットを形成することができるので、データベースを要することなく、三次元形状モデルに確実に且つ自動的にフィレットを作成することができる。
合流点に合流する複数の稜線にフィレットを作成するとフィレットどうしが干渉するコーナー領域について、フィレットを作成する順番によってフィレットの形状が異なったり三次元形状モデルによってはフィレットを作成すること自体ができなくなったりすることを防止することができ、三次元形状モデルに確実に且つ自動的にフィレットを作成することができる。
また、稜線のコーナー領域について、断面ラインと中間ラインによって囲まれる閉領域内に分割中心点が算出され、分割中心点と断面ライン及び中間ラインの中点とをそれぞれ接続する分割ラインが算出され、断面ライン及び中間ラインと断面ライン及び中間ラインの中点とにそれぞれ接続する分割ラインとによって囲まれる分割領域にそれぞれ自由曲面が形成されてフィレットが作成されることにより、三次元形状モデルに確実にフィレットを作成することができる。
また、2つの稜線のみが合流する合流点で2つの稜線間角度が所定角度以下である2つの稜線について、合流点から2つの稜線にそれぞれフィレットを作成するとフィレットどうしが干渉する境界点までの領域が縮退領域として算出され、稜線の縮退領域について、フィレットどうしが干渉しないようにフィレット半径を補正した補正フィレット半径のフィレットが作成される。これにより、2つの稜線のみが合流する合流点で2つの稜線間角度が所定角度以下である2つの稜線にフィレットを作成するとフィレットどうしが干渉する縮退領域について、フィレットどうしが干渉することを回避してフィレットを作成することができる。
また、コーナー領域を除く稜線について、稜線と該稜線に最も近い他の稜線とにそれぞれフィレットを作成するとフィレットどうしが干渉する領域がフィレット干渉領域として算出され、稜線のフィレット干渉領域について、フィレットどうしが干渉しないようにフィレット半径を補正した補正フィレット半径のフィレットが作成される。これにより、稜線と該稜線に最も近い他の稜線とにそれぞれフィレットを作成するとフィレットどうしが干渉するフィレット干渉領域について、フィレットどうしが干渉することを回避してフィレットを作成することができる。
また、稜線について、縮退領域、コーナー領域及びフィレット干渉領域を除く領域が基本領域として算出され、稜線の基本領域について、フィレット半径のフィレットが作成される。これにより、稜線についてそれぞれフィレットどうしが干渉する縮退領域、コーナー領域及びフィレット干渉領域とそれ以外の基本領域とに分類し、縮退領域、コーナー領域及びフィレット干渉領域についてはフィレットどうしの干渉を回避してフィレットを作成すると共に基本領域についてはフィレット半径のフィレットを形成することができ、三次元形状モデルに確実に且つ自動的にフィレットを作成することができる。
次に、本発明の第2実施形態に係る自動フィレットの作成について説明する。なお、第2実施形態に係る自動フィレットの作成において、第1実施形態に係る自動フィレットの作成と同様の部分については説明を省略する。
図48は、本発明の第2実施形態に係る自動フィレットの作成による分割ラインの算出を説明するための説明図である。本発明の第2実施形態に係る自動フィレットの作成においても、分割ラインを算出する際には、図48(a)に示すように、分割中心点Pzにおける断面ラインLS1、LS2、LS3、中間ラインLM1、LM2、LM3の中点PS1M、PS2M、PS3M、PM1M、PM2M、PM3Mに向かう方向の接線ベクトルV1MF(S1、M2)、V1MF(S2、S3)、V1MF(S3、M1)、V2MF(S3、M1)、V2MF(S1、M2)、V2MF(S2、M3)が算出される。
本実施形態では次に、図48(b)に示すように、接線ベクトルV1MF(S1、M2)について、隣り合う接線ベクトルV2MF(S3、M1)との外積ベクトルV1MF(S1、M2)×V2MF(S3、M1)が算出される。他の接線ベクトルV2MF(S3、M1)、V1MF(S2、M3)、V2MF(S1、M2)、V1MF(S3、M1)、V2MF(S2、M3)についてもそれぞれ、同一方向に隣り合う接線ベクトルV1MF(S2、M3)、V2MF(S1、M2)、V1MF(S3、M1)、V2MF(S2、M3)、V1MF(S1、M2)との外積ベクトルが算出される。そして、接線ベクトルについてそれぞれ算出された隣り合う接線ベクトルとの外積ベクトルの平均値が算出され、外積ベクトルの平均値が分割中心点Pzの法線ベクトルVzとして算出される。
図49は、前記自動フィレットの作成による分割ラインの算出を説明するための別の説明図である。分割中心点Pzの法線ベクトルVzが算出されると、図49(a)に示すように、接線ベクトルV1MF(S1、M2)、V1MF(S2、M3)、V1MF(S3、M1)、V2MF(S3、M1)、V2MF(S1、M2)、V2MF(S2、M3)がそれぞれ分割中心点Pzを通って分割中心点Pzの法線ベクトルVzと直交する平面に投影されて補正された補正接線ベクトルV1MF(S1、M2)´、V1MF(S2、M3)´、V1MF(S3、M1)´、V2MF(S3、M1)´、V2MF(S1、M2)´、V2MF(S2、M3)´が算出される。
図49(b)に示すように、接線ベクトルV1MF(S1、M2)が分割中心点Pzを通って分割中心点Pzの法線ベクトルVzと直交する平面FXY(二点鎖線で示す平面)に投影されて補正された補正接線ベクトルV1MF(S1、M2)´が算出される。他の補正接線ベクトルV1MF(S2、M3)´、V1MF(S3、M1)´、V2MF(S3、M1)´、V2MF(S1、M2)´、V2MF(S2、M3)´についても同様にして算出される。
本実施形態では、接線ベクトルV1MF(S1、M2)、V1MF(S2、M3)、V1MF(S3、M1)、V2MF(S3、M1)、V2MF(S1、M2)、V2MF(S2、M3)に代えて補正接線ベクトルV1MF(S1、M2)´、V1MF(S2、M3)´、V1MF(S3、M1)´、V2MF(S3、M1)´、V2MF(S1、M2)´、V2MF(S2、M3)´を用いて、分割中心点Pzと、断面ラインLS1、LS2、LS3、中間ラインLS1、LS2、LS3の中点PS1M、PS2M、PS3M、PM1M、PM2M、PM3Mを接続する分割ラインが算出される。
分割ラインが算出されると、断面ラインと中間ラインによって囲まれる閉領域内が分割ラインによって分割された分割領域が複数形成され、分割領域にそれぞれ自由曲面が形成されてフィレットが作成される。
このように、本実施形態に係る自動フィレットの作成では、分割中心点における断面ライン及び中間ラインの中点にそれぞれ向かう方向の接線ベクトルが同一平面に投影されて補正された補正接線ベクトルを用いることにより、分割中心点において分割領域を滑らかに接続することができるので、分割中心点においてフィレットを滑らかに形成することができる。
次に、本発明の第3実施形態に係る自動フィレットの作成について説明する。なお、第3実施形態に係る自動フィレットの作成において、第1実施形態及び第2実施形態に係る自動フィレットの作成と同様の部分については説明を省略する。
図50は、本発明の第3実施形態に係る自動フィレットの作成による断面ラインと中間ラインによって囲まれる閉領域内の曲面の形成を説明するための説明図である。
本発明の第3実施形態に係る自動フィレットの作成においても、第2実施形態と同様に、分割ラインを算出する際に、分割中心点Pzにおける断面ライン、中間ラインの中点に向かう方向の接線ベクトルがそれぞれ、分割中心点Pzを通って分割中心点Pzの法線ベクトルVzと直交する平面に投影されて補正された補正接線ベクトルV1MF(S1、M2)´、V1MF(S2、M3)´、V1MF(S3、M1)´、V2MF(S3、M1)´、V2MF(S1、M2)´、V2MF(S2、M3)´が算出される。
そして、補正接線ベクトルV1MF(S1、M2)´、V1MF(S2、M3)´、V1MF(S3、M1)´、V2MF(S3、M1)´、V2MF(S1、M2)´、V2MF(S2、M3)´を用いて、図50に示すように、分割中心点Pzと、断面ラインLS1、LS2、LS3、中間ラインLM1、LM2、LM3の中点PS1M、PS2M、PS3M、PM1M、PM2M、PM3Mを接続する分割ラインLS1D´、LS2D´、LS3D´、LM1D´、LM2D´、LM3D´が算出される。
分割ラインが算出されると、断面ラインLS1、LS2、LS3と中間ラインLM1、LM2、LM3によって囲まれる閉領域A1内が分割ラインLS1D´、LS2D´、LS3D´、LM1D´、LM2D´、LM3D´によって分割されて分割領域A11´〜A16´が複数形成される。
そして、分割領域A11´〜A16´についてそれぞれ、分割領域A11´〜A16´を構成する断面ライン、中間ライン及び2つの分割ラインにそれぞれ直交する分割領域A11´〜A16´の内方側に向かう方向の勾配ベクトルが算出される。
図51は、前記自動フィレットの作成による断面ラインと中間ラインによって囲まれる閉領域内の曲面の形成を説明するための別の説明図である。勾配ベクトルを算出する際には、分割領域A11´〜A16´を構成する断面ライン、中間ライン及び2つの分割ラインのそれぞれについて両側の端点における直交する方向の勾配ベクトルが算出される。
図51(a)に示すように、断面ラインLS2、中間ラインLM2及び2つの分割ラインLM2D´、LS2D´によって囲まれる分割領域A13´では、断面ラインLS2について、一方の端点PS2Mにおける直交する方向の勾配ベクトルとして、端点PS2Mにおけるコーナー基準点Tcへの方向ベクトルVS2Mが算出され、他方の端点PS2Eにおける直交する方向の勾配ベクトルとして、端点PS2Eにおけるコーナー基準点Tcへの方向ベクトルVS2Mが算出される。
中間ラインLM2については、一方の端点PS2Eにおける直交する方向の勾配ベクトルとして、端点PS2Eである断面ラインLS2の終点PS2Eにおけるコーナー境界点PS2に向かう方向の接線ベクトルVLS2Eが算出され、他方の端点PM2Mにおける直交する方向の勾配ベクトルとして、端点PM2Mにおけるコーナー基準点Tcへの方向ベクトルVM2Mが算出される。
本実施形態では、分割ラインLM2D´については、一方の端点PM2Mにおける直交する方向の勾配ベクトルとして、中間ラインLM2の中点PM2Mにおける分割領域A13´の内方側に向かう方向の接線ベクトルVLM2M1が算出され、他方の端点である分割中心点Pzにおける直交する方向の勾配ベクトルとして、補正接線ベクトルV2MF(S1、M2)´と分割中心点Pzの法線ベクトルVzとの外積ベクトルV2MF(S1、M2)´×Vzが算出される。
分割ラインLS2D´については、一方の端点である分割中心点Pzにおける直交する方向の勾配ベクトルとして、図51(b)に示すように、分割中心点Pzの法線ベクトルVzと補正接線ベクトルV1MF(S2、M3)´との外積ベクトルVz×V1MF(S2、M3)´が算出され、他方の端点PS2Mにおける直交する方向の勾配ベクトルとして、断面ラインLS2の中点PS2Mにおける分割領域A13´の内方側に向かう方向の接線ベクトルVLS2M2が算出される。
分割領域A11´〜A16´を構成する断面ライン、中間ライン及び2つの分割ラインのそれぞれについて両側の端点における直交する方向の勾配ベクトルが算出されると、各ラインの両側の端点間について直交する分割領域A11´〜A16´の内方側に向かう方向の勾配ベクトルが算出される。
図51(a)に示すように、分割領域A13´では、断面ラインLS2の両側の端点PS2M、PS2E間について直交する分割領域A13´の内方側に向かう方向の勾配ベクトルVS22は、両側の端点PS2M、PS2Eにおける直交する方向の勾配ベクトルVS2M、VS2Mから補間法、具体的には線形補間法を用いて算出される。
中間ラインLM2については、中間ラインLM2の両側の端点PS2E、PM2M間について直交する分割領域A13´の内方側に向かう方向の勾配ベクトルVM21は、両側の端点PS2E、PM2Mにおける直交する方向の勾配ベクトルVLS2E、VM2Mから補間法を用いて算出される。
分割ラインLM2D´については、分割ラインLM2D´の両側の端点PM2M、Pz間について直交する分割領域A13´の内方側に向かう方向の勾配ベクトルVM2D1´は、両側の端点PM2M、Pzにおける直交する方向の勾配ベクトルVLM2M1、V2MF(S1、M2)´×Vzから補間法を用いて算出される。
分割ラインLS2D´については、分割ラインLS2D´の両側の端点Pz、PS2M間について直交する分割領域A13´の内方側に向かう方向の勾配ベクトルVS2D2´は、両側の端点Pz、PS2Mにおける直交する方向の勾配ベクトルVz×V1MF(S2、M3)´、VLS2M2から補間法を用いて算出される。
分割領域A11´、A12´、A14´〜A16´についても、分割領域A13´と同様にして、分割領域を構成する断面ライン、中間ライン及び2つの分割ラインにそれぞれ直交する分割領域の内方側に向かう方向の勾配ベクトルが算出される。
図51(a)に示すように、分割領域A13´に分割ラインLM2D´を挟んで隣接する分割領域A14´では、分割ラインLM2D´の勾配ベクトルを算出する際に、一方の端点PM2Mにおける直交する方向の勾配ベクトルとして、中間ラインLM2の中点PM2Mにおける分割領域A14´の内方側に向かう方向の接線ベクトルVLM2M2が算出され、他方の端点である分割中心点Pzにおける直交する方向の勾配ベクトルとして、分割中心点Pzの法線ベクトルVzと補正接線ベクトルV2MF(S1、M2)´との外積ベクトルVz×V2MF(S1、M2)´が算出される。
また、分割ラインLM2D´の両側の端点PM2M、Pz間について直交する分割領域A14´の内方側に向かう方向の勾配ベクトルVM2D2´は、両側の端点PM2M、Pzにおける直交する方向の勾配ベクトルVLM2M2、Vz×V2MF(S1、M2)´から補間法を用いて算出される。
分割領域A14´を構成する分割ラインLM2D´の両側の端点PM2M、Pzにおける直交する方向の勾配ベクトルVLM2M2、Vz×V2MF(S1、M2)´はそれぞれ、分割領域A13´を構成する分割ラインLM2D´の両側の端点PM2M、Pzにおける直交する方向の勾配ベクトルVLM2M1、V2MF(S1、M2)´×Vzの逆ベクトルとして算出され、分割領域A14´を構成する分割ラインLM2D´の両側の端点PM2M、Pz間について直交する分割領域A14´の内方側に向かう方向の勾配ベクトルVM2D2´は、分割領域A13´を構成する分割ラインLM2D´の両側の端点PM2M、Pz間について直交する分割領域A13´の内方側に向かう方向の勾配ベクトルVM2D1´の逆ベクトルとして算出される。
図51(b)に示すように、分割領域A13´に分割ラインLS2D´を挟んで隣接する分割領域A12´についても、分割ラインLS2D´の勾配ベクトルを算出する際に、一方の端点である分割中心点Pzにおける直交する方向の勾配ベクトルとして、補正接線ベクトルV1MF(S2、M3)´と分割中心点Pzの法線ベクトルVzとの外積ベクトルV1MF(S2、M3)´×Vzが算出され、他方の端点PS2Mにおける直交する方向の勾配ベクトルとして、断面ラインLS2の中点PS2Mにおける分割領域A12´の内方側に向かう方向の接線ベクトルVLM2M1が算出される。
また、分割ラインLS2D´の両側の端点Pz、PS2M間について直交する分割領域A12´の内方側に向かう方向の勾配ベクトルVS2D1´は、両側の端点Pz、PS2Mにおける直交する方向の勾配ベクトルV1MF(S2、M3)´×Vz、VLS2M1から補間法を用いて算出される。
分割領域A12´を構成する分割ラインLS2D´の両側の端点Pz、PS2Mにおける直交する方向の勾配ベクトルV1MF(S2、M3)´×Vz、VLS2M1についてもそれぞれ、分割領域A13´を構成する分割ラインLS2D´の両側の端点Pz、PS2Mにおける直交する方向の勾配ベクトルVz×V1MF(S2、M3)´、VLS2M2の逆ベクトルとして算出され、分割領域A12´を構成する分割ラインLS2D´の両側の端点Pz、PS2M間について直交する分割領域A12´の内方側に向かう方向の勾配ベクトルVS2D1´についても、分割領域A13´を構成する分割ラインLS2D´の両側の端点Pz、PS2M間について直交する分割領域A13´の内方側に向かう方向の勾配ベクトルVS2D2´の逆ベクトルとして算出される。
本実施形態では、分割領域A11´〜A16´を構成する断面ライン、中間ライン及び2つの分割ラインにそれぞれ直交する分割領域A11´〜A16´の内方側に向かう方向の勾配ベクトルを算出すると、分割ラインを挟んで隣接する分割領域について該分割ラインにそれぞれ直交する分割領域の内方側に向かう方向の勾配ベクトルが逆ベクトルとして算出される。
このようにして、分割領域A11´〜A16´を構成する断面ライン、中間ライン及び2つの分割ラインにおける勾配ベクトルが算出されると、分割領域にそれぞれ自由曲面が形成されてフィレットが作成される。
このように、本実施形態に係る自動フィレットの作成では、分割ラインを挟んで隣接する分割領域について該分割ラインにそれぞれ直交する分割領域の内方側に向かう方向の勾配ベクトルが逆ベクトルとして算出されることにより、分割ラインを挟んで隣接する分割領域についてフィレットをより滑らかに形成することができる。
第3実施形態では、分割中心点Pzにおける断面ライン、中間ラインの中点に向かう方向の接線ベクトルが補正された補正接線ベクトルを用いて分割ラインを算出すると共に分割ラインに直交する分割領域の内方側に向かう方向の勾配ベクトルを算出しているが、分割中心点Pzにおける断面ライン、中間ラインの中点に向かう方向の接線ベクトルが補正された補正接線ベクトルに代えて、第1実施形態に係る分割中心点Pzにおける断面ライン、中間ラインの中点に向かう方向の接線ベクトルを用い、第3実施形態と同様にして、第1実施形態に係る分割中心点Pzにおける断面ライン、中間ラインの中点に向かう方向の接線ベクトルを用いて分割ラインを算出すると共に分割ラインに直交する分割領域の内方側に向かう方向の勾配ベクトルを算出するようにすることも可能である。
かかる場合についても、分割ラインを挟んで隣接する分割領域について該分割ラインにそれぞれ直交する分割領域の内方側に向かう方向の勾配ベクトルが逆ベクトルとして算出されることにより、分割ラインを挟んで隣接する分割領域についてフィレットをより滑らかに形成することができる。
本実施形態では、三次元形状モデルから抽出された稜線の各構成点についてそれぞれ計算されているが、稜線に所定間隔をあけて設定されたサンプリング点を用いて計算を行い、サンプリング点間について線形補間法などの補間法を用いて計算することも可能である。
本発明は、例示された実施の形態に限定されるものではなく、本発明の要旨を逸脱しない範囲において、種々の改良及び設計上の変更が可能である。