Expressions can be created using scripting commands, the Parameter.AddExpression or Parameter::AddExpression method. The SetExpr command substitutes an Expression or Expression object for the specified parameter's value by using an expression function (see Expression Reference for more information on available expression functions).
This is the above example written in Python:
from win32com.client import constants as c n = Application.ActiveSceneRoot.AddNull( "Null4Expr" ) params = n.posx.FullName+","+n.posy.FullName+","+n.posz.FullName Application.SetExpr( params, "RAND(17,2,7)" )
The thread of this example continues with accessing the expression in Python Example: Using the GetSource Command, in which the siSourceType enum is used (which is why the constants module was imported).
Applying the random expression produces a kind of a buzzing effect:
var n = Application.ActiveSceneRoot.AddNull( "Null4Expr" ); n.posx.AddExpression( "RAND(17,2,7)" ); n.posy.AddExpression( "RAND(17,2,7)" ); n.posz.AddExpression( "RAND(17,2,7)" );
The thread of this example continues with accessing the expression in JScript Example: Using the Source Property.
The following snippet is the C++ API equivalent of the previous JScript example:
// Setup Application app = Application(); Model root = app.GetActiveSceneRoot(); Null n; root.AddNull( L"Null4Expr", n ); // Get Parameters for names Parameter posx = n.GetParameter(L"posx"); Parameter posy = n.GetParameter(L"posy"); Parameter posz = n.GetParameter(L"posz"); // Set the expression posx.AddExpression( L"RAND(17,2,7)" ); posy.AddExpression( L"RAND(17,2,7)" ); posz.AddExpression( L"RAND(17,2,7)" );
The thread of this example continues with accessing the expression in C++ Example: Using the GetSource Member.
Except where otherwise noted, this work is licensed under a Creative Commons Attribution-NonCommercial-ShareAlike 3.0 Unported License