diff --git a/openscad/foreign/sc808/fanholder-rear.png b/openscad/foreign/sc808/fanholder-rear.png new file mode 100644 index 0000000..d032d06 Binary files /dev/null and b/openscad/foreign/sc808/fanholder-rear.png differ diff --git a/openscad/foreign/sc808/fanholder-rear.scad b/openscad/foreign/sc808/fanholder-rear.scad new file mode 100644 index 0000000..9a2764c --- /dev/null +++ b/openscad/foreign/sc808/fanholder-rear.scad @@ -0,0 +1,85 @@ +// supermicro SC808 (and others) fan holder for 2x 40x40x28mm fans instead of 3x 40x40x56mm +// by zeus - 2022-09-09 - CC-BY-NC-SA-4.0 - https://git.kostianix.de/zeus/3d-stuff/openscad/ +// ##################################### +$fn=100; +mt=1.75; +mt_center=22.5; +nipple_offset=5.5; +fan_w=42.0; +fan_h=fan_w; +fan_d=28.75; +fan_holedist=32.2; +fan_block_w=fan_w*0.55; +base_w=2*fan_w+2*mt+mt_center; +base_d=fan_d+2*mt+2*nipple_offset; +base_h=10; +base_hole_dist=161.50; +base_hole_dia=6.4; +base_hole_sleeve_h=4; +base_hole_sleeve_dia=base_hole_dia+1.5; + +base_hole_y_offset=7.5; +base_w_cpl=base_hole_dist+2*mt; +base_w_tab=base_w_cpl/2-mt-mt_center/2-fan_w; +// ##################################### +module fanblock(){ + union(){ + difference(){ + cube([base_w,base_d,base_h],center=true); + cube([base_w-2*mt,base_d-2*mt,base_h+0.1],center=true); + for (x=[-mt_center/2-fan_w/2,-(-mt_center/2-fan_w/2)],y=[(fan_d+2*nipple_offset)/2-mt,-(fan_d+2*nipple_offset)/2+mt],z=[mt,-mt]){ + translate([x,y,0]){ + rotate([90,0,0])translate([0,fan_w/2-base_h/2+mt,z])cylinder(r=fan_w/2,h=2*mt+0.1,center=true); + } + } + } + for (x=[-mt_center/2-fan_w/2,-(-mt_center/2-fan_w/2)],y=[(fan_d+2*nipple_offset)/2-mt,-(fan_d+2*nipple_offset)/2+mt]){ + translate([x,y,0]){ + difference(){ + cube([fan_block_w,2*mt,base_h],center=true); + rotate([90,0,0])translate([0,fan_w/2-base_h/2+mt,0])cylinder(r=fan_w/2,h=2*mt+0.1,center=true); + } + } + } + cube([mt_center,fan_d+2*nipple_offset,base_h],center=true); + } +} +module sleeve(){ + difference(){ + cylinder(d=base_hole_sleeve_dia,h=base_hole_sleeve_h,center=true); + cylinder(d=base_hole_dia,h=base_hole_sleeve_h+0.1,center=true); + } +} +module tab(){ + difference(){ + hull(){ + translate([-mt/2,0,0])cube([mt,base_d,mt],center=true); + translate([-base_w_tab,-base_hole_y_offset-mt,0])cylinder(r=base_hole_dia/2-1,h=mt,center=true); + translate([-base_w_tab,+base_hole_y_offset+mt,0])cylinder(r=base_hole_dia/2-1,h=mt,center=true); + } + translate([-base_hole_dist/2+base_w/2,base_hole_y_offset,0])#cylinder(d=base_hole_dia,h=mt+0.1,center=true); + translate([-base_hole_dist/2+base_w/2,-base_hole_y_offset,0])cylinder(d=base_hole_dia,h=mt+0.1,center=true); + } + translate([-base_hole_dist/2+base_w/2,base_hole_y_offset,base_hole_sleeve_h/2-mt/2])sleeve(); + translate([base_hole_dist/2+base_w/2,base_hole_y_offset,base_hole_sleeve_h/2-mt/2])sleeve(); + hull(){ + translate([-mt/2,0,0])cube([mt,mt,mt],center=true); + translate([-mt/2,0,base_h-mt])cube([mt,mt,mt],center=true); + translate([-mt/2-base_w_tab,0,0])cube([mt,mt,mt],center=true); + } +} +module hole_control(){ + for(x=[-base_hole_dist/2,base_hole_dist/2],y=[-base_hole_y_offset,base_hole_y_offset]){ + translate([x,y,0])#cylinder(d=base_hole_dia-1,h=4*mt,center=true); + } +} +// ##################################### +translate([0,0,base_h/2])fanblock(); + +translate([-base_w/2,0,mt/2])tab(); +rotate([0,0,180])translate([-base_w/2,0,mt/2])tab(); + + +//hole_control(); + +//translate([-6.25,-10.25,-base_h/2])%import("fanholdersrc.stl",center=true); diff --git a/openscad/foreign/sc808/fanholder-rear.stl b/openscad/foreign/sc808/fanholder-rear.stl new file mode 100644 index 0000000..c0b7cf5 Binary files /dev/null and b/openscad/foreign/sc808/fanholder-rear.stl differ diff --git a/openscad/foreign/sc808/io-shield.scad b/openscad/foreign/sc808/io-shield.scad index 6fb35fa..4d0c5fc 100644 --- a/openscad/foreign/sc808/io-shield.scad +++ b/openscad/foreign/sc808/io-shield.scad @@ -81,7 +81,7 @@ module shield_2(){ shield_hole(-shield_w/2+mt/2,-0.5,4,0,-90); //left side shield_hole(-shield_w/2+mt/2+4.5,shield_h/2-shield_tab_emboss_d-mt/2-q*0.5,6.25,-90,0); //top side, 1st from left (recessed) shield_hole(-shield_w/2+mt/2+29.5,shield_h/2-mt/2,4.4,-90,0); //top side, 2nd from left - shield_hole(-shield_w/2+mt/2+148,shield_h/2-mt/2,4.4,-90,0); //top side, 3rd from left + shield_hole(-shield_w/2+mt/2+147,shield_h/2-mt/2,4.4,-90,0); //top side, 3rd from left shield_hole(-shield_w/2+mt/2+162,shield_h/2-shield_tab_emboss_d-mt/2-q*0.5,5.5,-90,0); //top side, 4th from left (recessed) shield_hole(-shield_w/2+mt/2+171.5,shield_h/2-shield_tab_emboss_d-mt/2-q*0.5,6.25,-90,0); //top side, 5th from left (recessed) shield_hole(shield_w/2-mt/2,-0.5,4,0,90); //right side