Belt loop piece

This commit is contained in:
Luke Hubmayer-Werner 2025-01-12 23:45:07 +10:30
parent 8480bba739
commit 00d09e2b33
2 changed files with 61 additions and 5 deletions

View File

@ -403,6 +403,7 @@ module Nylon6String(render_colour_0=true, render_colour_1=true, render_colour_2=
string_spacing = 10; // 50mm E to e string_spacing = 10; // 50mm E to e
string_margin = 3; // +6 string_margin = 3; // +6
neck_width = string_spacing*(num_strings-1) + string_margin*2; neck_width = string_spacing*(num_strings-1) + string_margin*2;
body_width = 96;
scallop_depth = 2.5; scallop_depth = 2.5;
fret_width=2.4; fret_width=2.4;
target_neck_thickness = 16; //22; target_neck_thickness = 16; //22;
@ -561,6 +562,47 @@ module Nylon6String(render_colour_0=true, render_colour_1=true, render_colour_2=
// StringHoles(); // StringHoles();
} }
module LoopOrTunerBlock(tuner_block) {
y0 = 116;
y1 = fret_scale_length(22);
z0 = -43;
z_drop = 6;
loop_thick = 8;
loop_slot_thick = 6;
z1 = z0 + z_drop;
if (tuner_block) {
translate([-body_width/2, 0, z0]) cube([body_width, y0, -z0]);
} else {
render() difference() {
hull() {
translate([-neck_width/2, y1-hull_epsilon, z1]) cube([neck_width, hull_epsilon, -z1]);
translate([-body_width/2, y0, z0]) cube([body_width, hull_epsilon, -z0]);
}
// Belt loop slot
hull() {
translate([0, y1-loop_slot_thick, z1+loop_thick]) rotate([0,90,0]) cylinder(d=loop_slot_thick, h=body_width, center=true, $fn=cyl_hd_fn);
translate([0, y0+loop_slot_thick, z0+loop_thick]) rotate([0,90,0]) cylinder(d=loop_slot_thick, h=body_width, center=true, $fn=cyl_hd_fn);
}
// Angled belt loop slot
hull() {
extend_factor = 0.8;
translate([body_width/2, y1-loop_slot_thick + (y1-y0-loop_slot_thick*2)*extend_factor, z1+loop_thick + (z1-z0)*extend_factor]) rotate([0,90,0]) cylinder(d=loop_slot_thick, h=hull_epsilon, $fn=cyl_hd_fn);
translate([0, y0+loop_slot_thick, z0+loop_thick]) rotate([0,90,0]) cylinder(d=loop_slot_thick, h=body_width, center=true, $fn=cyl_hd_fn);
}
// Version stamp
translate([-10,y0+0.5,-30]) rotate([90,0,0]) linear_extrude(10) {
text(str(id_line_0, id_line_1), size=2.9, halign="center", valign="center", $fn=100);
}
translate([-10,y1-0.5,-30]) rotate([90,0,180]) linear_extrude(10) {
text(str(id_line_0, id_line_1), size=2.9, halign="center", valign="center", $fn=100);
}
// CF
for (v = reinforcing_tube_positions) CFTubeCutout2(v, y0, y1);
for (v = reinforcing_square_positions) CFSquareCutout2(v, y0, y1);
}
}
}
if (reference) { if (reference) {
union() { union() {
c_cf = [0.4, 0.5, 0.5]; c_cf = [0.4, 0.5, 0.5];
@ -569,7 +611,7 @@ module Nylon6String(render_colour_0=true, render_colour_1=true, render_colour_2=
for (v = reinforcing_tube_positions) color(c_cf) translate(v) CFTube(); for (v = reinforcing_tube_positions) color(c_cf) translate(v) CFTube();
for (v = reinforcing_square_positions) color(c_cf) translate(v) CFSquare(); for (v = reinforcing_square_positions) color(c_cf) translate(v) CFSquare();
// Approximate tuner placement // Approximate tuner placement
for (m=[0,1]) mirror([m, 0, 0]) translate([29,10,-32]) rotate([0,-90,0]) NylonTuner(); for (m=[0,1]) mirror([m, 0, 0]) translate([29,3,-32]) rotate([0,-90,0]) NylonTuner();
// Render strings above for spacing reference // Render strings above for spacing reference
string_excess = 80; string_excess = 80;
@ -583,6 +625,16 @@ module Nylon6String(render_colour_0=true, render_colour_1=true, render_colour_2=
// String holding headpiece // String holding headpiece
echo("Making a headpiece"); echo("Making a headpiece");
HeadPiece(); HeadPiece();
} else if (from_fret == -2) {
echo("Making a filler belt loop");
LoopOrTunerBlock(false);
} else if (from_fret == -3) {
echo("Making a tuner block");
LoopOrTunerBlock(true);
} else if (from_fret == -4) {
echo("Making a bridge");
} else if (from_fret == -5) {
echo("Making a tailpiece");
} }
// Debug markers to aid part slicing eyeballing // Debug markers to aid part slicing eyeballing
// %for (i = [150:250:1000]) { // %for (i = [150:250:1000]) {
@ -605,8 +657,12 @@ module Nylon6String(render_colour_0=true, render_colour_1=true, render_colour_2=
// bridge(); // bridge();
Guitar_Scale_Length_mm = Classical_Short_Scale_mm; Guitar_Scale_Length_mm = Classical_Short_Scale_mm;
// Nylon6String(reference=true);
// translate([0, fret_scale_length(22), 0]) Nylon6String(from_fret=0, to_fret=22);
// translate([0, Guitar_Scale_Length_mm, 0]) rotate([0,0,180]) Nylon6String(reference=true); // translate([0, Guitar_Scale_Length_mm, 0]) rotate([0,0,180]) Nylon6String(reference=true);
rotate([0,0,180]) Nylon6String(from_fret=-1); // rotate([0,0,180]) Nylon6String(from_fret=-1);
Nylon6String(from_fret=-2);
%Nylon6String(from_fret=-3);
// difference() { // difference() {
// translate([-15, -60, 0]) cube([50, 120, 8]); // translate([-15, -60, 0]) cube([50, 120, 8]);

View File

@ -1,12 +1,12 @@
// Classical Guitar style headstock tuners, comes in a mirrored pair of 3 machine heads with a metal plate // Classical Guitar style headstock tuners, comes in a mirrored pair of 3 machine heads with a metal plate
module NylonTuner() { module NylonTuner(ear_extra_diameter = 0, ear_extra_height = 0) {
cyl_hd_fn = $preview ? 32 : 512; cyl_hd_fn = $preview ? 32 : 512;
cyl_ld_fn = $preview ? 24 : 72; cyl_ld_fn = $preview ? 24 : 72;
earshaft_diameter = 6.3; earshaft_diameter = 6.3;
ear_total_height = 22.5; ear_total_height = 22.5;
ear_height = 13+3; ear_height = 13+3;
ear_diameter = 22.1; ear_diameter = 22.1 + ear_extra_diameter;
peg_diameter = 6.0; // Closer to 5.7mm peg_diameter = 6.0; // Closer to 5.7mm
peg_length = 28; peg_length = 28;
peg_spacing = 35.0; peg_spacing = 35.0;
@ -28,7 +28,7 @@ module NylonTuner() {
} }
module ear() { module ear() {
rotate([0, 90, 0]) cylinder(h=ear_total_height, d=earshaft_diameter, $fn=cyl_ld_fn); rotate([0, 90, 0]) cylinder(h=ear_total_height, d=earshaft_diameter, $fn=cyl_ld_fn);
rotate([0, 90, 0]) translate([0,0,ear_total_height-ear_height]) cylinder(h=ear_height, d=ear_diameter, $fn=cyl_hd_fn); rotate([0, 90, 0]) translate([0,0,ear_total_height-ear_height]) cylinder(h=ear_height+ear_extra_height, d=ear_diameter, $fn=cyl_hd_fn);
} }
// Plate and clearance // Plate and clearance