ExecuteScriptCommand (XSIApplication)

Description

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.

Scripting Syntax

XSIApplication.ExecuteScriptCommand( Name, [Arguments] )

C# Syntax

Object XSIApplication.ExecuteScriptCommand( String in_bzScriptName, Object in_vsa );

Parameters

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.

Return Value

Variant (return value from script command)

Examples

1. VBScript Example

'
'  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

2. VBScript Example

'
'  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" )

3. Python Example

#
# 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")

4. PerlScript Example

#
# PerlScript Example
#
my @args, $retval;

@args = ( "Cone", "MeshSurface", "", "" );

$retval = $Application->ExecuteScriptCommand("CreatePrim", \@args );

@args = ( $retval, "", "", siModal );

$retval = $Application->ExecuteScriptCommand("InspectObj", \@args );

5. JScript Example

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

See Also

Application.ExecuteScript

Command



Autodesk Softimage v7.5