From b52d3e2692e7069c3a16048d34b797a990844589 Mon Sep 17 00:00:00 2001 From: Luke Hubmayer-Werner Date: Tue, 18 Feb 2025 00:30:23 +1030 Subject: [PATCH] More tweaks and rough blocks of Chromatic Tuner EQ packs --- CFTubes.scad | 126 +++++++++++++++++++++++++++------------------------ 1 file changed, 68 insertions(+), 58 deletions(-) diff --git a/CFTubes.scad b/CFTubes.scad index ab704da..0bad9c4 100644 --- a/CFTubes.scad +++ b/CFTubes.scad @@ -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); } +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 // Gideon (ShinKaiYaku07) 真実な, 尊ぶべき, 正しい, 清い, 愛すべき, 評判の良い, 徳とされる, 称賛に値する // 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 // We will probably have to overlap them horizontally, far from ideal, to achieve the desired thinness. $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_angle = 50; $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 @@ -737,33 +766,10 @@ module Steel6String(include_colours, segment=-1, reference=false) { [ 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); } - 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) { string_offsets = [-2.4, 0, 2.4, -2.4, 0, 2.4]; y0 = behind_fret(0); @@ -803,7 +809,6 @@ module Steel6String(include_colours, segment=-1, reference=false) { StringHoles(); Label(); } - // StringHoles(); } 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; if (reference) { - /*translate([0, -$fsl_mm, 0]) */union() { - c_cf = [0.4, 0.5, 0.5]; - %MyNeck(); - 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); - } + c_cf = [0.4, 0.5, 0.5]; + %MyNeck(); + %hull() { + r = 5; + $fn=72; + for (m=[0:1]) mirror([m,0,0]) { + translate([r-30, after_fret(15)-5, -r]) sphere(r); + translate([r-45, after_fret(16)-5, r-40]) sphere(r); + translate([r-45, after_fret(20)-5, -r]) sphere(r); + translate([r-45, y0+r, r-40]) sphere(r); + translate([r-45, y0+r, -r]) sphere(r); + } + } + 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); - } else if (from_fret >= 0) { - RealPiece(from_fret, to_fret, include_from_fret = (from_fret==0)); - if ((from_fret == 0) && list_has(include_colours, 0)) { - echo("Making a headpiece"); - render() difference() { - translate([0, fret_scale_length(0), 0]) HeadPiece(false); - truss_rods(); - } - } - } else if (from_fret == -1) { + } else if (segment >= 0) { + // + } else if (segment == -1) { // String holding headpiece echo("Making a headpiece"); HeadPiece(); - } else if (from_fret == -2) { + } else if (segment == -2) { echo("Making a filler belt loop"); LoopOrTunerBlock(false); - } else if (from_fret == -3) { + } else if (segment == -3) { echo("Making a tuner block"); LoopOrTunerBlock(true); - } else if (from_fret == -4) { + } else if (segment == -4) { echo("Making a bridge"); y_len = 9; 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[3]) rotate([90,0,0]) Steel6String(from_fret=0, to_fret=23, include_colours=[3]); // rotate([90,0,0]) -Steel6String(include_colours=[0,1,2,3], reference=true); +Steel6String(reference=true); // TrussRodSingleAction(); // 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[3]) TwoBangerMk2([3], segment); // color("red") TwoBangerMk2([4], segment); + +// translate([50, 0, 0]) chromatic_tuner_battery_jack(); +// translate([-50, 0, 0]) chromatic_tuner_eq();