$fn=60; U=411; R=U/(2*PI); H=20; module frame() { rotate([0,0,3]) { difference() { union() { // fins for (i=[0:59]) { rotate([0,0,6*i]) { translate([0,R+2,1]) { cube([1,13,H]); } } } // base plate cylinder(h=2, r=R+15); // back plate translate([0,0,H-2]) { cylinder(h=2, r=R); } // outer back plate translate([0,0,H-1]) { difference() { cylinder(h=2, r=R+15); translate([0,0,-1]) { cylinder(h=4, r=R+10); } } } // led mounting cylinder translate([0,0,1]) { cylinder(h=H, r=R); } } // middle cutout translate([0,0,-1]) { cylinder(h=H+1, r=R-3); } // frontplate mounting hole for (i=[0:30:359]) { rotate([0,0,i-3]) { translate([0,R+7,-1]) { cylinder(h=4, r=2); } } } // cable feed hole rotate([0,0,-3]) { translate([0,-R-1.9,2]) { rotate([0,0,25]) { cube([20,2,H-2]); } } } rotate([0,0,-3]) { // back plate mounting hole translate([0,R-10,H-3]) { hull() { cylinder(h=4, r=2.5); translate([0,-10,0]) { cylinder(h=5, r=7.5); } } } // back plate button holes translate([20,0,H-1]) { cylinder(h=4, r=2.5); } translate([-20,0,H-1]) { cylinder(h=4, r=2.5); } // cabling holes translate([0,R+1, H-2]) { rotate([90,0,0]) { cylinder(h=5, r=2); } } } } } } frame();