16/9/14

Intersecciones y transformaciones. # 3 Tutorial

Para este tutorial vamos a hacer un colgante con la estructura de Voronoi en donde iremos viendo algunos componentes de intersecciones y transformaciones por el camino. También puede descargar desde aquí el archivo .gh de este tema para que conozca los componentes más utilizados para intersecciones y transformaciones en Grasshopper. Pero recomendamos primero que realice este tutorial paso a paso.





Lo primero que debe hacer es crear dos círculos concéntricos y dar valores a los radios. Podemos tratar el slider como si fuese el diámetro (dividiendo el input radio entre 2) para así tener una percepción más rápida del tamaño real de la pieza. Teniendo en cuenta que el documento de Rhino está en milímetros (si su plantilla está en mm), puede poner 35 y 8 mm.


Necesitamos crear una superficie entre los dos círculos, donde crearemos los puntos para formar las células del diagrama de Voronoi. Para ello utilizamos el componente Region Difference. Una región es un espacio plano delimitado por una curva cerrada, y este componente substrae a una región el espacio que intersecciona con otra región. El resultado son dos curvas pero si lo conectamos a el componente Boundary Surfaces obtenemos la superficie.


Ahora que tenemos la superficie, generamos puntos pseudo-aleatorios en ella utilizando el componente Populate Geometry. Añadimos un parámetro de números enteros para la cantidad de puntos (Count input) y otro igual para las variaciones aleatorias (Seed input). Creamos el diagrama conectando los puntos al componente Voronoi, que encontrará en la pestaña Mesh. Pruebe a variar la cantidad de puntos y su valor de seed (semilla) viendo cómo cambia el voronoi.


El componente voronoi nos devuuelve polilíneas cerradas (tantas como puntos le hayamos dado) que tenemos que cortar con ayuda del disco. Para ello utilizamos el componente Trim With Region, el primer input nos pide las curvas para cortar y el segundo la región cortadora (que será el círculo mayor), y nos devuelve dos outputs con las curvas que están dentro y fuera de la región. Volvemos a cortar con otro componente Trim With Region las curvas interiores con el círculo menor como cortador. Utiliza un componente genérico para curvas para visualizar el resultado por separado, y haga click derecho sobre el y active Flatten, ya que no necesitaremos datos estructurados en ramas en esta ocasión.


Obtenemos una lista de curvas en las que unas están abiertas (a las que le afectó los cortes) y otras están cerradas. Se podrían volver a cerrar reconstruyendo las células cortadas pero vamos a evitarlas para simplificar el tutorial. Vamos a utilizar sólo las curvas cerradas, para ello tenemos el componente Closed en la pestaña de curvas, que nos informa con un valor booleano (True o False, 1 o 0, Si o No) por cada índice de la lista de curvas que le damos. Teniendo esto utilizamos Cull Pattern, que elimina todos los False de la lista de datos que le demos.


Ahora vamos a escalar estas curvas para hacerlas más pequeñas con la idea de hacer agujeros. Utilizamos el componente Scale, que nos pide y punto de referencia y el factor de escala. Como queremos hacer nuevas células más pequeñas dentro de ellas, necesitamos un punto dentro de cada una, utilizamos el componente Area, que además de darnos el área, nos da el punto central. Otra forma de hacerlo sería con el componente Polygon Center. El factor de escala viene por defecto en 0.5, que sería la mitad del tamaño original, para este caso le damos por ejemplo 0.8.


Con el fin de hacerlo más orgánico, vamos a suavizar las esquinas de estas nuevas polilíneas. Hay muchas formas de hacerlo con resultados parecidos, la más rápida es utilizando el componente Fillet, que nos pide un radio para hacer un chaflán redondeado. En este caso le podemos dar un valor exageradamente alto, ya que hay un valor límite según el ángulo y longitud de la esquina, así nos aseguramos de que el radio sea el máximo para cada polilínea. Conectamos las nuevas curvas a un Boundary Surface ya que vamos a extruirlas y así nos quedarán sólidos o breps cerrados.


Pero antes vamos a hacer la forma a la que le haremos los agujeros. Para ello unimos todas las curvas que nos devolvió el componente Cull Pattern con el componente Region Union, de esta manera nos devolverá la polilínea externa e interna como una región que podemos convertir en superficie con Boundary Surface. Ahora extruimos esta superficie en el eje Z con el valor del grosor que queramos, por ejemplo 1.5 mm. Y hacemos lo mismo con los agujeros.


Ahora tenemos que hacer la sustracción de los agujeros. Antes de ello, vamos a activar un widget que nos informará del tiempo que tarda cada componente en ejecutarse. En la barra de archivo, valla a Display > Canvas Widgets > Profiler. Si se acerca un poco a los componentes, verá el tiempo que consume y su porcentaje en relación a todos los demás componentes. Hacemos esto porque la acción de ahora llevará unos segundos, y es una buena utilidad para saber qué componentes hacen lentos los scripts.
Invoque el componente Solid Difference, en el primer parámetro conecte el brep al que le haremos los agujeros y en el segundo conecte los cortadores.
Nota* Si le falta algún agujero, necesitará que los cortadores atraviesen completamente al otro brep, puede hacer la extrusión más alta y moverlos en el eje negativo Z.


Ya tenemos el brep final, ahora podemos suavizarlo pasándolo a malla y subdividirlo con algún componente de WeaverBird.



Ahora usted puede hacer todas las variaciones que quiera, los parámetros fundamentales en esta definición son los pertenecientes al componente Populate Geometry, aunque también puede utilizar otro método para hacer puntos.

En este ejemplo hemos visto unos cuantos métodos de intersecciones y transformaciones, puede ver más en el archivo de ejemplo de este tutorial que puede descargar desde aquí.



*********************************************************************************



El primer workshop de joyería generativa en España, impartido por dos expertos en Grasshopper: Rodrigo Carbajal, arquitecto y diseñador de interacción y Daniel Abalde, diseñador generativo de joyería y creador de Peacock. Los alumnos aprenderán a modelar algoritmos con Grasshopper, las habilidades de la joyería generativa y a renderizar e imprimir en cera sus propios diseños. Visita el enlace para más información.
*********************************************************************************

No hay comentarios:

Publicar un comentario