Failed PETG print

This commit is contained in:
Luke Hubmayer-Werner 2025-01-04 03:09:41 +10:30
parent 9735e48126
commit f34e9feff8
1 changed files with 33 additions and 7 deletions

View File

@ -17,7 +17,7 @@ include <CFTubes/PETG.scad>
// going with for 21
fret_inlays = [[3, "真"], [5, "尊"], [7, "正"], [9, "清"], [12, "評判"], [15, "愛"], [17, "徳"], [19, "賛"], [21, "良"], [24, "主イエス"]];
module neck(string_spacing=18, string_margin=4.5, num_strings=3, target_neck_thickness=15, scallop_depth=3, num_frets=24, fret_width=2.4, filler=false) {
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) {
fw2 = fret_width/2;
neck_length = fret_scale_length(0)+fw2;
neck_width = (num_strings-1)*string_spacing + string_margin*2;
@ -26,8 +26,24 @@ module neck(string_spacing=18, string_margin=4.5, num_strings=3, target_neck_thi
a0 = 90-angle_excess;
a1 = 270+angle_excess;
rotate([-90, 0, 0])
linear_extrude(neck_length)
polygon([for (i = [0:300]) let(a=lerp(a0, a1, i/300.0)) [neck_width*0.5*sin(a), -target_neck_thickness*cos(a)]]); // Ellipse
if (len(target_neck_thickness_additional_points) < 1) {
linear_extrude(neck_length)
polygon([for (i = [0:300]) let(a=lerp(a0, a1, i/300.0)) [neck_width*0.5*sin(a), -target_neck_thickness*cos(a)]]); // Ellipse
} else {
pts = flatten([[[neck_length, target_neck_thickness]], target_neck_thickness_additional_points]);
echo(pts);
for (i = [0:len(pts)-2]) {
pt0 = pts[i];
pt1 = pts[i+1];
echo(i, pt0, pt1);
render() hull() {
translate([0,0,pt0[0]]) linear_extrude(0.01)
polygon([for (i = [0:300]) let(a=lerp(a0, a1, i/300.0)) [neck_width*0.5*sin(a), -pt0[1]*cos(a)]]); // Ellipse
translate([0,0,pt1[0]]) linear_extrude(0.01)
polygon([for (i = [0:300]) let(a=lerp(a0, a1, i/300.0)) [neck_width*0.5*sin(a), -pt1[1]*cos(a)]]); // Ellipse
}
}
}
}
module scallop(fret) {
x0 = fret_scale_length(fret-1) - fw2;
@ -354,8 +370,14 @@ module Nylon6String() {
string_margin = 3; // +6
neck_width = string_spacing*(num_strings-1) + string_margin*2;
scallop_depth = 2.5;
target_neck_thickness = 22;
fret_width=2.4;
target_neck_thickness = 22;
echo(fret_scale_length(8));
echo(fret_scale_length(9));
// target_neck_thickness_additional_points = [[480, 22], [440, 30], [0, 30]];
// 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]];
echo(str("Making a Nylon 6 String with scale length ", fsl_mm, "mm = ", fsl_mm/25.4, "in and neck width ", neck_width, "mm"));
assert(fsl_mm == Classical_Short_Scale_mm); // Make sure the function correctly uses our changed global
@ -365,6 +387,9 @@ module Nylon6String() {
for (v = CF_Span_Coords(full_length, ply))
translate(v) CFSquare(hole=hole);
}
module MyNeck() {
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);
}
reinforcing_tube_positions = flatten([
[
@ -407,7 +432,7 @@ module Nylon6String() {
}
translate([0,to_origin ? -x0 : 0,0]) render() difference() {
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);
MyNeck();
translate([-100, 0, -100]) cube([200, x0, 200]);
translate([-100, x1, -100]) cube([200, xn-x1, 200]);
for (v = reinforcing_tube_positions) CFTubeCutout2(v, x0, x1);
@ -434,12 +459,13 @@ module Nylon6String() {
translate([0,0,-9]) rotate([-90,180,180]) linear_extrude(3, center=true) text("PETG1α", size=2.5, halign="center", valign="center");
}
}
RealPiece(0, 8, include_from_fret=true);
// RealPiece(0, 8, include_from_fret=true);
RealPiece(8, 21);
%translate([100, 0, 0]) RealPiece(8, 21);
%translate([-100,0,0]) union() {
c_cf = [0.4, 0.5, 0.5];
%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);
%MyNeck();
// CF square stacks
for (v = reinforcing_tube_positions) color(c_cf) translate(v) CFTube();
for (v = reinforcing_square_positions) color(c_cf) translate(v) CFSquare();