diff --git a/Gehauese.scad b/Gehauese.scad index 971672d753c98036b3ad7a350a7a8ab0b31d64a1..860817ef65398ebd2ed7c6914ceb7f15719f387e 100644 --- a/Gehauese.scad +++ b/Gehauese.scad @@ -1,3 +1,4 @@ +$fn = 50; /* * Funktion: Erstellt einen Raspberry Pi 4 [In1]: X-Koordinate @@ -131,7 +132,7 @@ module camera(x, y, z) { // CAM-Hole translate([x+19, y+19, z-10]) rotate([0, 0, 90]) cylinder(15, 11.2, 11.2, $fn=50, true); // Stativ-Hole - translate([x+19, y-10, z-6]) rotate([0, 90, 90]) cylinder(10, 3, 3, $fn=50, true); + translate([x+19, y-10, z-4.5]) rotate([0, 90, 90]) cylinder(10, 3, 3, $fn=50, true); } // Photodiode translate([x+15, y+15, z-3]) color([0.3, 0.3, 0.5], 1) cube([8.5, 8.5, 1.5]); @@ -141,6 +142,16 @@ module camera(x, y, z) { /*----------- Parts of Raspberry Pi case -------------*/ +module case_raspberryPi_screwcylinder(x, y, z, visibility) { + difference() { + //difference + translate([x, y+1, z-5]) color([0.4, 0.4, 0.4], visibility) cylinder(20, 0.4, 5, $fn=50, true); + translate([x-5, y+1, z-10.9]) cube([11, 7, 16]); + translate([x, y, z+1]) cylinder(10, 1.25, 1.25, $fn=50, true); + translate([x-5, y+1, z-10.9]) cube([11, 7, 16]); + } +} + module screwcylinder(x, y, z, visibility) { echo("Schraubzylinder erstellen"); difference(){ @@ -151,7 +162,10 @@ module screwcylinder(x, y, z, visibility) { module case_left_side(x, y, z, visibility) { - translate([x, y, z]) color([0.4, 0.4, 0.4], visibility) cube([2, 62, 28.5]); + union() { + translate([x, y, z]) color([0.4, 0.4, 0.4], visibility) cube([2, 62, 28.5]); + //case_raspberryPi_screwcylinder(x, y, z, visibility); + } } module case_right_side(x, y, z, visibility) { @@ -161,17 +175,6 @@ module case_right_side(x, y, z, visibility) { translate([x-0.5, y+3.6, z+6]) cube([3, 15.75, 17]); translate([x-0.5, y+21.5, z+6]) cube([3, 15.75, 17]); translate([x-0.5, y+40, z+6]) cube([3, 17, 14.5]); - //translate([x+10, y-7.5, z+23.65]) rotate([0, 0, 0]) cube([11, 6, 5]); - } - difference() { - union() { - translate([x+2, y-3, z+22.5]) color([0.4 , 0.4, 0.4], visibility) cube([3, 68, 10 ]); - translate([x, y-2, z+30.5]) color([0.4, 0.4, 0.4], visibility) cube([5, 60, 2]); - } - translate([x-0.2, y+2, z+29]) rotate([0, -45, 0]) cube([10, 58, 3]); - translate([x+1, y-4, z+18]) rotate([0, -45, 0]) cube([10, 70, 3]); - translate([x+1, y+62, z+23.25]) rotate([-45, 0, 0]) cube([10, 5, 5]); - translate([x+1, y-7.5, z+23.65]) rotate([-45, 0, 0]) cube([11, 6, 5]); } } } @@ -179,17 +182,8 @@ module case_right_side(x, y, z, visibility) { module case_back_side(x, y, z, visibility) { union() { translate([x, y, z]) color([0.4, 0.4, 0.4], visibility) cube([95, 2, 28.5]); - - // Rahmen - difference() { - union() { - translate([x, y+2, z+22.5]) color([0.4, 0.4, 0.4], visibility) cube([95, 3, 10 ]); - translate([x, y, z+30.5]) color([0.4, 0.4, 0.4], visibility) cube([95, 5, 2]); - } - translate([x-0.2, y+3, z+20]) rotate([45, 0, 0]) cube([97, 10, 3]); - translate([x-0.2, y, z+30.5]) rotate([45, 0, 0]) cube([97, 3, 10]); - } - + rotate([0, 0, 180]) case_raspberryPi_screwcylinder(x-5, y-123, z+23.5, visibility); + rotate([0, 0, 180]) case_raspberryPi_screwcylinder(x-90, y-123, z+23.5, visibility); } } @@ -205,16 +199,10 @@ module case_front_side(x, y, z, visibility) { translate([x+42.2, y-0.2, z+6]) cube([8.5, 4 , 4]); // USB-C-hole translate([x+13, y-0.2, z+6]) cube([10.5, 4, 4]); - } - // Rahmen - difference() { - union() { - translate([x, y-3, z+22.5]) color([0.4, 0.4, 0.4], visibility) cube([95, 3, 10 ]); - translate([x, y-3, z+30.5]) color([0.4, 0.4, 0.4], visibility) cube([95, 5, 2]); - } - translate([x-0.2, y-1.5, z+20.5]) rotate([45, 0, 0]) cube([97, 3, 10]); - translate([x-0.2, y+2, z+30.5]) rotate([45, 0, 0]) cube([97, 3, 10]); - } + } + //union + rotate([0, 0, 0]) case_raspberryPi_screwcylinder(x+5, y-1, z+23.5, visibility); + rotate([0, 0, 0]) case_raspberryPi_screwcylinder(x+90, y-1, z+23.5, visibility); } } @@ -227,8 +215,22 @@ module case_ground_plate(x, y, z, visibility) { module case_top_side(x, y, z, visibility) { difference() { - translate([x, y, z]) color([0.4, 0.4, 0.4], visibility) cube([95, 62, 2]); - translate([x+9, y+4, z-0.5]) color([0.4, 0.4, 0.4], visibility) cube([80, 53, 3]); + union() { + difference() { + translate([x, y, z]) color([0.4, 0.4, 0.4], visibility) cube([95, 62, 2]); + translate([x+9, y+4, z-0.5]) color([0.4, 0.4, 0.4], visibility) cube([80, 53, 3]); + } + // union + translate([x+5, y, z+1]) color([0.4, 0.4, 0.4], visibility) cylinder(2, 5, 5, true); + translate([x+90, y, z+1]) color([0.4, 0.4, 0.4], visibility) cylinder(2, 5, 5, true); + translate([x+5, y+62, z+1]) color([0.4, 0.4, 0.4], visibility) cylinder(2, 5, 5, true); + translate([x+90, y+62, z+1]) color([0.4, 0.4, 0.4], visibility) cylinder(2, 5, 5, true); + } + // difference + translate([x+5, y-1, z+1]) cylinder(3, 1.3, 1.3, true); + translate([x+90, y-1, z+1]) cylinder(3, 1.3, 1.3, true); + translate([x+5, y+63, z+1]) cylinder(3, 1.3, 1.3, true); + translate([x+90, y+63, z+1]) cylinder(3, 1.3, 1.3, true); } } @@ -290,8 +292,13 @@ module case_camera_top_side(x, y, z, visibility) { difference() { translate([x, y, z-2]) color([0.4, 0.4, 0.4 ], visibility) cube([95, 62, 2]); translate([x+49, y+29, z-1]) cylinder(3, 16, 16, true); + translate([x+5, y+28, z+1]) cylinder(10, 1.3 , 1.3, true); + translate([x+5, y+57, z+1]) cylinder(10, 1.3 , 1.3, true); + translate([x+90, y+57, z+1]) cylinder(10, 1.3, 1.3, true); + translate([x+90, y+5, z+1]) cylinder(10, 1.3, 1.3, true); } case_camera_top_side_edge(x, y, z, visibility); + } } @@ -304,7 +311,7 @@ module case_camera_top_side_edge(x, y, z, visibility) { case_camera_edge_screwcylinder(x+5, y+28 , z+2.5, visibility); translate([x-2.5, y+22.5, z]) color([0.4 ,0.4, 0.4]) cube([8, 11, 5], visibility); } - translate([x-0.5, y+24.5, z]) cube([6, 7, 6]); + translate([x-0.5, y+24.5, z-0.1]) cube([6.05 , 7, 6]); translate([x-3.5, y+22, z-1]) cube([6, 12, 7 ]); } // Front side @@ -379,7 +386,6 @@ module case_camera(x, y, z, visibility) { case_camera_front_side(x, y, z-20, visibility); case_camera_right_side(x+93, y, z-20, visibility); case_camera_back_side(x, y+60, z-20, visibility); - //case_camera_top_side(x, y, z-20, visibility); case_camera_screwcylinder1(x+34, y+13, z-4.5, visibility); case_camera_screwcylinder1(x+64, y+13, z-4.5, visibility); case_camera_screwcylinder1(x+64, y+43, z-4.5, visibility); @@ -388,6 +394,14 @@ module case_camera(x, y, z, visibility) { case_camera_screwcylinder2(x+90, y+57, z-11, visibility); case_camera_screwcylinder2(x+5, y+57, z-11, visibility); case_camera_screwcylinder2(x+5, y+28, z-11, visibility); + /* Additional material */ + translate([x, y+25.5, z-20]) color([0.4, 0.4, 0.4], visibility) cube([3.5, 5, 20]); + translate([x+1, y+55, z-20]) color([0.4, 0.4, 0.4], visibility) cube([2, 5, 20]); + translate([x+2, y+59, z-20]) color([0.4, 0.4, 0.4], visibility) cube([5, 2, 20]); + translate([x+92, y+55, z-20]) color([0.4, 0.4, 0.4], visibility) cube([2, 5, 20]); + translate([x+89, y+59, z-20]) color([0.4, 0.4, 0.4], visibility) cube([5, 2, 20]); + translate([x+92, y+2, z-20]) color([0.4, 0.4, 0.4], visibility) cube([2, 5, 20]); + translate([x+89, y+1, z-20]) color([0.4, 0.4, 0.4], visibility) cube([5, 2, 20]); } } @@ -395,6 +409,7 @@ module case_camera_top(x, y, z, visibility) { case_camera_top_side(x, y, z-20, visibility); } +/*------------------- Assembling ------------------*/ case_raspberryPi_top(0, 0, 0, 0.7); touchscreen(0, 0, 0); raspberryPi(0, 0, 0);