13/9/14

Puntos, vectores, planos y curvas. # 1 Tutorial

Para empezar a utilizar geometría en Grasshopper, vallamos primero por lo más básico. Tenga en cuenta que le puede resultar tedioso en comparación con Rhinoceros al principio, porque en estos casos hacen más clicks, pero es menester conocer lo básico si desea llegar a manipular geometría compleja. Si prefiere una explicación especializada, puede consultar el manual de Grasshopper en español.

Para este tutorial, lo primero que debe hacer es leer el post mientras realiza los pasos en Grasshopper, y al finalizar descarga el archivo .gh desde aquí. Este archivo contiene los métodos más utilizados para tratar con puntos, vectores, planos y curvas con breves explicaciones. En este post veremos una versión reducida pero explicada detalladamente. Para abrir el archivo, haga click en el botón de la carpeta verde y elija el archivo.





Puntos

Hay muchas maneras de hacer puntos, casi todas se encuentran en la pestaña Vector, en el grupo Points. En la siguiente imagen sacamos el componente Construct Point (puede hacerlo desde las pestañas o doble click en el lienzo, escribir el nombre y seleccionarlo).



Todos los componentes se dividen en tres partes: los parámetros de entrada (inputs), el componente en sí, y los parámetros de salida (outputs). Recordamos que si mantiene el cursor sobre estas partes, nos mostrará un icono del tipo de dato, su nombre y una breve descripción.

En este caso, el componente Construct Point nos pide tres valores numéricos que corresponden a sus coordenadas espaciales y nos devuelve un punto, por defecto {0.0, 0.0, 0.0}. Antes de cambiar sus valores, veamos como introducir números.

Una forma muy útil es el componente Number Slider. Para acceder a él, puede sacarlo de la pestañas de componentes o hacer doble click en el lienzo, escribir un número y pulsar enter.


El dominio del deslizamiento cambia según el valor introducido (llanamente, desde donde hacia donde y según si es entero o decimal). Si le damos un valor entre 0 y 1 como 0,618, el slider se moverá entre ese rango y con tres decimales; si le damos un valor entre 1 y 10 como 5.5, se moverá entre 0 y 10 con un decimal de precisión; si le damos 23, se moverá entre 0 y 100 sin ningún decimal. Pero también podemos cambiarlo posteriormente haciendo doble click sobre el nombre del slider.


Veamos lo más interesante. En propiedades, puede cambiarle el nombre para que en lugar de slider aparezca una referencia a los datos que modifica, por ejemplo, nº talla o grosor o nº de piedras, pero en este caso sería apropiado ponerle X (para la primera coordenada). Esto es muy útil cuando se alargan los algoritmos y queremos ordenar los modificadores por un lado y la definición por otro.
Lo siguiente que tenemos es el tipo de número (utilizaremos los dos primeros, números decimales y números enteros) y la precisión decimal.
Luego vemos el dominio, el cual podemos manipular completamente añadiendo valores negativos haciendo click en el +.
Abajo tenemos dos formas de darle valor al componente, desplazando arriba y abajo o deslizando derecha e izquierda.

Una vez adaptado el slider, puede hacer dos copias y conectar cada una a los parámetros del punto. Para conectar, haga click y arrastre en el extremo de los componentes y enchúfelo a otro componente. Para copiar, puede utilizar ctrl+C y ctrl+V o mantener click sobre el componente y pulsar alt.
Una vez hecho, haga doble click en el lienzo, escriba panel y selecciónelo para sacarlo al lienzo, y conecte la salida del componente punto con la entrada del panel. Ahora manipule los slider y compruebe cómo los datos del punto cambian.


Este es un caso extremadamente simple para hacer un punto, veamos ahora algo más interesante.
Selecciona los tres slider y dele al botón suprimir (supr o del normalmente) para eliminarlos. Luego escriba en el lienzo serie o búsquelo desde el panel de componentes.

Este componente crea una serie de números. Los parámetros de entrada son Start, el número decimal que empezará la serie; Step, el número decimal por cada intervalo; y Count, el número entero para la cantidad de valores. Start lo dejaremos por defecto, en 0; para Step, cree un slider como vimos antes que sea un valor decimal para tener más precisión; y para Count haga lo mismo pero con un número entero. Conecte el output de Serie con el input de la coordenada X del Construct Point y vea el resultado en el panel y en Rhinoceros.


El resultado es una lista de números con un intervalo común en la coordenada X.
Para manipular Y, utilizaremos el componente Range.

Este componente también genera una lista de números, pero a partir de un dominio. Por defecto, este lo dejamos de 0 a 1.

Conecte el slider de Count a Steps del componente Range y sitúa el cursor en su salida range para ver el resultado. Si se da cuenta, nos devuelve un número más que el proporcionado a Steps. Esto puede ser un problema, ya que normalmente necesitamos que los rangos coincidan, para solucionarlo, haga click derecho en Steps, valla a Expression y escriba x-1.

Esto es un método útil para hacer modificaciones de los parámetros.












Conecte range a el parámetro Y del punto y vea el resultado (recuerde que los valores van de 0 a 1). Para hacerlo más divertido, extraiga el componente Graph Mapper y conéctelo con Range.
















Extraiga también el componente Multiplication y un nuevo slider y conéctelos como en la imagen. Verá que se multiplica el dominio del rango, teniendo así control sobre su amplitud. Pero, qué hace el componente Graph Mapper?

Haga click derecho sobre él, valla a Graph Types y seleccione Bezier.



