pymel.core.effects.constrain¶
- constrain(*args, **kwargs)¶
This command constrains rigid bodies to the world or other rigid bodies. In query mode, return type is based on queried flag.
Flags:
Long Name / Short Name Argument Types Properties barrier / br bool Creates a barrier constraint. This command requires one rigid bodies. damping / d float Sets the damping constant. Default value: 0.1 Range: -1000.0 to 1000.0 directionalHinge / dhi bool Creates a directional hinge constraint. This command requires two rigid bodies. The directional hinge always maintains the initial direction of its axis. hinge / hi bool Creates a hinge constraint. This command requires one or two rigid bodies. interpenetrate / i bool Allows (or disallows) the rigid bodies defined in the constrain to ipenetrate. nail / na bool Creates a nail constraint. This command requires one rigid body. name / n unicode Names the rigid constraint. orientation / o float, float, float Set initial orientation of the constraint in world space. This command is only valid with hinge and barrier constraints Default value: 0.0 0.0 0.0 pinConstraint / pin bool Creates a pin constraint. This command requires two rigid bodies. position / p float, float, float Set initial position of the constraint in world space. Default value: 0.0 0.0 0.0 for uni-constraints, midpoint of bodies for deul constraint. restLength / rl float Sets the rest length. Default value: 1.0 spring / s bool Creates a spring constraint. This command requires one or two rigidies. stiffness / st float Sets the springs stiffness constant. Default value: 5.0 Flag can have multiple arguments, passed either as a tuple or a list. Derived from mel command maya.cmds.constrain
Example:
import pymel.core as pm # "Nail" a rigid body at position ""0.0, 2.5, 0.0"" # pm.constrain( 'rigidBody1', nail=True, p=(0, 2.5, 0) ) # "Pin" two rigid bodies together at the position ""0.0, 2.5, 0.0"". # pm.constrain( 'rigidBody1', 'rigidBody2', pin=True, n='pin', p=(0, 2.5, 0) ) # "Hinge" a rigid body at the position ""0.0, 2.5, 0.0"". # pm.constrain( 'rigidBody1', hinge=True, p=(0, 2.5, 0) ) # Create a barrier for a rigid body which will not allow the rigid body # to fall below (in y by default) the plane defined by the # barrier point ""0.0, 2.5, 0.0"". # pm.constrain( 'rigidBody1', barrier=True, p=(0, 2.5, 0) ) # Add a "Spring" to a rigid body at the position ""0.0, 2.5, 0.0"" # connected on the rigid body at point ""0, 0, 0"" # pm.constrain( 'rigidBody1', spring=True, name='spring', p=(0, 2.5, 0), rl=1.0 )