General Plugin Info
Menu: Tools > Eneroth Solid Tools.
Union: Add one solid group or component to another.
Subtract: Subtract one solid group or component from another.
Trim: Trim away one solid group or component from another.
If the tools are activated with two or more solids selected, the plugin guesses the biggest one is the primary (the one to keep but modify) and the smaller are the secondary ones, deciding how the primary one is modified.
If tool is activated with no selection you'll be asked to click each solid, first the primary one and then any number of secondary ones used to alter it.
The primary solid will keep its layer, material, attributes and even ruby variables pointing at it unlike how native solid tools work. Layers and attributes of entities inside both of the solids will also be kept.
If the primary solid is a component it will unlike the native solid tools keep being a component and all instances of it will be altered at once, just as components are supposed to behave. If you want to alter only this one instance, first right click it and make it unique as you normally would.
These tools, unlike the native solid tools, completely ignores nested groups and components. You can e.g. easily cut away a part or add something to a building even if it has windows or other details drawn to it, as long as the primitives (faces and edges) inside it form as solid.
Any tool in the plugin be activated and used to check if a group or component is regarded a solid by the plugin, simply by hovering it and see if it gets highlighted.
April 2017 this extension was made open source, available at GitHub.
Limited use to Sketchup Pro (due to EW terms and conditions).
Fixed bug in intersecting volumes.
Made open source. Added intersect tool. Fixed toolbar icons not being checked when tool is active. Additional clicks keeps modifying what is already being modified (use Esc to select new solid to modify). Allow more than two selected solids to be operated on on tool activation.
This project was started back in 2014 when I was still quite new to Ruby and programming in general. I've worked hard over a few days to clean up, refactor and style the code but it still has it oddities.
Since I started this project, not to be a standalone plugin, but to be used inside other plugins of mine, and have had much use of it, I'm open sourcing it for other to use. I also know there are coders in the SketchUp community that are much better at making optimized and stable algorithms than I am so I hope making this project open source can also improve the project.
The project follows bbatsov's style guide for Ruby.