diff --git a/Gehauese.scad b/Gehauese.scad index c23d5b1cf3488bc61c9d59573a3d9b13e78b39be..0c4c32a9908b70a7d8b26e609d046b1f06b109bf 100644 --- a/Gehauese.scad +++ b/Gehauese.scad @@ -7,15 +7,15 @@ module raspberryPi(x, y, z) { off_x = 7 + x; off_y = 2.5 + y; - off_z = 5 + z; + off_z = 7 + z; difference(){ union(){ // PCB - translate([off_x+0, off_y+0, off_z+0]) color([0, 1, 0], 1.0) cube([85, 56, 1.5]); + translate([off_x+0, off_y+0, off_z+0]) color([0, 1, 0], 1.0) cube([85, 56, 1.5]); // USB1 - translate([off_x+70.5, off_y+1.5, off_z+1.5]) color([0.8, 0.8, 0.8], 1.0) cube([ 17.5, 15 , 16]); + translate([off_x+70.5, off_y+1.5, off_z+1.5]) color([0.8, 0.8, 0.8], 1.0) cube([ 17.5, 15, 15.5]); // USB2 - translate([off_x+70.5, off_y+19.5, off_z+1.5]) color([0.8 , 0.8, 0.8], 1.0) cube ([17.5, 15, 16]); + translate([off_x+70.5, off_y+19.5, off_z+1.5]) color([0.8 , 0.8, 0.8], 1.0) cube ([17.5, 15, 15.5]); // ETH1 translate([off_x+66, off_y+38, off_z+1.5]) color([0.8, 0.8, 0.8], 1.0) cube([22, 16, 13.5]); // USB-C @@ -29,7 +29,7 @@ module raspberryPi(x, y, z) { // mSD-Card translate([off_x+-2.2, off_y+22.5, off_z+-1.5]) color([ 0.0, 0.0, 0.0], 1.0) cube ([10, 11, 1.5]); //Pin-Header - translate([off_x+7.5, off_y+49.5, off_z+1.5]) color([0.0, 0.0, 0.0], 1.0) cube([50 , 6, 8.5]); + translate([off_x+7.5, off_y+50, off_z+1.5]) color([0.0, 0.0, 0.0], 1.0) cube([50 , 5, 2.5]); //Mount hole1 - Copper translate([off_x+3.5, off_y+3.5, off_z+0.75]) color([ 0.83137, 0.68627, 0.2157], 1.0) cylinder(1.6, 3, 3 , $fn=50, true); @@ -77,11 +77,28 @@ module raspberryPi(x, y, z) { } } -/*----------------------- Parts of HQ Camera --------------------------------*/ +/*----------------- 3,5" Touchscreen ------------------*/ +module touchscreen(x, y, z) { + x = x+7.5; + y = y+3.5; + z = z+24.5; + union() { + // PCB + translate([x+0, y+0, z+0]) color([0.03137, 0.2784, 0.5529], 1.0) cube([85, 55, 1.5]); + // Middlelayer + translate([x+1.5, y+0, z+1.5]) color([0.95, 0.95, 0.95], 1.0) cube([82.5, 54, 3.5]); + // Display + translate([x+1.5, y+0, z+5]) color([0.15, 0.15, 0.15], 1.0) cube([82.5, 54, 1]); + // Header + translate([x+7, y+49, z-13.5]) color([0.15, 0.15, 0.15], 1.0) cube([33.5, 5, 13.5]); + } +} + +/*----------------- Parts of HQ Camera ----------------*/ module camera(x, y, z) { x = x+30; - y = y+10; + y = y+9; z = z-8.5; union() { difference() { @@ -96,12 +113,12 @@ module camera(x, y, z) { translate([x+4, y+4, z+0.75]) color([0.83137, 0.68627, 0.2157], 1.0) rotate([0, 0 , 90]) cylinder(1.6, 2.5, 2.5,$fn=50, true); // Mounting-hole2 translate([x+34, y+4, z+0.75]) color([0.83137, 0.68627, 0.2157], 1.0) rotate([0, 0, 90]) cylinder(1.6, 2.5, 2.5,$fn=50, true); - // Mounting-hol3 + // Mounting-hole3 translate([x+34, y+34, z+0.75]) color([0.83137, 0.68627, 0.2157], 1.0) rotate([0, 0, 90]) cylinder(1.6, 2.5, 2.5,$fn=50, true); // Mounting-hole4 translate([x+4, y+34, z+0.75]) color([0.83137, 0.68627, 0.2157], 1.0) rotate([0, 0, 90]) cylinder(1.6, 2.5, 2.5,$fn=50, true); // Stativ - translate([x+12, y-11, z-10]) color([0.3, 0.3, 0.3], 1) cube([14, 12, 7.62]); + translate([x+12, y-11, z-10]) color([0.3, 0.3, 0.3], 1) cube([14, 12, 11]); } // Mounting-hole1 translate([x+4, y+4, z+0.75]) rotate([0, 0, 90]) cylinder(1.8, 1.25, 1.25, $fn=50, true); @@ -121,7 +138,9 @@ module camera(x, y, z) { } } -/*---------------------- Parts of Raspberry Pi case ------------------------*/ + +/*----------- Parts of Raspberry Pi case -------------*/ + module screwcylinder(x, y, z, visibility) { echo("Schraubzylinder erstellen"); difference(){ @@ -132,33 +151,33 @@ 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, 40]); + translate([x, y, z]) color([0.4, 0.4, 0.4], visibility) cube([2, 62, 28.5]); } module case_right_side(x, y, z, visibility) { difference() { - translate([x, y, z]) color([0.4, 0.4, 0.4], visibility) cube([2, 62, 40]); - translate([x-0.5, y+3.6, z+4.4]) cube([3, 15.75, 16.5]); - translate([x-0.5, y+21.5, z+4.4]) cube([3, 15.75, 16.5]); - translate([x-0.5, y+40, z+4.4]) cube([3, 17, 14]); + translate([x, y, z]) color([0.4, 0.4, 0.4], visibility) cube([2, 62, 28.5]); + 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]); } } module case_back_side(x, y, z, visibility) { - translate([x, y, z]) color([0.4, 0.4, 0.4], visibility) cube([95, 2, 40]); + translate([x, y, z]) color([0.4, 0.4, 0.4], visibility) cube([95, 2, 28.5]); } module case_front_side(x, y, z, visibility) { difference() { - translate([x, y, z]) color([0.4, 0.4, 0.4], visibility) cube([95, 2, 40]); + translate([x, y, z]) color([0.4, 0.4, 0.4], visibility) cube([95, 2, 28.5]); // Aux-hole - translate([x+61, y-0.2, z+8]) rotate([0, 90, 90]) cylinder(5, 3.5, 3.5,$fn=50, true); + translate([x+61, y-0.2, z+10]) rotate([0, 90, 90]) cylinder(5, 4, 4,$fn=50, true); // HDMI-hole1 - translate([x+28.7, y-0.2, z+4.3]) cube([8.5, 4, 3.5]); + translate([x+28.7, y-0.2, z+6]) cube([8.5, 4, 4]); // HDMI-hole2 - translate([x+42.2, y-0.2, z+4.3]) cube([8.5, 4, 3.5]); + translate([x+42.2, y-0.2, z+6]) cube([8.5, 4, 4]); // USB-C-hole - translate([x+13, y-0.2, z+4.3]) cube([10.5, 4, 3.5]); + translate([x+13, y-0.2, z+6]) cube([10.5, 4, 4]); } } @@ -169,24 +188,32 @@ 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]); + } +} + module case_raspberryPi(visibility){ difference() { union(){ - screwcylinder(10.5, 6, 3, visibility); - screwcylinder(68.5, 6, 3, visibility); - screwcylinder(68.5, 55, 3, visibility); - screwcylinder(10.5, 55, 3, visibility); + screwcylinder(10.5, 6, 4.5, visibility); + screwcylinder(68.5, 6, 4.5, visibility); + screwcylinder(68.5, 55, 4.5, visibility); + screwcylinder(10.5, 55, 4.5, visibility); case_right_side(93, 0, 2, visibility); case_left_side(0, 0, 2, visibility); case_back_side(0, 60, 2, visibility); case_front_side(0, 0, 2, visibility); case_ground_plate(0, 0, 0, visibility); + case_top_side(0, 0, 30.5, visibility); } } } -/*---------------------------- Parts of cameracase ---------------------------------*/ +/*-------------- Parts of cameracase ------------------*/ module case_camera_ground_plate(x, y, z, visibility) { difference() { @@ -205,7 +232,7 @@ module case_camera_left_side(x, y, z, visibility) { module case_camera_front_side(x, y, z, visibility) { difference() { translate([x, y, z]) color([0.4, 0.4, 0.4], visibility) cube([95, 2, 20]); - translate([x+41.5, y-0.2, z-15]) cube([15, 3, 13]); + translate([x+41.5, y-0.5, z-0.1]) cube([15, 3, 13.1]); } } @@ -239,10 +266,10 @@ module case_camera_top_side_edge(x, y, z, visibility) { translate([x-0.5, y+24.5, z]) cube([6, 7, 6]); translate([x-3.5, y+22, z-1]) cube([6, 12, 7 ]); } - // Top side + // Front side difference() { union() { - translate([x+9, y+57.5, z]) color([0.4, 0.4, 0.4], visibility) cube([78, 2, 5 ]); + translate([x+9, y+57.5, z]) color([0.4, 0.4, 0.4], visibility) cube([77, 2, 5 ]); case_camera_edge_screwcylinder(x+5, y+ 57, z+2.5, visibility); translate([x+8.5, y+57, z]) color([0.4, 0.4, 0.4], visibility) cube([2, 2.5, 5]); translate([x+3, y+51.5, z]) color([0.4, 0.4, 0.4], visibility) cube([2.5, 2, 5]); @@ -252,6 +279,33 @@ module case_camera_top_side_edge(x, y, z, visibility) { translate([x+1.5, y+53.5, z-0.1]) color([0.4 , 0.4, 0.4], visibility) cube([4, 8 , 6]); translate([x+0.5, y+56.5, z-0.1]) color([0.4 , 0.4, 0.4], visibility) cube([8, 4 , 6]); } + // Right side + difference() { + union() { + translate([x+90.5, y+8.5, z]) color([0.4, 0.4, 0.4], visibility) cube([2, 45, 5]); + case_camera_edge_screwcylinder(x+90, y+57, z+2.5, visibility); + translate([x+84.5, y+57, z]) color([0.4, 0.4, 0.4], visibility) cube([2, 2.5, 5]); + translate([x+89.5, y+51.5, z]) color([0.4, 0.4, 0.4], visibility) cube([2.5, 2, 5]); + } + translate([x+85, y+59.5, z-0.1]) color([0.4, 0.4, 0.4], visibility) cube([10, 4, 6]); + translate([x+92.5, y+51.5, z-0.1]) color([ 0.4, 0.4, 0.4], visibility) cube([4, 10, 6]); + translate([x+90.5, y+53.5, z-0.1]) color([ 0.4, 0.4, 0.4], visibility) cube([5, 3, 6]); + translate([x+86.5, y+57, z-0.1]) color([ 0.4, 0.4, 0.4], visibility) cube([5, 3, 6]); + } + } + // Back side + difference() { + union() { + translate([x+3, y+2.5, z]) color([0.4, 0.4, 0.4], visibility) cube([83, 2, 5 ]); + case_camera_edge_screwcylinder(x+90, y+5, z+2.5, visibility); + translate([x+84.5, y+3, z]) color([0.4, 0.4, 0.4], visibility) cube([2, 2.5, 5]); + translate([x+89.5, y+8.5, z]) color([0.4, 0.4, 0.4], visibility) cube([2.5, 2, 5]); + } + translate([x+85, y-1.5, z-0.1]) color([0.4, 0.4, 0.4], visibility) cube([10, 4, 6]); + translate([x+92.5, y, z-0.1]) color([ 0.4, 0.4, 0.4], visibility) cube([4, 10, 6]); + translate([x+90.0, y+5.5, z-0.1]) color([ 0.4, 0.4, 0.4], visibility) cube([5, 3, 6]); + translate([x+86.5, y+2, z-0.1]) color([ 0.4, 0.4, 0.4], visibility) cube([15, 3, 6]); + translate([x+41, y+2, z+1]) color([ 0.4, 0.4, 0.4], visibility) cube([16, 3, 6]); } } @@ -279,25 +333,26 @@ module case_camera_screwcylinder2(x, y, z, visibility) { module case_camera(x, y, z, visibility) { union() { - //case_camera_ground_plate(x, y, z, visibility); - //case_camera_left_side(x, y, z-20, visibility); + case_camera_ground_plate(x, y, z, visibility); + case_camera_left_side(x, y, z-20, 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_back_side(x, y+60, z-20, visibility); case_camera_top_side(x, y, z-20, visibility); - case_camera_screwcylinder1(x+34, y+14, z-4.5, visibility); - case_camera_screwcylinder1(x+64, y+14, z-4.5, visibility); - case_camera_screwcylinder1(x+64, y+44, z-4.5, visibility); - case_camera_screwcylinder1(x+34, y+44, z-4.5, 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); + case_camera_screwcylinder1(x+34, y+43, z-4.5, visibility); case_camera_screwcylinder2(x+90, y+5, z-11, 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+57, z-11, visibility); case_camera_screwcylinder2(x+5, y+28, z-11, visibility); } } -//raspberryPi(0, 0, 0); -camera(0, 0, 0); -//case_raspberryPi(0.7); -case_camera(0, 0, 0, 0.7); +raspberryPi(0, 0, 0); +touchscreen(0, 0, 0); +//camera(0, 0, 0); +case_raspberryPi(0.7); +//case_camera(0, 0, 0, 0.7);