From: Jan "Yenya" Kasprzak Date: Wed, 13 Dec 2017 08:44:19 +0000 (+0100) Subject: rc plane ski - new flat version X-Git-Url: https://www.fi.muni.cz/~kas/git//home/kas/public_html/git/?a=commitdiff_plain;h=f64f650163cb2c07b23ff7d61f0cda691c22f014;p=things.git rc plane ski - new flat version --- diff --git a/rc-plane-ski.scad b/rc-plane-ski.scad index 61d9b8f..13dfffd 100644 --- a/rc-plane-ski.scad +++ b/rc-plane-ski.scad @@ -8,77 +8,63 @@ center_w = 5; center_l = base_l - base_w; center_h = 1.5; -tip_r = 25; -tip_rv = 25; -tip_rv_off = base_l/2-2; -wall = 1.2; +tip_l = 30; +wall = 0.8; + +axle_pos = 0.55; +axle_x = base_l/2 - axle_pos*base_l; axle_hole = 1.2 + 0.5; axle_slot = 1.2; -axle_top_l = 15; -axle_bot_l = 20; +axle_top_l = 10; +axle_bot_l = 10; axle_top_w = 3; axle_bot_w = 10; axle_h = 3; module body() { // base - translate([-base_l/2, 0 ]) - cube([base_l, wall, base_w]); + translate([-base_l/2, -base_w/2, 0 ]) + cube([base_l-tip_l, base_w, wall]); + + // tip + translate([base_l/2-tip_l, 0, 0]) + scale([2*tip_l/base_w, 1, 1]) + cylinder(r = base_w/2, h = wall); // center reinforcement - intersection() { - translate([-center_l/2, wall, base_w/2]) - rotate([0, 90, 0]) - scale([1, center_h/center_w, 1]) - cylinder(r = center_w, h = center_l, $fn = 4); - translate([-infty/2, eps, 0]) - cube(infty); + for (y = [-1, 1]) scale([1, y, 1]) hull() { + translate([base_l/2-tip_l, axle_bot_l/2, wall]) + cube(eps); + translate([-base_l/2, axle_bot_l/2, wall]) + cube(eps); + translate([0, axle_bot_l/2-3, wall]) + cube([eps, 6, eps]); + translate([0, axle_bot_l/2, wall]) + cube([eps, eps, axle_h/2]); } + // axle holder hull() { - translate([-axle_bot_w/2, wall, base_w/2-axle_bot_l/2]) - cube([axle_bot_w, eps, axle_bot_l]); - translate([-axle_top_w/2, wall+axle_h, base_w/2-axle_top_l/2]) - cube([axle_top_w, eps, axle_top_l]); - } - - // 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); + translate([axle_x-axle_bot_w/2, -axle_bot_l/2, wall]) + cube([axle_bot_w, axle_bot_l, eps]); + translate([axle_x-axle_top_w/2, -axle_top_l/2, wall+axle_h]) + cube([axle_top_w, axle_top_l, eps]); } - } module ski() { difference() { body(); // slot - translate([-axle_slot/2, wall+axle_h/2, 0]) - cube([axle_slot, infty, base_w]); + translate([axle_x-axle_slot/2, -base_w/2, wall+axle_h/2]) + cube([axle_slot, base_w, infty]); // hole - translate([0, wall+axle_h/2, 0]) + translate([axle_x, -base_w/2, wall+axle_h/2]) + rotate([-90, 0, 0]) cylinder(r = axle_hole/2, h = base_w, $fn = 6); } } -// ski(); - -// left and right part -for (i = [-1, 1]) scale([1, i, 1]) - translate([0, 8, 0]) - ski(); +ski();