Compare commits
4 Commits
c01ba0953d
...
709fae487f
Author | SHA1 | Date |
---|---|---|
Remi Rampin | 709fae487f | |
Remi Rampin | d326edb680 | |
Remi Rampin | 62aea091b5 | |
Remi Rampin | 7cc6299f6f |
Binary file not shown.
After Width: | Height: | Size: 190 KiB |
Binary file not shown.
After Width: | Height: | Size: 216 KiB |
Binary file not shown.
After Width: | Height: | Size: 203 KiB |
Binary file not shown.
|
@ -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();
|
Loading…
Reference in New Issue