]> www.fi.muni.cz Git - things.git/blob - rc-plane-wheel.scad
808 camera lens holder for glasses
[things.git] / rc-plane-wheel.scad
1 infty = 100;
2 eps = 0.01;
3
4 wheel_d = 50;
5 wheel_h = 3;
6 wheel_d1 = wheel_d + wheel_h/2;
7 wheel_thick_outer = 0.5;
8 wheel_thick_inner = 1.5;
9 wheel_rim = 3.5;
10
11 min_wall = 0.5;
12
13 spokes = 5;
14 spoke_w =  3.5;
15 spoke_h = 1.5;
16
17 center_d = 5;
18 center_hole = 1 + 0.5;
19 center_h = 8;
20
21 module body() {
22         // rim
23         difference() {
24                 hull() {
25                         cylinder(r = wheel_d/2, h = wheel_h, $fn = 128);
26                         translate([0, 0, wheel_h/2-eps])
27                                 cylinder(r = wheel_d1/2, h = 2*eps, $fn = 128);
28                 }
29                 translate([0,0,min_wall-eps])
30                         cylinder(r1 = wheel_d/2 - wheel_thick_inner,
31                                 r2 = wheel_d/2 - wheel_thick_outer,
32                                 h = wheel_h - min_wall+ 2*eps);
33                 translate([0,0,-eps])
34                         cylinder(r = wheel_d/2 - wheel_rim,
35                                 h = min_wall+2*eps);
36         }
37
38         // spokes
39         for (a = [0:360/spokes:360-eps]) {
40                 rotate([0, 0, a])
41                 hull() {
42                         translate([-spoke_w/2, 0, 0])
43                                 cube([spoke_w, wheel_d/2 - min_wall/2, min_wall]);
44                         translate([-min_wall/2, 0, spoke_h-eps])
45                                 cube([min_wall, wheel_d/2 - min_wall/2, eps]);
46                 }
47         }
48
49         cylinder(r1 = center_d/2, r2 = center_hole/2 + 2*min_wall, h = center_h);
50 }
51
52 difference() {
53         body();
54         // center hole
55         translate([0, 0, -eps])
56                 cylinder(r = center_hole/2, h = center_h + 2*eps);
57 }