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]);
|
||||
|
||||
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() {
|
||||
|
|
|
@ -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;
|
||||
|
|
|
@ -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();
|
||||
|
|
|
@ -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);
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue