説明

曲面生成装置及び曲面生成プログラム

【課題】凹形状を含むN辺形領域を覆うB−スプライン曲面を生成する、曲面生成装置を提供する。
【解決手段】曲面生成装置1は、N辺形領域に基づいて局所座標系を設定し、生成する曲面の範囲を規定する4つの境界平面を作成する平面生成部10と、N辺形領域の境界稜線上の複数の点から境界平面へ延びる横断線分を生成する線分生成部20と、判定事項を判定する判定部30と、判定事項に関連する境界稜線に属する横断線分を削除し、当該境界稜線についてオフセット曲線を設定し、このオフセット曲線と当該境界稜線とで新たな横断線分を再生成する線分再構成部40と、横断線分とその境界平面との交点からN辺形領域にあてはめる曲面の境界曲線を生成する境界曲線生成部50と、境界曲線と各横断線分上の各点からN辺形領域にあてはめる曲面を生成する曲面生成部60と、を備えている。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、3次元モデル表面のN辺形領域に曲面をあてはめる曲面内挿技術に係り、特に凹形状を含むN辺形領域にフィットする曲面を生成する曲面生成装置及び曲面生成プログラムに関する。
【背景技術】
【0002】
3次元CADシステムにおける形状変形操作では、トリム曲面が生成されることが多い。曲面をトリミングしている境界稜線は、曲面上に許容誤差範囲内で乗っている曲線である。従って、曲面制御点とトリミングしている境界稜線とを別々に変形すると、曲面と境界稜線との整合性が失われる。そのため、曲面制御点を直接移動したり、境界稜線の形状を変形したりする場合には、トリム曲面としての整合性を維持しながら変形する必要があり、形状変形上の大きな制約となっている。
【0003】
ダイレクトモデリングを用いて稜線を直接変形したい場合、変形後の稜線が許容誤差範囲内で乗るような制約条件で、曲面の制御点を移動しなければならない。
【0004】
一般にトリム曲面上に乗る稜線列で構成される閉領域は、N辺形領域である。N辺形領域の境界稜線を局所変形した後で、変形後の稜線が許容誤差以内で乗るように曲面制御点を移動することは、容易ではない。そのため、局所変形後に、幾何学的な整合性を維持できるような自由曲面を新しく当てはめる手法が有効である。
【0005】
一般に、標準規格部品の形状モデルは、図18に示すように、切り欠き形状を含んでいる場合が多い。図18(a)は標準規格部品の3次元モデルである。図18(b)は、図18(a)の一つの面S1を取り出して、制御点C10を表示したものである。この図18(b)から、面S1は元の曲面を切り欠いた切欠形状として表現されている。
【0006】
N辺形領域に対して、曲面を当てはめる手法は、曲面内挿法ベースとN-side Filling法ベースとに大別される(非特許文献1)。曲面内挿法ベースは、閉領域の境界と自由曲面の境界曲線が一致するような自由曲面を生成する手法である。N-side Filling 法ベースは、境界曲線で囲まれる閉領域を包含する4辺形のトリム曲面を生成する手法である。
【0007】
先ず、曲面内挿法ベースの手法について記述する。非特許文献2には、角度許容誤差εを導入し、隣接するパッチ間の共有境界稜線上の任意の点における法線ベクトルの角度がε未満となる曲面当てはめ手法が提案されている。また、非特許文献3には、非特許文献2の「曲面当てはめ手法」を有理曲線でも扱えるように拡張した手法が提案されている。また、非特許文献4は、NURBSの持つ位相についての制約を緩和し、幾何学的に重要でない制御点を間引いたT-splineを提案している。T-splineはT字接続を許すため制御点を大幅に削減できる。
【0008】
これらの非特許文献2〜4の提案手法は、非特許文献5の細分割手法に基づいてN辺形領域の内部に中心点と分割曲線を発生させて、N辺形領域をN枚の4辺形面に分割し、各4辺形領域に曲面当てはめをする手法である。例えば、図19に示すN辺形領域R5について説明する。N辺形領域R5は、その外周を画する5本の凸状の稜線L1〜L5と、切欠形状を画する1本の稜線L6とから構成されている。上記手法(非特許文献2〜4)に基づいて、図19のN辺形領域R5に曲面を当てはめようとすると、閉領域を表す境界稜線L6の形状によっては歪んだ形状の内部曲線L´が生成される。その結果、歪んだ曲面が生成される。また、穴を含む場合は対応できないという問題がある。
【0009】
非特許文献6では、N辺形領域を星型のパラメータfで制御可能なN辺形パッチと4辺形パッチに分割し、任意のN辺形領域へ曲面当てはめ手法が提案されている。
【0010】
非特許文献6の手法は、星型のN辺形領域を表す境界稜線を入力として、領域の内部に複数のパッチを当てはめる手法である。図20に示すように、4辺形で構成されるn枚の規則的なパッチXnを、星型のN辺形パッチ201の周りに生成する。この4辺形で構成されるパッチXnは、隣接するパッチと共通の領域Lを保持するため、4辺形パッチ間の連続性は保たれる。
【0011】
非特許文献6の手法は、パッチ間の境界をB-spline(以下、B−スプラインと表す場合もある。)に一致させることで、パッチ間の連続性を考慮した曲面当てはめが可能である。また、領域の内部に生成する星型のN辺形パッチ201の大きさはパラメータfで制御でき、任意のN辺形形状に対して曲面当てはめが可能となる。図21は、同一の境界稜線で表す領域に対して、fの値を変化させることで形状を制御した図である。図21(b)のようにfの値を小さくすると内部のN辺形パッチ201は小さくなり、図21(c)に示すようにfの値を大きくすると内部のN辺形パッチ201は大きくなる。つまり、直感的な形状操作が可能である。
【0012】
次に、トリム曲面ベースの手法について記述する。特許文献1及び非特許文献7には、N辺形領域を覆う1枚の双3次B-spline曲面をN辺形領域に当てはめる手法が提案されている。
【0013】
特許文献1及び非特許文献7の手法は、N辺形領域を覆うようなB-spline曲面と、接平面に基づいたサンプル点を利用して、曲面フィッティング手法(非特許文献8)によって曲面をN辺形領域に当てはめる。具体的には、図22(a)のように、境界稜線B11〜B14で囲まれたN辺形領域210への曲面当てはめは、以下の手順Step 1− Step 5による。
【0014】
(1)Step 1について
図22(a)に示すように、境界稜線B11〜B14を囲む4つの境界平面221,222,223,224を求める。N辺形領域210の境界稜線列の中心と境界稜線列から算出した単位法線ベクトルnを用いて平面を生成する。そして、その平面上に境界稜線列を射影し、XY平面上にバウンディングボックス230を得る。単位法線ベクトルnをZ軸とし、バウンディングボックス230からZ軸に平行な4つの境界平面221,222,223,224を得る。
【0015】
(2)Step 2について
境界稜線B11〜B14上のサンプル点とその点における境界横断導関数(非特許文献9)から、境界を横断する方向に直線を生成し、直線と境界平面221,222,223,224の交点241,242,243,244を算出する。図22(b)に示すように、境界稜線B11〜B14上のサンプル点と、直線と境界平面の交点241,242,243,244を両端点とする線分を横断線分251,252,253,254とする。
【0016】
(3)Step 3について
図22(c)に示すように、各境界平面221,222,223,224に乗る複数の横断線分の端点をB-spline曲線で補間し(非特許文献8)、N辺形領域210を囲む4辺形領域210Aを生成する。生成した4辺形領域210Aは、当てはめるB-spline曲面の境界曲線261,262,263,264となる。
【0017】
(4)Step 4について
図22(d)に示すように、横断線分251,252,253,254上に複数の点271,272,273,274(以下、点群と呼ぶ。)を発生する。発生した点群は、境界稜線上のサンプル点における接平面上に乗る。
【0018】
(5)Step 5について
Step 3で生成したB-spline曲面の境界曲線261,262,263,264と、Step 4で生成した点群を利用し、最小二乗法によりB-spline曲面の内部制御点を導出する(非特許文献8)。
【先行技術文献】
【特許文献】
【0019】
【特許文献1】特開2003−330979号公報
【非特許文献】
【0020】
【非特許文献1】Y. Muraki, K. Konno, Y. Tokuyama: “A STUDY OF SUBDIVISION METHOD TO THREE AND FIVE SIDED FACES BASED ON REGULAR POLYGON”, Proc. of IWAIT2009, (2009)
【非特許文献2】L. Piegl, W. Tiller: “Fillingn-sided regions with NURBS patches”, The VisualComputer, Vol.2, No.15, pp.77-89, (1999)
【非特許文献3】Yi-Jun. Yang, Jun-Hai. Yong, Hui. Zhang, Jean-Claude. Paul, Jia-Guang. Sun: “A rational extensionof Piegl’s method for filling n-sided holes”, ComputerAided Design, Vol.38, No.11, pp.1166-1178, (2006)
【非特許文献4】T. W. Sederberg, D. L. Cardon, G. T. Finnigan, N. S. North, J. Zheng, and T. Lyche: “T-spline Simplification andLocal Refinement”, SIGGRAPH 2004, Vol.23, No.3, pp.276-283, (2004)
【非特許文献5】E. Catmull, J. Clark “Recursively generatedB-spline surfaces on arbitrary topologicalmeshes”, ComputerAided Design, Vol.10, No.6, pp.350-355, (1978)
【非特許文献6】N. Pla-Garcia, M. Vigo-Anglada, J. Cotrina-Navau: “N-sided patches with B-spline boundaries”, Computers& Graphics, Vol.30, No.6, pp.959-970, (2006)
【非特許文献7】Y. Tokuyama, K. Konno: “Filling N-sided Region with a B-spline Surface”,Information ProcessingSociety ofJapan, Vol.43, No.10,pp.3209-3218, (2002)
【非特許文献8】L. Piegl, W. Tiller: TheNURBS Book, Springer-Verlag, (1995)
【非特許文献9】K. Konno, Y. Tokuyama, H. Chiyokura: “AG1 connectionaround complicatedcurve meshesusing C1 NURBS Boundary Gregory Patches”, Computer AidedDesign, Vol.33, No.4, pp.293-306, (2001)
【非特許文献10】K. Ueda: “Meannormal vectorto a surface boundedby Beziercurves”, ComputerAided GeometricDesign, Vol.13, No.5, pp.441-451, (1996)
【非特許文献11】G. Farin: Curvesand Surfacesfor ComputerAided GeometricDesign A Practical Guide, Academic Press, (1996)
【発明の概要】
【発明が解決しようとする課題】
【0021】
非特許文献6の手法は、星型多角形のような形状には曲面当てはめが可能である。しかし、図23に示すL字型のような凹形状を有するN辺形領域310に、非特許文献6の手法を適用することは難しい。ここで、N辺形領域310は、外周を画する境界稜線の内、4本の稜線L11〜L14がN辺形領域外側へ膨らむ凸稜線であり、2本の稜線L15,L16がN辺形領域内側方向へ入り込む角部400を構成する。以下、この角部を凹頂点400と呼ぶ。これらの稜線L15,L16によって切欠部分が形成されている。
また、非特許文献6の手法を、穴を含む形状に適用すると、内部にN辺形パッチを生成できず、その結果、曲面が生成できないという問題がある。
【0022】
非特許文献7の手法は、図23に示す凹形状を有するN辺形領域310に適用すると、図24に示すように生成される曲面350は歪んでしまうという問題がある。また、穴を含む形状に対する処理方法は,文献7には記載されていない。
【0023】
生成される曲面の形状が歪む原因は、以下の2つ(I,II)であると考えられる。
(I)横断線分(図22の符号251〜254参照)から発生した点群(図22の符号271〜274参照)が、凹頂点近傍では領域の内側に生成されること。
(II)B-spline曲面の境界稜線の生成方法が限定的であり、凹形状を含んだN辺形領域に対応されていないこと。
【0024】
上記(I)に関して、図25(a)で符号C1、C2の円内に示すように、凹頂点400につながる2本の稜線L15、L16上のサンプル点から延びた横断線分351,352はN辺形領域310の内側へ延びている。つまり、境界横断導関数がねじれている。これにより、横断線分から発生した点群もN辺形領域310の内側に生成される。
【0025】
上記(II)に関して、図25(b)、(c)で符号C3,C4の円内に示すように、凹形状の境界稜線L17,L18から発生する横断線分370,380は、互いに交差やねじれの関係になることがある。そのため、横断線分の端点から得られる点列から境界曲線を生成すると、境界曲線が歪んでしまう。
【0026】
以上の原因(I,II)のために、非特許文献7の手法は凸状の境界稜線だけから成るN辺形領域に対して歪みのないB-spline曲面を生成できるが、図25に示すような凹形状を含んだN辺形領域311〜312に対しては、歪んだ曲面が生成されることになる。
【0027】
次に、形状と空間の姿勢について考慮すると、特許文献1及び非特許文献7の手法では、4つの境界平面が境界曲線列の3次元空間上の姿勢に依存しているため、3次元空間上の3次元モデルの姿勢によって得られる結果が変わる。
【0028】
本発明は以上の点に鑑みて創作されたもので、凹形状を含むN辺形領域にあてはめる曲面を生成する、曲面生成装置及び曲面生成プログラムを提供することを目的とする。
【課題を解決するための手段】
【0029】
上記目的を達成するため、本発明の第1の構成は、3次元モデル表面の凹形状を含むN辺形領域にあてはめる曲面を生成する曲面生成装置であって、N辺形領域に基づいて局所座標系を設定し、生成する曲面の範囲を規定する境界平面を作成する平面生成部と、N辺形領域の境界稜線上の複数の点から境界平面へ延びる横断線分を生成する線分生成部と、下記の事項(G1)及び(G2)の何れに該当するかを判定する判定部と、判定部で事項(G1)又は(G2)に該当すると判断された場合に、事項(G1)又は(G2)に関連する境界稜線に属する横断線分を削除し、当該境界稜線についてオフセット曲線を設定し、このオフセット曲線と当該境界稜線とで新たな横断線分を再生成する線分再構成部と、横断線分とその境界平面との交点からN辺形領域にあてはめる曲面の境界曲線を生成する境界曲線生成部と、曲面の境界曲線と横断線分上の各点からN辺形領域にあてはめる曲面を生成する曲面生成部と、を備えたことを特徴としている。
G1:前記境界稜線が、前記N辺形領域内側へ入り込む角部を構成する縁である。
G2:前記線分生成部に基づいて生成された境界稜線上の点から延びた横断線分同士が交差している。
なお、本明細書では切欠部分,穴、また後述する凹頂点、凹稜線を1つでも含む形状を総称して凹形状と定義する。
【0030】
本発明の曲面生成装置において、好ましくは、境界曲線生成部が、前記事項(G1),(G2)に関連しない境界稜線に属する横断線分に基づいて前記境界曲線を生成する。
【0031】
上記目的を達成するために、本発明の第2の構成は、3次元モデル表面の凹形状を含むN辺形領域にあてはめる曲面を生成する曲面生成プログラムであって、コンピュータを、N辺形領域に基づいて局所座標系を設定し、生成する曲面の範囲を規定する境界平面を作成する平面生成部、N辺形領域の境界稜線上の複数の点から境界平面へ延びる横断線分を生成する線分生成部、下記の事項(G1)及び(G2)の何れに該当するかを判定する判定部、判定部で事項(G1)又は(G2)に該当すると判断された場合に、事項(G1)又は(G2)に関連する境界稜線に属する横断線分を削除し、当該境界稜線についてオフセット曲線を設定し、このオフセット曲線と当該境界稜線とで新たな横断線分を再生成する線分再構成部、横断線分とその境界平面との交点からN辺形領域にあてはめる曲面の境界曲線を生成する境界曲線生成部、境界曲線と上記横断線分上の各点から上記N辺形領域にあてはめる曲面を生成する曲面生成部、として機能させることを特徴としている。
G1:前記境界稜線が、前記N辺形領域内側へ入り込む角部を構成する縁である。
G2:前記線分生成部に基づいて生成された境界稜線上の点から延びた横断線分同士が交差している。
【0032】
本発明の曲面生成プログラムにおいて、好ましくは、境界曲線生成部が、前記事項(G1),(G2)に関連しない境界稜線に属する横断線分に基づいて境界曲線を生成する。
【発明の効果】
【0033】
本発明によれば、凹形状を有するN辺形領域の曲面生成に当たり、凹頂点近傍の横断線分を再生する。これにより、N辺形領域に適切にフィットして内挿可能な曲面を生成することができる。
【0034】
さらに、従来、凹形状はトリム曲面で表現されており,凹形状を直接変形するようなダイレクトモデリングでは境界稜線列と元の曲面との幾何学的整合性を崩さないような限定的な制約条件の下で扱われてきたが、本発明のトリム曲面への曲線メッシュ方法によるダイレクトモデリング手法を使うとトリム曲面を容易に再構成することが可能となるため、従来、モデリング作業の困難性が高く制約が多かった境界稜線の形状変更の作業等の自由度が本発明により拡大し、顕著な効果が得られる。
【図面の簡単な説明】
【0035】
【図1】本発明の実施形態に係る曲面生成装置1のブロック図である。
【図2】本発明の実施形態に係る平面生成分の機能を説明するための図である。
【図3】本発明の実施形態に係る線分生成分の機能を説明するための図である。
【図4】本発明の実施形態に係る線分生成分の機能を説明するための図である。
【図5】本発明の実施形態に係る判定部の機能を説明するための図である。
【図6】本発明の実施形態に係る判定部の機能を説明するための図である。
【図7】本発明の実施形態に係る線分再構成部の機能を説明するための図である。
【図8】凹状部を有するN辺形領域に対して従来の手法で横断線分を生成した状態を示す図である。
【図9】凹状部を有するN辺形領域に対して本発明の手法で横断線分を生成した状態を示す図である。
【図10】本発明の実施形態に係る線分再構成部の機能を説明するための図である。
【図11】本発明の実施形態に係る線分再構成部の機能を説明するための図である。
【図12】本発明の実施形態に係る線分再構成部の機能を説明するための図である。
【図13】本発明の実施形態に係る線分再構成部の機能を説明するための図である。
【図14】本発明の実施形態に係る線分再構成部の機能を説明するための図である。
【図15】本発明の実施形態に係る境界曲線生成部の機能を説明するための図である。
【図16】本発明の実施形態に係る境界曲線生成部の機能を説明するための図である。
【図17】本発明の実施形態に曲面生成装置のフローチャートである。
【図18】一般の形状モデルを示す図である。
【図19】凹状部を有するN辺形領域を示す図である。
【図20】従来の曲面内挿手法を説明するための図である。
【図21】従来の曲面内挿手法を説明するための図である。
【図22】従来の曲面内挿手法を説明するための図である。
【図23】従来の曲面内挿手法の問題を説明するための図である。
【図24】従来の曲面内挿手法の問題を説明するための図である。
【図25】従来の曲面内挿手法の問題を説明するための図である。
【発明を実施するための形態】
【0036】
以下、本発明の実施形態について、必要箇所では図面を参照しつつ詳細に説明する。
【0037】
図1は本発明の実施形態に係る曲面生成装置1のブロック図である。
曲面生成装置1は、平面生成部10と線分生成部20と判定部30と線分再構成部40と境界曲線生成部50と曲面生成部60とを備えている。
以下、構成別に説明する。
【0038】
平面生成部10は、図2に示すように、曲面の範囲を規定する4つの境界平面111〜114を作成する。ここで、曲面とは、3次元モデル表面のN辺形領域RにあてはめるB-spline曲面である。
本実施形態では、平面生成部10は、形状データ等の3次元モデルが存在する3次元空間上の姿勢に依存しない4つの境界平面111〜114を生成する。本実施形態の平面生成部10は、先ず局所座標系(dx軸、dy軸、dz軸)を設定し、その後に4つの境界平面111〜114を生成する。
【0039】
局所座標系の設定は以下の手順(A1)〜(A5)による。
(A1)N辺形領域Rの境界稜線B1〜B6の列の中心と境界稜線列から算出した単位法線ベクトルnを用いて、平均平面110を生成する(非特許文献10)。平均平面110はdx軸とdy軸とにそれぞれ平行な平面である。
(A2)境界稜線列を平均平面110に射影して、射影境界稜線列を生成する。
(A3)射影境界稜線列から一番長い稜線を選択する。式(1)に示すように、選択した稜線の始点p0と終点p1を利用し、X軸(図2中のdx軸)を決定する。
【数1】


