3d-stuff/openscad/own/supermicro_cs836_fan-holder/fanholder_back.scad

77 lines
3.6 KiB
OpenSCAD

// 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();