Creating NURBS Scene Objects

The following functions create new nodes in the 3ds Max scene. The main function is NURBSNode() which takes an arbitrary NURBSSet and instantiates a NURBS object in the scene based on the definition in the NURBSSet. The other two functions are shorthand ways of creating lathe and extrude NURBS surfaces based on existing shapes in the scene.

NURBSNode <nurbsset> {node_creation_parameters}

Takes a NURBSSet object and creates a 3ds Max NURBS object in the scene corresponding to the definitions in that NURBSSet. After the function call, the supplied NURBSSet becomes an active representative for the new scene node, all the NURBSId properties are filled-in and you can modify the scene object by modifying the properties of the NURBSSet component objects.

Any of the standard <node> constructor keyword arguments can be added, such as .name, .prefix, .pos, .rotation, .wireColor, etc. See Node class for details.

NURBSLatheNode <curve> <axis> <sweep> [capStart:<boolean>] \

[capEnd:<boolean>] [capType:<integer>] \

[weldCore:<boolean>] [flipNormals:<boolean>] \

[mapCoords:<boolean>] [segs:<integer>] \

[matIDs:<boolean>] [shapeIDs:<boolean>] \

{node_creation_parameters}

This function generates a NURBS object based on the specified lathe (surface of revolution) definition and returns a pointer to it. This is used by the lathe modifier.

curve <node>

The shape object to revolve. Note that if the curve pointed to is a bezier spline then capping won't work properly.

axis <Matrix3>

This specifies the axis of revolution.

sweep <float>

The angle for the surface of revolution in degrees.

capStart: <boolean>

Specifies if the surface should be capped at the beginning: true to cap; false to leave open.

capEnd: <boolean>

Specifies if the surface should be capped at the ending: true to cap; false to leave open.

capType: <integer>

This parameter is not currently used and the value specified is ignored.

weldCore: <boolean>

true to collapse any coincident vertices at the center of the surface; otherwise false.

flipNormals: <boolean>

true to invert the orientation of surface normals; otherwise false.

mapCoords: <boolean>

true to generate mapping coordinates; otherwise false.

segs: <integer>

The number of segments in the surface of revolution.

matIDs: <boolean>

If true special material IDs are assigned to the surfaces and caps.

shapeIDs: <boolean>

If true shape IDs are used. When on, this function uses the material ID values assigned to segments in the spline to be lathed, or curve sub-objects in the NURBS curve to be lathed. This is available only when matIds is true.

NURBSExtrudeNode <shape> <amount> [capStart:<boolean>] \

[capEnd:<boolean>] [capType:<integer>] \

[mapCoords:<boolean>] [matIDs:<boolean>] \

[shapeIDs:<boolean>] {node_creation_parameters}

This function generates a NURBS object based on the specified extrusion definition and returns a pointer to it. This is used by the extrude modifier.

shape <node>

The shape node to extrude. Note that if the shape pointed to is a bezier spline then capping won't work properly.

amount <float>

Specifies the height of the extrusion.

capStart: <boolean>

Specifies if the surface should be capped at the beginning: true to cap; false to leave open.

capEnd: <boolean>

Specifies if the surface should be capped at the ending: true to cap; false to leave open.

capType: <integer>

This parameter is not currently used and the value specified is ignored.

matIDs: <boolean>

If true, special material IDs are assigned to the surfaces and caps.

shapeIDs: <boolean>

If true shape IDs are used. When on, this function uses the material ID values assigned to segments in the spline to be extruded, or curve sub-objects in the NURBS curve to be extruded. This is available only when matIds is true.