diff --git a/CFTubes.scad b/CFTubes.scad index a74c184..d46502e 100644 --- a/CFTubes.scad +++ b/CFTubes.scad @@ -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 y0 = -175; - y_battery = y0 - 67; + y_battery = y0 - 70; headstock_length = 36; y_end = behind_fret(0) + headstock_length; 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]]); target_neck_thickness_additional_points = []; @@ -820,20 +820,26 @@ module Steel6String(include_colours=[0,1,4], segment=-1, reference=false) { ]; $trussrods_extra = 0; $dowel_positions = [ - [ -9, $segment_cuts[4], -10], - [ 9, $segment_cuts[4], -10], - [ -8, $segment_cuts[3], -11], - [ 8, $segment_cuts[3], -11], - [-38, $segment_cuts[2], -11], - [ 38, $segment_cuts[2], -11], - [-37, $segment_cuts[2], -25], - [ 37, $segment_cuts[2], -25], - [-24, $segment_cuts[1], -4], - // [ 24, $segment_cuts[1], -4], - [-33, $segment_cuts[1], -16], - // [ 33, $segment_cuts[1], -16], - [ -8, $segment_cuts[1], -10], - [ 36, $segment_cuts[1], -27], + [ -9, $segment_cuts[6], -10], + [ 9, $segment_cuts[6], -10], + [ -8, $segment_cuts[5], -11], + [ 8, $segment_cuts[5], -11], + [-38, $segment_cuts[4], -11], + [ 38, $segment_cuts[4], -11], + [-37, $segment_cuts[4], -25], + [ 37, $segment_cuts[4], -25], + [-24, $segment_cuts[3], -4], + // [ 24, $segment_cuts[3], -4], + [-33, $segment_cuts[3], -16], + // [ 33, $segment_cuts[3], -16], + [ -8, $segment_cuts[3], -10], + [-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 = [ [-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]] ); 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(pts2); + 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-10) polygon(pts2); } } } @@ -980,7 +986,7 @@ module Steel6String(include_colours=[0,1,4], segment=-1, reference=false) { } 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); // Cable channel $fn = 72; @@ -1003,10 +1009,13 @@ module Steel6String(include_colours=[0,1,4], segment=-1, reference=false) { $fn = 72; // 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([18, -193, 0]) uke_chromatic_tuner_eq(); - translate([-body_width/2, -212, -20]) rotate([90, 0, -90]) uke_chromatic_tuner_battery_jack(); + translate([18, -203, 0]) uke_chromatic_tuner_eq(); + 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() { render() difference() { union() { @@ -1015,7 +1024,24 @@ module Steel6String(include_colours=[0,1,4], segment=-1, reference=false) { } Reinforcements(); 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 // 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) { c_cf = [0.4, 0.5, 0.5];