La extrusión consiste en dar volumen en 3D a una figura 2D. Para ellos existen 2 formas de hacerlo:
Para este tipo de extrusión se utiliza la función linear_extrude(). Esta función extiende un modelo 2D en el eje Z.
linear_extrude(height = fanwidth, center = true, convexity = 10, twist = -fanrot, slices = 20, scale = 1.0) {...}
A continuación se detallan sus parámetros:
Si se utiliza la función de transformación translate() junto con linear_extrude(), se pueden conseguir resultados interesantes. Por ejemplo, si twist=0, la figura simplemente estará desplazada respecto del eje central, pero si twist es diferente de 0, la rotación se desplazará en el eje indicado a medida que aumenta el eje Z. De la misma manera, si la figura es escalada, afectará a la inclinación de la figura.
Algunos ejemplos:
linear_extrude(height = 50, center = false, convexity = 10, twist = 360, slices=100, scale=2) translate([5,0,0]) regular_polygon(3,10);
linear_extrude(height = 50, center = false, convexity = 10, twist = 0, slices=100, scale=3) translate([15,0,0]) regular_polygon(3,10);
Para este tipo de extrusión se utiliza la función rotate_extrude(). Esta función consiste en lo siguiente: a partir de una figura 2D en el plano XY, utilizando esta función, lo que se consigue es un desplazamiento alrededor del eje Z de esta figura, teniendo en cuenta de que se toma como inicio la misma, pero “rotada” 90º tomando como referencia el eje X. Es decir, nuestra figura 2D en el eje XY, se “levanta”, quedando fijada en el eje ZX, y a partir de ahí se extiende alrededor del eje Z. El sentido de “expansión” a la hora de crear la figura, se determina lor la ley de la mano derecha.
rotate_extrude(angle = 360, convexity = 2) {...}
El parámetro angle hace referencia a la expansión de la figura alrededor del eje Z. Si es 360, dará una vuelta completa y la figura tendrá forma de 'toroide', si fuera 180, sería un arco, etc.
El parámetro convexity no tiene demasiada importancia, aunque para figuras que pueden dar problemas a la hora de ser previsualizadas, 10 puede ser un valor que ayude a verlas correctamente.
De la misma manera que con el otro tipo de extrusión, $fn puede utilizarse para aumentar el nivel de detalle.
Un ejemplo para entenderlo bien:
rotate_extrude(angle=270, convexity=10) translate([15, 0, 0]) regular_polygon(5, 10); translate([50,0,0]) regular_polygon(5, 10);
Ejemplo de cómo hacer un gancho simple usando la extrusión con rotación:
translate([0,60,0])
rotate_extrude(angle=270, convexity=10)
translate([40, 0]) circle(10);
rotate_extrude(angle=90, convexity=10)
translate([20, 0]) circle(10);
translate([20,0,0])
rotate([90,0,0]) cylinder(r=10,h=80);