The spring command can do any of the following:* create a new spring object (shape plus transform). The shape contains springs between the points (particles, cvs, etc.) of the objects selected or listed on the command line.* create new springs and add them to an existing spring object* edit or query certain attributes of an existing spring objectOne “spring object” may have hundreds or even thousands of individual springs. Certain attributes of the spring object specify exactly where the springs are attached to which other objects.Springs may be attached to the following: particles, vertices of soft bodies, CVs or edit points of curves or surfaces, vertices of polygonal objects, and points of lattices. In the case where one endpoint of a spring is non-dynamic (a CV, edit point, etc.), the spring does not affect its motion, but the motion of the point affects the spring. A spring will be created only if at least one of the endpoints is dynamic: for example, a spring will never be created between two CVs. A single spring object can hold springs which are incident to any number of other objects.The spring has creation-only flags and editable flags. Creation-only flags (minDistance, maxDistance, add, exclusive, all, wireframe, walklength, checkExisting) can be used only when creating new springs (including adding springs to existing spring object). Editable flags modify attributes of an existing spring object.If a spring object is created, this command returns the names of the shape and transform. If a spring object is queried, the command returns the results of the query.
Long name (short name) | Argument Types | Properties | |
---|---|---|---|
addSprings (add) | bool | ||
|
|||
allPoints (all) | bool | ||
|
|||
count (ct) | bool | ||
Return the number of springs in the shape. Query-only. We maintain this flag only for compatibility with earlier versions of Maya. To get the count of springs, it is much faster and simpler to use the spring shape’s count attribute: getAttr shapeName.count. |
|||
damp (dmp) | float | ||
damping (d) | float | ||
|
|||
dampingPS (dPS) | float | ||
Damping factor for the springs created in the spring object. This will initialize all the entries in dampingPS to the specified value. In both the flag and the attribute name, “PS” stands for “per-spring.” (Default = 0.2 ) |
|||
endForceWeight (efw) | float | ||
|
|||
exclusive (exc) | bool | ||
|
|||
length (l) | float | ||
|
|||
maxDistance (mxd) | float | ||
|
|||
minDistance (mnd) | float | ||
|
|||
minMax (mm) | bool | ||
If True, sets the mode of the spring application to Min/Max. This will add springs between all points from the specified point groups that are between the minimum and maximum distance values set with min and max. (Default is False.) Note: This gets automatically set if either the min or max flags are used. |
|||
name (n) | unicode | ||
|
|||
noDuplicate (nd) | bool | ||
Check for existing springs and don’t add a new spring between two points already connected by a spring in the same object. Only the object the command is working on is checked. This flag is relevant only when using -add. (Default = false)Flag can appear in Create mode of commandFlag can have multiple arguments, passed either as a tuple or a list. |
|||
restLength (rl) | float | ||
|
|||
restLengthPS (rPS) | float | ||
Per-spring rest length for the new springs. This will initialize all the entries in restLengthPS to the specified value. If this flag is not thrown, each rest length will be initialized to the distance between the two points at the time the spring is created (i.e., the initial length of the spring). When playing back, springs can use either their per-spring or per-object rest length. See the -rl and -urp flags. In both the flag and the attribute name, “PS” stands for “per- spring.” |
|||
startForceWeight (sfw) | float | ||
|
|||
stiffness (s) | float | ||
|
|||
stiffnessPS (sPS) | float | ||
Stiffness of the springs created in the spring object. This will initialize all the entries in stiffnessPS to the specified value. In both the flag and the attribute name, “PS” stands for “per-spring.” (Default = 1.0 ) |
|||
strength (str) | float | ||
useDampingPS (udp) | bool | ||
Specifies whether to use dampingPS (per spring damping). If set to false, the per object damping attribute value will be used. This flag simply sets the useDampingPS attribute of the spring shape. In both the flag and the attribute name, “PS” stands for “per-spring.” (Default = false ) |
|||
useRestLengthPS (urp) | bool | ||
Specifies whether to use restLengthPS (per spring restLength). If set to false, the per object restLength attribute value will be used. This flag simply sets the useRestLengthPS attribute of the spring shape. In both the flag and the attribute name, “PS” stands for “per-spring.” (Default = false ) |
|||
useStiffnessPS (usp) | bool | ||
Specifies whether to use stiffnessPS (per spring stiffness). If set to false, the per object stiffness attribute value will be used. This flag simply sets the useStiffnessPS attribute of the spring shape. In both the flag and the attribute name, “PS” stands for “per-spring.” (Default = false ) |
|||
walkLength (wl) | int | ||
This flag is valid only when doing wireframe creation. It will create springs between pairs of points connected by the specified number of edges. For example, if walk length is 2, each pair of points separated by no more than 2 edges will get a spring. Walk length measures the distance between pairs of vertices just like the number of blocks measures the distance between two intersections in a city. |
|||
wireframe (wf) | bool | ||
If True, sets the mode of the spring application to Wireframe. This is valid only for springs created on a soft body. It will add springs along all edges connecting the adjacent points (vertices or CV’s) of curves and surfaces. (Default is False.) |
Derived from mel command maya.cmds.spring
Example:
import pymel.core as pm
import maya.cmds as cmds
pm.spring( 'particle1', s=1.5, d=.3, mnd=0, mxd=5, n='spring1' )
# Creates a spring object named spring1 with a strength of 1.5 and a
# damping factor of 0.3 containing a spring between every pair of points in
# particle1 that are within 0.0 and 5.0 units apart (except those already
# connected by a spring).
pm.spring( 'particle1', 'spring1', add=True, mnd=0, mxd=5 )
# Creates between every pair of points in particle1 that are within 0.0
# and 5.0 units apart (except those already connected by a spring), and adds
# them to the existing spring object spring1.
pm.spring( 'particle1', 'spring1', add=True, mnd=0, mxd=5, ce='false' )
# Same as the previous example, but will not check for existing springs
# in order to avoid duplication, and will create a new spring even between
# pairs of particles which already have one.
pm.spring( 'particle1', 'particle2', exclusive=1, all=1 )
# Creates a spring between every pair of particles such that one
# particle is in particle1 and the other is in particle2. Does not create
# any springs between pairs in the same object. Does not create springs
# between particles already connected by a spring.