Plugins - load vs enable

Potentially silly question: what is the difference between loading a plugin and enabling a plugin? I can’t seem to find documentation that explains the difference between the two. Seems pretty basic, but I’m at a loss for a clear explanation.

For some context, I’m working with our IT folks on configuring managed workstations (for architecture students) and we want to set up certain plugins to load vs. not load, and when looking at how to implement this, I realized I didn’t even know if we are truly trying to load them vs. enable them. Then next question would be about best practices for how to do this - probably beyond the scope of the main question, but I know there are registry key methods, and I have done some tinkering with making a custom toolbar button that can run scripts to enable or disable and that seems to work ok. Thanks for any info and guidance!

When Rhino starts, only a few of the enabled plug-ins are loaded. These are for thing like toolbars, etc.
The other enabled plug-ins are not loaded until they are needed.
It’s called “Demand loading”.

Open a new file, draw a box.
Then look at the plug-ins and you’ll see that the Autocad File Export plug-in is enabled but not loaded.
Now save your box as a DWG or DXF file.
The plug-in will be loaded when you ask for it and then it will stay loaded through that modeling session.

Thanks John. So if I’m understanding correctly, disabling (opposite of being enabled) just blocks the ability of a plugin to load, but the loading behavior (when needed or at startup) is baked in by the developer?

Ultimately what I’d like to prevent is students waiting a long time for plugins to load on Rhino launch, assuming these are plugins that they won’t be using at all (I know, worst thing in the world when you are 19 is having to wait 30 seconds). Not to pick on any plugins, but for example, we’ve had a configuration before where ClimateStudio loads on launch and it takes a while, and this is unnecessary if the user is only trying to use a laser cutter. So I’m thinking I could have that plugin disabled by default, but make a button or script or other solution that will enable it if needed (requiring relaunch), without students having to dig around in the PlugInManager.

Essentially you’ve described the default behavior; aka demand loading.
However, some plug-ins are slow to load, like Bongo and Flamingo. They have tools bars and things to load and that can take some time.

There really isn’t anything you can do to speed up loading.
We’ve already done that.

“We’ve already done that” :joy: Yes, Rhino is the snappiest modeling software I’ve ever used.

I’m not trying to speed up the loading of any particular plugin, but on a shared, managed workstation that has many installed plugins, I think we want to block the loading of heavy plugins that will not be used in that work session, but can be turned on a-la-carte, and I’m trying to figure out if I’m going down the right path, or if I’m even thinking about it the right way.

I would focus on any extra plug-ins.
Change the list on top to “Plug-ins that do not ship with Rhino”.
Disable the ones your don’t normally use.
Only enable them when needed, and right-mouse click load them at the time you want them.

Don’t be surprised if you have students that start disabling important tools you need like these defaults:

1 Like

Thanks again John, very helpful. Is there any sort of profiler tool that tells you how long it takes them each to load, or some measure of how resource intensive they are? I’m thinking that would be the easiest way to pull out major offenders.

To clarify, when you say right-mouse click load them at the time you want them, you mean within PlugInManager? I find that interesting that you can have a plugin disabled, yet still load it (I just tried), but makes sense. Is there an analogous scripting operation for this? (Then I can put it in a button, which works well for students :wink:) Some plugins I’m thinking of would probably require a relaunch regardless, so maybe irrelevant.

We have the computers managed in a way that no matter what a student does, their changes will not persist past their login session, so no danger of them disabling important things.

They load very quickly but you can watch.
When you start Rhino using the Desktop shortcut, the “splash screen” loads first while the modeling environment loads behind.

Keep your eye on the bottom of the Splash screen and if you’re quick, you’ll see the names of the plug-ins as they are loaded.

Rather than the splash screen, I am thinking of this plugin loading screen, which is not so quick and where we do all of our waiting:

rhino plugin

Part of my problem is the way we are managing these computers though, because they are reverting back to a state where every time is the first time they initialize the plugin, kind of a Groundhog Day situation, so I think perhaps I need to work on freezing them in a state where this is already initialized and then maybe this part of it will be moot. Just more juggling with IT.

Yes. Save the machine state with those plug-ins installed and setup, but disabled.

1 Like