1 つのサーフェイスで構成されるNurbsSurfaceMeshオブジェクトを作成します。通常は、ジオメトリデータのセットからNURBS サーフェイスを作成するために使用します。
oReturn = X3DObject.AddNurbsSurface( ControlPoints, [UKnots], [VKnots], [UClosed], [VClosed], [UDegree], [VDegree], [UParam], [VParam], [NurbsFormat], [Name] ); |
この新しいジオメトリを持つX3DObjectを戻します。新しいX3DObject はこの x3DObject の子して関連付けられます。
| パラメータ | タイプ | 詳細 |
|---|---|---|
| ControlPoints | 1Dまたは3DArray | NURBS サーフェイスの作成に使用されるコントロールポイント。このコントロールポイントは、1D 配列または X,y,z,w値の 3D 配列の行列(UxVx4)で保存できます。1D 配列には、開始点(後ろにx,y,z,w値のシーケンスが続く)にU、V方向のポイント数が含まれます(例:{U,V,Xo,Yo,Zo,...X(uv-1),Y(uv-1),Z(uv-1),W(uv-1)})。 |
| UKnots | DoubleのArray | U方向のノット値のベクトル
デフォルト値:コントロールポイントから操作されるノット |
| VKnots | DoubleのArray | V方向のノット値のベクトル
デフォルト値:コントロールポイントから操作されるノット |
| UClosed | Boolean | NURBS サーフェイスが U方向で閉じられているかどうかを指定します。
デフォルト値: False |
| VClosed | Boolean | NURBS サーフェイスがV方向で閉じられているかどうかを指定します。
デフォルト値: False |
| UDegree | Long | NURBS サーフェイスの U方向の次数
デフォルト値: 3 |
| VDegree | Long | NURBS サーフェイスの V方向の次数
デフォルト値: 3 |
| UParam | siKnotParameterization | NURBS サーフェイスの U方向のパラメータ配置方法
デフォルト値:siNonUniformParameterization |
| VParam | siKnotParameterization | NURBS サーフェイスの V方向のパラメータ配置方法
デフォルト値:siNonUniformParameterization |
| NurbsFormat | siNurbsFormat | NURBs のデータ形式を指定します。
デフォルト値:siSINurbs |
| Name | String | オブジェクトの名前 |
NewScene , false
set oRoot = Application.ActiveProject.ActiveScene.Root
set oOrig = oRoot.AddGeometry( "Sphere", "NurbsSurface" )
oOrig.radius.Value = 1.000
oOrig.subdivu.Value = 1.000
oOrig.subdivv.Value = 1.000
oOrig.ActivePrimitive.Geometry.Surfaces(0).Get _
siSINurbs, _
aCV, _
aUKnots,aVKnots, _
bUClosed,bVClosed, _
lUDegree,lVDegree, _
eUParameterization,eVParameterization
Application.LogMessage "bUClosed: " & bUClosed
Application.LogMessage "bVClosed: " & bVClosed
Application.LogMessage "lUDegree: " & lUDegree
Application.LogMessage "lVDegree: " & lVDegree
Application.LogMessage "eUParameterization: " & eUParameterization
Application.LogMessage "eVParameterization: " & eVParameterization
Application.LogMessage "aCV size:" & ubound(aCV,3)+1 & ":" & ubound(aCV,2)+1 & ":" &ubound(aCV,1)+1
for i = lbound( aCV, 3 ) to ubound( aCV, 3 )
for j = lbound( aCV, 2 ) to ubound( aCV, 2 )
Application.LogMessage "aCV(" & i & "," & j &") = " & _
aCV( 0, j, i ) & "," & aCV( 1, j, i ) & "," & aCV( 2, j, i ) & "," & aCV( 3, j, i )
next
next
for i = lbound( aUKnots, 1 ) to ubound( aUKnots, 1 )
Application.LogMessage "aUKnots(" & i & ") = " & aUKnots( i )
next
for i = lbound( aVKnots, 1 ) to ubound( aVKnots, 1 )
Application.LogMessage "aVKnots(" & i & ") = " & aVKnots( i )
next
set oNurbsSurface = oRoot.AddNurbsSurface( _
aCV, _
aUKnots,aVKnots, _
bUClosed,bVClosed, _
lUDegree,lVDegree, _
eUParameterization,eVParameterization, _
siSINurbs _
)
' Expected results:
'INFO : bUClosed: True
'INFO : bVClosed: False
'INFO : lUDegree: 3
'INFO : lVDegree: 3
'INFO : eUParameterization: 1
'INFO : eVParameterization: 1
'INFO : aCV size:3:4:4
'INFO : aCV(0,0) = 0,-1,0,1
'INFO : aCV(0,1) = -2.66666666666667,-1,0,1
'INFO : aCV(0,2) = -2.66666666666667,1,0,1
'INFO : aCV(0,3) = 0,1,0,1
'INFO : aCV(1,0) = 0,-1,0,1
'INFO : aCV(1,1) = 1.33333333333333,-1,2.3094010767585,1
'INFO : aCV(1,2) = 1.33333333333333,1,2.3094010767585,1
'INFO : aCV(1,3) = 0,1,0,1
'INFO : aCV(2,0) = 0,-1,0,1
'INFO : aCV(2,1) = 1.33333333333333,-1,-2.3094010767585,1
'INFO : aCV(2,2) = 1.33333333333333,1,-2.3094010767585,1
'INFO : aCV(2,3) = 0,1,0,1
'INFO : aUKnots(0) = 0
'INFO : aUKnots(1) = 1
'INFO : aUKnots(2) = 2
'INFO : aUKnots(3) = 3
'INFO : aVKnots(0) = 0
'INFO : aVKnots(1) = 0
'INFO : aVKnots(2) = 0
'INFO : aVKnots(3) = 1
'INFO : aVKnots(4) = 1
'INFO : aVKnots(5) = 1
|