]> www.fi.muni.cz Git - things.git/blob - rc-plane-ski.scad
pulley.scad: new mods
[things.git] / rc-plane-ski.scad
1 infty = 300;
2 eps = 0.01;
3
4 base_w = 30;
5 base_l = 150;
6
7 center_w = 5;
8 center_l = base_l - base_w;
9 center_h = 1.5;
10
11 tip_l = 30;
12 wall = 0.8;
13
14 axle_pos = 0.55;
15 axle_x = base_l/2 - axle_pos*base_l;
16
17 axle_hole = 1.2 + 0.5;
18 axle_slot = 1.2;
19 axle_top_l = 10;
20 axle_bot_l = 10;
21 axle_top_w = 3;
22 axle_bot_w = 10;
23 axle_h = 3;
24
25 module body() {
26         // base
27         translate([-base_l/2, -base_w/2, 0 ])
28                 cube([base_l-tip_l, base_w, wall]);
29
30         // tip
31         translate([base_l/2-tip_l, 0, 0])
32                 scale([2*tip_l/base_w, 1, 1])
33                 cylinder(r = base_w/2, h = wall);
34
35         // center reinforcement
36         for (y = [-1, 1]) scale([1, y, 1]) hull() {
37                 translate([base_l/2-tip_l, axle_bot_l/2, wall])
38                         cube(eps);
39                 translate([-base_l/2, axle_bot_l/2, wall])
40                         cube(eps);
41                 translate([0, axle_bot_l/2-3, wall])
42                         cube([eps, 6, eps]);
43                 translate([0, axle_bot_l/2, wall])
44                         cube([eps, eps, axle_h/2]);
45         }
46
47         // axle holder
48         hull() {
49                 translate([axle_x-axle_bot_w/2, -axle_bot_l/2, wall])
50                         cube([axle_bot_w, axle_bot_l, eps]);
51                 translate([axle_x-axle_top_w/2, -axle_top_l/2, wall+axle_h])
52                         cube([axle_top_w, axle_top_l, eps]);
53         }
54 }
55
56 module ski() {
57         difference() {
58                 body();
59                 // slot
60                 translate([axle_x-axle_slot/2, -base_w/2, wall+axle_h/2])
61                         cube([axle_slot, base_w, infty]);
62                 // hole
63                 translate([axle_x, -base_w/2, wall+axle_h/2])
64                         rotate([-90, 0, 0])
65                         cylinder(r = axle_hole/2, h = base_w, $fn = 6);
66         }
67 }
68
69 ski();
70