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"); } |