Ahora manipule el gráfico y observe el resultado en Rhino.


Interesante verdad? Por defecto viene con dominio de 0 a 1 en x e y, por eso hemos dejado el dominio del componente Range por defecto, ambos deben coincidir para que la manipulación sea correcta. Ahora puede cambiar el tipo de gráfico y ver sus resultados.



Vectores

Un vector es un objeto geométrico que define una dirección, sentido, longitud y su posición es indiferente. Son necesarios para muchos componentes, sobretodo para planos con los que orientar otros objetos.

Veamos como se hace un vector a partir de dos puntos, extraiga el componente Vector 2pt .
Vamos a aprovechar los puntos que hicimos previamente, pero necesitamos otro punto, a si que extraiga otro Construct Point.

Los vectores no son visibles en Rhino, salvo que utilicemos el componente Vector Display. Conectamos los vectores y un punto para su posición.





Planos


Hay muchos métodos para construir planos, en el archivo hay unos cuantos y aquí sólo veremos cómo construir un plano a partir de un punto y un vector perpendicular al plano (será el eje Z). Para ello invocamos el componente Plane Normal.

En cada parámetro de entrada, hacemos click derecho y le damos a Extract parameter. Nos salen los componentes genéricos para punto y vector. Si posicionamos el cursor sobre ellos, vemos que contienden datos predefinidos, punto 0, 0, 0 y vector 0, 0, 1 (eje Z). Veamos como modificar los componentes genéricos.

Encima del punto, hacemos click derecho y seleccionamos Set Multiple Points. Ahora tenemos que dibujar puntos en Rhino haciendo clicks, para finalizar click derecho o enter.


Una vez hecho, si selecciona el componente Punto le aparecerán gumballs con los que manipular los puntos desde Rhino a partir de los ejes de coordenadas. Tenga en cuenta que sólo aparecen si el componente está visible.
Para el vector, le damos a Set One Vector y dibujamos en Rhino la dirección y el sentido que queramos (para este caso no importa la longitud). El resultado es algo como a continuación, varios planos porque le dimos varios puntos en distinta posición, y que comparten la misma orientación por guiarse de un solo vector. Si quiere probar a darle varios vectores, tiene que hacer la misma cantidad de vectores que de puntos.





Curvas

Las curvas son una familia que agrupa a linea, polilínea, rectángulo, círculo, arco, elipse y splines. Todas tienen distintas propiedades y distintos componentes genéricos, pero todas se pueden procesar con el componente genérico de curva.

Para introducir una curva al componente, necesitas dibujarla previamente en Rhino. Para ello en la barra de herramientas de Rhinoceros ve a curvas y selecciona una de las dos primeras funciones, introduce los puntos y dibuja la curva. Una vez hecho puedes darle click derecho al componente Curvas y seleccionar Set One Curve para seleccionar la curva de Rhino.




En Rhino, puede pulsar F10 para extraer los puntos de control de una curva para modificarla. Haciendo esto, se puede modificar todo un algoritmo que salga de la curva teniendo así la posibilidad de ajustar el diseño desde la curva de origen. Pulse F11 para quitar los puntos de control.

Si ahora guardase el archivo, al volver abrirlo el componente estaría vacío. Para evitar que los datos introducidos desde Rhino se pierdan, tiene que hacer click derecho en el componente y darle a Internalise Data. Ahora puede borrar la curva de Rhino si lo desea, y para volver a pasar la curva desde Grasshopper a Rhino, tiene que darle a Bake (cocinar) haciendo click derecho en el componente o click central (la ruedita) en el icono del huevo frito.

Ahora veamos un método para dividir curvas, Divide Curve. Este componente nos pide que le demos una curva y un número entero (la cantidad de divisiones que queramos) y nos devuelve una lista de puntos con sus tangentes y sus parámetros de curva, que representan como las coordenadas en ciertos puntos de la curva. Para partir la curva en varias curvas, utilizamos el componente Shatter, situado justo debajo del componente Divide Curve.


También podemos aprovechar estos parámetros para hacer planos perpendiculares a la curva que nos pueden ser útiles, por ejemplo, para situar otras curvas de perfil. Utiliza el componente Perp Frame y circle.


En la pestaña de splines, tenemos las curvas Polyline, Nurbs Curve e Interpolate. Seleccione las tres y conéctelas con la serie de puntos que hicimos con el Graph Mapper y compruebe sus diferencias.

Estas curvas tienen un input importante, Periodic o closed, que sirve para cerrar la curva. El dato que hay que introducirle es un valor booleano, es decir un 0 o un 1, o lo que es lo mismo, False o True. Para modificar un parámetro de este tipo, le damos doble click para seleccionar Set Boolean y escoger False o True. También podemos hacerlo a través de un panel, o con un slider de números enteros que valla de 0 a 1. Una forma rápida de cambiar el valor booleano es haciendo click derecho y activar Invert.

Por último, otro componente importante para curvas es Explode, que sirve para extraer o explotar los puntos y segmentos en las curvas como polilíneas. Invoque el componente y compruebe la relación que hay entre la cantidad de puntos y segmentos que nos devuelve y el número de Count del componente serie.



Ahora, le recomiendo ampliar la información descargando el archivo de este tutorial desde aquí. Valla paso a paso entendiendo qué sucede y pensando que otras aplicaciones podrían tener ciertos componentes. Experimente por sí mismo, juegue y siéntase libre de enviarme sus dudas o sugerencias.

El siguiente tutorial # 2 es superficies, breps y mallas.



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



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