First attempt at truss rod model
This commit is contained in:
parent
2cc596a3f6
commit
101fb5b6d1
19
CFTubes.scad
19
CFTubes.scad
|
@ -667,8 +667,17 @@ COLOURSCHEME_ABS_BLUE = [BAMBU_ABS_NAVY_BLUE, BAMBU_ABS_AZURE, BAMBU_ABS_AZURE,
|
|||
COLOURSCHEME_PETGHF_BLUE = [BAMBU_PETGHF_LAKE_BLUE, BAMBU_PETGHF_LAKE_BLUE, "", ""];
|
||||
|
||||
// colour_scheme = COLOURSCHEME_ABSGF_CLOWNFISH;
|
||||
colour_scheme = COLOURSCHEME_ABS_BLUE;
|
||||
color(colour_scheme[0]) Nylon6String(from_fret=0, to_fret=22, render_colour_0=true, render_colour_1=false, render_colour_2=false, render_colour_3=false);
|
||||
color(colour_scheme[1]) Nylon6String(from_fret=0, to_fret=22, render_colour_0=false, render_colour_1=true, render_colour_2=false, render_colour_3=false);
|
||||
color(colour_scheme[2]) Nylon6String(from_fret=0, to_fret=22, render_colour_0=false, render_colour_1=false, render_colour_2=true, render_colour_3=false);
|
||||
color(colour_scheme[3]) Nylon6String(from_fret=0, to_fret=22, render_colour_0=false, render_colour_1=false, render_colour_2=false, render_colour_3=true);
|
||||
// colour_scheme = COLOURSCHEME_ABS_BLUE;
|
||||
// color(colour_scheme[0]) Nylon6String(from_fret=0, to_fret=22, render_colour_0=true, render_colour_1=false, render_colour_2=false, render_colour_3=false);
|
||||
// color(colour_scheme[1]) Nylon6String(from_fret=0, to_fret=22, render_colour_0=false, render_colour_1=true, render_colour_2=false, render_colour_3=false);
|
||||
// color(colour_scheme[2]) Nylon6String(from_fret=0, to_fret=22, render_colour_0=false, render_colour_1=false, render_colour_2=true, render_colour_3=false);
|
||||
// color(colour_scheme[3]) Nylon6String(from_fret=0, to_fret=22, render_colour_0=false, render_colour_1=false, render_colour_2=false, render_colour_3=true);
|
||||
|
||||
// TrussRod();
|
||||
difference() {
|
||||
l = 70;
|
||||
w = 20;
|
||||
extra = 5;
|
||||
translate([-w/2, -extra, 1.6-w/2]) cube([w, l+extra, w]);
|
||||
TrussRod(taper_points=[-extra, l], extra=true, tolerance = 0.24);
|
||||
}
|
||||
|
|
|
@ -146,3 +146,59 @@ module CFSquareCutout2(v, block_y0, block_y1, tolerance = CF_Square_Width_tolera
|
|||
// }
|
||||
// }
|
||||
}
|
||||
|
||||
module TrussRod(length = 630, tolerance = 0, taper_l = 1.5, taper_extra = 1.0, taper_points=[], extra=false) {
|
||||
$fn = 360;
|
||||
epsilon = 0.00000001;
|
||||
rot = [-90, 180, 0];
|
||||
|
||||
module squircle(d, h, w) {
|
||||
render() hull() {
|
||||
circle(d = d);
|
||||
translate([-w/2, h - d/2 - epsilon]) square([w, epsilon]);
|
||||
}
|
||||
}
|
||||
// base profile
|
||||
base_d = 6.0 + tolerance;
|
||||
base_w = base_d;
|
||||
base_h = 9.0 + tolerance;
|
||||
|
||||
// nut?
|
||||
stage2_d = 7.0 + tolerance;
|
||||
stage2_w = base_w;
|
||||
stage2_h = base_h + (stage2_d - base_d);
|
||||
stage2_l = 55 + tolerance;
|
||||
|
||||
// Turning end
|
||||
stage3_d = 9.1 + tolerance;
|
||||
stage3_w = stage3_d;
|
||||
stage3_h = base_h + (stage3_d - base_d);
|
||||
stage3_l = 35 + tolerance;
|
||||
|
||||
// Rod outline
|
||||
stages = [ // Must be ascending order for later
|
||||
[stage3_l, stage3_d, stage3_h, stage3_w],
|
||||
[stage2_l, stage2_d, stage2_h, base_w],
|
||||
[length, base_d, base_h, base_w],
|
||||
];
|
||||
for (s = stages) rotate(rot) linear_extrude(s[0]) squircle(s[1], s[2], s[3]);
|
||||
if (extra) {
|
||||
l = 33;
|
||||
s = stages[0];
|
||||
translate([0, -l, 0]) rotate(rot) linear_extrude(l+s[0]) squircle(s[1], s[2], s[3]);
|
||||
}
|
||||
|
||||
// Tapers
|
||||
for (x = taper_points) {
|
||||
larger_stages = [ for (s = stages) if (s[0] >= x) s];
|
||||
if (len(larger_stages)) {
|
||||
s = larger_stages[0];
|
||||
t2 = taper_extra * 2;
|
||||
render() hull() {
|
||||
translate([0, x-epsilon/2, 0]) rotate(rot) linear_extrude(epsilon) squircle(s[1]+t2, s[2]+t2, s[3]+t2);
|
||||
translate([0, x+taper_l-epsilon, 0]) rotate(rot) linear_extrude(epsilon) squircle(s[1], s[2], s[3]);
|
||||
translate([0, x-taper_l, 0]) rotate(rot) linear_extrude(epsilon) squircle(s[1], s[2], s[3]);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue