1
0
mirror of https://github.com/JustinSDK/dotSCAD.git synced 2025-08-13 18:24:28 +02:00

add bend_extrude

This commit is contained in:
Justin Lin
2019-05-24 10:59:01 +08:00
parent e099ebd012
commit 6754d231fc

32
src/bend_extrude.scad Normal file
View File

@@ -0,0 +1,32 @@
module bend_extrude(size, angle, frags = 24) {
x = size[0];
y = size[1];
z = size[2];
frag_width = x / frags ;
frag_angle = angle / frags;
half_frag_width = 0.5 * frag_width;
half_frag_angle = 0.5 * frag_angle;
r = half_frag_width / sin(half_frag_angle);
s = (r - z) / r;
module get_frag(i) {
offsetX = i * frag_width;
linear_extrude(z, scale = [s, 1])
translate([-offsetX - half_frag_width, 0, 0])
intersection() {
children();
translate([offsetX, 0, 0])
square([frag_width, y]);
}
}
offsetX = -r * cos(half_frag_angle) ;
for(i = [0 : frags - 1]) {
rotate(i * frag_angle + half_frag_angle)
translate([0, offsetX, 0])
rotate([-90, 0, 0])
get_frag(i)
children();
}
}