CIRCLE_ROUNDS=36; // Cylinder Block difference() { // Block translate([-8, -8, 0]) cube([16, 16, 11]); // Piston bearing translate([0, 0, 0]) cylinder(h=11, d=10, $fn=CIRCLE_ROUNDS); // Block Head Screw Holes translate([6, 6, 0]) cylinder(h=11, d=1, $fn=CIRCLE_ROUNDS); translate([-6, 6, 0]) cylinder(h=11, d=1, $fn=CIRCLE_ROUNDS); translate([6, -6, 0]) cylinder(h=11, d=1, $fn=CIRCLE_ROUNDS); translate([-6, -6, 0]) cylinder(h=11, d=1, $fn=CIRCLE_ROUNDS); } // Piston difference() { // Main Cylinder cylinder(h=10, d=10, $fn=CIRCLE_ROUNDS); // Main cutout rotate([90, 0, 0]) translate([0, 1, -5]) { cylinder(h=10, d=8, $fn=CIRCLE_ROUNDS); } translate([-4, -3, 0]) cube([8, 6, 1]); // Tapering cutout on the bottom difference() { cylinder(h=5, d=10, $fn=CIRCLE_ROUNDS); cylinder(h=5, d=9, $fn=CIRCLE_ROUNDS); } // gudgeon pin hole rotate([0, 90, 0]) translate([-2, 0, -5]) cylinder(h=10, d=2, $fn=CIRCLE_ROUNDS); } // Gudgeon pin difference() { rotate([0, 90, 0]) translate([-2, 0, -4.5]) cylinder(h=9, d=2, $fn=CIRCLE_ROUNDS); rotate([0, 90, 0]) translate([-2, 0, -4.5]) cylinder(h=9, d=1.5, $fn=CIRCLE_ROUNDS); } // Rod difference() { union() { // rod shaft translate([-1, -1.5, -13]) cube([2, 3, 15]); // rod pin hole rotate([90, 0, 90]) translate([0, 2, -2]) cylinder(h=4, d=4, $fn=CIRCLE_ROUNDS); // crankshaft hole rotate([90, 0, 90]) translate([0, -13, -2]) cylinder(h=4, d=3, $fn=CIRCLE_ROUNDS); } // gudgeon pin cutout rotate([0, 90, 0]) translate([-2, 0, -4.5]) cylinder(h=9, d=2, $fn=CIRCLE_ROUNDS); // crankshaft cutout rotate([0, 90, 0]) translate([13, 0, -2]) cylinder(h=4, d=2, $fn=CIRCLE_ROUNDS); }