]> www.fi.muni.cz Git - things.git/blob - rc-plane-ski.scad
rc plane ski: first version
[things.git] / rc-plane-ski.scad
1 infty = 300;
2 eps = 0.01;
3
4 base_w = 30;
5 base_l = 150;
6
7 tip_r = 25;
8 tip_rv = 25;
9 tip_rv_off = base_l/2-2;
10 wall = 1.25;
11
12 axle_hole = 3;
13 axle_h = 7;
14 axle_off = base_l/6;
15 axle_cube = 10;
16
17 module body() {
18         // base
19         translate([-base_l/2, 0 ])
20                 cube([base_l, wall, base_w]);
21
22         // tip
23         intersection() {
24                 // the main tube
25                 difference() {
26                         translate([base_l/2, tip_r, 0]) 
27                                 cylinder(r = tip_r, h = base_w, $fn = 128);
28                         translate([base_l/2, tip_r, -eps]) 
29                                 cylinder(r = tip_r - wall, h = base_w+2*eps, $fn = 128);
30                 }
31                 // the appropriate quarter of the tube only
32                 translate([base_l/2, -eps, -eps])
33                         cube([tip_r + eps, tip_r + eps, base_w+2*eps]);
34                 // make the tip round
35                 translate([tip_rv_off, -eps, base_w/2-eps])
36                         rotate([-90, 0, 0])
37                         cylinder(r = tip_rv, h = base_w + 2*eps);
38         }
39
40         // axle block
41         difference() {
42                 translate([axle_off - axle_cube/2, wall, 0])
43                         cube([axle_cube, axle_cube/2 + axle_h, axle_cube]);
44                 translate([axle_off, axle_h + wall, -eps])
45                         cylinder(r = axle_hole/2, h = axle_cube + 2*eps);
46         }
47 }
48
49 // left and right part
50 for (i = [-1, 1]) scale([1, i, 1])
51         translate([0, axle_h, 0])
52                 body();
53