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.
 
 
 
 

307 lines
8.4 KiB

round_quality = 100;
// Main Screen Design
translate([0,0,-6]) {
pi_screen();
pi_screen_cover();
}
translate([34,0,0])
gimbal();
translate([236,0,0])
gimbal();
// Tops Left Buttons
left_buttons();
right_buttons();
// Joining - Holders
// main_backbone();
/**** MODULES ****/
module left_buttons() {
translate([-101,42.5,-6]) {
difference() {
cube([70,15,2], center=true);
translate([-33,5,0])
rotate([0,0,45])
cube([45,15,3], center=true);
}
translate([-26.52,-.5,-19])
rotate([0,0,45])
cube([22,2,40], center=true);
translate([7.5,7,-19])
rotate([0,0,0])
cube([54,2,40], center=true);
translate([34,0,-19])
rotate([0,0,90])
cube([16,2,40], center=true);
}
}
module right_buttons() {
translate([101,42.5,-6]) {
difference() {
cube([70,15,2], center=true);
translate([43.5,5,0])
rotate([0,0,45])
cube([30,45,3], center=true);
}
translate([26.5,-.5,-19])
rotate([0,0,-45])
cube([22,2,40], center=true);
translate([-7.5,7,-19])
rotate([0,0,0])
cube([54,2,40], center=true);
translate([-34,0,-19])
rotate([0,0,90])
cube([16,2,40], center=true);
}
}
module gimbal() {
translate([-90,25,0]) {
/**
translate([-45,-25,-30])
cylinder($fn=round_quality, h=50, d=90, center=true);
**/
translate([-45,-25,-25]) {
difference() {
cube([70,70,40], center=true);
// The center hole
translate([0,0,-2])
cube([66,66,40], center=true);
// The Gimbal hole
translate([0,0,0])
cylinder($fn=round_quality, h=60, d=50, center=true);
}
}
translate([2,0,-26])
gimbal_ring();
}
}
module main_backbone() {
translate([0,0,-34])
cube([250,20,10], center=true);
}
module pi_screen_cover() {
translate([0,0,-30]) {
difference() {
cube([132,100,2], center=true);
translate([0,-50,0])
cube([100,10,3], center=true);
translate([0,50,0])
cube([100,10,3], center=true);
translate([-50,52,0])
rotate([0,0,45])
cube([10,10,3], center=true);
translate([-50,-52,0])
rotate([0,0,45])
cube([10,10,3], center=true);
translate([50,-52,0])
rotate([0,0,45])
cube([10,10,3], center=true);
translate([50,52,0])
rotate([0,0,45])
cube([10,10,3], center=true);
}
}
}
// 121mm x 76mm (hole)
module pi_screen() {
difference() {
translate([0,0,0]) {
cube([130,96,2], center=true);
// Holders
translate([-60,43,-2])
cube([10,10,2], center=true);
translate([60,43,-2])
cube([10,10,2], center=true);
translate([-60,-43,-2])
cube([10,10,2], center=true);
translate([60,-43,-2])
cube([10,10,2], center=true);
}
translate([0,0,0])
cube([121,76,3], center=true);
// Top and Bottom Cut
translate([0,53,0])
cube([100,20,3], center=true);
translate([0,-53,0])
cube([100,20,3], center=true);
// 45 degree cut
translate([-50,50,0])
rotate([0,0,45])
cube([10,10,3], center=true);
translate([50,50,0])
rotate([0,0,45])
cube([10,10,3], center=true);
translate([-50,-50,0])
rotate([0,0,45])
cube([10,10,3], center=true);
translate([50,-50,0])
rotate([0,0,45])
cube([10,10,3], center=true);
}
// Sides
translate([-65,0,-14])
rotate([90,0,90])
cube([96,30,2], center=true);
translate([65,0,-14])
rotate([90,0,90])
difference() {
cube([96,30,2], center=true);
// USB Hole
translate([10,0,0])
cube([50,16,3], center=true);
}
translate([0,44,-14])
rotate([90,0,0])
cube([100,30,2], center=true);
translate([0,-44,-14])
rotate([90,0,0])
difference() {
cube([100,30,2], center=true);
translate([40,0,0])
cube([10,10,5], center=true);
translate([15,0,0])
cube([10,10,5], center=true);
translate([-15,0,0])
cube([10,10,5], center=true);
translate([-40,0,0])
cube([10,10,5], center=true);
}
// Sides top and bottom
translate([-60.5,-48.9,-14])
rotate([90,0,0])
cube([11,30,2], center=true);
translate([60.5,-48.9,-14])
rotate([90,0,0])
cube([11,30,2], center=true);
translate([60.5,48.9,-14])
rotate([90,0,0])
cube([11,30,2], center=true);
translate([-60.5,48.9,-14])
rotate([90,0,0])
cube([11,30,2], center=true);
// Sides 45 degree top and bottom
translate([-52.5,46,-14])
rotate([90,0,-45])
cube([9,30,2], center=true);
translate([52.5,46,-14])
rotate([90,0,45])
cube([9,30,2], center=true);
translate([-52.5,-46,-14])
rotate([90,0,45])
cube([9,30,2], center=true);
translate([52.5,-46,-14])
rotate([90,0,-45])
cube([9,30,2], 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);
}
}