Yet Another Parametric Projectbox generator
This OpenSCAD project can be used to create extremely comprehensive and customizable project boxes/enclosures using OpenSCAD.
The complete and official documentation gitbook explains the entire API.
You can open Issues here, but please also place them in a comment at one of the following blog posts:
I have done my best, but it can probably be done simpler. If you think you can help, please contact me or make a Pull Request.
It all starts with the dimensions of the PCB going inside your Project Box, as well as a few other dimensions:
printBaseShell = true;
printLidShell = true;
// Edit these parameters for your own board dimensions
wallThickness = 1.0;
basePlaneThickness = 1.0;
lidPlaneThickness = 1.0;
// Total height of box = basePlaneThickness + lidPlaneThickness
// + baseWallHeight + lidWallHeight
baseWallHeight = 7;
lidWallHeight = 4;
pcbLength = 88;
pcbWidth = 49;
pcbThickness = 1.5;
// padding between pcb and inside wall
paddingFront = 4;
paddingBack = 1;
paddingRight = 1;
paddingLeft = 1;
// ridge where Base- and Lid- off the box can overlap
// Make sure this isn't less than lidWallHeight
ridgeHeight = 3;
ridgeSlack = 0.2;
roundRadius = 2.0; // don't make this to big..
//-- How much the PCB needs to be raised from the base
//-- to leave room for solderings and whatnot
standoffHeight = 5.0;
pinDiameter = 1.0;
pinHoleSlack = 0.5;
standoffDiameter = 4;
You probably want some cutouts in your box for connectors and stuff. For every plane (side) of the Project Box, there is an array that holds the cutouts for that plane.
A picture is worth a thousand words ...
yappCenter
, the rectangle will rotate around its center point:pcbStands
:pcbStands
fixate the PCB between the base and the lid.
Inserts are great for making a screw connection between the base and the lid.
There are two type of "hooks"; at the inside of the box or at the outside of the box
baseHookOutside()
:lidHookInside()
:If you like this project or it saved you time, you can give me a cup of coffee :)
YAPPgenerator_v3.scad
) will thus have only the major version in its filename.main
branch at the last commit before work is started on the next major version. This branch can be used to fix bugs and add features to the old release version, if desired. These lineage branches will not be merged to main
, and will continue on their own path.YAPP_Template_vx.scad
and YAPPgenerator_vx.scad
files will also be attached to the release.