====== Extrusión ====== La extrusión consiste en dar volumen en 3D a una figura 2D. Para ellos existen 2 formas de hacerlo: ===== Extrusión lineal ===== 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: * **Twist:** Se indica en grados el giro que rota la figura según se extiende en el eje Z. Por ejemplo, 360 daría una rotación completa. Admite valores negativos. La dirección de rotación sigue la ley de la mano izquierda. * **Center:** true: Centra la figura en el eje Z, quedando la mitad de la misma en Z=0. false: La figura se muestra en el eje Z>0. * **slices:** Número de secciones que contendrá la figura al crecer en el eje Z. Mayor slices implica mayor detalle. PAra este propósito también pueden usarse los parámetros especiales $fa, $fn y $fs. * **scale:** Escala (agranda o 'achica') la figura a lo largo del eje Z. 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); ===== Extrusión con rotación ===== 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);