More tweaks and rough blocks of Chromatic Tuner EQ packs
This commit is contained in:
parent
31aff13e42
commit
b52d3e2692
126
CFTubes.scad
126
CFTubes.scad
|
@ -41,6 +41,39 @@ module output_socket_placeholder(rear_clearance=0) {
|
|||
translate([0, -output_socket_plate_thickness, output_socket_h/2]) rotate([90,0,0]) cylinder_outer(d=output_socket_washer_d, h=output_socket_protrude-output_socket_plate_thickness, $fn=72);
|
||||
}
|
||||
|
||||
module chromatic_tuner_eq(extra_depth=10, tolerance=0.5) {
|
||||
w = 40 + tolerance;
|
||||
h = 68 + tolerance;
|
||||
d = 25 + extra_depth;
|
||||
corner_bevel = 6;
|
||||
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 = 38.7;
|
||||
hole_spacing_h = 66.3;
|
||||
hole_depth = 12;
|
||||
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 chromatic_tuner_battery_jack(extra_depth=10, tolerance=0.5) {
|
||||
w = 38.1 + tolerance;
|
||||
h = 47.0 + tolerance;
|
||||
d = 58 + extra_depth;
|
||||
corner_bevel = 6;
|
||||
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 = 39.5;
|
||||
hole_spacing_h = 49.2;
|
||||
hole_depth = 12;
|
||||
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 最後に、兄弟たち。すべての真実なこと、すべての誉れあること、すべての正しいこと、すべてのきよいこと、すべての愛すべきこと、すべての評判の良いこと、そのほか徳と言われること、称賛に値することがあるならば、そのようなことに心を留めなさい。
|
||||
|
@ -662,7 +695,7 @@ module Nylon6String(render_colour_0=true, render_colour_1=true, render_colour_2=
|
|||
|
||||
|
||||
|
||||
module Steel6String(include_colours, segment=-1, reference=false) {
|
||||
module Steel6String(include_colours=[0,1], segment=-1, reference=false) {
|
||||
// Artist Strat clone has a neck thickness of about 20mm at the 12th fret, where we want to overlap the truss rods
|
||||
// We will probably have to overlap them horizontally, far from ideal, to achieve the desired thinness.
|
||||
$include_colours = include_colours;
|
||||
|
@ -686,10 +719,6 @@ module Steel6String(include_colours, segment=-1, reference=false) {
|
|||
$fret_widths = default_fret_widths(3.6, 2.4);
|
||||
$fret_angle = 50;
|
||||
$target_neck_thickness = 16;
|
||||
// echo(fret_scale_length(8));
|
||||
// echo(fret_scale_length(9));
|
||||
// rx0 = -40; // Reinforcing rods start
|
||||
// rx1 = rx0+280;
|
||||
|
||||
|
||||
// Artist Strat has about 18cm of headstock and 10cm past bridge on body
|
||||
|
@ -737,33 +766,10 @@ module Steel6String(include_colours, segment=-1, reference=false) {
|
|||
[ 24, y0, -24],
|
||||
];
|
||||
|
||||
module MyNeck(inlays_only=false, side_markers_only=false, fret_layers_only=false, engrave_markers=false, remove_fret_layers=false) {
|
||||
module MyNeck() {
|
||||
render() TaperNeck(target_neck_thickness_additional_points = target_neck_thickness_additional_points);
|
||||
}
|
||||
|
||||
module RealPiece(from_fret, to_fret, include_from_fret=false) {
|
||||
// midpoint = (fret_scale_length(from_fret) - fret_scale_length(to_fret) + (include_from_fret ? fret_width : 0))/2;
|
||||
module IDText(thickness = 0.2, inset = 0, extra_line=str("F", to_fret)) {
|
||||
translate([0,0,-8]) rotate([-90,180,180]) translate([0,0,-thickness-inset]) linear_extrude(thickness) {
|
||||
text(str($id_lines[0], $id_lines[1]), size=2.25, halign="center", valign="center", $fn=100);
|
||||
translate([0,-3]) text(extra_line, size=2.25, halign="center", valign="center", $fn=100);
|
||||
}
|
||||
}
|
||||
// module BackIDText(thickness = 0.2, inset = 0) {
|
||||
// rotate_around([0,0,180], [0,midpoint,0])
|
||||
// IDText(thickness, inset, str("F", from_fret));
|
||||
// }
|
||||
render() difference(){
|
||||
NeckFragment(from_fret, to_fret, include_from_fret=include_from_fret);
|
||||
// Subtract from frets
|
||||
color("red") {
|
||||
IDText();
|
||||
// if (include_from_fret) BackIDText();
|
||||
}
|
||||
// color("red") BackIDText();
|
||||
}
|
||||
}
|
||||
|
||||
module HeadPiece(label=true) {
|
||||
string_offsets = [-2.4, 0, 2.4, -2.4, 0, 2.4];
|
||||
y0 = behind_fret(0);
|
||||
|
@ -803,7 +809,6 @@ module Steel6String(include_colours, segment=-1, reference=false) {
|
|||
StringHoles();
|
||||
Label();
|
||||
}
|
||||
// StringHoles();
|
||||
}
|
||||
|
||||
module TunerPlacement(cutout = false, ear_extra_diameter = 0, ear_extra_height = 0, plate_clearance = 0, shaft_clearance = 0, shaft_tolerance = 0) {
|
||||
|
@ -883,43 +888,45 @@ module Steel6String(include_colours, segment=-1, reference=false) {
|
|||
bridge_channel_depth = 7;
|
||||
|
||||
if (reference) {
|
||||
/*translate([0, -$fsl_mm, 0]) */union() {
|
||||
c_cf = [0.4, 0.5, 0.5];
|
||||
%MyNeck();
|
||||
color(c_cf) Reinforcements();
|
||||
translate([0, fret_scale_length(24), 1-shumbucker_h]) Shumbucker();
|
||||
// Approximate tuner placement
|
||||
// TunerPlacement();
|
||||
// Render strings above for spacing reference
|
||||
string_excess = 80;
|
||||
for (i = [0:$num_strings-1]) {
|
||||
hull() {
|
||||
translate([string_x(i, -string_excess), -string_excess, 5]) sphere(d=$string_diameters_mm[i], $fn=cyl_ld_fn);
|
||||
translate([string_x(i, $fsl_mm+5), $fsl_mm+5, 5]) sphere(d=$string_diameters_mm[i], $fn=cyl_ld_fn);
|
||||
}
|
||||
c_cf = [0.4, 0.5, 0.5];
|
||||
%MyNeck();
|
||||
%hull() {
|
||||
r = 5;
|
||||
$fn=72;
|
||||
for (m=[0:1]) mirror([m,0,0]) {
|
||||
translate([r-30, after_fret(15)-5, -r]) sphere(r);
|
||||
translate([r-45, after_fret(16)-5, r-40]) sphere(r);
|
||||
translate([r-45, after_fret(20)-5, -r]) sphere(r);
|
||||
translate([r-45, y0+r, r-40]) sphere(r);
|
||||
translate([r-45, y0+r, -r]) sphere(r);
|
||||
}
|
||||
}
|
||||
color(c_cf) Reinforcements();
|
||||
translate([0, fret_scale_length(24), 1-shumbucker_h]) Shumbucker();
|
||||
// Approximate tuner placement
|
||||
// TunerPlacement();
|
||||
// Render strings above for spacing reference
|
||||
string_excess = 80;
|
||||
for (i = [0:$num_strings-1]) {
|
||||
hull() {
|
||||
translate([string_x(i, -string_excess), -string_excess, 5]) sphere(d=$string_diameters_mm[i], $fn=cyl_ld_fn);
|
||||
translate([string_x(i, $fsl_mm+5), $fsl_mm+5, 5]) sphere(d=$string_diameters_mm[i], $fn=cyl_ld_fn);
|
||||
}
|
||||
}
|
||||
%HeadPiece(false);
|
||||
} else if (from_fret >= 0) {
|
||||
RealPiece(from_fret, to_fret, include_from_fret = (from_fret==0));
|
||||
if ((from_fret == 0) && list_has(include_colours, 0)) {
|
||||
echo("Making a headpiece");
|
||||
render() difference() {
|
||||
translate([0, fret_scale_length(0), 0]) HeadPiece(false);
|
||||
truss_rods();
|
||||
}
|
||||
}
|
||||
} else if (from_fret == -1) {
|
||||
} else if (segment >= 0) {
|
||||
//
|
||||
} else if (segment == -1) {
|
||||
// String holding headpiece
|
||||
echo("Making a headpiece");
|
||||
HeadPiece();
|
||||
} else if (from_fret == -2) {
|
||||
} else if (segment == -2) {
|
||||
echo("Making a filler belt loop");
|
||||
LoopOrTunerBlock(false);
|
||||
} else if (from_fret == -3) {
|
||||
} else if (segment == -3) {
|
||||
echo("Making a tuner block");
|
||||
LoopOrTunerBlock(true);
|
||||
} else if (from_fret == -4) {
|
||||
} else if (segment == -4) {
|
||||
echo("Making a bridge");
|
||||
y_len = 9;
|
||||
base_height = 7;
|
||||
|
@ -1031,7 +1038,7 @@ colour_scheme = COLOURSCHEME_ABS_BLUE;
|
|||
// color(colour_scheme[2]) rotate([90,0,0]) Steel6String(from_fret=0, to_fret=23, include_colours=[2]);
|
||||
// color(colour_scheme[3]) rotate([90,0,0]) Steel6String(from_fret=0, to_fret=23, include_colours=[3]);
|
||||
// rotate([90,0,0])
|
||||
Steel6String(include_colours=[0,1,2,3], reference=true);
|
||||
Steel6String(reference=true);
|
||||
|
||||
// TrussRodSingleAction();
|
||||
// translate([20, 0]) TrussRod();
|
||||
|
@ -1313,3 +1320,6 @@ module TwoBangerMk2(include_colours=[0,1], segment=-1, preview=false) {
|
|||
// color(colour_scheme[2]) TwoBangerMk2([2], segment);
|
||||
// color(colour_scheme[3]) TwoBangerMk2([3], segment);
|
||||
// color("red") TwoBangerMk2([4], segment);
|
||||
|
||||
// translate([50, 0, 0]) chromatic_tuner_battery_jack();
|
||||
// translate([-50, 0, 0]) chromatic_tuner_eq();
|
||||
|
|
Loading…
Reference in New Issue