Go to: Synopsis. Notes. Return value. Related. Flags. Python examples.
xform(
[objects...]
, [absolute=boolean], [boundingBox=boolean], [boundingBoxInvisible=boolean], [centerPivots=boolean], [euler=boolean], [matrix=[float, float, float, float, float, float, float, float, float, float, float, float, float, float, float, float]], [objectSpace=boolean], [pivots=[linear, linear, linear]], [preserve=boolean], [relative=boolean], [rotateAxis=[angle, angle, angle]], [rotateOrder=string], [rotatePivot=[linear, linear, linear]], [rotateTranslation=[linear, linear, linear]], [rotation=[angle, angle, angle]], [scale=[float, float, float]], [scalePivot=[linear, linear, linear]], [scaleTranslation=[linear, linear, linear]], [shear=[float, float, float]], [translation=[linear, linear, linear]], [worldSpace=boolean], [worldSpaceDistance=boolean], [zeroTransformPivots=boolean])
Note: Strings representing object names and arguments must be separated by commas. This is not depicted in the synopsis.
xform is undoable, queryable, and NOT editable.
This command can be used query/set any element in a
transformation node. It can also be used to query some values
that cannot be set directly such as the transformation matrix
or the bounding box. It can also set both pivot points to
convenient values.
All values are specified in transformation coordinates.
(attribute-space)
In addition, the attributes are applied/returned in the order in
which they appear in the flags section. (which corresponds to the
order they appear in the transformation matrix as given below)
See also: move, rotate, scale
The transformation matrix for a node is built by post-multiplying
the following matrices in the given order (Note: rotations are
applied according to the rotation order parameter and the 6
different rotation possibilities are not shown below)
-1 -1
[M] = [sp]x[s]x[sh]x[sp]x[st]x[rp]x[ar]x[ro]x[rp]x[rt]x[t]
where:
[sp] = | 1 0 0 0 | = scale pivot matrix
| 0 1 0 0 |
| 0 0 1 0 |
| -spx -spy -spz 1 |
[s] = | sx 0 0 0 | = scale matrix
| 0 sy 0 0 |
| 0 0 sz 0 |
| 0 0 0 1 |
[sh] = | 1 0 0 0 | = shear matrix
| xy 1 0 0 |
| xz yz 1 0 |
| 0 0 0 1 |
-1
[sp] = | 1 0 0 0 | = scale pivot inverse matrix
| 0 1 0 0 |
| 0 0 1 0 |
| spx spy spz 1 |
[st] = | 1 0 0 0 | = scale translate matrix
| 0 1 0 0 |
| 0 0 1 0 |
| stx sty stz 1 |
[rp] = | 1 0 0 0 | = rotate pivot matrix
| 0 1 0 0 |
| 0 0 1 0 |
| -rpx -rpy -rpz 1 |
[ar] = | * * * 0 | = axis rotation matrix
| * * * 0 | (composite rotation,
| * * * 0 | see [rx], [ry], [rz]
| 0 0 0 1 | below for details)
[rx] = | 1 0 0 0 | = rotate X matrix
| 0 cos(x) sin(x) 0 |
| 0 -sin(x) cos(x) 0 |
| 0 0 0 1 |
[ry] = | cos(y) 0 -sin(y) 0 | = rotate Y matrix
| 0 1 0 0 |
| sin(y) 0 cos(y) 0 |
| 0 0 0 1 |
[rz] = | cos(z) sin(z) 0 0 | = rotate Z matrix
| -sin(z) cos(z) 0 0 |
| 0 0 1 0 |
| 0 0 0 1 |
-1
[rp] = | 1 0 0 0 | = rotate pivot matrix
| 0 1 0 0 |
| 0 0 1 0 |
| rpx rpy rpz 1 |
[rt] = | 1 0 0 0 | = rotate translate matrix
| 0 1 0 0 |
| 0 0 1 0 |
| rtx rty rtz 1 |
[t] = | 1 0 0 0 | = translation matrix
| 0 1 0 0 |
| 0 0 1 0 |
| tx ty tz 1 |
None
In query mode, return type is based on queried flag.
move, rotate, scale
absolute, boundingBox, boundingBoxInvisible, centerPivots, euler, matrix, objectSpace, pivots, preserve, relative, rotateAxis, rotateOrder, rotatePivot, rotateTranslation, rotation, scale, scalePivot, scaleTranslation, shear, translation, worldSpace, worldSpaceDistance, zeroTransformPivots
Long name (short name) |
Argument types |
Properties |
absolute(a)
|
boolean
|
|
|
perform absolute transformation (default)
|
|
relative(r)
|
boolean
|
|
|
perform relative transformation
|
|
euler(eu)
|
boolean
|
|
|
modifer for -relative flag that specifies rotation
values should be added to current XYZ rotation values.
|
|
objectSpace(os)
|
boolean
|
|
|
treat values as object-space transformation values
(only works for pivots, translations, rotation, rotation
axis, matrix, and bounding box flags)
|
|
worldSpace(ws)
|
boolean
|
|
|
treat values as world-space transformation values
(only works for pivots, translations, rotation, rotation
axis, matrix, and bounding box flags)
|
|
worldSpaceDistance(wd)
|
boolean
|
|
|
Values for -sp, -rp, -st, -rt, -t, -piv flags
are treated as world space distances to move along the
local axis. (where the local axis depends on whether
the command is operating in local-space or object-space.
This flag has no effect for world space.
|
|
preserve(p)
|
boolean
|
|
|
preserve overall transformation. used to prevent object
from "jumping" when changing pivots or rotation order. the
default value is true. (used with -sp, -rp, -roo, -cp, -ra)
|
|
scalePivot(sp)
|
[linear, linear, linear]
|
|
|
scale pivot point transformation (when used with
the -p flag the overall transformation is preserved
by modifying the scale translation)
|
|
scale(s)
|
[float, float, float]
|
|
|
shear(sh)
|
[float, float, float]
|
|
|
shear transformation.
The values represent the shear <xy,xz,yz>
|
|
scaleTranslation(st)
|
[linear, linear, linear]
|
|
|
rotatePivot(rp)
|
[linear, linear, linear]
|
|
|
rotate pivot point transformation (when used with
the -p flag the overall transformation is preserved
by modifying the rotation translation)
|
|
rotateOrder(roo)
|
string
|
|
|
rotation order (when used with the -p flag the
overall rotation is preserved by modifying the
local rotation to be quivalent to the old one)
Valid values for this flag are
<xyz | yzx | zxy | xzy | yxz | zyx>
|
|
rotateAxis(ra)
|
[angle, angle, angle]
|
|
|
rotation axis orientation (when used with
the -p flag the overall rotation is preserved
by modifying the rotation to compensate for
the axis rotation)
|
|
rotation(ro)
|
[angle, angle, angle]
|
|
|
rotateTranslation(rt)
|
[linear, linear, linear]
|
|
|
translation(t)
|
[linear, linear, linear]
|
|
|
matrix(m)
|
[float, float, float, float, float, float, float, float, float, float, float, float, float, float, float, float]
|
|
|
Sets/returns the composite transformation matrix.
*Note* the matrix is represented by 16 double
arguments that are specified in row order.
|
|
boundingBox(bb)
|
boolean
|
|
|
Returns the bounding box of an object. The values
returned are in the following order:
xmin ymin zmin xmax ymax zmax.
|
|
boundingBoxInvisible(bbi)
|
boolean
|
|
|
Returns the bounding box of an object.
This includes the bounding boxes of all invisible
children which are not included using the
boundingBox flag. The values returned are in
following order: xmin ymin zmin xmax ymax zmax.
|
|
pivots(piv)
|
[linear, linear, linear]
|
|
|
convenience method that changes both the rotate and
scale pivots simultaneously. (see -rp -sp flags for
more info)
|
|
centerPivots(cp)
|
boolean
|
|
|
Set pivot points to the center of the object's
bounding box. (see -p flag)
|
|
zeroTransformPivots(ztp)
|
boolean
|
|
|
reset pivot points and pivot translations without
changing the overall matrix by applying these values
into the translation channel.
|
|
Flag can appear in Create mode of command
|
Flag can appear in Edit mode of command
|
Flag can appear in Query mode of command
|
Flag can have multiple arguments, passed either as a tuple or a list.
|
import maya.cmds as cmds
# create object to manipulate
cmds.sphere( n='sphere1' )
# set rotation of sphere
cmds.xform( r=True, ro=(0, 90, 0) )
# change the rotate order but preserve the overall transformation
cmds.xform( p=True, roo='yzx' )