From 163b1787c43538d9e36b99973345e6f1d2e08286 Mon Sep 17 00:00:00 2001 From: Jonathan Bernard Date: Tue, 4 Aug 2026 18:24:28 -0500 Subject: [PATCH] Phone cluster stand. --- functional/phone-cluster-stand.scad | 36 +++++++++++++++++++++++++++++ 1 file changed, 36 insertions(+) create mode 100644 functional/phone-cluster-stand.scad diff --git a/functional/phone-cluster-stand.scad b/functional/phone-cluster-stand.scad new file mode 100644 index 0000000..f685a3f --- /dev/null +++ b/functional/phone-cluster-stand.scad @@ -0,0 +1,36 @@ +bays = 5; +wt = 2; // wall thickness +pt = 12; // phone thickness +l = 170; // length +h = 40; // height +w = bays * (pt + wt) + wt; +lip = 10; + +T=atan((h - lip + 0.5) / l); + +difference() { + union() { + cube([w, l, wt]); // base + cube([w, wt, lip]); // front lip + + // back + translate([0, l - wt, 0]) + cube([w, wt, h]); + + // side walls + for (i = [0 : bays]) { + translate([i*(pt + wt), 0, lip]) rotate([T, 0, 0]) + translate([0, 0, -h]) cube([wt, l / cos(T), h]); + } + } + + translate([-wt, -wt, -h]) cube([w+2*wt, l+2*wt, h]); // bottom + translate([-wt, -wt, h]) cube([w+2*wt, l+2*wt, h]); // top + translate([-wt, l, -wt]) cube([w+2*wt, l, h + 2*wt]); // back +} +/* +sin(ang) = opp / hyp +ang = asin(opp/hyp) +cos(ang) = adj / hyp +hyp = adj / cos(ang) +*/