Plugin to design a very specific product

I have an idea of a product that I would like to manufacture. It is a mechanical device that requires CNC machining and some other fabrication processes (bending, welding, anodizing, polishing etc.).

But there are so many variations that I think it would be better to allow the customer to design it rather than try to guess the most popular configuration. Also I would like to give the customer the option of making some parts themselves and only ordering the components they actually need to save costs.

I would like to create software that would allow them to specify parameters and have the program generate a 3D representation that they can then manipulate using Sketchup’s tools to customize.

  1. Is this possible in a Sketchup plugin?
  2. Do you know of another Sketchup plugin that is similar that I could examine (preferable open source)?
  3. I have some programming experience but not in Ruby. Is there a book that shows how to create this software particularly well.


I suppose the first question to get out of the way would be is the degree of specificity in this product beyond the scope a dynamic component with a range of parameters being specified by the user in a dialog box?

You could have a look at the SU Draw Parametric Shapes plugin on the Sketchucation plugin store (see

That uses a parametric approach to draw a range of 3D shapes. The most complex (with most parameters) is the Helical Ramp with Sides.

One drawback with the parametric.rb ruby script used in this plugin is that the parameters are not listed in a consistent or controllable order after the first use. A second, minor, drawback is that if you have two or more plugins which use parametric.rb then you get two context menu entries instead of one to change any component based on it.

A more elegant approach would be to use a Web Dialogue to input the parameters, but that is a lot more complex to set up, thought I believe TIG has a plugin which helps. I haven’t used it, however.

The Truss plugin thread on this forum shows what can be achieved with Web Dialogues. See Truss Plugin/Extension.

As AlanF says, you might find that a Dynamic Component could do the job, but that requires a bit of practice, and has significant limitations.

This is just an idea that may or may not be practical.

It is not a complex product where altering one component or parameter will have a huge effect on other properties (eg a bicycle). A close example would be a table with a straight tubular legs.

The parameters could be height, width, length, location of legs from corners, material of top, material of legs, color etc.

The basic design is say 50% predetermined and the customer decides on the measures and materials. Or they might decide to make the top and just want the legs with some custom attachment system.

This device is relatively expensive and fairly specialized so it is not a high volume product. I thought by letting them generate a 3D model that they can modify and ‘render’ it may make the product more interesting, unique and engage them in the actual manufacturing process.

Thanks for all the detailed information. I will look into this.

Thank-you for the vote of confidence. I agree that the web dialog is
much more flexible and powerful when it comes to user inputs. I will be
using them even more extensively in the future on some planned uprades
and feature additions.

When you create the web dialog combining html, javascript and SVG I would say that the possibilities are endless. I really like using SVG to generate on the fly graphics.

1 Like

Web dialog is far more flexible as @medeek says, but all the attributes you listed above could actually be handled by a dynamic component. It might be worth looking at both options. Watch a few videos, download a few examples.

Thanks for the advice.

I’ll look at all possibilities but I have some work to do to just learn this technology. The truss plugin shows what is possible and I think any engineering calculations can be solved by using ‘codes’ that keeps the parameters within a range of values. Similarly to how plumbing codes allow the design of drain-waste-vent systems without complex calculations. I have never tried to program 3D applications before and this is very interesting.

I completed a 6 month object-oriented programming certificate a few years ago so I have an idea of what is involved (design patterns etc.) but it will be a few months before I have anything to show.

If you go the web dialog route you are more than welcome to download the truss plugin and cut and paste any of the html, javascript and SVG code as a starting point for your own plugin/extension. I can also send you the ruby code that interacts with the html web dialog so you can see first hand how the two halves interact and transfer data back and forth.