Compare commits

...

2 Commits

Author SHA1 Message Date
Remi Rampin 709fae487f Fillet the keychain a bit 2024-02-02 16:40:26 -05:00
Remi Rampin d326edb680 Redesign in OpenSCAD 2024-02-02 16:40:24 -05:00
1 changed files with 72 additions and 0 deletions

72
phone-stand-keychain.scad Normal file
View File

@ -0,0 +1,72 @@
use <MCAD/boxes.scad>
/* [Keychain] */
// overall height
height = 10;
// length, increase if phone falls backwards
length = 60;
// thickness of the long piece
thickness = 4.3;
// diameter of the hole for the key ring
hole_diameter = 4;
fillet = 1;
/* [Phone] */
// angle between the phone and the horizontal, 90=vertical
angle = 65;
// the thickness of the phone, if this value is too small, it won't fit between the supports
phone_thickness = 11.3;
/* [Supports] */
// the length the supports extend from the long piece
supports_length = 6.6;
// the thickness of the first support, in front of the phone
support1_thickness = 7;
// the thickness of the second support, behind the phone
support2_thickness = 4.5;
$fs = 0.1;
// Polyfill for https://github.com/openscad/MCAD/pull/66
module roundedCube_(size, radius, sidesonly) {
translate(size/2) roundedBox(size, radius, sidesonly);
}
module long_piece() {
translate([-thickness, 0, 0]) roundedCube_([thickness, length, height], fillet, false);
}
module phone() {
translate([0, 0, height]) rotate([angle, 0, 0]) translate([0, -10, -phone_thickness - support1_thickness]) cube([40, 80, phone_thickness]);
}
big_num = 50;
module supports() {
cube_length_transverse = support1_thickness + phone_thickness + support2_thickness;
cube_length = cube_length_transverse / sin(angle);
difference() {
translate([-thickness/2, 0, 0]) roundedCube_([thickness/2 + supports_length, cube_length, height], fillet, false);
// cut out phone slot
phone();
// cut out back of support2
translate([0, 0, height]) rotate([angle, 0, 0]) translate([0, -10, -big_num - phone_thickness - support1_thickness - support2_thickness]) cube([big_num, big_num, big_num]);
}
}
long_piece();
supports();
%phone();