3D Printing : Art vs Science
As developers in an agency environment we're often playing with new technology: new languages, methodologies, systems, clouds, and computers. Our love of technology never stops just there, we get excited by any gadget or gizmo: electric cars, auto sailing boats, reusable rockets (pretty much everything Elon Musk does). So when I got my mitts on a 3D printer I was absolutely thrilled. This thing was like witchcraft.
"Any sufficiently advanced technology is indistinguishable from magic"
-- Arthur C. Clarke
So, in order to print something you need a model, a software representation of what the thing looks like. In actual fact it's more like a set of instructions on how the printer should build the thing. There's loads of sites out there than can provide these - check out Thingiverse for some (lots) of examples. Some are practical (Ethernet cable management), some are fun (Mini-SNES Raspberry Pi case), and some are just "meta" (Build a 3D printer with your 3D printer). I'll admit I spent far too much time that first month printing out whimsical rather than practical items (Pokemon anyone). Then the bug passes and you want to do something useful with it - but what and how ?
Defining a 3D Shape on a very 2D Screen
Imagine I create a sphere and a cylinder and I line them up so one goes right through the other. If I then make the cylinder "subtractive" it cuts a tube right through the sphere and you end up with a bead - like jabbing a pencil through plasticine.
I'm the first to admit that my artistic abilities are limited in turning that vision into a solid reality. I tried loads of different programs in order to best render my ideas into a virtual 3D plane for printing. SketchUp, FreeCAD, TinkerCAD, Blender - all great bits of software that work by creating objects in a 3D space, mashing them together, and defining how they interact. While those programs are fantastic (and they really are) they just didn't gel with how I could conceive of creating something. I just couldn't manipulate the objects properly in the 3D space (maybe when you can combine VR with CAD this will click into place).
Enter : OpenSCAD
For me the "Eureka" moment was when I found OpenSCAD. It does exactly the same as those other programs but is controlled purely by a programming language. The language is very straightforward but the results are no less impressive. Every object is defined by its type and dimensions, its additive and subtractive properties, and positioned on XYZ axes. You then build your larger object out of smaller shapes, and leave it to OpenSCAD to work out the complicated parts.
If like me your hand can't quite match your eye, OpenSCAD is definitely worth a look.