The snapToSystem command positions and/orients a module based on a coordinate system defined by the positions of three selected nodes:
This command is similar to snapToRigid with some important differences:
Use snapToSystem when you need to constrain a module to a location defined by a local coordinate system that is re-defined for each frame. If neither option for all time or ranges is used, then the operation affects the current frame only.
By default the offsets are defined as a percentage of the distance from the first selected module to the second selected module. Alternatively, the -absolute
option can be used to define the offset in millimeters.
Use of the -positionOnly
option prevents rigid body rotations from being applied to the target module. This option can be useful when you want to snap an object, like a baseball bat to a new location while maintaining the rotational orientation of the bat. If you want to aim an axis other than X of the module being snapped at the X axis, see snapToSystemAlign.
Snap
snapToSystem "targetNodeName" xOffset yOffset zOffset [-allTime] [-positionOnly] [-rotationOnly] [-absolute] [-ranges] |
Name | Type | Required | Comments |
---|---|---|---|
zOffset | float | yes | Specifies the position offset to apply to the object being snapped on the Z axis of the space defined by the selected markers. |
yOffset | float | yes | Specifies the position offset to apply to the object being snapped on the Y axis of the space defined by the selected markers. |
xOffset | float | yes | Specifies the position offset to apply to the object being snapped on the X axis of the space defined by the selected markers. |
targetNodeName | string | yes | Name of the node that will be snapped. |
Name | Flag arguments | Argument type | Exclusive to | Comments |
---|---|---|---|---|
allTime | 0 | — | ranges | Performs the snap over the entire animation range. |
positionOnly | 0 | — | rotationOnly | Only modifies the position of the module being snapped. |
rotationOnly | 0 | — | positionOnly | Only modifies the rotation of the module being snapped. |
absolute | 0 | — | — | Specifies the offset is in mm rather then a percentage of the distance between the first two modules that define the system. |
ranges | 0 | — | allTime | Performs the snap over the selected time ranges. |
void
// This sequence of commands creates a new Marker module // and snap its position over all time to a position offset the // indicated number of millimeters ( -50 in X, 50 in Y, and 50 in Z) // calculated from the origin of a coordinate system defined by the // animation of LFWT, LMWT, and LBWT. The offset is applied in terms // of the coordinate system defined at each frame. // The coordinate system is then expressed in rotations relative to // world space and applied to the target module, snapSystemTest. create Marker snapSystemTest; select LFWT LMWT LBWT; snapToSystem -allTime -absolute snapSystemTest -50 50 50; |