(A4)下記式(2)に示すように、ベクトルXとnの外積ベクトルを計算し、Y軸(図2中のdy軸)を決定する。これにより、平均平面上に局所座標系のXY座標軸を設定する。
【数2】


(A5)設定したXY座標軸と、単位平均法線ベクトルnをZ軸(図2中のdz軸)として、XYZ軸からなる局所座標系を設定する。
【0040】
本実施形態の平面生成部10は、局所座標系に基づいて、射影稜線列のバウンディングボックスB′を得る。図2では、バウンディングボックスB′は、4つの線110a,110b,110c,110dで囲われている。バウンディングボックスB′とdz軸を利用して4つの境界平面111〜114を求める。具体的には、バウンディングボックスB′を構成する各線110a,110b,110c,110dから、dz軸方向に線をスイープさせることで、各境界平面111〜114が構成される。
得られた4つの境界平面111〜114は、境界曲線列の3次元空間上の姿勢と独立したものとなる。すなわち、境界平面111〜114の求め方はアフィン不変となる。
【0041】
次に線分生成部20について説明する。
線分生成部20は、図3に示すように、N辺形領域Rの境界稜線B1〜B6上の複数の点から上記境界平面111〜114へ延びる横断線分115を生成する。具体的には、線分生成部20は、従来技術と同様に、各境界稜線B1〜B6上に複数のサンプル点SPを設定し、各サンプル点SPにおける境界横断導関数(非特許文献9)から、境界、つまり境界稜線B1〜B6を横断する方向に直線を生成し、直線と境界平面111〜114の交点111B〜114Bを算出する。図3に示すように、境界稜線上のサンプル点SPと、直線と境界平面の交点111B〜114Bを両端点とする線分を横断線分115とする。
また、線分生成部20は、図4に示すように、各横断線分115を例えば4分割した点群をサンプル点SP′として生成する。このサンプル点SP′は曲面当てはめに利用される。
【0042】
次に、判定部30について説明する。
判定部30は、以下の事項G1及びG2の何れに該当するかを判定する。
G1:境界稜線B1〜B6がN辺形領域Rの内側へ入り込む角部を構成する縁である。
G2:線分生成部20に基づいて生成された境界稜線B1〜B6のサンプル点SPから延びた直線、つまり横断線分115同士が交差している。
【0043】
本実施形態の判定部30は、判定事項G1を次のようにして判断する。
例えば、図5(a)に示すように、注目する頂点をPとする。
頂点Pを共有する2本の稜線B5、B5における頂点Pの単位接線ベクトルを、図5(b)に示すように、v1,v2とする。v1,v2の外積ベクトルVを式(3)のように求める。式(4)に示すように、ベクトルVとN辺形領域Rの境界稜線列の平均法線ベクトルnとの内積を計算し、内積値が正の場合は凸頂点とし、それ以外ならば凹頂点とする。
【数3】


