First tailpiece

This commit is contained in:
Luke Hubmayer-Werner 2025-01-14 02:16:30 +10:30
parent 175112170d
commit 30a58fc75d
1 changed files with 43 additions and 1 deletions

View File

@ -628,6 +628,8 @@ module Nylon6String(render_colour_0=true, render_colour_1=true, render_colour_2=
}
}
}
bridge_channel_width = 5;
bridge_channel_depth = 7;
if (reference) {
union() {
@ -660,6 +662,44 @@ module Nylon6String(render_colour_0=true, render_colour_1=true, render_colour_2=
echo("Making a bridge");
} else if (from_fret == -5) {
echo("Making a tailpiece");
y0 = -47;
y1 = 0;
fw_len = 20;
total_len = y1-y0;
fw_height = 43;
rad_diameter = 20.35; //21;
rad_radius = rad_diameter/2;
render() difference() {
hull() {
translate([-body_width/2, -fw_len, -fw_height]) cube([body_width, fw_len, fw_height]);
translate([0, -total_len+rad_radius, -rad_radius]) rotate([0,90,0]) cylinder(h=neck_width, d=rad_diameter, center=true, $fn=cyl_hd_fn);
}
// Tuner cavity line up
tw = 16;
z0 = -43;
for (i=[-1,1]) translate([-tw/2 + i*15, y0, z0+5]) cube([tw, total_len, -z0-25]);
// String channels
for (i = [0:num_strings-1]) translate([(num_strings-i-1)*string_spacing - neck_width/2 + string_margin, y0+rad_radius, -rad_radius]) {
x = [-1,0,1,-1,0,1][i]*4/180;
r = rad_radius + string_diameters_mm[i]*0.5;
for (a = [0:180]) hull() {
translate([a*x, -sin(a)*r, cos(a)*r]) sphere(r=string_diameters_mm[i], $fn=cyl_ld_fn);
translate([a*x, -sin(a+1)*r, cos(a+1)*r]) sphere(r=string_diameters_mm[i], $fn=cyl_ld_fn);
}
}
// Bridge channel
translate([-bridge_channel_width/2, y0+rad_radius, -bridge_channel_depth]) cube([bridge_channel_width, total_len-rad_radius, bridge_channel_depth]);
// Version stamp
translate([-30,y0+0.5,-15]) 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([-30,y1-0.5,-15]) rotate([90,0,180]) linear_extrude(10) {
text(str(id_line_0, id_line_1), size=2.9, halign="center", valign="center", $fn=100);
}
// CF
for (v = reinforcing_tube_positions) CFTubeCutout2(v, y0, y1);
for (v = reinforcing_square_positions) CFSquareCutout2(v, y0, y1);
}
}
// Debug markers to aid part slicing eyeballing
// %for (i = [150:250:1000]) {
@ -687,7 +727,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);
// difference() {
// translate([-15, -60, 0]) cube([50, 120, 8]);