20250211 headstock changes

This commit is contained in:
Luke Hubmayer-Werner 2025-02-12 12:25:24 +10:30
parent 48f0483d61
commit 3c369eaa75
4 changed files with 44 additions and 14 deletions

View File

@ -22,6 +22,16 @@ relay_coil_housing_h = 15.5;
module relay_coil_placeholder() translate([-relay_coil_housing_w/2, -relay_coil_housing_l/2]) cube([relay_coil_housing_w, relay_coil_housing_l, relay_coil_housing_h]);
output_socket_plate_thickness = 3; // The bit with the hole to screw onto
output_socket_cutout_d = 10.4 + 0.5;
output_socket_l = 25;
output_socket_w = 20;
output_socket_h = 16;
output_socket_protrude = 9.5;
module output_socket_placeholder() {
translate([-output_socket_w/2, 0, 0]) cube([output_socket_w, output_socket_l, output_socket_h]);
translate([0, 0, output_socket_h/2]) rotate([90,0,0]) cylinder_outer(d=output_socket_cutout_d, h=output_socket_protrude, $fn=72);
}
// Philippians 4:8
// Gideon (ShinKaiYaku07) , , , , , , ,
@ -32,6 +42,9 @@ fret_inlays = [[3, "真"], [5, "尊"], [7, "正"], [9, "清"], [12, "評判"], [
// Galatians 5:22-23
// ShinKaiYaku65 22 23
//
ichthys = "ΙΧΘΥΣ"; // goes inside the fish symbol
chirho = "☧";
khiro = "⳩";
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;
@ -1096,7 +1109,7 @@ COLOURSCHEME_PETGHF_BLUE = [BAMBU_PETGHF_LAKE_BLUE, BAMBU_PETGHF_LAKE_BLUE, "",
module TwoBangerMk2(include_colours=[0,1], segment=-1, preview=false) {
$include_colours = include_colours;
$guitar_scale_length_mm = PBass_Scale_mm;
$id_lines = ["Zweisaiten", "250210"];
$id_lines = ["Zweisaiten", "250212"];
$fsl_mm = fret_scale_length(0);
$string_diameters_thous = [80, 105]; // Artist BST45130
@ -1153,27 +1166,36 @@ module TwoBangerMk2(include_colours=[0,1], segment=-1, preview=false) {
module HeadPiece() {
x0 = behind_fret(0);
end_radius = 14;
x2 = x0 + 25;
end_radius = 12;
x2 = x0 + 29;
x1 = x2 - end_radius;
z0 = $scallop_depth + $extra_thickness_above_center;
z1 = $scallop_depth + get_max_fret_height() + $extra_thickness_above_center;
module StringHoles() {
$fn=360;
ballend_v = [0,x0+21,-3];
for (i = [0:$num_strings-1]) translate([string_x(i, x0),0,0]) {
ballend_v = [0,x0+15,2];
max_dia = 4; // ball wrap is like 3.8mm on these strings
hole_dia = min(4, $string_diameters_mm[i]*1.5 + 1);
string_v = [0, fret_scale_length(0), z1+hole_dia/2];
hull() {
translate([0,fret_scale_length(0),z1+$string_diameters_mm[i]/2]) sphere(d=min(4, $string_diameters_mm[i]*1.25 + 1));
translate(ballend_v) sphere(d=2.6);
translate(string_v) sphere(d=hole_dia);
translate(ballend_v) sphere(d=4);
}
delta_v = ballend_v - string_v;
hull() {
// String ball ends are roughly 3mm by 4mm cylinder(d=4, h=3)
// Bass string ball ends are roughly 3mm by 4mm cylinder(d=6, h=4.5)
translate(ballend_v) rotate([0, 90, 0]) cylinder_outer(d=6.5, h=5.0, center=true);
translate([0,x2,-10]) rotate([0, 90, 0]) cylinder_outer(d=6.5, h=5.0, center=true);
translate(ballend_v + delta_v) rotate([0, 90, 0]) cylinder_outer(d=6.5, h=5.0, center=true);
}
}
}
module Label() {
// translate([0, lerp(x0, x2, 0.5), z0-0.5]) linear_extrude(0.5) text(ichthys, font="Noto Sans", size=6, halign="center", valign="center");
// translate([0, lerp(x0, x2, 0.5), z0-0.5]) linear_extrude(0.5) text(chirho, font="DejaVu Sans", size=12, halign="center", valign="center");
translate([0, lerp(x0, x2, 0.5), z0-0.5]) linear_extrude(0.5) text(khiro, font="Noto Sans Coptic", size=12, halign="center", valign="center");
}
if (list_has(include_colours, 0)) render() difference(){
$fn=360;
hull() {
@ -1183,10 +1205,9 @@ module TwoBangerMk2(include_colours=[0,1], segment=-1, preview=false) {
translate([-500, x0, z0]) cube([1000, 1000, 1000]);
translate([-500, x0-1000, -500]) cube([1000, 1000, 1000]);
StringHoles();
// if (label) translate([-10,fw2+1,-10]) rotate([90,0,0]) linear_extrude(10) {
// text(str(id_line_0, id_line_1), size=2.9, halign="center", valign="center", $fn=100);
// }
Label();
}
if (list_has(include_colours, 2)) Label();
// StringHoles();
}
@ -1265,6 +1286,7 @@ module TwoBangerMk2(include_colours=[0,1], segment=-1, preview=false) {
// CFs();
pickup_y = fret_scale_length(36);
for (i=[0,1]) translate([string_x(i, pickup_y), pickup_y, -10]) relay_coil_placeholder();
translate([9, pickup_y-40, -10]) rotate([0, 90, 0]) output_socket_placeholder();
color("#FF000080") MyBody();
strings_reference();
} else render() {

View File

@ -152,7 +152,7 @@ module TrussRodGeneric(length, tolerance, stages, taper_l = 1.5, taper_extra = 1
module squircle(d, h, w) {
sq_h = max(h-d, epsilon);
render() hull() {
circle(d = d);
circle_outer(d = d);
translate([-w/2, h - d/2 - sq_h]) square([w, sq_h]);
}
}
@ -187,14 +187,14 @@ module TrussRodGeneric(length, tolerance, stages, taper_l = 1.5, taper_extra = 1
}
}
module TrussRod(length = 630, tolerance = 0, taper_l = 1.5, taper_extra = 1.0, taper_points=[], extra=false) {
module TrussRod(length = 630, tolerance = 0, taper_l = 3.0, taper_extra = 1.0, taper_points=[], extra=false) {
// base profile
base_d = 6.0 + tolerance;
base_w = base_d;
base_h = 9.0 + tolerance;
// nut?
stage2_d = 7.05 + tolerance;
stage2_d = 7.05 + 0.05 + tolerance;
stage2_w = base_w;
stage2_h = base_h + (stage2_d - base_d);
stage2_l = 55 + tolerance;

View File

@ -299,7 +299,7 @@ module TaperNeck(
// Chop off anything above the frets
translate([-$neck_width_bridge, 0, z1]) cube([$neck_width_bridge*2, $guitar_scale_length_mm*3, $target_neck_thickness*3]);
// Reduce rest of the body to 0
translate([-$neck_width_bridge, 0, 0]) cube([$neck_width_bridge*2, (fret_scale_length($num_frets)+fret_scale_length($num_frets+1))/2, $target_neck_thickness*3]);
translate([-$neck_width_bridge, 0, z0]) cube([$neck_width_bridge*2, (fret_scale_length($num_frets)+fret_scale_length($num_frets+1))/2, $target_neck_thickness*3]);
}
intersection() {
fret_bumps();

View File

@ -83,8 +83,16 @@ module screw_hole_lobe(ID, OD, lobes=3) {
}
}
module circle_outer(d) {
// Regular circle inscribes, this circumscribes
$fn = is_undef($fn) ? 72 : $fn;
fudge = 1/cos(180/$fn);
circle(d=d*fudge);
}
module cylinder_outer(d, h, center=false) {
// Regular circle inscribes, this circumscribes
$fn = is_undef($fn) ? 72 : $fn;
fudge = 1/cos(180/$fn);
cylinder(d=d*fudge, h=h, center=center);
}