88 lines
1.9 KiB
OpenSCAD
88 lines
1.9 KiB
OpenSCAD
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);
|
|
}
|