another tuner attempt
This commit is contained in:
parent
5e902d4fe4
commit
3258d40fb3
99
CFTubes.scad
99
CFTubes.scad
|
@ -94,10 +94,10 @@ module neck(string_spacing=18, string_margin=4.5, num_strings=3, target_neck_thi
|
|||
}
|
||||
}
|
||||
|
||||
module bridge(string_spacing=18, string_margin=4.5, num_strings=3, target_neck_thickness=15, scallop_depth=3, fret_width=2.4*6) {
|
||||
module tailpiece(string_spacing=18, string_margin=4.5, num_strings=3, target_neck_thickness=15, scallop_depth=3, fret_width=2.4*6) {
|
||||
fw2 = fret_width/2;
|
||||
neck_length = 120;
|
||||
neck_width = (num_strings-1)*string_spacing + string_margin*2;
|
||||
neck_length = 88;
|
||||
neck_width = (num_strings-1)*string_spacing + string_margin*2 + 6;
|
||||
module neck_stock() {
|
||||
angle_excess = asin((scallop_depth+fw2)/target_neck_thickness);
|
||||
a0 = 90-angle_excess;
|
||||
|
@ -120,18 +120,32 @@ module bridge(string_spacing=18, string_margin=4.5, num_strings=3, target_neck_t
|
|||
}
|
||||
|
||||
module differences() {
|
||||
t_offset = 2.7;
|
||||
t_z = -23;
|
||||
mirror([1,0,0]) translate([t_offset, 80, t_z]) rotate([90, -90, 90]) UBassTuner(from_below=false, from_side=true);
|
||||
translate([t_offset, 45, t_z]) rotate([90, -90, 90]) UBassTuner(from_below=false, from_side=true);
|
||||
mirror([1,0,0]) translate([t_offset, 10, t_z]) rotate([90, -90, 90]) UBassTuner(from_below=false, from_side=true);
|
||||
t_offset = -27; //2.7;
|
||||
t_z = -21; //-23;
|
||||
|
||||
module tuner() {
|
||||
hole_r = 3;
|
||||
bend_r = 24 + hole_r + 10;
|
||||
fn=72;
|
||||
rotate([90, -90, 90]) UBassTuner(from_below=true, from_side=true);
|
||||
// translate([35,16,0]) cylinder(h=10-t_z, d=7, $fn=72);
|
||||
translate([36-7,17,1]) for (a = [10:89]) {
|
||||
hull() {
|
||||
translate([a/9, bend_r-bend_r*sin(a), bend_r*cos(a)]) sphere(hole_r, $fn=fn);
|
||||
translate([(a+1)/9, bend_r-bend_r*sin(a+1), bend_r*cos(a+1)]) sphere(hole_r, $fn=fn);
|
||||
}
|
||||
}
|
||||
}
|
||||
mirror([1,0,0]) translate([t_offset, 57, t_z]) tuner();
|
||||
translate([t_offset, 31, t_z]) tuner();
|
||||
mirror([1,0,0]) translate([t_offset, 5, t_z]) tuner();
|
||||
for (i = [-1:2:1])
|
||||
translate([i*15, 0, -4])
|
||||
cf_tube(neck_length, 0, tolerance=0.4);
|
||||
translate([0, 0, -10])
|
||||
cf_tube(neck_length, 0, tolerance=0.4);
|
||||
}
|
||||
thick = 45;
|
||||
thick = 32;
|
||||
render() difference() {
|
||||
color([1,1,1,0.3]) translate([-neck_width/2, 0, -thick+scallop_depth]) cube([neck_width, neck_length, thick]);
|
||||
differences();
|
||||
|
@ -296,6 +310,70 @@ module headpiece(string_spacing=18, string_margin=4.5, num_strings=3, target_nec
|
|||
}
|
||||
}
|
||||
|
||||
module bridge(string_spacing=18, string_margin=4.5, num_strings=3, target_neck_thickness=15, scallop_depth=3, fret_width=2.4) {
|
||||
piece_length = 16;
|
||||
cf_square_length = 32;
|
||||
fw2 = fret_width/2;
|
||||
x0 = 0;
|
||||
neck_width = (num_strings-1)*string_spacing + string_margin*2;
|
||||
bend_radius = 24;
|
||||
string_thicknesses = [4.9, 4.2, 3.0];
|
||||
|
||||
module stock() {
|
||||
angle_excess = asin(scallop_depth/target_neck_thickness);
|
||||
a0 = 90-angle_excess;
|
||||
a1 = 270+angle_excess;
|
||||
translate([0, x0, 0])
|
||||
rotate([-90, 0, 0])
|
||||
linear_extrude(piece_length)
|
||||
polygon([for (i = [0:300]) let(a=lerp(a0, a1, i/300.0)) [neck_width*0.5*sin(a), -target_neck_thickness*cos(a)]]);
|
||||
intersection() {
|
||||
r = 14;
|
||||
translate([0,8,scallop_depth]) rotate([18, -90, 0]) scale([1,0.2,1]) cylinder(r=r, h=neck_width*1.5, center=true, $fn=72);
|
||||
a0 = -90;
|
||||
a1 = 90;
|
||||
translate([0, x0, 0])
|
||||
rotate([-90, 0, 0])
|
||||
linear_extrude(piece_length)
|
||||
polygon([for (i = [0:300]) let(a=lerp(a0, a1, i/300.0)) [neck_width*0.5*sin(a), -target_neck_thickness*cos(a)*3]]);
|
||||
}
|
||||
}
|
||||
module string_tubes(tolerance = 1.0) {
|
||||
module string_tube(diameter, fn=36) {
|
||||
hole_r = diameter/2;
|
||||
bend_r = bend_radius + hole_r;
|
||||
union() {
|
||||
for (a = [0:89]) {
|
||||
hull() {
|
||||
translate([0, bend_r*sin(a), bend_r*cos(a)]) sphere(hole_r, $fn=fn);
|
||||
translate([0, bend_r*sin(a+1), bend_r*cos(a+1)]) sphere(hole_r, $fn=fn);
|
||||
}
|
||||
}
|
||||
hull() {
|
||||
translate([0, bend_r*sin(90), bend_r*cos(90)]) sphere(hole_r, $fn=fn);
|
||||
translate([0, bend_r*sin(90), -target_neck_thickness]) sphere(hole_r, $fn=fn);
|
||||
}
|
||||
}
|
||||
};
|
||||
for (i = [0:num_strings-1]) {
|
||||
string_diameter = string_thicknesses[i] + tolerance;
|
||||
x = -neck_width/2 + string_margin + (i*string_spacing);
|
||||
// translate([x, x0+2, -bend_radius+scallop_depth]) string_tube(string_diameter);
|
||||
translate([x, 0, scallop_depth+string_diameter/2+8]) rotate([-90,0,0]) cylinder(d=string_diameter, h=20, $fn=72);
|
||||
}
|
||||
}
|
||||
// string_tubes();
|
||||
difference() {
|
||||
stock();
|
||||
string_tubes();
|
||||
for (i = [-1:1])
|
||||
translate([i*15, 0, (i==0)?(-10):(-4)])
|
||||
cf_tube(piece_length+0.1, x0-0.1, VLH=false);
|
||||
// αβγδεζ
|
||||
translate([0, x0+piece_length, -5]) rotate([90, 0, 180]) linear_extrude(0.3, center=true) text(text = "01β", font = "Deja Vu Sans", halign = "center", valign = "center", size = 4);
|
||||
}
|
||||
}
|
||||
|
||||
echo(fret_scale_length(0) - fret_scale_length(8)); // 225.724
|
||||
echo(fret_scale_length(8) - fret_scale_length(24)); // 240.335
|
||||
// fret_tube(0, 8);
|
||||
|
@ -306,4 +384,5 @@ echo(fret_scale_length(8) - fret_scale_length(24)); // 240.335
|
|||
// UBassTuner();
|
||||
|
||||
// fret_tube_filler(24, 100);
|
||||
bridge();
|
||||
tailpiece();
|
||||
// bridge();
|
||||
|
|
Loading…
Reference in New Issue