pymel.core.general.rotate¶
- rotate(obj, *args, **kwargs)¶
The rotate command is used to change the rotation of geometric objects. The rotation values are specified as Euler angles (rx, ry, rz). The values are interpreted based on the current working unit for Angular measurements. Most often this is degrees. The default behaviour, when no objects or flags are passed, is to do a absolute rotate on each currently selected object in the world space.
- Modifications:
allows any iterable object to be passed as first argument:
rotate("pSphere1", [0,1,2])
NOTE: this command also reorders the argument order to be more intuitive, with the object first
Flags:
Long Name / Short Name Argument Types Properties absolute / a bool Perform an absolute operation. centerPivot / cp bool Let the pivot be the center of the bounding box of all objects constrainAlongNormal / xn bool When true, transform constraints are applied along the vertex normal first and only use the closest point when no intersection is found along the normal. deletePriorHistory / dph bool If true then delete the history prior to the current operation. euler / eu bool Modifer for -relative flag that specifies rotation values should be added to current XYZ rotation values. forceOrderXYZ / fo bool When true, euler rotation value will be understood in XYZ rotation order not per transform node basis. objectCenterPivot / ocp bool Let the pivot be the center of the bounding box of each object objectSpace / os bool Perform rotation about object-space axis. orientAxes / oa float, float, float pivot / p float, float, float Define the pivot point for the transformation preserveChildPosition / pcp bool When true, transforming an object will apply an opposite transform to its child transform to keep them at the same world-space position. Default is false. preserveGeometryPosition / pgp bool When true, transforming an object will apply an opposite transform to its geometry points to keep them at the same world-space position. Default is false. 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 a operation relative to the object’s current position rotateX / x bool Rotate in X direction rotateXY / xy bool Rotate in X and Y direction rotateXYZ / xyz bool Rotate in all directions (default) rotateXZ / xz bool Rotate in X and Z direction rotateY / y bool Rotate in Y direction rotateYZ / yz bool Rotate in Y and Z direction rotateZ / z bool Rotate in Z direction symNegative / smn bool When set the component transformation is flipped so it is relative to the negative side of the symmetry plane. The default (no flag) is to transform components relative to the positive side of the symmetry plane. translate / t bool When true, the command will modify the node’s translate attribute instead of its rotateTranslate attribute, when rotating around a pivot other than the object’s own rotate pivot. worldSpace / ws bool Perform rotation about global world-space axis. xformConstraint / xc unicode Apply a transform constraint to moving components. none - no constraintsurface - constrain components to the surfaceedge - constrain components to surface edgeslive - constraint components to the live surfaceFlag can have multiple arguments, passed either as a tuple or a list. Derived from mel command maya.cmds.rotate
Example:
import pymel.core as pm # create a circle and grouped cone to rotate; pm.circle( n='circle1' ) # Result: [nt.Transform(u'circle1'), nt.MakeNurbCircle(u'makeNurbCircle1')] # pm.cone( ax=(0, 1, 0), n='cone1' ) # Result: [nt.Transform(u'cone1'), nt.MakeNurbCone(u'makeNurbCone1')] # pm.group( 'cone1', n='group1' ) # Result: nt.Transform(u'group1') # # rotate the active objects 45 degrees about the world space X axis # centered at each object's rotate pivot point. pm.select( 'cone1' ) pm.rotate( '45deg', 0, 0, r=True ) # Set the rotation values for group1 to (90, 0, 0). This is # equivalent to: # pm.setAttr('group1.rx',90) # pm.setAttr('group1.ry',0) # pm.setAttr('group1.rz',0) pm.rotate( '90deg', 0, 0, 'group1' ) # rotate the circle 180 degrees about its local space Y axis # centered at the rotate pivot point 1 0 0. pm.rotate( 0, '180deg', 0, 'circle1', pivot=(1, 0, 0) )