NurbsSurfaceMesh.Set operator

説明

メッシュの完全なデータ記述を基に NurbsSurfaceMesh を設定します。このメソッドは、スクリプトオペレータからのみ使用できます。注:このメソッドをクラスタのあるオブジェクトに使用してトポロジを変更した場合は、クラスタの更新はユーザが実行する必要があります。スクリプトオペレータでないオペレータの場合は、このプロパティは、オブジェクトがフリーズされている場合にのみ設定できます。

C#構文

NurbsSurfaceMesh.Set( Object in_vsalCount, Object in_vsaUVControlPoints, Object in_vsaNbUControlPoints, Object in_vsaNbVControlPoints, Object in_vsadUKnots, Object in_vsaNbUKnots, Object in_vsadVKnots, Object in_vsaNbVKnots, Object in_vsabUClosed, Object in_vsabVClosed, Object in_vsalUDegree, Object in_vsalVDegree, Object in_vsaeUParam, Object in_vsaeVParam, siNurbsFormat in_eNurbsFormat );

スクリプト構文

NurbsSurfaceMesh.Set( Count, UVControlPoints, [NbUControlPoints], [NbVControlPoints], [UKnots], [NbUKnots], [VKnots], [NbVKnots], [UClosed], [VClosed], [UDegree], [VDegree], [UParam], [VParam], [NurbsFormat] );

パラメータ

パラメータ タイプ 説明
Count Long メッシュにある NurbsSurface の数
UVControlPoints 1D Array コントロールポイントは 2D 配列に格納されます。この配列には、U制御ポイントの数 > 制御ポイントの数 > x,y,z,w値のシークエンスをこの順番で含める必要があります(例:{NbU, NbV, Xo,Yo,Zo,Wo...X(n-1),Y(n-1),Z(n-1),W(n-1)})。
NbUControlPoints LongArray NurbsCurve ごとの U ControlPoint の数を指定します。
NbVControlPoints LongArray NurbsCurve ごとの V ControlPoint の数を指定します。
UKnots DoubleArray U方向のノット値の配列
NbUKnots LongArray NurbsCurve ごとの U ノットの数を指定します。
VKnots DoubleArray V方向のノット値の配列
NbVKnots LongArray NurbsCurve ごとの V ノットの数を指定します。
UClosed Boolean値のArray NURBS サーフェイスが U 方向で閉じられているかどうかを指定します。
VClosed Boolean値のArray NURBS サーフェイスが V 方向で閉じられているかどうかを指定します。
UDegree LongArray NURBS サーフェイスの U 方向の次数
VDegree LongArray NURBS サーフェイスの V 方向の次数
UParam siKnotParameterization値のArray NURBS サーフェイスの U 方向のパラメータ配置方法
VParam siKnotParameterization値のArray NURBS サーフェイスの V 方向のパラメータ配置方法
NurbsFormat siNurbsFormat NURBs のデータ形式を指定します。

デフォルト値:siSINurbs

VBScript の例

Dim lDegree(2), bClosed(2), eParameterization(2), aControlPoints, aKnots(2), aNbKnots(2), aNbControlVertex(2), lCount

set oRoot = Application.activeproject.activescene.root

set oGrid1 = oRoot.AddGeometry("Grid", "NurbsSurface")

oGrid1.Kinematics.Global.Parameters("posx").value = oG

set oGrid2 = oRoot.AddGeometry("Grid", "NurbsSurface")

oGrid2.Kinematics.Global.Parameters("posx").value = oGrid1.Kinematics.Global.Parameters("posx").value - 4.0

SelectObj oGrid2

AddToSelection oGrid1

SIAssembleNurbsMesh , 0.150, False, False, True

SelectObj "surfmsh"

set oAssembledSurface = selection(0)

'We must freeze the object so that Set call succeeds

FreezeObj oAssembledSurface

oAssembledSurface.ActivePrimitive.Geometry.Get _		

	siSINurbs, _

	lCount, _

	aControlVertex, aNbControlVertex(siUDirection), aNbControlVertex(siVDirection), _

	aKnots(siUDirection), aNbKnots(siUDirection), aKnots(siVDirection) , aNbKnots(siVDirection), _

	bClosed(siUDirection),bClosed(siVDirection), _

	lDegree(siUDirection),lDegree(siVDirection), _

	eParameterization(siUDirection),eParameterization(siVDirection)

'Making a tunnel

l_total = 0

for k = 0 to lCount - 1

	for i = 0 to aNbControlVertex(siVDirection)(k) - 1

		for j = 0 to aNbControlVertex(siUDirection)(k) - 1

			aControlVertex(1,i, j + l_total) = aControlVertex(1,i,j + l_total) + (aNbControlVertex(siVDirection)(k)/2 - abs( aNbControlVertex(siVDirection)(k)/2 - i))

		next

	next

	l_total = l_total + aNbControlVertex(siUDirection)(k)

next

oAssembledSurface.ActivePrimitive.Geometry.Set _		

	lCount, _

	aControlVertex, aNbControlVertex(siUDirection), aNbControlVertex(siVDirection), _

	aKnots(siUDirection), aNbKnots(siUDirection), aKnots(siVDirection) , aNbKnots(siVDirection), _

	bClosed(siUDirection),bClosed(siVDirection), _

	lDegree(siUDirection),lDegree(siVDirection), _

	eParameterization(siUDirection),eParameterization(siVDirection), _

	siSINurbs