globalVars Structure
The
globalVars struct provides methods to collect, create, test and remove global variables.
These methods are available in
3ds Max 2008 and higher.
They were previously available in the
Avguard Extensions.
Methods:
globalVars.get <global var name>
Returns the value of the specified global variable.
The argument must be a MAXScript name value.
The global variable name must exist, otherwise a runtime error will be generated.
globalVars.set <global var name> <value>
Sets the value of the specified global variable.
The argument must be a MAXScript name value.
The global variable name must exist, otherwise a runtime error will be generated.
FOR EXAMPLE:
|
globalVars.get #dontknow --try to get an undeclared variable
-- Runtime error: Specified global variable does not exist: #dontknow
global dontknow = "Now I Know" --declare the variable
--> "Now I Know"
globalVars.get #dontknow --now we can get and set the value
--> "Now I Know"
globalVars.set #dontknow "I Still Know What You Did Last Siggraph"
--> "I Still Know What You Did Last Siggraph"
globalVars.set #reallydontknow "MAXScript"
-- Runtime error: Specified global variable does not exist: #reallydontknow
|
globalVars.gather [filter:<function>]
Returns an array of all global variable names declared in the current session.
NEW in 3ds Max 2017: The optional filter parameter is a two argument function that returns either true
or false. The first argument is the global variable's name, and the second argument
is the global variable's value. If the filter function returns true, the variable
is gathered.
FOR EXAMPLE:
|
ro_controls = globalvars.gather filter:(fn filterfn n v = (iskindof v rolloutcontrol))
|
globalVars.isglobal <var name>
Returns
true if the specified variable name is global, false if it is not global or not declared.
EXAMPLE (CONTINUED FROM PREVIOUS EXAMPLE)
|
globalVars.isglobal #dontknow --declared in previous example
--> true
globalVars.isglobal #reallydontknow --still notdeclared
--> false
|
globalVars.getTypeTag <var name>
Returns the type of the global variable as an integer or name value.
The specified global variable name must exist.
This method is mainly for internal testing.
The primary type tag values are:
10 - general global
11 - constant global
12 - system global
EXAMPLE (CONTINUED FROM PREVIOUS EXAMPLE)
|
globalVars.getTypeTag #dontknow --declared in previous example
--> 10P
globalVars. getTypeTag #reallydontknow --variable does not exist
-- Runtime error: Specified global variable does not exist: #reallydontknow
|
globalVars.getValueTag <var name>
Returns the type of the value in the global variable as an integer or name value.
The specified global variable name must exist.
This method is mainly for internal testing.
Each value type has its own tag value.
FOR EXAMPLE:
|
global aString = "I Know Kung-Fu!"
--> "I Know Kung-Fu!"
global aFloat = 123.456
--> 123.456
global anInt = 42
--> 42
global aMatrix = matrix3 1
--> (matrix3 [1,0,0] [0,1,0] [0,0,1] [0,0,0])
globalVars.getValueTag #aString
--> #String
globalVars.getValueTag #aFloat
--> #float
globalVars.getValueTag #anInt
--> #integer
globalVars.getValueTag #aMatrix
--> #Matrix3
globalVars.getValueTag #reallydontknow
-- Runtime error: Specified global variable does not exist: #reallydontknow
|
globalVars.remove <var name>
Removes the specified variable name from the list of global variables.
WARNING!
|
Use With Caution!
|