From 9970074bd7bfbcaefa6a0ca55a3246b88afe8471 Mon Sep 17 00:00:00 2001 From: Kaan Barmore-Genc Date: Mon, 25 Dec 2023 15:55:30 -0600 Subject: [PATCH] added pi bed --- display-camera-pi.scad | 60 +++++++++++++++++++++++++++++++++++++----- 1 file changed, 53 insertions(+), 7 deletions(-) diff --git a/display-camera-pi.scad b/display-camera-pi.scad index dd74ef2..42c2f01 100644 --- a/display-camera-pi.scad +++ b/display-camera-pi.scad @@ -1,18 +1,18 @@ /** Parameters */ $camera_mount = true; $base = true; -$screen_mount = true; $arm_base = true; $arm_pieces = 1; $screws = 1; $nuts = 1; -/** Scale nuts up slightly for easier fit and less friction. */ -$nut_scale = 1.05; $nut_bumps = false; /** Code */ module __no_more_parameters() {}; +/** Scale nuts up slightly for easier fit and less friction. */ +$nut_scale = 1.05; + $triangle_width = 65; $triangle_height = 40; $triangle_thickness = 5.87; @@ -33,10 +33,56 @@ if ($camera_mount) { camera_mount(); } if ($base) { - translate([10, 0, 0]) attachment_point(); + screen_and_attachment(); + pi_bed(); } -if ($screen_mount) { - translate([0, 40, 0]) screen_mount(); + +module pi_bed() { + $slat_count = 10; + $slat_gap = 10.4; + $slat_width = 4; + $side_width = 6; + $bed_depth = 6; + $bed_width = 70; + // slats + for (i = [0:1:$slat_count - 1]) { + translate([$slat_gap * i, -70, -$bed_depth]) + cube([4, $bed_width, 4]); + } + // sides + for (i = [0:1:1]) { + color("blue") + translate([0, -$bed_width * i - $side_width, -$bed_depth]) + cube([97.6, $side_width, $bed_depth]); + } + // railings + color("orange") + translate([0, -$side_width - $bed_width, -$bed_depth]) + cube([$slat_width / 2, $bed_width, $bed_depth]); + color("orange") + translate([97.6, -$side_width - $bed_width, -$bed_depth]) + cube([$slat_width / 2, $bed_width + $side_width, $bed_depth]); +} + +module screen_and_attachment() { + color("green") + translate([-15, 0, 0]) + rotate([90, 0, 0]) + attachment_point(); + color("blue") + translate([-0.5, 0, 4.5]) + rotate([45, 0, -90]) + screen_mount(); + + $screen_mount_support_width = 6; + difference() { + color("red") + translate([44.5, -$screen_mount_support_width, 27.4]) + rotate([0, -45, 0]) + cube([12, $screen_mount_support_width, 18]); + translate([50, -$screen_mount_support_width * 1.5, 0]) + cube([20, $screen_mount_support_width * 2, 60]); + }; } $camera_mount_thickness = 1; @@ -94,7 +140,7 @@ module attachment_point() { translate([$rounded_nose, 4.234, -0.2]) rotate([0, 0, 120]) nose_rounding(); - translate([0, $triangle_height - $triangle_y_offset * 1.5, -0.1]) + translate([0, $triangle_height - $triangle_y_offset * 1.2, -0.1]) cube([100, 100, $triangle_thickness * 3]); translate([45, 12, -0.1]) cylinder(h=100, r=10);