round_quality = 100; show_faceplate = true; if(show_faceplate) { // Basic structures translate([-30,-80,0]) gimbal_unit_face(); translate([0,0,0]) pi_screen(); translate([100,0,0]) m5stack(); translate([95,-80,0]) gimbal_unit_face(); // Spacers difference() { spacers(); // Power Switch 1 translate([20,-80,0]) cube([11,16,5], center=true); // Power Switch 2 translate([45,-80,0]) cube([11,16,5], center=true); // Screw Holes translate([-70,38,0]) cylinder($fn=round_quality, h=5, d=5, center=true); translate([-70,-38,0]) cylinder($fn=round_quality, h=5, d=5, center=true); translate([-70,-110,0]) cylinder($fn=round_quality, h=5, d=5, center=true); translate([70,38,0]) cylinder($fn=round_quality, h=5, d=5, center=true); translate([70,-38,0]) cylinder($fn=round_quality, h=5, d=5, center=true); translate([133,-110,0]) cylinder($fn=round_quality, h=5, d=5, center=true); translate([133,-38,0]) cylinder($fn=round_quality, h=5, d=5, center=true); translate([133,38,0]) cylinder($fn=round_quality, h=5, d=5, center=true); translate([33,-110,0]) cylinder($fn=round_quality, h=5, d=5, center=true); } // Ruler // translate([30,-48,0]) // cube([360,2,2], center=true); // Display Decor translate([0,0,3]) difference() { cube([130,86,5], center=true); cube([121,76,8], center=true); } // M5Stack Decor translate([100,0,3]) difference() { translate([0,0,0]) cube([55,55,5], center=true); translate([0,0,0]) cube([50,50,8], center=true); } // Pi Screen and M5Stack Links translate([0,0,3]) { translate([70,0,0]) cube([10,5,2], center=true); translate([70,10,0]) cube([10,5,2], center=true); translate([70,20,0]) cube([10,5,2], center=true); translate([70,-20,0]) cube([10,5,2], center=true); translate([70,-10,0]) cube([10,5,2], center=true); } } // End of show_faceplate // Gimbal Decor translate([17,-55,-20]) gimbal_ring(); translate([143,-55,-20]) gimbal_ring(); /** translate([-125,-8,0]) gimbal_unit_face(); translate([125,-8,0]) gimbal_unit_face(); translate([0,0,0]) pi_screen(); translate([0,-72,0]) m5stack(); // Bridges translate([0,0,0]) face_bridges(); **/ module spacers() { translate([-70,0,0]) cube([10,86,2], center=true); translate([68,0,0]) cube([10,86,2], center=true); translate([132,0,0]) cube([10,86,2], center=true); translate([100,35,0]) cube([55,16,2], center=true); translate([100,-35,0]) cube([55,16,2], center=true); translate([31,-44,0]) cube([212,5,2], center=true); translate([30,-80,0]) cube([60,70,2], center=true); translate([-70,-80,0]) cube([10,70,2], center=true); translate([132,-80,0]) cube([10,70,2], center=true); } module face_bridges() { translate([-80,0,0]) cube([30,86,2], center=true); translate([80,0,0]) cube([30,86,2], center=true); translate([0,48,0]) cube([190,10,2], center=true); translate([0,-48,0]) difference() { cube([320,10,2], center=true); translate([0,-25,1]) m5stack_solid(); } } module m5stack_solid() { cube([55,55,10], center=true); } module m5stack() { difference() { translate([0,0,0]) cube([55,55,2], center=true); translate([0,0,0]) cube([50,50,3], center=true); } } // 121mm x 76mm (hole) module pi_screen() { difference() { translate([0,0,0]) cube([130,86,2], center=true); translate([0,0,0]) cube([121,76,3], center=true); } } module gimbal_unit_face() { translate([0,0,0]) { // Top difference() { translate([0,0,0]) rotate([0,0,0]) cube([70,70,2], center=true); // Frsky M9 Gimbal translate([0,0,0]) rotate([0,0,0]) cylinder($fn=round_quality, h=5,d=49, center=true); // Frsky M9 Screen Top Left translate([-27.25,27.25,0]) rotate([0,0,0]) cylinder($fn=round_quality, h=5,d=5.6, center=true); // Frsky M9 Screen Top Right translate([27.25,27.25,0]) rotate([0,0,0]) cylinder($fn=round_quality, h=5,d=5.6, center=true); // Frsky M9 Screen Bottom Left translate([-27.25,-27.25,0]) rotate([0,0,0]) cylinder($fn=round_quality, h=5,d=5.6, center=true); // Frsky M9 Screen Bottom Right translate([27.25,-27.25,0]) rotate([0,0,0]) cylinder($fn=round_quality, h=5,d=5.6, center=true); /* translate([0,0,0]) rotate([0,0,0]) cube([77,51,4], center=true); */ } } // Just a ruler /*** translate([-13.9,-44.4]) cube([100,10,10], center=true); ***/ } module gimbal_ring_full() { translate([-47,-25,23.5]) cylinder(h=5, d=64.5, center=true, $fn=round_quality); translate([-71,-49,23.5]) rotate([0,0,45]) difference() { cube([15,10,5], center=true); translate([-9,0,2]) rotate([0,-15,0]) cube([25,15,5], center=true); translate([-4,0,0]) cylinder(h=10, d=3.5, center=true, $fn=round_quality); translate([-4,0,0]) cylinder(h=3, d=5.6, center=true, $fn=round_quality); } translate([-23,-49,23.5]) mirror([-1,0,0]) { rotate([0,0,45]) difference() { cube([15,10,5], center=true); translate([-9,0,2]) rotate([0,-15,0]) cube([25,15,5], center=true); translate([-4,0,0]) cylinder(h=10, d=3.5, center=true, $fn=round_quality); translate([-4,0,0]) cylinder(h=3, d=5.6, center=true, $fn=round_quality); } } translate([-71,-0.8,23.5]) mirror([0,-1,0]) { rotate([0,0,45]) difference() { cube([15,10,5], center=true); translate([-9,0,2]) rotate([0,-15,0]) cube([25,15,5], center=true); translate([-4,0,0]) cylinder(h=10, d=3.5, center=true, $fn=round_quality); translate([-4,0,0]) cylinder(h=3, d=5.6, center=true, $fn=round_quality); } } translate([-22.5,-0.5,23.5]) mirror([-1,-1,0]) { rotate([0,0,45]) difference() { cube([15,10,5], center=true); translate([-9,0,2]) rotate([0,-15,0]) cube([25,15,5], center=true); translate([-4,0,0]) cylinder(h=10, d=3.5, center=true, $fn=round_quality); translate([-4,0,0]) cylinder(h=3, d=5.6, center=true, $fn=round_quality); } } } module gimbal_ring() { difference() { gimbal_ring_full(); translate([-47,-25,23.5]) cylinder(h=6, d1=47.5, d2=57.5, center=true, $fn=round_quality); } }