【数4】


このように、境界稜線B1〜B6中に一つでも凹頂点がある場合、その境界稜線をイレギュラーラインと判定する。図2に示すN辺形領域に関しては、境界稜線B5、B6がイレギュラーラインと判断される。
【0044】
また、本実施形態の判定部30は、判定事項G2を次のようにして判断する。
例えば、境界平面111〜114を求めた局所座標軸で定義されるXY平面、つまり図2の平面110に、全ての境界稜線B1〜B6と横断線分115を射影する。次に、全ての横断線分同士の干渉点を得る。
ここで、図6(A)に示すN辺形領域R1を例に説明する。N辺形領域R1は、内側へ入り込むように湾曲した凹形状の境界稜線B7を備えている。このような凹形状の境界稜線B7に、サンプル点SPを設定し、横断線分115を生成した状態が、図6(b)である。この図6(b)に矢印αで示すように、N辺形領域R1の凹形状の境界稜線B7から生成される複数の横断線分115上には、干渉点Kが1点以上存在することになる。判定部30は、このような干渉点Kを有する横断線分115が属する境界稜線B7も、イレギュラーラインと判定する。
【0045】
次に、線分再構成部40は、前述の判定部30でイレギュラーラインと判定した境界稜線の横断線分を再生成する。具体的には、上記の線分生成部20で生成されイレギュラーラインと判定された境界稜線に属する全ての横断線分を削除し、後述の境界横断導関数に基づいて横断線分を再生成する。
図2に示すN辺形領域Rに関しては、境界稜線B5、B6がイレギュラーラインとみなされるため、これらの境界稜線B5、B6に属する全ての横断線分115、詳細には図3中のβ1〜β4の各横断線分115が全て削除され、線分再構成部40によって横断線分が再生成される。
【0046】
例えば、図7に示すように、境界稜線上のそれぞれのサンプル点における接平面の法線ベクトルaと接線ベクトルbの外積を式(5)のように求める。得られるベクトルcを横断線分の方向にする。最後に、横断線分の方向ベクトルと4つの境界平面との交点を求め、最も近い交点とサンプル点で新たな横断線分を生成する。
【数5】


