|
|
@@ -0,0 +1,82 @@
|
|
|
+// Licnese - CC0
|
|
|
+
|
|
|
+FN=20;
|
|
|
+
|
|
|
+m5r = 5.2/2;
|
|
|
+m2r = 2.2/2;
|
|
|
+
|
|
|
+fix_width = 152.5;
|
|
|
+lip_height = 30;
|
|
|
+
|
|
|
+speaker_r = 65/2;
|
|
|
+speaker_screw_d = 52;
|
|
|
+
|
|
|
+speaker_vol_d = 32.5;
|
|
|
+
|
|
|
+gps_d = 30;
|
|
|
+gps_ant_d = 16;
|
|
|
+
|
|
|
+module rounded_rect(w,h,r) {
|
|
|
+ _w = w-2*r;
|
|
|
+ _h = h-2*r;
|
|
|
+
|
|
|
+ x2 = _w/2;
|
|
|
+ y2 = _h/2;
|
|
|
+
|
|
|
+ hull() {
|
|
|
+ translate([-x2, y2]) circle(r, $fn=FN);
|
|
|
+ translate([ x2, y2]) circle(r, $fn=FN);
|
|
|
+ translate([ x2,-y2]) circle(r, $fn=FN);
|
|
|
+ translate([-x2,-y2]) circle(r, $fn=FN);
|
|
|
+ }
|
|
|
+}
|
|
|
+
|
|
|
+module speaker_tab() {
|
|
|
+ _r=3;
|
|
|
+ w = 2*speaker_r + 20;
|
|
|
+ h = 2*speaker_r + 20 + lip_height/2;
|
|
|
+ d = speaker_screw_d /2;
|
|
|
+
|
|
|
+ cx = 0;
|
|
|
+ cy = lip_height/2 ;
|
|
|
+ difference() {
|
|
|
+ rounded_rect(w,h,_r);
|
|
|
+ translate([cx,cy]) circle(speaker_r, $fn=2*FN);
|
|
|
+ translate([cx + d, cy + d]) circle(m2r, $fn=FN);
|
|
|
+ translate([cx + d, cy - d]) circle(m2r, $fn=FN);
|
|
|
+ translate([cx - d, cy - d]) circle(m2r, $fn=FN);
|
|
|
+ translate([cx - d, cy + d]) circle(m2r, $fn=FN);
|
|
|
+ }
|
|
|
+}
|
|
|
+
|
|
|
+//speaker_tab();
|
|
|
+
|
|
|
+module plate() {
|
|
|
+ _r = 3;
|
|
|
+
|
|
|
+ difference() {
|
|
|
+ union() {
|
|
|
+ rounded_rect(fix_width + 4*m5r, lip_height, _r);
|
|
|
+ translate([-fix_width/2, lip_height+10]) speaker_tab();
|
|
|
+ translate([5,lip_height-4]) rounded_rect(80,30,_r);
|
|
|
+ translate([-15,30+lip_height]) rounded_rect(46,60,_r);
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
+ translate([-30,lip_height]) circle(m2r, $fn=FN);
|
|
|
+ translate([-30+speaker_vol_d,lip_height]) circle(m2r, $fn=FN);
|
|
|
+
|
|
|
+
|
|
|
+ translate([0,60]) square([5,20], center=true);
|
|
|
+ translate([-gps_d,60]) square([5,20], center=true);
|
|
|
+
|
|
|
+ translate([-15,77]) square([20,5], center=true);
|
|
|
+
|
|
|
+
|
|
|
+ translate([-fix_width/2,0]) circle(m5r, $fn=FN);
|
|
|
+ translate([ fix_width/2,0]) circle(m5r, $fn=FN);
|
|
|
+ }
|
|
|
+
|
|
|
+}
|
|
|
+
|
|
|
+plate();
|