diff --git a/CFTubes.scad b/CFTubes.scad index 58aa57a..8c983e3 100644 --- a/CFTubes.scad +++ b/CFTubes.scad @@ -119,30 +119,21 @@ module bridge(string_spacing=18, string_margin=4.5, num_strings=3, target_neck_t translate([0, neck_length-fw2, scallop_depth]) rotate([0, 90]) cylinder(d=fret_width, h=neck_width, center = true, $fn=200); } - - // render() difference() { - // neck_stock(); - // translate([-neck_width, 0, scallop_depth]) cube([neck_width*2, Guitar_Scale_Length_mm*3, target_neck_thickness*3]); - // translate([0, 40, 0]) rotate([90, 90, 90]) UBassTuner(); - // } - // intersection() { - // fret_bumps(); - // neck_stock(); - // } module differences() { t_offset = 2.7; t_z = -23; - mirror([1,0,0]) translate([t_offset, 80, t_z]) rotate([90, -90, 90]) UBassTuner(); - translate([t_offset, 45, t_z]) rotate([90, -90, 90]) UBassTuner(); - mirror([1,0,0]) translate([t_offset, 10, t_z]) rotate([90, -90, 90]) UBassTuner(); + mirror([1,0,0]) translate([t_offset, 80, t_z]) rotate([90, -90, 90]) UBassTuner(from_below=false, from_side=true); + translate([t_offset, 45, t_z]) rotate([90, -90, 90]) UBassTuner(from_below=false, from_side=true); + mirror([1,0,0]) translate([t_offset, 10, t_z]) rotate([90, -90, 90]) UBassTuner(from_below=false, from_side=true); for (i = [-1:2:1]) translate([i*15, 0, -4]) cf_tube(neck_length, 0, tolerance=0.4); translate([0, 0, -10]) cf_tube(neck_length, 0, tolerance=0.4); } - difference() { - color([1,1,1,0.3]) translate([-neck_width/2, 0, -25+scallop_depth]) cube([neck_width, neck_length, 25]); + thick = 45; + render() difference() { + color([1,1,1,0.3]) translate([-neck_width/2, 0, -thick+scallop_depth]) cube([neck_width, neck_length, thick]); differences(); } // color([1,1,1,0.3]) neck_stock(); @@ -314,5 +305,5 @@ echo(fret_scale_length(8) - fret_scale_length(24)); // 240.335 // headpiece(); // UBassTuner(); -fret_tube_filler(24, 100); -// bridge(); +// fret_tube_filler(24, 100); +bridge(); diff --git a/UBassTuner.scad b/UBassTuner.scad index 7070d56..1925dfe 100644 --- a/UBassTuner.scad +++ b/UBassTuner.scad @@ -1,5 +1,5 @@ -module UBassTuner() { +module UBassTuner(from_below=false, from_side=true) { t_base = 11; d_thread = 11.0 + 0.25; d_collar = 13.8 + 0.2; // Add some tolerance @@ -45,12 +45,17 @@ module UBassTuner() { translate([0, -middle_of_thread_to_tab_screw]) circle(d=d_thread, $fn=72); } - module tuner_clearance(clearance=11) { + module tuner_clearance(clearance=11, side_clearance=30) { clear_color = [1,0,0,0.6]; // 21mm is roughly the height of the disassembled tuner from body to top of thread, 22mm should be safe // translate([0,0,-clearance]) tuner_footprint_extrude(t_base+clearance); color("grey") tuner_footprint_extrude(t_base); - color(clear_color) translate([0,0,-clearance]) tuner_footprint_extrude(clearance); + if (from_below) { + color(clear_color) translate([0,0,-clearance]) tuner_footprint_extrude(clearance); + } + if (from_side) { + color(clear_color) translate([-side_clearance,-l_tag+d_screw_tab/2,0]) cube([side_clearance, l_tag, t_base]); + } // screw color(clear_color) translate([0,0,t_base]) cylinder(h=6, d=d_screw, $fn=72); @@ -58,6 +63,11 @@ module UBassTuner() { translate([0, -middle_of_thread_to_tab_screw, t_base]) cylinder(h=max_thread, d=d_thread, $fn=72); translate([0, -middle_of_thread_to_tab_screw, t_base+max_thread]) cylinder(h=l_collar, d=d_collar, $fn=72); translate([0, -middle_of_thread_to_tab_screw, t_base+max_thread+l_collar]) cylinder(h=l_collarnut_to_top_of_peg, d=d_top_of_peg, $fn=72); + if (from_side) { + translate([-side_clearance, -middle_of_thread_to_tab_screw-d_thread/2, t_base]) cube([side_clearance, d_thread, max_thread]); + translate([-side_clearance, -middle_of_thread_to_tab_screw-d_collar/2, t_base+max_thread]) cube([side_clearance, d_collar, l_collar]); + translate([-side_clearance, -middle_of_thread_to_tab_screw-d_top_of_peg/2, t_base+max_thread+l_collar]) cube([side_clearance, d_top_of_peg, l_collarnut_to_top_of_peg]); + } // wormshaft and ear translate([w_tag/2, middle_of_tab_screw_to_wormshaft, t_base/2]) { hull() { @@ -66,13 +76,15 @@ module UBassTuner() { } rotate([0, 90, 0]) cylinder(h=l_wormshaft_collar, d=d_wormshaft_collar, $fn=72); // shaft clearance - shaft_clear = t_base/2 + clearance; - color(clear_color) union() { - hull() { - translate([-0.1, -d_wormshaft_collar_max/2, -shaft_clear]) cube([0.2, d_wormshaft_collar_max, shaft_clear]); - translate([2.3, -d_wormshaft_collar/2, -shaft_clear]) cube([0.1, d_wormshaft_collar, shaft_clear]); + if (from_below){ + shaft_clear = t_base/2 + clearance; + color(clear_color) union() { + hull() { + translate([-0.1, -d_wormshaft_collar_max/2, -shaft_clear]) cube([0.2, d_wormshaft_collar_max, shaft_clear]); + translate([2.3, -d_wormshaft_collar/2, -shaft_clear]) cube([0.1, d_wormshaft_collar, shaft_clear]); + } + translate([0, -d_wormshaft_collar/2, -shaft_clear]) cube([l_wormshaft_ear, d_wormshaft_collar, shaft_clear]); } - translate([0, -d_wormshaft_collar/2, -shaft_clear]) cube([l_wormshaft_ear, d_wormshaft_collar, shaft_clear]); } // ear clearance color(clear_color) hull() {