mirror of
https://github.com/JustinSDK/dotSCAD.git
synced 2025-08-13 10:14:41 +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);
|
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();
|
||||||
}
|
}
|
||||||
|
Reference in New Issue
Block a user