-
Notifications
You must be signed in to change notification settings - Fork 0
/
hinge.scad
45 lines (34 loc) · 1.27 KB
/
hinge.scad
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
include <vars.scad>;
FACE_ANGLE = 360/$fn;
module hinge() {
width = JOINT_WIDTH-JOINT_TOLLERANCE;
size = TRIANGLE_THICKNESS;
side = width/6;
corner = 0.9;
echo("hinge widths (all, side, cylinder):", width, side, width-side*2);
hull() {
translate([-(width/2)+side/2, size, 0])
cube([side, size, size], center=true);
translate([-(width/2)+side/2, -size/2+corner, size/2-corner])
rotate(90, [0, 1, 0])
cylinder(h=side, r=corner, center=true);
translate([-(width/2)+side/2, -size/2+corner, -size/2+corner])
rotate(90, [0, 1, 0])
cylinder(h=side, r=corner, center=true);
}
hull() {
translate([width/2-side/2, size, 0])
cube([side, size, size], center=true);
translate([width/2-side/2, -size/2+corner, size/2-corner])
rotate(90, [0, 1, 0])
cylinder(h=side, r=corner, center=true);
translate([width/2-side/2, -size/2+corner, -size/2+corner])
rotate(90, [0, 1, 0])
cylinder(h=side, r=corner, center=true);
}
rotate(FACE_ANGLE/2, [1, 0, 0]) // Required so that cylinder face is parallel to plane
rotate(90, [0, 1, 0])
cylinder(h=width, r=size/2*0.7/2, center=true);
}
color("LimeGreen", 1)
hinge();