AddSurfaceWithTrim (NurbsSurfaceMesh)

Description

Adds a trimmed surface to the mesh.

Scripting Syntax

NurbsSurfaceMesh.AddSurfaceWithTrim( [ControlPoints], [UKnots], [VKnots], [UClosed], [VClosed], [UDegree], [VDegree], [UParam], [VParam], [NurbsFormat], [NbTrim], [IsBoundary], [ProjectionType], [NbCurve], [CurveControlPoints], [CurveNbControlPoints], [CurveParam], [CurveKnots], [CurveNbKnots], [CurveDegree], [CurveClosed] )

C# Syntax

NurbsSurface NurbsSurfaceMesh.AddSurfaceWithTrim( Object in_vsaControlPoints, Object in_vsadUKnots, Object in_vsadVKnots, Boolean in_bUClosed, Boolean in_bVClosed, Int32 in_lUDegree, Int32 in_lVDegree, siKnotParameterization in_eUParam, siKnotParameterization in_eVParam, siNurbsFormat in_eNurbsFormat, Int32 in_lNbTrim, Object in_vsabIsBoundary, Object in_vsalProjectionType, Object in_vsalNbCurve, Object in_vsaCurveControlPoints, Object in_vsaCurveNbControlPoints, Object in_vsaCurveParam, Object in_vsaCurveKnots, Object in_vsaCurveNbKnots, Object in_vsaCurveDegree, Object in_vsaCurveClosed );

Parameters

Parameter

Type

Description

ControlPoints

1D or 3D Array

The control points used for creating the nurbs surface. The control points can be stored in a 1-dimensional array or in a 3-dimensional matrix (UxVx4) of x,y,z,w values. The 1 dimensional array should contain the number of points in U and V at the beginning followed by a sequence of x,y,z,w values e.g. {U,V,Xo,Yo,Zo,...X(uv-1),Y(uv-1),Z(uv-1),W(uv-1)}.

UKnots

Array of Doubles

A vector of knot values in the U direction.

VKnots

Array of Doubles

An array of knot values in the V direction.

UClosed

Boolean

Specifies whether the nurbs surface is closed or not in U direction.

Default Value: false

VClosed

Boolean

Specifies whether the nurbs surface is closed or not in V direction.

Default Value: false

UDegree

Long

Degree of the nurbs surface in U direction.

Default Value: 3

VDegree

Long

Degree of the nurbs surface in V direction.

Default Value: 3

UParam

siKnotParameterization

The parameterization factor of the nurbs surface in U direction.

Default Value: siNonUniformParameterization

VParam

siKnotParameterization

The parameterization factor of the nurbs surface in V direction.

Default Value: siNonUniformParameterization

NurbsFormat

siNurbsFormat

Specifies how the data is formatted.

Default Value: siSINurbs

NbTrim

Long

Specifies how many trims this surface contains.

Default Value: 0

IsBoundary

Array of Booleans

Specifies whether each trim is a boundary.

ProjectionType

Array of Longs

Specifies the projection type of each trim. Each member of the array maps to a single trim, so the array is actually a combination of the possible values (0 and 1).

Possible Values:

0: UV space

1: World space

NbCurve

Array of Longs

Number of nurbs curves in each trim

CurveControlPoints

2D Array of 2D Array

Array where each set of control points is stored in a 2-dimensional array. The array is 4 x Number of ControlPoints.

CurveNbControlPoints

Array of Array of Longs

Specifies the number of ControlPoints per NurbsCurve per trim.

CurveParam

Array of Array of siKnotParameterization values

The parameterization factor of the nurbs curve for each trim.

CurveKnots

Array of Array of Doubles

An array of knot values for each trim.

CurveNbKnots

Array of Array of Longs

Specifies the number of Knots per nurbs curve per trim.

CurveDegree

Array of Array of Longs

Degree of the nurbs curves for each trim.

Default Value: 3

CurveClosed

Array of Array of Booleans

Specifies whether the nurbs curve is closed for each trim.

Default Value: False

Return Value

NurbsSurface

Examples

VBScript Example

' This example creates a sphere with a circular trim

Dim lDegree(2), bClosed(2), eParameterization(2), aControlPoints, aKnots(2)

' Extract data from a sphere nurbs surface

set oRoot = Application.activeproject.activescene.root

set oSphere = oRoot.AddGeometry( "Sphere", "NurbsSurface" )

oSphere.ActivePrimitive.Geometry.Surfaces(0).Get _
   siSINurbs, _
   aControlPoints, _
   aKnots(siUDirection),aKnots(siVDirection) , _
   bClosed(siUDirection),bClosed(siVDirection), _
   lDegree(siUDirection),lDegree(siVDirection), _
   eParameterization(siUDirection),eParameterization(siVDirection)

' Extract data from a cricular curve for the trim

set oCurve = CreatePrim("Circle", "NurbsCurve")
Dim lCDegree, bCClosed, eCParameterization, aCControlVertex, aCKnots, lCCount, aCNbControlVertex
oCurve.ActivePrimitive.geometry.get _
   siSINurbs, _
   lCCount, _
   aCControlVertex, _
   aCNbControlVertex, _
   aCKnots , _
   aCNbKnots, _
   bCClosed, _
   lCDegree, _
   eCParameterization

' Create the trimmed surface

set oNew = oRoot.AddNurbsSurfaceMesh
oNew.ActivePrimitive.Geometry.AddSurfaceWithTrim _
   aControlPoints, _
   aKnots(siUDirection),aKnots(siVDirection) , _
   bClosed(siUDirection),bClosed(siVDirection), _
   lDegree(siUDirection),lDegree(siVDirection), _
   eParameterization(siUDirection),eParameterization(siVDirection), _
   siSINurbs, _
   1, _
   array(True), _
   array(0), _
   array(lCCount), _
   array(aCControlVertex), _
   array(aCNbControlVertex), _
   array(eCParameterization), _
   array(aCKnots) , _
   array(aCNbKnots), _
   array(lCDegree), _
   array(bCClosed)


Autodesk Softimage v7.5