cursogh+nivel+1_manual

Upload: roberto-aguirre

Post on 04-Nov-2015

218 views

Category:

Documents


0 download

DESCRIPTION

Curso manual de gras

TRANSCRIPT

  • manual de ejercicios de grashopper nivel I

    miguel vidal calvetguillermo ramrez camarero

  • A. Conceptos bsicos.

    B. Nmeros y datos.

    C. Gestin de listas y condicionales

    D. Geometra

    E. Modelado paramtrico

    ndice

    aplicado al diseo paramtrico de arquitecturacurso de grasshopper nivel I

    00 Introduccin.E01 Interfaz grfica.E02 Objetos. Tipos y modos de visualizacin.E03 Modos de entrada.

    02030508

    06080910

    1213141516

    18192021

    2326

    E04 Dominios, rangos y series. Hilera y matriz de puntos.E05 Funciones. Parbola y espiral. E06 Paraboloide hiperblico.E07 Superficie por puntos - Miralles.

    E08 Ordenar una lista.E09 Triangulacin de una cercha.E10 Malla de pilares.E11 Triangulacin de la malla de pilares.E12 Malla de pilares con patio.

    E13 Brjula.E14 Vector Solar.E15 Subdivisin y triangulacin de una superficie.E16 Panelizacin de una superficie.

    E17 Monumento a los judos de Europa.E18 Mediateca de Sendai.

    manual de grasshopper nivel I aplicado al diseo de arquitecturapor miguel vidal calvet y guillermo ramrez camarero

    edicin Noviembre 2010grasshopper v0.8.002

  • conceptos bsicosA

  • manual de grasshopper nivel IMiguel Vidal

    Guillermo Ramrez

    p04

    introduccin

    00. qu es grasshopper?

    01. cmo se trabaja en grasshopper?

    Grasshopper es un entorno de programacin visual dentro de Rhino. Su principal virtud es que nos permite disear algoritmos que operan con datos y geometra de manera intuitiva sin la necesidad de aprender ningn lenguaje de programacin. Al funcionar dentro de Rhino, Grasshopper incorpora gran parte de sus coman-dos y funcionalidades, adems, utiliza Rhino como entorno de visualizacin, de manera que podemos ver en tiempo real cmo afecta a nuestro modelo cualquier cambio que realicemos en Grasshopper.

    Grasshopper es una herramienta de diseo de algoritmos. Esto quiere decir que es capaz de encadenar una sucesin de comandos e instrucciones con entradas y salidas que son geometra y datos para producir un resultado. Esta manera de operar aporta gran flexibilidad de cara a manipular grandes cantidades de datos o datos variables en el espacio y el tiempo, pero condiciona enormemente nues-tra manera de trabajar.

    Llevar una idea o proyecto a grasshopper no es una tarea sencilla. No basta con conocer la herramienta y sus comandos, hace falta ser capaz de traducir nuestra idea a un lenguaje matemtico en primer lugar, y, en segundo lugar, a un lenguaje que grasshopper sea capaz de entender.

    Por este motivo, mientras que grasshopper es una excelente herramienta para llevar a cabo proyectos que operen con gran cantidad de informacin, geometra, o mltiples variables y condiciones definidas con precision y rigor, grasshopper no es una buena herramienta para manejar procesos intuitivos o difusos, que tienen dificultad para ser traducidos a un lenguaje lgico.

    Idea

    modelo matemtico/lgico

    definicin en grasshopper

    0002. Recomendaciones de uso de Grasshopper antes de empezar

    - Lo primero, guardar el archivo :-)- Mantener un orden e higiene visual.- Elaborar un esquema de flujo de datos de lo que se vaya a hacer.- Al principio, sacar paneles de todo lo que se vaya haciendo.- Cuantos menos cables, mejor.- Comentar las definiciones.- Cambiar los nombres de parmetros y componentes a nuestro gusto para poder orientarnos mejor y hacer bsquedas rpidamente.- Siempre hay varios caminos para llegar al mismo resultado, toma, primero, el que mejor controles y, segundo, el ms corto.

  • nmeros y datosB

  • manual de grasshopper nivel IMiguel Vidal

    Guillermo Ramrez

    p06

    dominios, rangos y series

    00. objetivo

    01. componentes clave

    02. procedimiento

    El objetivo de este ejercicio es familiarizarnos con la creacin de listas de nmeros en Grasshopper. Para ello utilizaremos los componentes dominio, ran-go y serie para generar una coleccin de nmeros que dibujarn una hilera de puntos primero y luego una matriz de puntos.

    Dominio (domain) es un componente cuya entrada son dos valores reales A y B y cuya salida es un intervalo continuo de la recta real. Un dominio se escribe A To B y representa la coleccin de todos los nmeros entre esos dos valores.

    Rango (range) es un componente cuyas entradas son un dominio y un valor N, y cuya salida son valores discretos de la recta real. Es decir, es un componente que toma un dominio continuo D y lo divide N veces, generando una coleccin de N+1 valores discretos.

    Serie (series) es un componente que genera una lista de valores ordenados a partir de un valor inicial A, un incremento o tamao de paso N y una cantidad de valores C.

    Para dibujar una hilera de puntos en la direccin del eje X utilizando los concep-tos anteriores, tendremos que seguir los pasos siguientes:

    1. Sacamos un componente Series y conectamos unos sliders de nmero enteros a sus entradas A, N y C. El objetivo de esto es generar una lista de C coordenadas que empiecen en A y aumenten de N en N. Es decir, si le damos a nuestros sliders A, N y C los valores 1, 2 y 10 respectivamente, el componente series nos generar una lista tal que as (1, 3, 5, 7, 9, 11, 13, 15, 17, 19).

    2. Conectamos la salida del componente Series a la entrada X del compo-nente Point. El significado de este paso es que asignamos cada valor num-rico generado en la serie a cada coordenada X de una lista de puntos. Como conectamos varios valores a una entrada X, el componente dibujar varios puntos, tantos como hayamos especificado en C.

    3. La hilera de puntos ya est terminada. Si ahora cambiamos los valores de los sliders podemos observar cmo afectan los cambios a la cantidad y la separacin entre puntos.

    4. Pero.. y si enchufamos una lista de nmeros a la entrada Y de Point, qu ocurre? cmo podemos hacer para que en vez de una hilera inclinada Grasshopper nos dibuje una matriz de puntos?

    domain, range, series

    A. Definicin: dominio.B. Definicin: rango.C. Definicin: serie.D. Hilera de puntos.E. Matriz de puntos.

    A. Definicin: dominio.

    B. Definicn: rango.

    C. Definicin: serie.

    D. Hilera de puntos

    E04

    A

    A

    A

    N divisiones

    incremento N

    N+1 valores

    C valores

    c

    A+N

    d

    A+2N

    e

    A+3N

    B

    B

    B

  • manual de grasshopper nivel IMiguel Vidal

    Guillermo Ramrez

    p07

    dominios, rangos y series

    Si simplemente conectamos la serie a las entradas X e Y de Point, Point har exactamente lo que le pedimos, es decir, dibujar una hilera de puntos que tienen la coordenada X igual a la Y, puesto que las dos listas de nmeros provienen de la misma serie:

    (1,1) (2,2) (3,3) (4,4) (5,5) ....

    Ahora, si nuestra intencin es hacer una matriz de puntos, debemos cruzar estas coordenadas.

    Intenta hacer una matriz de puntos tridimensional.

    Intenta hacer una matriz de puntos como la anterior, pero que en el que cada punto es elevado 1 unidad en la direccin Z con respecto al anterior.

    1. Empleando lo aprendido en la leccin de correspondencia de datos, hac-emos clic con el botn derecho en la parte central del componente Point, y seleccionamos Cross Reference. Esto quiere decir que a cada coordenada X (1, 3, 5, 7..) Grasshopper le va a hacer corresponder todas las coordena-das Y (1, 3, 5, 7..) produciendo una lista de pares de coordenadas tal que as:

    (1,1) (1,2) (1,3) (1,4) (1,5) ....

    (2,1) (2,2) (2,3) (2,4) (2,5) ....

    (3,1) (3,2) (3,3) (3,4) (3,5) ....

    donde cada elemento se combina con todos los dems.

    E. Matriz de puntos.

    ejercicio propuesto

    ejercicio propuesto

    E04

  • manual de grasshopper nivel IMiguel Vidal

    Guillermo Ramrez

    p08

    parbola y espiral

    00. objetivo

    01. componentes clave

    02. procedimiento

    El objetivo de este ejercicio es familiarizarnos con el manejo de funciones. Us-aremos una serie para generar una lista de valores que sern afectados por una funcin. Visualizaremos los efectos de la funcin asignando los valores a coorde-nadas de puntos para dibujar una parbola primero, y luego una espiral.

    Usando lo aprendido en el ejercicio E04, generamos una lista de valores con una serie. Conectando la salida de la serie a la entrada X de un componente Point, asignamos los valores de la lista a las coordenadas X de los puntos. El resultado es una hilera de puntos en X.

    De momento slo hemos operado con las coordenadas X. Sacamos un compo-nente funcin y lo conectamos a la salida de la serie, y la salida de la funcin la conectamos a las coordenadas Y de nuestro componente punto.

    Conectamos un panel con el texto 0.1*x^2 . Con esto conseguimos afectar las coordenadas Y de nuestra hilera de puntos para que asciendan de manera cuadrtica. El 0.1 es un coeficiente reductor que impide que la funcin crezca tan rpidamente que desaparezca de nuestra vista en Rhino.

    Ahora aplicaremos tres funciones, una a cada coordenada. Aplicando una fun-cin cos(x) a la X y una sin(x) a la Y conseguimos que los puntos describan un crculo en planta.

    Si conectamos lo valores generados en la serie directamente a la entrada Z de punto, o a travs de una funcin x, los valores pasarn inalterados, dibujando una espiral que asciende linealmente en Z.

    Si en vez de x escribimos cualquier otra funcin para la coordenada Z, el as-censo ser diferente: prueba con x^2, o Ln(x)

    series, function, point

    A. Serie. Hilera de puntos en X.B. Parbola: aplicamos una funcin a las coordenadas Y. C. Espiral: aplicamos funciones a X, Y y Z.

    A. Serie. Hilera de puntos en X.

    B. Parbola: aplicamos una funcin a las coordenadas Y.

    C. Espiral: aplicamos funciones a X, Y y Z.

    E05

  • manual de grasshopper nivel IMiguel Vidal

    Guillermo Ramrez

    p09

    paraboloide hiperblico

    01. objetivos

    02. conceptos clave

    03. procedimiento

    - repasar la nocin de dominio matemtico- emplear las funciones de n variables- conocer cmo dibujar superficies a partir de frmulas- entender cmo se define una superficie a partir de puntos

    Dibujamos una malla cuadrada de puntos con un dominio, al igual, que en el ejercicio E01 - malla bidimensional de puntos.

    Descomponemos los puntos de la malla cuadrada base y los recomponemos en otro punto XYZ (esta vez sin cross reference activo), tomando las coordenadas X e Y. La coordenada Z se generar en una funcin de n variables (f(n)) en la que introducimos, haciendo click con el botn derecho en la banda central del componente en edit expression, la ecuacin del parabolide hiperblico. El nmero de variables se define, tambin haciendo click con el botn derecho en la parte central del componente y luego yendo a input manager.

    domain, range, f(n), decompose points, surface from points

    1. Dibujar una malla de puntos base2. Dibujar los puntos del paraboloide a partir de la malla base con coordenadas Z modificadas por una funcin de varias variables3. Dibujar el paraboloide hiperblico con una superficie a partir de puntos

    1. Dibujar una malla de puntos base

    2. Dibujar los puntos del paraboloide a partir de los puntos base

    E06

    Dibujamos el paraboloide con una superficie definida a partir de puntos (surface grid o surface from points). La entrada P ser la ltim lista de puntos XYZ y U la cantidad de puntos en cualquiera de las direcciones de la superficie (esta superfice slo funciona con plantas cuadradas) , que ser Nrango + 1.

    3. Dibujar el paraboloide hiperblico con una superficie a partir de puntos

  • manual de grasshopper nivel IMiguel Vidal

    Guillermo Ramrez

    p010

    superficie por puntos - Miralles

    01. objetivos

    02. conceptos clave

    03. procedimiento

    Dibujaremos una superficie irregular cuya geometra viene dada por una funcin de la cual podemos controlar determinados parmetros. Para ello deberemos comprender el concepto de remapeo de nmeros. Utilizaremos una grfica para modificar en tiempo real una lista de valores de cotas que dar alturas diferentes a cada punto de la superficie.

    Definimos una malla de puntos idntica a la de E6 Paraboloide Hiperblico.

    Tomamos un Domain y lo definimos entre dos valores, p.ej. 0 y 1,5, que van a representar la altura mnima y mxima que alcanzar nuestra superficie. Dividimos ese domain con un range que genera tantos valores como puntos haya en nuestra malla, esto es, medimos con list length cuntos puntos hay en nuestra lista de puntos, y le restamos 1 para enchufarlo a la N del rango.

    Mapeamos los valores del rango a un intervalo entre 0 y 1 con Remap. Estos valores se introducen en Graph Mapper para ser modificados por una funcin. A la salida del Graph Mapper se devuelven a su dominio original con un segundo Remap. Finalmente, estos valores se introducen en la coordenada Z de nuestro componente punto.

    Conectamos la salida de puntoXYZ a Surface Grid. La cantidad U de puntos de la entrada es la N del rango + 1.

    domain, list length, remap numbers, graph mapper, surface grid

    1. Malla base de puntos. 2. Afectar la coordenada Z con una grfica.3. Dibujar la superficie.

    1. Malla base de puntos.

    2. Afectar la coordenada Z con una grfica.

    3. Dibujar la superficie.

    E07

    Banco Lungomare, fuente: www.escofet.com Mercado de Santa Caterina, fuente: www.wikipedia.org

  • gestin de listas y condicionalesC

  • manual de grasshopper nivel IMiguel Vidal

    Guillermo Ramrez

    p012

    ordenar una lista

    01. objetivos

    02. conceptos clave

    03. procedimiento

    - comprender que una lista es una sucesin de elementos, en la que el orden y la posicin de los mismos dentro de ella es relevante

    Vamos a ordenar los puntos de divisin de una circunferencia segn la distancia a un punto interior a la misma. Primero, dibujamos una circunferencia y la dividimos con Divide curve y dibujamos los ndices de cada uno de los puntos con Point list. Y segundo, colocamos un punto dentro de ella con un parmetro de punto, haciendo click con el botn derecho y luego yendo a Set one Point.

    Medimos la distancia entre la lista de puntos que salen de divide curve (A) y el punto que hemos elegido previamente (B)

    sort list, point list

    A. Dibujar unos puntos (lista que vamos a ordenar) B. Parmetro con el que ordenar la listaC. Ordenar la listaD. Visualizacin del resultado

    A. Dibujar unos puntos (lista que vamos a ordenar)

    B. Parmetro con el que ordenar la lista

    E08

    Ordenamos la lista de distancias con Sort List. En la entrada y salida K, devuelve cualquier lista numrica ordenada de menor a mayor. Y en la entrada y salida A, ordena cualquier lista, de la misma longitud que la de K, en el mismo orden que ha utilizado para K. Se pueden ordenar tantas listas como se quiera de este modo, haciendo clic con el botn derecho en Input Manager ...

    C. Ordenar la lista

    Para visualizar el resultado, primero dibujamos los puntos ordenados con Point List, pero, esta vez, los escalamos para que no coincidan con los del apartado 1; y, segundo, dibujamos lneas a puntos entre el punto interior y los de la circunfrerencia con Dash Pattern .

    D. Visualizacin del resultado

  • manual de grasshopper nivel IMiguel Vidal

    Guillermo Ramrez

    p013

    triangulacin de una cercha

    01. objetivos

    02. conceptos clave

    03. procedimiento

    - repasar la nocin de lista como sucesin ordenada de elementos- conocer cmo se desfasan listas segn ndices

    Tomamos como curva base de la cercha una curva dibujada en Rhino y almacenada en un parmetro de curva en Grasshopper mediante Set one Curve, haciendo click con el botn derecho en el mismo.

    Los puntos base de la cercha los obtenemos dividiendo la curva base mediante Divide distance y los puntos de coronacin, tomando las coordenadas X e Y de estos puntos (con point decompose) y la coordenada Z, un slider.

    shift list

    1. Curva base 2. Puntos para ejes3. Ejes de la estructura4. Dibujo de la estructura

    1. Cordn inferior

    2. Puntos para ejes

    E09

    - Ejes de los montantes: lneas entre puntos base y de coronacin.- Diagonales: lneas entre puntos base y coronacin desfasados una posicin.- Cordn inferior: lneas entre puntos base y ellos mismos desfasados una posicin.- Cordn superior: lneas entre puntos de coronacin y ellos mismos desfasado una posicin.Desfasamos tanto la lista de puntos base como la de coronacin con shift list.

    3. Ejes de la estructura

    Finalmente, dibujamos la estructura, con un pipe de todas los ejes, almacenados en un parmetro de curva.

    4. Dibujo de la estructura

  • manual de grasshopper nivel IMiguel Vidal

    Guillermo Ramrez

    p014

    malla bidimensional de pilares

    01. objetivos

    02. conceptos clave

    03. procedimiento

    - introducirse en y comparar las nociones de colecciones numricas en Grasshopper con series y dominios- comprender el modo de correspondencia de datos entre listas en Grasshopper

    Definimos las dimensiones de la malla con sliders, que devuelven nmeros dentro de un intervalo. Se pueden modificar deslizando el puntero en la barrra.

    En primer lugar, utilizaremos una serie y, en segundo lugar, un dominio y as las podemos comparar. Una serie es una coleccin de C nmeros reales que comienza en un nmero inicial S con un salto de N entre cada uno de ellos. Un dominio es un tramo continuo de la recta real definido por unos lmites. Para hacer discreto ese tramo continuo, dividindolo en partes y obteniendo como resultado una coleccin de nmeros reales, utilizamos un rango.

    series, domain, range, point, cross reference, line

    1. Definicin de parmetros de la estructura.

    2. Coordenadas de los puntos de la estructura. Colecciones numricas.

    E10

    1. Definicin de parmetros de la estructura.2. Coordenadas de los puntos de la estructura. Colecciones numricas.3. Dibujo de los puntos base y de coronacin.4 y 5. Dibujo de los ejes y de los pilares

    Tomamos, bien la salida de la serie, bien la del rango como entradas de las coordenadas X e Y. En los puntos base, la coordenada Z ser 0 y en los de coronacin, definimos la altura con otro slider.

    3. Dibujo de los puntos base y de coronacin.

    Los ejes de los pilares son lneas entre dos puntos. Los puntos de inicio de las lneas (A) sern los puntos base y los de final (B), los de coronacin. Para dibujar unos pilares circulares, utilizamos pipe con las lneas como curvas base (C) y otro slider como radio de los pilares.

    4 y 5. Dibujo de los ejes y de los pilares

  • manual de grasshopper nivel IMiguel Vidal

    Guillermo Ramrez

    p015

    triangulacin de la malla de pilares

    01. objetivos

    02. conceptos clave

    03. procedimiento

    - conocer cmo se eliminan elementos de una lista, aplicndolo a la triangulacin de la malla de pilares del ejercicio E03- comprender la relacin entre los ndices de una lista y los valores nmericos de los dominios y las series

    En el caso hipottico de que quisiramos triangular la malla de pilares del ejercicio E03, tendramos que desfasar la lista de puntos de coronacin y dibujar una lnea entre los puntos base y los puntos de coronacin desfasados. Si dibujramos las diagonales resultantes, tendramos una estructura como la de la primera imagen de la derecha.

    shift list, cull pattern, cull index

    4. Dibujar los ejes de los pilares5. Eliminar las diagonales sobrantes(Los apartados anteriores y posterior corresponden al ejercicio EO3)

    4. Dibujar los ejes de los pilares

    E11

    Para deshacernos de la diagonal que atraviesa la planta, utilizaremos las herramientas de eliminacin de elementos de una lista: Cull. Utilizando, por ejemplo, Cull Nth (tambin podramos hacerlo, con otros valores, con Cull Index) tendremos que averiguar la relacin numrica que existe entre los parmetros de la estructura y la frecuencia con que se da esa diagonal que nos sobra. Dependiendo si hemos dibujado la malla de pilares con series o con dominios y rangos, la frecuencia de esa diagonal estar relacionada, respectivamente, con la cantidad de copias (C) de la serie que da lugar a los puntos de la malla de la estructura, o con el nmero de divisiones del dominio (N) ms una unidad.

    5. Eliminar las diagonales sobrantes

  • manual de grasshopper nivel IMiguel Vidal

    Guillermo Ramrez

    p016

    malla de pilares con patio

    01. objetivos

    02. conceptos clave

    03. procedimiento

    - elaborar un algoritmo sencillo, que consiste en eliminar los pilares del ejercicio E03 en un entorno de un radio determinado para fabricar un patio en la estructura - trabajar con sentencias condicionales: comparadores y valores booleanos

    Los datos que definen el patio son las distancias de un punto de origen al resto de puntos base de los pilares. Todos los puntos que estn en un entorno que determinemos alrededor de ese punto, debern eliminarse.

    La condicin que vamos a establecer para eliminar pilares de ese entorno es que la distancia entre el punto de origen sea mayor (Larger than) que un valor.

    booleanos, true, false, larger than, dispatch

    1. Datos de filtrado 2. Evaluacin esos datos3. Extraer valores booleanos4. Filtrado de los datos iniciales(Para terminar el ejercicio, dibujamos el patio con la cubierta)

    1. Datos de filtrado

    2. Evaluacin de los datos de filtrado

    E12

    La pregunta de cules de todas las distancias son mayores que el nmero del slider de entorno devuelve una lista de valores booleanos (verdadero y falso) de la misma longitud que la lista de distancias.

    3. Extraer valores booleanos

    Para quedarnos con los valores que corresponden con True (verdadero), utilizamos la herramienta Dispatch, que toma una lista L, la coteja con otra lista de valores booleanos y devuelve en A los temoes de L que coinciden con un valor True en P y en B, los que coinciden con False. La lista L que tomamos ser la de los ejes de los pilaresEl ltimo apartado es un ejercicio geomtrico que se sale ligeramente del objetivo principal del ejercicio. Lo hacemos simplemente para dejar dibujado adecuadamente el patio.

    4. Filtrado de los datos iniciales

  • geometraD

  • manual de grasshopper nivel IMiguel Vidal

    Guillermo Ramrez

    p018

    brjula

    01. objetivos

    02. conceptos clave

    03. procedimiento

    - definir geomtricamente puntos con coordenadas XYZ y polares- utilizar funciones de una variable para clculos matemticos- dibujar vectores a partir de dos puntos y visualizarlos- entender cmo se miden ngulos en Grasshopper

    Las coordenadas de los puntos XYZ son las coordenadas en el sistema de coordenadas universal. Las coordenadas para los puntos polares son: plano origen del punto (P), ngulo en radianes en ese plano (xy), ngulo en radianes en el plano normal (z) y distancia radial al origen (d). Utilizamos una funcin de una variable f(x) para pasar de grados a radianes

    Conectamos las salidas numricas de las coordenadas a las entradas correspondientes de los componentes de puntos. Utilizamos un punto XYZ como origen del dibujo y otro punto polar para definir el extremo del vector.

    function, f(x), point polar, vector display, angle

    1. Establecer las coordenadas de los puntos 2. Dibujo de los puntos3. Definir los vectores y visualizarlos4. Medir el ngulo entre esos vectores

    1. Establecer las coordenadas de los puntos

    2. Dibujo de los puntos

    E13

    Utilizamos el componente de vector dos puntos, entre el punto XYZ y el punto polar. Como los vectores son entidades geomtricas definidas por una longitud y una direccin, no tienen una visualizacin, as que utilizamos vector display para dibujar dicho vector V utilizando el origen como punto de ancla A.

    3. Fabricar vectores y visualizarlos

    Computamos el ngulo entre el vector anterior y un vector unitario en el eje X. Como resultado, obtendremos dos ngulos: el convexo (A) y el reflejo (B).

    4. Medir el ngulo entre esos vectores

  • manual de grasshopper nivel IMiguel Vidal

    Guillermo Ramrez

    p019

    vector solar

    01. objetivos

    02. conceptos clave

    03. procedimiento

    El objetivo es definir un vector solar en coordenadas polares y compararlo con el vector normal a una superficie. Colorearemos puntos sobre la superficie segn su exposicin a la radiacin solar.

    Con el componente Point Polar dibujamos un punto que gira en torno al Origen. Uniendo con Line el Origen y el punto polar, obtenemos la direccin de nuestro sencillo vector solar, con vector display podemos visualizarlo. Si tratamos a la lnea como si fuera un vector, Grasshopper no tiene problemas porque la convierte automticamente.

    Referenciamos con dos Curve (icono de borde hexagonal) dos curvas dibujadas en Rhino, y conectamos ambos a la entrada S de un componente Loft. Con Divide Surface dividimos la superficie en puntos en los cuales conocemos el vector normal (salida N del Divide Surface). Un Flatten en las salidas N y P del Divide Surface nos libra de las sublistas.

    point polar, loft, angle, divide surface, flatten, gradient, preview

    1. Definir un vector en coordenadas polares.2. Dibujar y dividir una superficie.3. Comparar vectores y asignar color.4. Visualizar.

    1. Definir un vector en coordenadas polares.

    2. Dibujar y dividir la superficie.

    E14

    Con un Angle comparamos los vectores normales (salida N del Divide Surface) con el vector solar (salida L de Line). A estos valores de ngulo les tenemos que asignar un color. Esto se consigue con Gradient. Con la paleta de Gradient definimos el espacio de color que vamos a hacer corresponder con los valores de ngulo, este espacio queda determinado entre los lmites L0 y L1. Un ngulo

    3. Comparar vectores y asignar color.

    El ltimo componente, Preview, sirve para colorear: le asigna color a geometra. Nuestra informacin de color sale del Gradient, y la geometra a colorear son todos los puntos que salen del flatten de la salida P de Surface Divide.

    de 0 radianes ser rojo, uno de Pi ser rojo tambin, y, en Pi/2, cuando los los vectores sean perpendiculares, la luz ser rasante y le asignaremos el color verde.

    4. Visualizar.

  • manual de grasshopper nivel IMiguel Vidal

    Guillermo Ramrez

    p020

    subdivisin y triangulacin de una superficie

    01. objetivos

    02. conceptos clave

    03. procedimiento

    El objetivo de este ejercicio es subdividir una superficie alabeada en porciones menores utilizando sus coordenadas locales U y V, y luego trazar las diagonales de cada cuadrado. Las sublistas nos ahorrarn mucho trabajo.

    Para dibujar una superficie alabeada, en Rhino dibujaremos dos curvas. Las referenciamos en un componente Curve (de icono hexagonal) y conectamos ambas a la entrada S de un componente Loft. Deben estar dibujadas en el mismo sentido ya que si una ha sido dibujada de izquierda a derecha y la otra al revs, aparecer un giro extrao en nuestra superficie.

    Como si de un domain2 se tratara, conectamos el Loft a la entrada de divide domain2. Grasshopper interpreta directamente que queremos trabajar sobre el dominio bidimensional de coordenadas locales de la superficie. Asignamos sliders a U y V. Conectamos la salida del divide domain2 a Isotrim (subsurface) que ahora s, divide la superficie con el patrn del domain2. Con Brep Components explotamos cada subsuperficie en sus vrtices, aristas y caras.

    loft, divide domain2, isotrim, list item, sublista

    1. Dibujar la superficie. 2. Dividir la superficie en partes.3. Seleccionar los vrtices de cada parte.4. Dibujar las diagonales.

    1. Dibujar la superficie.

    2. Dividir la superficie en partes.

    E15

    Con cuatro list item diferentes podemos seleccionar los vrtices 0, 1, 2 y 3 de cada subsuperficie. Como Isotrim ha hecho una sublista de cada cara, un list item que nos escoja el elemento 0, coger la misma esquina de todas las subsuperficies a la vez, ahorrndonos trabajo.

    3. Selecionar los vrtices de cada parte.

    Ya slo queda unir cada pareja opuesta de puntos con una linea para dibujar las diagonales. Como seguimos trabajando dentro de la estructura de sublistas, basta unir el punto 0 con el 2 para que Line nos dibuje las diagonales 0-2 de todas las caras. Repetir el proceso para las diagonales 1-3. Podemos aadir grosor a las barras si utilizamos un Pipe.

    4. Dibujar las diagonales

  • manual de grasshopper nivel IMiguel Vidal

    Guillermo Ramrez

    p021

    panelizacin de una superficie

    01. objetivos

    02. conceptos clave

    03. procedimiento

    En este ejercicio definimos una superficie a partir de una curva que se repite en vertical y aprendemos a replicar una geometra sobre ella.

    El primer paso es dibujar una curva en Rhino y almacenarla en un componente Curve en Grasshopper. Luego la copiaremos en vertical con Move. Move necesita un vector para funcionar as que conectamos a la entrada T de Move un Unit Z: un vector unitario. Conectamos una serie a la entrada F del vector para generar varios vectores verticales y as tener mltiples copias.de la curva.

    Conectando la lista de curvas a un Loft obtenemos la superficie que buscamos. Luego necesitamos dividir el domain2 del loft. La entrada U del divide domain2 tiene que ser el mismo valor que el slider que regula la C de la serie, menos uno, si queremos que las subdividiones en altura coincidan con la posicin de las curvas replicadas. Extraemos los dominios unidimensionales del dominio bidimensional con Domain2 Components puesto que ms tarde nos har falta.

    move, domain2 components, bounding box, surface morph.

    1. Repetir una curva N veces en Z2. Superficie a partir de las curvas y subdivisin.3. Surface Morph.

    1. Repetir una Curva N veces en Z.

    2. Superficie a partir de las curvas y subdivisin.

    E16

    Surface Morph toma una geometra contenida en una caja de referencia y la replica sobre una superficie deformndola de acuerdo a las coordenadas locales de la superficie. Dibujamos un objeto a replicar en Rhino, y lo almacenamos en un componente Geometry de icono hexagonal. En este caso, el objeto dibujado ser una lama inclinada. Aplicamos Bounding Box a la lama para generar la caja de referencia.

    3. Surface Morph

    Surface Morph es un componente con mtiples entradas: en la G debemos enchufar el cable que lleva la geometra (la lama) a replicar, en la R la caja de referencia de Bounding Box que contiene la lama, en la S la superficie sobre la cual vamos a replicar la lama, en la U y V, los dominios que vienen del Domain2 Components, y por ltimo, la W, en la que conectaremos un Slider que regular la altura de las rplicas sobre la superficie.

  • modelado paramtricoE

  • manual de grasshopper nivel IMiguel Vidal

    Guillermo Ramrez

    p023

    Monumento a los judos de Europa asesinados, Peter Eisenman

    01. objetivos

    02. conceptos clave

    04. procedimiento

    03. programa

    - parametrizar un diseo de un proyecto real- aplicar la nocin de dominio a medidas concretas- subdividir una regin del espacio con planos- tomar medidas pseudoaleatorias para elaborar prototipos de diseos

    1.1. Extraer los dominios de cada una de las direcciones: dibujamos el slido capaz que contiene a la parcela (bounding box), que ser una caja plana, y extraemos sus esquinas con (box corners). Los dominios de la parcela, tanto en el eje X como en Y son las coordenadas X e Y de dichas esquinas.

    domain, plane, intersection, containment, duplicate data, jitter

    1. Dibujar los puntos de origen de las losas 2. Dibujar las losas con las medidas de los datos de partida en esos puntos

    Datos de partida:- parcela: dibujamos en Rhino un polgono similar a la planta del solar- anchura de losas: 2.38 m.- fondo de losas: 0.95 m.- nmero de losas: 371

    El Monumento a los judos de Europa asesinados (...) es un monumento que recuerda en Berln a los judos vctimas del holocausto.Fue diseado por el arquitecto Peter Eisenman y por la ingeniera Buro Happold. Se trata de un campo inclinado de 19000 metros cuadrados cubierto por una rejilla cuadriculada en la que estn situadas 2711 estelas o losas de hormign. Estas losas tienen unas dimensiones de 2.38m de largo y 0.95m de ancho, y varan en cuanto a su altura, desde los 0.2 m a los 4.8m. (...)Fuente: www.es.wikipedia.org

    1. Dibujar los puntos de origen de las losas

    NOTA: En este ejercicio, se han reducido las medidas reales de superficie total y nmero de losas para dar lugar a un archivo menos pesado.

    E17

    Monumento a los judios de Europa asesinados, vista de satlite. Fuente: Google Earth.

    Monumento a los judios de Europa asesinados, vista general. Fuente: www.wikipedia.org.

  • manual de grasshopper nivel IMiguel Vidal

    Guillermo Ramrez

    p024

    1.2. Dibujar los planos de corte para cada direccin: en primer lugar, necesitamos los puntos de origen de esos planos, que estarn contenidos en los bordes del slido que encierra a la parcela. Tomamos los dominios de cada eje y los dividimos en nmeros reales con un rango. El nmero de subdivisiones del del dominio (la N del rango) puede ser la longitud lineal del slido capaz en cada eje (la resta numrica de las coordenadas de los bordes del dominio para cada direccin) entre la medida de la losa ms un paso. En segundo lugar, una vez obtenidos los puntos, slo tenemos que tomar los vectores unitarios adecuados para dibujar los planos en cada direccin: para los planos en la direccin X, los vectores sern los unitarios en los ejes Y y Z; y para los planos en la direccin Y, los vectores sern los unitarios en los ejes X y Z. El ltimo plano para fabricar las intersecciones que darn lugar a los puntos ser el plano universal XY.

    1.3 . Puntos de losas: una vez obtenidos los planos, tan slo nos queda fabricar las intersecciones con Intersect plane|plane|plane (3PX). Para quedarnos solamente con los puntos interiores de la parcela, utilizamos la herramienta Point Containment, que comprueba si una lista de puntos (P) estn o no en el interior de una curva cerrada C y devuelve en R la relacin entre el punto y la curva (0 si est sobre la curva, 1 si est dentro de la curva y 2 si est fuera de la curva de regin) y en P la proyeccin de dicha lista de puntos sobre el plano que contiene a la curva plana cerrada. Slo nos queda quedarnos con los puntos coincidentes con los valores 2 de la salida R de Point Containment con una igualdad y Dispatch. Por ltimo, nos quedaremos con los valores de la salida A de Dispatch.

    2.1. Rectngulo base de losas: Dibujamos una lista de rectngulos, tomando como puntos de origen P los puntos de origen fabricados en el apartado anterior y dimensiones X e Y, el ancho y fondo de la losa de los datos de partida respectivamente; la entrada de R corresponde al radio de redondeo de las esquinas, en este caso, es igual a cero (el valor por defecto).2.2. Nmero exacto de losas: con Random reduce eliminamos temes de la lista L de forma pseudoaleatoria. Eliminaremos tantos elementos R hasta llegar a la contidad de losas de los datos de partida

    2. Dibujar las losas con las medidas de los datos de partida

  • manual de grasshopper nivel IMiguel Vidal

    Guillermo Ramrez

    p025

    2.3 Extrusin de los rectngulos base de las losas : Para reproducir el paisaje del monumento, tomamos unas alturas de losas prefijadas, como medidas de unos prefabricados, que distribuiremos de un modo aparentemente aleatorio, utilizando la herramienta jitter. Necesitamos tantos valores de extrusincomo losas, para ello repetimos la lista de alturas de losas con duplicate data, que repite los valores de una lista D N veces. Jitter desordena los elementos de una lista, modificando sus ndices pseudoaleatoriamente.Para terminar, tapamos la extrusin con cap holes.

  • manual de grasshopper nivel IMiguel Vidal

    Guillermo Ramrez

    p026

    estructura de la Mediateca de Sendai, Toyo ItoE1801. objetivos

    02. conceptos clave

    03. procedimiento

    El objetivo de este ejercicio es realizar un repaso de los conceptos generales aprendidos en todos los ejercicios anteriores. Dibujaremos un slo pilar triangulado de la mediateca de Sendai, de Toyo Ito. Comenzaremos con un punto, luego un crculo, luego una coleccin de crculos transformados (copiados, escalados, rotados) y finalmente resolveremos su triangulacin.

    El primer paso es dibujar el centro desde el cual se va a referenciar toda la definicin: ser un punto dibujado en Rhino y almacenado en un componente Point de icono hexagonal. Conectamos el punto a la entrada P de un Circle, con radio gobernado por un slider que llamaremos Radio Maestro. El siguiente paso es replicar el crculo en altura. Lo haremos como hicimos en E16, con una serie y un vector Unit Z conectados a un Move. Le daremos el nombre H al slider que se conecta con la N de la serie, y el nombre Cantidad al slider que se conecta con la C de la serie. Este ltimo slider es muy importante y lo vamos a conectar a muchas partes de nuestra definicin posteriormente.

    move, scale, rotate, center, random, jitter.

    1. Dibujar un crculo y replicarlo en altura.2. Desplazar aleatoriamente en el plano XY.3. Escalar aleatoriamente respecto de cada centro.4. Rotar cada anillo..5. Dibujar la superficie y dividirla.6. Explotar las subsuperficies y seleccionar sus vrtices.7. Triangular y dar grosor a las barras.

    1. Dibujar un crculo y replicarlo en altura.

    Ahora definiremos otro vector de traslacin para un nuevo Move, pero en este caso con Vector XYZ. Generaremos valores aleatorios con Random para la X, comprendidos entre -1.1 y 1.1, y los barajaremos con Jitter para introducirlos en la Y. Este uso combinado de Random y Jitter nos evita tener que hacer dos

    2. Desplazar aleatoriamente en el plano XY.

  • manual de grasshopper nivel IMiguel Vidal

    Guillermo Ramrez

    p027

    estructura de la Mediateca de Sendai, Toyo ItoE18

    colecciones independientes de valores aleatorios. Simplemente generamos una coleccin y la barajamos. Es importante que haya nmeros aleatorios positivos y negativos para permitir desplazamiento en cualquier direccin del plano XY. Los nmeros aleatorios deben ser tantos como anillos haya. Esto se logra conectando el slider inicial Cantidad a la N del Random.

    Debemos agrandar y encoger cada crculo de manera diferente y cada uno desde su propio centro. Con un componente Center conectado a nuestra ltima coleccin de crculos, hallamos los centros de cada uno de ellos. Estos centros conectarn con la entrada C de un componente Scale. Los factores de escala F sern nmeros aleatorios (generados como en el paso anterior) comprendidos entre e. 0.7 y el 1.2 aproximadamente. Como en el paso anterior, debe haber tantos valores aleatorios como anillos haya. Esto se logra conectando el slider inicial Cantidad a la N del Random.

    3. Escalar aleatoriamente respecto de cada centro.

    Este paso es el ms complicado de comprender. Es ms fcil dibujar hasta el paso 5 y luego pararse y retroceder. Nuestra estrategia es generar una piel con un loft, luego subdividirla y triangularla como hicimos en E15, pero para que los tringulos de la subdivisin sean issceles y no rectngulos debemos retorcer los anillos. Retorcer significa rotar el primer anillo un ngulo , el segundo un ngulo 2 y as sucesivamente. Sacamos un Slider que llamamos Divs (divisiones). Este slider cobrar mayor sentido en el paso 5. Pasamos el valor de Divs por una funcin que divide Pi/Divs. Este resultado es el incremento de ngulo de rotacin que resulta de un anillo al siguiente y que debemos conectar a la entrada N de una Serie. La C de la serie es el slider inicial Cantidad. La serie va conectada a la A de Rotate. Si el anillo se define como un polgono de cantidad de lados igual a Divs, entonces y slo entonces tendremos una triangulacin en la que los vrtices de los anillos poligonales superiores caen sobre los puntos medios de los anillos poligonales inferiores (uf!!). Si no nos queremos creer esto, podemos probar valores de ngulo cualesquiera para la A para entender cmo se comporta la estructura.

    4. Rotar cada anillo.

  • manual de grasshopper nivel IMiguel Vidal

    Guillermo Ramrez

    p028

    estructura de la Mediateca de Sendai, Toyo ItoE18

    En el paso 5 empezaremos a ver los efectos del retorcimiento que planeamos en el punto 4. Este paso es anlogo al E15. Enchufamos los anillos rotados al Loft, y marcamos dentro de Loft Options loft la opcin UNIFORM. Esto har que el loft se ajuste con precisin a los anillos. Dividimos el loft con Divide Domain2, cuya U es el valor de Cantidad - 1, y cuya V viene del slider Divs. Aqu observamos que el slider Divs regula la cantidad de lados del anillo. Con Isotrim aplicamos el patrn de corte del Divide Domain2 a nuestra superficie generando las subsuperficies.

    En el paso 5 continuamos con lo aprendido en E15. La tcnica es idntica. Explotamos las subsuperficies con Brep Components y seleccionamos los vrtices con List Item haciendo uso de la estructura de sublistas para ahorrarnos trabajo. Con tres list item que seleccionen el vrtice 1, 2 y 3 de cada subsuperficie debera valernos.

    5. Dibujar la superficie y dividirla.

    6. Explotar las subsuperficies y seleccionar los vrtices.

    Este paso es muy sencillo. Con tres Line diferentes, unimos la salida del List Item1 con el 3, la del 1 con el 2, y la del 2 con el 3. Luego le damos grosor a las barras con un Pipe como hicimos en E15.

    7. Triangular y dar grosor a las barras.