XSIApplication.CreateCommand

説明

新しいカスタムコマンドを Softimage に定義します。新しいCommandオブジェクトが戻され、それをコマンドの定義に使用できます。この定義には、コマンドが実装される場所(Command.FileName)とコマンドが使用する引数(ArgumentCollection.Add)が含まれます。コマンドを実際に softimage に登録するには、コマンドの定義が完了した後で、XSIApplication.AddCommandメソッドを呼びだす必要があります。

注:カスタムコマンドを作成するには、カスタムコマンドを自己インストールプラグインの一部として定義する方法をお勧めします(PluginRegistrar.RegisterCommand を参照)。PluginRegistrar.RegisterCommandを参照してください。

スクリプト 構文

oReturn = XSIApplication.CreateCommand( Name, [Category] );

戻り値

Command

パラメータ

パラメータ タイプ 詳細
Name String 新しいコマンドを認識するユニークな名前

注:コマンドは、この名前のコマンドがすでに存在する場合に作成されません。
Category siCommandCategory ユーザインターフェイスでコマンドが表示される場所(Softimage の標準メニューでの場所)。説明は、siCommandCategoryの説明を参照してください。

JScript の例

//-------------------------------------------------------------------
// This example defines & runs a custom command examples
//
//
// README: Copy and paste the example into the script editor 
// and run (F5).
//
// The command will be listed in the customize toolbar dialog in
// the 'Custom Commands' group.
//-------------------------------------------------------------------
function ExCreateCommandDemo()
{
        Application.RemoveCommand("XYZ");
        var cmd = Application.CreateCommand("XYZ");
        cmd.Description = "XYZ custom command.";
        cmd.ScriptingName = "XYZ";
        cmd.Handler = "OnXYZCommand";
        cmd.FileName = filename;
        cmd.Language = "JScript";
        cmd.Arguments.Add( "argument0" );
        Application.AddCommand( cmd );
        // call command
        XYZ( "this is a string argument" );
}
// This sample defines the XYZ command's function handler"
function OnXYZCommand( in_arg )
{
        LogMessage( "Executing XYZ command with the argument: " + in_arg );
}
//--------------------------------------------------------------------
// Code to bootstrap example into system
//--------------------------------------------------------------------
function ExampleSourceCode()
{
        return "//XSISDK Doc Example\n" +
                OnXYZCommand.toString();
}
// if we are running from script editor save code to 
// examples addon folder in the user's directory.
if (GetUserPref("ScriptingSessionActive"))
{
        var ex_name             = "ExXSIApplicationCreateCommand";
        var ex_subfolder        = "Scripts";
        var ex_folder           = "XSISDKDocExamples";
        var ex_langsuffix       = ".js";
        CreateAddonDirectories( InstallationPath(siUserPath), ex_folder );
        var fso = XSIFactory.CreateActiveXObject("Scripting.FileSystemObject");
        var filename = XSIUtils.BuildPath( 
                InstallationPath(siUserAddonPath), 
                ex_folder,
                "Data",
                ex_subfolder,
                ex_name+ex_langsuffix );
        if (!fso.FileExists(filename))
        {
                var f = fso.CreateTextFile ( filename );
                f.write( ExampleSourceCode() );
                f.close();
        }
        // run demo
        ExCreateCommandDemo();
}

関連項目

XSIApplication.AddCommand Command ArgumentCollection Argument