Files
rackstack/rack-mount/frontBoxHolder.scad
2023-08-10 15:46:26 -04:00

56 lines
1.7 KiB
OpenSCAD

// To be used with closed sideRails to fully encapsulate a box
include <../config/common.scad>
include <../helper/common.scad>
include <./common.scad>
use <./plateBase.scad>
frontBoxHolder(u=2, plateThickness=3, cutoutOffsetX=20, cutoutOffsetY=2, cutoutX=147, cutoutY=26,
support=true, supportedZ = 27.5, supportWidth=120, supportDepth=5, supportRailBaseThickness=1.25);
module frontBoxHolder(u, plateThickness=3, cutoutOffsetX, cutoutOffsetY, cutoutX, cutoutY, support=false, supportedZ, supportWidth, supportDepth, bottomSupportThickness = 2, supportRailBaseThickness = 2) {
plateScrewToXEdge = 4.5; // wow these are named poorly
plateScrewToYEdge = 5;
if (support) {
//assert(supportedZ + 2*supportThickness <= plateScrewToYEdge*2 + u*uDiff);
//assert(supportWidth < rackMountScrewWidth); // not tight, need to include screw radii
}
difference() {
union() {
plateBase(U=u, plateThickness=plateThickness, screwToXEdge=plateScrewToXEdge, screwToYEdge=plateScrewToYEdge, screwType=mainRailScrewType, filletR=2);
if (support) {
bottomSuportThickness = supportRailBaseThickness;
translate(v=[(rackMountScrewWidth-supportWidth)/2, -plateScrewToYEdge,0])
cube(size=[supportWidth, bottomSuportThickness, supportDepth]);
translate(v=[(rackMountScrewWidth-supportWidth)/2, (-plateScrewToYEdge+bottomSuportThickness) + supportedZ,0])
cube(size=[supportWidth, bottomSuportThickness, supportDepth]);
}
}
union() {
translate(v=[cutoutOffsetX, cutoutOffsetY-plateScrewToYEdge,-inf/2])
minkowski() {
r=2;
cylinder(r=r,h=inf);
translate(v=[r, r, 0])
cube(size = [cutoutX-2*r, cutoutY-2*r, inf]);
}
}
}
}