Argument

Object Hierarchy | 関連する C++クラス:Argument

継承

SIObject

Arguments

導入

v2.0

詳細

Argument オブジェクトは、SoftimageCommand の引数(またはパラメータ)です。たとえば、DeleteObjコマンドは 1 つの引数("InputObj")を取ります。ArgumentCollection.AddArgumentCollection.AddWithHandler、またはArgumentCollection.AddObjectArgumentメソッドを使用して、カスタムコマンドに引数を追加します。

Argument オブジェクトは Softimage で 3 つの状況で使用されます。

- コマンドの作成時にコマンド引数を定義します。コマンドが作成されると、引数が Command オブジェクトに追加され、その引数のデフォルト値を定義するために Argument.Value が設定されます。デフォルト値は変動しません。コマンドを呼び出す際に値を指定しない場合はデフォルト値が引数として使用されます。

- コマンドを呼び出す際に引数値を指定します。コマンドが呼び出されると、コマンドに渡される引数値の指定にArgument.Valueが使用されます。また、ArgumentHandlerを定義すると、選択対象やシーンの内容に基づいてデフォルト値を取得できます。ArgumentCollection.AddWithHandlerメソッドを使用し、ハンドラを持つ引数を作成できます。

- カスタムコマンドをインストールした後に、カスタムコマンドの定義を変更できます。この場合は、Argument.Valueによりコマンドの新しいデフォルト値を指定できるほか、引数の追加と削除を実行できます。その後、変更を反映するためにCommand.Updateが呼び出されます。

カスタムコマンドの作成手順については、Commandオブジェクトを参照してください。

メソッド

IsClassOfオペレータ IsEqualToオペレータ    
       

プロパティ

Application Categories Flags FullNameオペレータ
Handler Help Nameオペレータ NestedObjects
Origin OriginPath Parent Typeオペレータ
Value      
       

1. JScript の例

/* ------------------------------------------------------------------------------

	This JScript example demonstrates how to create a command with

	arguments and then how to pass values to the command when executing it.

------------------------------------------------------------------------------ */

//  Start off with a clean slate

Application.RemoveCommand( "SillyPutty" );

//  Get the user path and use it to build the filename + path

sFileName = InstallationPath( siUserPath ) + "\\Data\\Scripts\\MySillyPutty.js";

//  Create the script on disk

var fso = new ActiveXObject( "Scripting.FileSystemObject" );

var fHWFile = fso.CreateTextFile( sFileName );

fHWFile.WriteLine( "function OnSillyPutty( gooey, mute )" );

fHWFile.WriteLine( "{" );

fHWFile.WriteLine( "\tLogMessage( \"SillyPutty is working!\" );" );

fHWFile.WriteLine( "\tLogMessage( gooey );" );

fHWFile.WriteLine( "\tLogMessage( mute );" );

fHWFile.WriteLine( "}" );

fHWFile.Close();

//  Create the custom command

var oCmd = CreateCommand( "SillyPutty", siNoCategory );

oCmd.Description = "Stretches and bends until it reaches the breaking point.";

oCmd.ScriptingName = "SillyPutty";

oCmd.Handler = "OnSillyPutty";

oCmd.FileName = sFileName;

oCmd.Language = "JScript";

//  Add some arguments

var oArgs = oCmd.Arguments;

oArgs.Add( "Gooeyness", siArgumentInput, 24.0, siDouble );

oArgs.Add( "Mute", siArgumentInput, false, siBool );

//  Register the new command

AddCommand( oCmd );

//  Populate the arguments and run the command

var oRunCmd = Application.Commands( "SillyPutty" );

oRunCmd.Arguments(0).Value = 50.0;

oRunCmd.Arguments(1).Value = true;

oRunCmd.Execute();

/* ------------------------------------------------------------------------------

	Output of above command:

	INFO : "SillyPutty is working!"

	INFO : "50"

	INFO : "True"

	SillyPutty(50, true, null);

------------------------------------------------------------------------------ */

2. VBScript の例

'vbscript Custom Command Demo

'

'This script demontrates the Softimage support for creating a custom command and handling its

'arguments.

'

'This example uses an embedded command.

'When you run this script the following results will be logged in the script history:

'	INFO : "Installing example command found in c:/temp/CmdDemo.vbs"

'	INFO : "Default arguments for command are : DefaultString 2.2"

'	INFO : "ExampleCommand is now installed"

'	INFO : "ExampleCommand called - DefaultString 2.2"

'	INFO : "ExampleCommand called - Another string 1.1"

dim cmd

'Remove any existing earlier registrations of this command

if ( typename( Application.Commands( "ExampleCommand" ) ) = "Command" ) then

	Application.RemoveCommand "ExampleCommand"

end if

set cmd = Application.CreateCommand("ExampleCommand", siNoCategory)

cmd.Description = "Example custom command"

cmd.ScriptingName = "ExampleCommand"

cmd.Handler = "OnExampleCommand"

cmd.Code = _

	"function OnExampleCommand( StringArg, DblArg ) " & vbCrLf & _

	"     'Show the arguments we recieved" & vbCrLf & _

	"     LogMessage ""ExampleCommand called - "" & StringArg & "" "" & DblArg" & vtCrLf & _

	"     'Return this value" & vbCrLf & _

	"     OnExampleCommand = 55 " & vbCrLf & _

	"end function"

cmd.Language = "VBScript"

'Command is function, not a sub

cmd.ReturnValue = true									

cmd.Arguments.Add "StringArg", siArgumentInput, "DefaultString"

cmd.Arguments.Add "DblArg", siArgumentInput, 2.2

logmessage "Default arguments for command are : " & cmd.Arguments(0).Value & " " & cmd.Arguments(1).Value

Application.AddCommand cmd

logmessage "ExampleCommand is now installed"

'Now that the command is installed we can look it up and execute it

set cmdlookup = Application.Commands("ExampleCommand")

'This will execute it with default values

cmdlookup.execute

'Use these specific values

cmdlookup.arguments(0).Value = "Another string"

cmdlookup.arguments(1).Value = 1.1

cmdlookup.execute

3. VBScript の例

'VBScript example

set args = Application.Commands("Twist").Arguments

for each a in args

	LogString = a.Name & ":"

	if a.Flags = siArgumentInput or a.Flags = siArgumentInputOutput then

		LogString = LogString & CStr(a.Value)

	end if

	LogMessage LogString

next