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
|
// 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
|
// going with 良 for 21
|
||||||
fret_inlays = [[3, "真"], [5, "尊"], [7, "正"], [9, "清"], [12, "評判"], [15, "愛"], [17, "徳"], [19, "賛"], [21, "良"], [24, "主イエス"]];
|
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) {
|
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;
|
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;
|
diff = x0 - x1;
|
||||||
translate([0, lerp(x0, x1, 0.5), -0.5])
|
translate([0, lerp(x0, x1, 0.5), -0.5])
|
||||||
linear_extrude(30)
|
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])
|
translate([0, mid, neck_width/2-3])
|
||||||
linear_extrude(50)
|
linear_extrude(50)
|
||||||
rotate(-37)
|
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) {
|
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_1 = "blue";
|
colour_0 = "blue";
|
||||||
|
colour_1 = "white"; // fret layers
|
||||||
|
colour_2 = "green"; // side markers
|
||||||
|
colour_3 = "yellow"; // inlays
|
||||||
id_line_0 = "PLA";
|
id_line_0 = "PLA";
|
||||||
id_line_1 = "1β";
|
id_line_1 = "1γ";
|
||||||
fsl_mm = fret_scale_length(0);
|
fsl_mm = fret_scale_length(0);
|
||||||
|
|
||||||
string_diameters_thous = [28, 32, 40, 30, 36, 42];
|
string_diameters_thous = [28, 32, 40, 30, 36, 42];
|
||||||
string_diameters_mm = string_diameters_thous * 0.0254;
|
string_diameters_mm = string_diameters_thous * 0.0254;
|
||||||
|
|
||||||
num_frets = 20;
|
num_frets = 21;
|
||||||
num_strings = 6;
|
num_strings = 6;
|
||||||
// 56mm wide neck
|
// 56mm wide neck
|
||||||
string_spacing = 10; // 50mm E to e
|
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;
|
neck_width = string_spacing*(num_strings-1) + string_margin*2;
|
||||||
scallop_depth = 2.5;
|
scallop_depth = 2.5;
|
||||||
fret_width=2.4;
|
fret_width=2.4;
|
||||||
target_neck_thickness = 22;
|
target_neck_thickness = 16; //22;
|
||||||
echo(fret_scale_length(8));
|
echo(fret_scale_length(8));
|
||||||
echo(fret_scale_length(9));
|
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], [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], [380, 25], [0, 25]];
|
||||||
// target_neck_thickness_additional_points = [[400.025-fret_width/2, 22], [130, 42], [0, 42]];
|
// 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);
|
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() {
|
module MultiColourNeck() {
|
||||||
if (render_first_colour) color(colour_1) MyNeck(engrave_markers=true, remove_fret_layers=true);
|
if (render_colour_0) color(colour_0) MyNeck(engrave_markers=true, remove_fret_layers=true);
|
||||||
if (render_second_colour) color("white") MyNeck(fret_layers_only=true);
|
if (render_colour_1) color(colour_1) MyNeck(fret_layers_only=true);
|
||||||
if (render_second_colour) color("green") MyNeck(side_markers_only=true);
|
if (render_colour_2) color(colour_2) MyNeck(side_markers_only=true);
|
||||||
if (render_second_colour) color("yellow") MyNeck(inlays_only=true);
|
if (render_colour_3) color(colour_3) MyNeck(inlays_only=true);
|
||||||
}
|
}
|
||||||
|
|
||||||
reinforcing_tube_positions = flatten([
|
reinforcing_tube_positions = flatten([
|
||||||
[
|
[
|
||||||
for (i=[-1,1]) each [
|
for (i=[-1,1]) each [
|
||||||
// Headside reinforcement
|
// Headside reinforcement
|
||||||
[i*21.5, -40+280, -4],
|
[i*21.5, rx1, -4],
|
||||||
[i*17, -40+280, -12],
|
|
||||||
// Bridgeside reinforcement
|
// 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
|
// Bridgeside reinforcement
|
||||||
[0, -40, -4],
|
// [0, rx0, -11],
|
||||||
[0, -40, -15],
|
|
||||||
]]);
|
]]);
|
||||||
echo(reinforcing_tube_positions);
|
echo(reinforcing_tube_positions);
|
||||||
// Through span construction
|
// Through span construction
|
||||||
span_coords = CF_Span_Coords(ply=2);
|
span_coords = CF_Span_Coords(ply=2);
|
||||||
reinforcing_square_positions = [
|
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);
|
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) {
|
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;
|
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)) {
|
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) {
|
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.5, halign="center", valign="center", $fn=100);
|
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.5, 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) {
|
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(){
|
render() difference(){
|
||||||
NeckFragment(from_fret, to_fret, include_from_fret=include_from_fret);
|
NeckFragment(from_fret, to_fret, include_from_fret=include_from_fret);
|
||||||
// Subtract from frets
|
// Subtract from frets
|
||||||
if (render_second_colour) color("red") {
|
color("red") {
|
||||||
IDText();
|
IDText();
|
||||||
if (include_from_fret) BackIDText();
|
if (include_from_fret) BackIDText();
|
||||||
}
|
}
|
||||||
if (render_first_colour && !include_from_fret) color("red") BackIDText();
|
color("red") BackIDText();
|
||||||
}
|
}
|
||||||
// color("red") IDText(inset=0.0001);
|
// // color("red") IDText(inset=0.0001);
|
||||||
if (render_first_colour) color(colour_1) IDText();
|
// if (render_colour_0) color(colour_1) IDText();
|
||||||
if (render_first_colour && include_from_fret) color(colour_1) BackIDText();
|
// if (render_colour_0 && include_from_fret) color(colour_1) BackIDText();
|
||||||
if (render_second_colour && !include_from_fret) color("red") BackIDText();
|
// if (render_colour_1 && !include_from_fret) color("red") BackIDText();
|
||||||
}
|
}
|
||||||
RealPiece(from_fret, to_fret, include_from_fret = (from_fret==0));
|
RealPiece(from_fret, to_fret, include_from_fret = (from_fret==0));
|
||||||
// RealPiece(0, 8, include_from_fret=true);
|
// 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
|
// Debug markers to aid part slicing eyeballing
|
||||||
// %for (i = [150:250:1000]) {
|
// %for (i = [150:250:1000]) {
|
||||||
%for (i = [0: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();
|
// bridge();
|
||||||
|
|
||||||
Guitar_Scale_Length_mm = Classical_Short_Scale_mm;
|
Guitar_Scale_Length_mm = Classical_Short_Scale_mm;
|
||||||
// Nylon6String(render_second_colour=false);
|
// Nylon6String(render_colour_1=false);
|
||||||
// Nylon6String(render_first_colour=false);
|
// Nylon6String(render_colour_0=false);
|
||||||
|
|
||||||
// difference() {
|
// difference() {
|
||||||
// translate([-15, -60, 0]) cube([50, 120, 8]);
|
// translate([-15, -60, 0]) cube([50, 120, 8]);
|
||||||
|
|
|
@ -1,4 +1,6 @@
|
||||||
include <CFTubes.scad>
|
include <CFTubes.scad>
|
||||||
Guitar_Scale_Length_mm = Classical_Short_Scale_mm;
|
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_colour_0=true, render_colour_1=false, render_colour_2=false, render_colour_3=false);
|
||||||
Nylon6String(from_fret=F0, to_fret=F1, render_first_colour=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