Skip to content

Instantly share code, notes, and snippets.

@plumbum
Created August 24, 2017 07:51
Show Gist options
  • Save plumbum/3a1a1616e4a2cda99f5c34407d71ad47 to your computer and use it in GitHub Desktop.
Save plumbum/3a1a1616e4a2cda99f5c34407d71ad47 to your computer and use it in GitHub Desktop.
// Water tap handle
// Print with PLA
$fn = 40;
stem_height = 6;
stem_d = 7.5;
stem_cut = 6;
screw_height = stem_height+2;
screw_hole_d = 4;
screw_cap_d = 9;
handle_h = 12;
handle_d = 20;
handle_round = 1;
handle_len = 30;
handle_w = 8;
ring_h = 1;
difference() {
handle();
stem();
screw();
}
translate([0,0,-ring_h]) difference() {
cylinder(h=ring_h, d=handle_d);
translate([0,0,-0.5]) cylinder(h=ring_h+1, d=handle_d-2*2);
}
module handle() {
intersection() {
minkowski() {
cylinder(h=handle_h-handle_round, d=handle_d-handle_round*2);
sphere(handle_round);
}
cylinder(h=handle_h, d=handle_d);
}
rotate([0,0,90])
minkowski() {
translate([0, -(handle_w - handle_round*2)/2, handle_round])
cube([handle_len - handle_round*2, handle_w - handle_round*2, handle_h-handle_round*2]);
sphere(handle_round);
}
}
module stem() {
difference() {
cylinder(h=stem_height, d=stem_d);
translate([stem_cut/2, -stem_d/2, 0])
cube([stem_d-stem_cut, stem_d, stem_height]);
translate([-stem_cut/2-(stem_d-stem_cut), -stem_d/2, 0])
cube([stem_d-stem_cut, stem_d, stem_height]);
}
}
module screw() {
cylinder(h=screw_height, d=screw_hole_d);
translate([0,0,screw_height]) cylinder(h=screw_height, d=screw_cap_d);
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment