
Here’s how parametric objects can be made by directly creating GCodes:
For scripted objects, I use Python. Originally I did this because I wanted to eventually start raiding the Skeinforge toolkit for commands, but the language has a lot of other benefits, such as ease of use and nice modularity support.
Every object any MakerBot prints can be expressed as a set of parametric equations. These have the form:
X = f1(t)
Y = f2(t)
Z = f3(t)
E = f4(t)
Where X, Y and Z are the coordinates of the stepper motors, and E is the extruder speed. Designing a scripted object is just a matter of writing these equations down for a desired object. Now, ALL objects that are printable can be expressed this way, but only a certain class of them are particularly *useful* to do this way.
For example, a whole class of objects, the ones that are radially symmetrical can be expressed as a collection of circles, which are easy to code. This leaves only the profile to design and (potentially) hard-code. Using this, I’ve designed goblets, parabolic dishes, and a few other geegaws.
Another class of objects, prisms, are also prime candidates for script-based design, since the cross-section can simply be repeated over and over again for additional height. This class includes things like gears, spiral springs, and things traditionally made on a laser cutter. Prisms can be readily skewed, twisted, or scaled to create a collection of shapes impossible with laser cutters, such as beveled gears.
However, with all scripted objects, mathematically simple shapes are easier to make than mathematically complex ones. This is where other CAD tools start to win out over scripting. What makes something mathematically complex isn’t the same as what makes something /intricate/, however. A key example here is fractal geometry, which can be specified very simply despite being tremendously intricate. I’ve printed a few lovely koch snowflakes generated by what turned out to be a very simple Python script.
Fractal geometries are an area I’m really interested in for this exact reason. Biology gets tons of mileage out of fractal geometry: simple code can design complex objects, which is how something as complicated as a human can be described by less data than would fill a DVD rom. By scripting in fractals, we may be able to create a whole new world of things, without even needing to fully understand what it is we’re making.