You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 

300 lines
8.0 KiB

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);
}
}