Models / Slot-together phone stand
Slot-together phone stand
A phone stand from three parts that slot together without glue. The slots follow the sheet thickness, so changing it keeps the fit.
The cut file as the downloads lay it out: 291.5 × 109.5 mm, 3 parts on 1 sheet. Rendered by KerfScript 0.2.0 from the source below.
Source
// A phone stand from three parts that slot together without glue.
// The slots follow the sheet thickness, so changing it keeps the fit.
/* [Stand] */
// Gap between the two sides
span = 64; // [40:1:120]
// Lean of the phone, in degrees from flat
lean = 66; // [50:1:80]
// Height of the front lip
lip = 20; // [10:1:40]
// Engraved text on the brace
label = "KerfScript"; // 16
/* [Material] */
// Sheet thickness
thickness = 4; // [2:0.5:8]
// Slot clearance, added to the thickness
clearance = 0.1; // [0:0.05:0.4]
/* [Hidden] */
$fn = 40;
slot = thickness + clearance;
rest = 100;
top = [14 + rest * cos(lean), 12 + rest * sin(lean)];
foot = top[0] + top[1] / tan(70);
brace_x = foot * 0.62;
brace_h = 30;
module rounded(r) offset(r = r) offset(delta = -r) children();
module side() difference() {
rounded(2) polygon([
[0, 0], [foot, 0], [top[0] + 6, top[1]], [top[0] - 2, top[1]],
[14, 12], [14, lip], [6, lip], [0, lip - 6]
]);
translate([brace_x - slot / 2, -1]) rect([slot, brace_h / 2 + 1]);
}
module brace() difference() {
rect([span + 2 * thickness + 24, brace_h], r = 3);
for (x = [12, 12 + span + thickness]) translate([x - clearance / 2, brace_h / 2]) rect([slot, brace_h / 2 + 1]);
}
material(thickness = thickness, kerf = 0.1, name = "plywood") {
part("side", qty = 2) side();
part("brace") {
brace();
engrave() translate([(span + 2 * thickness + 24) / 2, brace_h * 0.28]) text(label, 6, halign = "center", valign = "center");
}
}