First Bridge attempt for Steel6
This commit is contained in:
parent
967401e4b9
commit
3b25e7ad6e
96
CFTubes.scad
96
CFTubes.scad
|
@ -1068,6 +1068,10 @@ module Steel6String(include_colours=[0,1,4], segment=-1, reference=false) {
|
|||
%Full();
|
||||
translate([0, -10, 0]) FlatBridge(saddle_height=bridge_height-6, base_height=6, y_len=10);
|
||||
PiezoElectronics();
|
||||
} else if (segment == "bridge") {
|
||||
echo("Making a bridge");
|
||||
$num_unwound_strings = 3;
|
||||
NotchBridge(bridge_channel_width=bridge_channel_width, bridge_channel_depth=bridge_channel_depth);
|
||||
} else if (segment >= 0) {
|
||||
intersection() {
|
||||
Full();
|
||||
|
@ -1077,92 +1081,6 @@ module Steel6String(include_colours=[0,1,4], segment=-1, reference=false) {
|
|||
}
|
||||
} else if (segment == -1) {
|
||||
Full();
|
||||
} else if (segment == -4) {
|
||||
echo("Making a bridge");
|
||||
y_len = 9;
|
||||
base_height = 7;
|
||||
saddle_height = 4;
|
||||
pickup_w = 3;
|
||||
pickup_h = 2;
|
||||
render() difference() {
|
||||
union() {
|
||||
// Base
|
||||
translate([-neck_width/2, 0, 0]) cube([neck_width, y_len, base_height]);
|
||||
// String saddles - rule of thumb: string diameter multiplied by 4
|
||||
r0 = 0.85;
|
||||
for (i = [0:num_strings-1]) translate([(num_strings-i-1)*string_spacing - neck_width/2 + string_margin, y_len - string_diameters_mm[i]*4, base_height]) {
|
||||
step = ($preview) ? 8 : 2;
|
||||
r = r0 + string_diameters_mm[i]*1.2;
|
||||
translate([0, 0, saddle_height]) for (a=[90:step:270-step]) hull() {
|
||||
translate([-sin(a)*r, 0, cos(a)*r]) sphere(r=r0, $fn=cyl_ld_fn);
|
||||
translate([-sin(a+step)*r, 0, cos(a+step)*r]) sphere(r=r0, $fn=cyl_ld_fn);
|
||||
translate([-sin(a)*r, -3.7, -saddle_height-r0]) sphere(r=r0, $fn=cyl_ld_fn);
|
||||
translate([-sin(a+step)*r, -3.7, -saddle_height-r0]) sphere(r=r0, $fn=cyl_ld_fn);
|
||||
translate([-sin(a)*r, 1.2, -saddle_height-r0]) sphere(r=r0, $fn=cyl_ld_fn);
|
||||
translate([-sin(a+step)*r, 1.2, -saddle_height-r0]) sphere(r=r0, $fn=cyl_ld_fn);
|
||||
}
|
||||
}
|
||||
// Bridge channel notch
|
||||
notch_w = bridge_channel_width - CF_Square_Width_tolerance; // Shrink a little for tolerance
|
||||
notch_d = bridge_channel_depth - CF_Square_Width_tolerance/2;
|
||||
translate([-notch_w/2, 0, -notch_d]) cube([notch_w, y_len, notch_d]);
|
||||
}
|
||||
// Pickup notch
|
||||
tol = 0.25;
|
||||
translate([-neck_width/2, 2, -tol]) hull() {
|
||||
cube([neck_width, pickup_w, pickup_h+tol]);
|
||||
translate([0, pickup_h*0.8, 0]) cube([neck_width, pickup_w, 0.01]);
|
||||
}
|
||||
// Version stamp
|
||||
y0 = 0;
|
||||
y1 = y_len;
|
||||
translate([-15,y0+0.5,4]) rotate([90,0,0]) linear_extrude(10) {
|
||||
text(str(id_line_0, id_line_1), size=2.9, halign="center", valign="center", $fn=100);
|
||||
}
|
||||
translate([-15,y1-0.5,4]) rotate([90,0,180]) linear_extrude(10) {
|
||||
text(str(id_line_0, id_line_1), size=2.9, halign="center", valign="center", $fn=100);
|
||||
}
|
||||
}
|
||||
} else if (from_fret == -5) {
|
||||
echo("Making a tailpiece");
|
||||
y0 = -47;
|
||||
y1 = 0;
|
||||
fw_len = 20;
|
||||
total_len = y1-y0;
|
||||
fw_height = 43;
|
||||
rad_diameter = 20.35; //21;
|
||||
rad_radius = rad_diameter/2;
|
||||
render() difference() {
|
||||
hull() {
|
||||
translate([-body_width/2, -fw_len, -fw_height]) cube([body_width, fw_len, fw_height]);
|
||||
translate([0, -total_len+rad_radius, -rad_radius]) rotate([0,90,0]) cylinder(h=neck_width, d=rad_diameter, center=true, $fn=cyl_hd_fn);
|
||||
}
|
||||
// Tuner cavity line up
|
||||
tw = 16;
|
||||
z0 = -43;
|
||||
for (i=[-1,1]) translate([-tw/2 + i*15, y0, z0+5]) cube([tw, total_len, -z0-25]);
|
||||
// String channels
|
||||
for (i = [0:num_strings-1]) translate([(num_strings-i-1)*string_spacing - neck_width/2 + string_margin, y0+rad_radius, -rad_radius]) {
|
||||
x = [-1,0,1,-1,0,1][i]*4/180;
|
||||
r = rad_radius + string_diameters_mm[i]*0.5;
|
||||
for (a = [0:180]) hull() {
|
||||
translate([a*x, -sin(a)*r, cos(a)*r]) sphere(r=string_diameters_mm[i], $fn=cyl_ld_fn);
|
||||
translate([a*x, -sin(a+1)*r, cos(a+1)*r]) sphere(r=string_diameters_mm[i], $fn=cyl_ld_fn);
|
||||
}
|
||||
}
|
||||
// Bridge channel
|
||||
translate([-bridge_channel_width/2, y0+rad_radius, -bridge_channel_depth]) cube([bridge_channel_width, total_len-rad_radius, bridge_channel_depth]);
|
||||
// Version stamp
|
||||
translate([-30,y0+0.5,-15]) rotate([90,0,0]) linear_extrude(10) {
|
||||
text(str(id_line_0, id_line_1), size=2.9, halign="center", valign="center", $fn=100);
|
||||
}
|
||||
translate([-30,y1-0.5,-15]) rotate([90,0,180]) linear_extrude(10) {
|
||||
text(str(id_line_0, id_line_1), size=2.9, halign="center", valign="center", $fn=100);
|
||||
}
|
||||
// CF
|
||||
for (v = reinforcing_tube_positions) CFTubeCutout2(v, y0, y1);
|
||||
for (v = reinforcing_square_positions) CFSquareCutout2(v, y0, y1);
|
||||
}
|
||||
}
|
||||
// Debug markers to aid part slicing eyeballing
|
||||
// %for (i = [150:250:1000]) {
|
||||
|
@ -1184,14 +1102,14 @@ COLOURSCHEME_PETGHF_BLUE = [BAMBU_PETGHF_LAKE_BLUE, BAMBU_PETGHF_LAKE_BLUE, "",
|
|||
|
||||
colour_scheme = COLOURSCHEME_ABS_CLOWNFISH;
|
||||
// colour_scheme = COLOURSCHEME_ABS_BLUE;
|
||||
segment = 0;
|
||||
// color(colour_scheme[0]) Steel6String(segment=segment, include_colours=[0]);
|
||||
segment = "bridge";
|
||||
color(colour_scheme[0]) Steel6String(segment=segment, include_colours=[0]);
|
||||
// color(colour_scheme[1]) Steel6String(segment=segment, include_colours=[1]);
|
||||
// color(colour_scheme[2]) Steel6String(segment=segment, include_colours=[2]);
|
||||
// color(colour_scheme[3]) Steel6String(segment=segment, include_colours=[3]);
|
||||
// color(colour_scheme[2]) Steel6String(segment=segment, include_colours=[4]);
|
||||
// rotate([90,0,0])
|
||||
Steel6String(reference=true);
|
||||
// Steel6String(reference=true);
|
||||
|
||||
|
||||
module TwoBangerMk2(include_colours=[0,1], segment=-1, preview=false) {
|
||||
|
|
|
@ -362,7 +362,7 @@ module TaperNeck(
|
|||
}
|
||||
}
|
||||
|
||||
module FlatBridge(saddle_height = 10, base_height = 6, y_len = 15) {
|
||||
module FlatBridge(saddle_height = 10, base_height = 6, y_len = 15, screw_hole = true) {
|
||||
// A bridge with no channel notch or piezo strip notch, to be printed more easily for coil-only guitars
|
||||
// Base
|
||||
render() difference() {
|
||||
|
@ -371,18 +371,22 @@ module FlatBridge(saddle_height = 10, base_height = 6, y_len = 15) {
|
|||
translate([-neck_width()/2, 0, -r]) round_cube([neck_width(), y_len, base_height+r], r=r);
|
||||
translate([-neck_width()/2, 0, -r]) cube([neck_width(), y_len, r]);
|
||||
// screw hole just in case
|
||||
translate([0, y_len/2, 0]) cylinder_outer(d=2.25, h=base_height);
|
||||
countersink = 3;
|
||||
translate([0, y_len/2, base_height-countersink]) cylinder_outer(d=5, h=countersink);
|
||||
if (screw_hole) {
|
||||
translate([0, y_len/2, 0]) cylinder_outer(d=2.25, h=base_height);
|
||||
countersink = 3;
|
||||
translate([0, y_len/2, base_height-countersink]) cylinder_outer(d=5, h=countersink);
|
||||
}
|
||||
}
|
||||
// String saddles - rule of thumb: string diameter multiplied by 4
|
||||
// Make the thinnest string sit right at the front
|
||||
m = 4;
|
||||
m_unwound = 8;
|
||||
saddle_y0 = 2.5; //1.2;
|
||||
saddle_y1 = -3.7;
|
||||
r0 = 0.85;
|
||||
y_start = y_len + min($string_diameters_mm)*m - (r0+saddle_y0);
|
||||
for (i = [0:$num_strings-1]) translate([($num_strings-i-1)*string_spacing(0) - neck_width()/2 + $string_margin, y_start - $string_diameters_mm[i]*m, base_height]) {
|
||||
string_setbacks = [ for (i=[0:$num_strings-1]) $string_diameters_mm[i] * ((i < $num_unwound_strings) ? m_unwound : m) ];
|
||||
y_start = y_len + min(string_setbacks) - (r0+saddle_y0);
|
||||
for (i = [0:$num_strings-1]) translate([($num_strings-i-1)*string_spacing(0) - neck_width()/2 + $string_margin, y_start - string_setbacks[i], base_height]) {
|
||||
step = ($preview) ? 9 : 3;
|
||||
r1 = r0 + $string_diameters_mm[i]*1.2;
|
||||
r2 = r0 + $string_diameters_mm[i]*1.1;
|
||||
|
@ -397,6 +401,38 @@ module FlatBridge(saddle_height = 10, base_height = 6, y_len = 15) {
|
|||
}
|
||||
}
|
||||
|
||||
module NotchBridge(bridge_channel_depth, bridge_channel_width, saddle_height = 4, base_height = 6, y_len = 11) {
|
||||
// Add a key at the bottom to fit the bridge channel
|
||||
// Add a channel for the piezo pickup
|
||||
w = neck_width();
|
||||
pickup_w = 3;
|
||||
pickup_h = 2;
|
||||
render() difference() {
|
||||
union() {
|
||||
FlatBridge(saddle_height = saddle_height, base_height = base_height, y_len = y_len, screw_hole = false);
|
||||
// Bridge channel notch
|
||||
notch_w = bridge_channel_width - CF_Square_Width_tolerance; // Shrink a little for tolerance
|
||||
notch_d = bridge_channel_depth - CF_Square_Width_tolerance/2;
|
||||
translate([-notch_w/2, 0, -notch_d]) cube([notch_w, y_len, notch_d]);
|
||||
}
|
||||
// Pickup notch
|
||||
tol = 0.75;
|
||||
translate([-w/2, 2, -tol]) hull() {
|
||||
cube([w, pickup_w, pickup_h+tol]);
|
||||
translate([0, (pickup_h+tol)*0.8, 0]) cube([w, pickup_w, 0.01]);
|
||||
}
|
||||
// Version stamp
|
||||
y0 = 0;
|
||||
y1 = y_len;
|
||||
translate([-15,y0+0.5,4]) rotate([90,0,0]) linear_extrude(10) {
|
||||
text(str($id_lines[0], $id_lines[1]), size=2.9, halign="center", valign="center", $fn=100);
|
||||
}
|
||||
translate([-15,y1-0.5,4]) rotate([90,0,180]) linear_extrude(10) {
|
||||
text(str($id_lines[0], $id_lines[1]), size=2.9, halign="center", valign="center", $fn=100);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
module BeltHole(xz_pts, belthole_y0, belthole_y1, belthole_r=3, belthole_fn=72, fragments_per_mm=1, xy_curve_width=neck_width(), xy_curve_angle=120, xy_curve_x=20) {
|
||||
// Add a belt hole
|
||||
arc = arc_points(xz_pts, fragments_per_mm=fragments_per_mm);
|
||||
|
|
Loading…
Reference in New Issue