1
0
mirror of https://github.com/JustinSDK/dotSCAD.git synced 2025-08-13 10:14:41 +02:00

reuse vts

This commit is contained in:
Justin Lin
2022-05-16 08:37:18 +08:00
parent 0d685a7280
commit 12898673a8

View File

@@ -18,28 +18,32 @@ module bend_extrude(size, thickness, angle, frags = 24) {
r = half_frag_width / sin(half_frag_angle); r = half_frag_width / sin(half_frag_angle);
s = (r - thickness) / r; s = (r - thickness) / r;
transX = [x, 0, 0];
mirrorX = [1, 0, 0];
sq_size = [frag_width, y];
module get_frag(i) { module get_frag(i) {
offsetX = i * frag_width; offsetX = i * frag_width;
linear_extrude(thickness, scale = [s, 1]) linear_extrude(thickness, scale = [s, 1])
translate([-offsetX - half_frag_width, 0, 0]) translate([-offsetX - half_frag_width, 0, 0])
intersection() { intersection() {
translate([x, 0, 0]) translate(transX)
mirror([1, 0, 0]) mirror(mirrorX)
children(); children();
translate([offsetX, 0, 0]) translate([offsetX, 0, 0])
square([frag_width, y]); square(sq_size);
} }
} }
offsetY = -r * cos(half_frag_angle) ; offsetY = [0, -r * cos(half_frag_angle), 0];
rotXn90 = [-90, 0, 0];
rotate(angle - 90) rotate(angle - 90)
mirror([0, 1, 0]) mirror([0, 1, 0])
mirror([0, 0, 1]) mirror([0, 0, 1])
for(i = [0 : frags - 1]) { for(i = [0 : frags - 1]) {
rotate(i * frag_angle + half_frag_angle) rotate(i * frag_angle + half_frag_angle)
translate([0, offsetY, 0]) translate(offsetY)
rotate([-90, 0, 0]) rotate(rotXn90)
get_frag(i) get_frag(i)
children(); children();
} }