mirror of
https://github.com/JustinSDK/dotSCAD.git
synced 2025-08-12 17:54:18 +02:00
reuse vts
This commit is contained in:
@@ -18,28 +18,32 @@ module bend_extrude(size, thickness, angle, frags = 24) {
|
||||
r = half_frag_width / sin(half_frag_angle);
|
||||
s = (r - thickness) / r;
|
||||
|
||||
transX = [x, 0, 0];
|
||||
mirrorX = [1, 0, 0];
|
||||
sq_size = [frag_width, y];
|
||||
module get_frag(i) {
|
||||
offsetX = i * frag_width;
|
||||
linear_extrude(thickness, scale = [s, 1])
|
||||
translate([-offsetX - half_frag_width, 0, 0])
|
||||
intersection() {
|
||||
translate([x, 0, 0])
|
||||
mirror([1, 0, 0])
|
||||
translate(transX)
|
||||
mirror(mirrorX)
|
||||
children();
|
||||
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)
|
||||
mirror([0, 1, 0])
|
||||
mirror([0, 0, 1])
|
||||
for(i = [0 : frags - 1]) {
|
||||
rotate(i * frag_angle + half_frag_angle)
|
||||
translate([0, offsetY, 0])
|
||||
rotate([-90, 0, 0])
|
||||
translate(offsetY)
|
||||
rotate(rotXn90)
|
||||
get_frag(i)
|
||||
children();
|
||||
}
|
||||
|
Reference in New Issue
Block a user