NURBSCVSurface : NURBSSurface

This class defines an independent surface that uses control vertices (CVs) to describe its shape. The CVs define a control lattice which surrounds the surface.

Constructors

NURBSCVSurface [<property>:<val>]...

Any of the object's properties may be set via optional keyword arguments on the constructor.

getObject <nurbsset> <index>

Properties

<nurbscvsurface>.uOrder        : integer

<nurbscvsurface>.vOrder        : integer

The order of the surface in the U and V directions.

<nurbscvsurface>.numUKnots     : integer

<nurbscvsurface>.numVKnots     : integer

The number of knots in the surface in the U and V directions. If this value is changed, the previous knot data is NOT maintained. Because they are generated mathematically, NURBS surfaces have a parameter space in addition to the 3D geometric space in which they are displayed. Specifically, an array of values called knots specifies the extent of influence of each control vertex (CV) on the surface.

<nurbscvsurface>.numCVs        : point2

The number of control vertices for the surface in the U and V directions. If this value is changed, the previous control vertex data is NOT maintained.

<nurbscvsurface>.transform     : matrix3

The transformation matrix for the NURBSCVSurface. This controls the relative position of the item within a NURBSSet.

<nurbscvsurface>.uEdgesOverlap : boolean, read-only

<nurbscvsurface>.vEdgesOverlap : boolean, read-only

true if the edges of the surface overlap in U and/or V even though the surface may not be closed (that is, the tangents match at the edges), false otherwise.

<nurbscvsurface>.autoParam     : #notAutomatic, #autoCentripetal, #autoUniform

#notAutomatic, #autoCentripetal, and #autoUniform correspond to the Automatic Reparam options in the CV Surface rollouts: none, chord length and uniform, respectively. Defaults to #notAutomatic.

<nurbscvsurface>.rigid         : boolean

true if the surface is 'rigid'; otherwise false. The only editing allowed on a rigid surface is to transform it at the Surface sub-object level. You can't move a rigid surface's points or CVs, or change the number of points or CVs. Rigid surfaces reduce the amount of memory used by the NURBS model. Making surfaces rigid improves performance, especially for large and complex models. When a surface is rigid, you can't see its points or CVs when you are at the Point or Surface CV sub-object levels. If the model has no nonrigid surfaces and no point curves, the Point and Surface CV sub-object levels aren't available at all.

Methods

closeU <nurbscvsurface>

Closes the surface in the U direction.

closeV <nurbscvsurface>

Closes the surface in the V direction.

getUKnot <nurbscvsurface> <u_index>

Get the indexed U-direction knot; knot indexes are 1-based.

setUKnot <nurbscvsurface> <u_index> <float>

Sets the indexed U-direction knot to the given value; knot indexes are 1-based.

getVKnot <nurbscvsurface> <v_index>

Get the indexed V-direction knot; knot indexes are 1-based.

setVKnot <nurbscvsurface> <v_index> <float>

Get the indexed V-direction knot to the given value; knot indexes are 1-based.

getCV <nurbscvsurface> <u_index> <v_index>

Get the CV at the given U and V index as a NURBSControlVertex; CV indexes are 1-based.

setCV <nurbscvsurface> <u_index> <v_index> <NURBSControlVertex>

Sets the CV at the given U and V index to the supplied NURBSControlVertex; CV indexes are 1-based.

refineU <nurbscvsurface> <v_param>

Adds new row of interpolated CVs in the U direction on the surface at the given parametric V point.

refineV <nurbscvsurface> <u_param>

Adds new column of interpolated CVs in the V direction on the surface at the given parametric U point.

refine <nurbscvsurface> <u_param> <v_param>

Adds a new row and column of interpolated CVs on the surface at the given parametric UV position.

reparameterize <nurbscvsurface> (#centripetal | #uniform)

Reparameterizes the surface by chord length (#centripetal) or uniform (#uniform) uniform parameterization.

Notes

CV curves and surfaces must obey the relationship that "order + number of CVs = number of knots". If this is not the case in most cases no object will be created and in some cases an assertion fault might be generated.

See also