120mm Rear Case Fan - Designed to be mounted on the rear face of the rack, with the case holding the fan on the exterior of the rack rather than the interior. Beelink EQi12 Box - I originally created a Tray for the EQi12, but with it's lack of mounting points the device would shift. This box is the same as the enclosed box, however with the specific measurements of the EQi12. Unifi 8 port PoE Switch - I originally intended to use the Enclosed Box for this, however due to the bevels on every corner of this device, the box was unable to secure the switch. Instead, I created a custom mounting adapter to latch the switch to a tray, which is much easier to print and with less filament overall.
75 lines
2.9 KiB
OpenSCAD
75 lines
2.9 KiB
OpenSCAD
include <../../rack/sharedVariables.scad>
|
|
include <../common.scad>
|
|
include <../enclosed-box/helper.scad>
|
|
|
|
use <../enclosed-box/sideRail.scad>
|
|
use <../enclosed-box/frontBoxHolder.scad>
|
|
|
|
/*
|
|
Enclosed box mounting system:
|
|
Helper file to use semi-enclosed side rails and a front plate to mount a box.
|
|
This system does not require any mounting holes on the enclosed box.
|
|
|
|
!!! Please also make sure that the correct rack frame preset is set in rackFrame.scad !!!
|
|
*/
|
|
module enclosedBoxSystem (
|
|
|
|
// begin config ////////////////////////////////////////////////////////////////////////////////////////////////////////
|
|
|
|
// Does not affect any part dimensions. Set this to true to visualize how a box would be mounted.
|
|
visualize = false,
|
|
zOrientation = "middle", // ["middle" | "bottom"]
|
|
recessSideRail = false,
|
|
|
|
boxWidth = 126,
|
|
boxHeight = 44.5,
|
|
boxDepth = 126,
|
|
|
|
railDefaultThickness = 1.5,
|
|
railSideThickness = 3,
|
|
|
|
frontPlateThickness = 3,
|
|
frontPlateCutoutYSpace = 3,
|
|
frontPlateCutoutXSpace = 5,
|
|
|
|
// end config //////////////////////////////////////////////////////////////////////////////////////////////////////////
|
|
|
|
) {
|
|
leftRailTrans = identity;
|
|
rightRailTrans = visualize
|
|
? translate(v = [boxWidth, 0, 0])*mirror(v = [1, 0, 0])
|
|
: translate(v = [sideRailBaseWidth*2, 0, 0])*mirror(v = [1, 0, 0]);
|
|
|
|
u = findU(boxHeight, railDefaultThickness);
|
|
railBottomThickness = railBottomThickness(u, boxHeight, railDefaultThickness, zOrientation);
|
|
frontBoxHolderTrans = visualize
|
|
? translate(v = [railSideThickness-(railSupportsDx-boxWidth)/2, 0, sideRailLowerMountPointToBottom-
|
|
railBottomThickness])*mirror(v = [0, 1, 0])*rotate(a = [90, 0, 0])
|
|
: mirror(v = [0, 1, 0])*translate(v = [0, uDiff, frontPlateThickness-railBottomThickness]);
|
|
|
|
if (visualize) {
|
|
%cube(size = [boxWidth, boxDepth, boxHeight]);
|
|
}
|
|
|
|
multmatrix(leftRailTrans)
|
|
sideSupportRailBase(top = true, recess = recessSideRail, defaultThickness = railDefaultThickness, supportedZ =
|
|
boxHeight, supportedY = boxDepth, supportedX = boxWidth, zOrientation = zOrientation, railSideThickness =
|
|
railSideThickness);
|
|
|
|
multmatrix(rightRailTrans)
|
|
sideSupportRailBase(top = true, recess = recessSideRail, defaultThickness = railDefaultThickness, supportedZ =
|
|
boxHeight, supportedY = boxDepth, supportedX = boxWidth, zOrientation = zOrientation, railSideThickness =
|
|
railSideThickness);
|
|
|
|
multmatrix(frontBoxHolderTrans)
|
|
frontBoxHolder(
|
|
cutoutOffsetX = (rackMountScrewWidth-(boxWidth-2*frontPlateCutoutXSpace))/2, cutoutOffsetY = railBottomThickness+
|
|
frontPlateCutoutYSpace,
|
|
cutoutX = boxWidth-2*frontPlateCutoutXSpace, cutoutY = boxHeight-2*frontPlateCutoutYSpace,
|
|
zOrientation = zOrientation, supportedZ = boxHeight, supportWidth = max(10, boxWidth-(sideRailBaseWidth+10)),
|
|
supportRailDefaultThickness = railDefaultThickness, plateThickness = frontPlateThickness
|
|
);
|
|
}
|
|
|
|
enclosedBoxSystem();
|