Conservative bridge and tuner blocks

This commit is contained in:
Luke Hubmayer-Werner 2025-02-20 04:50:26 +10:30
parent 29629e9ff0
commit 967401e4b9
1 changed files with 48 additions and 24 deletions

View File

@ -803,12 +803,12 @@ module Steel6String(include_colours=[0,1,4], segment=-1, reference=false) {
// Artist Strat has about 18cm of headstock and 10cm past bridge on body // Artist Strat has about 18cm of headstock and 10cm past bridge on body
y0 = -175; y0 = -175;
y_battery = y0 - 67; y_battery = y0 - 70;
headstock_length = 36; headstock_length = 36;
y_end = behind_fret(0) + headstock_length; y_end = behind_fret(0) + headstock_length;
y_fretboard_end = get_end_of_fretboard(); y_fretboard_end = get_end_of_fretboard();
$segment_cuts = [y_battery, 0, get_end_of_fretboard(), after_fret(8), behind_fret(0), y_end]; $segment_cuts = [y_battery, y0, -37, 0, get_end_of_fretboard(), after_fret(8), behind_fret(0), y_end];
echo("Segment cuts:", $segment_cuts, "have lengths", [ for (i=[1:len($segment_cuts)-1]) $segment_cuts[i]-$segment_cuts[i-1]]); echo("Segment cuts:", $segment_cuts, "have lengths", [ for (i=[1:len($segment_cuts)-1]) $segment_cuts[i]-$segment_cuts[i-1]]);
target_neck_thickness_additional_points = []; target_neck_thickness_additional_points = [];
@ -820,20 +820,26 @@ module Steel6String(include_colours=[0,1,4], segment=-1, reference=false) {
]; ];
$trussrods_extra = 0; $trussrods_extra = 0;
$dowel_positions = [ $dowel_positions = [
[ -9, $segment_cuts[4], -10], [ -9, $segment_cuts[6], -10],
[ 9, $segment_cuts[4], -10], [ 9, $segment_cuts[6], -10],
[ -8, $segment_cuts[3], -11], [ -8, $segment_cuts[5], -11],
[ 8, $segment_cuts[3], -11], [ 8, $segment_cuts[5], -11],
[-38, $segment_cuts[2], -11], [-38, $segment_cuts[4], -11],
[ 38, $segment_cuts[2], -11], [ 38, $segment_cuts[4], -11],
[-37, $segment_cuts[2], -25], [-37, $segment_cuts[4], -25],
[ 37, $segment_cuts[2], -25], [ 37, $segment_cuts[4], -25],
[-24, $segment_cuts[1], -4], [-24, $segment_cuts[3], -4],
// [ 24, $segment_cuts[1], -4], // [ 24, $segment_cuts[3], -4],
[-33, $segment_cuts[1], -16], [-33, $segment_cuts[3], -16],
// [ 33, $segment_cuts[1], -16], // [ 33, $segment_cuts[3], -16],
[ -8, $segment_cuts[1], -10], [ -8, $segment_cuts[3], -10],
[ 36, $segment_cuts[1], -27], [-29.5, $segment_cuts[2], -4],
[ 0, $segment_cuts[2], -12],
// [-33, $segment_cuts[2], -30],
// [ 33, $segment_cuts[2], -30],
[-37, $segment_cuts[1], -12],
[-34, $segment_cuts[1], -31],
[ 34, $segment_cuts[1], -31],
]; ];
$reinforcing_tube_positions = [ $reinforcing_tube_positions = [
[-17, y_end-25-CF_Tube_Len, -4.5], [-17, y_end-25-CF_Tube_Len, -4.5],
@ -878,8 +884,8 @@ module Steel6String(include_colours=[0,1,4], segment=-1, reference=false) {
[body_width/2, body_thickness/2]] [body_width/2, body_thickness/2]]
); );
for (m=[0:1]) mirror([m,0,0]) { for (m=[0:1]) mirror([m,0,0]) {
translate([0, y_battery, 0]) rotate([-90,0,0]) linear_extrude(10+y0-y_battery) polygon(pts); translate([0, y_battery, 0]) rotate([-90,0,0]) linear_extrude(y0-y_battery) polygon(pts);
translate([0, y_battery, 0]) rotate([-90,0,0]) linear_extrude(y0-y_battery) polygon(pts2); translate([0, y_battery, 0]) rotate([-90,0,0]) linear_extrude(y0-y_battery-10) polygon(pts2);
} }
} }
} }
@ -980,7 +986,7 @@ module Steel6String(include_colours=[0,1,4], segment=-1, reference=false) {
} }
module Pickup() { module Pickup() {
shum_v = [0, $segment_cuts[2], -0.8]; shum_v = [0, $segment_cuts[4], -0.8];
translate(shum_v) Shumbucker(y_align="negative", z_align="negative", y_tolerance=2); translate(shum_v) Shumbucker(y_align="negative", z_align="negative", y_tolerance=2);
// Cable channel // Cable channel
$fn = 72; $fn = 72;
@ -1003,10 +1009,13 @@ module Steel6String(include_colours=[0,1,4], segment=-1, reference=false) {
$fn = 72; $fn = 72;
// translate([-23, -195, 0]) rotate([0, 0, 90]) uke_chromatic_tuner_eq(); // translate([-23, -195, 0]) rotate([0, 0, 90]) uke_chromatic_tuner_eq();
// translate([body_width/2, -200, -20]) rotate([90, 0, 90]) uke_chromatic_tuner_battery_jack(); // translate([body_width/2, -200, -20]) rotate([90, 0, 90]) uke_chromatic_tuner_battery_jack();
translate([18, -193, 0]) uke_chromatic_tuner_eq(); translate([18, -203, 0]) uke_chromatic_tuner_eq();
translate([-body_width/2, -212, -20]) rotate([90, 0, -90]) uke_chromatic_tuner_battery_jack(); translate([-body_width/2, -222, -20]) rotate([90, 0, -90]) uke_chromatic_tuner_battery_jack();
} }
bridge_channel_width = 5;
bridge_channel_depth = 7;
module Full() { module Full() {
render() difference() { render() difference() {
union() { union() {
@ -1015,7 +1024,24 @@ module Steel6String(include_colours=[0,1,4], segment=-1, reference=false) {
} }
Reinforcements(); Reinforcements();
Pickup(); Pickup();
BeltHole(xz_pts = [[60, -12.5], [-60, -12.5], [0, -9]], belthole_y0 = $segment_cuts[2]-100, belthole_y1 = $segment_cuts[2]-40, xy_curve_width = body_width, xy_curve_x = 32); BeltHole(xz_pts = [[60, -12.5], [-60, -12.5], [0, -9]], belthole_y0 = $segment_cuts[4]-100, belthole_y1 = $segment_cuts[4]-40, xy_curve_width = body_width, xy_curve_x = 32);
// Piezo pickup channel
p_ch_len = -$segment_cuts[2];
p_ch_depth = 18;
translate([neck_width()/2, 0 - p_ch_len, 0 - p_ch_depth]) cube([4, p_ch_len, p_ch_depth]);
translate([neck_width()/2, -4 - p_ch_len, 0 - p_ch_depth]) cube([8, 4, p_ch_depth]);
// Bridge channel
translate([-bridge_channel_width/2, 0 - p_ch_len, -bridge_channel_depth]) cube([bridge_channel_width, p_ch_len, bridge_channel_depth]);
// Ground wire channel can go through Piezo
// Tuner cutouts
TunerPlacement(true, 4, 10, 10, 10, 0.4);
for (m=[0,1]) mirror([m, 0, 0]) translate([9, -158, -20]) cube([16.5, 158+$segment_cuts[2], 30]);
// Outer
for (m=[0,1]) mirror([m, 0, 0]) translate([36, -158, -45]) cube([40, 158+$segment_cuts[2], 50]);
// Ear clearance
for (m=[0,1]) mirror([m, 0, 0]) translate([20, -158, -45]) cube([40, 158+$segment_cuts[2], 13]);
// Tailpiece stuff // Tailpiece stuff
// Electronics past tuners (extra length forced by CF reinforcements) // Electronics past tuners (extra length forced by CF reinforcements)
@ -1023,8 +1049,6 @@ module Steel6String(include_colours=[0,1,4], segment=-1, reference=false) {
} }
} }
bridge_channel_width = 5;
bridge_channel_depth = 7;
if (reference) { if (reference) {
c_cf = [0.4, 0.5, 0.5]; c_cf = [0.4, 0.5, 0.5];