以上の操作を図8に示す凹形状を有するN辺形領域R,R1,R2に対して適用すると、各N辺形領域R,R1,R2のイレギュラーラインに属する横断線分が図9のように再生成される。
【0047】
次に、本実施形態の線分再構成部40における横断線分の再構成について詳述する。
図10に示すように、境界稜線B5、B6の端点の一方が凹頂点400の場合、Tangent Ribbon(非特許文献11)はねじれた状態、つまり非特許文献9の境界横断導関数はある位置から逆向きに導出される。図10のN辺形領域Rの場合、図10で符号β2、β4で示すように、凹頂点400近傍部分の境界横断導関数a0がN辺形領域Rの内部に向かって生成されている。そこで、凹頂点400を含む境界稜線B5、B6上の任意のサンプル点SPから、境界横断導関数を領域の外部へ向かって生成するために、本実施形態では基礎パッチ法(非特許文献9)を用いる。
【0048】
図11は、接続する2枚の曲面S1、S2を表している。
境界稜線上の点から得られる境界横断導関数は、式(6)を満たす必要がある。
【数6】


ただし、k(v)、h(v)はvのスカラー関数、Sは曲面Sにおけるu方向の微分ベクトル、Sは曲面Sにおけるu方向の微分ベクトル、Sは曲面Sにおけるv方向の微分ベクトルである。
式(6)にv=0、v=1をそれぞれ代入すると式(7)が得られる。
【数7】


