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