GuitarModels/NylonTuner.scad

48 lines
1.7 KiB
OpenSCAD
Raw Normal View History

2025-01-01 22:33:40 +10:30
// Classical Guitar style headstock tuners, comes in a mirrored pair of 3 machine heads with a metal plate
2025-01-12 23:45:07 +10:30
module NylonTuner(ear_extra_diameter = 0, ear_extra_height = 0) {
2025-01-01 22:33:40 +10:30
cyl_hd_fn = $preview ? 32 : 512;
cyl_ld_fn = $preview ? 24 : 72;
2025-01-02 00:14:18 +10:30
earshaft_diameter = 6.3;
ear_total_height = 22.5;
ear_height = 13+3;
2025-01-12 23:45:07 +10:30
ear_diameter = 22.1 + ear_extra_diameter;
2025-01-01 22:33:40 +10:30
peg_diameter = 6.0; // Closer to 5.7mm
peg_length = 28;
peg_spacing = 35.0;
peg_string_diameter = 2.2+0.1;
2025-01-02 00:14:18 +10:30
plate_width = 16.6 + 3.0;
plate_length = 112;
2025-01-01 22:33:40 +10:30
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() {
2025-01-02 00:14:18 +10:30
rotate([0, 90, 0]) cylinder(h=ear_total_height, d=earshaft_diameter, $fn=cyl_ld_fn);
2025-01-12 23:45:07 +10:30
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);
2025-01-01 22:33:40 +10:30
}
// 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
2025-01-02 01:24:49 +10:30
translate([plate_width/2-1, i*peg_spacing + 22.45, -earshaft_diameter/2-1.5]) ear();
2025-01-01 22:33:40 +10:30
}
// Mounting holes
for (i = [6, 39, 75, 105]) {
translate([0, i, 0]) cylinder(h=screw_length, d=screwtap_diameter, $fn=cyl_ld_fn);
}
}