From 9e5a94b5f5e654ca686785056b697411c69f3092 Mon Sep 17 00:00:00 2001 From: Vitaliy Filippov Date: Tue, 29 Dec 2015 22:56:09 +0000 Subject: [PATCH] fix sizes & make customisable --- ball-amort/ball_amort.scad | 56 ++++++++++++++++++++------------------ 1 file changed, 30 insertions(+), 26 deletions(-) diff --git a/ball-amort/ball_amort.scad b/ball-amort/ball_amort.scad index cbc8ca7..945fa8c 100644 --- a/ball-amort/ball_amort.scad +++ b/ball-amort/ball_amort.scad @@ -1,47 +1,51 @@ $fn = 50; +tube_length = 4; // tube length in studs +piston_length = 3; // piston length in studs +travel_length = piston_length-2; // piston travel in studs + +travel = min(travel_length, piston_length-2, tube_length-2); //difference() { union() { difference() { - cylinder(r=4, h=4*8); - ball_end_n(); - translate([0, 0, 6]) cylinder(r=3.2, h=4*8); - translate([-5, -0.5, 4*8-6]) cube(size=[10, 1, 3], center=false); + translate([0, 0, 2.3]) cylinder(r=4, h=tube_length*8-2.3); + translate([0, 0, 2.3]) ball_end_n(); + translate([0, 0, 8]) cylinder(r=3.2, h=tube_length*8); + translate([-5, -0.5, tube_length*8-6]) cube(size=[10, 1, 3], center=false); } -color([1, 0.5, 0.5]) translate([0, 0, 6*8]) rotate([180, 0, 0]) +color([1, 0.5, 0.5]) translate([0, 0, (tube_length+piston_length-1)*8]) rotate([180, 0, 0]) { difference() { - union() { - cylinder(r=3, h=3*8); - cylinder(r=4, h=8); + translate([0, 0, 2.3]) union() { + cylinder(r=3, h=piston_length*8-2.3); + cylinder(r=4, h=8-2.3); } - translate([-5, -0.7, 14-3]) cube(size=[10, 1.4, 8+3], center=false); - ball_end_n(); + translate([-5, -0.7, (piston_length-travel-1)*8+3]) cube(size=[10, 1.4, travel*8+3], center=false); + translate([0, 0, 2.3]) ball_end_n(); } } //rotate([90, 0, 0]) -color([0.5, 0.5, 1]) translate([-4, -0.5, 4*8-6]) +color([0.5, 0.5, 1]) translate([-4, -0.5, tube_length*8-6]) cube(size=[8, 1, 3], center=false); -// } translate([0, -50, -1]) cube(size=[10, 100, 50]); } +//} translate([0, -50, -1]) cube(size=[10, 500, 500]); } -module ball_end() { - difference() { - ball_end_p(); - ball_end_n(); - } -} - -module ball_end_p() { - union() { - translate([0, 0, 1.7+3.2+1-4]) difference() { sphere(r=4); translate([-5, -5, -6]) cube(size=[10,10,5]); } - cylinder(r=4, h=2); - } -} +//rotate([10, 0, 0]) axleround(h=8); +// ball end shift 2.3mm down module ball_end_n() { - translate([0, 0, 1.7]) sphere(r=3.2); + translate([0, 0, 1.7]) sphere(r=3.05); translate([0, 0, -0.1]) cylinder(r=2.9, h=2); } + +module axleround(h = 24, axleradius = 2.3, axlemesh = 1.7) { + translate([0, 0, -h/2]) difference() { + cylinder($fn=16, r=axleradius, h=h); + translate([axlemesh/2, axlemesh/2, -1]) cube([axleradius, axleradius, h+2]); + translate([axlemesh/2, -axlemesh/2-axleradius, -1]) cube([axleradius, axleradius, h+2]); + translate([-axlemesh/2-axleradius, axlemesh/2, -1]) cube([axleradius, axleradius, h+2]); + translate([-axlemesh/2-axleradius, -axlemesh/2-axleradius, -1]) cube([axleradius, axleradius, h+2]); + } +}