Uke janky electronics

This commit is contained in:
Luke Hubmayer-Werner 2025-02-20 03:58:18 +10:30
parent 04f5d32236
commit 29629e9ff0
1 changed files with 58 additions and 12 deletions

View File

@ -1,5 +1,6 @@
include <common.scad>
include <UBassTuner.scad>
include <LockingGuitarTuner.scad>
include <NylonTuner.scad>
include <CFTubes/common.scad>
@ -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();