fix sizes & make customisable
parent
e4d4056162
commit
9e5a94b5f5
|
@ -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]);
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue