When it comes to taking an idea from concept to prototype reality, depending on the type of project, there can be quite a few sub-tasks along the way. Take for example, your latest electronic widget design. You’ve finished the schematic, and the PCB layout is a work of art (if you do say so yourself) but having that kicking around on the desk unprotected with wires dangling is not the end game. Now you’ve got to make an enclosure of some kind, and I don’t know about you, but this is the bit where this scribe struggles a little to get something to fit nice. Even if you’ve got the latest 3D printer dialed in to within a gnat’s whisker of perfection, you’ve still got to come up with the design, and those dimensions need to be really accurate. So, for those of us who are great at the PCB, but suck at the enclosure, [Willem Aandewiel] has been busy making the tool just for you, with his PCB-orientated Yet Another Parametric Projectbox generator (YAPP.)
Without hesitation you can head over to the YAPP GitHub, grab that sweet OpenSCAD code, and get cracking with the demos. Provided for your convenience are a number of examples for enclosing some common items, such as Arduinos and ESP32 modules, so you can use those as a springboard to get your own code in place. YAPP works based off the PCB — by specifying programmatically since this is OpenSCAD — outer dimensions, mounting post locations first. Next you define openings in the six faces of the box, and the tool happily spits out a platter with the base and lid ready to drop into Cura (or your slicer of choice) What could be easier?
And before you start on non-rectangular designs, this is a rectangular box generator for rectangular PCBs. That is all this is designed for, and as far as we can tell, it does that one job well.
Of course, this is by no means the first enclosure generator to grace these pages, far from it. Here’s one for starters. If you’re here for tips to help make better designs, check this out, and finally 3DHubs also has a nice guide for you. Happy printing!