Old changes of little use now that the Aluminium profiles have been confirmed unsuitable for tension-bearing spines

This commit is contained in:
Luke Hubmayer-Werner 2025-02-03 13:43:14 +10:30
parent adf28ebe11
commit d1ba9c4d3c
3 changed files with 135 additions and 14 deletions

116
2Banger_bridge Normal file
View File

@ -0,0 +1,116 @@
include <common.scad>
include <2BangerCommon.scad>
// Nice big jumbo fret for the 0th fret
fret_width = 2.4*1.5; //2.4; //2.8; // Jumbo = 0.11", 0.055" tall
module headpiece(from_fret, to_fret, tang_depth = 3, Cap_Length = 30) {
z_min = (fret_scale_length(to_fret) + fret_scale_length(to_fret+1))/2;
z_max = (fret_scale_length(from_fret) + fret_scale_length(from_fret-1))/2 + Cap_Length;
z_offset = z_min;
Tube_Length = z_max - z_min;
echo(str("Cap length from fret ", from_fret, " to ", to_fret, " is ", Tube_Length, "mm"));
module solid_tube(cap_taper = 1.5, fingerboard_min_thick = 2.5, fingerboard_max_thick = 5+2, fret_angle = 60) { // Fret angle of 45° is normal, anything over 60 will not work correctly
module fret_bumps(w=50) {
translate([0,0,-z_offset]) for (fret = [from_fret:to_fret])
translate([fingerboard_max_thick - fret_width/2, w/2, fret_scale_length(fret)])
rotate([90,0,0]) cylinder(h = w, r = fret_width/2);
}
module scallops(w=50) {
for (fret = [from_fret:to_fret+1])
let(
f_prev = fret_scale_length(fret-1) - z_offset,
f_next = fret_scale_length(fret) - z_offset,
o = fret_width/2 * sin(fret_angle),
x0 = f_prev - o,
x1 = f_next + o,
y0 = fingerboard_min_thick,
y1 = fingerboard_max_thick - (fret_width/2 * cos(fret_angle)),
pts = [[x0, y1], [x1, y1], [(x0+x1)/2, y0]],
cc = tri_circumcenter(pts),
r = norm([x0, y1] - cc)
) {
translate([0,-w/2,0])
rotate([-90,-90,0])
translate(cc) cylinder(h = w, r = r);
}
}
module basic_fretboard() {
intersection() {
hull() {
minkowski($fn = mink_fn) {
sphere(cap_taper, $fn = mink_fn);
translate([0,0,cap_taper]) linear_extrude(0.01) offset(-cap_taper)
cap_outline(fingerboard_min_thick = fingerboard_min_thick, fingerboard_max_thick = fingerboard_max_thick);
}
minkowski($fn = mink_fn) {
sphere(cap_taper, $fn = mink_fn);
translate([0,0,Tube_Length-cap_taper]) linear_extrude(0.01) offset(-cap_taper)
cap_outline(fingerboard_min_thick = fingerboard_min_thick, fingerboard_max_thick = fingerboard_max_thick);
}
linear_extrude(Tube_Length) offset(-1) cap_outline();
translate([0,0,cap_taper]) linear_extrude(Tube_Length-cap_taper*2)
cap_outline(fingerboard_min_thick = fingerboard_min_thick, fingerboard_max_thick = fingerboard_max_thick);
}
union() {
fret_bumps();
translate([-50,-50,0]) cube([50 + fingerboard_max_thick - (fret_width/2 * cos(fret_angle)), 100, Tube_Length]);
}
}
}
// Make a solid tube and then subtract the notches
difference() {
union() {
basic_fretboard();
// translate([0,0,Tube_Length]) linear_extrude(tang_depth) tang_outline(-0.1);
}
difference() {
scallops();
fret_bumps();
}
// Shear off the top at an angle
translate([-1,-50,Tube_Length])
rotate([0,83.8])
cube([45,100,100]);
// Tang for connecting to next tube
tapered_tang_groove(depth = tang_depth + 0.5, taper = 0);
tapered_tang_groove(depth = 0.5, taper = 0, offset = 0.5);
}
// color("red") scallops();
}
module string_hole() {
translate([0, 0, Tube_Length - Cap_Length - 5])
rotate([0,-40])
union() {
translate([0, 0, 105])
cube([7.5, 5, 200], center = true);
cylinder(h = 200, r = 2.5, center = true);
}
}
difference() {
solid_tube(1.5);
linear_extrude(Tube_Length - Cap_Length + 10) T_hole();
tapered_T_hole(z0 = 0, z1 = 3);
// tapered_T_hole(z0 = Tube_Length-3, z1 = Tube_Length+0.0001, o0 = 0, o1 = 1);
// String holes
translate([0, -10, 0])
string_hole();
translate([0, 10, 0])
string_hole();
// Version number
translate([-10,10,Tube_Length-0.5]) linear_extrude(1) text("05²", size=5, halign="center", valign="center", font="Noto Sans");
// Fret number markers
for (fret = [from_fret:to_fret])
translate([-3,-16,fret_scale_length(fret)-z_offset]) rotate([90,25,16]) linear_extrude(100) text(str(fret), size=4, halign="center", valign="center", font="Noto Sans");
}
}
headpiece(from_fret = -5, to_fret = -5);
//translate([50, 0]) headpiece(from_fret = 0, to_fret = 0);

View File

