Files
rackstack/rack-mount/bottomScrewTray.scad
2023-07-15 12:41:42 -04:00

63 lines
1.9 KiB
OpenSCAD

include <./common.scad>
use <./rackEars.scad>
// Rack mount tray that supports screws on the bottom of the rack-mount item
// Config variables
//trayAlignment = "middle"; // middle, right, left
trayWidth = 110;
trayDepth = 100;
trayThickness = 3;
mountPoints = [];
mountScrewType = "m3";
bottomScrewTray(u=5);
module bottomScrewTray(u) {
frontLipHeight = 5;
backLipHeight = 5; // also applies to sides
lipThickness = 3;
rackEarSideThickness = 3;
rackEarFrontThickness = 3;
screwDx = rackMountScrewWidth; // x dist between the mount holes
screwDz = uDiff * u;
plateLength = screwDx + 2*rackMountScrewXDist;
plateHeight = screwDz + 2*rackMountScrewZDist;
minScrewToTraySpacing = 8;
// TODO: toggle this based on left/right/middle alignment
leftScrewDistToTray = minScrewToTraySpacing + 2 +5;
leftScrewGlobalX = -leftScrewDistToTray;
rightScrewGlobalX = screwDx + leftScrewGlobalX;
cube(size=[trayWidth, trayDepth, trayThickness]);
translate(v=[0,0,trayThickness])
cube(size=[trayWidth, lipThickness, frontLipHeight]);
translate(v=[0,trayDepth-lipThickness,trayThickness])
cube(size=[trayWidth, lipThickness, backLipHeight]);
translate(v=[0,0,trayThickness])
cube(size=[lipThickness, trayDepth, backLipHeight]);
translate(v=[trayWidth-lipThickness,0,trayThickness])
cube(size=[lipThickness, trayDepth, backLipHeight]);
translate(v=[leftScrewGlobalX,0,rackMountScrewZDist])
rackEarModule(frontThickness=rackEarFrontThickness,sideThickness=rackEarSideThickness,frontWidth=leftScrewDistToTray+rackMountScrewXDist+rackEarSideThickness, sideDepth=trayDepth-lipThickness, u=u);
translate(v=[rightScrewGlobalX,0,rackMountScrewZDist])
mirror(v=[1,0,0])
rackEarModule(frontThickness=rackEarFrontThickness,sideThickness=rackEarSideThickness,frontWidth=rightScrewGlobalX-trayWidth+rackMountScrewXDist+rackEarSideThickness, sideDepth=trayDepth-lipThickness, u=u);
}