I have been envisioning making a lamp shade with stack of Pringles-like features with various degrees of curvature. After trying out with a few CAD tools, I realised I could not draw what I had imagined – so I went out and asked a computer more formally with written instructions to carry out the magic.
Ever since I was a kid playing out with my brother’s self made Ninekit (early 1980’s Motorola 6809-based with serial console + TV output) computer with OS9 operating system drawing out various hypocycloids and epicycloids on a TV-screen I have been wanting to use real computational power for making real forms. At that time a hyperbolic paraboloid sounded like science enough for me, and way too nerdy for my classmates, so why not now start with exactly that form. It is exceptionally good for being a lamp shade, after all it has very nice negative curvature, so why not stack – say 15 of those with various degree and rotate them slightly while we are at it. How would it look?
I started off with Tinkercad – quickly realizing that it just does not have what it takes. Then off to Autodesk Fusion 360 – it has curves and all, but I got fed up by repeating the form and trying to make everything easily tuneable – after all I could not exactly see how the idea looks like. As a last effort I started looking at programmable modelling tools, and found OpenSCAD, that did have interesting tools, but lacked in capabilities for plotting functions. Luckily I found a surface graphing program by Dan Newman and then the possibility to make a general purpose choose-your-function-to-form-gizmo realised. His original code nicely resolves the problem of mapping a function to a 3D-layer.
The first challenge with code was actually a limitation in OpenScad language which apparently does not support functions as parameters to functions. It makes the code a bit messy, but with limited number of features it still remains quite manageable.
Second challenge arrived in the form of performance – I seriously wasn’t expecting a fully loaded MacBook 12″ 2016 to take 1h30min to render form that has some 15 leafs of 2x50x50 polyhedrons. As the process itself is quite compact in terms of memory use and utilises 50% of two our of four CPU cores, I can safely say that there is room for optimising the code.
Of course I had to make the model as big as possible. And actually I made it so big that it did not exactly fit inside my delta, but that did not stop me from trying. I learned that it actually is a bad idea for the effector to hit belt that drive one delta printer axis – it results in visible deformation in the print. (Quelle surprise!)
And it took two full days to print.
Yeah, it is nice to be able to print “impossible forms” – but having a part that neither fits inside printer nor can be printed (without supports) isn’t exactly clever.
Next time: Split the design, it only feels bad when you do it.
Wanna do something similar or different? Here is the OpenSCAD code for the model: https://github.com/takkulan/chips