cad/pump/pump.scad

44 lines
995 B
OpenSCAD
Raw Normal View History

pump(4000, 10000, 1500);
module pump(width=30, height=70, radius=10)
{
base();
piston();
module base() {
difference() {
cube(width, center=true);
translate([0,0, -width/2])
cylinder(h=width, r=radius);
}
}
module piston() {
function percent(base, p) =
p /100 * base;
function hand_z() =
percent(width/2, 99) +
height - (height - width);
function hand_height() =
width * 1.5;
// Pump part
translate([0, 0, percent(width/2, 99)])
cylinder(
h=height-width,
r=percent(radius, 98)
);
// Hand part
translate([-hand_height()/2, 0, hand_z()])
rotate([0, 90, 0])
cylinder(
h=hand_height(),
r=percent(radius, 30)
);
}
}