Close

Reinventing the cube

A project log for Penguin Case

A parametric 3D case

christopherChristopher 06/03/2021 at 18:580 Comments
My great, great grandfather's mining lamp from the early 1900s.

Earlier this spring I found myself wanting to take my great, great grandfather's carbide mining lamp caving with me and show the crew how it worked while we were stopped for lunch. Obviously a family heirloom such as this has some sentimental value, and I needed a case to protect it while we scrambled over rocks and tossed our backpacks up ledges.

The Frog Box I printed.

A strong box such as a Pelican Case is the obvious answer here, but I felt that it was a little overkill and a little pricey. I also couldn't find any small enough on their website, despite knowing that I had seen some sufficiently miniature ones at work before. That's when I discovered the Frog Box on Thingiverse. I printed the provided STL and found that it checked all of my boxes: Durable, could be made water resistant, and was parametric. Except I don't have access to Fusion 360, and thus couldn't change the size to fit my carbide lamp.

So I set out to make my own parametric box using an open source CAD tool, one that could be adjusted and produce an STL from a webpage if at all possible. It does feel really silly to be designing my own box. I dabbled in 3D design in college and took to heart the findings that "well I'm not very good at this." Which sucks, because improving a skill doesn't happen much when you stop trying.

So here's to trying and learning I guess. Huzzah.

Properly motivated? Good, moving on.


There are a couple open source CAD programs to pick from (none really matching parity with the commercial offerings available on Windows). I mainly stick to Solvespace and OpenSCAD. They both work well with simple designs and boolean build-ups of addition and subtraction. Blender is a powerful 3D editor, but I haven't found it much good for CAD. I've also used FreeCAD in the past, but may never give it another chance after multiple occurrences of when it updates and suddenly fails to open projects made in the previous version.

27 days and my first attempt at generating an STL is supposedly still crunching along...

I chose to go with OpenSCAD originally for it's compatibility with Thingiverse's Customizer, which would provide the accessible parametric functionality I wanted. It was only after I had finished the rough draft of the design and uploaded it to Thingiverse that I discovered that Customizer is, well, totally broken.

That was discouraging, but I quickly decided to pivot and host my own OpenJSCAD server to allow for parameterized downloads! I had heard of OpenJSCAD before and loved the idea of OpenSCAD but built in Javascript for use in the web. Of course, that's not actually the case. OpenJSCAD is built in Javascript all right, but it's also programmed in Javascript. That's right, there isn't parity between the two tools, as they essentially use different programming languages. Shucks.

I could migrate the project to javascript, but (besides not wanting to muck with javascript) I've found OpenJSCAD to not be very mature yet. So for now I'm sticking with OpenSCAD.

Tune in next week for a look at how I plan to strap wings and a propeller on this jalopy called OpenSCAD and get parameterized STLs on the web.

Discussions