// by zeus - zeus@ctdo.de - CC-BY-NC-4.0 // -> https://www.thingiverse.com/zeus // -> https://github.com/zeus86 // -> https://blog.tastatursport.de/ // 2021-05-16 // Supermicro Fan-Guard for CSE-836 //################## // This Bracket is designed for a Supermicro CSE-836 (3U) Case, // but will most likely fit others as well. If you plan to use anything // else, than the stock turbines, you most likely want to swap fans. // This bracket is designed to bridge the gap, which occurs, when // using narrower Fans than stock, e.G. standard ones with 25mm depth. // For 25mm fans, set "old_fan_depth" to 34 and use the rear exhaust // module, for the center fanwall use 38mm and the fanwall module. // These should fit then with a very slight gap to accomodate the // I/O-Shielding. There are 2 different Models, because the rear ones // must not overshoot the original bracket in height in order for the // case top to be able to be closed. These are meant to Replace the // fans FAN-0062L4 (rear) and the fanholder bracket 05-SC93304-XX00C002 // as well as FAN-0094L4 (center-) with the bracket 05-SC82508-XX00C003. // I swapped in 80x80x25mm fans, which works fine. // //################## // // VARS old_fan_depth=38; // height of the fan, which is goint to be replaced fan_dia=80; // fan diameter fan_depth=25; // desired fan-depth, most likely 25mm unless you use server-fans fan_oversize=10; // more headroom for the radial area mt=2.5; // general material thickness, the wall will be slightly thinner on the rear-model, because it needs to be moved inwards width=fan_dia; length=fan_dia; hole_dia=4.25; // diameter for the screw holes. I designed them with a slight slope for easy insertion hole_offset=4.5; // x and y offst of the screw-holes from the corner (centered), 4.5mm for 80mm fans depth=old_fan_depth-fan_depth; // the difference to be gapped cage_mt=2; // roughly the material thickness of the cage screw_clearance=1.5; // additionalclearance in the Wall for the screw head $fn=100; // //################## // // MODEL module bracket_fanwall(){ difference(){ cube([width,length,mt]); translate([fan_dia/2,fan_dia/2,-0.1])cylinder(r=(fan_dia+fan_oversize)/2,h=depth+0.2); translate([-0.1,length/2+0.1,-0.1])cube([width+0.2,(length+0.1)/2,depth+0.2]); translate([length/2,hole_offset,-0.1]){ translate([-length/2+hole_offset,0,0])cylinder(r1=hole_dia/2,r2=hole_dia/2+0.5,h=mt+0.2); translate([length/2-hole_offset,0,0])cylinder(r1=hole_dia/2,r2=hole_dia/2+0.5,h=mt+0.2); } } translate([-cage_mt,-mt,0])cube([length+cage_mt*2,mt,depth]); } module bracket_rear_exhaust(){ difference(){ cube([width,length,mt]); translate([fan_dia/2,fan_dia/2,-0.1])cylinder(r=(fan_dia+fan_oversize)/2,h=depth+0.2); translate([-0.1,length/2+0.1,-0.1])cube([width+0.2,(length+0.1)/2,depth+0.2]); translate([length/2,hole_offset,-0.1]){ translate([-length/2+hole_offset,0,0])cylinder(r1=hole_dia/2,r2=hole_dia/2+0.5,h=mt+0.2); translate([length/2-hole_offset,0,0])cylinder(r1=hole_dia/2,r2=hole_dia/2+0.5,h=mt+0.2); } } difference(){ translate([0,0,0])cube([length,mt*0.85,depth]); translate([length/2,hole_offset,0]){ translate([-length/2+hole_offset,0,mt])cylinder(r=hole_dia/2+screw_clearance,h=depth-mt+0.2); translate([length/2-hole_offset,0,mt])cylinder(r=hole_dia/2+screw_clearance,h=depth-mt+0.2); } } } //bracket_fanwall(); bracket_rear_exhaust();