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
|
module whorl(
r_out,
r_stick,
t_hub=4,
t_rim=10,
h=4,
h_hub=15,
h_rim=8,
r_screw=1.6,
h_screw=11,
screw_holes=[90, 270],
r_latch=2,
latches=[0, 60, 120, 180, 240, 300],
) {
difference() {
union() {
cylinder(r=r_out, h=h);
cylinder(r=r_stick + t_hub, h=h_hub);
difference() {
cylinder(r=r_out, h=h_rim);
translate([0, 0, -1]) cylinder(r=r_out - t_rim, h=h_rim + 2);
}
}
translate([0, 0, -1]) cylinder(r=r_stick, h=h_hub + 2);
for(i=screw_holes) {
rotate([0, 0, i]) translate([0, 0, h_screw]) rotate([0, -90, 0])
cylinder(r=r_screw, h=r_stick + t_hub + 2, $fn=16);
}
for(i=latches) {
rotate([0, 0, i]) translate([r_out, 0, -1])
cylinder(r=r_latch, h=h_rim + 2);
}
}
}
|