From 9d5057dec8a2f35d83847a38a02dffc216341b76 Mon Sep 17 00:00:00 2001 From: Luke Hubmayer-Werner Date: Tue, 18 Feb 2025 02:40:04 +1030 Subject: [PATCH] 2banger2 PickupHolder test --- CFTubes.scad | 79 +++++++++++++++++++++++++++++++++++++++++++++------- 1 file changed, 69 insertions(+), 10 deletions(-) diff --git a/CFTubes.scad b/CFTubes.scad index 7aea872..c6f9f47 100644 --- a/CFTubes.scad +++ b/CFTubes.scad @@ -1121,6 +1121,63 @@ module TwoBangerMk2(include_colours=[0,1], segment=-1, preview=false) { } } + module Pickup() { + module Cavities() translate([0, 16, 2]) { + for (i=[0,1]) translate([string_x(i, pickup_y), 0, 1]) relay_coil_placeholder(bottom_leg_clearance=2.5); + translate([output_socket_l/2, -30, 0]) rotate([0, 0, 90]) output_socket_placeholder(); + translate([-12, -23, 0]) cube([24, 18, 10]); + } + h = 20; + w = neck_width(pickup_y); + l = 60; + module Box() { + difference() { + translate([-w/2, -l/2]) round_cube([w, l, h], r=2); + Cavities(); + } + } + + slots = [ + [[3-w/2, 3-l/2], [w/2-3, 3-l/2]], + [[3-w/2, l/2-3], [w/2-3, l/2-3]], + [[w/2-3, 4], [w/2-3, -3]], + [[3-w/2, 4], [3-w/2, -20]], + ]; + + split_h = h/2; + slot_h = 3; + slot_d = 2; + tongue_h = slot_h-0.4; + tongue_d = slot_d-0.2; + // Bottom + $fn=72; + difference() { + Box(); + translate([-w/2, -l/2, split_h]) cube([w, l, 100]); + // Screw holes + translate([ 7, 0]) cylinder_outer(d=2, h=10); + translate([-7, 0]) cylinder_outer(d=2, h=10); + } + // Tongues + for (s = slots) { + hull() { + for (v=s) translate([v[0], v[1], split_h]) cylinder(d=tongue_d, h=tongue_h); + } + } + + // Lid + translate([w+2, 0, h]) rotate([180,0,0]) difference() { + Box(); + translate([-w/2, -l/2, 0]) cube([w, l, split_h]); + // Slots + for (s = slots) { + hull() { + for (v=s) translate([v[0], v[1], split_h]) cylinder_outer(d=slot_d, h=slot_h); + } + } + } + } + module Tuners() { // Tuners to the side, knobs on top // for (i=[0:1]) @@ -1285,6 +1342,8 @@ module TwoBangerMk2(include_colours=[0,1], segment=-1, preview=false) { } else render() { if (segment == "bridge") { FlatBridge(); + } else if (segment == "pickup") { + Pickup(); } else if (segment < 0) { MyBody(); } else { @@ -1305,18 +1364,18 @@ module TwoBangerMk2(include_colours=[0,1], segment=-1, preview=false) { // colour_scheme = COLOURSCHEME_ABS_BLUE; colour_scheme = COLOURSCHEME_ABS_CLOWNFISH; // // TwoBangerMk2(preview=true); -// segment = 0; -// color(colour_scheme[0]) TwoBangerMk2([0], segment); +segment = "pickup"; +color(colour_scheme[0]) TwoBangerMk2([0], segment); // color(colour_scheme[1]) TwoBangerMk2([1], segment); // color(colour_scheme[2]) TwoBangerMk2([2], segment); // color(colour_scheme[3]) TwoBangerMk2([3], segment); // color("red") TwoBangerMk2([4], segment); -translate([3, 0, 0]) render() difference() { - cube([60, 60, 15]); - translate([30, 30, 15]) chromatic_tuner_battery_jack($fn=72); -} -translate([0, 0, 0]) rotate([0,0,90]) render() difference() { - cube([60, 80, 15]); - translate([30, 40, 15]) chromatic_tuner_eq($fn=72); -} +// translate([3, 0, 0]) render() difference() { +// cube([60, 60, 15]); +// translate([30, 30, 15]) chromatic_tuner_battery_jack($fn=72); +// } +// translate([0, 0, 0]) rotate([0,0,90]) render() difference() { +// cube([60, 80, 15]); +// translate([30, 40, 15]) chromatic_tuner_eq($fn=72); +// }