More tweaks and rough blocks of Chromatic Tuner EQ packs

This commit is contained in:
Luke Hubmayer-Werner 2025-02-18 00:30:23 +10:30
parent 31aff13e42
commit b52d3e2692
1 changed files with 68 additions and 58 deletions

View File

@ -41,6 +41,39 @@ module output_socket_placeholder(rear_clearance=0) {
translate([0, -output_socket_plate_thickness, output_socket_h/2]) rotate([90,0,0]) cylinder_outer(d=output_socket_washer_d, h=output_socket_protrude-output_socket_plate_thickness, $fn=72); translate([0, -output_socket_plate_thickness, output_socket_h/2]) rotate([90,0,0]) cylinder_outer(d=output_socket_washer_d, h=output_socket_protrude-output_socket_plate_thickness, $fn=72);
} }
module chromatic_tuner_eq(extra_depth=10, tolerance=0.5) {
w = 40 + tolerance;
h = 68 + tolerance;
d = 25 + extra_depth;
corner_bevel = 6;
translate([0,0,-d/2]) hull() {
cube([w-corner_bevel*2, h, d], center=true);
cube([w, h-corner_bevel*2, d], center=true);
}
hole_spacing_w = 38.7;
hole_spacing_h = 66.3;
hole_depth = 12;
for (i=[-1,1]) for (j=[-1,1])
translate([i*hole_spacing_w/2, j*hole_spacing_h/2, -hole_depth]) linear_extrude(hole_depth)
screw_hole_lobe(ID = 1.5, OD = 2.5);
}
module chromatic_tuner_battery_jack(extra_depth=10, tolerance=0.5) {
w = 38.1 + tolerance;
h = 47.0 + tolerance;
d = 58 + extra_depth;
corner_bevel = 6;
translate([0,0,-d/2]) hull() {
cube([w-corner_bevel*2, h, d], center=true);
cube([w, h-corner_bevel*2, d], center=true);
}
hole_spacing_w = 39.5;
hole_spacing_h = 49.2;
hole_depth = 12;
for (i=[-1,1]) for (j=[-1,1])
translate([i*hole_spacing_w/2, j*hole_spacing_h/2, -hole_depth]) linear_extrude(hole_depth)
screw_hole_lobe(ID = 1.5, OD = 2.5);
}
// Philippians 4:8 // Philippians 4:8
// Gideon (ShinKaiYaku07) , , , , , , , // Gideon (ShinKaiYaku07) , , , , , , ,
// ShinKaiYaku65 // ShinKaiYaku65
@ -662,7 +695,7 @@ module Nylon6String(render_colour_0=true, render_colour_1=true, render_colour_2=
module Steel6String(include_colours, segment=-1, reference=false) { module Steel6String(include_colours=[0,1], segment=-1, reference=false) {
// Artist Strat clone has a neck thickness of about 20mm at the 12th fret, where we want to overlap the truss rods // Artist Strat clone has a neck thickness of about 20mm at the 12th fret, where we want to overlap the truss rods
// We will probably have to overlap them horizontally, far from ideal, to achieve the desired thinness. // We will probably have to overlap them horizontally, far from ideal, to achieve the desired thinness.
$include_colours = include_colours; $include_colours = include_colours;
@ -686,10 +719,6 @@ module Steel6String(include_colours, segment=-1, reference=false) {
$fret_widths = default_fret_widths(3.6, 2.4); $fret_widths = default_fret_widths(3.6, 2.4);
$fret_angle = 50; $fret_angle = 50;
$target_neck_thickness = 16; $target_neck_thickness = 16;
// echo(fret_scale_length(8));
// echo(fret_scale_length(9));
// rx0 = -40; // Reinforcing rods start
// rx1 = rx0+280;
// Artist Strat has about 18cm of headstock and 10cm past bridge on body // Artist Strat has about 18cm of headstock and 10cm past bridge on body
@ -737,33 +766,10 @@ module Steel6String(include_colours, segment=-1, reference=false) {
[ 24, y0, -24], [ 24, y0, -24],
]; ];
module MyNeck(inlays_only=false, side_markers_only=false, fret_layers_only=false, engrave_markers=false, remove_fret_layers=false) { module MyNeck() {
render() TaperNeck(target_neck_thickness_additional_points = target_neck_thickness_additional_points); render() TaperNeck(target_neck_thickness_additional_points = target_neck_thickness_additional_points);
} }
module RealPiece(from_fret, to_fret, include_from_fret=false) {
// midpoint = (fret_scale_length(from_fret) - fret_scale_length(to_fret) + (include_from_fret ? fret_width : 0))/2;
module IDText(thickness = 0.2, inset = 0, extra_line=str("F", to_fret)) {
translate([0,0,-8]) rotate([-90,180,180]) translate([0,0,-thickness-inset]) linear_extrude(thickness) {
text(str($id_lines[0], $id_lines[1]), size=2.25, halign="center", valign="center", $fn=100);
translate([0,-3]) text(extra_line, size=2.25, halign="center", valign="center", $fn=100);
}
}
// module BackIDText(thickness = 0.2, inset = 0) {
// rotate_around([0,0,180], [0,midpoint,0])
// IDText(thickness, inset, str("F", from_fret));
// }
render() difference(){
NeckFragment(from_fret, to_fret, include_from_fret=include_from_fret);
// Subtract from frets
color("red") {
IDText();
// if (include_from_fret) BackIDText();
}
// color("red") BackIDText();
}
}
module HeadPiece(label=true) { module HeadPiece(label=true) {
string_offsets = [-2.4, 0, 2.4, -2.4, 0, 2.4]; string_offsets = [-2.4, 0, 2.4, -2.4, 0, 2.4];
y0 = behind_fret(0); y0 = behind_fret(0);
@ -803,7 +809,6 @@ module Steel6String(include_colours, segment=-1, reference=false) {
StringHoles(); StringHoles();
Label(); Label();
} }
// StringHoles();
} }
module TunerPlacement(cutout = false, ear_extra_diameter = 0, ear_extra_height = 0, plate_clearance = 0, shaft_clearance = 0, shaft_tolerance = 0) { module TunerPlacement(cutout = false, ear_extra_diameter = 0, ear_extra_height = 0, plate_clearance = 0, shaft_clearance = 0, shaft_tolerance = 0) {
@ -883,43 +888,45 @@ module Steel6String(include_colours, segment=-1, reference=false) {
bridge_channel_depth = 7; bridge_channel_depth = 7;
if (reference) { if (reference) {
/*translate([0, -$fsl_mm, 0]) */union() { c_cf = [0.4, 0.5, 0.5];
c_cf = [0.4, 0.5, 0.5]; %MyNeck();
%MyNeck(); %hull() {
color(c_cf) Reinforcements(); r = 5;
translate([0, fret_scale_length(24), 1-shumbucker_h]) Shumbucker(); $fn=72;
// Approximate tuner placement for (m=[0:1]) mirror([m,0,0]) {
// TunerPlacement(); translate([r-30, after_fret(15)-5, -r]) sphere(r);
// Render strings above for spacing reference translate([r-45, after_fret(16)-5, r-40]) sphere(r);
string_excess = 80; translate([r-45, after_fret(20)-5, -r]) sphere(r);
for (i = [0:$num_strings-1]) { translate([r-45, y0+r, r-40]) sphere(r);
hull() { translate([r-45, y0+r, -r]) sphere(r);
translate([string_x(i, -string_excess), -string_excess, 5]) sphere(d=$string_diameters_mm[i], $fn=cyl_ld_fn); }
translate([string_x(i, $fsl_mm+5), $fsl_mm+5, 5]) sphere(d=$string_diameters_mm[i], $fn=cyl_ld_fn); }
} color(c_cf) Reinforcements();
translate([0, fret_scale_length(24), 1-shumbucker_h]) Shumbucker();
// Approximate tuner placement
// TunerPlacement();
// Render strings above for spacing reference
string_excess = 80;
for (i = [0:$num_strings-1]) {
hull() {
translate([string_x(i, -string_excess), -string_excess, 5]) sphere(d=$string_diameters_mm[i], $fn=cyl_ld_fn);
translate([string_x(i, $fsl_mm+5), $fsl_mm+5, 5]) sphere(d=$string_diameters_mm[i], $fn=cyl_ld_fn);
} }
} }
%HeadPiece(false); %HeadPiece(false);
} else if (from_fret >= 0) { } else if (segment >= 0) {
RealPiece(from_fret, to_fret, include_from_fret = (from_fret==0)); //
if ((from_fret == 0) && list_has(include_colours, 0)) { } else if (segment == -1) {
echo("Making a headpiece");
render() difference() {
translate([0, fret_scale_length(0), 0]) HeadPiece(false);
truss_rods();
}
}
} else if (from_fret == -1) {
// String holding headpiece // String holding headpiece
echo("Making a headpiece"); echo("Making a headpiece");
HeadPiece(); HeadPiece();
} else if (from_fret == -2) { } else if (segment == -2) {
echo("Making a filler belt loop"); echo("Making a filler belt loop");
LoopOrTunerBlock(false); LoopOrTunerBlock(false);
} else if (from_fret == -3) { } else if (segment == -3) {
echo("Making a tuner block"); echo("Making a tuner block");
LoopOrTunerBlock(true); LoopOrTunerBlock(true);
} else if (from_fret == -4) { } else if (segment == -4) {
echo("Making a bridge"); echo("Making a bridge");
y_len = 9; y_len = 9;
base_height = 7; base_height = 7;
@ -1031,7 +1038,7 @@ colour_scheme = COLOURSCHEME_ABS_BLUE;
// color(colour_scheme[2]) rotate([90,0,0]) Steel6String(from_fret=0, to_fret=23, include_colours=[2]); // color(colour_scheme[2]) rotate([90,0,0]) Steel6String(from_fret=0, to_fret=23, include_colours=[2]);
// color(colour_scheme[3]) rotate([90,0,0]) Steel6String(from_fret=0, to_fret=23, include_colours=[3]); // color(colour_scheme[3]) rotate([90,0,0]) Steel6String(from_fret=0, to_fret=23, include_colours=[3]);
// rotate([90,0,0]) // rotate([90,0,0])
Steel6String(include_colours=[0,1,2,3], reference=true); Steel6String(reference=true);
// TrussRodSingleAction(); // TrussRodSingleAction();
// translate([20, 0]) TrussRod(); // translate([20, 0]) TrussRod();
@ -1313,3 +1320,6 @@ module TwoBangerMk2(include_colours=[0,1], segment=-1, preview=false) {
// color(colour_scheme[2]) TwoBangerMk2([2], segment); // color(colour_scheme[2]) TwoBangerMk2([2], segment);
// color(colour_scheme[3]) TwoBangerMk2([3], segment); // color(colour_scheme[3]) TwoBangerMk2([3], segment);
// color("red") TwoBangerMk2([4], segment); // color("red") TwoBangerMk2([4], segment);
// translate([50, 0, 0]) chromatic_tuner_battery_jack();
// translate([-50, 0, 0]) chromatic_tuner_eq();