48 lines
1.2 KiB
OpenSCAD
48 lines
1.2 KiB
OpenSCAD
$fn=128;
|
|
|
|
fw = 48.3; // fan width
|
|
|
|
h = 4; // base height
|
|
r = 5; // edge width
|
|
|
|
pn = 7; // number of pins
|
|
ph = 7; // pin height
|
|
pa = 20; // pin angle
|
|
|
|
mw = 10.25; // magnet width
|
|
ml = 20.25; // magnet length
|
|
mb = 17; // magnet bar width
|
|
g = 10; // magnet gap
|
|
|
|
d=fw+r+r; // total diameter
|
|
cl=d-r; // magnet bar length
|
|
a=360/pn; // segment angle
|
|
|
|
difference() {
|
|
union() {
|
|
difference() {
|
|
translate([0,0,0]) cylinder(h+ph,d/2,d/2);
|
|
translate([0,0,-1]) cylinder(h+ph+2,d/2-r,d/2-r);
|
|
for (i =[0:1:pn-1]) {
|
|
pin(a*i);
|
|
}
|
|
}
|
|
translate([-cl/2,-mb/2,0]) cube([cl,mb,h]);
|
|
rotate ([0,0,90]) translate([-cl/2,-(mb-mw)/4-d/7,0]) cube([cl,(mb-mw)/2,h]);
|
|
rotate ([0,0,90]) translate([-cl/2,-(mb-mw)/4+d/7,0]) cube([cl,(mb-mw)/2,h]);
|
|
}
|
|
translate([-ml-g/2,-mw/2,-1]) cube([ml,mw,h]);
|
|
translate([g/2,-mw/2,-1]) cube([ml,mw,h]);
|
|
}
|
|
|
|
module pin(r) {
|
|
translate([0,0,0.01]) rotate([0,0,r]) hull() {
|
|
translate([0,0,h]) cylinder(h+ph,0.1,0.1);
|
|
translate([-d,0,h]) cylinder(h+ph,0.1,0.1);
|
|
rotate ([0,0,a-pa])union() {
|
|
translate([0,0,h]) cylinder(h+ph,0.1,0.1);
|
|
translate([-d,0,h]) cylinder(h+ph,0.1,0.1);
|
|
}
|
|
}
|
|
}
|