エッジの追加
次の関数について説明します。
作成するインポートフィーチャーでエッジ情報が必要な場合は、上記の関数を順番に呼び出します。必要ない場合はこのセクションは読み飛ばしてください。
関数 ProEdgedataAlloc() を使用して、エッジデータ構造体用のメモリを割り当てます。このデータは、初期化された後、インタフェースデータに追加されます。
関数 ProEdgedataInit() を使用して、エッジデータ構造体を初期化します。入力引数を次に示します。
edge_id - エッジ固有の ID を指定します。
edge_surf_ids - エッジの一方の側のサーフェス ID を指定します。
edge_directions - サーフェスのエッジ方向を指定します。
edge_uv_point_arr - サーフェス上の UV 点の配列を指定します。NULL 値を指定することもできます。
p_edge_uv_curve_data - サーフェス上のエッジ UV カーブを指定します。NULL 値を指定することもできます。
p_edge_curve_data - ProCurvedata 構造体の形式でカーブデータハンドルを指定します。このデータハンドルは、関数 ProLinedataInit()ProArcdataInit()ProEllipsedataInit()ProSplinedataInit()、または ProBsplinedataInit() から返ります。関数 ProCurvedataFree を使用して、データハンドル ProCurvedata を解放します。
*関数 ProEdgedataInit() への入力を指定するときに、閉じたループエッジを複数の連続エッジに分割することをお勧めします。たとえば、円形エッジを作成するには、開始角度 0 と終了角度 360 を指定する代わりに、円形エッジを複数のエッジに分割します。分割したエッジの角度測定値は、第 1 分割が 0 ~ 30 になり第 2 分割が 30 ~ 360 になります。関数 ProEdgedataInit() を呼び出す必要があります。
関数 ProCurvedataAlloc() を使用して、カーブデータ構造体用のメモリを割り当てます。カーブデータ構造体によりエッジプロファイルが定義されます。
エッジに指定されたカーブのタイプに従って、次に示す関数のうちの 1 つを呼び出し、カーブデータを初期化します。
関数 ProLinedataInit() を使用して、線データ構造体を初期化します。線の開始と終了を関数の入力として指定します。
関数 ProArcdataInit() を使用して、円弧データ構造体を初期化します。この関数の入力引数は次のとおりです。
vector1 - 円弧座標系の第 1 ベクトルを指定します。
vector2 - 円弧座標系の第 2 ベクトルを指定します。
origin - 円弧座標系の中心を指定します。
start_angle - 円弧の開始角度 (半径) を指定します。
end_angle - 円弧の終了角度 (半径) を指定します。
radius - 円弧の半径を指定します。
関数 ProEllipsedataInit() を使用して、楕円データ構造体を初期化します。この関数の入力引数は次のとおりです。
center - 楕円の中心を指定します。
x_axis - 楕円の 1 つ目 (x) の軸ベクトルを指定します。
plane_normal - 楕円の平面に垂直な軸ベクトルを指定します。
x_radius - x 軸方向の楕円の半径を指定します。
y_radius - y 軸方向の楕円の半径を指定します。y 軸は plane_normalx_axis のベクトル積によって求めることができます。
start_ang - 楕円の開始角度 (ラジアン) を指定します。
end_ang - 楕円の終了角度 (ラジアン) を指定します。
関数 ProSplinedataInit() を使用して、スプラインデータ構造体を初期化します。この関数の入力引数は次のとおりです。
par_arr - スプラインパラメータの配列を指定します。
pnt_arr - スプライン補間点の配列を指定します。
tan_arr - 各点の接線ベクトルの配列を指定します。
num_points - 配列すべてのサイズを指定します。
関数 ProBsplinedataInit() を使用して、B スプラインデータ構造体を初期化します。この関数の入力引数は次のとおりです。
degree - 基底関数の次数を指定します。
params - パラメータ行上のノットの配列を指定します。
weights - 有理 B-スプラインの場合は、c_pnts と同じ次元の配列を指定します。その他の場合、引数は NULL です。
c_pnts - 制御点上のノットの配列を指定します。
num_knots - パラメータ配列のサイズを指定します。
num_c_points - c_pnts のサイズと weights のサイズ (NULL でない場合) を指定します。
*ProBsplinedataInit() は B スプラインカーブを返しますが、インポートフィーチャーの作成時に関数 ProImportfeatCreate() によって使用される ProIntData データ構造体では、このカーブはスプラインとして解釈されます。
*ProBsplinedataInit() によって返される値 PRO_TK_BSPL_UNSUITABLE_DEGREE および PRO_TK_BSPL_NON_STD_END_KNOTS は、警告として処理される必要があります。これらの値は、 に最終的にインポートされたジオメトリが、この関数に最初に渡されたジオメトリとは異なることを示しています。このジオメトリは ProBsplinedataInit() によって棄却されず、データ構造体 ProCurvedata の生成に使用されています。
エッジデータのインタフェースデータへの追加
次の関数について説明します。
関数 ProIntfDataEdgeAppend() を使用して、エッジデータをインタフェースデータに追加します。
インポートフィーチャーで必要なエッジごとに処理を繰り返します。
これは役に立ちましたか?