diff --git a/CFTubes.scad b/CFTubes.scad index 61b8b3a..4b82b2b 100644 --- a/CFTubes.scad +++ b/CFTubes.scad @@ -1103,13 +1103,70 @@ COLOURSCHEME_PETGHF_BLUE = [BAMBU_PETGHF_LAKE_BLUE, BAMBU_PETGHF_LAKE_BLUE, "", // TrussRodSingleAction(taper_points=[-extra, l], extra=true, tolerance = 0.24); // } -module TwoBangerMk2(include_colours=[0,1]) { - TaperNeck(string_spacing_bridge=20, string_spacing_nut=20, num_strings=2, extra_height=6, fret_widths=concat([3.6], [ for (i=[0:50]) 2.4 ]), num_frets=34, fret_side_marker_x_angle=-23, fret_side_marker_y_angle=5, include_colours=include_colours); +module TwoBangerMk2(include_colours=[0,1], preview=false) { + module MyNeck() { + TaperNeck( + string_spacing_bridge=20, + string_spacing_nut=20, + num_strings=2, + string_margin=5, + target_neck_thickness=15, + scallop_depth=2.5, + extra_height=6, + fret_widths=concat([3.6], [ for (i=[0:50]) 2.4 ]), + num_frets=34, + fret_side_marker_x_angle=-23, + fret_side_marker_y_angle=5, + include_colours=include_colours, + ) { + body_height = 30; + behind_bridge = 100; + epsilon = 0.000001; + radius = 4; + w = 30 - radius*2; + hull() { + // translate([-w/2, 475-behind_bridge-epsilon, -epsilon]) cube([30, epsilon, epsilon]); + // translate([-w/2, -behind_bridge, -body_height]) cube([30, 460, body_height]); + $fn = 64; + translate([-w/2, radius-behind_bridge, radius-body_height]) sphere(radius); + translate([+w/2, radius-behind_bridge, radius-body_height]) sphere(radius); + translate([+w/2, radius-behind_bridge, 0]) sphere(radius); + translate([-w/2, radius-behind_bridge, 0]) sphere(radius); + translate([-w/2, 440-behind_bridge, radius-body_height]) sphere(radius); + translate([+w/2, 440-behind_bridge, radius-body_height]) sphere(radius); + translate([+w/2, 495-behind_bridge, 0]) sphere(radius); + translate([-w/2, 495-behind_bridge, 0]) sphere(radius); + } + } + } + + module TrussRods() { + translate([0, 630+270, -4]) rotate([0, 0, 180]) TrussRod(); + translate([0, -100, -14]) TrussRodSingleAction(); + } + + // reinforcing_tube_positions = [ + // [-10, 125, 0], + // [ 10, 125, 0], + // [ 0, 125, -10], + // ]; + // module CFs(x0=-1000, x1=-1000) { + // for (v = reinforcing_tube_positions) CFTubeCutout2(v, x0, x1); + // } + + if (preview) { + TrussRods(); + // CFs(); + color("#FF000080") MyNeck(); + } else { + MyNeck(); + } } Guitar_Scale_Length_mm = PBass_Scale_mm; colour_scheme = COLOURSCHEME_ABS_BLUE; -color(colour_scheme[0]) TwoBangerMk2([0]); -color(colour_scheme[1]) TwoBangerMk2([1]); -color(colour_scheme[2]) TwoBangerMk2([2]); -color(colour_scheme[3]) TwoBangerMk2([3]); +TwoBangerMk2(preview=true); +// color(colour_scheme[0]) TwoBangerMk2([0]); +// color(colour_scheme[1]) TwoBangerMk2([1]); +// color(colour_scheme[2]) TwoBangerMk2([2]); +// color(colour_scheme[3]) TwoBangerMk2([3]); diff --git a/EllipticalNeck.scad b/EllipticalNeck.scad index 0024d92..438b86e 100644 --- a/EllipticalNeck.scad +++ b/EllipticalNeck.scad @@ -187,6 +187,8 @@ module TaperNeck( } } } + // Add any children to this so other functions will difference from the additions + children(); } module scallop(fret) { x0 = fret_scale_length(fret-1) - get_fret_width(fret-1)/2; @@ -276,7 +278,7 @@ module TaperNeck( module carved_stock() { render() difference() { - neck_stock(); + neck_stock() children(); scallops(); scallop(num_frets+1); // Chop off anything above the frets @@ -304,14 +306,14 @@ module TaperNeck( has3 = list_has(include_colours, 3); if (has0) { render() difference() { - carved_stock(); + carved_stock() children(); if (!has1) intersect_fret_layers(); if (!has2) fret_inlays(); if (!has3) fret_side_markers(); } } else render() intersection() { difference() { - carved_stock(); + carved_stock() children(); if (!has1) intersect_fret_layers(); if (!has2) fret_inlays(); if (!has3) fret_side_markers();