Executes a Softimage Command. This
method can be used to execute any built-in or custom command. The
name of the method is misleading, because compiled custom commands
can also be executed via this method. For this reason the
equivalent method in the C++ API has been renamed to
Application::ExecuteCommand.
Typically this method is not necessary from scripting because
Softimage commands can be invoked directly. So the main purpose of
this method is to enable C++ applications written with COM to be
able to call Softimage commands. With the advent of the C++ API it
is rarely necessary to use this method.
This method, in scripting, can only return arguments via the return
value. In C++ the arguments are supplied to the command via a
variant containing a SafeArray. Output arguments must be passed by
reference; this is done by setting the variant's argument type to
VT_VARIANT | VT_BYREF.
Object XSIApplication.ExecuteScriptCommand( String in_bzScriptName, Object in_vsa ); |
oVariant = XSIApplication.ExecuteScriptCommand( Name, [Arguments] ); |
Variant (return value from script command)
| Parameter | Type | Description |
|---|---|---|
| Name | String | Command's script name |
| Arguments | Array of Variants | Array of all required script command arguments, including output arguments passed by reference. In C++ the argument is implemented as a variant containing a SafeArray of variants. |
'
' This example illustrates how to create a image clip and inspect it using
' a modal property page.
'
Dim clip, args
args = Array(Application.InstallationPath( siFactoryPath ) & "\Data\XSI_SAMPLES\Pictures\A_Green_Suit.JPG")
set clip = ExecuteScriptCommand( "CreateImageClip", args )
On Error Resume Next
ExecuteScriptCommand "InspectObj", Array( clip,,,siModal)
if Err.Number = siErrCancelled then
Application.LogMessage "command cancelled"
end if
On Error Goto 0
|
' ' This example shows different ways to ' call a Softimage command from vbscript ' ' Normal method. This method will not work ' on Netview GetPrim "Null" ' This method will not work on Netview ' (because there is no global Application object) Application.GetPrim "Null" ' This is the method that works in a Netview ' script. The oXsi object can be cached. set oXsi = CreateObject( "XSI.Application" ) set oXsi = oXsi.Application oXsi.GetPrim "Null" ' Because of the convenience of the previous methods, ' this mechanism is not recommended from vbscript. ' it is most useful for COM C++ plug-ins Application.ExecuteScriptCommand "GetPrim", Array( "Null" ) |
#
# Python Example
#
args = ["Cone","MeshSurface","",""]
retval = Application.ExecuteScriptCommand( "CreatePrim", args )
args = [retval,"","", 4] # siModal=4
try:
Application.ExecuteScriptCommand( "InspectObj", args )
except:
Application.LogMessage("command cancelled")
|
/*
JScript Example
*/
var obj,i=0;
var aArgs1 = new Array();
i=0;
aArgs1[i++] = "Cone";
aArgs1[i++] = "MeshSurface";
aArgs1[i++] = null;
aArgs1[i++] = null;
obj = ExecuteScriptCommand("CreatePrim", aArgs1 );
var aArgs2 = new Array();
i=0;
aArgs2[i++] = obj
aArgs2[i++] = null;
aArgs2[i++] = null;
aArgs2[i++] = siModal;
try {
ExecuteScriptCommand("InspectObj", aArgs2 );
}
catch (e) {
LogMessage("command cancelled");
}
|