NurbsSurface.GetTrim2 operator

説明

NURBS サーフェイストリムの完全なデータ記述を戻します。トリムは、NURBS サーフェイス上に投影されたNURBS カーブリストです。データは 1D 配列で戻されます。順序は NurbsSurface.GetTrim メソッドの出力引数と同じです。

注:このメソッドは、JScriptやPerlScriptなどの引数の参照渡しをサポートしないスクリプト言語で使用する必要があります。出力引数の取得の詳細については、About Output Argument Arrays を参照してください。

C#構文

Object NurbsSurface.GetTrim2( Int32 in_nTrimIndex, siNurbsFormat in_eNurbsFormat );

スクリプト構文

oArray = NurbsSurface.GetTrim2( TrimIndex, [NurbsFormat] );

戻り値

Array。順序は、IsBoundary、ProjectionType、Count、ControlPoints、NbControlPoints、Knots、NbKnots、Closed、Degree、Parameterization です。

パラメータ

パラメータ タイプ 説明
TrimIndex Long どのトリムを記述するか指定します。
NurbsFormat siNurbsFormat NURBs のデータ形式を指定します。

デフォルト値:siSINurbs

JScript の例

// JScript example : shows how to retrieve the output arguments returned by NurbsSurface.GetTrim2

// Create a sphere with some trims first

CreatePrim("Sphere", "NurbsSurface", null, null);

CreatePrim("Square", "NurbsCurve", null, null);

Scale(null, -0.325581395348837, 1, 1, siRelative, siLocal, siObj, siXYZ, null, null, null, null, null, null, null, 0);

Scale(null, 1, 0.732558139534884, 1, siRelative, siLocal, siObj, siXYZ, null, null, null, null, null, null, null, 0);

SelectObj("sphere", null, true);

ApplyTopoOp("TrimByProjection", "sphere;square", 3, siPersistentOperation, null);

// get the trimmed surface

var surfs = Application.Selection(0).ActivePrimitive.Geometry.Surfaces;

// get the first trim parameters and convert VB array to JScript array

var vbArgs = new VBArray(surfs(0).GetTrim2( 0, siSINurbs ));

var args = vbArgs.toArray();

// get the bondary flag of curves

LogMessage("trim is boundary?: " + args[0] );

// get the projection type

LogMessage("projection type: " + args[1] );

// get the number of curves

LogMessage("number of curves: " + args[2] );

// get the number of control points per curve

var vbArg4 = new VBArray(args[4]);

var ncpoints = vbArg4.toArray();

for (i = 0; i < args[2]; i++)

{

	LogMessage("number of control points for curve " + i + ": " + ncpoints[i] );

}

// get the control points

var vbArg3 = new VBArray(args[3]);

var cpts = vbArg3.toArray();

for ( i=0; i<ncpoints.length; i++ )

{

	for ( j=0, k=0; k<ncpoints[i]; k++, j+=4 )

	{

		LogMessage("crv" + i + "[" + k + "]: " + cpts[j] + ", " + cpts[j+1] + ", " + cpts[j+2] + ", " + cpts[j+3] );

	}

}

// get the number knots per curve

var vbArg6 = new VBArray(args[6]);

var nknots = vbArg6.toArray();

for (i = 0; i < nknots.length; i++)

{

	LogMessage("number of knots for curve " + i + ": " + nknots[i] );

}

// get the knots

var vbArg5 = new VBArray(args[5]);

var knots = vbArg5.toArray();

for ( j=0; j<nknots.length; j++)

{

	for (i = 0; i < nknots[j]; i++)

	{

		LogMessage("crv" + j + ": " + "knots" + i + ": " + knots[i] );

	}

}

// get nurbs curves closeness state

var vbArg7 = new VBArray(args[7]);

var closes = vbArg7.toArray();

for (i = 0; i < closes.length; i++)

{

	LogMessage("curve" + i + " closeness: " + closes[i] );

}

// get nurbs degree

var vbArg8 = new VBArray(args[8]);

var degrees = vbArg8.toArray();

for (i = 0; i < degrees.length; i++)

{

	LogMessage("curve" + i + " degree: " + degrees[i] );

}

// get nurbs parameterization factor

var vbArg9 = new VBArray(args[9]);

var params = vbArg9.toArray();

for (i = 0; i < params.length; i++)

{

	LogMessage("curve" + i + " parameterization: " + params[i] );

}

関連項目

NurbsSurfaceMesh.AddSurfaceWithTrim NurbsSurface.GetTrim NurbsSurface.TrimCount