ただし、k、k、h、hは実数である。本手法では、h=0、h=0と仮定すると式(8)が得られる。
【数8】


ここで、式(7)を満たすためにvに関するスカラー関数k(v)を式(9)に示すように1次式と仮定する。
【数9】


式(6)、式(9)より次式(10)が得られる。
【数10】


式(10)は、図11に表す曲面制御点間のベクトルを用い、次式(11)のように書き換えることができる。ただし、B(v)は、Bernstein基底関数である。
【数11】


式(11)の右辺は4次式になるので、aの部分の次数を2次に制限する。具体的には、a、aは境界から、aは次式(12)で求める。
【数12】

【0049】
以上の式により、境界横断導関数S(0,v)は次式(13)で表される。
【数13】

【0050】
図10のN辺形領域Rにおける凹頂点400では、境界横断導関数が逆向きに生成されているため、S(1、0)=−aと表される。
式(13)にv=0を代入すると、式(14)が得られる。
【数14】

【0051】
以上で求めた式より、境界稜線上の点の境界横断導関数を求める。境界稜線上の各点から得られた境界横断導関数S(0,v)を正規化し、同じ長さtだけ伸ばした点群を用い、オフセット曲線を生成する。境界稜線上のパラメータvにおける点をCv(v)とすると、オフセット曲線生成に用いる点P(v)は、次式(15)で表される。
【数15】



