Command.Update

説明

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

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

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

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

スクリプト 構文

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