-
Notifications
You must be signed in to change notification settings - Fork 5
/
Copy pathwrist.scad
87 lines (73 loc) · 2.17 KB
/
wrist.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
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
/* wrist.scad
Author: andimoto@posteo.de
----------------------------
for placing assambled parts and
single parts go to end of this file
set the form of the wrist rest in "wristForm" array
*/
$fn=50;
wristLength = 306;
edgeRadius = 1;
connectorRadius=3;
connectorLen=40;
wristForm=[
[0,0],
[80,0],
[80,5],
[78.2,8.2],
[75,10],
[40,16],
[0,16]
];
module connector(rad,conLength)
{
cylinder(r=rad, h=conLength, center=true);
}
module wristProfile(form)
{
polygon(form);
}
module wrist(length=360)
{
translate([edgeRadius,edgeRadius,edgeRadius])
rotate([90,0,90])
minkowski()
{
union()
{
linear_extrude(length-edgeRadius*2)
wristProfile(wristForm);
}
/* rotate([0,90,0]) cylinder(r=edgeRadius, h=1, center=true); */
sphere(r=edgeRadius);
}
}
module wristRestLeft(length)
{
difference() {
wrist(length);
translate([0,-1,0]) rotate([90,0,90]) linear_extrude(length/2)
scale([1.1,1.2,1]) wristProfile(wristForm);
translate([length/2,10,6]) rotate([0,90,0]) connector(connectorRadius+0.2,connectorLen);
translate([length/2,40,6]) rotate([0,90,0]) connector(connectorRadius+0.2,connectorLen);
translate([length/2,70,6]) rotate([0,90,0]) connector(connectorRadius+0.2,connectorLen);
}
}
module wristRestRight(length=360)
{
difference() {
wrist(length);
translate([length/2,-1,0]) rotate([90,0,90]) linear_extrude(length/2)
scale([1.1,1.2,1]) wristProfile(wristForm);
translate([length/2,10,6]) rotate([0,90,0]) connector(connectorRadius+0.2,connectorLen);
translate([length/2,40,6]) rotate([0,90,0]) connector(connectorRadius+0.2,connectorLen);
translate([length/2,70,6]) rotate([0,90,0]) connector(connectorRadius+0.2,connectorLen);
}
}
translate([0,150+connectorLen,connectorLen/2]) connector(connectorRadius-0.0,connectorLen-3);
translate([0,150+connectorLen+10,connectorLen/2]) connector(connectorRadius-0.0,connectorLen-3);
translate([0,150+connectorLen+20,connectorLen/2]) connector(connectorRadius-0.0,connectorLen-3);
/* wristProfile(wristForm); */
/* wrist(wristLength); */
/* translate([0,100,0]) wristRestRight(wristLength); */
/* translate([20,100,0]) wristRestLeft(wristLength); */