【0052】
本実施形態の線分再構成部40は、イレギュラーラインと判断された境界稜線、例えば、図2のN辺形領域Rの境界稜線B5、B6に対してそれぞれ、上記式(15)に基づいて、図12に示すように、境界稜線B5、B6からN辺形領域外側方向へ離れた位置に補助線、つまりオフセット曲線SL1、SL2を生成する。具体的には、式(15)に基づいて再生成した横断線分の端点集合をB-spline曲線で近似し、オフセット曲線とする。
【0053】
線分再構成部40は、さらに、オフセット曲線SL1、SL2と対応する境界稜線B5、B6との間に、図13に示すように、境界稜線B5、B6上のサンプル点からN辺形領域外側へ延びる直線を引く。これにより、横断線分115′が再生成される。
【0054】
さらに、線分再構成部40は、再生成した全ての横断線分115′を、例えば4分割した点群をサンプル点として生成する。このサンプル点は曲面当てはめに利用される。
【0055】
ここで、L字型に切り欠いた形状、例えば凹頂点を有する形状に適用した場合、図13に矢印β5で示すように、凹頂点400近傍領域に再生成した横断線分115′同士の干渉が生じる。生成した横断線分115′同士が干渉すると、オフセット曲線が歪んでしまう。そこで、本実施形態の線分再構成部40は、再生成した横断線分115′同士が干渉する場合、図14(a)に矢印β6で示すように干渉していた横断線分115′だけを削除する。例えば、線分再構成部40における、横断線分115′同士が干渉するかの判断手法は、前述したと同様に、XY平面110に各横断線分115′を投影して、干渉点Kが存在するかで判断する。
【0056】
本実施形態の線分再構成部40は、さらに、データの補充処理を行う。これは、例えば、図14(a)に示すように干渉する横断線分を削除した場合、データ不足が生じるためである。線分再構成部50は、データ不足が生じる凹頂点近傍において、図14(b)に示すように、オフセット曲線からの逆探索を行い、横断線分を再生成する。例えば、オフセット曲線上の曲率が最も高い点401と、凹頂点400を端点と結ぶ横断線分115″を追加し、さらにその線分を例えば4等分する点をサンプル点として生成する。
【0057】
このように、本実施形態の線分再構成部40は、凹頂点近傍の境界稜線に対して、はじめに凹頂点を含む境界稜線上の点から境界横断導関数に基づき同じ長さだけ伸ばした線分を生成し、その後で、生成した線分の端点集合をB-spline曲線で近似することにより、オフセット曲線を生成する。つまり、オフセット曲線は、境界稜線における接平面に基づいて生成される。本手法では、オフセット曲線をTangent Ribbon(非特許文献11)と考えて、横断線分を生成することによって、凹頂点近傍についても閉領域の外側に点群を発生できる。
【0058】
次に、境界曲線生成部50について説明する。
境界曲線生成部50は、B-spline曲面の4本の境界曲線を生成する。境界曲線生成部50は、凹形状を画する境界稜線に属する横断線分を利用しない。境界曲線生成部50は、外側へ膨らむ線(以下、凸稜線と呼ぶ。)から得られる横断線分のみを利用して境界曲線を生成する。つまり、判定部30でイレギュラーラインと判断された境界稜線に属する横断線分は、本実施形態では利用しない。これは、非特許文献7の手法が、凹頂点を含む稜線や凹稜線から生成する横断線分が互いに交差やねじれの関係になり、このような横断線分と境界平面の交差により得られる点列が波打ったり、ループしたりするため、境界曲線が歪む問題があるためである。
そこで、本実施形態では、凸稜線から得られる横断線分のみを利用することで、境界曲線の歪みを回避する。
【0059】
L字型の凹形状を有するN辺形領域Rを例に説明する。図15(a)は凹頂点近傍を除いた凸稜線から横断線分を求め、B-spline曲面の境界曲線151〜154を生成した結果である。
ここで、4本のB-spline曲線151〜154はそれぞれ独立した曲線であるため、各曲線151〜154の端部を、各境界平面同士が交差するコーナー部160で一致させて、閉じた領域を生成する必要がある。
【0060】
本実施形態の境界曲線生成部は、図15(b)に示すように、境界曲線151〜154の端点をそれぞれ一致させるために、各境界曲線151〜154の端点を隣接する境界平面まで、端点の接線方向に延長する。例えば、境界平面上の点をP1、P2とすると、これらの点の平均をとった点P3を各境界曲線151〜154の端点とする。その後、横断線分における境界平面上の端点に、点P3を加えた点列を与えて、再フィッティングする。図16は閉じた境界曲線を生成した結果を示す。凹頂点につながる稜線や凹稜線から生成する横断線分の端点を含まないようにすることで、境界曲線が自己干渉する問題を解決する。
【0061】
次に、曲面生成部60について説明する。
曲面生成部60は、境界曲線生成部50によって生成されたB-spline曲面の境界稜線151〜154と、線分生成部20によって生成された横断線分上のサンプル点及び線分再構成部40によって再生成された横断線分上のサンプル点を利用して、最小二乗法によりB-spline曲面の内部制御点を導出し、B-spline曲面を生成する。
【0062】
以上の曲面生成装置1は例えばコンピュータから構成される。このコンピュータは、前もってインストールされたソフトウェアとしての曲面生成プログラムを実行することで、上記の手法、即ちB-spline曲面の生成を実現する。具体的には、コンピュータが曲面生成プログラムを実行することで、コンピュータが前述の平面生成部10と、線分生成部20と、判定部30と、線分再構成部40と、境界曲線生成部50と、曲面生成部60として機能する。なお、プログラムは、通信回線を介してダウンロードしたものや、CD−ROMやDVD−ROM、携帯型記憶装置などの記憶媒体に記憶されているものを利用する。
【0063】
なお、複数のコンピュータをLANやインターネット、公衆回線網等を介して相互に接続して、平面生成部10と、線分生成部20と、判定部30と、線分再構成部40と、境界曲線生成部50と、曲面生成部60との動作を複数のパーソナルコンピュータによって分散処理させてもよい。コンピュータは従来公知の構成のものを使用することができ、RAM,ROM,ハードディスクなどの記憶装置と、キーボード,ポインティング・デバイスなどの操作装置と、操作装置等からの指示により記憶装置に格納されたデータやソフトウェアを処理する中央処理装置(CPU)と、処理結果等を表示するディスプレイなどを備えている。このコンピュータは汎用の装置であっても、専用の装置として構成されたものであってもよい。
【0064】
次に、本発明の実施形態に係る曲面生成装置1の動作について図17を用いて説明する。
先ず、N辺形領域を指定する(ステップS1)。この指定はユーザーによって行われる。例えば、コンピュータがプログラムを実行させて、ディスプレイに対象とする3次元モデルを表示し、ユーザーがマウスなどを操作してN辺形領域を指定する。指定されたN辺形領域のデータはRAMやハードディスクなどの格納部に保存される。
【0065】
このように、N辺形領域の指定を契機に、コンピュータは曲面生成プログラムの処理を開始する。
先ず、平面生成部10が、デフォルトのXYZ座標系中に配置されているN辺形領域のデータに基づいて、局所座標系を設定する(ステップS2)。
【0066】
平面生成部10が境界平面を作成する(ステップS3)。具体的には平面生成部10は、局所座標系のXY平面に、N辺形領域の各境界稜線を投影させて、バウンディングボックス(射影曲線列に外接する境界箱)を作成する。例えば、バウンディングボックスはX,Y軸に平行な四辺形である。そして、平面生成部10はバウンディングボックスの各辺をZ軸方向へスイープして4つの境界平面を生成する。
【0067】
線分生成部20はN辺形領域の境界曲線に基づいた横断線分を生成する(ステップS4)。線分生成部20は、先ず各境界曲線上に複数個のサンプル点を生成する。次に、線分生成部20は、各サンプル点と、そのサンプル点における境界横断導関数(非特許文献9)から、境界稜線を横断する方向に直線を生成する。さらに、線分生成部20は、この直線と境界平面との交点を算出する。そして、境界稜線上のサンプル点と、直線と境界平面の交点とを両端点とする線分、つまり横断線分を生成する。線分生成部20は、横断線分を、例えば4分割した点群をサンプル点として生成する。
【0068】
判定部30が、判定事項G1、G2を判定する(ステップS5)。
G1:各境界稜線が、角形領域内側へ入り込む角部を構成する縁である。
G2:線分生成部20に基づいて生成された境界稜線のサンプル点から延びた直線同士が交差している。
【0069】
上記判定部30で境界稜線がイレギュラーラインであると判断された場合(ステップS5でNGと判断された場合)、本実施形態は例外処理を行う(ステップS6)。つまり、線分再構成部40が、イレギュラーラインと判断された境界稜線に関する横断線分を作り直す。具体的には、イレギュラーラインの境界稜線に対して、前述の非特許文献9の境界横断導関数を利用せずに、前述の式(15)を用いて当該境界稜線からN辺形領域外側方向へ離れた位置に補助線、つまりオフセット曲線を作成する。そして、このオフセット曲線と当該境界稜線とを結ぶ、新たな横断線分を生成する。線分再構成部40は、再生成した全ての横断線分を、例えば4分割した点群をサンプル点として生成する。
【0070】
境界曲線生成部50がB-spline曲面の境界曲線を生成する(ステップS7)。ここで、前述の判定部30で一部の境界稜線がイレギュラーラインであると判断された場合には、非イレギュラーライン、つまり直線や外側へ膨らむ凸状の境界稜線に基づいて作成された横断線分だけを利用して、境界曲線を生成する。
【0071】
曲面生成部60は、境界曲線生成部50によって生成されたB-spline曲面の境界稜線と、線分生成部20によって生成された横断線分上のサンプル点及び線分再構成部40によって再生成された横断線分上のサンプル点を利用して、B-spline曲面を生成する(ステップS8)。具体的には、境界曲線を境界とする最小2乗法により近似曲面をB−スプライン曲面として生成する。
【0072】
このような本実施形態によれば、凹頂点、凹稜線を1つでも含む形状、つまり凹形状を有するN辺形領域に対して、例えば以下の処理を行う。
(1)図8(a)の形状のように、境界稜線の端点のいずれかが凹頂点の場合は、その境界稜線に属する横断線分をオフセット曲線に基づいて生成する。
(2)図8(b)の形状のように境界稜線が凹稜線の場合、又は図8(c)の形状のように複数の境界稜線の横断線分同士が干渉する場合、その境界稜線に属する横断線分をオフセット曲線に基づいて生成する。
【0073】
従来技術では、凹形状近傍で接平面に基づいた点群がN辺形領域の内側に生成される。そして、横断線分の交差やねじれによって点群が空間に散らばり、例えば本当の表面でないところに点群が発生してフィッティングが曖昧になる。
一方、本発明の実施形態に係る曲面生成装置1によれば、凹形状を有するN辺形領域の曲面生成に当たり、例えば凹頂点近傍の横断線分を再生する。これにより、N辺形領域に適切にフィットして内挿可能な曲面を生成することができる。
【0074】
〔実験結果〕
本手法を、凹形状を含む切欠形状を表すN辺形領域へ適用した。
下記の表1は、標準規格部品から得られた切欠形状を含む9種類の曲面形状に対して形状評価をした結果である。
【表1】


