This collection of small script snippets presents handy little routines that are usually too small to put into a proper extension. Use them with the Ruby Code Editor (just paste the code and hit "run") or make them more permanent as a menu item (see Appendix D in my book).
The following is a handy little Ruby tool if you frequently need to export the current view as an image in SketchUp. It basically allows you to pre-set all of the export parameters (including an export location) and keeps all of those consistent. Of course, this is not too hard with SketchUp itself (because it remembers the last used location and image parameters), but this script allows you to keep those parameters consistent even if SketchUp "forgets" them occasionally (i.e. after you work with a file in a different location).
I use this script mainly when I need to create consistent images from many files, on which I work over an extended...
This post was actually inspired by a question in my Basecamp presentation: Could we use images to create or modify geometry in SketchUp? As it turns out, this is actually quite easy since SketchUp version 2018.
This year's version of SketchUp includes a new class in Ruby, the ImageRep. Contrary to the regular Image class (which you can use to work with images as entities in SketchUp), the ImageRep class goes further and allows you to look at images on a pixel by pixel basis. This is basically what we need to be able to read pixel color values and then use those to create or modify geometry.
Want to use this without coding? This script is also in one of the tools of my Scale By Tools extension.
As you can see in the code snippet below, this is reasonably straightforward once one figures out the basic geometric behavior. The code even stretches the image by the (x and y) dimensions of...
Scripting geometry (as described in Chapter 7) can make things look very interesting (and quite beautiful) with a rather small amount of actual code. You can see this in the patterned panel example or in the pulled brick post. Both of those examples use a combination of sine and cosine functions to create a "wavy" pattern that nicely undulates shapes and geometry. There are other functions, however, some of which you likely remember from algebra and trigonometry classes. But even without delving too deeply into this, I thought it would be useful to have a reference for some interesting functions that may be of use.
Want to use this without coding? This script is also in one of the tools of my Scale By Tools extension.
The interactive examples shown below use the following grid of 1 inch cubes in SketchUp that were simply scaled vertically according to the lines of code that are included at the bottom of this post. Obviously...
I came across brick wall designs today where the architects were considering various options with pulled bricks. This design approach has been used before in many different ways but the basic principle is always the same: In a brick wall that is dominated by stretchers, you insert strategically placed headers which then protrude a little bit beyond the brick wall surface. This creates a very nice pattern with interesting shadows. The first image below shows such a design in a SketchUp model:
Given that in reality these are placed manually it may be reasonably easy (and therefore not too costly) to vary the extend of their extension beyond the surface and thereby create more interesting undulating patterns. One such pattern is shown below:
As it turns out, this is very easy to do by simply modifying some of the scripts from Chapter 7 and combining coding with a carefully created SketchUp model. The secret for success is having a component type (the...
If you came to one of my presentations at the 2018 SketchUp 3D Basecamp in Palm Springs and are interested in the slides, here they are. You can find all of the code examples from the talks here (and on your USB "Stick of Knowledge").
In this presentation, I not only gave an introduction into Ruby coding with SketchUp, but I also explained how my own SketchUp extensions came to be and what is behind those from a coding perspective.
Feel free to write any questions you have into the comments below. All the best with your Ruby coding endeavors...
...