20250213 bridge tweaks
Results: Still can't get a good grip on the sleeve nut for the tuner, and the washer is right out. Need to expand that clearance more. Full assembly note: Tension imbalance in the two strings bows the neck sideways,
This commit is contained in:
parent
d47153eaf5
commit
9b60025172
10
CFTubes.scad
10
CFTubes.scad
|
@ -1116,7 +1116,7 @@ COLOURSCHEME_PETGHF_BLUE = [BAMBU_PETGHF_LAKE_BLUE, BAMBU_PETGHF_LAKE_BLUE, "",
|
||||||
module TwoBangerMk2(include_colours=[0,1], segment=-1, preview=false) {
|
module TwoBangerMk2(include_colours=[0,1], segment=-1, preview=false) {
|
||||||
$include_colours = include_colours;
|
$include_colours = include_colours;
|
||||||
$guitar_scale_length_mm = PBass_Scale_mm;
|
$guitar_scale_length_mm = PBass_Scale_mm;
|
||||||
$id_lines = ["Zweisaiten", "250213"];
|
$id_lines = ["Zweisaiten", "250213-1"];
|
||||||
$fsl_mm = fret_scale_length(0);
|
$fsl_mm = fret_scale_length(0);
|
||||||
|
|
||||||
$string_diameters_thous = [80, 105]; // Artist BST45130
|
$string_diameters_thous = [80, 105]; // Artist BST45130
|
||||||
|
@ -1162,7 +1162,7 @@ module TwoBangerMk2(include_colours=[0,1], segment=-1, preview=false) {
|
||||||
// mirror([i,0,0]) translate([15, (i*32)-66, -26]) rotate([0, -90, 0]) UBassTuner(from_side=false, from_below=true);
|
// mirror([i,0,0]) translate([15, (i*32)-66, -26]) rotate([0, -90, 0]) UBassTuner(from_side=false, from_below=true);
|
||||||
// Tuners to the top, knobs pointing out the back
|
// Tuners to the top, knobs pointing out the back
|
||||||
for (i=[0:1])
|
for (i=[0:1])
|
||||||
mirror([i,0,0]) translate([-3.5, -78, -32]) rotate([0, 0, -90]) UBassTuner(from_side=false, from_below=true);
|
mirror([i,0,0]) translate([-3.5, -78, -32]) rotate([0, 0, -90]) UBassTuner(from_side=false, from_below=true, hole_tolerance=0.5);
|
||||||
// rotate([180, -90, 0]) UBassTuner(from_side=false, from_below=true);
|
// rotate([180, -90, 0]) UBassTuner(from_side=false, from_below=true);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1344,7 +1344,9 @@ module TwoBangerMk2(include_colours=[0,1], segment=-1, preview=false) {
|
||||||
color("#FF000080") MyBody();
|
color("#FF000080") MyBody();
|
||||||
strings_reference(30);
|
strings_reference(30);
|
||||||
} else render() {
|
} else render() {
|
||||||
if (segment < 0) {
|
if (segment == "bridge") {
|
||||||
|
FlatBridge();
|
||||||
|
} else if (segment < 0) {
|
||||||
MyBody();
|
MyBody();
|
||||||
} else {
|
} else {
|
||||||
difference() {
|
difference() {
|
||||||
|
@ -1363,7 +1365,7 @@ module TwoBangerMk2(include_colours=[0,1], segment=-1, preview=false) {
|
||||||
|
|
||||||
colour_scheme = COLOURSCHEME_ABS_BLUE;
|
colour_scheme = COLOURSCHEME_ABS_BLUE;
|
||||||
// TwoBangerMk2(preview=true);
|
// TwoBangerMk2(preview=true);
|
||||||
segment = 0;
|
segment = "bridge";
|
||||||
color(colour_scheme[0]) TwoBangerMk2([0], segment);
|
color(colour_scheme[0]) TwoBangerMk2([0], segment);
|
||||||
color(colour_scheme[1]) TwoBangerMk2([1], segment);
|
color(colour_scheme[1]) TwoBangerMk2([1], segment);
|
||||||
color(colour_scheme[2]) TwoBangerMk2([2], segment);
|
color(colour_scheme[2]) TwoBangerMk2([2], segment);
|
||||||
|
|
|
@ -213,7 +213,7 @@ module TrussRod(length = 630, tolerance = 0, taper_l = 3.0, taper_extra = 1.0, t
|
||||||
];
|
];
|
||||||
TrussRodGeneric(length=length, tolerance=tolerance, stages=stages, taper_l=taper_l, taper_extra=taper_extra, taper_points=taper_points, extra=extra);
|
TrussRodGeneric(length=length, tolerance=tolerance, stages=stages, taper_l=taper_l, taper_extra=taper_extra, taper_points=taper_points, extra=extra);
|
||||||
}
|
}
|
||||||
module TrussRodSingleAction(length = 460, tolerance = 0, taper_l = 1.5, taper_extra = 1.0, taper_points=[], extra=false) {
|
module TrussRodSingleAction(length = 460, tolerance = 0, taper_l = 3.0, taper_extra = 1.0, taper_points=[], extra=false) {
|
||||||
// base profile
|
// base profile
|
||||||
base_d = 4.6 + tolerance;
|
base_d = 4.6 + tolerance;
|
||||||
base_w = 6.1 + tolerance;
|
base_w = 6.1 + tolerance;
|
||||||
|
|
|
@ -346,3 +346,38 @@ module TaperNeck(
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
module FlatBridge(saddle_height = 10, base_height = 6, y_len = 15) {
|
||||||
|
// A bridge with no channel notch or piezo strip notch, to be printed more easily for coil-only guitars
|
||||||
|
// Base
|
||||||
|
render() difference() {
|
||||||
|
// Flatten off a rounded cube
|
||||||
|
r = 0.6;
|
||||||
|
translate([-neck_width()/2, 0, -r]) round_cube([neck_width(), y_len, base_height+r], r=r);
|
||||||
|
translate([-neck_width()/2, 0, -r]) cube([neck_width(), y_len, r]);
|
||||||
|
// screw hole just in case
|
||||||
|
translate([0, y_len/2, 0]) cylinder_outer(d=2.25, h=base_height);
|
||||||
|
countersink = 3;
|
||||||
|
translate([0, y_len/2, base_height-countersink]) cylinder_outer(d=5, h=countersink);
|
||||||
|
}
|
||||||
|
// String saddles - rule of thumb: string diameter multiplied by 4
|
||||||
|
// Make the thinnest string sit right at the front
|
||||||
|
m = 4;
|
||||||
|
saddle_y0 = 2.5; //1.2;
|
||||||
|
saddle_y1 = -3.7;
|
||||||
|
r0 = 0.85;
|
||||||
|
y_start = y_len + min($string_diameters_mm)*m - (r0+saddle_y0);
|
||||||
|
for (i = [0:$num_strings-1]) translate([($num_strings-i-1)*string_spacing(0) - neck_width()/2 + $string_margin, y_start - $string_diameters_mm[i]*m, base_height]) {
|
||||||
|
step = ($preview) ? 9 : 3;
|
||||||
|
r1 = r0 + $string_diameters_mm[i]*1.2;
|
||||||
|
r2 = r0 + $string_diameters_mm[i]*1.1;
|
||||||
|
translate([0, 0, saddle_height]) for (a=[90:step:270-step]) hull() {
|
||||||
|
translate([-sin(a)*r1, 0, cos(a)*r2]) sphere(r=r0, $fn=cyl_ld_fn);
|
||||||
|
translate([-sin(a+step)*r1, 0, cos(a+step)*r2]) sphere(r=r0, $fn=cyl_ld_fn);
|
||||||
|
translate([-sin(a)*r1, saddle_y0, -saddle_height-r0]) sphere(r=r0, $fn=cyl_ld_fn);
|
||||||
|
translate([-sin(a+step)*r1, saddle_y0, -saddle_height-r0]) sphere(r=r0, $fn=cyl_ld_fn);
|
||||||
|
translate([-sin(a)*r1, saddle_y1, -saddle_height-r0]) sphere(r=r0, $fn=cyl_ld_fn);
|
||||||
|
translate([-sin(a+step)*r1, saddle_y1, -saddle_height-r0]) sphere(r=r0, $fn=cyl_ld_fn);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
|
@ -1,11 +1,11 @@
|
||||||
|
|
||||||
module UBassTuner(from_below=false, from_side=true) {
|
module UBassTuner(from_below=false, from_side=true, hole_tolerance=0) {
|
||||||
t_base = 11;
|
t_base = 11;
|
||||||
d_thread = 11.0 + 0.25;
|
d_thread = 11.0 + 0.25 + hole_tolerance;
|
||||||
d_collar = 13.8 + 0.2; // Add some tolerance
|
d_collar = 13.8 + 0.2 + hole_tolerance; // Add some tolerance
|
||||||
l_collar = 8; // doesn't include hex
|
l_collar = 8; // doesn't include hex
|
||||||
l_collarnut_to_top_of_peg = 19; //22;
|
l_collarnut_to_top_of_peg = 19; //22;
|
||||||
d_top_of_peg = 16+2;
|
d_top_of_peg = 16+2 + hole_tolerance;
|
||||||
max_thread = 5.0; // thread to cover without the collar
|
max_thread = 5.0; // thread to cover without the collar
|
||||||
w_tag = 19;
|
w_tag = 19;
|
||||||
l_tag = 32.5;
|
l_tag = 32.5;
|
||||||
|
@ -29,7 +29,7 @@ module UBassTuner(from_below=false, from_side=true) {
|
||||||
module tuner_footprint() {
|
module tuner_footprint() {
|
||||||
hull() {
|
hull() {
|
||||||
translate([-w_tag/2, -l_tag+d_screw_tab/2]) square([w_tag, l_tag_rect]);
|
translate([-w_tag/2, -l_tag+d_screw_tab/2]) square([w_tag, l_tag_rect]);
|
||||||
circle(d=d_screw_tab, $fn=72);
|
translate([0, 1.0]) circle(d=d_screw_tab, $fn=72);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
module tuner_footprint_extrude(h) {
|
module tuner_footprint_extrude(h) {
|
||||||
|
@ -37,7 +37,7 @@ module UBassTuner(from_below=false, from_side=true) {
|
||||||
// src/openscad/src/geometry/linear_extrude.cc:409: std::unique_ptr<Geometry> extrudePolygon(const LinearExtrudeNode&, const Polygon2d&): Assertion `poly.isSanitized()' failed.
|
// src/openscad/src/geometry/linear_extrude.cc:409: std::unique_ptr<Geometry> extrudePolygon(const LinearExtrudeNode&, const Polygon2d&): Assertion `poly.isSanitized()' failed.
|
||||||
hull() {
|
hull() {
|
||||||
translate([-w_tag/2, -l_tag+d_screw_tab/2, 0]) cube([w_tag, l_tag_rect, h]);
|
translate([-w_tag/2, -l_tag+d_screw_tab/2, 0]) cube([w_tag, l_tag_rect, h]);
|
||||||
cylinder(h=h, d=d_screw_tab, $fn=72);
|
translate([0, 0.75, 0]) cylinder(h=h, d=d_screw_tab, $fn=72);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
module holes() {
|
module holes() {
|
||||||
|
|
Loading…
Reference in New Issue