Go to: Synopsis. Return value. Flags. Python examples.
expression([alwaysEvaluate=uint], [name=string], [object=string], [safe=string], [shortNames=boolean], [string=string], [timeDependent=string], [unitConversion=string])
Note: Strings representing object names and arguments must be separated by commas. This is not depicted in the synopsis.
expression is undoable, queryable, and editable.
This command describes an expression that belongs to the current scene.
The expression is a block of code of unlimited length with a C-like syntax that can perform
conversions, mathematical operations, and logical decision making on
any numeric attribute(s) in the scene. One expression can read and
alter any number of numeric attributes. Theoretically, every expression
in a scene can be combined into one long expression, but it is
recommended that they are separated for ease of use and editing, as well
as efficiency.
If this command is being sent by the command line or in a script, then
the user should be sure to embed escaped newlines (\n), tabs (\t) for
clarity when reading them in the expression editor. Also, quotes in an
expression must be escaped (\") so that they are not confused by the system
as the end of your string. When using the expression editor, these
characters are escaped for you unless they are already within quotes.
Note, expressions that alter or use per-particle attributes of a particle
shape should use the 'dynExpression' command.
string | The name of the expression |
In query mode, return type is based on queried flag.
alwaysEvaluate, name, object, safe, shortNames, string, timeDependent, unitConversion
Long name (short name) |
Argument types |
Properties |
|
alwaysEvaluate(ae)
|
uint
|
|
|
If this is TRUE (the default), then the expression will be evaluated
whenever time changes regardless of whether the other inputs have
changed, and an output is requested. If it is FALSE, then the expression
will only be evaluated if one or more of the inputs changes and an output is requested. Note, if
'time' or 'frame' are inputs, then the expression will act as if this
was set to TRUE.
|
|
name(n)
|
string
|
|
|
Sets the name of the dependency graph node to use for the expression
|
|
object(o)
|
string
|
|
|
Sets the "default" object for the expression. This allows the
expression writer to not type the object name for frequently-used
objects. See the examples below.
|
|
safe(sf)
|
string
|
|
|
Returns true if no potential side effect can occurs running that expression.
Safe expression will be optimized to evaluate only when needed even if flagged alwaysEvaluate.
|
|
shortNames(sn)
|
boolean
|
|
|
When used with the -q/query flag, tells the command to return the expression with attribute names as short as possible.
The default is to return the FULL attribute name, regardless of how the user entered
it into the expression, including the object names. With this flag set, attribute names
are returned as their short versions, and any attribute that belongs to the default object,
if there is one specified, will not display the object's name.
|
|
string(s)
|
string
|
|
|
Set the expression string
|
|
timeDependent(td)
|
string
|
|
|
Returns true if expression refer to 'time' or 'frame' keywords. Those reference force the connection to time.
If the expression is flagged as safe and not time dependend, then they will always evaluate on depend, even if alwaysEvaluate is on.
Otherwise time change will dirty the expression.
|
|
unitConversion(uc)
|
string
|
|
|
Insert specified unit conversion nodes at creation: "all", "none,"
or "angularOnly." Default is "all." For angularOnly, will insert unit
conversion nodes only for angular attributes (allowing degrees-to-radians
conversion). This is for performance tuning.
If queried, returns the option used when the expression was created
or last edited.
|
|
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.
|
import maya.cmds as cmds
cmds.expression( s='a.translateX = b.translateX * sin(c.translateX)' )
cmds.expression( o='ball', s='tx = sin(time);' )