E5-Microswiss-Spider/coolingFanMount.scad

68 lines
1.6 KiB
OpenSCAD

/* mount options */
wt = 5; // wall thickness (min 5mm for m2 inserts)
tb = 40;
bpt = 7;
/* fan size */
lf = 40; // length
tf = 10; // thickness
lhf = 34.8; // distance mounting holes
lof = 28; // length of outlet
wof = 8; // width of outlet
rc = 2; // radius corners
t= tb-bpt-tf;
$fn= 100;
module through(l=7, lh=3.3, lt=1, lb=1){
union(){
translate([0,0,l-lh])cylinder(h=lh+lt, d=5.6);
translate([0,0,-lb])cylinder(h=l+lh+lb, d=3.5);
}
}
module m3 (h=8, lt=1){
//translate([0,0,-lt])cylinder(h, d=2.5); // tapped M3
translate([0,0,-lt])cylinder(h, d=4); // rutex insert
}
module m2 (h=8, lt=1){
translate([0,0,-lt])cylinder(h, d=1.5); // tapped M3
//translate([0,0,-lt])cylinder(h, d=3.2); // rutex insert
}
module mount(){
translate([4,4,-12])difference(){
hull(){
translate([0,0,6])cylinder(h=6, d=8);
translate([4,-4,0])cube([0.01,8,12]);
}
translate([0,0,12])mirror([0,0,1])through(l=10,lb=1,lt=1,lh=7);
}
}
difference(){
union(){
hull(){
for(x=[rc, lf-rc]){
for(y=[rc, lf-rc]){
translate([x,y])cylinder(h=wt,r=rc);
}
}
}
translate([lf,5,wt+8])rotate([0,90,0])mount();
translate([lf,lf-5-8,wt+8])rotate([0,90,0])mount();
}
for(x=[(lf-lhf)/2, (lf-lhf)/2+lhf]){
for(y=[(lf-lhf)/2, (lf-lhf)/2+lhf]){
translate([x,y])m2();
}
}
translate([8, 0,wt/2])rotate([-90,0,0])m2();
translate([lf-8, 0,wt/2])rotate([-90,0,0])m2();
}