On-Demand Ruby / Extension Loader for SketchUp

Use Ruby scripts & extensions without installing them (good for computer labs or keeping SketchUp lean).

Description

This SketchUp extension was created out of a need for having extensions available in a “locked down” computer lab setting (similar to my solution for AutoCAD). It also provides an easy way to use extensions in SketchUp without having to install them – therefore making SketchUp start (and possibly run) faster. In addition, you can use this tool to run any external ruby code (e.g. for development purposes).

After installation, this is how this extension appears under the “Extensions” menu as shown above.

To use this tool, you need to save extensions (their Ruby – RB – files and any folders that the extension author packages with them) to a convenient location (a folder on your harddisk or network drive or a USB stick). Make sure the file/folder structure remains intact (exactly as it would be inside SketchUp’s own Plugins folder).

With the menu items that this tool provides, you can then:

  • On-demand load a single Ruby file / extension (.RB). After loading the file / extension, it will be immediately available for use (and remains so until SketchUp is restarted).
  • On-demand load several Ruby files / extensions (.RB) at once that are all contained in a directory. Those will then be immediately available for use (and remain so until SketchUp is restarted).
  • Select a directory (e.g. on a USB-drive) that contains Ruby files or extensions that are then automatically loaded each time SketchUp starts. This is in addition to the regular SketchUp Plugin directory, which contains all installed extensions.
  • Permanently install an .RBZ or .ZIP extension in SketchUp. This is simply another way to do what the “Install Extensions…” button does but in this case also allows installing from .ZIP files.
  • Manage extensions. This is simply a convenient shortcut to the Extension Manger Window. You can install / disable / enable extensions here.
  • If you get stuck, the About option shows a website with information, discussions, and a way to contact the author.

Some ideas for working with this tool:

  • Organize your extensions by task (e.g. woodworking, modeling, etc.) into folders and load each group only when needed.
  • Create an “Extensions” folder in your Dropbox / OneDrive and have it sync across all your computers. Then load extensions as needed from there using this tool.
  • You can even make this automatic by adding that (shared) directory to this tool as a location that gets automatically loaded.
  • In a computer lab, permanently install this extension and distribute extension collection folders to students on USB sticks. Let them load whichever extensions they need.

Please note: After restarting SketchUp, the loaded extensions become unavailable and you will have to load them again when you need them (this is by design). To install extensions permanently, use the install function.

Usage

Use the submenu items under Extensions/Plugins > Ruby / Extension Loader

Did you find this extension useful? Contribute to its development with any amount (via PayPal):

Preparing Extensions

Because extensions are distributed as an RBZ single-file package (e.g. from the Extension Warehouse), you cannot load that file temporarily with this tool (you can only install that extension). Therefore, use one of these two approaches:

You can download an RBZ extension file first and then extract its contents (it basically is just a ZIP folder). To do that, edit its file extension from “rbz” to “zip”, open it, and then copy its entire contents (retaining any folders) to a convenient location.

Alternatively, you can use any installed extensions and either copy or move them to a convenient location. First, use this extension’s menu item to open SketchUp’s “Plugins” directory. Then find the files that belong to a specific extension (it is typically a single “rb” file and a folder with the same name) and copy or move those wherever you need them. Remember, if you move extension files out of this folder, then those extensions will not automatically be loaded when SketchUp starts.

Extension Terms and Conditions

BY INSTALLING, ACCESSING OR USING THIS SOFTWARE, YOU (THE USER) AGREES TO BE BOUND BY THE TERMS AND CONDITIONS AS PROVIDED BELOW.

LICENSE:

This is free software, provided under the GPL license (https://www.gnu.org/licenses/gpl-3.0.html).

(c) Alexander Schreyer, alexschreyer.net

DISCLAIMER:

THIS SOFTWARE IS PROVIDED ‘AS IS’ AND WITHOUT ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE, AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHOR OR ANY COPYRIGHT HOLDER BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY ARISING FROM, OUT OF OR IN CONNECTION WITH THIS SOFTWARE OR THE USE OR OTHER DEALINGS IN THIS SOFTWARE.

WHERE APPLICABLE, THIRD-PARTY MATERIALS AND THIRD-PARTY PLATFORMS ARE PROVIDED ‘AS IS’ AND THE USER OF THIS SOFTWARE ASSUMES ALL RISK AND LIABILITY REGARDING ANY USE OF (OR RESULTS OBTAINED THROUGH) THIRD-PARTY MATERIALS OR THIRD-PARTY PLATFORMS.

Downloads and Installation

You can now find this plugin in Trimble’s Extension Warehouse. For an easy install (and update notifications), browse to it from inside SketchUp (2013 or newer) and install it directly.

Alternative Downloads

Linked below are the installation files (RBZ and ZIP formats) for the current and some previous versions of this extension.

To install these files, follow the SketchUp folks’ instructions. You can also find this extension on GitHub.

If you cannot install this extension, then you can save its unzipped files anywhere (e.g. your USB memory stick – the H: drive in my case) and then load it into SketchUp (no restart required!) by opening the Ruby Console (Window > Ruby Console) and entering this (modify for your setup):

load "H:\as_pluginloader.rb"

Issues

  • While this loading approach will work in most cases, it may fail to load some (especially larger) extensions due to programmed-in dependencies.

Revision History

  • Version 1.9 (5/6/2020)
    – Minor code cleanup edits
    – Dialog fix for SU 2020 (GC issue)
  • Version 1.8 (9/10/2019):
    – Drop pre-SU8 support
    – Code cleanup
    – Minor bugfixes
    – Open dialog file selector update
    – Updated help website location and dialog
    – Drop word “plugin” in favor of “extension”
    – Show Extension Manager instead of preferences
    – Offer to store additional loading directory (e.g. on USB drive)
  • Version 1.7 (2/22/2015):
    – Added plugins directory menu item
    – Code cleanup
    – SketchUp 8 syntax error fix
  • Version 1.6 (2/11/2015):
    – Cleaned up code
    – Added SU 15’s dialog selector
    – Renamed plugin to extension where applicable
  • Version 1.5 (2/17/2014):
    – Fixed saving of file paths to registry
    – Code cleanup
  • Version 1.4 (5/16/2013):
    – Removed browser feature to comply with Trimble rules
  • Version 1.3 (5/15/2013):
    – Added RBZ installing option
    – Updated archive links
    – Default file location is now userprofile
    – Plugin remembers last folder
    – Fixed up some dialogs and added more feedback
    – Now reports error if problem occurs
    – New folder structure
    – Fixed multiple loader code
  • Version 1.2 (11/3/2010):
    – Renamed some menu items
    – Added Google custom search
    – Added link to extension manager
    – Reformatted code and added module
    – Removed developer links (those are now in my Ruby Code Editor)
    – Changed layout of browser a bit
    – Fixed mac issues: dlg can’t show modal, browser buttons dont work well
  • Version 1.1 (3/18/2009):
    – Added more plugin links and fixed some spelling
    – Added browser “buttons” and better explanation
    – Added help menu item and updated help file
    – Changed menu order a bit
  • Version 1.0 (3/9/2009):
    – First version

Credits

Thanks to Jim Folz for his initial help (in the SCF).

Comments and Reactions