LoadPlugin (XSIApplication)
Description
Loads a self-installable plug-in file. Files with the following extensions are considered valid: .dll,.so,.vbs, .pys,.ps,.js. This method returns a Plugin object representing the newly loaded plug-in.
If the plugin is already loaded, the existing plug-in is returned.
Scripting Syntax
XSIApplication.LoadPlugin( Path )
C# Syntax
Plugin XSIApplication.LoadPlugin( String in_pluginName );Parameters
|
Parameter |
Type |
Description |
|
Path |
The full file path of the plug-in to load. |
Return Value
Examples
JScript Example
//-------------------------------------------------------------------- // This example shows how to define and load a plug-in in Softimage // // README: Copy and paste the example into the script editor // and run (F5). //-------------------------------------------------------------------- function ExLoadPluginDemo(filename) { // manually load the plugin var oPlugin = Application.LoadPlugin( filename ); // Display the plug-in information Application.LogMessage( "Name: " + oPlugin.Name ); Application.LogMessage( "Author: " + oPlugin.Author ); Application.LogMessage( "Major: " + oPlugin.Major ); Application.LogMessage( "Minor: " + oPlugin.Minor ); Application.LogMessage( "Language: " + oPlugin.Language ); Application.LogMessage( "Filename: " + oPlugin.Filename ); Application.LogMessage( "URL: " + oPlugin.URL ); Application.LogMessage( "Email: " + oPlugin.Email ); Application.LogMessage( "Help: " + oPlugin.Help ); Application.LogMessage( "OriginPath: " + oPlugin.OriginPath ); Application.LogMessage( "Categories: " + oPlugin.Categories.toArray().join(",") ); Application.LogMessage( "Loaded: " + oPlugin.Loaded ); // The above script logs the following results: //INFO : Name: XSIApplication.LoadPlugin Example //INFO : Author: Softimage Co. //INFO : Major: 1 //INFO : Minor: 0 //INFO : Language: JScript //INFO : Filename: [userpath]\Addons\XSISDKDocExamples\Application\Plugins\ExXSIApplicationLoadPlugin.js //INFO : URL: www.softimage.com //INFO : Email: xsi@softimage.com //INFO : Help: [factorypath]\Addons\XSISDKDocExamples\Application\Plugins\doc\ExXSIApplicationLoadPlugin.html //INFO : OriginPath: [userpath]\Addons\XSISDKDocExamples\Application\Plugins\ //INFO : Categories: Demo //INFO : Loaded: True } function XSILoadPlugin( in_reg ) { in_reg.Name = "XSIApplication.LoadPlugin Example"; in_reg.Author = "Softimage Co."; in_reg.Major = 1; in_reg.Minor = 0; in_reg.URL = "www.softimage.com"; in_reg.Email = "xsi@softimage.com"; in_reg.Categories = "Demo"; // generate help files GeneratePluginHelpFile(in_reg); return true; } function GeneratePluginHelpFile( in_reg ) { var fso = XSIFactory.CreateActiveXObject("Scripting.FileSystemObject"); var pluginfolder = fso.GetParentFolderName( in_reg.filename ); var helpfolder = fso.BuildPath( pluginfolder, "Doc" ); if ( ! fso.FolderExists(helpfolder ) ) { fso.CreateFolder(helpfolder); } var helpfilename = fso.GetBaseName(in_reg.filename); var helpfile = fso.BuildPath( helpfolder, helpfilename + ".html" ); var file = fso.CreateTextFile ( helpfile ); file .WriteLine( "<html>" ); file .WriteLine( "<head>" ); file .WriteLine( "\t<title>" + in_reg.name + "Help</title>" ); file .WriteLine( "</head>"); file .WriteLine( "<body>"); file .WriteLine( "\t<p>description of "+in_reg.name+" plugin</p>" ); file .WriteLine( "</body>" ); file .WriteLine( "</html>" ); file.close(); } //-------------------------------------------------------------------- // Code to bootstrap example into system //-------------------------------------------------------------------- function ExampleSourceCode() { return "// XSISDK Doc Example\n" + GeneratePluginHelpFile.toString() + "\n" + XSILoadPlugin.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 = "ExXSIApplicationLoadPlugin"; var ex_subfolder = "Plugins"; 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, "Application", ex_subfolder, ex_name+ex_langsuffix ); if (!fso.FileExists(filename)) { var f = fso.CreateTextFile ( filename ); f.write( ExampleSourceCode() ); f.close(); } ExLoadPluginDemo( filename ); }
See Also
Autodesk Softimage v7.5