CADメッシュにおける接平面連続境界の抽出システム及び抽出方法
【課題】CADメッシュにおけるセグメンテーションのためのG1連続境界を精度良く抽出する。
【解決手段】3次元CADモデルを三角形分割することにより生成された三角形メッシュであるCADメッシュのデータからPアークとPラインとを抽出する。Pアークが平滑Pアークかどうか、及び、Pラインが平滑Pラインかどうかを判定する。抽出された平滑Pアークを判定することにより、円弧G1連続境界を抽出できる。また、抽出された平滑Pラインを判定することにより、直線G1連続境界を抽出できる。
【解決手段】3次元CADモデルを三角形分割することにより生成された三角形メッシュであるCADメッシュのデータからPアークとPラインとを抽出する。Pアークが平滑Pアークかどうか、及び、Pラインが平滑Pラインかどうかを判定する。抽出された平滑Pアークを判定することにより、円弧G1連続境界を抽出できる。また、抽出された平滑Pラインを判定することにより、直線G1連続境界を抽出できる。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、3次元CADモデルを三角形分割することにより生成された三角形メッシュであるCADメッシュから、G1連続境界を抽出するための技術に関するものである。
【背景技術】
【0002】
機械設計では、CAD (Computer Aided Design)システムによって、機械部品の形状が、曲面を含む3次元の形状モデルとして、コンピュータ内に表現されている。このCADモデルには、平面、円柱面、球面やトーラス面などの解析的曲面(プリミティブ曲面)と、自由な形状を表現するためのスプライン曲面とが含まれている。図1には、プリミティブ曲面によって構成されたCADモデルの例を示す。このような形状モデルを活用することによって、機械設計における様々な検討やシミュレーションを行うことができる。
【0003】
図1から分かるように、CADモデルは、曲面のパッチを張り合わせた形になっており、それぞれのパッチは球面や円柱面の一部になっている。本明細書の説明では、前者(曲面のパッチ)をフェースと呼び、後者(パッチを構成する球面や円柱面)を母曲面と呼ぶ。また、単に曲面といった場合には、フェースと母曲面の両方を意味することにする。また、本明細書におけるCADモデルとは、厚みのない面だけを表すサーフェスモデルと体積を持ったソリッドモデルとの両方を含む。
【0004】
さて、CADモデルは、このように多種類の曲面で構成されており、そのデータ表現も複雑なために、異なるCADシステム間でデータをやり取りするのが困難な場合が多い。また、形状を表示するだけであったり、ある種の計算を行ったりする上では、曲面データは不要で、曲面を近似した多面体モデルで十分な場合も多い。さらに、CADモデルは機密性が高い情報であるため、それを社外に提供する場合には、曲面を多面体で近似したデータを用いることが多い。
【0005】
このような多面体モデルは、CADモデルのフェースを三角形で分割すること(いわゆる三角形分割)によって生成されることが一般的であり、分割の結果は、三角形の集合となる(図2参照)。このような三角形の集合は、一般に三角形メッシュと呼ばれる。また、本明細書では、CADモデルを三角形分割して生成された三角形メッシュをCADメッシュと呼ぶ。三角形メッシュを格納したファイルとして代表的なものに、STLファイル(stereo lithography format)があり、これは産業界において広く流通している。
【0006】
CADメッシュは、一般に非常に多数の三角形を含んでいるが、CADモデルにおける曲面の情報は失われてしまっている。したがって、例えば、CADモデルに含まれていた、円柱における中心軸の位置を修正したり、円柱の半径を変えたり、といった操作を行うことが出来ない。また、CADモデルで行われるその他の多くの処理もCADメッシュでは不可能となる。
【0007】
CADメッシュから、プリミティブ曲面(平面、円柱面、円錐面、球面又はトーラス面)上のフェースを抽出することによって、CADメッシュの元となったCADモデルを復元することができれば、このCADモデルを用いて、前記の処理が可能となる。このようなCADモデル復元の基礎的処理として、これらのフェースの境界を高精度に求めるアルゴリズムが必要になる。
【先行技術文献】
【特許文献】
【0008】
【特許文献1】特開2010−186479号公報
【特許文献2】特開2006−277713号公報
【発明の概要】
【発明が解決しようとする課題】
【0009】
CADモデルを分割してCADメッシュを生成すると、フェースは多数の三角形に分割され、またフェースの境界曲線は折れ線になる。CADモデルを復元するためには、CADメッシュに含まれる多数の三角形を、元のCADモデルを構成していたフェースに相当する領域に適切に分割し、またフェースの境界に相当する折れ線を認識することが必要である。分割することを、一般に三角形メッシュのセグメンテーションといい、分割された領域をセグメントと呼ぶ。図 3に図 2のメッシュモデルに対応するセグメントを示す。
【0010】
セグメンテーションに関しては、コンピュータグラフィックスの分野で多数の研究が行われている。従来の研究ではほとんどの場合、各三角形を処理の単位とする。例えば、
・複数の三角形が滑らかに接続している場合、あるいは、
・複数の三角形に曲面を当てはめてみて、あてはまる場合
に、それらの三角形を同じ領域としてセグメンテーションを行う(前記特許文献1及び2参照)。なお、前記特許文献2では、三角形の法線を評価することにより、境界抽出を試みている。
【0011】
ところで、G0連続境界(後述)では、境界が折れているため、CADメッシュにおいても、三角形の間の稜線が折れている。これを判別することで、容易に境界を認識することができる。しかし、例えば図4のように平面と円柱面が滑らかに接したり、図5のように球面と円錐面が滑らかに接することで構成されるG1連続境界(後述)の部分では、三角形も非常に滑らかに接続している。このため、従来の技術では、CADメッシュ上でこのようなG1連続境界を正確に抽出することが困難であった。
【0012】
本発明は、CADメッシュが一定の規則に従って三角形分割されていることを利用してセグメントの境界を正確に抽出するためのものである。
【課題を解決するための手段】
【0013】
本発明は、従来のセグメンテーションのように三角形メッシュの個々の三角形を主たる処理の対象とするのではなく、CADメッシュから円弧又は直線を抽出してG1連続境界の抽出を行うという、従来の手法とは基本的に異なる考え方を採用したものである。本発明における課題を解決する手段は、以下の項目のように記載できる。
【0014】
(項目1)
CADメッシュ受付部と、Pアーク抽出処理部と、Pライン抽出処理部と、平滑Pアーク判定処理部と、平滑Pライン判定処理部と、円弧G1連続境界抽出部と、直線G1連続境界抽出部と、出力部とを備えており、
前記CADメッシュ受付部は、3次元CADモデルを三角形分割することにより生成された三角形メッシュであるCADメッシュのデータを受け付ける構成となっており、
前記Pアーク抽出処理部は、前記CADメッシュからPアークを抽出する構成となっており、
前記Pライン抽出処理部は、前記CADメッシュからPラインを抽出する構成となっており、
前記平滑Pアーク判定処理部は、前記Pアークが平滑Pアークかどうかを判定する構成となっており、
前記平滑Pライン判定処理部は、前記Pラインが平滑Pラインかどうかを判定する構成となっており、
前記円弧G1連続境界抽出部は、抽出された前記平滑Pアークを判定することにより、円弧G1連続境界を抽出する構成となっており、
前記直線G1連続境界抽出部は、抽出された前記平滑Pラインを判定することにより、直線G1連続境界を抽出する構成となっており、
前記出力部は、抽出された円弧G1連続境界及び直線G1連続境界を、その後のセグメンテーションのために出力する構成となっている
接平面連続境界の抽出システム。
【0015】
(項目2)
前記円弧G1連続境界抽出部は、内部Pアーク判定部と、第1種円弧、第2種円弧及び/又は第3種円弧のための円弧G1連続境界判定部とを備えており、
前記内部Pアーク判定部は、前記Pアークが内部Pアークか否かを判定する構成となっており、
前記第1種円弧のために、円弧G1連続境界判定部は、前記Pアークが内部Pアークでなく、かつ、次の条件a)〜c)
a)前記Pアークの片側で、その頂点に一つあるいは複数の他のPアークが端点で直交接続していること;
b)前記Pアークの反対側に、平坦稜線を介して、三角形(すなわち平面)が接続していること;
c)前記条件a)に記載した前記Pアークの頂点に端点で接続した一つあるいは複数の前記他のPアークの接線が、前記Pアークの片側において、前記Pアークの反対側の平面上にあること;
を満足する場合に、円弧G1連続境界と判定する構成となっており、
前記第2種円弧のために、円弧G1連続境界判定部は、前記Pアークが内部Pアークでなく、かつ、次の条件a)〜c)
a)前記Pアークの片側で、その頂点に一つあるいは複数のPアークが端点で直交接続していること;
b)前記Pアークの反対側で、その頂点に一つあるいは複数のPラインが端点で直交接続していること(但しPラインがPアークの軸と直交する場合を除く);
c)前記条件a)に記載した前記Pアークの頂点に端点で接続した一つあるいは複数の前記他のPアークの接線が、前記Pアークの片側において、前記Pアークの反対側のPラインと平行であるか、あるいは、前記Pアークの接線と前記Pアークの軸とがなす角と、前記Pラインと前記Pアークの軸とがなす角度とが同じであること;
を満足する場合に、円弧G1連続境界と判定する構成となっており、
前記第3種円弧のための円弧G1連続境界判定部は、前記Pアークが内部Pアークでなく、かつ、次の条件a)〜b)
a)前記Pアークの両側でその頂点に一つあるいは複数の他のPアークが端点で直交接続していること;
b)前記条件a)に記載した前記Pアークの両側に端点で接続した一つあるいは複数の前記他のPアークの接線が、前記Pアークの軸と平行となっていること;
を満足する場合に、円弧G1連続境界と判定する構成となっている
項目1に記載の抽出システム。
【0016】
(項目3)
前記直線G1連続境界抽出部は、第1種直線及び/又は第2種直線のための直線G1連続境界判定部を備えており、
前記直線G1連続境界判定部は、第1種直線のために、次の条件a)〜c)
a)前記平滑Pラインの片側において、前記平滑Pラインの頂点に一つあるいは複数のPアークが端点で直交接続していること;
b)前記平滑Pラインにおける反対側に、一つの三角形あるいは平坦稜線を介して三角形(すなわち平面)が接続していること;
c)前記平滑Pラインの端点に接続した前記Pアークの接線が、前記反対側の三角形で構成される平面上にあること;
を満足する場合に、直線G1連続境界と判定する構成となっており、
前記直線G1連続境界判定部は、第2種直線のために、次の条件a)〜b)
a)前記平滑Pラインの両側において、前記平滑Pラインの頂点にそれぞれ一つあるいは複数のPアークがその端点で直交接続していること;
b)前記平滑Pラインの両側の前記Pアークが、相異なる円弧上にあり、且つ、前記平滑Pラインと、前記Pアークの前記端点における接線とは、同じ平面上にあること
を満足する場合に、直線G1連続境界と判定する構成となっている
項目1又は2に記載の抽出システム。
【0017】
(項目4)
以下のステップを備えることを特徴とする、接平面連続境界の抽出方法:
CADメッシュ受付部が、3次元CADモデルを三角形分割することにより生成された三角形メッシュであるCADメッシュのデータを受け付けるステップ;
Pアーク抽出処理部が、前記CADメッシュからPアークを抽出するステップ;
Pライン抽出処理部が、前記CADメッシュからPラインを抽出するステップ;
平滑Pアーク判定処理部が、前記Pアークは平滑Pアークかどうかを判定するステップ;
平滑Pライン判定処理部が、前記Pラインは平滑Pラインかどうかを判定するステップ;
円弧G1連続境界抽出部が、抽出された前記平滑Pアークを判定することにより、円弧G1連続境界を抽出するステップ;
直線G1連続境界抽出部が、抽出された前記平滑Pラインを判定することにより、直線G1連続境界を抽出するステップ;
出力部が、抽出された円弧G1連続境界及び直線G1連続境界を、その後のセグメンテーションのために出力するステップ。
【0018】
(項目5)
項目4記載の抽出方法をコンピュータにより実行するためのコンピュータプログラム。
【発明の効果】
【0019】
本発明によれば、CADメッシュ上でこのようなG1連続境界を正確に抽出することが可能となる。
【図面の簡単な説明】
【0020】
【図1】プリミティブ曲面によって構成されたCADモデルを示す図である。
【図2】図1のCADモデルを三角形分割して得られた三角形メッシュを示す図である。
【図3】セグメンテーションによって復元されたプリミティブ曲面の一例を示す説明図である。
【図4】直線G1連続で接続する平面と円柱面との境界を示すための説明図である。
【図5】円弧G1連続で接続する球面と円錐面との境界を示すための説明図である。
【図6】本発明の一実施形態における抽出システムの全体的な構成を説明するためのブロック図である。
【図7】本実施形態の抽出方法の手順を説明するためのフローチャートである。
【図8】二面角を説明するための説明図である。
【図9】平坦稜線、折れ稜線と平滑稜線を説明するための説明図である。
【図10】Pアークを説明するための説明図である。
【図11】Pアークの抽出方法を説明するための説明図である。
【図12】連続Pラインと単独Pラインとを説明するための説明図である。
【図13】折れPアーク、平滑Pアーク及び平坦Pアークを説明するための説明図である。
【図14】平滑な内部Pアークと平滑な境界Pアークとを説明するための説明図である。
【図15】折れた境界Pアークと平坦な内部Pアークを説明するための説明図である。
【図16】十字交差、T交差及び仮想T−Pアーク交差の例を示す説明図である。
【図17】T-PアークとボーダーPアークを説明するための説明図である。
【図18】球面及びトーラス面におけるT-Pアークを説明するための説明図である。
【図19】球面あるいはトーラス面上に平滑Pアークがある場合における、内部Pアークの判定処理を説明するための説明図である。
【図20】第1種円弧のG1連続境界抽出の処理を説明するための説明図である。
【図21】第2種円弧のG1連続境界抽出の処理を説明するための説明図である。
【図22】第3種円弧のG1連続境界抽出の処理を説明するための説明図である。
【図23】第1種直線のG1連続境界抽出の処理を説明するための説明図である。
【図24】第2種直線のG1連続境界抽出の処理を説明するための説明図である。
【発明を実施するための形態】
【0021】
以下、添付図面を参照しながら、本発明の実施形態に係る接平面連続境界の抽出システム及び抽出方法について説明する。
【0022】
(前提説明)
プリミティブ曲面(平面、円柱面、円錐面、球面又はトーラス面)から構成されるCADモデルで使われる用語及び概念についてここで説明する。
【0023】
(プリミティブ曲面)
本実施形態においては、CADモデルの曲面を、平面、円柱面、円錐面、球面、トーラス面のいずれかであると仮定する。これらの曲面をプリミティブ曲面という。
【0024】
(プリミティブ曲面の間の交線)
CADモデルは、これらのプリミティブ曲面を交差させることによって作られ、曲面同士が交差することによって、それらの交線として曲線が生成される。この交差曲線が、CADモデルのフェースの境界曲線となる。プリミティブ同士の交差曲線は、円弧(円を含む)、直線及びその他の曲線から構成される。ここで、後述するように、G1連続境界は、円弧か直線なので、これら以外の曲線については無視できる。
【0025】
交差の仕方は、「曲面どうしがある角度をもって交差する場合」と「曲面同士が接する場合」に限られる。なお、交線上のある点(特異点)で、二つの曲面の法線が一致し、二つの曲面がこの点で「角度なし」で交差することがあるが、この特異点については、極微小な点なので、無視して差し支えない。前者の場合(曲面どうしがある角度をもって交差する場合)には、2曲面が角度をもって交差することになり、後者の場合(曲面同士が接する場合)には、2曲面が滑らかに交差する。前者の交差をG0連続交差と呼び、その交線をG0連続交線あるいはG0連続境界と呼ぶ。また、後者の交差をG1連続交差、その交線をG1連続交線あるいはG1連続境界と呼ぶ。下記表1では、プリミティブ曲面の可能なすべての組み合わせについてG1連続境界が生成される場合を示す。
【0026】
【0027】
表1に示すように、G1連続境界は、直線あるいは円弧のいずれかになる。
【0028】
G1連続境界が直線になるのは、交差する2曲面が、次の組み合わせの場合に限られる。
【0029】
[第1種直線](平面×円柱面)あるいは、(平面×円錐面)の場合;
[第2種直線](円柱面×円柱面)、(円柱面×円錐面)あるいは(円錐面×円錐面)の場合。
【0030】
さらにG1連続境界が円弧になるのは、交差する2曲面のうちの少なくとも一方が球面あるいはトーラス面の場合に限られ、かつ、次の組み合わせの場合に限られる。
【0031】
[第1種円弧](平面×トーラス面)の場合;
[第2種円弧](球面×円柱面)、(トーラス面×円柱面)、(球面×円錐面)あるいは(トーラス面×円錐面)の場合;
[第3種円弧](球面×トーラス面)、(トーラス面×トーラス面)の場合。
【0032】
(CADメッシュ上の円弧と直線)
CADソフトウェアからCADメッシュを作成する際に、CADモデルの曲面間を境界で分割し、さらに、曲面も規則的に分割し、三角形メッシュを作成することが多い。そのため、CADメッシュには、多数の内部曲線及び境界曲線が存在する。
【0033】
そこで、CADメッシュから円弧と直線を抽出し、交差する円弧あるいは直線からプリミティブを認識可能であると考えられる。さらに[第1種円弧]、[第2種円弧]、[第3種円弧]、[第1種直線]、[第2種直線]の性質を用いて、G1連続境界をCADメッシュ上で抽出することが可能になる。以下、詳しく説明する。
【0034】
(本実施形態の構成)
本実施形態の抽出システムは、接平面連続境界、即ち前記したG1連続境界を抽出するためのシステムである。
【0035】
このシステムは、図6に示すように、CADメッシュ受付部10と、Pアーク抽出処理部20と、Pライン抽出処理部30と、円弧G1連続境界抽出部40と、直線G1連続境界抽出部50と、出力部60とを備えている。さらにこのシステムは、平滑Pアーク判定処理部70と、平滑Pライン判定処理部80とを備えている。
【0036】
CADメッシュ受付部10は、3次元CADモデルを三角形分割することにより生成された三角形メッシュであるCADメッシュのデータを受け付ける構成となっている。したがって、本実施形態で対象となるCADメッシュは、3次元CADモデルから生成されたものである。CADメッシュのデータは、例えばSTLファイルとして受け渡される。
【0037】
Pアーク抽出処理部20は、CADメッシュからPアーク(後述)を抽出する構成となっている。
【0038】
Pライン抽出処理部30は、CADメッシュからPライン(後述)を抽出する構成となっている。
【0039】
円弧G1連続境界抽出部40は、抽出されたPアークを判定することにより、円弧G1連続境界を抽出する構成となっている。
【0040】
円弧G1連続境界抽出部40は、内部Pアーク判定部41と、円弧G1連続境界判定部43とを備えている。
【0041】
内部Pアーク判定部41は、Pアークが内部Pアーク(後述)か否かを判定する構成となっている。
【0042】
G1連続境界判定部43は、[第1種円弧]、[第2種円弧]及び[第3種円弧]のために、G1連続境界を判定する構成となっている。判定条件については後述する。
【0043】
直線G1連続境界抽出部50は、抽出されたPラインを判定することにより、直線G1連続境界を抽出する構成となっている。直線G1連続境界抽出部50は、第1種直線及び第2種直線のための直線G1連続境界判定部52を備えている。
【0044】
直線G1連続境界判定部52は、第1種直線及び第2種直線のために直線G1連続境界と判定する構成となっている。判定条件については後述する。
【0045】
出力部60は、抽出された円弧G1連続境界及び直線G1連続境界を、その後のセグメンテーションのために、適宜の処理システムあるいは処理要素に出力する構成となっている。もちろん、出力部60は、得られたデータを一旦記憶部(図示せず)に出力するものであってもよい。
【0046】
平滑Pアーク判定処理部70は、Pアーク抽出処理部20で抽出されたPアークが平滑Pアーク(後述)であるかどうかを判定するものである。
【0047】
平滑Pライン判定処理部80は、Pライン抽出処理部30で抽出されたPラインが平滑Pライン(後述)であるかどうかを判定するものである。
【0048】
前記した各機能要素は、適宜なハードウエアに実装されたコンピュータプログラムにより構成可能である。もちろん、コンピュータプログラムで実行される機能をハードウエアで実行することは可能であり、その逆も可能である。
【0049】
(本実施形態における抽出方法)
つぎに、前記した抽出システムを用いた抽出方法の一例を、図7を参照しながら説明する。
【0050】
(図7のステップSA−1)
まず、CADメッシュ受付部10は、CADメッシュを受け取る。このCADメッシュは、例えば上記のSTLファイルで提供される。
【0051】
(三角形メッシュ及び位相化)
ここで、三角形メッシュの一般的な性質について説明する。各三角形は、三つの頂点から構成される。メッシュの三角形は、連続な曲面を分割したものであるから、三角形はバラバラではなく、稜線と稜線とで隙間なく接続されている。つまり、メッシュにおいて三角形の頂点は複数の三角形で共有されており、また、三角形の稜線は一般に2個の三角形により共有されている。さらに、メッシュの三角形集合から、次のような接続関係を導出することができる。まず、三角形メッシュにおいて、3次元座標値が一致する頂点を同一の頂点とし、さらに、同じ2頂点を結ぶ辺を同一の稜線とする。このように三角形の頂点、稜線の接続関係を構築することを位相化という。以下では、このような位相化が行われた三角形メッシュを前提とする。
【0052】
(二面角(dihedral angle)と、平坦稜線、平滑稜線及び折れ稜線)
上記の位相化された三角形メッシュでは、各三角形は、その隣りの三角形と関係付けられているので、図8に示すように、隣り合う三角形が、それらの間の稜線において交差する角度を容易に計算することができる。この角度(図8中の角度γ)を二面角と呼ぶ。二面角が180度である稜線を平坦稜線と呼ぶ(図9参照)。二面角が180度からある程度離れた角度である稜線は、角があるので折れ稜線と呼ぶ(図9参照)。また、二面角が180度ではないが、それに近い値の場合は、滑らかな曲面上の稜線を表すので、平滑稜線と呼ぶ(図9参照)。「それに近い値」は、基本的にはユーザの指定により決定される。ただし、CAD側で「円を多角形近似するときの分割数」を指定する場合があるので、その値を参照してこの値を決めることもできる。例えば、円を36分割している場合には、「それに近い値」は、内接正36多角形の1つの内角=170度より大きい値、例えば、175度とできる。
【0053】
(図7のステップSA−2…Pアークとその抽出)
前記した三角形メッシュは多面体であるので、その稜線を辿っていくと、頂点の列即ち折れ線が生成される。折れ線の中には、そのすべての頂点が、ある一つの円弧上に乗っているものがあり、本明細書ではこれをPアーク(polyline arc)と呼ぶ。ただし、円弧上においても折れ線の頂点の並び順は変わらないものとする。すなわち、円弧上で折れ線の始点に対して各頂点がなす円弧の中心角は、折れ線上の頂点の並び順に対して単調に増加するものとする。例えば、図10では、球面が三角形分割されているので、その球面上に多数のPアークが存在する。
【0054】
よって、Pアーク抽出処理部20は、この性質を使って、PアークをCADメッシュから抽出する。すなわち、前述の位相付きの三角形メッシュでは、頂点と頂点が稜線で接続されているので、ある頂点からそれに隣接する頂点を次々と辿って行くことによって折れ線を作ることができる。空間中の円は(一直線上にない)3点で一意に決定できるので、稜線で接続された3頂点(但し3頂点がメッシュの三角形をなす場合を除く)について、図11に示すように、その3頂点V1,V2,V3を通る円弧を定めることができる。そして、その3頂点の両端の2頂点から、その円弧に沿って、他の接続する頂点を稜線沿いに辿って行き、辿れなくなるか、あるいは、一周して既に辿った頂点に行き着くまで辿る。
【0055】
このようにして辿った折れ線が4個以上の頂点を含む場合には、折れ線の頂点は円弧上にあるので、これをPアークとする。この手続きを、すべての連続する3頂点の組に付いて行うことによって、Pアーク抽出処理部20は、Pアークを抽出することができる。
【0056】
Pアークは、空間の円弧を折れ線で近似したものである。Pアークに対して、その中心、半径、Pアークの円弧を含む平面、中心軸(中心を通り、平面の法線を方向ベクトルとする直線)がそれぞれ定義される、それらをPアークの中心、Pアークの半径、Pアークの平面、Pアークの中心軸と呼ぶ。
【0057】
(図7のステップSA−3…Pラインとその抽出)
CADメッシュにおいて、円柱面フェース、あるいは円錐面フェースの上で、一つあるいは複数の稜線が連続して一つの直線をなすものをPラインという。一本の稜線で構成されるものを単独Pラインといい、複数の稜線出構成されるものを連続Pラインという。(図12(a)(b)参照)。
【0058】
連続Pラインについては、Pアークと同様にして、同じ直線上にある稜線を辿ることによって、Pライン抽出処理部30により、容易に抽出できるが、本例では、Pアークに接続しているPラインだけが必要なので、次にようにして求める。すなわち、あるPアークの頂点(端点も含む)と直交接続して、且つPアークの軸を通る平面上の稜線から出発し、それに隣接する稜線で、出発した稜線と同じ直線上にある稜線を次々と辿れるところまで辿って行くことによって連続Pラインを抽出する。また、一つの稜線も辿れなかったときは、出発した稜線は単独Pラインとなる。
【0059】
ステップSA−3は、ステップSA−2の後に行われる。
【0060】
(図7のステップSA−4…平滑Pアークの判定処理)
上で述べたように、G1連続境界が円弧になるのは、2曲面のうちの少なくとも一方が球あるいはトーラスの場合に限られる。
【0061】
この場合について、円弧G1連続境界抽出部40により、Pアークを用いて、円弧G1連続境界を求める方法を以下に示す。
【0062】
(折れPアーク、平滑Pアーク、平坦Pアーク)
ステップSA−2で求めたPアークは、それに含まれる稜線が折れ稜線のもの、平滑稜線のもの、そして平坦稜線のものに分けられる。それぞれ、折れPアーク、平滑Pアーク、平坦Pアークと呼ぶ(図13)。この平滑Pアークの定義から、平滑Pアーク判定処理部70は、Pアークが平滑Pアークであるかどうかを判定することができる。折れPアークは、CADモデルでは、平面が円柱の中心軸に直交するように交差する場合の交線に対応する。平滑Pアークは、曲面を分割した場合や曲面のG1連続境界として現れる。また、平坦Pアークは、円柱面あるいは円錐面を分割したときに現れる。
【0063】
(図7のステップSA−5…内部Pアークと境界Pアーク)
さらに、CADメッシュに含まれる平滑Pアークには、二つのタイプがある。一つは、図14及び図15に示すように、球面とトーラス面とを母曲面とするフェースを三角形分割することによって、フェースの内部に現れるものである。これを内部Pアークと呼ぶ。これらは滑らかな曲面上のPアークなので、平滑Pアークとなる。また、円柱面や円錐面状に現れる平坦Pアークも内部Pアークとなる。もう一つのタイプの平滑Pアークは、フェースの境界に対応するもので、これを境界Pアークと呼ぶ。
【0064】
上に述べた、折れPアーク、平滑Pアーク及び平坦Pアークと、内部Pアーク及び境界Pアークとの関係を表2にまとめる。
【0065】
【0066】
なお、表2において、○は、折れPアーク、平滑Pアーク及び平坦Pアークが、内部Pアークあるいは境界Pアークになる可能性があることを示し、×はこれらが内部Pアークあるいは境界Pアークになる可能性がないことを示す。
【0067】
求めたいG1連続境界に関係するのは、平滑で境界のPアークである。これを平滑境界Pアークと呼ぶことにする。平滑Pアークかどうかは、前述のように二面角を用いて決めることができる。そこで、このステップSA−5では、平滑Pアークを、内部Pアークと境界Pアークに判定する。この両者は排他的関係にあるので、一方だけを判定すればよい。すなわち、内部Pアーク判定部41により、内部Pアークでないことがわかれば、それは境界Pアークとする。よって、以下では、内部Pアーク判定部41による内部Pアークの判定法について述べる。これには、後述するように、図16で示すような、Pアーク間の位置関係によって、十字交差による判定方法と、T交差による判定方法と、仮想T-Pアーク交差による判定方法とがある。
【0068】
(十字交差による判定)
球面やトーラス面の三角形分割では、等パラメタ線というものに沿って三角形分割されるのが一般的である。例えば、半径1の球面は、二つのパラメタu,vを用いて、
p=(cos u cos v, cos u sin v, sin u)
のようにパラメタ表現することができる。この式で、u=一定、あるいはv=一定とすると曲線(等パラメタ曲線)が定義される。特に球面とトーラス面では、等パラメタ曲線は円弧となる。CADモデルの三角形分割では、この等パラメタ線にそって三角形分割されるのが一般的であるため、CADメッシュではこの等パラメタ線の円弧に対応するPアークが含まれることになる。
【0069】
さらに、図10に示すように、u=一定の等パラメタ線とv=一定の等パラメタ線は、曲面上で交差することから、CADメッシュから求めたPアークで十字状に交差しているものは等パラメタ線に対応することになる。これはトーラス面でも同様である。このような、u=一定の等パラメタ線とv=一定の等パラメタ線の交差を十字交差と呼ぶことにする。
【0070】
言い換えると、二つの平滑Pアークが十字交差していれば、これらのPアークは球面フェースあるいはトーラス面フェースの内部Pアークになる。内部Pアーク判定部41は、まず、この条件を用いて、内部Pアークを判定できる。
【0071】
(T交差による判定)
図17に示すように、Pアークが、その端点で別のPアーク内にT字型に交わる場合をT交差とし、その交点をT交点とする。さらに、前者のPアークをT-Pアークと呼び、後者をボーダーPアークと呼ぶ。ここで、T交差とは、Pアークの端点がボーダーPアークの内部の頂点(ボーダーPアークの端点以外)に一致する場合をいう。さらに、その場合だけでなく、Pアークの端点に外挿した円弧(図17中の破線で示す)がPアークに交差する場合も、T交差に含める。これらを区別するために、前者を直接T-Pアークと呼び、後者を間接T-Pアークと呼ぶ。すなわち間接T-Pアークとは、図17に破線で示すようにPアークを延長したときにT交差となるPアークをいう。
【0072】
前記(十字交差による判定)では、Pアークの十字交差によって内部Pアークの判定を行っていたが、CADの三角形分割の方法によっては、まれに球面・トーラス面のメッシュの内部Pアークが十字交差しないことがある。この場合、T交差によって内部Pアークを判定することができる(図18)。
【0073】
これは以下のように証明できる。
・まずボーダーPアークが境界Pアークの場合を考える。もしT-Pアークも境界Pアークとすると、T交点において三つ以上の曲面(ボーダーPアークの両側の曲面と、T-Pアークの両側の曲面を含む三つの曲面)が交差していることになり、T交点はボーダーPアークの端点でなければならない。しかし、T-Pアークは、ボーダーPアークの端点以外で交差しなければならないので仮定に反する。よってT-Pアークは内部Pアークでなければならない。
・次にボーダーPアークが内部Pアークである場合を考える。もしT-Pアークが境界Pアークであるとすると、T交点において、曲面はボーダーPアークの方向に不連続になっており、ボーダーPアークはそこに端点を持たなければならない。これは、T交点が端点ではないことに矛盾する。よって、T-Pアークは内部Pアークでなければならない。
【0074】
したがって、前記の判定基準により、内部Pアーク判定部41は、内部Pアークを判定することができる。
【0075】
(仮想T-Pアーク交差による判定)
図19に示すように、三角形分割の方法によっては、等パラメタ線による分割がuあるいはv方向の内の一方向だけの場合があり、その方向にだけ等パラメタ線に対する平滑Pアークが存在し、他の方向には平滑Pアークが存在しないことがある。すなわち、Pアークに十字交差あるいはT交差が存在しない場合がある。このような場合、内部Pアーク判定部41は、次の方法で内部Pアークを判定する。これらの平滑Pアークを
a1, a2 …, an
とすると、もしすべての隣り合う二つの平滑Pアーク
ai, ai+1
が、仮想的な平滑稜線Q(仮想T-Pアークという)を介して接続しているならば、その平滑稜線Qの内部頂点と接続する平滑Pアークは内部Pアークとなる。等パラメタ線のPアークが球面あるいはトーラス面上にあることを判定するために、
(1)この等パラメタ線のPアークの軸を通る平面を作成して、
(2)Pアーク群とその平面との交点群を求め、
(3)その交点群を補間して、もしその交点群が円弧であれば、その交点で仮想T-Pアークを作成し、
(4)上記の十字交差あるいはT交差判定によって、内部Pアーク及び境界Pアークを判定することができる。
【0076】
(図7のステップSA−7…球面、トーラス面のG1連続境界の抽出)
ステップSA−5の処理によって、平滑Pアークで、かつ、内部Pアークであるものをすべて判定することができる。平滑Pアークは、内部Pアークか境界Pアークのいずれかであるので、ステップSA−5の方法によって内部Pアークと判定されなかった平滑Pアークは境界Pアーク、すなわち平滑境界Pアークとする。
【0077】
この平滑境界Pアークは、CADモデルにおいて母曲面同士がG1連続で交差することによって生成された交差曲線に対応するので、フェースのG1連続境界になる。
【0078】
この平滑境界Pアークは、G1連続境界であることを次の判定処理で確認できる。
【0079】
前述のように、G1連続境界が円弧になるのは、次の三つの場合である。
【0080】
[第1種円弧](平面×トーラス面)
[第2種円弧](球面×円柱面)、(トーラス面×円柱面)、(球面×円錐面)あるいは(トーラス面×円錐面)
[第3種円弧](球面×トーラス面)、(トーラス面×トーラス面)
それぞれの場合について、円弧G1連続境界の抽出の方法を説明する。
【0081】
(図7のステップSA−7・・・[第1種円弧]の場合)
前述の
[第1種円弧](平面×トーラス面)
の場合は、平面領域が平滑な境界でトーラス面に接している場合である。
【0082】
本実施形態では、円弧G1連続境界判定部43が、以下の3条件を判定することによって、[第1種円弧]のために、平滑Pアークを抽出することができる。この手順を、図20をさらに参照しながら説明する。なお、これらの条件を全て満たした場合にG1連続境界Pアークとなる。
a)PアークPの片側(図20において下側)において、PアークPのいずれかの頂点(図示例では頂点A)に一つあるいは複数のPアーク(図示例ではPアークQ)がその端点で直交接続していること。ここで、本例では、PアークQの端点AでPアークQの接線Tを求めておく;
b)その反対側(図20において上側)でPアークPが、互いに平坦稜線で接続している三角形(平面S)と接続していること;
c)前記したすべてのPアークQの接線Tが平面S上にあること;
以上の条件により抽出されたPアークPは、円弧G1連続境界である。
【0083】
(図7のステップSA−7・・・[第2種円弧]の場合) 前述の
[第2種円弧]:((球面×円柱面)、(トーラス面×円柱面)、(球面×円錐面)あるいは(トーラス面×円錐面))
の場合とは、球面あるいはトーラス面が平滑な境界で円柱面あるいは円錐面に接している場合である。
【0084】
本実施形態では、円弧G1連続境界判定部43が、以下の3条件を判定することによって、[第2種円弧]のために平滑Pアークを抽出することができる。図21をさらに参照しながら説明する。なお、これらの条件を全て満たした場合にG1連続境界Pアークとなる。
a)PアークPの片側(図21において上側)において、PアークPのいずれかの頂点(図21においてAi)に一つあるいは複数のPアークQが端点で直交接続していること。ここで本例では、PアークQの端点AでPアークQの接線Tを求めておく;
b)その反対側(図21において下側)でPアークPの頂点に、一つあるいは複数のPラインLが端点で直交接続していること。ここでPラインLの端点は、図21においてAjである;
c)すべてのPアークQの接線Tが、すべてのPラインLと平行であるか、あるいは、「PアークPの軸Oと接線Tの角度」と「軸OとPラインLの角度」とが同じである(つまり図21において角度α=角度βである。ただし、α≠90°である)こと。ここで、角度αの値は、0°<α<180°となる;
このようにして抽出されたPアークPは、円弧G1連続境界である。
【0085】
(図7のステップSA−7・・・[第3種円弧]の場合)
前述の
[第3種円弧](球面×トーラス面)、(トーラス面×トーラス面)
の場合は、球面あるいはトーラス面が平滑な境界でトーラス面に接している場合である。
【0086】
本実施形態では、円弧G1連続境界判定部43が、以下の2条件を判定することによって、[第3種円弧]のために平滑Pアークを抽出することができる。図22をさらに参照しながら説明する。なお、これらの条件を全て満たした場合にG1連続境界Pアークとなる。
a)PアークPの両側(図22における左右両側)で、PアークPの頂点(図22では頂点A)に一つあるいは複数の異なるPアーク(図22のQ1,Q2)が、それらの端点Aで直交接続していること。本実施形態では、その端点AにおけるPアーク(Q1,Q2)の接線(図22のT1、T2)をそれぞれ求める;
b)すべてのPアーク(Q1、Q2)の接線(T1、T2)は、PアークPの軸Oと平行であること;
このようにして抽出されたPアークPは、円弧G1連続境界である。
【0087】
(図7のステップSA−8…平滑Pライン判定処理)
前述のように、G1連続境界が直線になるのは、次の二つの場合である。
【0088】
[第1種直線](平面×円柱面)あるいは、(平面×円錐面)
[第2種直線](円柱面×円柱面)、(円柱面×円錐面)あるいは(円錐面×円錐面)
それぞれの場合について、直線G1連続境界の抽出の方法を説明する。
【0089】
(折れPライン、平滑Pライン)
直線G1連続境界は、メッシュ上のPラインを構成する。Pラインは、折れPライン、平滑Pラインに分けられる。Pラインに含まれる稜線がすべて折れ稜線の場合を折れPライン、すべて平滑稜線の場合を平滑Pラインと称する。
【0090】
したがって、平滑Pライン判定処理部80は、この定義に基づいて、平滑Pラインを判定することができる。
【0091】
(図7のステップSA−10…[第1種直線]の場合)
前述の
[第1種直線](平面×円柱面)あるいは、(平面×円錐面)
の場合は、平面領域が平滑な境界で円柱面あるいは円錐面に接している場合である。
【0092】
本実施形態では、直線G1連続境界判定部52が、以下の3条件を判定することによって、[第1種直線]のために平滑Pラインを抽出することができる。図23をさらに参照しながら説明する。なお、これらの条件を全て満たした場合にG1連続境界Pラインとなる。
a)PラインL(図23中の頂点AB間)の片側(図23において左側)において、L上の頂点AにPアークPが端点Aで直交接続していること。ここで本実施形態では、PアークPの端点AでPアークPの接線Tを求める;
b)その反対側(図23において右側)で、PラインLが三角形Mと接続しており、かつ、三角形Mと三角形Nは平坦稜線CBで接続していて、三角形Mと三角形Nが一つの平面になっていること;
c)PアークPの接線Tは、三角形Mの平面上にあること;
この条件により抽出されたPラインは、直線G1連続境界である。
【0093】
(図7のステップSA−11…[第2種直線]の場合)
最後に残ったのが、円柱面や円錐面どうしが接することによって直線G1連続境界をもつ次の場合である。
[第2種直線](円柱面×円柱面)、(円柱面×円錐面)あるいは(円錐面×円錐面)
【0094】
この場合も、直線G1連続境界は、三角形メッシュ上の平滑Pラインとなる。本実施形態では、直線G1連続境界判定部52が、以下の2条件を判定することによって、[第2種直線]のために平滑Pラインを抽出することができる。図24をさらに参照しながら説明する。なお、これらの条件を全て満たした場合にG1連続境界Pラインとなる。
a)PラインLの両側で、L上の頂点Aに、それぞれ少なくとも一つのPアークP1,P2が端点で直交接続していること。ここで、本例では、端点Aにおいて、これらのPアークP1,P2の接線T1、T2を求める。
b)これらのPアークP1、P2は、相異なる円弧上にあり、かつ、PラインLとこれらの接線T1,T2が、同じ平面上にあること。
【0095】
この条件により抽出されたPラインは、直線G1連続境界である。
【0096】
前記のようにして、円弧及び直線のG1連続境界をいずれも抽出することができる。その後、抽出されたG1連続境界を、出力部60により、所望のメモリあるいはシステムに送る。これにより、抽出されたG1連続境界を、例えばCADメッシュのセグメントのために利用することができる。
【0097】
なお、本発明は、前記した実施の形態に限定されるものではなく、本発明の要旨を逸脱しない範囲内において種々の変更を加え得るものである。
【0098】
例えば、前記した各構成要素は、機能ブロックとして存在していればよく、独立したハードウエアとして存在しなくても良い。また、実装方法としては、ハードウエアを用いてもコンピュータソフトウエアを用いても良い。さらに、本発明における一つの機能要素が複数の機能要素の集合によって実現されても良く、本発明における複数の機能要素が一つの機能要素により実現されても良い。
【0099】
また、本発明を構成する各機能要素は、離散して存在しても良い。離散して存在する場合には、例えばネットワークを介して必要なデータを受け渡すことができる。各部の内部における各機能も、同様に、離散して存在することが可能である。例えば、グリッドコンピューティングやクラウドコンピューティングを用いて、本実施形態における各機能要素あるいはその一部分を実現することも可能である。
【符号の説明】
【0100】
10 CADメッシュ受付部
20 Pアーク抽出処理部
30 Pライン抽出処理部
40 円弧G1連続境界抽出部
41 内部Pアーク判定部
43 G連続境界判定部
50 直線G1連続境界抽出部
52 直線G1連続境界判定部
60 出力部
70 平滑Pアーク判定処理部
80 平滑Pライン判定処理部
【技術分野】
【0001】
本発明は、3次元CADモデルを三角形分割することにより生成された三角形メッシュであるCADメッシュから、G1連続境界を抽出するための技術に関するものである。
【背景技術】
【0002】
機械設計では、CAD (Computer Aided Design)システムによって、機械部品の形状が、曲面を含む3次元の形状モデルとして、コンピュータ内に表現されている。このCADモデルには、平面、円柱面、球面やトーラス面などの解析的曲面(プリミティブ曲面)と、自由な形状を表現するためのスプライン曲面とが含まれている。図1には、プリミティブ曲面によって構成されたCADモデルの例を示す。このような形状モデルを活用することによって、機械設計における様々な検討やシミュレーションを行うことができる。
【0003】
図1から分かるように、CADモデルは、曲面のパッチを張り合わせた形になっており、それぞれのパッチは球面や円柱面の一部になっている。本明細書の説明では、前者(曲面のパッチ)をフェースと呼び、後者(パッチを構成する球面や円柱面)を母曲面と呼ぶ。また、単に曲面といった場合には、フェースと母曲面の両方を意味することにする。また、本明細書におけるCADモデルとは、厚みのない面だけを表すサーフェスモデルと体積を持ったソリッドモデルとの両方を含む。
【0004】
さて、CADモデルは、このように多種類の曲面で構成されており、そのデータ表現も複雑なために、異なるCADシステム間でデータをやり取りするのが困難な場合が多い。また、形状を表示するだけであったり、ある種の計算を行ったりする上では、曲面データは不要で、曲面を近似した多面体モデルで十分な場合も多い。さらに、CADモデルは機密性が高い情報であるため、それを社外に提供する場合には、曲面を多面体で近似したデータを用いることが多い。
【0005】
このような多面体モデルは、CADモデルのフェースを三角形で分割すること(いわゆる三角形分割)によって生成されることが一般的であり、分割の結果は、三角形の集合となる(図2参照)。このような三角形の集合は、一般に三角形メッシュと呼ばれる。また、本明細書では、CADモデルを三角形分割して生成された三角形メッシュをCADメッシュと呼ぶ。三角形メッシュを格納したファイルとして代表的なものに、STLファイル(stereo lithography format)があり、これは産業界において広く流通している。
【0006】
CADメッシュは、一般に非常に多数の三角形を含んでいるが、CADモデルにおける曲面の情報は失われてしまっている。したがって、例えば、CADモデルに含まれていた、円柱における中心軸の位置を修正したり、円柱の半径を変えたり、といった操作を行うことが出来ない。また、CADモデルで行われるその他の多くの処理もCADメッシュでは不可能となる。
【0007】
CADメッシュから、プリミティブ曲面(平面、円柱面、円錐面、球面又はトーラス面)上のフェースを抽出することによって、CADメッシュの元となったCADモデルを復元することができれば、このCADモデルを用いて、前記の処理が可能となる。このようなCADモデル復元の基礎的処理として、これらのフェースの境界を高精度に求めるアルゴリズムが必要になる。
【先行技術文献】
【特許文献】
【0008】
【特許文献1】特開2010−186479号公報
【特許文献2】特開2006−277713号公報
【発明の概要】
【発明が解決しようとする課題】
【0009】
CADモデルを分割してCADメッシュを生成すると、フェースは多数の三角形に分割され、またフェースの境界曲線は折れ線になる。CADモデルを復元するためには、CADメッシュに含まれる多数の三角形を、元のCADモデルを構成していたフェースに相当する領域に適切に分割し、またフェースの境界に相当する折れ線を認識することが必要である。分割することを、一般に三角形メッシュのセグメンテーションといい、分割された領域をセグメントと呼ぶ。図 3に図 2のメッシュモデルに対応するセグメントを示す。
【0010】
セグメンテーションに関しては、コンピュータグラフィックスの分野で多数の研究が行われている。従来の研究ではほとんどの場合、各三角形を処理の単位とする。例えば、
・複数の三角形が滑らかに接続している場合、あるいは、
・複数の三角形に曲面を当てはめてみて、あてはまる場合
に、それらの三角形を同じ領域としてセグメンテーションを行う(前記特許文献1及び2参照)。なお、前記特許文献2では、三角形の法線を評価することにより、境界抽出を試みている。
【0011】
ところで、G0連続境界(後述)では、境界が折れているため、CADメッシュにおいても、三角形の間の稜線が折れている。これを判別することで、容易に境界を認識することができる。しかし、例えば図4のように平面と円柱面が滑らかに接したり、図5のように球面と円錐面が滑らかに接することで構成されるG1連続境界(後述)の部分では、三角形も非常に滑らかに接続している。このため、従来の技術では、CADメッシュ上でこのようなG1連続境界を正確に抽出することが困難であった。
【0012】
本発明は、CADメッシュが一定の規則に従って三角形分割されていることを利用してセグメントの境界を正確に抽出するためのものである。
【課題を解決するための手段】
【0013】
本発明は、従来のセグメンテーションのように三角形メッシュの個々の三角形を主たる処理の対象とするのではなく、CADメッシュから円弧又は直線を抽出してG1連続境界の抽出を行うという、従来の手法とは基本的に異なる考え方を採用したものである。本発明における課題を解決する手段は、以下の項目のように記載できる。
【0014】
(項目1)
CADメッシュ受付部と、Pアーク抽出処理部と、Pライン抽出処理部と、平滑Pアーク判定処理部と、平滑Pライン判定処理部と、円弧G1連続境界抽出部と、直線G1連続境界抽出部と、出力部とを備えており、
前記CADメッシュ受付部は、3次元CADモデルを三角形分割することにより生成された三角形メッシュであるCADメッシュのデータを受け付ける構成となっており、
前記Pアーク抽出処理部は、前記CADメッシュからPアークを抽出する構成となっており、
前記Pライン抽出処理部は、前記CADメッシュからPラインを抽出する構成となっており、
前記平滑Pアーク判定処理部は、前記Pアークが平滑Pアークかどうかを判定する構成となっており、
前記平滑Pライン判定処理部は、前記Pラインが平滑Pラインかどうかを判定する構成となっており、
前記円弧G1連続境界抽出部は、抽出された前記平滑Pアークを判定することにより、円弧G1連続境界を抽出する構成となっており、
前記直線G1連続境界抽出部は、抽出された前記平滑Pラインを判定することにより、直線G1連続境界を抽出する構成となっており、
前記出力部は、抽出された円弧G1連続境界及び直線G1連続境界を、その後のセグメンテーションのために出力する構成となっている
接平面連続境界の抽出システム。
【0015】
(項目2)
前記円弧G1連続境界抽出部は、内部Pアーク判定部と、第1種円弧、第2種円弧及び/又は第3種円弧のための円弧G1連続境界判定部とを備えており、
前記内部Pアーク判定部は、前記Pアークが内部Pアークか否かを判定する構成となっており、
前記第1種円弧のために、円弧G1連続境界判定部は、前記Pアークが内部Pアークでなく、かつ、次の条件a)〜c)
a)前記Pアークの片側で、その頂点に一つあるいは複数の他のPアークが端点で直交接続していること;
b)前記Pアークの反対側に、平坦稜線を介して、三角形(すなわち平面)が接続していること;
c)前記条件a)に記載した前記Pアークの頂点に端点で接続した一つあるいは複数の前記他のPアークの接線が、前記Pアークの片側において、前記Pアークの反対側の平面上にあること;
を満足する場合に、円弧G1連続境界と判定する構成となっており、
前記第2種円弧のために、円弧G1連続境界判定部は、前記Pアークが内部Pアークでなく、かつ、次の条件a)〜c)
a)前記Pアークの片側で、その頂点に一つあるいは複数のPアークが端点で直交接続していること;
b)前記Pアークの反対側で、その頂点に一つあるいは複数のPラインが端点で直交接続していること(但しPラインがPアークの軸と直交する場合を除く);
c)前記条件a)に記載した前記Pアークの頂点に端点で接続した一つあるいは複数の前記他のPアークの接線が、前記Pアークの片側において、前記Pアークの反対側のPラインと平行であるか、あるいは、前記Pアークの接線と前記Pアークの軸とがなす角と、前記Pラインと前記Pアークの軸とがなす角度とが同じであること;
を満足する場合に、円弧G1連続境界と判定する構成となっており、
前記第3種円弧のための円弧G1連続境界判定部は、前記Pアークが内部Pアークでなく、かつ、次の条件a)〜b)
a)前記Pアークの両側でその頂点に一つあるいは複数の他のPアークが端点で直交接続していること;
b)前記条件a)に記載した前記Pアークの両側に端点で接続した一つあるいは複数の前記他のPアークの接線が、前記Pアークの軸と平行となっていること;
を満足する場合に、円弧G1連続境界と判定する構成となっている
項目1に記載の抽出システム。
【0016】
(項目3)
前記直線G1連続境界抽出部は、第1種直線及び/又は第2種直線のための直線G1連続境界判定部を備えており、
前記直線G1連続境界判定部は、第1種直線のために、次の条件a)〜c)
a)前記平滑Pラインの片側において、前記平滑Pラインの頂点に一つあるいは複数のPアークが端点で直交接続していること;
b)前記平滑Pラインにおける反対側に、一つの三角形あるいは平坦稜線を介して三角形(すなわち平面)が接続していること;
c)前記平滑Pラインの端点に接続した前記Pアークの接線が、前記反対側の三角形で構成される平面上にあること;
を満足する場合に、直線G1連続境界と判定する構成となっており、
前記直線G1連続境界判定部は、第2種直線のために、次の条件a)〜b)
a)前記平滑Pラインの両側において、前記平滑Pラインの頂点にそれぞれ一つあるいは複数のPアークがその端点で直交接続していること;
b)前記平滑Pラインの両側の前記Pアークが、相異なる円弧上にあり、且つ、前記平滑Pラインと、前記Pアークの前記端点における接線とは、同じ平面上にあること
を満足する場合に、直線G1連続境界と判定する構成となっている
項目1又は2に記載の抽出システム。
【0017】
(項目4)
以下のステップを備えることを特徴とする、接平面連続境界の抽出方法:
CADメッシュ受付部が、3次元CADモデルを三角形分割することにより生成された三角形メッシュであるCADメッシュのデータを受け付けるステップ;
Pアーク抽出処理部が、前記CADメッシュからPアークを抽出するステップ;
Pライン抽出処理部が、前記CADメッシュからPラインを抽出するステップ;
平滑Pアーク判定処理部が、前記Pアークは平滑Pアークかどうかを判定するステップ;
平滑Pライン判定処理部が、前記Pラインは平滑Pラインかどうかを判定するステップ;
円弧G1連続境界抽出部が、抽出された前記平滑Pアークを判定することにより、円弧G1連続境界を抽出するステップ;
直線G1連続境界抽出部が、抽出された前記平滑Pラインを判定することにより、直線G1連続境界を抽出するステップ;
出力部が、抽出された円弧G1連続境界及び直線G1連続境界を、その後のセグメンテーションのために出力するステップ。
【0018】
(項目5)
項目4記載の抽出方法をコンピュータにより実行するためのコンピュータプログラム。
【発明の効果】
【0019】
本発明によれば、CADメッシュ上でこのようなG1連続境界を正確に抽出することが可能となる。
【図面の簡単な説明】
【0020】
【図1】プリミティブ曲面によって構成されたCADモデルを示す図である。
【図2】図1のCADモデルを三角形分割して得られた三角形メッシュを示す図である。
【図3】セグメンテーションによって復元されたプリミティブ曲面の一例を示す説明図である。
【図4】直線G1連続で接続する平面と円柱面との境界を示すための説明図である。
【図5】円弧G1連続で接続する球面と円錐面との境界を示すための説明図である。
【図6】本発明の一実施形態における抽出システムの全体的な構成を説明するためのブロック図である。
【図7】本実施形態の抽出方法の手順を説明するためのフローチャートである。
【図8】二面角を説明するための説明図である。
【図9】平坦稜線、折れ稜線と平滑稜線を説明するための説明図である。
【図10】Pアークを説明するための説明図である。
【図11】Pアークの抽出方法を説明するための説明図である。
【図12】連続Pラインと単独Pラインとを説明するための説明図である。
【図13】折れPアーク、平滑Pアーク及び平坦Pアークを説明するための説明図である。
【図14】平滑な内部Pアークと平滑な境界Pアークとを説明するための説明図である。
【図15】折れた境界Pアークと平坦な内部Pアークを説明するための説明図である。
【図16】十字交差、T交差及び仮想T−Pアーク交差の例を示す説明図である。
【図17】T-PアークとボーダーPアークを説明するための説明図である。
【図18】球面及びトーラス面におけるT-Pアークを説明するための説明図である。
【図19】球面あるいはトーラス面上に平滑Pアークがある場合における、内部Pアークの判定処理を説明するための説明図である。
【図20】第1種円弧のG1連続境界抽出の処理を説明するための説明図である。
【図21】第2種円弧のG1連続境界抽出の処理を説明するための説明図である。
【図22】第3種円弧のG1連続境界抽出の処理を説明するための説明図である。
【図23】第1種直線のG1連続境界抽出の処理を説明するための説明図である。
【図24】第2種直線のG1連続境界抽出の処理を説明するための説明図である。
【発明を実施するための形態】
【0021】
以下、添付図面を参照しながら、本発明の実施形態に係る接平面連続境界の抽出システム及び抽出方法について説明する。
【0022】
(前提説明)
プリミティブ曲面(平面、円柱面、円錐面、球面又はトーラス面)から構成されるCADモデルで使われる用語及び概念についてここで説明する。
【0023】
(プリミティブ曲面)
本実施形態においては、CADモデルの曲面を、平面、円柱面、円錐面、球面、トーラス面のいずれかであると仮定する。これらの曲面をプリミティブ曲面という。
【0024】
(プリミティブ曲面の間の交線)
CADモデルは、これらのプリミティブ曲面を交差させることによって作られ、曲面同士が交差することによって、それらの交線として曲線が生成される。この交差曲線が、CADモデルのフェースの境界曲線となる。プリミティブ同士の交差曲線は、円弧(円を含む)、直線及びその他の曲線から構成される。ここで、後述するように、G1連続境界は、円弧か直線なので、これら以外の曲線については無視できる。
【0025】
交差の仕方は、「曲面どうしがある角度をもって交差する場合」と「曲面同士が接する場合」に限られる。なお、交線上のある点(特異点)で、二つの曲面の法線が一致し、二つの曲面がこの点で「角度なし」で交差することがあるが、この特異点については、極微小な点なので、無視して差し支えない。前者の場合(曲面どうしがある角度をもって交差する場合)には、2曲面が角度をもって交差することになり、後者の場合(曲面同士が接する場合)には、2曲面が滑らかに交差する。前者の交差をG0連続交差と呼び、その交線をG0連続交線あるいはG0連続境界と呼ぶ。また、後者の交差をG1連続交差、その交線をG1連続交線あるいはG1連続境界と呼ぶ。下記表1では、プリミティブ曲面の可能なすべての組み合わせについてG1連続境界が生成される場合を示す。
【0026】
【0027】
表1に示すように、G1連続境界は、直線あるいは円弧のいずれかになる。
【0028】
G1連続境界が直線になるのは、交差する2曲面が、次の組み合わせの場合に限られる。
【0029】
[第1種直線](平面×円柱面)あるいは、(平面×円錐面)の場合;
[第2種直線](円柱面×円柱面)、(円柱面×円錐面)あるいは(円錐面×円錐面)の場合。
【0030】
さらにG1連続境界が円弧になるのは、交差する2曲面のうちの少なくとも一方が球面あるいはトーラス面の場合に限られ、かつ、次の組み合わせの場合に限られる。
【0031】
[第1種円弧](平面×トーラス面)の場合;
[第2種円弧](球面×円柱面)、(トーラス面×円柱面)、(球面×円錐面)あるいは(トーラス面×円錐面)の場合;
[第3種円弧](球面×トーラス面)、(トーラス面×トーラス面)の場合。
【0032】
(CADメッシュ上の円弧と直線)
CADソフトウェアからCADメッシュを作成する際に、CADモデルの曲面間を境界で分割し、さらに、曲面も規則的に分割し、三角形メッシュを作成することが多い。そのため、CADメッシュには、多数の内部曲線及び境界曲線が存在する。
【0033】
そこで、CADメッシュから円弧と直線を抽出し、交差する円弧あるいは直線からプリミティブを認識可能であると考えられる。さらに[第1種円弧]、[第2種円弧]、[第3種円弧]、[第1種直線]、[第2種直線]の性質を用いて、G1連続境界をCADメッシュ上で抽出することが可能になる。以下、詳しく説明する。
【0034】
(本実施形態の構成)
本実施形態の抽出システムは、接平面連続境界、即ち前記したG1連続境界を抽出するためのシステムである。
【0035】
このシステムは、図6に示すように、CADメッシュ受付部10と、Pアーク抽出処理部20と、Pライン抽出処理部30と、円弧G1連続境界抽出部40と、直線G1連続境界抽出部50と、出力部60とを備えている。さらにこのシステムは、平滑Pアーク判定処理部70と、平滑Pライン判定処理部80とを備えている。
【0036】
CADメッシュ受付部10は、3次元CADモデルを三角形分割することにより生成された三角形メッシュであるCADメッシュのデータを受け付ける構成となっている。したがって、本実施形態で対象となるCADメッシュは、3次元CADモデルから生成されたものである。CADメッシュのデータは、例えばSTLファイルとして受け渡される。
【0037】
Pアーク抽出処理部20は、CADメッシュからPアーク(後述)を抽出する構成となっている。
【0038】
Pライン抽出処理部30は、CADメッシュからPライン(後述)を抽出する構成となっている。
【0039】
円弧G1連続境界抽出部40は、抽出されたPアークを判定することにより、円弧G1連続境界を抽出する構成となっている。
【0040】
円弧G1連続境界抽出部40は、内部Pアーク判定部41と、円弧G1連続境界判定部43とを備えている。
【0041】
内部Pアーク判定部41は、Pアークが内部Pアーク(後述)か否かを判定する構成となっている。
【0042】
G1連続境界判定部43は、[第1種円弧]、[第2種円弧]及び[第3種円弧]のために、G1連続境界を判定する構成となっている。判定条件については後述する。
【0043】
直線G1連続境界抽出部50は、抽出されたPラインを判定することにより、直線G1連続境界を抽出する構成となっている。直線G1連続境界抽出部50は、第1種直線及び第2種直線のための直線G1連続境界判定部52を備えている。
【0044】
直線G1連続境界判定部52は、第1種直線及び第2種直線のために直線G1連続境界と判定する構成となっている。判定条件については後述する。
【0045】
出力部60は、抽出された円弧G1連続境界及び直線G1連続境界を、その後のセグメンテーションのために、適宜の処理システムあるいは処理要素に出力する構成となっている。もちろん、出力部60は、得られたデータを一旦記憶部(図示せず)に出力するものであってもよい。
【0046】
平滑Pアーク判定処理部70は、Pアーク抽出処理部20で抽出されたPアークが平滑Pアーク(後述)であるかどうかを判定するものである。
【0047】
平滑Pライン判定処理部80は、Pライン抽出処理部30で抽出されたPラインが平滑Pライン(後述)であるかどうかを判定するものである。
【0048】
前記した各機能要素は、適宜なハードウエアに実装されたコンピュータプログラムにより構成可能である。もちろん、コンピュータプログラムで実行される機能をハードウエアで実行することは可能であり、その逆も可能である。
【0049】
(本実施形態における抽出方法)
つぎに、前記した抽出システムを用いた抽出方法の一例を、図7を参照しながら説明する。
【0050】
(図7のステップSA−1)
まず、CADメッシュ受付部10は、CADメッシュを受け取る。このCADメッシュは、例えば上記のSTLファイルで提供される。
【0051】
(三角形メッシュ及び位相化)
ここで、三角形メッシュの一般的な性質について説明する。各三角形は、三つの頂点から構成される。メッシュの三角形は、連続な曲面を分割したものであるから、三角形はバラバラではなく、稜線と稜線とで隙間なく接続されている。つまり、メッシュにおいて三角形の頂点は複数の三角形で共有されており、また、三角形の稜線は一般に2個の三角形により共有されている。さらに、メッシュの三角形集合から、次のような接続関係を導出することができる。まず、三角形メッシュにおいて、3次元座標値が一致する頂点を同一の頂点とし、さらに、同じ2頂点を結ぶ辺を同一の稜線とする。このように三角形の頂点、稜線の接続関係を構築することを位相化という。以下では、このような位相化が行われた三角形メッシュを前提とする。
【0052】
(二面角(dihedral angle)と、平坦稜線、平滑稜線及び折れ稜線)
上記の位相化された三角形メッシュでは、各三角形は、その隣りの三角形と関係付けられているので、図8に示すように、隣り合う三角形が、それらの間の稜線において交差する角度を容易に計算することができる。この角度(図8中の角度γ)を二面角と呼ぶ。二面角が180度である稜線を平坦稜線と呼ぶ(図9参照)。二面角が180度からある程度離れた角度である稜線は、角があるので折れ稜線と呼ぶ(図9参照)。また、二面角が180度ではないが、それに近い値の場合は、滑らかな曲面上の稜線を表すので、平滑稜線と呼ぶ(図9参照)。「それに近い値」は、基本的にはユーザの指定により決定される。ただし、CAD側で「円を多角形近似するときの分割数」を指定する場合があるので、その値を参照してこの値を決めることもできる。例えば、円を36分割している場合には、「それに近い値」は、内接正36多角形の1つの内角=170度より大きい値、例えば、175度とできる。
【0053】
(図7のステップSA−2…Pアークとその抽出)
前記した三角形メッシュは多面体であるので、その稜線を辿っていくと、頂点の列即ち折れ線が生成される。折れ線の中には、そのすべての頂点が、ある一つの円弧上に乗っているものがあり、本明細書ではこれをPアーク(polyline arc)と呼ぶ。ただし、円弧上においても折れ線の頂点の並び順は変わらないものとする。すなわち、円弧上で折れ線の始点に対して各頂点がなす円弧の中心角は、折れ線上の頂点の並び順に対して単調に増加するものとする。例えば、図10では、球面が三角形分割されているので、その球面上に多数のPアークが存在する。
【0054】
よって、Pアーク抽出処理部20は、この性質を使って、PアークをCADメッシュから抽出する。すなわち、前述の位相付きの三角形メッシュでは、頂点と頂点が稜線で接続されているので、ある頂点からそれに隣接する頂点を次々と辿って行くことによって折れ線を作ることができる。空間中の円は(一直線上にない)3点で一意に決定できるので、稜線で接続された3頂点(但し3頂点がメッシュの三角形をなす場合を除く)について、図11に示すように、その3頂点V1,V2,V3を通る円弧を定めることができる。そして、その3頂点の両端の2頂点から、その円弧に沿って、他の接続する頂点を稜線沿いに辿って行き、辿れなくなるか、あるいは、一周して既に辿った頂点に行き着くまで辿る。
【0055】
このようにして辿った折れ線が4個以上の頂点を含む場合には、折れ線の頂点は円弧上にあるので、これをPアークとする。この手続きを、すべての連続する3頂点の組に付いて行うことによって、Pアーク抽出処理部20は、Pアークを抽出することができる。
【0056】
Pアークは、空間の円弧を折れ線で近似したものである。Pアークに対して、その中心、半径、Pアークの円弧を含む平面、中心軸(中心を通り、平面の法線を方向ベクトルとする直線)がそれぞれ定義される、それらをPアークの中心、Pアークの半径、Pアークの平面、Pアークの中心軸と呼ぶ。
【0057】
(図7のステップSA−3…Pラインとその抽出)
CADメッシュにおいて、円柱面フェース、あるいは円錐面フェースの上で、一つあるいは複数の稜線が連続して一つの直線をなすものをPラインという。一本の稜線で構成されるものを単独Pラインといい、複数の稜線出構成されるものを連続Pラインという。(図12(a)(b)参照)。
【0058】
連続Pラインについては、Pアークと同様にして、同じ直線上にある稜線を辿ることによって、Pライン抽出処理部30により、容易に抽出できるが、本例では、Pアークに接続しているPラインだけが必要なので、次にようにして求める。すなわち、あるPアークの頂点(端点も含む)と直交接続して、且つPアークの軸を通る平面上の稜線から出発し、それに隣接する稜線で、出発した稜線と同じ直線上にある稜線を次々と辿れるところまで辿って行くことによって連続Pラインを抽出する。また、一つの稜線も辿れなかったときは、出発した稜線は単独Pラインとなる。
【0059】
ステップSA−3は、ステップSA−2の後に行われる。
【0060】
(図7のステップSA−4…平滑Pアークの判定処理)
上で述べたように、G1連続境界が円弧になるのは、2曲面のうちの少なくとも一方が球あるいはトーラスの場合に限られる。
【0061】
この場合について、円弧G1連続境界抽出部40により、Pアークを用いて、円弧G1連続境界を求める方法を以下に示す。
【0062】
(折れPアーク、平滑Pアーク、平坦Pアーク)
ステップSA−2で求めたPアークは、それに含まれる稜線が折れ稜線のもの、平滑稜線のもの、そして平坦稜線のものに分けられる。それぞれ、折れPアーク、平滑Pアーク、平坦Pアークと呼ぶ(図13)。この平滑Pアークの定義から、平滑Pアーク判定処理部70は、Pアークが平滑Pアークであるかどうかを判定することができる。折れPアークは、CADモデルでは、平面が円柱の中心軸に直交するように交差する場合の交線に対応する。平滑Pアークは、曲面を分割した場合や曲面のG1連続境界として現れる。また、平坦Pアークは、円柱面あるいは円錐面を分割したときに現れる。
【0063】
(図7のステップSA−5…内部Pアークと境界Pアーク)
さらに、CADメッシュに含まれる平滑Pアークには、二つのタイプがある。一つは、図14及び図15に示すように、球面とトーラス面とを母曲面とするフェースを三角形分割することによって、フェースの内部に現れるものである。これを内部Pアークと呼ぶ。これらは滑らかな曲面上のPアークなので、平滑Pアークとなる。また、円柱面や円錐面状に現れる平坦Pアークも内部Pアークとなる。もう一つのタイプの平滑Pアークは、フェースの境界に対応するもので、これを境界Pアークと呼ぶ。
【0064】
上に述べた、折れPアーク、平滑Pアーク及び平坦Pアークと、内部Pアーク及び境界Pアークとの関係を表2にまとめる。
【0065】
【0066】
なお、表2において、○は、折れPアーク、平滑Pアーク及び平坦Pアークが、内部Pアークあるいは境界Pアークになる可能性があることを示し、×はこれらが内部Pアークあるいは境界Pアークになる可能性がないことを示す。
【0067】
求めたいG1連続境界に関係するのは、平滑で境界のPアークである。これを平滑境界Pアークと呼ぶことにする。平滑Pアークかどうかは、前述のように二面角を用いて決めることができる。そこで、このステップSA−5では、平滑Pアークを、内部Pアークと境界Pアークに判定する。この両者は排他的関係にあるので、一方だけを判定すればよい。すなわち、内部Pアーク判定部41により、内部Pアークでないことがわかれば、それは境界Pアークとする。よって、以下では、内部Pアーク判定部41による内部Pアークの判定法について述べる。これには、後述するように、図16で示すような、Pアーク間の位置関係によって、十字交差による判定方法と、T交差による判定方法と、仮想T-Pアーク交差による判定方法とがある。
【0068】
(十字交差による判定)
球面やトーラス面の三角形分割では、等パラメタ線というものに沿って三角形分割されるのが一般的である。例えば、半径1の球面は、二つのパラメタu,vを用いて、
p=(cos u cos v, cos u sin v, sin u)
のようにパラメタ表現することができる。この式で、u=一定、あるいはv=一定とすると曲線(等パラメタ曲線)が定義される。特に球面とトーラス面では、等パラメタ曲線は円弧となる。CADモデルの三角形分割では、この等パラメタ線にそって三角形分割されるのが一般的であるため、CADメッシュではこの等パラメタ線の円弧に対応するPアークが含まれることになる。
【0069】
さらに、図10に示すように、u=一定の等パラメタ線とv=一定の等パラメタ線は、曲面上で交差することから、CADメッシュから求めたPアークで十字状に交差しているものは等パラメタ線に対応することになる。これはトーラス面でも同様である。このような、u=一定の等パラメタ線とv=一定の等パラメタ線の交差を十字交差と呼ぶことにする。
【0070】
言い換えると、二つの平滑Pアークが十字交差していれば、これらのPアークは球面フェースあるいはトーラス面フェースの内部Pアークになる。内部Pアーク判定部41は、まず、この条件を用いて、内部Pアークを判定できる。
【0071】
(T交差による判定)
図17に示すように、Pアークが、その端点で別のPアーク内にT字型に交わる場合をT交差とし、その交点をT交点とする。さらに、前者のPアークをT-Pアークと呼び、後者をボーダーPアークと呼ぶ。ここで、T交差とは、Pアークの端点がボーダーPアークの内部の頂点(ボーダーPアークの端点以外)に一致する場合をいう。さらに、その場合だけでなく、Pアークの端点に外挿した円弧(図17中の破線で示す)がPアークに交差する場合も、T交差に含める。これらを区別するために、前者を直接T-Pアークと呼び、後者を間接T-Pアークと呼ぶ。すなわち間接T-Pアークとは、図17に破線で示すようにPアークを延長したときにT交差となるPアークをいう。
【0072】
前記(十字交差による判定)では、Pアークの十字交差によって内部Pアークの判定を行っていたが、CADの三角形分割の方法によっては、まれに球面・トーラス面のメッシュの内部Pアークが十字交差しないことがある。この場合、T交差によって内部Pアークを判定することができる(図18)。
【0073】
これは以下のように証明できる。
・まずボーダーPアークが境界Pアークの場合を考える。もしT-Pアークも境界Pアークとすると、T交点において三つ以上の曲面(ボーダーPアークの両側の曲面と、T-Pアークの両側の曲面を含む三つの曲面)が交差していることになり、T交点はボーダーPアークの端点でなければならない。しかし、T-Pアークは、ボーダーPアークの端点以外で交差しなければならないので仮定に反する。よってT-Pアークは内部Pアークでなければならない。
・次にボーダーPアークが内部Pアークである場合を考える。もしT-Pアークが境界Pアークであるとすると、T交点において、曲面はボーダーPアークの方向に不連続になっており、ボーダーPアークはそこに端点を持たなければならない。これは、T交点が端点ではないことに矛盾する。よって、T-Pアークは内部Pアークでなければならない。
【0074】
したがって、前記の判定基準により、内部Pアーク判定部41は、内部Pアークを判定することができる。
【0075】
(仮想T-Pアーク交差による判定)
図19に示すように、三角形分割の方法によっては、等パラメタ線による分割がuあるいはv方向の内の一方向だけの場合があり、その方向にだけ等パラメタ線に対する平滑Pアークが存在し、他の方向には平滑Pアークが存在しないことがある。すなわち、Pアークに十字交差あるいはT交差が存在しない場合がある。このような場合、内部Pアーク判定部41は、次の方法で内部Pアークを判定する。これらの平滑Pアークを
a1, a2 …, an
とすると、もしすべての隣り合う二つの平滑Pアーク
ai, ai+1
が、仮想的な平滑稜線Q(仮想T-Pアークという)を介して接続しているならば、その平滑稜線Qの内部頂点と接続する平滑Pアークは内部Pアークとなる。等パラメタ線のPアークが球面あるいはトーラス面上にあることを判定するために、
(1)この等パラメタ線のPアークの軸を通る平面を作成して、
(2)Pアーク群とその平面との交点群を求め、
(3)その交点群を補間して、もしその交点群が円弧であれば、その交点で仮想T-Pアークを作成し、
(4)上記の十字交差あるいはT交差判定によって、内部Pアーク及び境界Pアークを判定することができる。
【0076】
(図7のステップSA−7…球面、トーラス面のG1連続境界の抽出)
ステップSA−5の処理によって、平滑Pアークで、かつ、内部Pアークであるものをすべて判定することができる。平滑Pアークは、内部Pアークか境界Pアークのいずれかであるので、ステップSA−5の方法によって内部Pアークと判定されなかった平滑Pアークは境界Pアーク、すなわち平滑境界Pアークとする。
【0077】
この平滑境界Pアークは、CADモデルにおいて母曲面同士がG1連続で交差することによって生成された交差曲線に対応するので、フェースのG1連続境界になる。
【0078】
この平滑境界Pアークは、G1連続境界であることを次の判定処理で確認できる。
【0079】
前述のように、G1連続境界が円弧になるのは、次の三つの場合である。
【0080】
[第1種円弧](平面×トーラス面)
[第2種円弧](球面×円柱面)、(トーラス面×円柱面)、(球面×円錐面)あるいは(トーラス面×円錐面)
[第3種円弧](球面×トーラス面)、(トーラス面×トーラス面)
それぞれの場合について、円弧G1連続境界の抽出の方法を説明する。
【0081】
(図7のステップSA−7・・・[第1種円弧]の場合)
前述の
[第1種円弧](平面×トーラス面)
の場合は、平面領域が平滑な境界でトーラス面に接している場合である。
【0082】
本実施形態では、円弧G1連続境界判定部43が、以下の3条件を判定することによって、[第1種円弧]のために、平滑Pアークを抽出することができる。この手順を、図20をさらに参照しながら説明する。なお、これらの条件を全て満たした場合にG1連続境界Pアークとなる。
a)PアークPの片側(図20において下側)において、PアークPのいずれかの頂点(図示例では頂点A)に一つあるいは複数のPアーク(図示例ではPアークQ)がその端点で直交接続していること。ここで、本例では、PアークQの端点AでPアークQの接線Tを求めておく;
b)その反対側(図20において上側)でPアークPが、互いに平坦稜線で接続している三角形(平面S)と接続していること;
c)前記したすべてのPアークQの接線Tが平面S上にあること;
以上の条件により抽出されたPアークPは、円弧G1連続境界である。
【0083】
(図7のステップSA−7・・・[第2種円弧]の場合) 前述の
[第2種円弧]:((球面×円柱面)、(トーラス面×円柱面)、(球面×円錐面)あるいは(トーラス面×円錐面))
の場合とは、球面あるいはトーラス面が平滑な境界で円柱面あるいは円錐面に接している場合である。
【0084】
本実施形態では、円弧G1連続境界判定部43が、以下の3条件を判定することによって、[第2種円弧]のために平滑Pアークを抽出することができる。図21をさらに参照しながら説明する。なお、これらの条件を全て満たした場合にG1連続境界Pアークとなる。
a)PアークPの片側(図21において上側)において、PアークPのいずれかの頂点(図21においてAi)に一つあるいは複数のPアークQが端点で直交接続していること。ここで本例では、PアークQの端点AでPアークQの接線Tを求めておく;
b)その反対側(図21において下側)でPアークPの頂点に、一つあるいは複数のPラインLが端点で直交接続していること。ここでPラインLの端点は、図21においてAjである;
c)すべてのPアークQの接線Tが、すべてのPラインLと平行であるか、あるいは、「PアークPの軸Oと接線Tの角度」と「軸OとPラインLの角度」とが同じである(つまり図21において角度α=角度βである。ただし、α≠90°である)こと。ここで、角度αの値は、0°<α<180°となる;
このようにして抽出されたPアークPは、円弧G1連続境界である。
【0085】
(図7のステップSA−7・・・[第3種円弧]の場合)
前述の
[第3種円弧](球面×トーラス面)、(トーラス面×トーラス面)
の場合は、球面あるいはトーラス面が平滑な境界でトーラス面に接している場合である。
【0086】
本実施形態では、円弧G1連続境界判定部43が、以下の2条件を判定することによって、[第3種円弧]のために平滑Pアークを抽出することができる。図22をさらに参照しながら説明する。なお、これらの条件を全て満たした場合にG1連続境界Pアークとなる。
a)PアークPの両側(図22における左右両側)で、PアークPの頂点(図22では頂点A)に一つあるいは複数の異なるPアーク(図22のQ1,Q2)が、それらの端点Aで直交接続していること。本実施形態では、その端点AにおけるPアーク(Q1,Q2)の接線(図22のT1、T2)をそれぞれ求める;
b)すべてのPアーク(Q1、Q2)の接線(T1、T2)は、PアークPの軸Oと平行であること;
このようにして抽出されたPアークPは、円弧G1連続境界である。
【0087】
(図7のステップSA−8…平滑Pライン判定処理)
前述のように、G1連続境界が直線になるのは、次の二つの場合である。
【0088】
[第1種直線](平面×円柱面)あるいは、(平面×円錐面)
[第2種直線](円柱面×円柱面)、(円柱面×円錐面)あるいは(円錐面×円錐面)
それぞれの場合について、直線G1連続境界の抽出の方法を説明する。
【0089】
(折れPライン、平滑Pライン)
直線G1連続境界は、メッシュ上のPラインを構成する。Pラインは、折れPライン、平滑Pラインに分けられる。Pラインに含まれる稜線がすべて折れ稜線の場合を折れPライン、すべて平滑稜線の場合を平滑Pラインと称する。
【0090】
したがって、平滑Pライン判定処理部80は、この定義に基づいて、平滑Pラインを判定することができる。
【0091】
(図7のステップSA−10…[第1種直線]の場合)
前述の
[第1種直線](平面×円柱面)あるいは、(平面×円錐面)
の場合は、平面領域が平滑な境界で円柱面あるいは円錐面に接している場合である。
【0092】
本実施形態では、直線G1連続境界判定部52が、以下の3条件を判定することによって、[第1種直線]のために平滑Pラインを抽出することができる。図23をさらに参照しながら説明する。なお、これらの条件を全て満たした場合にG1連続境界Pラインとなる。
a)PラインL(図23中の頂点AB間)の片側(図23において左側)において、L上の頂点AにPアークPが端点Aで直交接続していること。ここで本実施形態では、PアークPの端点AでPアークPの接線Tを求める;
b)その反対側(図23において右側)で、PラインLが三角形Mと接続しており、かつ、三角形Mと三角形Nは平坦稜線CBで接続していて、三角形Mと三角形Nが一つの平面になっていること;
c)PアークPの接線Tは、三角形Mの平面上にあること;
この条件により抽出されたPラインは、直線G1連続境界である。
【0093】
(図7のステップSA−11…[第2種直線]の場合)
最後に残ったのが、円柱面や円錐面どうしが接することによって直線G1連続境界をもつ次の場合である。
[第2種直線](円柱面×円柱面)、(円柱面×円錐面)あるいは(円錐面×円錐面)
【0094】
この場合も、直線G1連続境界は、三角形メッシュ上の平滑Pラインとなる。本実施形態では、直線G1連続境界判定部52が、以下の2条件を判定することによって、[第2種直線]のために平滑Pラインを抽出することができる。図24をさらに参照しながら説明する。なお、これらの条件を全て満たした場合にG1連続境界Pラインとなる。
a)PラインLの両側で、L上の頂点Aに、それぞれ少なくとも一つのPアークP1,P2が端点で直交接続していること。ここで、本例では、端点Aにおいて、これらのPアークP1,P2の接線T1、T2を求める。
b)これらのPアークP1、P2は、相異なる円弧上にあり、かつ、PラインLとこれらの接線T1,T2が、同じ平面上にあること。
【0095】
この条件により抽出されたPラインは、直線G1連続境界である。
【0096】
前記のようにして、円弧及び直線のG1連続境界をいずれも抽出することができる。その後、抽出されたG1連続境界を、出力部60により、所望のメモリあるいはシステムに送る。これにより、抽出されたG1連続境界を、例えばCADメッシュのセグメントのために利用することができる。
【0097】
なお、本発明は、前記した実施の形態に限定されるものではなく、本発明の要旨を逸脱しない範囲内において種々の変更を加え得るものである。
【0098】
例えば、前記した各構成要素は、機能ブロックとして存在していればよく、独立したハードウエアとして存在しなくても良い。また、実装方法としては、ハードウエアを用いてもコンピュータソフトウエアを用いても良い。さらに、本発明における一つの機能要素が複数の機能要素の集合によって実現されても良く、本発明における複数の機能要素が一つの機能要素により実現されても良い。
【0099】
また、本発明を構成する各機能要素は、離散して存在しても良い。離散して存在する場合には、例えばネットワークを介して必要なデータを受け渡すことができる。各部の内部における各機能も、同様に、離散して存在することが可能である。例えば、グリッドコンピューティングやクラウドコンピューティングを用いて、本実施形態における各機能要素あるいはその一部分を実現することも可能である。
【符号の説明】
【0100】
10 CADメッシュ受付部
20 Pアーク抽出処理部
30 Pライン抽出処理部
40 円弧G1連続境界抽出部
41 内部Pアーク判定部
43 G連続境界判定部
50 直線G1連続境界抽出部
52 直線G1連続境界判定部
60 出力部
70 平滑Pアーク判定処理部
80 平滑Pライン判定処理部
【特許請求の範囲】
【請求項1】
CADメッシュ受付部と、Pアーク抽出処理部と、Pライン抽出処理部と、円弧G1連続境界抽出部と、直線G1連続境界抽出部と、平滑Pアーク判定処理部と、平滑Pライン判定処理部と、出力部とを備えており、
前記CADメッシュ受付部は、3次元CADモデルを三角形分割することにより生成された三角形メッシュであるCADメッシュのデータを受け付ける構成となっており、
前記Pアーク抽出処理部は、前記CADメッシュからPアークを抽出する構成となっており、
前記Pライン抽出処理部は、前記CADメッシュからPラインを抽出する構成となっており、
前記平滑Pアーク判定処理部は、前記Pアークが平滑Pアークかどうかを判定する構成となっており、
前記平滑Pライン判定処理部は、前記Pラインが平滑Pラインかどうかを判定する構成となっており、
前記円弧G1連続境界抽出部は、抽出された前記平滑Pアークを判定することにより、円弧G1連続境界を抽出する構成となっており、
前記直線G1連続境界抽出部は、抽出された前記平滑Pラインを判定することにより、直線G1連続境界を抽出する構成となっており、
前記出力部は、抽出された円弧G1連続境界及び直線G1連続境界を、その後のセグメンテーションのために出力する構成となっている
接平面連続境界の抽出システム。
【請求項2】
前記円弧G1連続境界抽出部は、内部Pアーク判定部と、第1種円弧、第2種円弧及び/又は第3種円弧のための円弧G1連続境界判定部とを備えており、
前記内部Pアーク判定部は、前記Pアークが内部Pアークか否かを判定する構成となっており、
前記第1種円弧のために、円弧G1連続境界判定部は、前記Pアークが内部Pアークでなく、かつ、次の条件a)〜c)
a) 前記Pアークの片側で、その頂点に一つあるいは複数の他のPアークが端点で直交接続していること;
b) 前記Pアークの反対側に、平坦稜線を介して、三角形(すなわち平面)が接続していること;
c) 前記条件a)に記載した前記Pアークの頂点に端点で接続した一つあるいは複数の前記他のPアークの接線が、前記Pアークの片側において、前記Pアークの反対側の平面上にあること;
を満足する場合に、円弧G1連続境界と判定する構成となっており、
前記第2種円弧のために、円弧G1連続境界判定部は、前記Pアークが内部Pアークでなく、かつ、次の条件a)〜c)
a) 前記Pアークの片側で、その頂点に一つあるいは複数のPアークが端点で直交接続していること;
b) 前記Pアークの反対側で、その頂点に一つあるいは複数のPラインが端点で直交接続していること(但しPラインがPアークの軸と直交する場合を除く);
c) 前記条件a)に記載した前記Pアークの頂点に端点で接続した一つあるいは複数の前記他のPアークの接線が、前記Pアークの片側において、前記Pアークの反対側のPラインと平行であるか、あるいは、前記Pアークの接線と前記Pアークの軸とがなす角と、前記Pラインと前記Pアークの軸とがなす角度とが同じであること;
を満足する場合に、円弧G1連続境界と判定する構成となっており、
前記第3種円弧のための円弧G1連続境界判定部は、前記Pアークが内部Pアークでなく、かつ、次の条件a)〜b)
a) 前記Pアークの両側でその頂点に一つあるいは複数の他のPアークが端点で直交接続していること;
b) 前記条件a)に記載した前記Pアークの両側に端点で接続した一つあるいは複数の前記他のPアークの接線が、前記Pアークの軸と平行となっていること;
を満足する場合に、円弧G1連続境界と判定する構成となっている
請求項1に記載の抽出システム。
【請求項3】
前記直線G1連続境界抽出部は、第1種直線及び/又は第2種直線のための直線G1連続境界判定部を備えており、
前記直線G1連続境界判定部は、第1種直線のために、次の条件a)〜c)
a)前記平滑Pラインの片側において、前記平滑Pラインの頂点に一つあるいは複数のPアークが端点で直交接続していること;
b)前記平滑Pラインにおける反対側に、一つの三角形あるいは平坦稜線を介して三角形(すなわち平面)が接続していること;
c)前記平滑Pラインの端点に接続した前記Pアークの接線が、前記反対側の三角形で構成される平面上にあること;
を満足する場合に、直線G1連続境界と判定する構成となっており、
前記直線G1連続境界判定部は、第2種直線のために、次の条件a)〜b)
a)前記平滑Pラインの両側において、前記平滑Pラインの頂点にそれぞれ一つあるいは複数のPアークがその端点で直交接続していること;
b)前記平滑Pラインの両側の前記Pアークが、相異なる円弧上にあり、且つ、前記平滑Pラインと、前記Pアークの前記端点における接線とは、同じ平面上にあること
を満足する場合に、直線G1連続境界と判定する構成となっている
請求項1又は2に記載の抽出システム。
【請求項4】
以下のステップを備えることを特徴とする、接平面連続境界の抽出方法:
CADメッシュ受付部が、3次元CADモデルを三角形分割することにより生成された三角形メッシュであるCADメッシュのデータを受け付けるステップ;
Pアーク抽出処理部が、前記CADメッシュからPアークを抽出するステップ;
Pライン抽出処理部が、前記CADメッシュからPラインを抽出するステップ;
平滑Pアーク判定処理部が、前記Pアークは平滑Pアークかどうかを判定するステップ;
平滑Pライン判定処理部が、前記Pラインは平滑Pラインかどうかを判定するステップ;
円弧G1連続境界抽出部が、抽出された前記平滑Pアークを判定することにより、円弧G1連続境界を抽出するステップ;
直線G1連続境界抽出部が、抽出された前記平滑Pラインを判定することにより、直線G1連続境界を抽出するステップ;
出力部が、抽出された円弧G1連続境界及び直線G1連続境界を、その後のセグメンテーションのために出力するステップ。
【請求項5】
請求項4記載の抽出方法をコンピュータにより実行するためのコンピュータプログラム。
【請求項1】
CADメッシュ受付部と、Pアーク抽出処理部と、Pライン抽出処理部と、円弧G1連続境界抽出部と、直線G1連続境界抽出部と、平滑Pアーク判定処理部と、平滑Pライン判定処理部と、出力部とを備えており、
前記CADメッシュ受付部は、3次元CADモデルを三角形分割することにより生成された三角形メッシュであるCADメッシュのデータを受け付ける構成となっており、
前記Pアーク抽出処理部は、前記CADメッシュからPアークを抽出する構成となっており、
前記Pライン抽出処理部は、前記CADメッシュからPラインを抽出する構成となっており、
前記平滑Pアーク判定処理部は、前記Pアークが平滑Pアークかどうかを判定する構成となっており、
前記平滑Pライン判定処理部は、前記Pラインが平滑Pラインかどうかを判定する構成となっており、
前記円弧G1連続境界抽出部は、抽出された前記平滑Pアークを判定することにより、円弧G1連続境界を抽出する構成となっており、
前記直線G1連続境界抽出部は、抽出された前記平滑Pラインを判定することにより、直線G1連続境界を抽出する構成となっており、
前記出力部は、抽出された円弧G1連続境界及び直線G1連続境界を、その後のセグメンテーションのために出力する構成となっている
接平面連続境界の抽出システム。
【請求項2】
前記円弧G1連続境界抽出部は、内部Pアーク判定部と、第1種円弧、第2種円弧及び/又は第3種円弧のための円弧G1連続境界判定部とを備えており、
前記内部Pアーク判定部は、前記Pアークが内部Pアークか否かを判定する構成となっており、
前記第1種円弧のために、円弧G1連続境界判定部は、前記Pアークが内部Pアークでなく、かつ、次の条件a)〜c)
a) 前記Pアークの片側で、その頂点に一つあるいは複数の他のPアークが端点で直交接続していること;
b) 前記Pアークの反対側に、平坦稜線を介して、三角形(すなわち平面)が接続していること;
c) 前記条件a)に記載した前記Pアークの頂点に端点で接続した一つあるいは複数の前記他のPアークの接線が、前記Pアークの片側において、前記Pアークの反対側の平面上にあること;
を満足する場合に、円弧G1連続境界と判定する構成となっており、
前記第2種円弧のために、円弧G1連続境界判定部は、前記Pアークが内部Pアークでなく、かつ、次の条件a)〜c)
a) 前記Pアークの片側で、その頂点に一つあるいは複数のPアークが端点で直交接続していること;
b) 前記Pアークの反対側で、その頂点に一つあるいは複数のPラインが端点で直交接続していること(但しPラインがPアークの軸と直交する場合を除く);
c) 前記条件a)に記載した前記Pアークの頂点に端点で接続した一つあるいは複数の前記他のPアークの接線が、前記Pアークの片側において、前記Pアークの反対側のPラインと平行であるか、あるいは、前記Pアークの接線と前記Pアークの軸とがなす角と、前記Pラインと前記Pアークの軸とがなす角度とが同じであること;
を満足する場合に、円弧G1連続境界と判定する構成となっており、
前記第3種円弧のための円弧G1連続境界判定部は、前記Pアークが内部Pアークでなく、かつ、次の条件a)〜b)
a) 前記Pアークの両側でその頂点に一つあるいは複数の他のPアークが端点で直交接続していること;
b) 前記条件a)に記載した前記Pアークの両側に端点で接続した一つあるいは複数の前記他のPアークの接線が、前記Pアークの軸と平行となっていること;
を満足する場合に、円弧G1連続境界と判定する構成となっている
請求項1に記載の抽出システム。
【請求項3】
前記直線G1連続境界抽出部は、第1種直線及び/又は第2種直線のための直線G1連続境界判定部を備えており、
前記直線G1連続境界判定部は、第1種直線のために、次の条件a)〜c)
a)前記平滑Pラインの片側において、前記平滑Pラインの頂点に一つあるいは複数のPアークが端点で直交接続していること;
b)前記平滑Pラインにおける反対側に、一つの三角形あるいは平坦稜線を介して三角形(すなわち平面)が接続していること;
c)前記平滑Pラインの端点に接続した前記Pアークの接線が、前記反対側の三角形で構成される平面上にあること;
を満足する場合に、直線G1連続境界と判定する構成となっており、
前記直線G1連続境界判定部は、第2種直線のために、次の条件a)〜b)
a)前記平滑Pラインの両側において、前記平滑Pラインの頂点にそれぞれ一つあるいは複数のPアークがその端点で直交接続していること;
b)前記平滑Pラインの両側の前記Pアークが、相異なる円弧上にあり、且つ、前記平滑Pラインと、前記Pアークの前記端点における接線とは、同じ平面上にあること
を満足する場合に、直線G1連続境界と判定する構成となっている
請求項1又は2に記載の抽出システム。
【請求項4】
以下のステップを備えることを特徴とする、接平面連続境界の抽出方法:
CADメッシュ受付部が、3次元CADモデルを三角形分割することにより生成された三角形メッシュであるCADメッシュのデータを受け付けるステップ;
Pアーク抽出処理部が、前記CADメッシュからPアークを抽出するステップ;
Pライン抽出処理部が、前記CADメッシュからPラインを抽出するステップ;
平滑Pアーク判定処理部が、前記Pアークは平滑Pアークかどうかを判定するステップ;
平滑Pライン判定処理部が、前記Pラインは平滑Pラインかどうかを判定するステップ;
円弧G1連続境界抽出部が、抽出された前記平滑Pアークを判定することにより、円弧G1連続境界を抽出するステップ;
直線G1連続境界抽出部が、抽出された前記平滑Pラインを判定することにより、直線G1連続境界を抽出するステップ;
出力部が、抽出された円弧G1連続境界及び直線G1連続境界を、その後のセグメンテーションのために出力するステップ。
【請求項5】
請求項4記載の抽出方法をコンピュータにより実行するためのコンピュータプログラム。
【図6】
【図7】
【図8】
【図1】
【図2】
【図3】
【図4】
【図5】
【図9】
【図10】
【図11】
【図12】
【図13】
【図14】
【図15】
【図16】
【図17】
【図18】
【図19】
【図20】
【図21】
【図22】
【図23】
【図24】
【図7】
【図8】
【図1】
【図2】
【図3】
【図4】
【図5】
【図9】
【図10】
【図11】
【図12】
【図13】
【図14】
【図15】
【図16】
【図17】
【図18】
【図19】
【図20】
【図21】
【図22】
【図23】
【図24】
【公開番号】特開2013−88825(P2013−88825A)
【公開日】平成25年5月13日(2013.5.13)
【国際特許分類】
【出願番号】特願2011−225407(P2011−225407)
【出願日】平成23年10月13日(2011.10.13)
【国等の委託研究の成果に係る記載事項】(出願人による申告)平成23年度、独立行政法人科学技術振興機構、若手ベンチャー創出推進事業、産業技術力強化法第19条の適用を受ける特許出願
【出願人】(504137912)国立大学法人 東京大学 (1,942)
【Fターム(参考)】
【公開日】平成25年5月13日(2013.5.13)
【国際特許分類】
【出願日】平成23年10月13日(2011.10.13)
【国等の委託研究の成果に係る記載事項】(出願人による申告)平成23年度、独立行政法人科学技術振興機構、若手ベンチャー創出推進事業、産業技術力強化法第19条の適用を受ける特許出願
【出願人】(504137912)国立大学法人 東京大学 (1,942)
【Fターム(参考)】
[ Back to top ]