pymel.core.general.xform¶
- xform(*args, **kwargs)¶
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 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 | In query mode, return type is based on queried flag.
Flags:
Long Name / Short Name Argument Types Properties absolute / a bool perform absolute transformation (default) boundingBox / bb bool Returns the bounding box of an object. The values returned are in the following order: xmin ymin zmin xmax ymax zmax. boundingBoxInvisible / bbi bool 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. centerPivots / cp bool Set pivot points to the center of the object’s bounding box. (see -p flag) centerPivotsOnComponents / cpc bool Set pivot points to the center of the component’s bounding box. (see -p flag) deletePriorHistory / dph bool If true then delete the construction history before the operation is performed. euler / eu bool modifer for -relative flag that specifies rotation values should be added to current XYZ rotation values. 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. objectSpace / os bool treat values as object-space transformation values (only works for pivots, translations, rotation, rotation axis, matrix, and bounding box flags) pivots / piv float, float, float convenience method that changes both the rotate and scale pivots simultaneously. (see -rp -sp flags for more info) preserve / p bool preserve overall transformation. used to prevent object from jumpingwhen changing pivots or rotation order. the default value is true. (used with -sp, -rp, -roo, -cp, -ra) preserveUV / puv bool When true, UV values on rotated components are projected across the rotation in 3d space. For small edits, this will freeze the world space texture mapping on the object. When false, the UV values will not change for a selected vertices. Default is false. reflection / rfl bool To move the corresponding symmetric components also. reflectionAboutBBox / rab bool Sets the position of the reflection axis at the geometry bounding box reflectionAboutOrigin / rao bool Sets the position of the reflection axis at the origin reflectionAboutX / rax bool Specifies the X=0 as reflection plane reflectionAboutY / ray bool Specifies the Y=0 as reflection plane reflectionAboutZ / raz bool Specifies the Z=0 as reflection plane reflectionTolerance / rft float Specifies the tolerance to findout the corresponding reflected components relative / r bool perform relative transformation rotateAxis / ra float, float, float rotation axis orientation (when used with the -p flag the overall rotation is preserved by modifying the rotation to compensate for the axis rotation) rotateOrder / roo unicode 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 rotatePivot / rp float, float, float rotate pivot point transformation (when used with the -p flag the overall transformation is preserved by modifying the rotation translation) rotateTranslation / rt float, float, float rotation translation rotation / ro float, float, float rotation transformation scale / s float, float, float scale transformation scalePivot / sp float, float, float scale pivot point transformation (when used with the -p flag the overall transformation is preserved by modifying the scale translation) scaleTranslation / st float, float, float scale translation shear / sh float, float, float shear transformation. The values represent the shear xy,xz,yz translation / t float, float, float translation worldSpace / ws bool (works for pivots, translations, rotation, rotation axis, matrix, and bounding box flags). Note that, when querying the scale, that this calculation is cumulative and is only valid if there are all uniform scales and no rotation. In a hierarchy with non-uniform scale and rotation, this value may not correspond entirely with the perceived global scale. worldSpaceDistance / wd bool 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. zeroTransformPivots / ztp bool reset pivot points and pivot translations without changing the overall matrix by applying these values into the translation channel. Flag can have multiple arguments, passed either as a tuple or a list. Derived from mel command maya.cmds.xform
Example:
import pymel.core as pm # create object to manipulate pm.sphere( n='sphere1' ) # Result: [nt.Transform(u'sphere1'), nt.MakeNurbSphere(u'makeNurbSphere1')] # # set rotation of sphere pm.xform( r=True, ro=(0, 90, 0) ) # change the rotate order but preserve the overall transformation pm.xform( p=True, roo='yzx' )