GuitarModels/NylonTuner.scad

50 lines
1.8 KiB
OpenSCAD

// Classical Guitar style headstock tuners, comes in a mirrored pair of 3 machine heads with a metal plate
module NylonTuner(cutout = false, ear_extra_diameter = 0, ear_extra_height = 0, plate_clearance = 0, shaft_clearance = 0, shaft_tolerance = 0) {
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 + ear_extra_diameter;
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 + plate_clearance;
// screwhole_diameter = 3;
screwtap_diameter = 1.7;
screw_length = 7.1 - plate_thickness;
module peg() {
render() difference() {
cylinder(h=peg_length+shaft_clearance, d=peg_diameter+shaft_tolerance, $fn=cyl_hd_fn);
if (!cutout) {
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+ear_extra_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.45, -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);
}
}