Multicolor test
This commit is contained in:
parent
e7f4df9099
commit
d1661731ae
42
CFTubes.scad
42
CFTubes.scad
|
@ -379,7 +379,7 @@ module bridge(string_spacing=18, string_margin=4.5, num_strings=3, target_neck_t
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
module Nylon6String() {
|
module Nylon6String(render_first_colour=true, render_second_colour=true, from_fret=0, to_fret=1) {
|
||||||
colour_1 = "blue";
|
colour_1 = "blue";
|
||||||
id_line_0 = "PLA";
|
id_line_0 = "PLA";
|
||||||
id_line_1 = "1β";
|
id_line_1 = "1β";
|
||||||
|
@ -416,10 +416,10 @@ module Nylon6String() {
|
||||||
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() {
|
||||||
color(colour_1) MyNeck(engrave_markers=true, remove_fret_layers=true);
|
if (render_first_colour) color(colour_1) MyNeck(engrave_markers=true, remove_fret_layers=true);
|
||||||
color("white") MyNeck(fret_layers_only=true);
|
if (render_second_colour) color("white") MyNeck(fret_layers_only=true);
|
||||||
color("green") MyNeck(side_markers_only=true);
|
if (render_second_colour) color("green") MyNeck(side_markers_only=true);
|
||||||
color("yellow") MyNeck(inlays_only=true);
|
if (render_second_colour) color("yellow") MyNeck(inlays_only=true);
|
||||||
}
|
}
|
||||||
|
|
||||||
reinforcing_tube_positions = flatten([
|
reinforcing_tube_positions = flatten([
|
||||||
|
@ -429,7 +429,7 @@ module Nylon6String() {
|
||||||
[i*21.5, -40+280, -4],
|
[i*21.5, -40+280, -4],
|
||||||
[i*17, -40+280, -12],
|
[i*17, -40+280, -12],
|
||||||
// Bridgeside reinforcement
|
// Bridgeside reinforcement
|
||||||
[i*16, -40, -7],
|
[i*16, -40, -8],
|
||||||
]
|
]
|
||||||
],
|
],
|
||||||
[
|
[
|
||||||
|
@ -486,17 +486,32 @@ module Nylon6String() {
|
||||||
|
|
||||||
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) {
|
module IDText(thickness = 0.2, inset = 0, extra_line=str("F", to_fret)) {
|
||||||
for (ra = [[0,0,0], [0,0,180]]) rotate_around(ra, [0,midpoint,0])
|
translate([0,0,-9]) rotate([-90,180,180]) translate([0,0,-thickness-inset]) linear_extrude(thickness) {
|
||||||
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);
|
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);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
module BackIDText(thickness = 0.2, inset = 0) {
|
||||||
|
rotate_around([0,0,180], [0,midpoint,0])
|
||||||
|
IDText(thickness, inset, str("F", from_fret));
|
||||||
}
|
}
|
||||||
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);
|
||||||
color("red") IDText();
|
// Subtract from frets
|
||||||
|
if (render_second_colour) color("red") {
|
||||||
|
IDText();
|
||||||
|
if (include_from_fret) BackIDText();
|
||||||
|
}
|
||||||
|
if (render_first_colour && !include_from_fret) 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_first_colour && include_from_fret) color(colour_1) BackIDText();
|
||||||
|
if (render_second_colour && !include_from_fret) color("red") BackIDText();
|
||||||
}
|
}
|
||||||
RealPiece(0, 8, include_from_fret=true);
|
RealPiece(from_fret, to_fret, include_from_fret = (from_fret==0));
|
||||||
|
// RealPiece(0, 8, include_from_fret=true);
|
||||||
// RealPiece(8, 21);
|
// RealPiece(8, 21);
|
||||||
%translate([100, 0, 0]) RealPiece(8, 21);
|
%translate([100, 0, 0]) RealPiece(8, 21);
|
||||||
|
|
||||||
|
@ -538,7 +553,8 @@ module Nylon6String() {
|
||||||
// bridge();
|
// bridge();
|
||||||
|
|
||||||
Guitar_Scale_Length_mm = Classical_Short_Scale_mm;
|
Guitar_Scale_Length_mm = Classical_Short_Scale_mm;
|
||||||
Nylon6String();
|
// Nylon6String(render_second_colour=false);
|
||||||
|
// Nylon6String(render_first_colour=false);
|
||||||
|
|
||||||
// difference() {
|
// difference() {
|
||||||
// translate([-15, -60, 0]) cube([50, 120, 8]);
|
// translate([-15, -60, 0]) cube([50, 120, 8]);
|
||||||
|
|
|
@ -0,0 +1,4 @@
|
||||||
|
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);
|
|
@ -0,0 +1,25 @@
|
||||||
|
from subprocess import Popen
|
||||||
|
import multiprocessing
|
||||||
|
# import subprocess
|
||||||
|
|
||||||
|
frets = list(range(22))
|
||||||
|
fret_pairs = list(zip(frets, frets[1:])) + list(zip(frets, frets[2:])) #+ list(zip(frets, frets[3:]))
|
||||||
|
|
||||||
|
def run_openscad(frets):
|
||||||
|
i, j = frets
|
||||||
|
p = Popen(["openscad", "--backend=manifold", "--enable=all", "-o", f"output/nylon6_{i}_{j}.3mf", "-D", f"F0={i}", "-D", f"F1={j}", "CFTubesNylon.scad"])
|
||||||
|
p.wait()
|
||||||
|
|
||||||
|
def main():
|
||||||
|
print("Compiling .3mf files for fret pairs: ", fret_pairs)
|
||||||
|
# processes = [Popen(["openscad", "--backend=manifold", "--enable=all", "-o", f"output/nylon6_{i}_{j}.3mf", "-D", f"F0={i}", "-D", f"F1={j}", "CFTubesNylon.scad"]) for (i,j) in fret_pairs]
|
||||||
|
# for p in processes:
|
||||||
|
# p.wait()
|
||||||
|
with multiprocessing.Pool(2) as p:
|
||||||
|
for result in p.imap_unordered(run_openscad, fret_pairs):
|
||||||
|
pass
|
||||||
|
|
||||||
|
print("Finished compiling!")
|
||||||
|
|
||||||
|
if __name__ == '__main__':
|
||||||
|
main()
|
Loading…
Reference in New Issue