![]() |
|
Prev
Index
Next |
(Ex. 7) NURBS曲面同士の交線を算出する
(Ex. 6)ではNURBS曲面と平面との交線を算出しました.ここでは,NURBS曲面同士の交線を算出してみたいと思います.
"SampleFunc2.cpp"のSmpIntersectSurfs()を実行します.
<実行手順>
- Kodatunoアプリケーションを起動し, 適当なIGESデータを2つ読み込みます.
- 表示された2つのBodyから干渉している2つの面を順番にピックします.ピックする面の数は2個にしてください.
- "User Status"からMode2を選択し,Prop1に交点群の点間隔(0.1〜2程度)を入力します.
- "Sample Func 2"ボタンを押します.
- 2つの面の交線が生成されたことを確認してください.
<ソース解説>
今回はMode2を選択し,"Sample Func2"ボタンを押しました.これによってSmpIntersectSurfs()が実行されます.
では,SmpIntersectSurfs()を見てみましょう.序盤は概ね問題ないと思います.63,64行目は得られた交点群を格納するための箱ですが,2つの曲面上で得られますので,2つ用意する必要があります. また,71〜77行目ですが,2つのNURBS曲面をピックしていますので,順番に実体を取り出しています.
NURBS曲面同士の交線計算は85行目のNURBS_Func::CalcIntersecPtsNurbsSSearch()によって行われ,引数として指定したRtとStにそれぞれの面上の交点群が格納されます. 注意点として,(Ex. 6)でも述べたとおり,交点群はパラメータ(u, v)として得られますので,3次元座標値に変換するNURBS_Func::CalcNurbsSCoord()が別途必要です.
以上で(Ex. 7)の解説は終わりです.ここまできてしまえば,ほとんど説明することがないですね.
つぎが最後の例題になります.最後は平均曲率法線ベクトルと呼ばれる聞きなれない曲面情報の抽出を例に,Kodatunoの応用の可能性を広げます.
Copyright(C) Kodatuno Development Team, 2011 | Last modified: Nov. 11, 2011 |