]> www.fi.muni.cz Git - things.git/commitdiff
rc plane ski: first version
authorJan "Yenya" Kasprzak <kas@fi.muni.cz>
Mon, 6 Feb 2017 09:35:44 +0000 (10:35 +0100)
committerJan "Yenya" Kasprzak <kas@fi.muni.cz>
Mon, 6 Feb 2017 09:35:44 +0000 (10:35 +0100)
rc-plane-ski.scad [new file with mode: 0644]

diff --git a/rc-plane-ski.scad b/rc-plane-ski.scad
new file mode 100644 (file)
index 0000000..ebd4c56
--- /dev/null
@@ -0,0 +1,53 @@
+infty = 300;
+eps = 0.01;
+
+base_w = 30;
+base_l = 150;
+
+tip_r = 25;
+tip_rv = 25;
+tip_rv_off = base_l/2-2;
+wall = 1.25;
+
+axle_hole = 3;
+axle_h = 7;
+axle_off = base_l/6;
+axle_cube = 10;
+
+module body() {
+       // base
+       translate([-base_l/2, 0 ])
+               cube([base_l, wall, base_w]);
+
+       // tip
+       intersection() {
+               // the main tube
+               difference() {
+                       translate([base_l/2, tip_r, 0]) 
+                               cylinder(r = tip_r, h = base_w, $fn = 128);
+                       translate([base_l/2, tip_r, -eps]) 
+                               cylinder(r = tip_r - wall, h = base_w+2*eps, $fn = 128);
+               }
+               // the appropriate quarter of the tube only
+               translate([base_l/2, -eps, -eps])
+                       cube([tip_r + eps, tip_r + eps, base_w+2*eps]);
+               // make the tip round
+               translate([tip_rv_off, -eps, base_w/2-eps])
+                       rotate([-90, 0, 0])
+                       cylinder(r = tip_rv, h = base_w + 2*eps);
+       }
+
+       // axle block
+       difference() {
+               translate([axle_off - axle_cube/2, wall, 0])
+                       cube([axle_cube, axle_cube/2 + axle_h, axle_cube]);
+               translate([axle_off, axle_h + wall, -eps])
+                       cylinder(r = axle_hole/2, h = axle_cube + 2*eps);
+       }
+}
+
+// left and right part
+for (i = [-1, 1]) scale([1, i, 1])
+       translate([0, axle_h, 0])
+               body();
+