diff --git a/rack-mount/bottomScrewTray.scad b/rack-mount/bottomScrewTray.scad deleted file mode 100644 index 21079ac..0000000 --- a/rack-mount/bottomScrewTray.scad +++ /dev/null @@ -1,63 +0,0 @@ -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); - -} \ No newline at end of file diff --git a/rack-mount/bottomScrewTray.stl b/rack-mount/bottomScrewTray.stl deleted file mode 100644 index 20afdd4..0000000 Binary files a/rack-mount/bottomScrewTray.stl and /dev/null differ diff --git a/rack-mount/tray.scad b/rack-mount/tray.scad new file mode 100644 index 0000000..cf6b39a --- /dev/null +++ b/rack-mount/tray.scad @@ -0,0 +1,123 @@ +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 = 140; +trayDepth = 85; +trayThickness = 3; + +mountPoints = []; +mountScrewType = "m3"; + + +bottomScrewTray(u=1); + +module bottomScrewTray(u) { + + frontLipHeight = 2; + backLipHeight = 1; // 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 + 10; + + leftScrewGlobalX = -leftScrewDistToTray; + rightScrewGlobalX = screwDx + leftScrewGlobalX; + + pointHoleRadius = screwRadiusSlacked("m3"); + pointHoleThickness = 2; + pointMountElevation = 1; + + points = [ // [x,y,elevation,holeRadius,holeThickness] + [(27.5),34, pointMountElevation, pointHoleRadius, pointHoleThickness], + [(27.5)+79.5,34, pointMountElevation, pointHoleRadius, pointHoleThickness] + ]; + + + difference() { + applyMountHoles(points) + translate(v = [-rackEarSideThickness, -rackEarFrontThickness, -trayThickness]) + body(); + + // hack + *union() { + translate(v = [-20, 18, 15]) + rotate(a = [0, 90, 0]) + cylinder(r = 10, h = inf); + + translate(v = [-20, 40, 13]) + rotate(a = [0, 90, 0]) + cylinder(r = 7, h = inf); + } + } + +module body() { + + 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); + } + + + module applyMountHoles(points) { + + + apply_pn() { + for (i = [0:len(points)-1]) { + p = points[i]; + x = p[0]; + y = p[1]; + elevation = p[2]; + hR = p[3]; + hT = p[4]; + translate(v=[x, y, 0]) + cylinder(r=hR+hT, h=elevation); + } + for (i = [0:len(points)-1]) { + p = points[i]; + x = p[0]; + y = p[1]; + hR = p[3]; + hT = p[4]; + translate(v=[x, y, 0]) + cylinder(r=hR, h=inf50, center=true); + } + children(0); + } + + } + + } \ No newline at end of file diff --git a/stl/micro/rack-mount/dualLBracketSupportRail_P1.stl b/stl/micro/rack-mount/dualLBracketSupportRail_P1.stl index 06cdb9d..c92d6e1 100644 Binary files a/stl/micro/rack-mount/dualLBracketSupportRail_P1.stl and b/stl/micro/rack-mount/dualLBracketSupportRail_P1.stl differ diff --git a/stl/micro/rack-mount/dualLBracketSupportRail_P2.stl b/stl/micro/rack-mount/dualLBracketSupportRail_P2.stl index 1917d1a..2d1a7d0 100644 Binary files a/stl/micro/rack-mount/dualLBracketSupportRail_P2.stl and b/stl/micro/rack-mount/dualLBracketSupportRail_P2.stl differ diff --git a/stl/micro/rack/eval_P.stl b/stl/micro/rack/eval_P.stl index 639ca7e..7b678e5 100644 Binary files a/stl/micro/rack/eval_P.stl and b/stl/micro/rack/eval_P.stl differ diff --git a/stl/micro/rack/hingeModule_P1.stl b/stl/micro/rack/hingeModule_P1.stl index 7088697..05553f8 100644 Binary files a/stl/micro/rack/hingeModule_P1.stl and b/stl/micro/rack/hingeModule_P1.stl differ diff --git a/stl/micro/rack/magnetModule_P1.stl b/stl/micro/rack/magnetModule_P1.stl index b431d5e..d41e523 100644 Binary files a/stl/micro/rack/magnetModule_P1.stl and b/stl/micro/rack/magnetModule_P1.stl differ diff --git a/stl/micro/rack/magnetModule_P2.stl b/stl/micro/rack/magnetModule_P2.stl index 6d58bc5..11e7d95 100644 Binary files a/stl/micro/rack/magnetModule_P2.stl and b/stl/micro/rack/magnetModule_P2.stl differ diff --git a/stl/micro/rack/mainRail_P.stl b/stl/micro/rack/mainRail_P.stl index 93f7c3b..0b0baa5 100644 Binary files a/stl/micro/rack/mainRail_P.stl and b/stl/micro/rack/mainRail_P.stl differ diff --git a/stl/micro/rack/sideWallLeft_P.stl b/stl/micro/rack/sideWallLeft_P.stl index cadefa2..dba8ffe 100644 Binary files a/stl/micro/rack/sideWallLeft_P.stl and b/stl/micro/rack/sideWallLeft_P.stl differ diff --git a/stl/micro/rack/sideWallRight_P.stl b/stl/micro/rack/sideWallRight_P.stl index e4201ff..da24e0b 100644 Binary files a/stl/micro/rack/sideWallRight_P.stl and b/stl/micro/rack/sideWallRight_P.stl differ diff --git a/stl/micro/rack/stackConnectorBottom_P.stl b/stl/micro/rack/stackConnectorBottom_P.stl index 16598ac..aa549bd 100644 Binary files a/stl/micro/rack/stackConnectorBottom_P.stl and b/stl/micro/rack/stackConnectorBottom_P.stl differ diff --git a/stl/micro/rack/stackConnectorDual_P.stl b/stl/micro/rack/stackConnectorDual_P.stl index 81320d3..48bd7ca 100644 Binary files a/stl/micro/rack/stackConnectorDual_P.stl and b/stl/micro/rack/stackConnectorDual_P.stl differ diff --git a/stl/micro/rack/xBar_P.stl b/stl/micro/rack/xBar_P.stl index ed00a3d..cea3819 100644 Binary files a/stl/micro/rack/xBar_P.stl and b/stl/micro/rack/xBar_P.stl differ diff --git a/stl/micro/rack/xyPlate_P.stl b/stl/micro/rack/xyPlate_P.stl index abc4ce5..8d5a679 100644 Binary files a/stl/micro/rack/xyPlate_P.stl and b/stl/micro/rack/xyPlate_P.stl differ diff --git a/stl/micro/rack/yBar_P.stl b/stl/micro/rack/yBar_P.stl index 1f8ad05..cef094e 100644 Binary files a/stl/micro/rack/yBar_P.stl and b/stl/micro/rack/yBar_P.stl differ