20250211 headstock changes
This commit is contained in:
parent
48f0483d61
commit
3c369eaa75
42
CFTubes.scad
42
CFTubes.scad
|
@ -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]);
|
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
|
// Philippians 4:8
|
||||||
// Gideon (ShinKaiYaku07) 真実な, 尊ぶべき, 正しい, 清い, 愛すべき, 評判の良い, 徳とされる, 称賛に値する
|
// Gideon (ShinKaiYaku07) 真実な, 尊ぶべき, 正しい, 清い, 愛すべき, 評判の良い, 徳とされる, 称賛に値する
|
||||||
|
@ -32,6 +42,9 @@ fret_inlays = [[3, "真"], [5, "尊"], [7, "正"], [9, "清"], [12, "評判"], [
|
||||||
// Galatians 5:22-23
|
// Galatians 5:22-23
|
||||||
// ShinKaiYaku65 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) {
|
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;
|
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) {
|
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", "250210"];
|
$id_lines = ["Zweisaiten", "250212"];
|
||||||
$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
|
||||||
|
@ -1153,27 +1166,36 @@ module TwoBangerMk2(include_colours=[0,1], segment=-1, preview=false) {
|
||||||
|
|
||||||
module HeadPiece() {
|
module HeadPiece() {
|
||||||
x0 = behind_fret(0);
|
x0 = behind_fret(0);
|
||||||
end_radius = 14;
|
end_radius = 12;
|
||||||
x2 = x0 + 25;
|
x2 = x0 + 29;
|
||||||
x1 = x2 - end_radius;
|
x1 = x2 - end_radius;
|
||||||
z0 = $scallop_depth + $extra_thickness_above_center;
|
z0 = $scallop_depth + $extra_thickness_above_center;
|
||||||
z1 = $scallop_depth + get_max_fret_height() + $extra_thickness_above_center;
|
z1 = $scallop_depth + get_max_fret_height() + $extra_thickness_above_center;
|
||||||
module StringHoles() {
|
module StringHoles() {
|
||||||
$fn=360;
|
$fn=360;
|
||||||
|
ballend_v = [0,x0+21,-3];
|
||||||
for (i = [0:$num_strings-1]) translate([string_x(i, x0),0,0]) {
|
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() {
|
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(string_v) sphere(d=hole_dia);
|
||||||
translate(ballend_v) sphere(d=2.6);
|
translate(ballend_v) sphere(d=4);
|
||||||
}
|
}
|
||||||
|
delta_v = ballend_v - string_v;
|
||||||
hull() {
|
hull() {
|
||||||
// String ball ends are roughly 3mm by 4mm cylinder(d=4, h=3)
|
// 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)
|
// 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(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(){
|
if (list_has(include_colours, 0)) render() difference(){
|
||||||
$fn=360;
|
$fn=360;
|
||||||
hull() {
|
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, z0]) cube([1000, 1000, 1000]);
|
||||||
translate([-500, x0-1000, -500]) cube([1000, 1000, 1000]);
|
translate([-500, x0-1000, -500]) cube([1000, 1000, 1000]);
|
||||||
StringHoles();
|
StringHoles();
|
||||||
// if (label) translate([-10,fw2+1,-10]) rotate([90,0,0]) linear_extrude(10) {
|
Label();
|
||||||
// text(str(id_line_0, id_line_1), size=2.9, halign="center", valign="center", $fn=100);
|
|
||||||
// }
|
|
||||||
}
|
}
|
||||||
|
if (list_has(include_colours, 2)) Label();
|
||||||
// StringHoles();
|
// StringHoles();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1265,6 +1286,7 @@ module TwoBangerMk2(include_colours=[0,1], segment=-1, preview=false) {
|
||||||
// CFs();
|
// CFs();
|
||||||
pickup_y = fret_scale_length(36);
|
pickup_y = fret_scale_length(36);
|
||||||
for (i=[0,1]) translate([string_x(i, pickup_y), pickup_y, -10]) relay_coil_placeholder();
|
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();
|
color("#FF000080") MyBody();
|
||||||
strings_reference();
|
strings_reference();
|
||||||
} else render() {
|
} else render() {
|
||||||
|
|
|
@ -152,7 +152,7 @@ module TrussRodGeneric(length, tolerance, stages, taper_l = 1.5, taper_extra = 1
|
||||||
module squircle(d, h, w) {
|
module squircle(d, h, w) {
|
||||||
sq_h = max(h-d, epsilon);
|
sq_h = max(h-d, epsilon);
|
||||||
render() hull() {
|
render() hull() {
|
||||||
circle(d = d);
|
circle_outer(d = d);
|
||||||
translate([-w/2, h - d/2 - sq_h]) square([w, sq_h]);
|
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 profile
|
||||||
base_d = 6.0 + tolerance;
|
base_d = 6.0 + tolerance;
|
||||||
base_w = base_d;
|
base_w = base_d;
|
||||||
base_h = 9.0 + tolerance;
|
base_h = 9.0 + tolerance;
|
||||||
|
|
||||||
// nut?
|
// nut?
|
||||||
stage2_d = 7.05 + tolerance;
|
stage2_d = 7.05 + 0.05 + tolerance;
|
||||||
stage2_w = base_w;
|
stage2_w = base_w;
|
||||||
stage2_h = base_h + (stage2_d - base_d);
|
stage2_h = base_h + (stage2_d - base_d);
|
||||||
stage2_l = 55 + tolerance;
|
stage2_l = 55 + tolerance;
|
||||||
|
|
|
@ -299,7 +299,7 @@ module TaperNeck(
|
||||||
// Chop off anything above the frets
|
// 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]);
|
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
|
// 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() {
|
intersection() {
|
||||||
fret_bumps();
|
fret_bumps();
|
||||||
|
|
|
@ -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) {
|
module cylinder_outer(d, h, center=false) {
|
||||||
// Regular circle inscribes, this circumscribes
|
// Regular circle inscribes, this circumscribes
|
||||||
|
$fn = is_undef($fn) ? 72 : $fn;
|
||||||
fudge = 1/cos(180/$fn);
|
fudge = 1/cos(180/$fn);
|
||||||
cylinder(d=d*fudge, h=h, center=center);
|
cylinder(d=d*fudge, h=h, center=center);
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue