Nylon Neck Gamma
This commit is contained in:
parent
d1661731ae
commit
b0efa30421
74
CFTubes.scad
74
CFTubes.scad
|
@ -16,6 +16,9 @@ include <CFTubes/PLA.scad>
|
|||
// I swapped 愛 and 評判 because 12th fret should be the biggest marker, and having only 15 as a 2char marker would be too disorienting
|
||||
// going with 良 for 21
|
||||
fret_inlays = [[3, "真"], [5, "尊"], [7, "正"], [9, "清"], [12, "評判"], [15, "愛"], [17, "徳"], [19, "賛"], [21, "良"], [24, "主イエス"]];
|
||||
// Galatians 5:22-23
|
||||
// ShinKaiYaku65 22しかし、御霊の実は、愛、喜び、平安、寛容、親切、善意、誠実、 23柔和、自制です。このようなものを禁ずる律法はありません。
|
||||
// 愛 喜び 平安 寛容 親切 善意 誠実 柔和 自制
|
||||
|
||||
module neck(string_spacing=18, string_margin=4.5, num_strings=3, target_neck_thickness=15, target_neck_thickness_additional_points=[], scallop_depth=3, num_frets=24, fret_width=2.4, filler=false, inlays_only=false, side_markers_only=false, fret_layers_only=false, remove_fret_layers=false, engrave_markers=true) {
|
||||
fw2 = fret_width/2;
|
||||
|
@ -80,7 +83,7 @@ module neck(string_spacing=18, string_margin=4.5, num_strings=3, target_neck_thi
|
|||
diff = x0 - x1;
|
||||
translate([0, lerp(x0, x1, 0.5), -0.5])
|
||||
linear_extrude(30)
|
||||
text(text = num_text[1], font = JP_Serif_Font, halign = "center", valign = "center", size = clamp(2, diff-fret_width*2-2, 10));
|
||||
text(text = num_text[1], font = JP_Sans_Font, halign = "center", valign = "center", size = clamp(2, diff-fret_width*2-2, 10));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -96,7 +99,7 @@ module neck(string_spacing=18, string_margin=4.5, num_strings=3, target_neck_thi
|
|||
translate([0, mid, neck_width/2-3])
|
||||
linear_extrude(50)
|
||||
rotate(-37)
|
||||
text(text = str(fret), font = JP_Serif_Font, halign = "right", valign = "center", size = 4.5);
|
||||
text(text = str(fret), font = JP_Serif_Font, halign = "right", valign = "center", size = 5);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -379,16 +382,19 @@ module bridge(string_spacing=18, string_margin=4.5, num_strings=3, target_neck_t
|
|||
}
|
||||
}
|
||||
|
||||
module Nylon6String(render_first_colour=true, render_second_colour=true, from_fret=0, to_fret=1) {
|
||||
colour_1 = "blue";
|
||||
module Nylon6String(render_colour_0=true, render_colour_1=true, render_colour_2=true, render_colour_3=true, from_fret=0, to_fret=1) {
|
||||
colour_0 = "blue";
|
||||
colour_1 = "white"; // fret layers
|
||||
colour_2 = "green"; // side markers
|
||||
colour_3 = "yellow"; // inlays
|
||||
id_line_0 = "PLA";
|
||||
id_line_1 = "1β";
|
||||
id_line_1 = "1γ";
|
||||
fsl_mm = fret_scale_length(0);
|
||||
|
||||
string_diameters_thous = [28, 32, 40, 30, 36, 42];
|
||||
string_diameters_mm = string_diameters_thous * 0.0254;
|
||||
|
||||
num_frets = 20;
|
||||
num_frets = 21;
|
||||
num_strings = 6;
|
||||
// 56mm wide neck
|
||||
string_spacing = 10; // 50mm E to e
|
||||
|
@ -396,10 +402,14 @@ module Nylon6String(render_first_colour=true, render_second_colour=true, from_fr
|
|||
neck_width = string_spacing*(num_strings-1) + string_margin*2;
|
||||
scallop_depth = 2.5;
|
||||
fret_width=2.4;
|
||||
target_neck_thickness = 22;
|
||||
target_neck_thickness = 16; //22;
|
||||
echo(fret_scale_length(8));
|
||||
echo(fret_scale_length(9));
|
||||
target_neck_thickness_additional_points = [];
|
||||
rx0 = -40; // Reinforcing rods start
|
||||
rx1 = rx0+280;
|
||||
|
||||
// target_neck_thickness_additional_points = [];
|
||||
target_neck_thickness_additional_points = [[rx0+CF_Tube_Len+20, 22], [0, 22]];
|
||||
// target_neck_thickness_additional_points = [[400.025-fret_width/2, 22], [380, 25], [130, 42], [0, 42]];
|
||||
// target_neck_thickness_additional_points = [[400.025-fret_width/2, 22], [380, 25], [0, 25]];
|
||||
// target_neck_thickness_additional_points = [[400.025-fret_width/2, 22], [130, 42], [0, 42]];
|
||||
|
@ -416,32 +426,36 @@ module Nylon6String(render_first_colour=true, render_second_colour=true, from_fr
|
|||
render() neck(num_frets=num_frets, num_strings=num_strings, string_margin=string_margin, string_spacing=string_spacing, scallop_depth=scallop_depth, target_neck_thickness=target_neck_thickness, target_neck_thickness_additional_points=target_neck_thickness_additional_points, inlays_only=inlays_only, side_markers_only=side_markers_only, fret_layers_only=fret_layers_only, engrave_markers=engrave_markers, remove_fret_layers=remove_fret_layers);
|
||||
}
|
||||
module MultiColourNeck() {
|
||||
if (render_first_colour) color(colour_1) MyNeck(engrave_markers=true, remove_fret_layers=true);
|
||||
if (render_second_colour) color("white") MyNeck(fret_layers_only=true);
|
||||
if (render_second_colour) color("green") MyNeck(side_markers_only=true);
|
||||
if (render_second_colour) color("yellow") MyNeck(inlays_only=true);
|
||||
if (render_colour_0) color(colour_0) MyNeck(engrave_markers=true, remove_fret_layers=true);
|
||||
if (render_colour_1) color(colour_1) MyNeck(fret_layers_only=true);
|
||||
if (render_colour_2) color(colour_2) MyNeck(side_markers_only=true);
|
||||
if (render_colour_3) color(colour_3) MyNeck(inlays_only=true);
|
||||
}
|
||||
|
||||
reinforcing_tube_positions = flatten([
|
||||
[
|
||||
for (i=[-1,1]) each [
|
||||
// Headside reinforcement
|
||||
[i*21.5, -40+280, -4],
|
||||
[i*17, -40+280, -12],
|
||||
[i*21.5, rx1, -4],
|
||||
// Bridgeside reinforcement
|
||||
[i*16, -40, -8],
|
||||
// [i*21.5, rx0, -4],
|
||||
[i*17.25, rx0, -10],
|
||||
// [i*17, rx0, -12],
|
||||
[i*3.95, rx0, -16.5],
|
||||
]
|
||||
],
|
||||
[
|
||||
// Headside reinforcement
|
||||
[0, rx1, -4],
|
||||
[0, rx1, -11],
|
||||
// Bridgeside reinforcement
|
||||
[0, -40, -4],
|
||||
[0, -40, -15],
|
||||
// [0, rx0, -11],
|
||||
]]);
|
||||
echo(reinforcing_tube_positions);
|
||||
// Through span construction
|
||||
span_coords = CF_Span_Coords(ply=2);
|
||||
reinforcing_square_positions = [
|
||||
for (i=[-1,1]) each [ for (v = span_coords) [i*10, -40, -10] + v ]
|
||||
for (i=[-1,1]) each [ for (v = span_coords) [i*10, rx0, -10] + v ]
|
||||
];
|
||||
echo(reinforcing_square_positions);
|
||||
|
||||
|
@ -487,9 +501,9 @@ module Nylon6String(render_first_colour=true, render_second_colour=true, from_fr
|
|||
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,-9]) rotate([-90,180,180]) translate([0,0,-thickness-inset]) linear_extrude(thickness) {
|
||||
text(str(id_line_0, id_line_1), size=2.5, halign="center", valign="center", $fn=100);
|
||||
translate([0,-3]) text(extra_line, size=2.5, halign="center", valign="center", $fn=100);
|
||||
translate([0,0,-8]) rotate([-90,180,180]) translate([0,0,-thickness-inset]) linear_extrude(thickness) {
|
||||
text(str(id_line_0, id_line_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) {
|
||||
|
@ -499,16 +513,16 @@ module Nylon6String(render_first_colour=true, render_second_colour=true, from_fr
|
|||
render() difference(){
|
||||
NeckFragment(from_fret, to_fret, include_from_fret=include_from_fret);
|
||||
// Subtract from frets
|
||||
if (render_second_colour) color("red") {
|
||||
color("red") {
|
||||
IDText();
|
||||
if (include_from_fret) BackIDText();
|
||||
}
|
||||
if (render_first_colour && !include_from_fret) color("red") BackIDText();
|
||||
color("red") BackIDText();
|
||||
}
|
||||
// color("red") IDText(inset=0.0001);
|
||||
if (render_first_colour) color(colour_1) IDText();
|
||||
if (render_first_colour && include_from_fret) color(colour_1) BackIDText();
|
||||
if (render_second_colour && !include_from_fret) color("red") BackIDText();
|
||||
// // color("red") IDText(inset=0.0001);
|
||||
// if (render_colour_0) color(colour_1) IDText();
|
||||
// if (render_colour_0 && include_from_fret) color(colour_1) BackIDText();
|
||||
// if (render_colour_1 && !include_from_fret) color("red") BackIDText();
|
||||
}
|
||||
RealPiece(from_fret, to_fret, include_from_fret = (from_fret==0));
|
||||
// RealPiece(0, 8, include_from_fret=true);
|
||||
|
@ -535,7 +549,7 @@ module Nylon6String(render_first_colour=true, render_second_colour=true, from_fr
|
|||
// Debug markers to aid part slicing eyeballing
|
||||
// %for (i = [150:250:1000]) {
|
||||
%for (i = [0:250:1000]) {
|
||||
translate([50,i,0]) union() {linear_extrude(1) text(str(i, "mm")); cube([50, 1, 1], center=true);}
|
||||
translate([35,i,0]) union() {linear_extrude(1) text(str(i, "mm")); cube([35, 1, 1], center=true);}
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -553,8 +567,8 @@ module Nylon6String(render_first_colour=true, render_second_colour=true, from_fr
|
|||
// bridge();
|
||||
|
||||
Guitar_Scale_Length_mm = Classical_Short_Scale_mm;
|
||||
// Nylon6String(render_second_colour=false);
|
||||
// Nylon6String(render_first_colour=false);
|
||||
// Nylon6String(render_colour_1=false);
|
||||
// Nylon6String(render_colour_0=false);
|
||||
|
||||
// difference() {
|
||||
// translate([-15, -60, 0]) cube([50, 120, 8]);
|
||||
|
|
|
@ -1,4 +1,6 @@
|
|||
include <CFTubes.scad>
|
||||
Guitar_Scale_Length_mm = Classical_Short_Scale_mm;
|
||||
Nylon6String(from_fret=F0, to_fret=F1, render_second_colour=false);
|
||||
Nylon6String(from_fret=F0, to_fret=F1, render_first_colour=false);
|
||||
Nylon6String(from_fret=F0, to_fret=F1, render_colour_0=true, render_colour_1=false, render_colour_2=false, render_colour_3=false);
|
||||
Nylon6String(from_fret=F0, to_fret=F1, render_colour_0=false, render_colour_1=true, render_colour_2=false, render_colour_3=false);
|
||||
Nylon6String(from_fret=F0, to_fret=F1, render_colour_0=false, render_colour_1=false, render_colour_2=true, render_colour_3=false);
|
||||
Nylon6String(from_fret=F0, to_fret=F1, render_colour_0=false, render_colour_1=false, render_colour_2=false, render_colour_3=true);
|
||||
|
|
|
@ -0,0 +1,11 @@
|
|||
include <CFTubes.scad>
|
||||
Guitar_Scale_Length_mm = Classical_Short_Scale_mm;
|
||||
Nylon6String(from_fret=0, to_fret=8, render_colour_0=true, render_colour_1=false, render_colour_2=false, render_colour_3=false);
|
||||
Nylon6String(from_fret=0, to_fret=8, render_colour_0=false, render_colour_1=true, render_colour_2=false, render_colour_3=false);
|
||||
Nylon6String(from_fret=0, to_fret=8, render_colour_0=false, render_colour_1=false, render_colour_2=true, render_colour_3=false);
|
||||
Nylon6String(from_fret=0, to_fret=8, render_colour_0=false, render_colour_1=false, render_colour_2=false, render_colour_3=true);
|
||||
|
||||
translate([0, 0, -50]) Nylon6String(from_fret=8, to_fret=22, render_colour_0=true, render_colour_1=false, render_colour_2=false, render_colour_3=false);
|
||||
translate([0, 0, -50]) Nylon6String(from_fret=8, to_fret=22, render_colour_0=false, render_colour_1=true, render_colour_2=false, render_colour_3=false);
|
||||
translate([0, 0, -50]) Nylon6String(from_fret=8, to_fret=22, render_colour_0=false, render_colour_1=false, render_colour_2=true, render_colour_3=false);
|
||||
translate([0, 0, -50]) Nylon6String(from_fret=8, to_fret=22, render_colour_0=false, render_colour_1=false, render_colour_2=false, render_colour_3=true);
|
Loading…
Reference in New Issue