diff --git a/CFTubes.scad b/CFTubes.scad index 3987933..6a94c4b 100644 --- a/CFTubes.scad +++ b/CFTubes.scad @@ -16,6 +16,9 @@ include // 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]); diff --git a/CFTubesNylon.scad b/CFTubesNylon.scad index 8fb1b23..c965c5e 100644 --- a/CFTubesNylon.scad +++ b/CFTubesNylon.scad @@ -1,4 +1,6 @@ include 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); diff --git a/CFTubesNylonPreview.scad b/CFTubesNylonPreview.scad new file mode 100644 index 0000000..77d057e --- /dev/null +++ b/CFTubesNylonPreview.scad @@ -0,0 +1,11 @@ +include +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);