Command.Update

説明

現在のコマンド定義に対する変更をコミットします。それ以降のコマンドの呼び出しは、新しいコマンド定義と一致する必要があります。これにより、XSIApplication.AddCommandを使用してコマンドを追加した後に、コマンドの動作とシグネチャを変更できます。

あるいは、コマンドを(XSIApplication.RemoveCommandで)完全に削除して一から定義し直す方法もあります。

警告:コマンドの定義を更新するとそのコマンドを使用するスクリプトが正しく機能しなくなる可能性もあるため、この場合は特に注意が必要です。

注:組み込みコマンドの定義は更新できません。

C#構文

Command.Update();

スクリプト構文

Command.Update();

JScript の例

/* 

	This example demonstrates how to update a command definition

*/

var cmd = Application.CreateCommand("CustomCmd") ;

cmd.ScriptingName = "CustomCmd" ;

cmd.Handler = "CmdImpl" ; 

// Although we define the command with jscript

// the embedded code is vbscript!

cmd.Language = "JScript" ; 

cmd.Code = CmdImpl.toString() ;		   

Application.AddCommand( cmd ) ;

// Now the command has been added to Softimage

// but our definition doesn't match CmdImpl, 

// which expects an argument.

// If we try to call the custom command

// we see that things are not working properly

try

{

	// Logs: CmdImpl called: undefined

	CustomCmd(); 

	// Causes error "Wrong number of arguments..."

	CustomCmd(1); 

}

catch( e )

{

}

// Now fix the command

cmd = Commands.Item("CustomCmd");

// Add a new argument with a default value of 1.

cmd.Arguments.Add("Arg1", siArgumentInput, 1);

// Commit changes.  Please note that all the changes would be local to

// cmd if Update is not called.

cmd.Update();

//Logs: CmdImpl called: 1

CustomCmd(); 

//Logs: CmdImpl called: 24

CustomCmd(24); 

// Cleanup

Application.RemoveCommand( "CustomCmd" ) ;

// This is the implementation of the custom command		

function CmdImpl( arg1 )

{

	Logmessage( "CmdImpl called: " + arg1 ) ;

	return arg1 ;

}

関連項目

Command.GetFlag Command.SetFlag Command.Arguments Command.Handler ArgumentCollection.Add ArgumentCollection.Remove