(57)【要約】【課題】境界稜線の情報から４方向においてＧ１連続となる曲面を生成する曲面形成装置及びプログラムを提供する。【解決手段】各境界稜線に関する情報から境界平面を生成する平面生成部２１、隣接面との連続性を判定する第１判定部２２、各境界稜線にサンプル点を生成する第１サンプル点生成部２３、サンプル点をＢ−スプライン曲線で近似し閉領域を示すための境界曲線を生成する境界曲線生成部２４、閉領域の隣接面とのＧ１連続性を判定する第２判定部２５、閉領域に当てはめる曲面を生成するためのサンプル点を生成する第２サンプル点生成部２６、サンプル点を近似しＢ−スプライン曲面の内部制御点を算出する曲面生成部２７、２曲面間をＧ１連続するため横断ベクトルを算出した上で内部制御点で表されるＢ−スプライン曲面が隣接面とＧ１連続するための制御点を算出する曲面間接続生成部２８、及び、その制御点を隣接面との接続部分の制御点とし曲面を再生成する曲面再生成部２９、を備える。【選択図】図１
2015001789.tif 000002
【特許請求の範囲】
【請求項１】
三次元形状の各境界稜線に関する情報から、生成される曲面の範囲を定める複数の境界平面を生成する平面生成部と、
上記三次元形状の各境界稜線に対し、隣接面との連続性を判定する第１判定部と、
上記第１判定部の判定結果に応じて、上記三次元形状の各境界稜線に対してサンプル点を生成する第１サンプル点生成部と、
上記第１サンプル点生成部で生成したサンプル点をＢ−スプライン曲線で近似して、曲面を当てはめる閉領域を示すための境界曲線を生成する境界曲線生成部と、
上記閉領域が隣接面とＧ１連続性を有するかを判定する第２判定部と、
上記第２判定部の判定結果に応じて、上記閉領域に当てはめる曲面を生成するためのサンプル点を生成する第２サンプル点生成部と、
上記第２サンプル点生成部で生成したサンプル点を近似することによりＢ−スプライン曲面の内部制御点を算出する曲面生成部と、
２曲面間をＧ１連続にするため横断ベクトルを算出した上で、上記曲面生成部により算出された内部制御点で表されるＢ−スプライン曲面が隣接面とＧ１連続にするための制御点を算出する曲面間接続生成部と、
上記曲面間接続生成部で算出した制御点を、隣接面との接続部分の制御点とし、曲面を再生成する曲面再生成部と、
を備える、曲面生成装置。
【請求項２】
前記第２サンプル点生成部は、前記第２判定部の結果、前記閉領域が隣接面とＧ１連続性を有する場合には、N-side filling法を用いて前記閉領域内部の面上点をサンプル点として生成する、請求項１に記載の曲面生成装置。
【請求項３】
前記第１サンプル点生成部は、前記第１判定部の結果、境界稜線が隣接面とＧ１連続性を有する場合には、Ｇ１連続となる稜線上にサンプル点を生成する、請求項１に記載の曲面生成装置。
【請求項４】
前記第２判定部は、前記閉領域が隣接面とＧ１連続性を有するか、及び、前記閉領域が穴を有するかを判定し、
前記第２サンプル点生成部は、前記第２判定部において、前記閉領域が穴を有すると判定した場合には、穴の境界線上にサンプル点を生成する、
請求項１に記載の曲面生成装置。
【請求項５】
プロセッサを有するコンピュータに格納されて上記プロセッサにより実行されることにより、
三次元形状の各境界稜線に関する情報から、生成される曲面の範囲を定める複数の境界平面を生成する平面生成部と、
上記三次元形状の各境界稜線に対し、隣接面との連続性を判定する第１判定部と、
上記第１判定部の判定結果に応じて、上記三次元形状の各境界稜線に対してサンプル点を生成する第１サンプル点生成部と、
上記第１サンプル点生成部で生成したサンプル点をＢ−スプライン曲線で近似して、曲面を当てはめる閉領域を示すための境界曲線を生成する境界曲線生成部と、
上記閉領域が隣接面とＧ１連続性を有するかを判定する第２判定部と、
上記第２判定部の判定結果に応じて、上記閉領域に当てはめる曲面を生成するためのサンプル点を生成する第２サンプル点生成部と、
上記第２サンプル点生成部で生成したサンプル点を近似することによりＢ−スプライン曲面の内部制御点を算出する曲面生成部と、
２曲面間をＧ１連続にするため横断ベクトルを算出した上で、上記曲面生成部により算出された内部制御点で表されるＢ−スプライン曲面が隣接面とＧ１連続にするための制御点を算出する曲面間接続生成部と、
上記曲面間接続生成部で算出した制御点を、隣接面との接続部分の制御点とし、曲面を再生成する曲面再生成部と、
を機能として上記コンピュータが備えるようにした、曲面生成プログラム。
【請求項６】
前記第２サンプル点生成部は、前記第２判定部の結果、前記閉領域が隣接面とＧ１連続性を有する場合には、N-side filling法を用いて前記閉領域内部の面上点をサンプル点として生成する、請求項５に記載の曲面生成プログラム。
【請求項７】
前記第１サンプル点生部は、前記第１判定部の結果、境界稜線が隣接面とＧ１連続性を有する場合には、Ｇ１連続となる稜線上にサンプル点を生成する、請求項５に記載の曲面生成プログラム。
【請求項８】
前記第２判定部は、前記閉領域が隣接面とＧ１連続性を有するか、及び、前記閉領域が穴を有するか、を判定し、
前記第２サンプル点生成部は、前記第２判定部において、前記閉領域が穴を有すると判定した場合には、穴の境界線上にサンプル点を生成する、
請求項５に記載の曲面生成プログラム。
【請求項９】
三次元形状の各境界稜線の両端点につながる稜線から、その境界稜線を共有する２つの曲面が連続して接続できるか否かを判定し、
任意の稜線の両端点において２つの曲面が連続すると判定された場合には、境界横断導関数から連続の条件を満たすように制御点を算出する一方で、求める閉領域内の制御点をN-Side Filling法により算出し、
これら算出した制御点によって曲面を生成する、曲面生成方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、三次元形状の各境界稜線に関する情報から曲面を生成する曲面生成装置、曲面生成プログラム及び曲面生成方法に関する。
【背景技術】
【０００２】
ＣＡＤなどの三次元モデルを活用してコンピュータ内で試作及び組立を行うデジタルモックアップや、様々な文書に三次元モデルを内包させて分かりやすい文書を作成する三次元ドキュメントソリューションは、製造業の競争力を高めるための重要な技術である。三次元モデルを圧縮し転送する技術は、コア技術の一つであり、デジタルエンジニアリングにおけるインフラの一つである。三次元モデルを圧縮するシステムは存在するものの、データ量が年々肥大化し、圧縮データサイズはまだまだ大きい。そこで、三次元モデルのデータを効率的に圧縮する技術や転送する技術が求められている。
【０００３】
従来、ＣＡＤデータをＣＡＤシステム間で送受信する場合、完全なデータを受け渡すことが難しく、修正を余儀なくされていた。また、ＣＡＤデータにはトリム曲面を含むことが多く、幾何学的な整合性を維持しながら、トリム曲面の形状を変形することは困難であった。また、トリム曲面をデータ配信する際には、送信情報が多いため、送受信が難しかった。そこで、ＣＡＤデータなどの三次元データを効率良く圧縮し転送するために、送信側において、もともとのデータをそのまま送信するのではなく、モデルを構築してそのモデル情報のみを送信し、受信側で再構築することにより、データ圧縮することが考えられている（例えば、非特許文献１）。
【０００４】
非特許文献１には、曲面モデルをインターネットで流通させるために、ラティスメッシュで曲面を表現し、三次元モデルのデータ量を圧縮する技術が開示されており、その技術では、曲面モデルからラティスメッシュを構築して転送し、その後受け側で曲面を再構成している。
【０００５】
従来、Ｎ辺形領域に対する曲面当てはめ手法は、曲面内挿法と、N-side filling 法に大別される。曲面内挿法は、閉領域の境界と自由曲面の境界が一致するような自由曲面を生成する手法である。一方、N-side filling法は、境界稜線で囲まれる閉領域を包含する４辺形のトリム曲面を生成する手法である。
【０００６】
曲面内挿法は、複数の曲面パッチによる曲面手法であり、Ｎ辺形領域に対してCatmull-Clark再分割法に基づき内部曲線を発生させ、Ｎ辺形領域をＮ枚の４辺形領域に分割する。分割した各４辺形領域に曲面パッチを当てはめ、各曲面パッチ間がＧ１連続となる曲面を生成する。Piegl らは、隣接するパッチ間の共有する境界稜線上の任意の点における法線ベクトルの角度がε未満となる曲面当てはめ手法を提案している。その手法では、パッチ間を接続する制御点を境界横断導関数により算出することで、パッチ間の連続性を制御する。Yang らは、Pieglらの手法を有理曲線をも扱えるように拡張している。また、Garciaらは、Ｎ辺形領域を星形のパラメータで制御可能なＮ辺形パッチと４辺形パッチに分割し、任意のＮ辺形領域への曲面当てはめ手法を提案している。
【０００７】
一方、N-side filling法ベースの手法として、Ｎ辺形領域を１枚のＢ-スプライン曲線で覆う手法がある。この手法では、Ｎ辺形領域の外側に４本のＢ-スプライン曲線を生成する。また、閉領域を表す境界領域の接平面に基づいて、領域の外側にサンプル点を生成する。その後、生成したＢ-スプライン曲線とサンプル点とを利用して、最小二乗法により曲面制御点を算出する。
【０００８】
本発明者らは、このN-side filling法ベースの手法を、凹形状や穴を含む形状に適用できるように拡張し、さらに、１方向で隣接する面とＧ１連続による接続可能となるように拡張した（特許文献２）。
【０００９】
特許文献１には、曲面で囲まれたＮ辺形領域を覆うような、Ｂ−スプライン曲線を生成する手法が開示されている。また、特許文献２には、本発明者らによる提案に係り、三次元もの曲線で囲まれるＮ辺形領域に対して、隣接する領域との滑らかな接合を考慮して自由曲面を当てはめる手法、つまり、自由曲面内挿法により、トリム曲面の境界曲線から精度良く曲面を再構築することが開示されている。
【００１０】
非特許文献２には、Ｎ辺形領域を滑らかに内挿する曲面手法について開示され、この手法では曲面形状を制御することが可能な制御パラメータを導入することにより、隣接面との滑らかな曲線を生成することができる。
【先行技術文献】
【特許文献】
【００１１】
【特許文献１】特開２００３−３３０９７９号公報
【特許文献２】特開２０１２−３４３２号公報
【非特許文献】
【００１２】
【非特許文献１】Akira Wakita, Makoto Yajima, Tsuyoshi Harada, Hiroshi Toriya, Hiroaki Chiyokura “A Compact and Qualified 3D Representation With Lattice Mesh and Surface for the Internet ACM Web3D-VRML 2000”, Proceedings of the fifth symposium on 3D Web technology，Pages 45-51, ACM-Press, 2000
【非特許文献２】N. Pla-Garcia, M. Vigo-Anglada, J. Cotrina-Navau, “N-sided patches with B-spline boundaries”, Computer & Graphics, Vol.30, No.6, pp.9590970, 2006
【非特許文献３】Piegl, L.; Tiller, W.: Filling n-sided regions with NURBS patches, The Visual Computer, 15(2), 1999, 77-89, DOI:10.1007/s003710050163
【発明の概要】
【発明が解決しようとする課題】
【００１３】
しかしながら、従来の手法では、凹形状や穴を含まない面については、隣接面とＧ１連続に接続することが可能であるが、凹形状や穴を含む場合に隣接面とは１方向や相対する方向である場合でしかＧ１連続に面を接続することができない。つまり、機械部品などの各種ＣＡＤデータでは、隣接する面を複数有しており、しかも凹形状などの特殊な形状を有している場合も多く、このような意匠性に富んだ三次元モデルに関するデータには対応することができなかった。
【００１４】
そこで、本発明は、凸形状や凹形状を有する領域の境界稜線に関する情報から曲面を生成でき、しかも４方向全てでＧ１連続となる曲面当てはめ手法を採用して曲面を生成することができる、曲面形成装置、曲面形成プログラム及び曲面生成方法を提供することを目的とする。
【課題を解決するための手段】
【００１５】
上記目的を達成するために、本発明の曲面形成装置は、
三次元形状の各境界稜線に関する情報から、生成される曲面の範囲を定める複数の境界平面を生成する平面生成部と、
三次元形状の各境界稜線に対し、隣接面との連続性を判定する第１判定部と、
第１判定部の判定結果に応じて、三次元形状の各境界稜線に対してサンプル点を生成する第１サンプル点生成部と、
第１サンプル点生成部で生成したサンプル点をＢ−スプライン曲線で近似して、曲面を当てはめる閉領域を示すための境界曲線を生成する境界曲線生成部と、
閉領域が隣接面とＧ１連続性を有するかを判定する第２判定部と、
第２判定部の判定結果に応じて、閉領域に当てはめる曲面を生成するためのサンプル点を生成する第２サンプル点生成部と、
第２サンプル点生成部で生成したサンプル点を近似することによりＢ−スプライン曲面の内部制御点を算出する曲面生成部と、
２曲面間をＧ１に連続にするため横断ベクトルを算出した上で、曲面生成部により算出された内部制御点で表されるＢ−スプライン曲面が隣接面とＧ１に連続にするための制御点を算出する曲面間接続生成部と、
曲面間接続生成部で算出した制御点を、隣接面との接続部分の制御点とし、曲面を再生成する曲面再生成部と、を備える。
【００１６】
好ましくは、第２サンプル点生成部は、第２判定部の結果、閉領域が隣接面とＧ１連続性を有する場合には、N-side filling法を用いて閉領域内部の面上点をサンプル点として生成する。
【００１７】
好ましくは、第１サンプル点生成部は、第１判定部の結果、境界稜線が隣接面とＧ１連続性を有する場合には、Ｇ１連続となる稜線上にサンプル点を生成する。
【００１８】
好ましくは、第２判定部は、閉領域が隣接面とＧ１連続性を有するか、及び、閉領域が穴を有するかを判定し、第２サンプル点生成部は、第２判定部において、閉領域が穴を有すると判定した場合には、穴の境界線上にサンプル点を生成する。
【００１９】
上記目的を達成するために、本発明の曲面生成プログラムは、プロセッサを有するコンピュータに格納されてプロセッサにより実行されることにより、
三次元形状の各境界稜線に関する情報から、生成される曲面の範囲を定める複数の境界平面を生成する平面生成部と、
三次元形状の各境界稜線に対し、隣接面との連続性を判定する第１判定部と、
第１判定部の判定結果に応じて、三次元形状の各境界稜線に対してサンプル点を生成する第１サンプル点生成部と、
第１サンプル点生成部で生成したサンプル点をＢ−スプライン曲線で近似して、曲面を当てはめる閉領域を示すための境界曲線を生成する境界曲線生成部と、
閉領域が隣接面とＧ１連続性を有するかを判定する第２判定部と、
第２判定部の判定結果に応じて、閉領域に当てはめる曲面を生成するためのサンプル点を生成する第２サンプル点生成部と、
第２サンプル点生成部で生成したサンプル点を近似することによりＢ−スプライン曲面の内部制御点を算出する曲面生成部と、
２曲面間をＧ１連続にするため横断ベクトルを算出した上で、曲面生成部により算出された内部制御点で表されるＢ−スプライン曲面が隣接面とＧ１連続にするための制御点を算出する曲面間接続生成部と、
曲面間接続生成部で算出した制御点を、隣接面との接続部分の制御点とし、曲面を再生成する曲面再生成部と、
を機能としてコンピュータが備えるよう構成されている。
【００２０】
好ましくは、第２サンプル点生成部は、第２判定部の結果、閉領域が隣接面とＧ１連続性を有する場合には、N-side filling法を用いて閉領域内部の面上点をサンプル点として生成する。
【００２１】
好ましくは、第１サンプル点生部は、第１判定部の結果、境界稜線が隣接面とＧ１連続性を有する場合には、Ｇ１連続となる稜線上にサンプル点を生成する。
【００２２】
好ましくは、第２判定部は、閉領域が隣接面とＧ１連続性を有するか、及び、閉領域が穴を有するかを判定し、第２サンプル点生成部は、第２判定部において、閉領域が穴を有すると判定した場合には、穴の境界線上にサンプル点を生成する。
【００２３】
本発明の曲面生成方法は、三次元形状の各境界稜線の両端点につながる稜線から、その境界稜線を共有する２つの曲面が連続に接続できるか否かを判定し、任意の稜線の両端点において２つの曲面が連続すると判定された場合には、境界横断導関数から連続の条件を満たすように制御点を算出する一方で、求める閉領域内の制御点をN-Side Filling法により算出し、これら算出した制御点によって曲面を生成する。
【発明の効果】
【００２４】
本発明によれば、凸形状や凹形状を有する領域の境界稜線に関する情報から曲面を生成でき、しかも４方向全てでＧ１連続となる曲面当てはめ手法を採用して曲面を生成することができる。
【図面の簡単な説明】
【００２５】
【図１】本発明の実施形態に係る曲面生成プログラムが格納されて実行されるコンピュータの構成を示す図である。
【図２】本発明の実施形態に係る曲面生成装置の機能ブロック構成図である。
【図３】本発明の実施形態に係る曲面生成方法の流れ図である。
【図４】図３に示す曲面生成方法で生成される三次元形状の一例を示す図である。
【図５】図３のステップ２の処理を説明するための図である。
【図６】図３のステップ６の処理を説明するための図である。
【図７】図３のステップ７の処理を説明するための図である。
【図８】（ａ）〜（ｃ）は図３のステップ９の処理を説明するための図である。
【図９】図３のステップ１０の処理を説明するための図である。
【図１０】（ａ）及び（ｂ）は図４に示す三次元形状において図３のステップ１２の処理を説明するための図である。
【図１１】図３のステップ１４の処理を説明するための図である。
【図１２】（ａ）及び（ｂ）は図３のステップ１６の処理を説明するための図である。
【図１３】（ａ）及び（ｂ）は図３のステップ１７、１８の処理を説明するための図である。
【図１４】図３とは異なる本発明の実施形態に係る曲面生成方法の流れ図である。
【図１５】（ａ）〜（ｃ）はそれぞれ生成した曲面形状と制御点を示す図である。
【図１６】（ａ）〜（ｃ）は生成した曲面と基の曲面との距離を示す図である。
【図１７】（ａ）〜（ｃ）は隣接面との連続性を評価するために法線ベクトルを表示した結果を示す図である。
【発明を実施するための形態】
【００２６】
以下、図面を参照しながら、本発明の実施をするための形態について説明する。
【００２７】
〔本発明の実施形態に係る曲面生成装置、曲面生成プログラム及び曲面生成方法〕
本発明の実施形態に係る曲面生成装置、曲面生成プログラム及び曲面生成方法が適用されるシステムについて説明する。このシステムは、ＣＡＤシステムの間でＣＡＤデータを送受信する送信側と受信側とからなる。送信側では、従来、三次元の形状を制御点と境界曲線で表現していた曲面、特にトリム曲面のデータに関し、曲面の制御点を削除して境界稜線のみを保存するようにし、境界曲線のデータを受信側に送る。受信側では、受信した境界曲線のデータに対し、後述する曲面当てはめ方法を適用して曲面を再構成する。これにより、圧縮された形状データの送受信や保存を可能とする。
【００２８】
上述の曲面当てはめ方法について、本発明の実施形態に係る、三次元形状の各境界稜線に関する情報から曲面を生成する曲面生成装置、曲面生成プログラム及び曲面生成方法と共に詳細に説明する。
【００２９】
本発明の実施形態に係る曲面生成プログラムは、図１に示すように、入力部１１、出力部１２、記憶部１３、演算処理部（プロセッサ）１４及び制御部１５を備えるコンピュータ１０の記憶部１３に格納され、演算処理部１４によって実行されることにより、曲面生成方法を実現可能とする。
【００３０】
演算処理部１４において、曲面生成プログラムが実行されることで、図２に示す曲面生成装置を構成することができる。図２は、本発明の実施形態に係る曲面生成装置の機能ブロック構成図である。曲面生成装置２０は、平面生成部２１、第１判定部２２、第１サンプル点生成部２３、境界曲面生成部２４、第２判定部２５、第２サンプル点生成部２６、曲面生成部２７、曲面間接続生成部２８、曲面再生成部２９を備え、例えば、前述のＣＡＤ間システムの受信側に配置される。
【００３１】
以下、曲面生成装置２０の各部について、曲面生成方法の流れを説明しながら詳細に説明する。図３は、本発明の実施形態に係る曲面生成方法の流れ図である。図４は、図３に示す曲面生成方法で生成される三次元形状の一例を示す図であり、図５〜図１３は、図３の各ステップでの処理を模式的に示す図である。図４に示す三次元形状は、上と左にＧ１連続となる隣接面Ｆ１，Ｆ２を持つ凹形状であり、隣接面Ｆ１，Ｆ２とＧ１連続に接続する閉領域Ｆに対する曲面当てはめを例に挙げて説明する。
【００３２】
ステップ１において、入力部１１などを経由して、三次元形状の各境界稜線に関する情報が入力される。ここで、入力される情報は、複数の曲面で構成される三次元形状に関する情報としてトリム曲面の有効領域を表す境界稜線、具体的には、Ｎ辺形領域の境界稜線の列が入力される。例えば図４に示す領域Ｆ１とＦ２とＧ１連続で接続する領域Ｆに対して曲面を当てはめることが想定され、領域Ｆの境界稜線１０１乃至１０６に関する情報が入力される。
【００３３】
ステップ２において、平面生成部２１が、ステップ１において入力された各境界稜線に関する情報に基づいて、曲面生成装置２０で生成される曲面の範囲を定めるための複数の境界平面を生成する。具体的には、先ず、デフォルトのＸＹＺ座標系中に配置されるＮ辺形領域のデータに基づいて局所座標系が設定される。次に、局所座標系のＸＹ平面に、Ｎ辺形領域の各境界稜線を投影させ、バウンディングボックス（射影曲線列に外接する境界箱）を作成する。そして、バウンディングボックスの各辺をＺ軸方向へスイープして４つの境界平面を生成する（特許文献２参照）。
【００３４】
図４に示す三次元形状の例では、ステップ２により、図５に示すように、境界稜線１０１を囲むように境界平面１１１が、境界稜線１０２を囲むように境界平面１１２が、境界稜線１０３，１０６を囲むように境界平面１１３が、境界稜線１０４，１０５を囲むように境界平面１１４が、それぞれ生成される。この境界平面１１１乃至１１４によりバウンディングボックス１１５が画定される。
【００３５】
ステップ３において、第１判定部２２が、三次元形状の各境界稜線に対し、稜線の凹凸を判定する。第１判定部２２は、境界稜線の各端点、つまり、曲線同士を連結する連結点周りの凹凸を判定するために、次のような処理を行う。或る頂点を共有する２本の稜線におけるその頂点の単位接線ベクトルを求め、それらの単位接線ベクトルの外積ベクトルを求める。そして、外積ベクトルとＮ辺形領域の境界稜線列の平均法線ベクトルとの内積を求める。求めた内積が正の値であれば、凸頂点であり、それ以外の値であれば凹頂点とする。各境界稜線の端点が凸頂点か凹頂点であるかが判定されるので、その判定結果に基づいて、後述するステップ４，ステップ５において、境界稜線が、凹稜線か凸稜線かＧ１連続かを判定する。
【００３６】
ステップ４では、第１判定部２２において、境界稜線が隣接面との連続性の有無を、つまり境界稜線を共有する二つの面がＧ１連続か否かを判定する。
【００３７】
ステップ５では、第１判定部２２において、ステップ４で境界稜線がＧ１連続となる稜線でないと判定された場合には、その境界稜線の凹凸性に関しステップ３にて凸稜線であるか否かを判定する。つまり、面の境界稜線が凸稜線か否かが判定される。ここで、凸稜線とは、境界稜線の両端点が凸頂点となるような稜線と定義する。また、境界稜線の少なくとも一つの端点が凹頂点である場合には凹稜線と定義する。
このように、第１判定部２２は、入力された各境界稜線に対して、隣接面との連続性、凹凸稜線の判断を行う。
【００３８】
次に、ステップ６及びステップ７において、第１サンプル点生成部２３が、第１判定部２２の判定結果に応じて、三次元形状の各稜線に対してサンプル点を生成する。具体的には、第１サンプル点生成部２３は、第１判定部２２の判定結果に対応して、境界稜線が隣接面とＧ１連続性を有する場合には、ステップ７においてＧ１連続となる稜線上にサンプル点を生成する一方、境界稜線が凸稜線である場合には、ステップ６において、境界横断導関数（ＣＢＴＬｓ）を求め、バウンディングボックスとの交点を求め、その交点をサンプル点とする。ここで、境界横断導関数について説明すると、境界稜線の両側に二つの曲面が存在するので、両曲面の境界線を横切る方向のベクトル関数が境界横断導関数であり、この関数によって曲面の接平面が定まる。
【００３９】
図４に示す三次元形状の例では、第１判定部２２において、境界稜線１０１が隣接面Ｆ１とＧ１連続性を有し、境界稜線１０２が隣接面Ｆ２とＧ１連続性を有すると判定される。よって、図６に示すように、ステップ７において、第１サンプル点生成部２３により境界稜線１０１及び１０２上にサンプル点１２１が生成される。一方、第１判定部２２において、境界稜線１０３，１０４がＧ１連続性を有さないでかつ凸稜線であると判定される。よって、図７に示すように、ステップ６において、境界稜線１０３，１０４毎に境界横断導関数から境界平面１１３，１１４を横断する方向に延びる横断線分１２２がそれぞれ求められ、境界横断導関数１２２とバウンディングボックス１１５との交点がサンプル点１２３として生成される。
【００４０】
このように、第１判定部２２の判定結果に応じて、境界稜線が有する特徴、例えば、隣接面とのＧ１連続性、凹稜線又は凸稜線の何れかによってサンプル点の生成の仕方が異なる。
【００４１】
ステップ８において、ステップ１で入力された全ての境界稜線に対してステップ４からステップ７までの一連の処理が実行されたかが判定され、上述の処理を繰り返し行う。つまり、閉領域Ｆとなる面を構成する全ての境界稜線について処理をしたか否かを判定し、処理が終了していない場合にはステップ４に戻る。
【００４２】
次に、ステップ９において、境界曲線生成部２４が、第１サンプル点生成部２３で生成したサンプル点を境界稜線毎にＢ−スプライン曲線で近似し、４本のＢ−スプライン曲線を接続することにより、閉領域を取り囲むように境界曲線を生成する。具体的には、境界曲線生成部２４が、先ず、境界稜線毎の各サンプル点をＢ−スプライン曲線で近似してＢ−スプライン曲線を生成し、次いで、４本のＢ−スプライン曲線を接続する。Ｂ−スプライン曲線を接続するには、各Ｂ−スプライン曲線の端点を接線方向に伸ばし、バウンディングボックスとの交点を求め、４つのコーナーそれぞれにおいて、交点の中点を算出して、その中点をサンプル点として新たに加え、再度サンプル点をＢ−スプライン曲線で近似する。これにより、閉領域を取り囲むように境界曲線が生成される。
【００４３】
図４に示す三次元形状の例では、図８（ａ）に示すように、境界曲線生成部２４が、サンプル点１２１を近似してＢ−スプライン曲線１３１，１３２を生成すると共に、サンプル点１２３を近似してＢ−スプライン曲線１３３，１３４を生成する。そして、図８（ｂ）に示すように、Ｂ−スプライン曲線１３１とＢ−スプライン曲線１３３とを接続し、Ｂ−スプライン曲線１３２とＢ−スプライン曲線１３４とを接続し、Ｂ−スプライン曲線１３３とＢ−スプライン曲線１３４とを接続する。
【００４４】
４本のＢ−スプライン曲線１３１乃至１３４を接続する際には、各Ｂ−スプライン曲線の端点を接線方向に伸ばし、例えば図８（ｂ）においてふき出して拡大した図に示すように、先ず、Ｂ−スプライン曲線の端点の延長線１３３ａ，１３４ａとバウンディングボックス１１５との各交点１３５，１３６を求める。次いで、４つのコーナーそれぞれにおいて、交点１３５，１３６の中点１３７を算出し、その中点１３７をサンプル点として新たに加える。加えたサンプル点を含めて再度Ｂ−スプライン曲線１３８，１３９でそれぞれ近似する。これにより、図８（ｃ）に示すように、Ｂ−スプライン曲線１３１，１３２，１３８，１３９によって、閉領域を囲む閉じた境界曲線１４０が形成される。
【００４５】
以上のプロセスを経ることにより、入力された境界稜線に関する情報から、Ｂ−スプライン曲面の境界曲線が生成される。これに続く以下のプロセスを経ることにより、閉領域を規定する曲面を生成する。
【００４６】
先ず、ステップ１０において、第２サンプル点生成部２６が、前述のステップ６で求めた境界横断導関数から境界を横断する方向に直線を求め、その直線と前述のステップ２で求めた境界平面との交点を結ぶ横断線分を求め、横断線分上に複数のサンプル点を求める。
【００４７】
図４に示す三次元形状の例では、前述のステップ６で境界横断導関数から境界を横断する方向に延びる横断線分１２２が求まっているので、図９に示すように、その横断線分１２２上に複数のサンプル点１４１を生成する。
【００４８】
次に、ステップ１１において、第２判定部２５によって、閉領域が隣接面とＧ１連続に接する曲面であるか否かを判定する。
【００４９】
そして、ステップ１１において閉領域が隣接面とＧ１連続に接する曲面であると判定されると、ステップ１２において、第２サンプル点生成部２６が、N-side filling 法を適用し、閉領域の内側の面上点をサンプル点として算出する。つまり、ステップ１１において、すべての境界稜線に対して、各境界稜線をＧ１連続に接続するかどうかが判定され、１本でもＧ１連続に接続すると判定されると、ステップ１２において、第２サンプル点生成部２６により、閉領域の内側の面上点をサンプル点として算出する。ステップ１２では，ステップ１で生成した４本のＢ−スプライン曲線とは別に、連続性を考慮しないで曲面当てはめがなされる。
【００５０】
図４に示す三次元形状の例では、N-Side filling法を用いて閉領域Fに曲面を当てはめると、図１０（ａ）において線上に示すように制御ポリゴン１４２が形成される。ここで、制御ポリゴン１４２の格子点が曲面の制御点を表す。そして、図１０（ｂ）に示すように、図１０（ａ）に示す曲面の制御点から、閉領域Ｆの内側の面上点をサンプル点１４５として算出する。
【００５１】
また、ステップ１１において閉領域が隣接面とＧ１連続に接する曲面でないと判定されると、ステップ１３において、第２判定部２５によって、当該面が凹形状か否かを判定する。その際、ステップ３での判定結果を利用する。ここで、凹形状を有する面とは、面を構成する境界稜線の端点が凹頂点を含む面と定義する。
【００５２】
ステップ１３において閉領域が凹形状であると判定されると、ステップ１４において、第２サンプル点生成部２６は、閉領域のうち凹境界稜線に対して境界横断導関数を生成し、オフセット曲線に基づいてサンプル点を生成する。
【００５３】
図４に示す三次元形状の例では、図１１に示すように閉領域Ｆのうち凹境界稜線（図４において符号１０５，１０６で示す稜線）上の各点の境界横断導関数を求め、その境界横断導関数を正規化して所定の長さだけ伸ばした点群を用いてオフセット曲線を生成する。つまり、凹境界稜線に対してそれぞれ外側へ向けて離れた位置に補助線となるオフセット曲線を生成する。このオフセット曲線は、凹境界稜線における接平面に基づいて生成され、横断線分が生成される。横断線分の生成により凹頂点の近傍においても閉領域の外側に点群がサンプル点１５０として追加される。この手法については本発明者により提案した特許文献２において詳細に説明している。なお、図１１ではステップ１０で生成したサンプル点１４１も合わせて示している。
【００５４】
このように、第２判定部２５は、曲面を当てはめる閉領域が隣接面とＧ１連続であるか否か、凹形状であるか否かを判定する。また、第２サンプル点生成部２６は、閉領域に当てはめる曲面を算出するために、サンプル点を生成する。その際、第２判定部２５において判定された閉領域の特徴、すなわち、曲面を当てはめる閉領域の隣接面とのＧ１連続性及びその閉領域の凹形状の有無によって、サンプル点の生成の仕方が異なる。
【００５５】
次に、ステップ１５において、曲面生成部２７は、凹境界稜線に対してステップ１４で修正したサンプル点を用い、それ以外の境界曲線に対してはステップ１０で生成したサンプル点を用い、閉領域を囲む境界稜線と上述の各サンプル点を用いて、Ｂ−スプライン曲面を生成する。
【００５６】
次に、ステップ１６において、曲面間接続生成部２８は、隣接面とＧ１接続となる稜線の端点部分にノットを挿入し、境界稜線を分割する。
【００５７】
図４に示す三次元形状の例では、先ず、図１２（ａ）に示すように、二つの曲面が共有する境界稜線１０１，１０２上の点に対してそれぞれの境界稜線の両側の面がＧ１連続に接続されるような横断ベクトルを算出する。図１２（ａ）では算出した横断ベクトルの線分１５５を示している。横断ベクトルから得られた制御点をステップ１５で得られたＢ−スプライン曲面に組み込むことでＧ１連続性を実現する。まず、境界稜線の両側にある２枚の曲面を接続するための下準備として、図１２（ｂ）に矢印１６０で示すように、隣接面とＧ１連続となる境界稜線の端点に対応するパラメータ部分にノットを挿入する。また、隣接する二方向で隣接面とＧ１連続となるように接続するために、図１２（ｂ）に矢印１６１のように、コーナー近傍にノットを挿入する。ノット挿入については、Piegl. Lらにより非特許文献３で発表されている。一般には、図１２(ａ)において符号αの丸で囲って示すように、２つの制御点が一致していなければ、Ｇ１連続性を維持しながらＢ−スプライン曲面に図１２（ａ）に示した制御点を組み込むことができない。そこで、本発明の実施形態ではコーナー近傍にノットを挿入する。これにより境界稜線上で不連続となる場所をコーナーからノットを挿入した地点までに極小化することができる。そして、ステップ９において境界曲線生成部２４で生成した境界曲線を、分割線１６５により分割する。
【００５８】
次に、ステップ１７において、曲面間接続生成部２８は曲面間を接続する制御点がＧ１連続となるように固定する。図４に示した三次元形状では、分割した各境界稜線に接続する横断ベクトルを基礎パッチ法に基づき算出し、図１３（ａ）に点Ｐで示すように、境界稜線１０１，１０２に対応する点につながる一つ内側の制御点を、拘束するようにする。
【００５９】
そして、ステップ１８において、曲面再生成部２９は、ステップ１６及びステップ１７を経て変更した制御点からＢ-スプライン曲面を再生成する。曲面再生成部２９は、曲面間接続生成部２８で算出した制御点を隣接面との接続部分の制御点として、新たにＢ−スプライン曲面を再生成する。図４に示した三次元形状では、図１３（ａ）においてＧ１連続となるように固定するための制御点Ｐを、点Ｑで示すようにＢ−スプライン曲面の制御点とし、新たにＢ−スプライン曲面を生成する。
【００６０】
このように、曲面生成部２７は、第２サンプル点生成部２６において生成したサンプル点を最小二乗法で近似して、Ｂ−スプライン曲線の内部制御点を計算する。曲面間接続生成部２８は、二つの曲面間をＧ１連続する横断ベクトルを算出し、生成したＢ−スプライン曲線が隣接面とＧ１連続に接続するための制御点を算出する。
【００６１】
このようにして生成されたＢ−スプライン曲面は出力部１２から出力される。
以上説明した各ステップを経ることにより、隣接面とＧ１連続となる境界稜線の数に依存しないで、全ての方向で隣接する面とＧ１連続に接続するような三次元形状であっても、曲面を生成することができる。
【００６２】
本発明の実施形態に係る曲面生成方法では、隣接面とＧ１連続となる境界稜線が隣り合うような閉領域に対する曲面当てはめ方法を採用する。この曲面当てはめ方法においては、Ｎ-side filling法と、曲面内挿法を融合させる。「２曲面間を滑らかに接合したい部分」には、接合部分に対して曲面内挿法で採用している基礎パッチ法に基づき、境界横断導関数を算出し、制御点を算出する。また、「曲面内部の制御点」は、N-side filling法によりサンプリング点を近似することで制御点を算出する。
【００６３】
このように、本発明の実施形態に係る曲面生成方法では、三次元形状の各境界稜線の両端点につながる稜線から、その境界稜線を共有する２つの曲面が連続して接続できるか否かを判定し、任意の稜線の両端点において２つの曲面が連続すると判定された場合には、境界横断導関数から連続の条件を満たすように制御点を算出する一方で、求める閉領域内の制御点をN-Side Filling法により算出し、これら算出した制御点によって曲面を生成する。このように、境界稜線の両側の曲面が連続するためには先ず、稜線の端点で２曲面を連続させる。これにより、この方法で求められる曲面は、閉領域との隣接面が左面と上面、右面と上面、左面と下面、右面と下面の４つの組み合わせのうち、隣接面が１組以上、閉領域と関係があっても、隣接面と閉領域との連続性及び形状近似の双方を満たす。
【００６４】
この曲面当てはめでは、次のようなステップを含んでいる。
第１ステップ：閉領域を覆う４本のＢ−スプライン曲線を生成する。生成した４本のＢ−スプライン曲線は当てはめるＢ−スプライン曲面の境界曲線となる（図３でのステップ９参照）。
第２ステップ：入力となる境界稜線列で囲まれる閉領域を覆うようなＢ−スプライン曲面を生成し、生成されたＢ−スプライン曲面の面上点のうち閉領域の内側に存在するものをサンプル点とする（図３でのステップ１２）。また、凹形状の部分はオフセット曲線を利用してサンプル点を生成する（図３でのステップ１４）。
第３ステップ：第２ステップで算出したサンプル点を最小二乗法により近似することで、Ｂ−スプライン曲面の制御点を算出する。また、曲面間を接続する制御点を曲面内挿法に基づいて算出し、曲面間をＧ１連続に接続する（図３でのステップ１７、ステップ１８）。
【００６５】
よって、これらの２つの手法により得られた制御点を融合させることで、凹形状、穴を含む形状に対しても、隣接面とＧ１連続となる曲面を生成することができる。また、隣接面とＧ１連続となる境界稜線の数に依存しないサンプル点生成法を用いることにより、全ての方法で隣接する面とＧ１連続に接続する場合でも、曲面を生成することができる。
【００６６】
つまり、本発明の実施形態は、図４に示すような、上にＧ１連続となる隣接面Ｆ１と、左にＧ１連続となる隣接面Ｆ２とを持つ凹形状をもつ三次元形状に限らず、後述の検証に係る三次元ＣＡＤデータとして図１５（ｃ）に示すように、左にＧ１連続となる隣接面Ｆ１と、上にＧ１連続となる隣接面Ｆ２と、右にＧ１連続となる隣接面Ｆ３と、下にＧ１連続となる隣接面Ｆ４とを有するような４方向でＧ１と連続する三次元形状でも適用でき、かつ、その三次元形状に穴Ｈが形成されているような三次元形状にも適用することができる。
【００６７】
図１５（ｃ）に示すような三次元形状の場合には、図３に示す流れ図を次のように変更すればよい。図１４は、図３とは異なる本発明の実施形態に係る曲面生成方法の流れ図である。ステップ１４のあと、ステップ１５に移行する前に、閉領域に、穴があいているか否かを判定する（ステップＸ）。この判定は、図２に示す第２判定部２５においてなされる。そして、ステップＸにおいて、閉領域が穴を有していると判定された場合には、穴の境界線上にサンプル点を生成する（ステップＹ）。この生成は図２に示す第２サンプル点生成部２６においてなされる。その後、ステップ１５において、曲面生成部２７が、穴の境界線に対してはステップＹで生成したサンプル点を用い、凹境界稜線に対してステップ１４で修正したサンプル点を用い、それ以外の境界曲線に対してはステップ１０で生成したサンプル点を用い、閉領域を囲む境界稜線と上述の各サンプル点を用いて、Ｂ−スプライン曲面を生成すればよい。その後は前述したように、ステップ１６以降を順に行えばよい。
【００６８】
ここで、本発明の実施形態の利点について説明する。従来、隣接面とＧ１連続に接続する部分は、境界稜線上のみサンプル点を生成している。そのため、隣接面とＧ１連続に接続する部分が増えると、サンプル点数が減少し、最小二乗法により算出する曲面制御点が定まらない可能性が高い。しかしながら本発明の実施形態によれば、隣接面とＧ１連続して接続する境界稜線の数に依存することなく、十分な数のサンプル点を確保することができる。
【００６９】
〔曲面形状の評価〕
次に、本発明の実施形態を従来手法と比較するために、Ｂ-スプライン曲面形状の評価手法について説明する。先ず、生成した曲面の精度を検証するために、生成した曲面とトリム曲面が保持している基の曲面との距離を測定する。基の曲面上の点を生成したＢ-スプライン曲面に射影し、最短距離を測定する。また、基の境界稜線が生成した曲面に許容誤差範囲内でのっているかを検証するために、境界稜線上の点を生成したＢ-スプライン曲面に射影し、最短距離を測定する。さらに、相対的な誤差の割合を確認するために、バウンディングボックスの大きさと最大距離の割合を計算する。そして、生成したＢ-スプライン曲面と基の曲面の距離の割合が１％未満のとき、良い精度で近似できていると判断する。
【００７０】
〔検証に係る三次元ＣＡＤデータ〕
検証に係る閉領域をＣＡＤデータから取得した。取得した閉領域としては、図１５（ａ）に示すように隣接する２方向でＧ１連続となる形状、図１５（ｂ）に示すように隣接する３方向でＧ１連続となる形状、図１５（ｃ）に示すように全方向でＧ１連続となる形状とした。凹形状や穴を含む形状に対して前述した曲面当てはめ手法を適用し、生成した曲面形状の評価を前述の評価手法により行った。
【００７１】
図１５（ａ）〜（ｃ）はそれぞれ生成した曲面形状を示しており、白線又は黒線の格子点が制御点である。図１６（ａ）〜（ｃ）は生成した曲面と基の曲面との距離を示す図である。図１６（ａ）〜（ｃ）において、点のうち、各曲面上にある点は生成した曲面に基の曲面上の点が射影された点（Ａ点）を表し、各曲面から離れた位置にある点は、上述の射影された点の接平面法線方向に伸ばした点（Ｂ点）を示している。図において、Ａ点とＢ点との間の長さは、生成した曲面と基の曲面の距離を２５倍した距離で示してある。
【００７２】
表１は、生成した曲面の誤差を表示した結果である。上述の曲面形状評価手法で説明したように、生成した曲面と基の曲面の距離の平均である平均誤差値と、最大距離である最大誤差値と、閉領域を包含するバウンディングボックスの大きさと最大誤差値の割合である比率と、を示している。表１に示すように、各形状とも非常に良い精度で近似できていることが確認できる。
【００７３】
【表１】
2015001789.tif 000003
【００７４】
図１７（ａ）〜（ｃ）は、隣接面との連続性を評価するために法線ベクトルを表示した結果を示す図である。生成した曲面の境界稜線上から立ち上がるように示す直線が、生成した曲面の境界稜線上の法線ベクトルと、隣接面の境界稜線上の法線ベクトルとを示している。何れの図においても隣接面と共有する境界稜線上の法線ベクトルが一致していることから、２曲面間がＧ１連続に接続されていることが確認される。
【００７５】
本発明の実形態に係る曲面生成装置及びプログラムは、各種アプリケーションへ適用される。
【符号の説明】
【００７６】
１０：コンピュータ
１１：入力部
１２：出力部
１３：記憶部
１４：演算処理部（プロセッサ）
１５：制御部
２０：曲面生成装置
２１：平面生成部
２２：第１判定部
２３：第１サンプル点生成部
２４：境界曲面生成部
２５：第２判定部
２６：第２サンプル点生成部
２７：曲面生成部
２８：曲面間接続生成部
２９：曲面再生成部
１０１，１０２，１０３，１０４，１０５，１０６：境界稜線
１１１，１１２，１１３，１１４：境界平面
１１５：バウンディングボックス
１２１，１２３：サンプル点
１２２：横断線分
１３１，１３２，１３３，１３４，１３８，１３９：Ｂ−スプライン曲線
１３３ａ，１３４ａ：延長線
１３５，１３６：交点
１３７：中点
１４０：境界曲線
１４１，１４５，１５０：サンプル点
１４２：制御ポリゴン
１５５：横断ベクトルの線分
１６０，１６１：矢印
１６５：分割線
Ｆ１，Ｆ２，Ｆ３，Ｆ４：領域（隣接面）
Ｆ：領域（閉領域）
Ｈ：穴
【図１】
2015001789.tif 000004
【図２】
2015001789.tif 000005
【図３】
2015001789.tif 000006
【図４】
2015001789.tif 000007
【図５】
2015001789.tif 000008
【図６】
2015001789.tif 000009
【図７】
2015001789.tif 000010
【図８】
2015001789.tif 000011
【図１２】
2015001789.tif 000012
【図１３】
2015001789.tif 000013
【図１４】
2015001789.tif 000014
【図１７】
2015001789.tif 000015
【図９】
2015001789.tif 000016
【図１０】
2015001789.tif 000017
【図１１】
2015001789.tif 000018
【図１５】
2015001789.tif 000019
【図１６】
2015001789.tif 000020