Go to: Synopsis. Return value. Related. Flags. Python examples.


drag( [objects] , [attenuation=float], [directionX=float], [directionY=float], [directionZ=float], [magnitude=float], [maxDistance=linear], [name=string], [perVertex=boolean], [position=[linear, linear, linear]], [useDirection=boolean])

Note: Strings representing object names and arguments must be separated by commas. This is not depicted in the synopsis.

drag is undoable, queryable, and editable.

Drag exerts a friction, or braking force proportional to the speed of a moving object. If direction is not enabled, the drag acts opposite to the current velocity of the object. If direction is enabled, it acts opposite to the component of the velocity in the specified direction. The force is independent of the position of the affected object.

The transform is the associated dependency node. Use connectDynamic to cause the field to affect a dynamic object.

If fields are created, this command returns the names of each of the fields. If a field was queried, the results of the query are returned. If a field was edited, the field name is returned.

If object names are provided or the active selection list is non-empty, the command creates a field for every object in the list and calls addDynamic to add it to the object. If the list is empty, the command defaults to -pos 0 0 0.

Setting the -pos flag with objects named on the command line is an error.

Return value


In query mode, return type is based on queried flag.


addDynamic, connectDynamic, particle


attenuation, directionX, directionY, directionZ, magnitude, maxDistance, name, perVertex, position, useDirection
Long name (short name) Argument types Properties
position(pos) [linear, linear, linear] queryeditmultiuse
Position in space where you want to place a field. The gravity then emanates from this position in space rather than from an object. Note that you can both use -pos (creating a field at a position) and also provide object names.
magnitude(m) float queryedit
Strength of field.
attenuation(att) float queryedit
Attentuation rate of field
maxDistance(mxd) linear queryedit
Maximum distance at which field is exerted. -1 indicates that the field has no maximum distance.
name(n) string queryedit
name of field
perVertex(pv) boolean queryedit
Per-vertex application. If this flag is set true, then each individual point (CV, particle, vertex,etc.) of the chosen object exerts an identical copy of the force field. If this flag is set to false, then the force is exerted only from the geometric center of the set of points.
directionX(dx) float queryedit
X-component of direction.
directionY(dy) float queryedit
Y-component of direction.
directionZ(dz) float queryedit
Z-component of direction
useDirection(ud) boolean queryedit
Enable/disable direction. Drag will use -dx/-dy/-dz arguments if and only if this flag is set true.

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.

Python examples

import maya.cmds as cmds

# Creates a drag field resisting in direction (0,1,0.5).
cmds.drag( name='myDrag', dx=0, dy=1.0, dz=0.5, useDirection=1 )

# Edits the acceleration value of the field myDrag
cmds.drag( 'myDrag', e=True, m=0.75 )

# Queries myDrag for its magnitude
cmds.drag( 'myDrag', q=True, m=True )