41 lines
1.5 KiB
OpenSCAD
41 lines
1.5 KiB
OpenSCAD
include <../common.scad>
|
|
include <./helper.scad>
|
|
use <../plateBase.scad>
|
|
|
|
// To be used with closed sideRails to fully encapsulate a box
|
|
|
|
module frontBoxHolder(plateThickness=3, cutoutOffsetX, cutoutOffsetY, cutoutX, cutoutY, supportedZ, supportWidth, supportDepth=5, supportRailDefaultThickness, zOrientation) {
|
|
|
|
//assert(supportedZ + 2*supportThickness <= boxPlateScrewToYEdge*2 + u*uDiff);
|
|
//assert(supportWidth < rackMountScrewWidth); // not tight, need to include screw radii
|
|
|
|
u = findU(supportedZ, supportRailDefaultThickness);
|
|
supportRailBottomThickness = railBottomThickness(u, supportedZ, supportRailDefaultThickness, zOrientation);
|
|
|
|
difference() {
|
|
union() {
|
|
plateBase(U=u, plateThickness=plateThickness, screwToXEdge=boxPlateScrewToXEdge, screwToYEdge=boxPlateScrewToYEdge, screwType=mainRailScrewType, filletR=2);
|
|
|
|
// bottom support
|
|
translate(v=[(rackMountScrewWidth-supportWidth)/2, -boxPlateScrewToYEdge,0])
|
|
cube(size=[supportWidth, supportRailBottomThickness, supportDepth]);
|
|
|
|
// top support
|
|
translate(v=[(rackMountScrewWidth-supportWidth)/2, -boxPlateScrewToYEdge+supportRailBottomThickness+supportedZ,0])
|
|
cube(size=[supportWidth, supportRailDefaultThickness, supportDepth]);
|
|
}
|
|
|
|
union() {
|
|
translate(v=[cutoutOffsetX, cutoutOffsetY-boxPlateScrewToYEdge,-inf/2])
|
|
minkowski() {
|
|
r=2;
|
|
cylinder(r=r,h=inf);
|
|
translate(v=[r, r, 0])
|
|
cube(size = [cutoutX-2*r, cutoutY-2*r, inf]);
|
|
}
|
|
|
|
}
|
|
}
|
|
|
|
}
|