// Classical Guitar style headstock tuners, comes in a mirrored pair of 3 machine heads with a metal plate module NylonTuner() { cyl_hd_fn = $preview ? 32 : 512; cyl_ld_fn = $preview ? 24 : 72; earshaft_diameter = 6.3; ear_total_height = 22.5; ear_height = 13+3; ear_diameter = 22.1; peg_diameter = 6.0; // Closer to 5.7mm peg_length = 28; peg_spacing = 35.0; peg_string_diameter = 2.2+0.1; plate_width = 16.6 + 3.0; plate_length = 112; plate_thickness = 1.1; // Not really used for our purposes outer_thickness = 10; // screwhole_diameter = 3; screwtap_diameter = 1.7; screw_length = 7.1 - plate_thickness; module peg() { render() difference() { cylinder(h=peg_length, d=peg_diameter, $fn=cyl_hd_fn); translate([0, 0, 14.1]) rotate([90, 0, 0]) cylinder(h=peg_diameter, d=peg_string_diameter, $fn=cyl_ld_fn, center=true); translate([0, 0, 22.7]) rotate([90, 0, 0]) cylinder(h=peg_diameter, d=peg_string_diameter, $fn=cyl_ld_fn, center=true); } } module ear() { rotate([0, 90, 0]) cylinder(h=ear_total_height, d=earshaft_diameter, $fn=cyl_ld_fn); rotate([0, 90, 0]) translate([0,0,ear_total_height-ear_height]) cylinder(h=ear_height, d=ear_diameter, $fn=cyl_hd_fn); } // Plate and clearance translate([-plate_width/2, 0, -outer_thickness]) cube([plate_width, plate_length, outer_thickness]); // Pegs for (i = [0:2]) { // Peg translate([0, i*peg_spacing + 16, 0]) peg(); // Ear translate([plate_width/2-1, i*peg_spacing + 22.3, -earshaft_diameter/2-1.5]) ear(); } // Mounting holes for (i = [6, 39, 75, 105]) { translate([0, i, 0]) cylinder(h=screw_length, d=screwtap_diameter, $fn=cyl_ld_fn); } }