@ -2,16 +2,17 @@ include <common.scad>
include <2BangerCommon.scad>
// Nice big jumbo fret for the bridge
fret_width = 2.4*1.5; //2.4; //2.8; // Jumbo = 0.11", 0.055" tall
fret_width = 3.5; //2.4*1.5; //2.4; //2.8; // Jumbo = 0.11", 0.055" tall
module headpiece(from_fret, to_fret, tang_depth = 3) {
z_min = (fret_scale_length(to_fret) + fret_scale_length(to_fret+1))/2;
z_min = fret_scale_length(to_fret) - fret_width/2;
//z_min = (fret_scale_length(to_fret) + fret_scale_length(to_fret+1))/2;
z_max = (fret_scale_length(from_fret) + fret_scale_length(from_fret-1))/2;
z_offset = z_min;
Tube_Length = z_max - z_min;
echo(str("Cap length from fret ", from_fret, " to ", to_fret, " is ", Tube_Length, "mm"));
module solid_tube(cap_taper = 1.5, fingerboard_min_thick = 2.5, fingerboard_max_thick = 5+8, fret_angle = 60) { // Fret angle of 45° is normal, anything over 60 will not work correctly
//fingerboard_max_thick = 5+8
module solid_tube(cap_taper = 1.5, fingerboard_min_thick = 2.5, fingerboard_max_thick = 5+2, fret_angle = 60) { // Fret angle of 45° is normal, anything over 60 will not work correctly
module fret_bumps(w=50) {
translate([0,0,-z_offset]) for (fret = [from_fret:to_fret])
translate([fingerboard_max_thick - fret_width/2, w/2, fret_scale_length(fret)])
@ -84,7 +85,8 @@ module headpiece(from_fret, to_fret, tang_depth = 3) {
}
module string_hole() {
translate([12, 0, Tube_Length - 5])
//translate([12, 0, Tube_Length - 5])
translate([6.5, 0, Tube_Length - 5])
rotate([0,-5])
cylinder(h = 50, r = 1.5, center = true);
}
@ -99,14 +101,19 @@ module headpiece(from_fret, to_fret, tang_depth = 3) {
string_hole();
translate([0, 10, 0])
string_hole();
// Pickup wiring holes
translate([-15, -10, 0])
string_hole();
translate([-15, 10, 0])
string_hole();
// Version number
translate([-10,10,Tube_Length-0.5]) linear_extrude(1) text("05²", size=5, halign="center", valign="center", font="Noto Sans");
translate([-10,10,Tube_Length-0.5]) linear_extrude(1) text("05³", size=5, halign="center", valign="center", font="Noto Sans");
// Fret number markers
for (fret = [from_fret:to_fret])
translate([-3,-16,fret_scale_length(fret)-z_offset]) rotate([90,25,16]) linear_extrude(100) text("B", size=4, halign="center", valign="center", font="Noto Sans");
translate([-3,-16,fret_scale_length(fret)-z_offset+fret_width/2]) rotate([90,25,16]) linear_extrude(100) text("Br", size=2.5, halign="center", valign="center", font="Noto Sans");
}
}
headpiece(from_fret = 7, to_fret = 7);
headpiece(from_fret = 22, to_fret = 22);
//translate([50, 0]) headpiece(from_fret = 0, to_fret = 0);

View File

@ -117,7 +117,7 @@ module fret_tube(from_fret, to_fret, scale_offset = 0, nut_spacing = 10, bridge_
}
module basic_fretboard() {
intersection() {
render() intersection() {
hull() {
translate([0,0,z_max]) linear_extrude(0.001) outline_xy(get_desired_top_width(z_max));
translate([0,0,z_min]) linear_extrude(0.001) outline_xy(get_desired_top_width(z_min));
@ -130,7 +130,7 @@ module fret_tube(from_fret, to_fret, scale_offset = 0, nut_spacing = 10, bridge_
}
// Make a solid tube and then subtract the notches
difference() {
render() difference() {
basic_fretboard();
color("red") scallops();
}
@ -186,8 +186,6 @@ module fret_tube(from_fret, to_fret, scale_offset = 0, nut_spacing = 10, bridge_
// Long Bass (34")
fret_tube(from_fret=0, to_fret=36, scale_offset=-5, nut_spacing=10, bridge_spacing=20, strings=3, string_mms=[2.54, 2.159, 1.651]);
// // Strat scale (25.5")
// translate([50, 0])
// fret_tube(from_fret=0, to_fret=30, scale_offset=0, nut_spacing=7, bridge_spacing=11, strings=6, string_mms=[0.8938, 0.8128, 0.6096, 0.4064, 0.2794, 0.2286]);
translate([50, 0]) fret_tube(from_fret=0, to_fret=30, scale_offset=0, nut_spacing=7, bridge_spacing=11, strings=6, string_mms=[0.8938, 0.8128, 0.6096, 0.4064, 0.2794, 0.2286]);
// // Smaller
// translate([100, 0])
// fret_tube(from_fret=0, to_fret=24, scale_offset=3, nut_spacing=7, bridge_spacing=11, strings=5, string_mms=[0.8938, 0.8128, 0.6096, 0.4064, 0.2794]);
translate([100, 0]) fret_tube(from_fret=0, to_fret=24, scale_offset=3, nut_spacing=7, bridge_spacing=11, strings=5, string_mms=[0.8938, 0.8128, 0.6096, 0.4064, 0.2794]);