// 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); }