XSIApplication.CreateCommand

XSIApplication.CreateCommand

説明

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

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

C#構文

Command XSIApplication.CreateCommand( String in_name, siCommandCategory in_category );

スクリプト構文

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