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
|
// this is an approximation of a wheel; all measurements are *guessed*
module wheel() {
r_rim=150;
r_tire=15;
r_hub=30;
r_axis=7;
// tire (modelled as torus)
rotate_extrude(convexity=4)
translate([r_rim,0])
circle(r_tire);
// hub
for (side = [-1,1])
translate([0, 0, side * (r_tire - 1/2)])
cylinder(r=r_hub, h=1, center=true);
cylinder(r=r_axis, h=r_tire * 2.3, center=true);
// spokes
angular_step=360/8;
for (angle = [0:angular_step:360])
for (side = [-1,1])
for (dir = [-1,1])
rotate(angle + side * angular_step/4)
translate([r_hub - 1, -dir*4, side*r_tire])
rotate([0, 90 + side*8, dir*20])
cylinder(r=1, h=r_rim - r_hub);
}
wheel();
|