diff --git a/CFTubes.scad b/CFTubes.scad index d07268c..4951518 100644 --- a/CFTubes.scad +++ b/CFTubes.scad @@ -769,11 +769,13 @@ 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 - 50; + z_battery = 60 - body_thickness; headstock_length = 36; y_end = behind_fret(0) + headstock_length; y_fretboard_end = get_end_of_fretboard(); - $segment_cuts = [y0, 0, get_end_of_fretboard(), after_fret(8), behind_fret(0), y_end]; + $segment_cuts = [y_battery, 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 = []; @@ -834,6 +836,16 @@ module Steel6String(include_colours=[0,1,4], segment=-1, reference=false) { translate([0, y0, 0]) rotate([-90,0,0]) linear_extrude(body_y_end-y0) polygon(pts); } } + hull() { + r = 3; + $fn=72; + for (m=[0:1]) mirror([m,0,0]) { + translate([0, y0, 0]) rotate([-90,0,0]) linear_extrude(1) polygon(pts); + translate([r-30, y0-r, z_battery-r]) sphere(r); + translate([r-30, r+y_battery, z_battery-r]) sphere(r); + translate([r-30, r+y_battery, r-body_thickness]) sphere(r); + } + } } module MyNeck() { render() TaperNeck(target_neck_thickness_additional_points = target_neck_thickness_additional_points) MyBody(); @@ -926,34 +938,6 @@ module Steel6String(include_colours=[0,1,4], segment=-1, reference=false) { text(str(id_line_0, id_line_1), size=2.9, halign="center", valign="center", $fn=100); } } - } else { - render() difference() { - hull() { - translate([-neck_width/2, y1-hull_epsilon, z1]) cube([neck_width, hull_epsilon, -z1]); - translate([-body_width/2, y0, z0]) cube([body_width, hull_epsilon, -z0]); - } - // Belt loop slot - hull() { - translate([0, y1-loop_slot_thick, z1+loop_thick]) rotate([0,90,0]) cylinder(d=loop_slot_thick, h=body_width, center=true, $fn=cyl_hd_fn); - translate([0, y0+loop_slot_thick, z0+loop_thick]) rotate([0,90,0]) cylinder(d=loop_slot_thick, h=body_width, center=true, $fn=cyl_hd_fn); - } - // Angled belt loop slot - hull() { - extend_factor = 0.8; - translate([body_width/2, y1-loop_slot_thick + (y1-y0-loop_slot_thick*2)*extend_factor, z1+loop_thick + (z1-z0)*extend_factor]) rotate([0,90,0]) cylinder(d=loop_slot_thick, h=hull_epsilon, $fn=cyl_hd_fn); - translate([0, y0+loop_slot_thick, z0+loop_thick]) rotate([0,90,0]) cylinder(d=loop_slot_thick, h=body_width, center=true, $fn=cyl_hd_fn); - } - // Version stamp - translate([-10,y0+0.5,-30]) 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([-10,y1-0.5,-30]) 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); - } } } @@ -986,6 +970,11 @@ 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); + + // Tailpiece stuff + // Electronics past tuners (extra length forced by CF reinforcements) + translate([0, -145, 0]) rotate([0, 0, 90]) chromatic_tuner_eq(); + translate([0, -200, z_battery]) rotate([0, 0, 90]) chromatic_tuner_battery_jack(extra_depth=0); } } @@ -1125,14 +1114,14 @@ COLOURSCHEME_PETGHF_BLUE = [BAMBU_PETGHF_LAKE_BLUE, BAMBU_PETGHF_LAKE_BLUE, "", colour_scheme = COLOURSCHEME_ABS_CLOWNFISH; // colour_scheme = COLOURSCHEME_ABS_BLUE; -segment = 2; -color(colour_scheme[0]) Steel6String(segment=segment, include_colours=[0]); -color(colour_scheme[1]) Steel6String(segment=segment, include_colours=[1]); +segment = 0; +// color(colour_scheme[0]) Steel6String(segment=segment, include_colours=[0]); +// color(colour_scheme[1]) Steel6String(segment=segment, include_colours=[1]); // color(colour_scheme[2]) Steel6String(segment=segment, include_colours=[2]); // color(colour_scheme[3]) Steel6String(segment=segment, include_colours=[3]); -color(colour_scheme[2]) Steel6String(segment=segment, include_colours=[4]); +// color(colour_scheme[2]) Steel6String(segment=segment, include_colours=[4]); // rotate([90,0,0]) -// Steel6String(reference=true); +Steel6String(reference=true); module TwoBangerMk2(include_colours=[0,1], segment=-1, preview=false) {