From 29629e9ff0f47df70cd0d549676e11925da0fa1f Mon Sep 17 00:00:00 2001 From: Luke Hubmayer-Werner Date: Thu, 20 Feb 2025 03:58:18 +1030 Subject: [PATCH] Uke janky electronics --- CFTubes.scad | 70 +++++++++++++++++++++++++++++++++++++++++++--------- 1 file changed, 58 insertions(+), 12 deletions(-) diff --git a/CFTubes.scad b/CFTubes.scad index 4951518..a74c184 100644 --- a/CFTubes.scad +++ b/CFTubes.scad @@ -1,5 +1,6 @@ include include +include include include @@ -104,6 +105,39 @@ module chromatic_tuner_battery_jack(extra_depth=10, tolerance=0.5) { screw_hole_lobe(ID = 1.5, OD = 2.5); } +module uke_chromatic_tuner_eq(extra_depth=2, tolerance=1.5) { + w = 44.5 + tolerance; + h = 34.2 + tolerance; + d = 25 + extra_depth; + corner_bevel = 5.0 - 1; // tolerance + 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 = 44.4; + hole_spacing_h = 33.8; + hole_depth = 12 + 3; + 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 uke_chromatic_tuner_battery_jack(extra_depth=10, tolerance=1.0) { + w = 29.8 + tolerance; + h = 25.3 + tolerance; + d = 40 + extra_depth; + corner_bevel = 2; + 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 = 30; + hole_spacing_h = 26.6; + hole_depth = 12 + 3; + 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 最後に、兄弟たち。すべての真実なこと、すべての誉れあること、すべての正しいこと、すべてのきよいこと、すべての愛すべきこと、すべての評判の良いこと、そのほか徳と言われること、称賛に値することがあるならば、そのようなことに心を留めなさい。 @@ -769,8 +803,7 @@ module Steel6String(include_colours=[0,1,4], segment=-1, reference=false) { // Artist Strat has about 18cm of headstock and 10cm past bridge on body y0 = -175; - y_battery = y0 - 50; - z_battery = 60 - body_thickness; + y_battery = y0 - 67; headstock_length = 36; y_end = behind_fret(0) + headstock_length; y_fretboard_end = get_end_of_fretboard(); @@ -833,17 +866,20 @@ module Steel6String(include_colours=[0,1,4], segment=-1, reference=false) { // translate([r-body_width_tapered/2, after_fret(20)-r, -r]) sphere(r); // translate([r-body_width_tapered/2, y0+r, r-body_thickness]) sphere(r); // translate([r-body_width_tapered/2, y0+r, -r]) sphere(r); - translate([0, y0, 0]) rotate([-90,0,0]) linear_extrude(body_y_end-y0) polygon(pts); + translate([0, y_battery, 0]) rotate([-90,0,0]) linear_extrude(body_y_end-y_battery) polygon(pts); } } hull() { r = 3; $fn=72; + pts2 = arc_points([ + [(body_width-8)/2, 0], + [(body_width-8)/2, body_thickness], + [body_width/2, body_thickness/2]] + ); for (m=[0:1]) mirror([m,0,0]) { - translate([0, y0, 0]) rotate([-90,0,0]) linear_extrude(1) polygon(pts); - translate([r-30, y0-r, z_battery-r]) sphere(r); - translate([r-30, r+y_battery, z_battery-r]) sphere(r); - translate([r-30, r+y_battery, r-body_thickness]) sphere(r); + translate([0, y_battery, 0]) rotate([-90,0,0]) linear_extrude(10+y0-y_battery) polygon(pts); + translate([0, y_battery, 0]) rotate([-90,0,0]) linear_extrude(y0-y_battery) polygon(pts2); } } } @@ -902,7 +938,9 @@ module Steel6String(include_colours=[0,1,4], segment=-1, reference=false) { } module TunerPlacement(cutout = false, ear_extra_diameter = 0, ear_extra_height = 0, plate_clearance = 0, shaft_clearance = 0, shaft_tolerance = 0) { - for (m=[0,1]) mirror([m, 0, 0]) translate([29,3,-32]) rotate([0,-90,0]) NylonTuner(cutout, ear_extra_diameter, ear_extra_height, plate_clearance, shaft_clearance, shaft_tolerance); + // for (m=[0,1]) mirror([m, 0, 0]) translate([33,-150,-12]) rotate([0,-90,0]) NylonTuner(cutout, ear_extra_diameter, ear_extra_height, plate_clearance, shaft_clearance, shaft_tolerance); + for (m=[0,1]) mirror([m, 0, 0]) translate([-34,-158,-14]) rotate([0,90,0]) NylonTuner(cutout, ear_extra_diameter, ear_extra_height, plate_clearance, shaft_clearance, shaft_tolerance); + // translate([string_x(5, -20), -20, 0]) rotate([0, -90, 180]) LockingGuitarTuner(); } module LoopOrTunerBlock(tuner_block) { @@ -961,6 +999,14 @@ module Steel6String(include_colours=[0,1,4], segment=-1, reference=false) { } } + module PiezoElectronics() { + $fn = 72; + // translate([-23, -195, 0]) rotate([0, 0, 90]) uke_chromatic_tuner_eq(); + // translate([body_width/2, -200, -20]) rotate([90, 0, 90]) uke_chromatic_tuner_battery_jack(); + translate([18, -193, 0]) uke_chromatic_tuner_eq(); + translate([-body_width/2, -212, -20]) rotate([90, 0, -90]) uke_chromatic_tuner_battery_jack(); + } + module Full() { render() difference() { union() { @@ -973,8 +1019,7 @@ module Steel6String(include_colours=[0,1,4], segment=-1, reference=false) { // Tailpiece stuff // Electronics past tuners (extra length forced by CF reinforcements) - translate([0, -145, 0]) rotate([0, 0, 90]) chromatic_tuner_eq(); - translate([0, -200, z_battery]) rotate([0, 0, 90]) chromatic_tuner_battery_jack(extra_depth=0); + PiezoElectronics(); } } @@ -986,7 +1031,7 @@ module Steel6String(include_colours=[0,1,4], segment=-1, reference=false) { color(c_cf) Reinforcements(); Pickup(); // Approximate tuner placement - // TunerPlacement(); + TunerPlacement(); // Render strings above for spacing reference string_excess = 80; for (i = [0:$num_strings-1]) { @@ -997,7 +1042,8 @@ module Steel6String(include_colours=[0,1,4], segment=-1, reference=false) { } } %Full(); - translate([0, -20, 0]) FlatBridge(saddle_height=bridge_height-6, base_height=6); + translate([0, -10, 0]) FlatBridge(saddle_height=bridge_height-6, base_height=6, y_len=10); + PiezoElectronics(); } else if (segment >= 0) { intersection() { Full();