JP2022072158A - 情報処理方法及び情報処理装置 - Google Patents
情報処理方法及び情報処理装置 Download PDFInfo
- Publication number
- JP2022072158A JP2022072158A JP2020181457A JP2020181457A JP2022072158A JP 2022072158 A JP2022072158 A JP 2022072158A JP 2020181457 A JP2020181457 A JP 2020181457A JP 2020181457 A JP2020181457 A JP 2020181457A JP 2022072158 A JP2022072158 A JP 2022072158A
- Authority
- JP
- Japan
- Prior art keywords
- vertices
- triangle
- ridgeline
- differential
- model
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Abstract
【課題】3Dシステム間のデータ連携を円滑化することができる情報処理方法及び情報処理装置を提供する。【解決手段】三角形頂点の座標値と、三角形頂点の法線ベクトルとを含む三角形の集合体を用いて、三角形の辺を接続した稜線を抽出し、稜線両端の頂点の座標値と、稜線左側及び稜線右側の三角形と、稜線左側両端及び稜線右側両端の法線ベクトルとを含む位相情報を有する微分多面体モデルを生成する。微分多面体モデルを用いることにより、CGソフトウェアとの高い親和性を得ることができ、3Dシステム間のデータ連携を円滑化することができる。【選択図】図1
Description
本技術は、3Dシステム間で使用されるデータを生成する情報処理方法及び情報処理装置に関する。
従来、製品設計→金型設計→NC(数値制御)データ作成→シミュレーション→機械加工の一連の工程により、製品が製造される。製品設計及び金型設計は、例えば3DCAD(3D Computer Aided Design)と呼ばれるソフトウェアを用いて作成され、NC(数値制御)データ作成は、3DCAM(3D Computer Aided Manufacturing)と呼ばれるソフトウェアを用いて作成される。
また、シミュレーションは、CAE(Computer Aided Engineering)と呼ばれるソフトウェアを用いて流体計算、構造計算などが行われる。CAEでは、有限要素法などの数値解析手法が用いられ、3DCADや3DCAMで扱う曲面とは根本的に異なるデータを扱う。
3DCAD、3DCAM、及びCAE(以降、まとめて3Dシステムと呼ぶ。)では、3Dシステムのデータの表現方法が異なること、保証している精度が異なることなどが原因で、3Dシステム間のデータ変換でトラブルが発生することがある。3Dシステムは、製造業のほとんどの分野で設計製造の基本的なツールとなっており、データ変換によるトラブル対応・コミュニケーション・データ修正には膨大な工数がかかるため、生産性を阻害する大きな要因になっている。
3Dシステム間のデータ変換のための仕組みとして、米国国家規格協会(ANSI)のIGESや国際標準化機構(ISO)のSTEPがあり、形式的には3Dシステム間の変換の仕組みは存在する。また、3DCADモデルを三角または四角の多角ポリゴンデータに変換すると共に、三角または四角の曲面への変換により、少ないデータ量のポリゴンデータとする3DCADデータの近似方法も存在する(例えば、特許文献1参照。)。
しかしながら、上述したデータの変換や近似では、3Dシステム間の形状の表現の違いや保証している精度の違いまでを補完することはできず、3Dシステム間のデータ連携を円滑化することはできない。
本技術は、このような従来の実情に鑑みて提案されたものであり、3Dシステム間のデータ連携を円滑化することができる情報処理方法及び情報処理装置を提供する。
本願発明者は、鋭意検討の結果、三角形頂点の座標値と、三角形頂点の法線ベクトルとを含む三角形の集合体を用いて、位相情報を有する三角多面体である微分多面体モデルを生成することにより、前記課題を解決できることを見出した。
すなわち、本技術に係る情報処理方法は、三角形頂点の座標値と、三角形頂点の法線ベクトルとを含む三角形の集合体を用いて、三角形の辺を接続した稜線を抽出し、稜線両端の頂点の座標値と、稜線左側及び稜線右側の三角形と、稜線左側両端及び稜線右側両端の法線ベクトルとを含む位相情報を有する微分多面体モデルを生成する。
また、本技術に係る情報処理装置は、三角形頂点の座標値と、三角形頂点の法線ベクトルとを含む三角形の集合体を用いて、三角形の辺を接続した稜線を抽出し、稜線両端の頂点の座標値と、稜線左側及び稜線右側の三角形と、稜線左側両端及び稜線右側両端の法線ベクトルとを含む位相情報を有する微分多面体モデルを生成する。
また、本技術に係るプログラムは、三角形頂点の座標値と、三角形頂点の法線ベクトルとを含む三角形の集合体を用いて、三角形の辺を接続した稜線を抽出し、稜線両端の頂点の座標値と、稜線左側及び稜線右側の三角形と、稜線左側両端及び稜線右側両端の法線ベクトルとを含む位相情報を有する微分多面体モデルを生成する処理をコンピュータに実行させる。
また、本技術に係る微分多面体モデルは、稜線両端の頂点の座標値と、稜線左側及び稜線右側の三角形と、稜線左側両端及び稜線右側両端の法線ベクトルとを含む位相情報を有する。
本技術によれば、位相情報を有する三角多面体である微分多面体モデルを用いることにより、CGソフトウェアとの高い親和性を得ることができ、3Dシステム間のデータ連携を円滑化することができる。また、微分多面体モデルにより、曲面の滑らかさを容易に表現することができ、3Dシステム間の形状の表現の違いや保証している精度の違いを補完することができる。
以下、本技術の実施の形態について、図面を参照しながら下記順序にて詳細に説明する。
1.情報処理方法
2.微分多面体モデルの生成処理
3.微分多面体モデルの曲面属性付与処理
4.微分多面体モデルの細分割処理
1.情報処理方法
2.微分多面体モデルの生成処理
3.微分多面体モデルの曲面属性付与処理
4.微分多面体モデルの細分割処理
<1.情報処理方法>
図1は、本実施の形態に係る情報処理方法を示すフローチャートである。図1に示すように、本実施の形態に係る情報処理方法は、3DCADモデルを入力する入力工程(S1)と、3DCADモデルから三角形の集合体モデルに変換する変換工程(S2)と、三角形の集合体モデルを用いて、三角形の辺を接続した稜線を抽出し、微分多面体モデルを生成する生成工程(S3)とを有する。
図1は、本実施の形態に係る情報処理方法を示すフローチャートである。図1に示すように、本実施の形態に係る情報処理方法は、3DCADモデルを入力する入力工程(S1)と、3DCADモデルから三角形の集合体モデルに変換する変換工程(S2)と、三角形の集合体モデルを用いて、三角形の辺を接続した稜線を抽出し、微分多面体モデルを生成する生成工程(S3)とを有する。
入力工程(S1)では、3DCADと呼ばれるソフトウェアを用いて仮想の3次元空間上に作成された、縦、横、奥行きのある立体的な形状である3DCADモデルを入力する。3DCADは、STL(Standard Triangulated Language)出力可能であるものが好適である。STLは、3Dプリンタの標準データ形式であり、データ形式が単純であるため、3Dシステム間でもトラブルなく入出力ができる。なお、STLは、「StereoLithography」と呼ばれることもある。
変換工程(S2)では、CADモデルから、三角形頂点の座標値と、三角形頂点の法線ベクトルとを含む三角形の集合体モデルに変換する。この集合体モデルは、STLを出力する際に頂点の法線ベクトルをCADデータから計算して付加した法線ベクトル付きSTLモデルである。法線ベクトル付きSTLモデルは、プログラムにより、例えば3次多項式で表される曲面から指定の精度で出力される。法線ベクトル付きSTLモデルは、倍精度浮動小数点数の精度で出力されることが好ましい。
生成工程(S3)では、三角形の集合体モデルを用いて、三角形の辺を接続した稜線を抽出し、稜線両端の頂点の座標値と、稜線左側及び稜線右側の三角形と、稜線左側両端及び稜線右側両端の法線ベクトルとを含む位相情報を有する微分多面体モデルを生成する。ここで、位相情報とは、要素間の関係を示す情報を意味する。
微分多面体モデルは、単純で意味が明確なデータ表現であり、曲面の滑らかさを表現でき、かつソリッドモデルの位相情報を表現することができる。また、微分多面体モデルは、三角形メッシュモデルのポリゴンモデルであり、CG(Computer Graphics)用のデータ形式であるobj形式に変換することができる。よって、微分多面体モデルを用いることにより、3Dシステム間のデータ連携を円滑化することができる。また、CGソフトウェアとの高い親和性を得ることができ、曲面の滑らかさを容易に表現することができる。
また、微分多面体モデルは、三角多面体の各頂点に法線ベクトルを有するため、後述するように、測地線を用いて各頂点に微分幾何の構造を導入することができる。例えば、三角形を細分割することにより、収束する先の曲面を得ることができる。最終的な曲面上に稠密な点群を逐次的に求めることができ、その頂点に微分値を定義することができる。
図2は、従来の共通データとCADとの関係を示す図であり、図3は、微分多面体モデルとCGとの関係を示す図である。図2に示すように、3Dシステム間のデータ変換のための仕組みとして、米国国家規格協会(ANSI)のIGESや国際標準化機構(ISO)のSTEPがあるが、3Dシステム間の形状の表現の違いや保証している精度の違いまでを補完して変換することまでは行うことができない。また、STLは、接続関係を表す位相情報が含まれておらず、曲面の滑らかさを表現することが難しい。
一方、図3に示すように、微分多面体モデルは、CG用のデータ形式であるobj形式に変換可能であり、また、CGソフトウェアから出力されたobj形式も、微分多面体モデルに変換可能である。微分多面体モデルとobj形式とは親和性が高いため、データ変換におけるトラブルの発生を防ぐことができる。また、微分多面体モデルは、CGソフトウェアで曲面の滑らかさを表現することができるため、3DCADに代わってCGソフトウェアを設計製造に活用することができる。
また、微分多面体モデルは、本件発明者のGPU(Graphics Processing Unit)による3DCAMカーネル(GPU-CAM)を用いることができる(例えば、特許第3535442号、及び特許第3792584号を参照。)。3DCAMカーネルは、形状をSTLで読み込んで処理することができ、GPUによる高速計算処理を実現し、デクセルデータ形式を使ってオフセット処理を安定して行うことができる。
[ハードウェア構成]
図4は、本実施の形態に係る情報処理方法を実現するコンピュータ装置の構成を示すブロック図である。図4に示すように、コンピュータ装置1は、プログラムの実行処理を行うCPU(Central Processing Unit)11と、演算処理を行うGPU(Graphics Processing Unit)12と、CPU11により実行されるプログラムを格納するROM(Read Only Memory)13と、プログラムやデータを展開するRAM(Random Access Memory)14と、ユーザにより各種の入力操作を受ける操作入力部15と、プログラムやデータを固定的に保存するストレージ16と、データを入出力する入出力インターフェース17とを備える。
図4は、本実施の形態に係る情報処理方法を実現するコンピュータ装置の構成を示すブロック図である。図4に示すように、コンピュータ装置1は、プログラムの実行処理を行うCPU(Central Processing Unit)11と、演算処理を行うGPU(Graphics Processing Unit)12と、CPU11により実行されるプログラムを格納するROM(Read Only Memory)13と、プログラムやデータを展開するRAM(Random Access Memory)14と、ユーザにより各種の入力操作を受ける操作入力部15と、プログラムやデータを固定的に保存するストレージ16と、データを入出力する入出力インターフェース17とを備える。
CPU11は、前述の情報処理が可能であり、三角形の集合体モデルを用いて、三角形の辺を接続した稜線を抽出し、微分多面体モデルを生成する。また、CPU11は、例えばストレージ16に記録されているコンピュータ数の数値計算プログラムを読み出し、RAM14に展開して実行することにより、各ブロックの動作を制御する。
GPU12は、ビデオメモリ(VRAM)を有し、CPU11から要求に応じて描画処理及び計算処理が可能である。ROM13は、例えば読み込みのみ可能な不揮発性メモリであり、コンピュータ装置1が有する各ブロックの動作に必要な定数等の情報を記憶する。RAM14は、揮発性メモリであり、動作プログラムの展開領域としてだけでなく、コンピュータ装置1が有する各ブロックの動作において出力された中間データ等を一時的に記憶する格納領域としても用いられる。
操作入力部15は、コンピュータ装置1に対して入力操作を行う際に用いられるユーザインタフェースである。操作入力部15は、ユーザの入力操作に応じて前述の情報処理の実行または停止等の命令をCPU11に対して出力する。
ストレージ16は、RAM14に展開される前述の情報処理プログラムなどを記録する。なお、ストレージ16としては、HDD(Hard disk drive)、SSD(Solid State Drive)、光学ドライブなどを用いることができる。入出力インターフェース17は、GPU12によって生成した画像を表示装置に出力することが可能である。
このようなハードウェア構成において、前述の情報処理方法は、CPU21、GPU22、ROM23、RAM24、CPU21などにより実行されたソフトウェアの連携によって実現することができる。また、ソフトウェアプログラムは、光ディスクや半導体メモリなどの記録媒体に記憶させて配布する他に、インターネットなどを経由してダウンロードさせる構成としてもよい。
<2.微分多面体モデルの生成処理>
以下、微分多面体モデルを生成する生成処理について、図面を参照しながら詳細に説明する。
以下、微分多面体モデルを生成する生成処理について、図面を参照しながら詳細に説明する。
図5は、三角形のエッジを接続して曲面を構成する微分多面体モデルの生成処理を説明するための図である。図5に示すように、三角形の集合モデルでは、頂点を点と定義し、辺をエッジ(edge)と定義する。そして、エッジ同士が一致していたときは同一の線であるとして、それを稜線(ridge)と定義し、稜線の両端点は頂点(vertex)と定義する。
図6は、微分多面体モデルの位相情報を説明するための図である。図6に示すように、微分多面体モデルは、三角形情報(double_stl)、稜線情報(ridge_info)、及び頂点情報(vertex_info)で構成されるバイナリデータである。微分多面体モデルの生成処理は、三角形情報を入力し、稜線情報及び頂点情報を出力するとともに、三角形情報を更新する。
また、図7は、微分多面体モデルの生成処理で使用される三角形情報のデータ構造例を示す図である。三角形情報は、入力時において、三角形ID毎に、3つの頂点座標値(P1, P2, P3)と、3つの頂点の法線ベクトル(N1, N2, N3)とを含む三角形テーブルである。位相情報を構築する際は、三角形情報は、三角形ID毎に、エッジテーブルの3つのエッジIDを含む。位相情報構築後、エッジテーブルの3つのエッジIDは、稜線テーブルの3つの稜線ID(R1_id, R2_id, R3_id)に置き換えられる。なお、位相情報構築後は、頂点座標値及び法線ベクトルは使用しなくてもよい。これらは、稜線情報を使用することができる。
図8は、微分多面体モデルの生成処理で使用される稜線情報のデータ構造例を示す図である。稜線情報は、稜線ID毎に、稜線のタイプ(type)と、頂点テーブルの始終点の頂点ID(Vs_id, Ve_id)と、三角形テーブルの左右の三角形ID(Tl_id, Tr_id)と、左右始終点における法線ベクトル(Nsl, Nel, Nsr, Ner)とを含む稜線テーブルである。稜線のタイプは、例えば、0:滑らかな稜線、1:滑らかではない稜線が挙げられる。稜線が滑らか否かは、両側の三角形に所定以上の角度があるか否かで判別することができ、法線ベクトルを用いて判別することができる。
図9は、微分多面体モデルの生成処理で使用される頂点情報のデータ構造例を示す図である。頂点情報は、頂点ID毎に、頂点座標値(V)を含む頂点テーブルである。また、頂点情報は、頂点を共有する点の数(n)などの他の情報を含んでいてもよい。また、位相情報を構築する際は、頂点情報は、頂点ID毎に、エッジの始終点数(numEs, numEe)と、エッジの始終点が頂点になっているエッジのインデックス(Es_index, Ee_index)とを含む。
図10は、微分多面体モデルの生成処理で使用される点情報のデータ構造例を示す図である。点情報は、位相情報を構築する際に使用され、点ID毎に、頂点座標値(x, y, z)を含む点テーブルである。
図11は、微分多面体モデルの生成処理で使用されるエッジ情報のデータ構造例を示す図である。エッジ情報は、位相情報を構築する際に使用され、エッジID毎に、点テーブルの始終点の点ID(Ps_id, Pe_id)と、三角形テーブルの所属する三角形ID(T_id)と、始終点における法線ベクトル(Nsl, Nel, Nsr, Ner)とを含むエッジテーブルである。
なお、図7~11に示すデータ構造例は、ウィングドエッジ(winged-edge)構造を参照したものであるが、これに限られるものではなく、例えばハーフエッジ(Half-edge)構造を参照したものであってもよい。
図12は、微分多面体モデルの生成処理を示すフローチャートである。図12に示すように、微分多面体モデルの生成処理は、三角形の集合体モデルを読み込む読込工程(S31)と、集合体モデルから縮退した三角形を削除する削除工程(S32)と、微分多面体モデルを生成する生成工程(S33)とを有する。
読込工程(S31)では、三角形頂点の座標値と、三角形頂点の法線ベクトルとを含む三角形の集合体モデルを読み込む。三角形の集合体モデルは、STLを出力する際に頂点の法線ベクトルをCADデータから計算して付加した法線ベクトル付きSTLモデルであり、図7に示すような三角形情報である。
削除工程(S32)では、三角形の集合体モデルから所定値以下のエッジの長さを持つ三角形を削除する。三角形の集合体モデルから所定値以下のエッジの長さを持つ三角形を削除した後、微分多面体モデルを生成することにより、微分多面体モデルのデータ量を抑制することができる。また、不都合の起こり易い三角形を削除することで処理を安定化させることができる。
図13は、生成工程(S33)における頂点の結合処理を説明するための図であり、図14は、生成工程(S33)における稜線の抽出処理を説明するための図である。生成工程(S33)では、先ず、三角形頂点を点とし、2点間距離が所定以下の点をグループ化して頂点とし、頂点に属する点の座標値の平均値を頂点の座標値とする頂点の再構成を行う。頂点の再構成は、三角形の点の集まりと考え、所定距離以下の点をグループ化して頂点を求める。点の数が巨大になることを想定して、空間分割をして点の小グループに分割し、小グループ間での2点間の距離を求め、所定距離以下の点をグループ化して頂点とする。
具体的には、三角形情報から三角形の点を集めてリストアップし、図10に示すような点情報である点テーブルを作成する。次に、点が存在する領域を小領域に分割し、点を領域に区分けし、領域内に存在する点間の距離が所定値以下のグループに分類して頂点とする。また、図13に示すように、点が複数の頂点に属する場合、頂点を結合する。そして、頂点に属する点の平均値を頂点の座標値とし、頂点情報を作成する。これにより、細分割を繰り返し行うことによる頂点の増大を抑制することができる。
次に、三角形情報のエッジをリストアップし、図11に示すようなエッジ情報を作成するとともに、三角形のエッジ情報及び頂点に接続するエッジ情報を頂点情報に追加する。そして、図14に示すように頂点毎にエッジの始点と終点とが一致しているかどうかを判別し、一致している場合、稜線として稜線IDを取得し、稜線情報の領域を確保し、稜線情報の各項目を設定する。最後に、三角形情報のエッジIDを稜線IDに置き換え、微分多面体モデルを生成する。
このような微分多面体モデルによれば、CG用のデータ形式であるobj形式に変換可能であり、CGソフトウェアに微分多面体モデルを導入することにより、曲面の滑らかさを表現することができるため、3DCADに代わってCGソフトウェアを設計製造に活用することができる。
<3.微分多面体モデルの細分割処理>
以下、微分多面体モデルを細分割する細分割処理について、図面を参照しながら詳細に説明する。微分多面体モデルの細分割処理は、頂点コピー処理、稜線の分割処理、及び三角形の分割処理の3つの処理で実行され、微分多面体モデルの稜線両端の頂点の法線ベクトルを用いて空間測地線を生成し、空間測地線の中間点に頂点及び法線ベクトルを追加して2本の稜線を生成する。細分割処理を繰り返すことにより、その極限として曲面上に稠密に存在する点群を生成することができる。すなわち、微分多面体は、パラメトリック曲面や代数方程式の解のような曲面ではなく、ある曲面上の稠密な点と法線ベクトルの集合であるといえる。
以下、微分多面体モデルを細分割する細分割処理について、図面を参照しながら詳細に説明する。微分多面体モデルの細分割処理は、頂点コピー処理、稜線の分割処理、及び三角形の分割処理の3つの処理で実行され、微分多面体モデルの稜線両端の頂点の法線ベクトルを用いて空間測地線を生成し、空間測地線の中間点に頂点及び法線ベクトルを追加して2本の稜線を生成する。細分割処理を繰り返すことにより、その極限として曲面上に稠密に存在する点群を生成することができる。すなわち、微分多面体は、パラメトリック曲面や代数方程式の解のような曲面ではなく、ある曲面上の稠密な点と法線ベクトルの集合であるといえる。
図15は、細分割処理における頂点コピー処理を説明するための図である。細分割後では、頂点はもとのデータに追加になるので、もとの頂点テーブルをコピーして、その後ろに新しい頂点を追加する。新しい頂点は、稜線の中間位置の点であるため、新しい頂点の数は「もとの頂点の数+稜線の数」になる。新しい頂点は、稜線を2分割するときに追加する。
図16は、細分割処理における稜線の分割処理を説明するための図である。稜線は、始終点と法線ベクトルを使って空間測地線を生成し、その中間点を頂点に追加し、2つの新しい稜線を生成する。新しい稜線を生成するときには、新しい三角形のIDが不明であり、また、新しく生成する三角形も稜線が不明である。このため、元の稜線を分割して新しく生成した稜線を連番で記録する稜線分割(Ridge_sub_division)構造体を使用する。この稜線分割構造体は稜線を分割した際に生成する。
図17は、細分割処理における三角形の細分割処理を説明するための図である。新三角形1~4を生成する際に、元の三角形の稜線は、稜線分割構造体を使って、新しい稜線IDを得て境界線にする。また、新稜線1~3も新規に稜線IDを生成する。
図18は、三角形頂点の法線ベクトルを用いた細分割を説明するための図であり、図19は、パラメトリック曲面における測地線を説明するための図であり、図20は、空間測地線を説明するための図である。
図18に示すように、三角形の各辺に空間測地線を用いて曲線を生成する。空間測地線は、三角形の頂点において、付加された法線ベクトルに垂直であって、曲線の各点における曲率方向と法線ベクトルを補間したベクトルが平行になるような曲線である。
図19に示すようなパラメトリック曲面における測地線と同じ概念であるが、元になる曲面が存在しないので、図20に示すように、最初に2つの頂点に付加された法線ベクトルを補間することで曲面の法線ベクトルの代わりにして空間測地線を求める。
測地線は、もともとは曲面があって2点間を結ぶ最短距離を測地線という。曲面をS(u,v)として、uv空間上の曲線を(u(t),v(t))とすると、曲面上の曲線C(t)=S(u(t),v(t))が測地線である条件は、C(t)における曲率がS(u(t),v(t))における法線ベクトルに平行であることである。法線ベクトルの関数N(t)が与えられたときに、同じパラメータtに対して曲線C(t)の曲率ベクトルがN(t)に平行であるような曲線C(t)を空間上の測地線とする。法線ベクトル関数をガイドとして生成できる測地線という。以降、これをN(t)測地線と呼ぶ。
N(0)=N1、N(L)=N2となるN(t)関数を求め、C(0)=P1、C(L)=P2となる場合に2点間を結ぶ測地線が存在するという。P1に対してP2の位置はX,Y,Z軸方向に選択できるため3つの自由度がある。そのため、空間測地線を一意的に決定するパラメータが3つ必要である。この3つのパラメータは、測地線の方向、測地線の長さ、及び、2-2スプライン関数を決定するパラメータhである。これらの3つのパラメータを、P1から出発した測地線がP2に到着するように調整する。
図21は、N(t)測地線を求める方法を説明するための図である。点P0とN(0)に垂直なベクトルVを決めると、点P0をとおり点P0で接線ベクトルVを持つようなN(t)測地線が1つに決まる。このN(t)測地線を構成する方法について説明する。dtを固定してNi=N(i*dt)とする。
点P0でV方向にdt移動した点を点P1とする。P0、P1を通りN1に平行な平面上で、P1を通りN1に平行な直線に対してP1の線対称の点をP2とする。この処理を繰り返してPiを順次求めていく。dt->0にすると、求めるN(t)測地線を一意的に求めることができる。
図22は、N(t)測地線で2点間を結ぶ測地線C(t)を求める方法を説明するための図である。図22に示すように、C(0)=P1、C(L)=P2、N(0)=N1、N(L)=N2を満たし、LはP1からP2間の測地線の長さである。
P1における接線ベクトルの方向Vは360°の方向が選べるので、自由度は1である。N(t)として最初に考えられる関数は、N1とN2とを線形で結ぶ関数である。また、N(t)測地線の長さLは、微調整ができるため、自由度は1である。
P1における接線ベクトルの方向Vは360°の方向が選べるので、自由度は1である。N(t)として最初に考えられる関数は、N1とN2とを線形で結ぶ関数である。また、N(t)測地線の長さLは、微調整ができるため、自由度は1である。
図23は、N(t)測地線の長さLを調整したときを説明するための図である。図23に示すように、N(t)測地線の長さLが長いと曲線Aのようになり、Lが短いと曲線Bのようになる。あと1つの自由度がないと、安定的にP1、P2、N1、N2を指定して測地線をえることはできない。そこで、線形ベクトル補間関数に関して工夫をすることにより、自由度を1加える。
N1とN2とを線形で結ぶ関数を、α(t)N1+β(t)N2とすると、α(t)、β(t)は、それぞれ下記式(1)(2)にて具体的に求めることができる。
ここで、LはN(t)測地線の長さであり、θはN1とN2の角度である。
図24は、[0,1]区間を写像する一階微分可能な関数T(t)を説明するための図である。式(1)及び式(2)のt/Lに注目すると、この値は[0,1]区間の値である。そこで、図24に示すように、[0,1]区間を写像する一階微分可能な関数T(t)を用いることにより、この関数の選定に対して1自由度を与えることができる。
図25は、x=1/2、y=hのときの傾きがdである関数を説明するための図である。0≦x≦1/2の区間の関数を下記式とし、1/2≦x≦1の区間の関数を下記式とする。
y=a1x2+b1x+c1 ,(0≦x≦1/2)
y=a2x2+b2x+c2 ,(1/2≦x≦1)
y=a1x2+b1x+c1 ,(0≦x≦1/2)
y=a2x2+b2x+c2 ,(1/2≦x≦1)
端点の条件から、c1=0、c2=1-a2-b2である。また、x=1/2、y=hのときの傾きがdであるから、それぞれ下記式となる。
y=(2d-4h)x2+(4h-d)x ,(0≦x≦1/2)
y=(4-4h-2d)x2+(3d+4h-4)x+(1-d) ,(1/2≦x≦1)
y=(2d-4h)x2+(4h-d)x ,(0≦x≦1/2)
y=(4-4h-2d)x2+(3d+4h-4)x+(1-d) ,(1/2≦x≦1)
この関数が単調増加であるためには、h≧0であり、d≧0であり、y’(0)≧0、かつy’(1)≧0である。y’(0)=4h-d、y’(1)=2(4-4h-2d)+(3d+4h-4)=4-4h-dであるから、d≦4h、d≦-4h+4となる。
図26は、(h,d)の値の範囲を説明するための図である。図26に示すように、d≦4h、d≦-4h+4の領域の(h,d)の値で決まる、一階微分連続なスプライン関数を2-2スプライン関数と呼ぶ。
図27は、(h,d)の値に対する2-2スプライン関数の形の例を示す図である。図27(A)は(h,d)=(1/2,1)、図27(B)は(h,d)=(1/2,2)のとき、図27(C)は(h,d)=(1/4,1)のとき、図27(D)は(h,d)=(0,0)のとき、図27(E)は(h,d)=(1/2,0)のとき、図27(F)は(h,d)=(1,0)のとき、図27(G)は(h,d)=(3/4,1)のとき、図27(H)は(h,d)=(1/4,1/2)のとき、図27(I)は(h,d)=(1/8,1/2)のときの2-2スプライン関数の形を示す。
図28は、P1(0,0)、P2(1/2,1)、P3(1,0)のときの2-2スプライン関数の形の例を示す図である。このようにP1→P2→P3のルートを通る直線を中間線と呼ぶ。このhを決定すると中間線上のdが決定される。(h,d)に対応する2-2スプライン曲線が決定するので、これを[0,1]間の写像として使用する。
また、x=1/2、y=hのときの傾きがdである関数を長さLに拡張したときの関数は、それぞれ下記式となる。
Y=(2d-4h)X2/L+(4h-d)x ,(0≦X≦1/2)
Y=(4-4h-2d)X2/L+(3d+4h-4)X+(1-d)L ,(1/2≦X≦1)
Y=(2d-4h)X2/L+(4h-d)x ,(0≦X≦1/2)
Y=(4-4h-2d)X2/L+(3d+4h-4)X+(1-d)L ,(1/2≦X≦1)
[微分多面体モデルの細分割処理の誤差評価]
図29は、多項式曲面の細分割による誤差評価を説明するための図であり、図29(A)は、双曲二次曲面(z=x2-y2;-0.5≦x≦0.5、-0.5≦y≦0.5)をx、yに関して0.05の格子状の点で分割してポリゴン近似した図であり、図29(B)は、図29(A)のポリゴンについて、法線ベクトルを使って3回細分割した図であり、図29(C)は、細分割したポリゴンに対して元の双曲二次曲面との誤差を評価したグラフである。このグラフを見ると、法線ベクトルを使って3回細分割した場合の誤差が0.00002以下になっており、0.05の格子状の点で分割してポリゴン近似したよりも3桁以上小さい誤差になっていることが分かった。以上より、3DCADにおける曲面をある程度の許容誤差で三角形に近似し、複数回細分割を繰り返すことによって近似精度を向上できることが分かった。
図29は、多項式曲面の細分割による誤差評価を説明するための図であり、図29(A)は、双曲二次曲面(z=x2-y2;-0.5≦x≦0.5、-0.5≦y≦0.5)をx、yに関して0.05の格子状の点で分割してポリゴン近似した図であり、図29(B)は、図29(A)のポリゴンについて、法線ベクトルを使って3回細分割した図であり、図29(C)は、細分割したポリゴンに対して元の双曲二次曲面との誤差を評価したグラフである。このグラフを見ると、法線ベクトルを使って3回細分割した場合の誤差が0.00002以下になっており、0.05の格子状の点で分割してポリゴン近似したよりも3桁以上小さい誤差になっていることが分かった。以上より、3DCADにおける曲面をある程度の許容誤差で三角形に近似し、複数回細分割を繰り返すことによって近似精度を向上できることが分かった。
<4.微分多面体モデルの曲面属性の付与処理>
次に、微分多面体モデルの曲面属性の付与処理について説明する。本実施の形態では、微分多面体モデルの曲面上の三角形頂点と、三角形頂点の法線ベクトルとを用いて、平面、円柱面・円錐面、トーラス面・球面、回転面の順に判定し、微分多面体モデルに曲面属性を付与する。これにより、設計の効率化や省力化を図ることができる。
次に、微分多面体モデルの曲面属性の付与処理について説明する。本実施の形態では、微分多面体モデルの曲面上の三角形頂点と、三角形頂点の法線ベクトルとを用いて、平面、円柱面・円錐面、トーラス面・球面、回転面の順に判定し、微分多面体モデルに曲面属性を付与する。これにより、設計の効率化や省力化を図ることができる。
図30は、3DCADにおけるソリッドモデルの表現方法を説明するための図である。ソリッドモデルにおけるB-reps法(境界表現法)では、隣接する曲面は曲線で隣接している。曲面はBスプライン曲面で表現している。Bスプライン曲面は、uvパラメータで表されるパラメトリック曲面であり、基本的には4辺形である。これを曲面上の曲線でトリムして一般の曲面を表現する方法が現在の3DCADにおけるソリッドモデルの表現方法である。この方法では、ソリッドを構成する曲面間に隙間が発生する。
図31は、曲面の三角形分割を説明するための図であり、図31(A)は、3DCADモデルの曲面を示し、図31(B)は、3DCADモデルの曲面を三角形多面体で近似した微分多面体モデルを示す。図31(B)に示すように、微分多面体モデルは、3DCADモデルの曲面を指定の誤差で近似しており、三角形の頂点は、曲面上に正確に存在し、頂点における法線ベクトルは、3DCADモデルの曲面の法線ベクトルを正確に表している。すなわち、三角形上の点を曲面に投影したときの距離は、指定の誤差範囲内であることが保証されている。
図32は、曲面の境界部分の処理を説明するための図であり、図32(A)は、3DCADモデルの境界部分を示し、図32(B)は、3DCADモデルの境界部分を三角形多面体で近似した微分多面体モデルを示す。図32(A)に示すように、曲面を接続する曲線は、両側の曲面上に指定誤差内で存在している。
曲面の境界は、曲面ではなく、境界線に投影し、境界線上の点を使用する。ただし、法線ベクトルは、境界線上の点を曲面に投影した点における法線ベクトルを使用する。これにより、曲面間の隙間を完全に除去することができる。また、曲面を三角形分割する際の境界部分は、境界線上の点を使用する。これにより、曲面の接続部分の境界線を正確に一致させることができる。
図32(B)に示すように、微分多面体モデルは、3DCADモデルの各曲面を指定の誤差で近似している。3DCADモデルの所定の曲面を分割した三角形は、同一のグループに所属する。三角形の各頂点における法線ベクトルは、3DCADモデルの曲面の法線ベクトルを使用する。曲面内の三角形の各頂点における法線ベクトルは、3DCADモデルの曲面の法線ベクトルと同一となるが、境界部分における法線ベクトルは、3DCADモデルの曲面と異なる曲面の法線ベクトルを使用するため、異なる可能性がある。
[平面]
図33は、平面の判定を説明するための図である。図33に示すように、平面は、複数の三角形で構成され、各三角形の頂点は、法線ベクトルを持っている。平面の判定は、法線ベクトルの方向が同じ向きである場合、その曲面を平面であるとする。
図33は、平面の判定を説明するための図である。図33に示すように、平面は、複数の三角形で構成され、各三角形の頂点は、法線ベクトルを持っている。平面の判定は、法線ベクトルの方向が同じ向きである場合、その曲面を平面であるとする。
[円柱・円錐]
図34は、円柱の判定を説明するための図であり、図34(A)は、法線ベクトルが所定の平面に平行な場合の曲面を示し、図34(B)は、所定の平面に平行な平面群と曲面の断面群との形状を示す。図34(A)に示すように、円柱も、複数の三角形で構成され、各三角形の頂点に法線ベクトルを持っている。
図34は、円柱の判定を説明するための図であり、図34(A)は、法線ベクトルが所定の平面に平行な場合の曲面を示し、図34(B)は、所定の平面に平行な平面群と曲面の断面群との形状を示す。図34(A)に示すように、円柱も、複数の三角形で構成され、各三角形の頂点に法線ベクトルを持っている。
円柱の判定は、図34(A)に示すように、法線ベクトルが所定の平面に平行な場合において、図34(B)に示すように、所定の平面に平行な平面群と曲面の断面群との形状が円弧である場合、その曲面を円柱であるとする。
図35は、円錐の判定を説明するための図であり、図35(A)は、法線ベクトルが円錐面の中心軸のベクトルと同じ角度である場合の曲面を示し、図35(B)は、法線ベクトルと円錐面の中心軸のベクトルとの角度を示し、図35(C)は、中心軸ベクトルに垂直な平面群と曲面の断面群との形状を示す。
図35(A)に示すように、円錐も、複数の三角形で構成され、各三角形の頂点に法線ベクトルを持っている。曲面が円錐面の一部であるとすると、法線ベクトルは、円錐面の中心軸のベクトルと同じ角度になる。2つの法線ベクトルが独立であれば(同じ方向でなければ)、2つの法線ベクトルと同じ角度になるベクトルは向きを除けば一意的に決まる。図35(B)に示すように、すべての法線ベクトルに対して同じ角度をなすベクトルを円錐面の中心軸ベクトルとする。
円錐の判定は、図35(A)に示すように、法線ベクトルが円錐面の中心軸のベクトルと同じ角度である場合において、図34(C)に示すように、中心軸ベクトルに垂直な平面群と曲面の断面群との形状が円弧である場合、且つその円弧の半径が線形である場合、その曲面を円錐であるとする。
[トーラス面・球面]
図36は、トーラス面を説明するための図である。図36に示すように、トーラス面は、点を中心に円を回転して生成する曲面である。曲面上の点において法線ベクトルは回転中心点を中心とする半径R1の円を向く方向になっている。この性質を利用して曲面がトーラス面の一部かどうかを判定することができる。曲面がトーラス面の一部であるとし、曲面を近似する三角形の頂点を法線ベクトル方向にR2だけ移動すると、その点は回転中心点を中心とする半径R1の円上に存在する。
図36は、トーラス面を説明するための図である。図36に示すように、トーラス面は、点を中心に円を回転して生成する曲面である。曲面上の点において法線ベクトルは回転中心点を中心とする半径R1の円を向く方向になっている。この性質を利用して曲面がトーラス面の一部かどうかを判定することができる。曲面がトーラス面の一部であるとし、曲面を近似する三角形の頂点を法線ベクトル方向にR2だけ移動すると、その点は回転中心点を中心とする半径R1の円上に存在する。
図37は、トーラス面の判定を説明するための図であり、図37(A)は、トーラス面部分の最小矩形の体積の関数V(R)で表現される曲面を示し、図37(B)は、V(R)=0となるRに対して曲面の点をR移動した点群を示す。また、図38は、最小矩形を説明するための図である。
トーラス面部分に対して、各頂点の法線ベクトル方向にR移動した曲面を求める。トーラス曲面も、複数の三角形で構成され、各三角形の頂点に法線ベクトルを持っている。トーラス面部分の最小矩形の体積をVとすると、VはRの関数とみなすことができる。トーラス面である場合、適当なRによってV(R)=0となる。図38に示すように、最小矩形とは、形状を包含する直方体のことである。様々な直交座標系を設定して物体を包含する最小の直方体を求めることで、その中の最小の直方体として求めることができる。
トーラス面の判定は、V(R)=0となるRに対して曲面の点をR移動した点群を求め、点列が同一の円上にある場合、曲面をトーラス面の部分面であるとする。同様に、球面の判定は、点列が一点に収束する場合、曲面を球面であるとする。
[回転面]
図39は、回転面の判定を説明するための図であり、XY平面に平行な平面群を示す図である。図40は、回転面の判定を説明するための図であり、XY平面に平行ではない平面群を示す図である。
図39は、回転面の判定を説明するための図であり、XY平面に平行な平面群を示す図である。図40は、回転面の判定を説明するための図であり、XY平面に平行ではない平面群を示す図である。
図39及び図40に示すように、曲面をいろいろな方向から平行な平面群で断面を求める。回転面の判定は、断面群がすべて円弧である場合に、曲面を回転面であるとする。
11 CPU、12 GPU、13 ROM、14 RAM、15 操作入力部、16 ストレージ、17 入出力インターフェース
Claims (8)
- 三角形頂点の座標値と、三角形頂点の法線ベクトルとを含む三角形の集合体を用いて、三角形の辺を接続した稜線を抽出し、稜線両端の頂点の座標値と、稜線左側及び稜線右側の三角形と、稜線左側両端及び稜線右側両端の法線ベクトルとを含む位相情報を有する微分多面体モデルを生成する情報処理方法。
- 前記微分多面体モデルの曲面上の三角形頂点と、三角形頂点の法線ベクトルとを用いて、平面、円柱面・円錐面、トーラス面・球面、回転面の順に判定し、微分多面体モデルに曲面属性を付与する請求項1記載の情報処理方法。
- 前記微分多面体モデルの稜線両端の頂点の法線ベクトルを用いて空間測地線を生成し、該空間測地線の中間点に頂点及び法線ベクトルを追加して2本の稜線を生成し、三角形を細分割する請求項1又は2記載の情報処理方法。
- 前記三角形の集合体モデルから所定値以下の辺の長さを持つ三角形を削除した後、前記微分多面体モデルを生成する請求項1乃至3のいずれか1項に記載の情報処理方法。
- 前記三角形頂点を点とし、2点間距離が所定以下の点をグループ化して頂点とし、頂点に属する点の座標値の平均値を頂点の座標値とした後、前記微分多面体モデルを生成する請求項1乃至4のいずれか1項に記載の情報処理方法。
- 三角形頂点の座標値と、三角形頂点の法線ベクトルとを含む三角形の集合体を用いて、三角形の辺を接続した稜線を抽出し、稜線両端の頂点の座標値と、稜線左側及び稜線右側の三角形と、稜線左側両端及び稜線右側両端の法線ベクトルとを含む位相情報を有する微分多面体モデルを生成する情報処理装置。
- 三角形頂点の座標値と、三角形頂点の法線ベクトルとを含む三角形の集合体を用いて、三角形の辺を接続した稜線を抽出し、稜線両端の頂点の座標値と、稜線左側及び稜線右側の三角形と、稜線左側両端及び稜線右側両端の法線ベクトルとを含む位相情報を有する微分多面体モデルを生成する処理をコンピュータに実行させるプログラム。
- 稜線両端の頂点の座標値と、稜線左側及び稜線右側の三角形と、稜線左側両端及び稜線右側両端の法線ベクトルとを含む位相情報を有する微分多面体モデル。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2020181457A JP2022072158A (ja) | 2020-10-29 | 2020-10-29 | 情報処理方法及び情報処理装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2020181457A JP2022072158A (ja) | 2020-10-29 | 2020-10-29 | 情報処理方法及び情報処理装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2022072158A true JP2022072158A (ja) | 2022-05-17 |
Family
ID=81604906
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2020181457A Pending JP2022072158A (ja) | 2020-10-29 | 2020-10-29 | 情報処理方法及び情報処理装置 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2022072158A (ja) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP7284468B1 (ja) | 2022-06-06 | 2023-05-31 | 株式会社コアコンセプト・テクノロジー | 3次元cad/camシステム |
-
2020
- 2020-10-29 JP JP2020181457A patent/JP2022072158A/ja active Pending
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP7284468B1 (ja) | 2022-06-06 | 2023-05-31 | 株式会社コアコンセプト・テクノロジー | 3次元cad/camシステム |
WO2023238174A1 (ja) * | 2022-06-06 | 2023-12-14 | 株式会社コアコンセプト・テクノロジー | 3次元cad/camシステム |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP4381743B2 (ja) | 境界表現データからボリュームデータを生成する方法及びそのプログラム | |
JP6445255B2 (ja) | 3dモデル化オブジェクトの圧縮および展開 | |
Chougrani et al. | Lattice structure lightweight triangulation for additive manufacturing | |
JP3195498B2 (ja) | 三次元形状作成方法及びその装置 | |
US10974446B2 (en) | B-rep of the result of a two-axis 3D printing process | |
JP2002230054A (ja) | 形状と物性を統合した実体データの記憶方法 | |
KR20060047436A (ko) | 2차원 및 3차원 도형의 데이터를 컴퓨터의 메모리에기록하는 데이터 구조, 프로그램 및 기록 매체 | |
CL Wang et al. | Thickening freeform surfaces for solid fabrication | |
JP2007079655A (ja) | 境界データのセル内形状データへの変換方法とその変換プログラム | |
JP2018109948A (ja) | パラメトリックビュー関数に基づくデータベースの照会 | |
JP4605772B2 (ja) | 境界面情報の生成方法、その生成プログラム及びその生成システム | |
CN111581776B (zh) | 一种基于几何重建模型的等几何分析方法 | |
JP2004127099A (ja) | Cadシステム及びcadプログラム | |
Foucault et al. | Generalizing the advancing front method to composite surfaces in the context of meshing constraints topology | |
JP2022072158A (ja) | 情報処理方法及び情報処理装置 | |
JP4208191B2 (ja) | 形状と物理量を統合したボリュームデータの生成方法及び生成装置と生成プログラム | |
EP4092557A1 (en) | Parameterization of digital irregular freeform geometries | |
US20190251218A1 (en) | System and Method for Performing Isogeometric Analysis and Finite Element Analysis Using H-Splines | |
WO2003073335A1 (fr) | Procede et programme de conversion de donnees frontieres en forme a l'interieur d'une cellule | |
JP2007193552A (ja) | 面モデルの作成装置と作成方法 | |
CN113283020A (zh) | 机械部件的结构仿真 | |
JP7284468B1 (ja) | 3次元cad/camシステム | |
Zhang et al. | Surface reconstruction using dexel data from three sets of orthogonal rays | |
Chatterjee et al. | End-to-End GPU-Accelerated Low-Poly Remeshing using Curvature Map and Voronoi Tessellation✱ | |
JP2007140976A (ja) | 断面表示プログラムおよび断面表示装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20231027 |