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

Synopsis

rigidSolver([autoTolerances=boolean], [bounciness=boolean], [cacheData=boolean], [collide=boolean], [collisionTolerance=float], [contactData=boolean], [create=boolean], [current=boolean], [deleteCache=boolean], [displayCenterOfMass=boolean], [displayConstraint=boolean], [displayVelocity=boolean], [dynamics=boolean], [friction=boolean], [interpenetrate=boolean], [interpenetrationCheck=boolean], [rigidBodies=boolean], [rigidBodyCount=boolean], [showCollision=boolean], [showInterpenetration=boolean], [solverMethod=int], [startTime=float], [state=boolean], [statistics=boolean], [stepSize=float], [velocityVectorScale=float])

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

rigidSolver is undoable, queryable, and editable.

This command sets the attributes for the rigid solver

Return value

None

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

Related

constrain, rigidBody

Flags

autoTolerances, bounciness, cacheData, collide, collisionTolerance, contactData, create, current, deleteCache, displayCenterOfMass, displayConstraint, displayVelocity, dynamics, friction, interpenetrate, interpenetrationCheck, rigidBodies, rigidBodyCount, showCollision, showInterpenetration, solverMethod, startTime, state, statistics, stepSize, velocityVectorScale
Long name (short name) Argument types Properties
create(cr) boolean create
Creates a new rigid solver.
current(cu) boolean create
Sets rigid solver as the current solver.
interpenetrationCheck(ic) boolean edit
Checks for interpenetrating rigid bodies in the scene.
interpenetrate(i) boolean queryedit
Allows the two rigid bodies listed to interpenetrate. Default: interpenetration is off for all bodies.
collide(c) boolean queryedit
Disallows the interpenetration of the two rigid bodies listed. Default: Collide is on for all bodies.
showInterpenetration(si) boolean queryedit
Displays the interpenetrating objects in a different color.
showCollision(sc) boolean queryedit
Displays the colliding objects in a different color.
autoTolerances(at) boolean queryedit
Turns the auto tolerance calculation on and off. The auto tolerances calculation will override the default or user defined values of the step size and collision tolerance value that is calculated based on the objects in the scene. Default: 0 (off)
stepSize(s) float queryedit
Sets the solvers step size. This is the maximum size of a single step the solver will take at one time. Range: 0.0004 - 0.100 Default: 0.0333
collisionTolerance(ct) float queryedit
Sets the collision tolerance. This is the error at which two objects are considered to have collided. Range: 0.0005 - 1.000 Default: 0.02
friction(f) boolean queryedit
Turns friction on and off for the an the objects in the simulation. Default value: on
bounciness(b) boolean queryedit
Turns bounciness on and off for the an the objects in the simulation. Default value: on
dynamics(d) boolean queryedit
Turns dynamics on and off for the an the objects in the simulation. Default value: on
solverMethod(sm) int queryedit
Sets the solver method. The choices are 0 | 1 | 2. 0 = Euler (fastest/least acurate), 1 = Runge-Kutta ( slower/more acurate), 2 = adaptive Runge-Kutta (slowest/most acurate). The default is 2 (adaptive Runge-Kutta)
displayVelocity(dv) boolean queryedit
Displays the velocity vectors. Default value: off
displayCenterOfMass(dcm) boolean queryedit
Displays the center of mass icon. Default value: on
velocityVectorScale(vs) float queryedit
scales the velocity vector display. Default value: 1.0
displayConstraint(dc) boolean queryedit
Displays the constraint vectors. Default value: on
cacheData(cd) boolean queryedit
Turns the cache on fall all rigid bodies in the system. Default value: off
deleteCache(deleteCache) boolean queryedit
Deletes the cache for all rigid bodies in the system.
startTime(stt) float createqueryedit
Sets the start time for the solver.
state(st) boolean queryedit
Turns the rigid solver on or off.
contactData(ctd) boolean queryedit
Turns the contact data information on/off for all rigid bodies. Default value: off
statistics(sta) boolean queryedit
Turns the statistic information on/off for all rigid bodies. Default value: off
rigidBodies(rb) boolean query
Returns a list of rigid bodies in the solver.
rigidBodyCount(rbc) boolean query
Returns the number of rigid bodies in the solver.

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

# Set the playback time range to [1, 100]
cmds.playbackOptions(min=1, max=100)
# Create a poly cube named "floor"
cmds.polyCube(w=10, h=0.10, d=10, sx=10, sy=1, sz=10, ax=(0, 1, 0), name='floor')
# Create a poly sphere named "ball", then move it to 0 9 0
cmds.polySphere(r=1, sx=20, sy=20, ax=(0, 1, 0), name='ball')
cmds.move(0, 9.0, 0, r=True)
# Create a new rigid body solver
cmds.rigidSolver(create=True, name='rigidSolver1')
# Set the floor to passive rigid body
cmds.select('floor')
cmds.rigidBody(passive=True, solver='rigidSolver1', name='passiveRigidBody')
# Set the ball to active rigid body
cmds.select('ball')
cmds.rigidBody(active=True, solver='rigidSolver1', name='activeRigidBody')
# Add a gravity field, and connect it to ball
cmds.gravity(pos=(0, 0, 0), m=9.8, dx=0, dy=-1, dz=0, name='gravityField')
cmds.connectDynamic('activeRigidBody', f='gravityField')
# Play
cmds.play(w=True)

# Set the rigid solver to allow the ball to interpenetrate the floor, then replay
cmds.currentTime(1, e=True)
cmds.rigidSolver('passiveRigidBody', 'activeRigidBody', 'rigidSolver1', e=True, interpenetrate=True)
cmds.play(w=True)

# Set the rigid solver to disallow the ball to interpenetrate the floor, replay
cmds.currentTime(1, e=True)
cmds.rigidSolver('passiveRigidBody', 'activeRigidBody', 'rigidSolver1', e=True, collide=True)
cmds.play(w=True)

# Set the rigid solver to turn off the bounciness, replay
cmds.currentTime(1, e=True)
cmds.rigidSolver('rigidSolver1', e=True, bounciness=False)
cmds.play(w=True)