From 5548408077c1c3f9b40f2c7c8c5216cb84ccc068 Mon Sep 17 00:00:00 2001 From: Luke Hubmayer-Werner Date: Sat, 28 Dec 2024 13:43:39 +1030 Subject: [PATCH] Another tailpiece attempt --- CFTubes.scad | 18 +++++++++--------- UBassTuner.scad | 4 ++-- common.scad | 7 +++++++ 3 files changed, 18 insertions(+), 11 deletions(-) diff --git a/CFTubes.scad b/CFTubes.scad index 4bcac44..53f2aed 100644 --- a/CFTubes.scad +++ b/CFTubes.scad @@ -96,8 +96,8 @@ module neck(string_spacing=18, string_margin=4.5, num_strings=3, target_neck_thi module tailpiece(string_spacing=18, string_margin=4.5, num_strings=3, target_neck_thickness=15, scallop_depth=3, fret_width=2.4*6) { fw2 = fret_width/2; - neck_length = 88; - neck_width = (num_strings-1)*string_spacing + string_margin*2 + 6; + neck_length = 84; + neck_width = (num_strings-1)*string_spacing + string_margin*2 + 6 + 6; module neck_stock() { angle_excess = asin((scallop_depth+fw2)/target_neck_thickness); a0 = 90-angle_excess; @@ -120,8 +120,8 @@ module tailpiece(string_spacing=18, string_margin=4.5, num_strings=3, target_nec } module differences() { - t_offset = -27; //2.7; - t_z = -21; //-23; + t_offset = -30; //2.7; + t_z = -25; //-23; module tuner() { hole_r = 3; @@ -133,12 +133,12 @@ module tailpiece(string_spacing=18, string_margin=4.5, num_strings=3, target_nec hull() { translate([a/9, bend_r-bend_r*sin(a), bend_r*cos(a)]) sphere(hole_r, $fn=fn); translate([(a+1)/9, bend_r-bend_r*sin(a+1), bend_r*cos(a+1)]) sphere(hole_r, $fn=fn); - translate([6, bend_r-bend_r*sin(a+1), bend_r*cos(a+1)]) sphere(hole_r, $fn=fn); + translate([7, bend_r-bend_r*sin(a+1), bend_r*cos(a+1)]) sphere(hole_r, $fn=fn); } } } - translate([t_offset, 57, t_z]) tuner(); - mirror([1,0,0]) translate([t_offset, 31, t_z]) tuner(); + translate([t_offset, 49, t_z]) tuner(); + mirror([1,0,0]) translate([t_offset, 27, t_z]) tuner(); translate([t_offset, 5, t_z]) tuner(); for (i = [-1:2:1]) translate([i*15, 0, -4]) @@ -146,9 +146,9 @@ module tailpiece(string_spacing=18, string_margin=4.5, num_strings=3, target_nec translate([0, 0, -10]) cf_tube(neck_length, 0, tolerance=0.4); } - thick = 32; + thick = 34; render() difference() { - color([1,1,1,0.3]) translate([-neck_width/2, 0, -thick+scallop_depth]) cube([neck_width, neck_length, thick]); + color([1,1,1,0.7]) translate([-neck_width/2, 0, -thick]) round_cube([neck_width, neck_length, thick], 4); differences(); } // color([1,1,1,0.3]) neck_stock(); diff --git a/UBassTuner.scad b/UBassTuner.scad index 4818d4a..fc63d96 100644 --- a/UBassTuner.scad +++ b/UBassTuner.scad @@ -5,7 +5,7 @@ module UBassTuner(from_below=false, from_side=true) { d_collar = 13.8 + 0.2; // Add some tolerance l_collar = 8; // doesn't include hex l_collarnut_to_top_of_peg = 19; //22; - d_top_of_peg = 16; + d_top_of_peg = 16+2; max_thread = 5.0; // thread to cover without the collar w_tag = 19; l_tag = 32.5; @@ -66,7 +66,7 @@ module UBassTuner(from_below=false, from_side=true) { // string clearance string_z0 = 5; string_z = 6; - string_extra_d = 5; + string_extra_d = 7; color(clear_color) hull() { translate([0, -middle_of_thread_to_tab_screw, t_base+max_thread+l_collar+string_z0]) cylinder(h=l_collarnut_to_top_of_peg-string_z0, d=d_top_of_peg, $fn=72); translate([0, -middle_of_thread_to_tab_screw, t_base+max_thread+l_collar+string_z0+string_z/2]) cylinder(h=l_collarnut_to_top_of_peg-string_z-string_z0, d=d_top_of_peg+string_extra_d, $fn=72); diff --git a/common.scad b/common.scad index 8e55b99..037dc5e 100644 --- a/common.scad +++ b/common.scad @@ -31,6 +31,13 @@ function arc_points(tri_points, fragments_per_mm=5) = ) [for (i = [0:steps]) r*[cos(a_start+i*a_step), sin(a_start+i*a_step)] + cc]; +module round_cube(size, r) { + translate([r, r, r]) minkowski() { + cube(size-[r*2,r*2,r*2]); + sphere(r=r, $fn=72); + } +} + // We can't use Droid Sans Japanese because the rendering library is really dumb and will pick the wrong Droid Sans. CJK fonts must be singular files. JP_Serif_Font = "New Tegomin"; JP_Sans_Font = "Yuji Boku";