Snaps boundaries between two Nurbs surfaces. Snapping boundaries constrains the control points on the boundary of one surface to the matching control points on the boundary of another. This is the equivalent of using the ApplyOp command with the SnapFace operator.

Note: This command uses output arguments. C# and some scripting languages (such as JScript, PerlScript and Python) don't support arguments passed by reference. Normally you can get the output arguments via either XSIApplication.ExecuteCommand method (C#) or the ISIVTCollection (scripting languages), but this command already returns a value.

The only available workaround in this case is to create a VBScript custom command which returns both the output arguments and the return value in one array. For details, see What Happens when the Function Already Returns a Value?.

Scripting Syntax

oReturn = ApplySnapFaceOp( [ConnectionSet], [ConnectType], [ImmediateMode], [OutputObjs] );

Return Value

Returns an XSICollection that contains the created snap face operators.


Parameter Type Description
ConnectionSet ConnectionSet Specifies the objects connected to the operator.

Default Value: Currently selected objects are used as the main group.

Warning: An error occurs if the connection set is invalid. Please verify the connection set required for this operator to avoid breaking your scripts.

ConnectType siBranchFlag Specifies the type of connection (node or branch).

Default Value: siUnspecified

ImmediateMode siOperationMode Specifies whether or not the operator should be immediately frozen.

Default Value: siPersistentOperation

OutputObjs XSICollection Returns the created primitives.


VBScript Example

' This example shows how to snap control points of two NURBS grids to
' make a big backwards Z in the camera viewport.
dim oLefty, oRighty
' Create two grids to snap. Name the grids in the scene explorer
set oLefty = CreatePrim( "Grid", "NurbsSurface", "lefty" )
set oRighty = CreatePrim( "Grid", "NurbsSurface", "righty" )
Translate oRighty, 0, 5, 0, siAbsolute, siParent, siObj, siY
' Note that it is a border of oLefty that is moved onto a border of oRighty
ApplySnapFaceOp oRighty & ".bndry[0];" & oLefty & ".bndry[2]"

See Also