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) */