生成した曲面と元の曲面の距離の平均である平均誤差値、距離の最大である最大誤差値、バウンディングボックスの大きさと最大距離の割合を示した。また、生成した曲面と元の境界稜線の距離の平均である平均誤差値、距離の最大である最大誤差値、バウンディングボックスの大きさと最大距離の割合を示した。表1から分かるように、トリム曲面を良い精度で近似できている。
【0075】
以上詳述したが、本発明は発明の趣旨を逸脱しない範囲において様々な形態で実施できる。
N辺形領域の形状は、図示例に限定されるものではない。
【符号の説明】
【0076】
1 曲面生成装置
10 平面生成部
20 線分生成部
30 判定部
40 線分再構成部
50 境界曲線生成部
60 曲面生成部

【特許請求の範囲】
【請求項1】
3次元モデル表面の凹形状を含むN辺形領域にあてはめる曲面を生成する曲面生成装置であって、
上記N辺形領域に基づいて局所座標系を設定し、生成する曲面の範囲を規定する境界平面を作成する平面生成部と、
上記N辺形領域の境界稜線上の複数の点から上記境界平面へ延びる横断線分を生成する線分生成部と、
下記の事項(G1)及び(G2)の何れに該当するかを判定する判定部と、
上記判定部で上記事項(G1)又は(G2)に該当すると判断された場合に、事項(G1)又は(G2)に関連する境界稜線に属する横断線分を削除し、当該境界稜線についてオフセット曲線を設定し、このオフセット曲線と当該境界稜線とで新たな横断線分を再生成する線分再構成部と、
上記横断線分とその境界平面との交点からN辺形領域にあてはめる曲面の境界曲線を生成する境界曲線生成部と、
上記境界曲線と上記横断線分上の各点から上記N辺形領域にあてはめる曲面を生成する曲面生成部と、
を備えたことを特徴とする、曲面生成装置。
G1:前記境界稜線が、前記N辺形領域内側へ入り込む角部を構成する縁である。
G2:前記線分生成部に基づいて生成された境界稜線上の点から延びた横断線分同士が交差している。
【請求項2】
前記境界曲線生成部が、前記事項(G1),(G2)に関連しない境界稜線に属する横断線分に基づいて前記境界曲線を生成することを特徴とする、請求項1に記載の曲面生成装置。
【請求項3】
3次元モデル表面の凹形状を含むN辺形領域にあてはめる曲面を生成する曲面生成プログラムであって、
コンピュータを、
上記N辺形領域に基づいて局所座標系を設定し、生成する曲面の範囲を規定する境界平面を作成する平面生成部、
上記N辺形領域の境界稜線上の複数の点から上記境界平面へ延びる横断線分を生成する線分生成部、
下記の事項(G1)及び(G2)の何れに該当するかを判定する判定部、
上記判定部で上記事項(G1)又は(G2)に該当すると判断された場合に、事項(G1)又は(G2)に関連する境界稜線に属する横断線分を削除し、当該境界稜線についてオフセット曲線を設定し、このオフセット曲線と当該境界稜線とで新たな横断線分を再生成する線分再構成部、
上記横断線分とその境界平面との交点からN辺形領域にあてはめる曲面の境界曲線を生成する境界曲線生成部、
上記境界曲線と上記横断線分上の各点から上記N辺形領域にあてはめる曲面を生成する曲面生成部、
として機能させることを特徴とする、曲面生成プログラム。
G1:前記境界稜線が、前記N辺形領域内側へ入り込む角部を構成する縁である。
G2:前記線分生成部に基づいて生成された境界稜線上の点から延びた横断線分同士が交差している。
【請求項4】
前記境界曲線生成部が、前記事項(G1),(G2)に関連しない境界稜線に属する横断線分に基づいて前記境界曲線を生成することを特徴とする、請求項3に記載の曲面生成プログラム。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate

【図9】
image rotate

【図10】
image rotate

【図11】
image rotate

【図12】
image rotate

【図13】
image rotate

【図14】
image rotate

【図15】
image rotate

【図16】
image rotate

【図17】
image rotate

【図18】
image rotate

【図19】
image rotate

【図20】
image rotate

【図21】
image rotate

【図22】
image rotate

【図23】
image rotate

【図24】
image rotate

【図25】
image rotate