custom-nas/mechanical/scad/fan_wall_shroud.scad

79 lines
2.8 KiB
OpenSCAD

// Parametric 3x 120mm Fan Wall Pressure Shroud (Left Half)
// For 6U Open-Source Storage Array
// Standard Units: Millimeters (mm)
$fn = 64;
shroud_w = 198.0; // Half-width (split down center)
shroud_h = 220.0;
shroud_depth = 25.0;
wall_t = 3.5;
fillet_r = 5.0;
// Standard 120mm Fan dimensions
fan_bore_d = 118.0;
fan_hole_spacing = 105.0;
insert_m4_d = 5.6;
insert_m4_h = 6.5;
module fan_aperture_with_fillet() {
// Main Bore with 5mm Intake Radiused Fillet
cylinder(d=fan_bore_d, h=shroud_depth + 2);
// Front Radiused Inlet (Cone approximation / Torus cutout)
translate([0, 0, -0.1])
cylinder(d1=fan_bore_d + 2*fillet_r, d2=fan_bore_d, h=fillet_r);
// 4x Fan Mounting Holes (105mm square pitch)
for (dx = [-fan_hole_spacing/2, fan_hole_spacing/2]) {
for (dy = [-fan_hole_spacing/2, fan_hole_spacing/2]) {
translate([dx, dy, -1]) {
cylinder(d=4.5, h=shroud_depth + 2);
// Rear M4 Heat-Set Brass Insert Pocket
translate([0, 0, shroud_depth - insert_m4_h + 1])
cylinder(d=insert_m4_d, h=insert_m4_h + 1);
}
}
}
}
module fan_wall_left() {
difference() {
// Main Solid Shroud Block
cube([shroud_w, shroud_h, shroud_depth]);
// Fan 0 Aperture (Left: X=66.0, Y=110.0)
translate([66.0, 110.0, 0])
fan_aperture_with_fillet();
// Fan 1 Aperture (Center-Split: X=198.0, Y=110.0)
translate([198.0, 110.0, 0])
fan_aperture_with_fillet();
// MCIO Twinaxial Cable Pass-Through Slot (Lower Left)
translate([15.0, 15.0, -1])
cube([45.0, 15.0, shroud_depth + 2]);
// Perimeter Extrusion Mounting Holes (Ø4.5mm with countersink)
// Top Edge
translate([20.0, shroud_h - 10.0, -1]) cylinder(d=4.5, h=shroud_depth + 2);
translate([100.0, shroud_h - 10.0, -1]) cylinder(d=4.5, h=shroud_depth + 2);
translate([180.0, shroud_h - 10.0, -1]) cylinder(d=4.5, h=shroud_depth + 2);
// Bottom Edge
translate([20.0, 10.0, -1]) cylinder(d=4.5, h=shroud_depth + 2);
translate([100.0, 10.0, -1]) cylinder(d=4.5, h=shroud_depth + 2);
translate([180.0, 10.0, -1]) cylinder(d=4.5, h=shroud_depth + 2);
// Left Frame Flange
translate([10.0, 60.0, -1]) cylinder(d=4.5, h=shroud_depth + 2);
translate([10.0, 160.0, -1]) cylinder(d=4.5, h=shroud_depth + 2);
// Center Split Interlocking Lap Joint / Dovetail (Right Edge)
translate([shroud_w - 5.0, 0, -1])
cube([6.0, shroud_h/2, shroud_depth/2 + 1]);
translate([shroud_w - 5.0, shroud_h/2, shroud_depth/2])
cube([6.0, shroud_h/2 + 1, shroud_depth/2 + 1]);
}
}
fan_wall_left();