3dprint/small-shock-piston.scad

33 lines
1.3 KiB
OpenSCAD

// Piston for LEGO 76537 - Small Shock Absorber with Extra Hard Spring
// (c) Vitaliy Filippov 2014, license: CC-BY-SA 4.0
// Printed with Slic3r, 0.1mm layer, 0.3mm first layer and support enabled.
$fn=40;
rotate([0, 90, 0])
union() {
difference() {
union() {
cylinder(h=8, r=4);
translate([0, 0, 4]) rotate([90, 0, 0]) cylinder(h=4, r=3.5);
translate([0, -4, 4]) rotate([90, 0, 0]) cylinder(h=28, r=2.2);
translate([-1.5/2, -31.5, 8/2-6/2]) hull() {
cube(size=[1.5, 2.5, 6]);
translate([0, -1.5, 6/2-3/2]) cube(size=[1.7, 0.5, 3]);
}
}
translate([0, 0, -0.1]) cylinder(h=8+0.2, r=2.55);
translate([0, 0, -0.1]) cylinder(h=0.9+0.1, r=5);
translate([0, 0, 8-0.9]) cylinder(h=0.9+0.1, r=5);
translate([1.4/2, -29-6, 4-1.4/2]) rotate([0, 90, 0]) cube(size=[3, 29, 3]);
//translate([-3-1.7/2, -29-6, 4-1.7/2]) rotate([0, 90, 0]) cube(size=[3, 29, 3]);
//translate([1.7/2, -29-6, 4+3+1.7/2]) rotate([0, 90, 0]) cube(size=[3, 29, 3]);
translate([-3-1.4/2, -29-6, 4+3+1.4/2]) rotate([0, 90, 0]) cube(size=[3, 29, 3]);
// Using a wedge allows 3D printed part to
translate([-3, -29-4, 4]) rotate([0, 90, 0]) scale([2, 7, 10]) wedge();
}
}
module wedge() {
linear_extrude(height=1) polygon(points=[[-0.5, 0], [0.5, 0], [0, sqrt(1.25)]]);
}