XSIApplication.ExecuteScriptCommand

XSIApplication.ExecuteScriptCommand

説明

Softimage Command を実行します。このメソッドを使用すると、組み込みコマンドおよびカスタムコマンドを実行できます。メソッドの名前では分かりづらいですが、このメソッドではコンパイル済みのコマンドも実行できます。そのため、C++ API における同等のコマンドは Application::ExecuteCommand という名前に変更されています。

Softimage コマンドは直接呼び出すことができるため、通常のスクリプトではこのメソッドは必要ありません。したがって、このメソッドは、COM で記述されている C++アプリケーションで Softimage コマンドを呼び出せるようにするというのが主な用途になります。ただし、C++ API が開発されたことに伴い、このメソッドはめったに使用されなくなっています。

スクリプトでは、このメソッドは戻り値を通じてのみ引数を戻すことができます。C++ では、コマンドの引数は SafeArray を含むバリアントによって提供されます。出力引数は参照によって渡される必要があります。これは、バリアントの引数タイプを VT_VARIANT | VT_BYREF に設定することで処理できます。

C#構文

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

スクリプト構文

oVariant = XSIApplication.ExecuteScriptCommand( Name, [Arguments] );

戻り値

Variant(スクリプトコマンドからの戻り値)

パラメータ

パラメータ タイプ 説明
Name String コマンドのスクリプト名
Arguments VariantArray 必要なすべてのスクリプトコマンド引数の配列。参照渡しされる出力引数を含みます。C++ では、引数はバリアントの SafeArray を含むバリアントとして実装されます。

1. VBScript の例

'

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

'

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

#

# 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. JScript の例

/*

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

}

関連項目

Application.ExecuteScript Command