PETG tuner block for Nylon

This commit is contained in:
Luke Hubmayer-Werner 2025-01-22 19:30:11 +10:30
parent 30a58fc75d
commit afaca9a9b0
1 changed files with 53 additions and 7 deletions

View File

@ -4,8 +4,8 @@ include <NylonTuner.scad>
include <CFTubes/common.scad>
// Choose your material by only including one of the below
include <CFTubes/PLA.scad>
// include <CFTubes/PETG.scad>
// include <CFTubes/PLA.scad>
include <CFTubes/PETG.scad>
// Guitar_Scale_Length_mm = 610; // millimetres, slightly over 24inch (609.6mm) Jaguar scale, should be fine for guitar and u-bass
// assert(fret_scale_length(0) == 610); // Make sure the function correctly uses our changed global
@ -390,11 +390,12 @@ module Nylon6String(render_colour_0=true, render_colour_1=true, render_colour_2=
colour_1 = "white"; // fret layers
colour_2 = "green"; // side markers
colour_3 = "yellow"; // inlays
id_line_0 = "PLA";
id_line_1 = "1δ";
id_line_0 = "PETG";
id_line_1 = "1δ.α";
fsl_mm = fret_scale_length(0);
string_diameters_thous = [28, 32, 40, 30, 36, 42];
// string_diameters_thous = [28, 32, 40, 30, 36, 42]; // Ernie Ball Earthwoods (seemingly counterfeit from Amazon)
string_diameters_thous = [28, 32, 40, 30, 35, 43]; // Artist CLST Classical Nylon Guitar Strings
string_diameters_mm = string_diameters_thous * 0.0254;
num_frets = 21;
@ -577,6 +578,7 @@ module Nylon6String(render_colour_0=true, render_colour_1=true, render_colour_2=
module TunerBlockCheekVolumes() {
vw = 50;
for (i=[-1,1]) translate([-vw/2 + i*58, 0, z0]) cube([vw, y0, -z0]);
for (i=[-1,1]) translate([-vw/2 + i*46, 0, -14]) cube([vw, y0, -z0]);
}
if (tuner_block) {
render() difference() {
@ -660,6 +662,50 @@ module Nylon6String(render_colour_0=true, render_colour_1=true, render_colour_2=
LoopOrTunerBlock(true);
} else if (from_fret == -4) {
echo("Making a bridge");
y_len = 9;
base_height = 7;
saddle_height = 4;
pickup_w = 3;
pickup_h = 2;
render() difference() {
union() {
// Base
translate([-neck_width/2, 0, 0]) cube([neck_width, y_len, base_height]);
// String saddles - rule of thumb: string diameter multiplied by 4
r0 = 0.85;
for (i = [0:num_strings-1]) translate([(num_strings-i-1)*string_spacing - neck_width/2 + string_margin, y_len - string_diameters_mm[i]*4, base_height]) {
step = ($preview) ? 8 : 2;
r = r0 + string_diameters_mm[i]*1.2;
translate([0, 0, saddle_height]) for (a=[90:step:270-step]) hull() {
translate([-sin(a)*r, 0, cos(a)*r]) sphere(r=r0, $fn=cyl_ld_fn);
translate([-sin(a+step)*r, 0, cos(a+step)*r]) sphere(r=r0, $fn=cyl_ld_fn);
translate([-sin(a)*r, -3.7, -saddle_height-r0]) sphere(r=r0, $fn=cyl_ld_fn);
translate([-sin(a+step)*r, -3.7, -saddle_height-r0]) sphere(r=r0, $fn=cyl_ld_fn);
translate([-sin(a)*r, 1.2, -saddle_height-r0]) sphere(r=r0, $fn=cyl_ld_fn);
translate([-sin(a+step)*r, 1.2, -saddle_height-r0]) sphere(r=r0, $fn=cyl_ld_fn);
}
}
// Bridge channel notch
notch_w = bridge_channel_width - CF_Square_Width_tolerance; // Shrink a little for tolerance
notch_d = bridge_channel_depth - CF_Square_Width_tolerance/2;
translate([-notch_w/2, 0, -notch_d]) cube([notch_w, y_len, notch_d]);
}
// Pickup notch
tol = 0.25;
translate([-neck_width/2, 2, -tol]) hull() {
cube([neck_width, pickup_w, pickup_h+tol]);
translate([0, pickup_h*0.8, 0]) cube([neck_width, pickup_w, 0.01]);
}
// Version stamp
y0 = 0;
y1 = y_len;
translate([-15,y0+0.5,4]) rotate([90,0,0]) linear_extrude(10) {
text(str(id_line_0, id_line_1), size=2.9, halign="center", valign="center", $fn=100);
}
translate([-15,y1-0.5,4]) rotate([90,0,180]) linear_extrude(10) {
text(str(id_line_0, id_line_1), size=2.9, halign="center", valign="center", $fn=100);
}
}
} else if (from_fret == -5) {
echo("Making a tailpiece");
y0 = -47;
@ -727,9 +773,9 @@ Guitar_Scale_Length_mm = Classical_Short_Scale_mm;
// translate([0, Guitar_Scale_Length_mm, 0]) rotate([0,0,180]) Nylon6String(reference=true);
// rotate([0,0,180]) Nylon6String(from_fret=-1);
// Nylon6String(from_fret=-2);
// %Nylon6String(from_fret=-3);
Nylon6String(from_fret=-3);
// Nylon6String(from_fret=-4);
Nylon6String(from_fret=-5);
// %Nylon6String(from_fret=-5);
// difference() {
// translate([-15, -60, 0]) cube([50, 120, 8]);