Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
PARAMTRICO
EXPLCITO
INSTITUTO ARNAIZ
DISEO PARAMTRICO EXPLCITO CON GRASSHOPPER
ADOLFO NADAL SERRANO MAS. ARCHITECT - ARCHI [O] LOGICS
Los problemas de diseo no pueden ser resueltos sin la ayuda de un computador, siendo la
maquina un complemento y no un substituto del talento creativo, la computadora mientras no pueda inventar, puede explorar relaciones muy rpida y sistemticamente de acuerdo a reglas preestablecidas. El computador funciona como una extensin natural de la habilidad analtica del hombre.
Chermayeff, Community and Privacy (1963:166)
1. OBJETIVOS DEL CURSO
Los objetivos del curso son, por un lado, conseguir la familiaridad del alumno con sistemas y software de modelado
tridimensional, y, por otro, la introduccin de metodologas innovadoras de diseo por medio de plataformas integradas diseo
paramtrico explcito.
El CAD no es una tecnologa esttica, y que, una vez aplicada, proporciona todas sus posibilidades a los equipos de
diseo de forma definitiva. Sus capacidades van evolucionando con el tiempo, al mismo ritmo que los equipos se hacen ms
potentes y se abaratan, permitiendo que los desarrolladores de aplicaciones incorporen nuevas caractersticas y funcionalidades a sus productos.
De este modo, estos continuos avances permiten conceptualizar mejor los diseos, estimular y predecir el comportamiento de nuevas soluciones, realizar estimaciones de costes y compartir diseos con clientes y empresas del sector. Adems,
es posible hacer numerosas simulaciones virtuales de instancias de diseo desde fases muy iniciales de proyecto. En definitiva,
hemos de responder de manera efectiva y eficiente a las tendencias del sector mediante un pensamiento creativo:
- A travs de la simplificacin de las tareas no crticas, tales como las tradicionales de diseo y dibujo (muros, ventanas,
pilares, escaleras,...).
- El diseo en tres dimensiones debe ser una obviedad. Esto implica obtener grandes mejoras de productividad y calidad a travs del diseo espacial.
- La automatizacin de procesos generativos de forma.
- La posibilidad de testar numerosas instancias formales respondiendo automticamente a parmetros cambiantes.
2. PLANIFICACIN Y MDULOS
2.1. Mdulo bsico
El mdulo bsico trata de conseguir el dominio bsico de la herramienta en dibujo 3D, diseo tridimensional, y la
creacin de listados de propiedades de objetos y elementos constructivos, as como creacicin de listados.
[ 2 ]
INSTITUTO ARNAIZ
DISEO PARAMTRICO EXPLCITO CON GRASSHOPPER
ADOLFO NADAL SERRANO MAS. ARCHITECT - ARCHI [O] LOGICS
[ 3 ]
INSTITUTO ARNAIZ
DISEO PARAMTRICO EXPLCITO CON GRASSHOPPER
ADOLFO NADAL SERRANO MAS. ARCHITECT - ARCHI [O] LOGICS
INTERFAZ DE GRASSHOPPER
[ 4 ]
[ 5 ]
INSTITUTO ARNAIZ
DISEO PARAMTRICO EXPLCITO CON GRASSHOPPER
ADOLFO NADAL SERRANO MAS. ARCHITECT - ARCHI [O] LOGICS
I. INTERFAZ DE GRASSHOPPER
1. La pantalla de Grasshopper
Grasshopper divide la pantalla en reas que proporcionan informacin o solicitan la introduccin de datos, contando
con numerosas ventanas interactivas y contextuales que cambian en funcin del elemento seleccionado o el comando en
ejecucin.
Barra de men: Permite acceder a los comandos, las opciones y la ayuda.
Contenedores y widgets: en funcin del tipo seleccionado (Params, Maths, Sets, Vector, Curve, Surface, Mesh, Intersect, Transform, PanelingTools), muestra las opciones de contenedores (comandos) displonibles agrupadas por subtipos.
rea grfica: Muestra la definicin actual de Grasshopper asociada al modelo, as como otras ayudas al mismo (brjula). Asimismo se muetra el tipo genrico de previsualizacin de objetos (ninguno, wireframe, shaded)
Barra de estado: Muestra el autoguardado y la versin de Grasshopper.
Ttulo de definicin
Pestaas de men
Pestaas tipo de
contendores
Contenedores y
widgets
Men general
guardado/vista
Modo de previsualizacin
Markov widget
Brjula
Versin
2. Barras de mens
Las barras se clasifican segn tipos, que agrupan funciones (contenedores) de uso semejante. Dichos contenedores, a
su vez, estn clasificados segn subcategoras, lo que ayuda a su localizacin de manera ms sencilla.
Esta barra muestra los diferentes comandos agrupados en pestaas de la siguiente manera:
- Params, que contiene los siguientes subgrupos, de izquierda a derecha:
Geometry: contenedores para asociar o referenciar puntos, vectores, y otra geometra sencilla desde el modelo.
Primitive: booleanas, nmeros, strings y otro tipo de datos primitivos
Input: sliders, panels (informativos)
Util: utilidades extra como grficas y otras.
[ 6 ]
INSTITUTO ARNAIZ
DISEO PARAMTRICO EXPLCITO CON GRASSHOPPER
ADOLFO NADAL SERRANO MAS. ARCHITECT - ARCHI [O] LOGICS
[Fig 2. Subgrupo Geometry dentro del tipo Params mostrando todas las posibles funciones (contenedores)]
- Sets: referente a elementos de informacin y estructuras de datos.
List: gestin de listas de informacin, fundamental
Sequence: especialmente importantes las referentes a eliminacin de datos (Cull)
Sets
Strings
Tree
- Vector:
Color
Field
Grid
Plane: importante para la definicin de figuras en planos de trabajo diferentes al z=0
Point: operaciones con puntos
Vector: operaciones con vectores
- Curve:
Analysis
Division
Primitive: creacin de todo tipo de curvas primitivas, desdelneas hasta crculos y arcos
Spline
Util: equivalente a las herramientas de edicin de curvas en rhino
[ 7 ]
INSTITUTO ARNAIZ
DISEO PARAMTRICO EXPLCITO CON GRASSHOPPER
ADOLFO NADAL SERRANO MAS. ARCHITECT - ARCHI [O] LOGICS
- Surface:
Analysis: rea, volumen, curvatura...
Freeform: creacin de superficies de forma libre
Primitive: cilindros, conos, y otros
Util:
- Mesh:
Analysis
Primitive
Triangulation
Util.
- Intersect:
Mathematical
Physical
Region (BREPs, Boundary Representations)
Shape
- Transform
Afine
Euclidean
Morph
Util
- Pestaas agragadas por plugins o extensiones: Paneling Tools y otros. En el caso de Paneling Tools podrs encontrar
los siguientes grupos:
Curve
Grid
Grid Attractors
Grid utility
Panel 2D
Panel 3D
Panel Utility
Utility
II. NAVEGANDO Y WORKFLOW DE TRABAJO DE GRASSHOPPER
El workflow de Grasshopper est inevitablemente unido a Rhinoceros, y a los objetos de ste. De esta manera, una
definicin de Grasshopper siempre estar asociada a un objeto o grupo de objetos de rhino, sin los cuales no tendra sentido. En la mayora de los casos, querrs comenzar modelando algo muy sencillo en rhinoceros para posteriormente explorar
posibilidades de diseo por medio de Grasshopper.
Esto permite explorar en poco tiempo numerosas variaciones de diseo a partir de unas condiciones iniciales determinadas. Por esta razn, cada una de las herramientas tiene una serie de opciones que Grasshopper muestra de manera
contextual, es decir, dependiente del tipo de objeto o componente que pretendas usar.
1. Navegacin en Grasshopper
La navegacin en Grasshopper es muy sencilla e intuitiva. Puedes hacer zoom/pan con el botn central del ratn y el
botn derecho, respectivamente.
- Barra espaciadora: muestra men contextual
- Botn izquierdo: seleccin
[ 8 ]
INSTITUTO ARNAIZ
DISEO PARAMTRICO EXPLCITO CON GRASSHOPPER
ADOLFO NADAL SERRANO MAS. ARCHITECT - ARCHI [O] LOGICS
- Alt+Ctrl + Botn Izq: muestra la localizacin de un contenedor dentro de las barras de mens
- Doble click: men contextual de bsqueda de contenedores
2. Workflow
De manera genrica, abriremos las definiciones de Grasshopper mediante el comando _grasshopper en rhinoceros.
Asegrate de tener la ltima versin del plugin instalada en tu ordenador. Crearemos entonces una serie de objetos en
rhinoceros que asociaremos explcitamente en grasshopper para su definicin y modificacin. A partir de dichos objetos
podremos modificar su geometra, o crear geometra nueva de manera completamente interactiva.
III. INICIACIN AL WORKFLOW DE GRASSHOPPER: COMPONENTES Y ASOCIACIN DE GEOMETRA
Abre el archivo del tutorial en Rhino (si ests usando Grasshopper, es razonable pensar que eres un usuario avanzado
de Rhino, por lo que no se explicar aqu en ningn caso ninguna metodologa referente a Rhino). Encontrars tres lneas. Estas lneas son rectngulos redondeados en sus esquinas de diferentes tamaos y a diferentes alturas. La razn de los mismos
es crear un contexto a partir del cual modelar un estadio de ftbol absolutamente paramtrico.
Abre ahora Grasshopper (es muy recomendable disponer de dos monitores simultneamente para poder visualizar las
modificaciones en el modelo provocadas en Grasshopper) y el archivo del tutorial.
1. Abrir y preparar el archivo
Abre el archivo en men File>Open Document o directamente en el icono situado en la esquina superior izquierda del
Canvas. Una vez que lo hayas abierto, deberas ver una serie de pilas o contenedores interconectados por lneas. Los contenedores son funciones y las conexiones muestran las relaciones entre ellos.
Contenedor asociado
a geometra
Contenedor tipo
funcin
Nombre de grupo
Conexin 1
Conexin 2
Slider
rea de grupo
[Fig 3. Interfaz de Grasshopper mostrando componentes]
2. Tipos y estructura de componentes
En principio, hay varios tipos bsicos de contenedores en Grasshopper
- Componentes asociados a geometra bsica del modelo (geometry o primitive)
- Componentes tipo funcin, con input/s) y output(s) que no necesariamente han de coincidir en nmero (de alguno
de los tipos y subtipos mencionados anteriormente).
- Panels: Notas o displays de informacin
- Sliders: controlan dinmicamente valores numricos
[ 9 ]
INSTITUTO ARNAIZ
DISEO PARAMTRICO EXPLCITO CON GRASSHOPPER
ADOLFO NADAL SERRANO MAS. ARCHITECT - ARCHI [O] LOGICS
Por la simplicidad de los componentes, nos centraremos bsicamente en los comportamientos bsicos de los mismos:
a. Display de informacin
Los componentes albergan informacin de diferentes tipos, bien geomtrica, numrica, alfabtica o de otra ndole. En
el caso de contener geometra, sta se previsualiza de diferentes modos en la ventana de rhino, en funcin de si es geometra
propia de Rhino o creada dentro del entorno de Grasshopper. As, los puntos se representan como cruces para diferenciarlos
de los puntos de Rhino.
La geometra en rojo es geometra creada en Grasshopper pero no activa (es decir, que el componente que la ha creado no est seleccionado en ese momento)
La geometra en color verde es geometra seleccionada
La geometra que se muestra en azul es aqulla que est siendo seleccionada actualmente por el usuario.
Geometra inicial
Geometra final
Rhino
Grasshopper
Puntos
Curvas
Puntos
seleccionados
b. Edicin
Todos los componentes muestran un men de edicin contextual si pulsas sobre ellos con el botn derecho.
Sobre los sliders, sto te permitir editar el tipo de nmero que contiene, as como sus valores mximos y mnimos.
Sobre los paneles, te permitir controlar qu y cmo se muestra la informacin, as como el color de los mismos
Sobre las funciones, adems de los genricos ya explicados, podrs controlar los distintos inputs y outputs de manera
directa. Para conectar componentes, sencillamente arrastra el ratn desde el punto blanco del output de uno al input correspondiente del siguiente. Por favor, s consciente de la consistencia de informacin (es decir, no unas una curva a un lugar
donde se supone que debe haber un texto).
Sobre los componentes de asociacin de geometra, podrs seleccionar directamente si quieres relacionar el componente a uno o varios elementos del modelo.
En funcin del estado de los componentes, podrs encontrar alguna de las siguientes situaciones:
Color negro: parmetro con contenido (es decir, con referencia activa a geometra de modelo). Marcado con la letra A
en la figura 5.
Color naranja: parmetro correcto que precisa de una referencia de geometra o de datos. Letras B y E. Es posible que
dicho color implique la presencia de Avisos o Warnings. stos indican posibles problemas con el componente o los
datos, pero funcionan a pesar de ello. Esto es, los avisos no tienen que ser corregidos necesariamente.
Color verde: un componente seleccionado o activo (la geometra en la ventana de rhino tambin se mostrar verde).
Letra C.
Color gris: componente normal y en funcionamiento. Letra D.
Color rojo: un componente con errores (posiblemente input inconsistente). Letra F.
Conexin entre componentes. Letra G. Las conexiones pueden tener varios tipos de displays en funcin del tipo de
datos que contengan. As, sern dobles para listas de datos.
[ 10 ]
INSTITUTO ARNAIZ
DISEO PARAMTRICO EXPLCITO CON GRASSHOPPER
ADOLFO NADAL SERRANO MAS. ARCHITECT - ARCHI [O] LOGICS
[Fig 5. Casos de componentes en funcin de su estado. Fuente: Grasshopper Premier 2nd edition, LIFT Architects]
Nombre
Input
Output
Conexin in
Conexin out
Conexin in
Conexin out
Conexin in
Conexin out
Procesamiento de datos
Nueva conexin
c. Gestin de input y output
La conexin de componentes se realiza mediante dragging o arrastre del puntero del ratn entre los diferentes componentes. Para ello, sita el cursor sobre el semicrculo blanco correspondiente a la salida de un componente y arrastralo hasta la entrada correspondiente del siguiente componente. Vers que se crea una previsualizacin con una flecha que indica
qu inputs/outputs has relacionado.
Puedes aadir mltiples entradas manteniendo pulsado el botn shift.
Para eliminar una conexin, sencillamente pulsa el botn control y selecciona qu conexin quieres eliminar. Tambin
puedes pulsar sobre dicha conexin con el botn derecho y seleccionar la opcin correspondiente.
d. Edicin avanzada mediante zoom-in
Algunos componentes muestran controles avanzados. Para acceder a ellos, haz zoom hasta que aparezcan. Algunos de
ellos pueden incluir:
Modificacin del nmero de inputs y outputs.
Alineacin de texto y otras configuraciones de visualizacin
[ 11 ]
INSTITUTO ARNAIZ
DISEO PARAMTRICO EXPLCITO CON GRASSHOPPER
ADOLFO NADAL SERRANO MAS. ARCHITECT - ARCHI [O] LOGICS
[Fig 7. Men contextual habitual. Fuente: Grasshopper Premier 2nd edition, LIFT Architects]
3. Receptores inalmbricos
Hasta Grasshopper 0.0.6. se tena tambin la capacidad de transmitir informacin inalmbrica mediante el uso de receptores, que podan encontrarse en la subcategora especial dentro de la categora/etiqueta de Parmetros. De este modo,
se realizaba la conexin normalmente para despus ver cmo desapareca automticamente. Esto ocurra porque los receptores mostraban la conexin nicamente cuando estaban seleccionados, si bien dicha configuracin por defecto poda
cambiarse a always o never. Como cualquier otro componenete, se poda conectar el receptor a tantos otros inputs como
necesites.
En versiones ms recientes de Grasshopper, los receptores han desaparecido para ser adaptados (absorbidos, realmente) en el modo de visualizacion de las conexiones. De esta manera, en vez de usar un emisor, puedes configurar la visualizacin de la conexin de un determinado input para que no muestre un cable, sino unas ondas que representan la conexin
inalmbrica a distancia. Pulsa el botn derecho sobre el componente y selecciona el tipo de visualizacin Wire Display, tal y
como puedes ver en la figura 8.
[ 12 ]
INSTITUTO ARNAIZ
DISEO PARAMTRICO EXPLCITO CON GRASSHOPPER
ADOLFO NADAL SERRANO MAS. ARCHITECT - ARCHI [O] LOGICS
[ 13 ]
INSTITUTO ARNAIZ
DISEO PARAMTRICO EXPLCITO CON GRASSHOPPER
ADOLFO NADAL SERRANO MAS. ARCHITECT - ARCHI [O] LOGICS
[ 14 ]
[ 15 ]
INSTITUTO ARNAIZ
DISEO PARAMTRICO EXPLCITO CON GRASSHOPPER
ADOLFO NADAL SERRANO MAS. ARCHITECT - ARCHI [O] LOGICS
2. Punto de partida: curvas base en rhinoceros
Dibuja tres rectngulos con vrtices redondeados en Rhino. Dichos rectngulos sern la base de nuestro edificio y se
corresponden vagamente con los permetros interiores del gradero de un estadio. Asimismo, la curva inferior se usar ms
adelante para definir el tamao del campo y la superior para la geometra de la cubierta. Aunque en la figura 1 se han incluido
las dimensiones, stas son relativamente irrelevantes, dado el carcter paramtrico que el modelo ir adquiriendo.
Abre ahora Grasshopper desde la ventana de Rhino mediante el commando _Grasshopper. Vers que aparece el
plug-in con la ventana vaca. Ya que lo primero que vamos a hacer es asociar geometra existente en el modelo a la definicin
de Grasshopper, necesitamos unos contenedores (en forma de componentes) que puedan albergar dicha informacin. Ve a
Params>Geometry y selecciona Crv. Haz click sobre cualquier punto del lienzo para situar el componente vaco o arrastra el
icono.
Una vez hayas esto tendrs el componente en el lienzo, y debers asociar geometra al mismo. Para hacer esto, pulsa
con el botn derecho sobre el componente y selecciona la opcin Set One Curve. A continuacin selecciona la primera de
las curvas. Nombra los componentes de manera clara y concisa para entender perfectamente el contenido de las mismas.
Puedes usar, por ejemplo, CrvDown, CrvMid y CrvUp para definir las curvas inferior, media y superior, respectivamente.
Estas curvas van a servir para crear los graderos y la cubierta.
[ 16 ]
INSTITUTO ARNAIZ
DISEO PARAMTRICO EXPLCITO CON GRASSHOPPER
ADOLFO NADAL SERRANO MAS. ARCHITECT - ARCHI [O] LOGICS
3. Crear la superficie del campo a partir de la curva inferior
Para crear la superficie del campo de juego vamos a utilizar la herramienta offset, que crea curvas desplazadas desde
la original a una distancia determinada. Tomaremos como base la curva inferior CrvDown y haremos un offset hacia dentro
(con distancia negativa, al tener como partida una curva cerrada).
Cuando tengamos la nueva curva, podremos crear las superficies correspondientes al anillo exterior y al campo, de dos
maneras diferentes, que se describen en los apartados b. y c.
a. Crear las curvas por desplazamiento:
Ve a la pestaa de curvas, selecciona utilidades y dentro de ellas, offset: curves>util>offset. Como hemos dicho, para
definir un desplazamiento de curva offset, se necesitan los siguientes inputs:
- Curva base para desplazar (Base Curve, C): en este caso CrvDown
- Distancia de desplazamiento (Offset Distance, D): una distancia que puede ser variable, en funcin de nuestros intereses. En este sentido podemos parametrizar ya la curva desplazada.
- Plano base de desplazamiento (Base Plane, P): el plano sobre el cual se realiza el desplazamiento, por defecto el World XYZ
- Tipo de esquina (Corner Type, C): con diferentes opciones, (0) none, (1) sharp, (2) round, (3) smooth, (4) chamfer.
Slider
Panel
Base Plane
Offset
distance
Corner
type
Base Curve
Result
Curve
Para nuestro caso, puedes crear dos sliders, en Params>Input>Slider, y cambiar, mediante la edicin de propiedades, su
nombre y tipo hasta que concuerden con lo que necesitamos. Ajusta el Slider Offset Dist hasta que pueda contener nmeros
negativos menores que 1 y Offset Type a otro que contenga nmeros naturales de 0 a 4. Conecta los sliders correspondientes
al componente y la curva a su input. Deberas tener un esquema parecido al de la figura 11.
[ 17 ]
INSTITUTO ARNAIZ
DISEO PARAMTRICO EXPLCITO CON GRASSHOPPER
ADOLFO NADAL SERRANO MAS. ARCHITECT - ARCHI [O] LOGICS
Base Curves
Timeliner
Result
Surface(s)
b. Superficies mediante curvas planas
Una vez hayas obtenido la curva desplazada, procedemos a crear una superficie mediante curvas planas. La idea es
crear una superficie entre ambas, de manera que sirva como base a una eventual pista de atletismo perimetral o semejante.
Para crear una superficie a partir de curvas planas ve a Surface>Freeform>Planar Srf (Fig. 12). Para crear una superficie plana
necesitars los siguientes inputs:
- Set o conjunto de curvas de borde.
S, eso es todo. As que conecta las dos curvas (CrvDown y su desplazamiento) al componente para obtener la superficie resultante del anillo. Es posible que, si las dos curvas no estn en el mismo plano exactamente, el programa cree dos
superficies. Si es el caso, lee el siguiente apartado.
c. Superficies mediante booleana o interseccin de BREPs
En el caso que hayas obtenido dos superficies independientes, puedes sustraer la interior de la exterior para obtener la
superficie del anillo, mediante una operacin muy semejante a una diferencia booleana. Para ello, siempre que hayas obtenido dos superficies del componente planar, has de separar los resultados e intersectarlos, para despus elegir la superficie
interseccin de las dos.
[ 18 ]
INSTITUTO ARNAIZ
DISEO PARAMTRICO EXPLCITO CON GRASSHOPPER
ADOLFO NADAL SERRANO MAS. ARCHITECT - ARCHI [O] LOGICS
Crea en el lienzo una definicin parecida a la que se muestra en la figura 14. En este caso lo que vamos a hacer es crear
unas superficies planas, recogerlas en la lista del output y aplanar esta lista (ms informacin sobre listas en el apartado dedicado al respecto), para luego separar los elementos de la misma en dos elementos, los cuales van a sustraerse para obtener
la interseccin.
- Crea las superficies planas
- Ve a Sets>Tree>Flatten Tree (o haz doble click sobre el lienzo y busca el componente en el men emergente)
- Asocia el output del componente de las superficies planas al input del componente flatten, de manera que
la lista, con entradas del tipo {0}-0 y {0;0}-0 pase a {0}-0,1. Para aclarar cmo funcionan las listas dedicaremos
posteriormente un captulo al respecto. La gestin de datos de Grasshopper es una de las caractersticas ms
importantes del uso del mismo, por lo que es precisa una aclaracin bsica al respecto.
- Una vez hayas aplanado la lista que contiene las superficies, podemos separar sus elementos en sendos
componentes. Para ello, seleccionaremos cada uno de ellos independientemente, gracias al componente
Item, que selecciona un elemento de la lista a partir de su ndice (es decir, a partir del identificador del mismo). Crea, para este caso concreto, dos componentes iguales, a los que vamos a alimentar con ndices diferentes; en funcin de estos ndices obtendremos elementos diferentes (en este caso una u otra superficie).
- Una vez separados los componentes, podemos crear la diferencia entre ellos. Sita el componente de diferencia de Breps, en Intersect>Shape>Solid Difference. Asocia ambas superficies en el componente (uno en
cada input) para obtener el resultado deseado.
CREATE SURFACE DIFERENCE
List item (select)
List item (select)
Sliders
Offset
Planar Srf
List
Index
List
Flatten (list)
Difference (Surfaces)
Crv Down
[Fig 14. Definicin]
4. Creacin bsica de los graderos y loft de superficies
Ya hemos creado las superficies del campo. A continuacin crearemos los graderos del estadio, para lo cual usaremos
la curva media CrvMed y la superior CrvUp.
Por un lado, crearemos una serie de divisiones en dichas curvas, y lneas que nos permitar previsualizar la posicin de
los asientos en el gradera, de modo muy esquemtico. Asimismo, podremos contar el nmero de asientos, que ir variando
segn creemos ms o menos subdivisiones en las curvas. Por otro lado, podemos crear las superficies de los graderos, para
obtener una visin tridimensional ms clara del conjunto. El comando Loft toma como inputs un conjunto de curvas y una
serie de opciones (que se conectan, como un componente aislado, al componente principal del Loft).
[ 19 ]
INSTITUTO ARNAIZ
DISEO PARAMTRICO EXPLCITO CON GRASSHOPPER
ADOLFO NADAL SERRANO MAS. ARCHITECT - ARCHI [O] LOGICS
a. Creando las subdivisiones de los asientos en el gradero
En primer lugar, divide las curvas base. Para ello selecciona el comando Curve>Division>Divide Curve. El componente
necesita los siguientes inputs:
- Curva a dividir
- Nmero de segmentos
- Dividir en los kinks o esquinas.
En este caso, asocia las curvas inferior y media a componentes de divisin independientes, de manera que resulten en
listas independientes de puntos. Crea un slider con nmeros naturales que puedes conectar a ambos inputs de los componentes de divisin, de manera que nos aseguraremos dividir las curvas en el mismo nmero de segmentos. Una vez hayamos
dividido las curvas, podremos crear lneas entre los puntos resultantes de cada una de ellas, que podramos asemejar a las
columnas donde se situaran los asientos en el gradero.
Ve a Curve>Primitive>Line, y conecta la salida del primer componente de divisin como primer input de la lnea y la
salida del segundo componente de la divisin como segundo input. Vers cmo se crean las lneas que albergaran, en un
caso supuesto, cada uno de los asientos del gradero.
Puedes ver la definicin en la figura 15.
Curve
Params
Divide
Line
Contours
Base plan
X axis Y axis
Z axis
Divide by length
Sphere
Expression (radius)
Distance
Normal
Base Plane
Input Surface
Podrs apreciar la subdivisin de los asientos entre las dos curvas inferior y superior, tal como ves en la figura 16. La idea
es poder controlar tanto la subdivisin en altura como a lo largo de las columnas, es decir, tratamos con una divisin en forma
de rejilla. De esta forma es posible no nicamente controlar la geometra de los graderos como tambin conocer la capacidad del etadio de manera dinmica. Siguiendo esta lgica sera posible controlar la forma y tamao del estadio siguiendo
una lgica inversa, es decir, a partir de la capacidad deseada del mismo:
- Introducir el nmero de asientos deseados
- Introducir la proporcin de asientos en vertical (es decir, el nmero de filas)
- Introducir la proporcin de asientos en horizontal u ocupacin por asiento (es decir, el nmero de columnas o la distancia entre asientos)
La figura 16 muestra, en esta fase del proyecto, tanto las divisiones que hemos creado para las curvas inferior y media
como las lneas que las unen, donde tericamente iran situados los asientos de los graderos. Por el momento, crearemos
unos widgets a modo de indicaciones de su situacin; posteriormente podremos sustituirlos por cualquier forma o bloque
deseado (esto no se incluye en el presente manual). Dichos widgets sern, simplemente, unas esferas que situaremos en el
centro de los asientos.
[ 20 ]
INSTITUTO ARNAIZ
DISEO PARAMTRICO EXPLCITO CON GRASSHOPPER
ADOLFO NADAL SERRANO MAS. ARCHITECT - ARCHI [O] LOGICS
Curve Division 1
Curve Division 2
Stand Lines
Closeup of stand subdivisions
[Fig 16. Subdivisiones del gradero en sus sucesivas etapas]
b. Superficies base de los graderos (versin simplificada)
Parte de la definicin de la figura 15 incluye la creacin de superficies para la definicin ms detallada de la geometra
del estadio (superficies inclinadas) y su posterior aplicacin para crear los graderos reales (escalonados).
Para crear los graderos usaremos una vez ms el comando (componente) loft, con las propiedades por defecto. Como
ya sabes, el comando loft toma una serie de curvas como input, en este caso las parejas inferior-media y media-superior. El
resultado de aplicar el comando ser, como es evidente, dos superficies donde localizar los graderos inferior y superior, respectivamente.
Como es de suponer, es posible que se precise de una zona intermedia de trnsito entre ambos graderos, por lo que
se puede pensar en independizar algo ms estas dos superficies. Para hacer el modelo ms realista, podemos duplicar la
curva intermedia mediante un offset y crear la superficie correspondiente al gradero superior con dicha curva, que podemos
llamar, a partir de ahora, CrvMed2. Puedes crear la superficie de trnsito, una vez ms, usando el comando Loft o PlanarSrf
a partir de las dos curvas intermedias. De este modo obtendramos un modelo ms apropiado y ligeramente ms completo
y complejo. Puedes ver un ejemplo de cmo realizarlo en la definicin de la figura 15, si bien trataremos este caso con ms
detalle en el siguiente captulo.
Upper surface
Lower surface
CrvUp
CrvMed2 (offset)
CrvMed
CrvDown
[Fig 17. Superficies del gradero diferenciadas por una zona intermedia (resolucin de
previsualizacin baja)]
[ 21 ]
Crv mid
Crv up
Vector
X Y Z
Input geometry
Transformation vector
Move
CREATE SKYLIGHT
CURVE
Input geometry
Crv in
Fit Plane
Non-U
Scale
Center
Curve
ScaleFactor
Base Plane
ScaleFactors
Area
Centroid
Scale
Uniform
[Fig 18. Definicin para la creacin de la superficie base de la cubierta con los grupos necesarios]
OBTAIN
NEW LINES
Area
CREATE SURFACE
INSTITUTO ARNAIZ
DISEO PARAMTRICO EXPLCITO CON GRASSHOPPER
[ 22 ]
INSTITUTO ARNAIZ
DISEO PARAMTRICO EXPLCITO CON GRASSHOPPER
ADOLFO NADAL SERRANO MAS. ARCHITECT - ARCHI [O] LOGICS
5. Cubierta: modificacin de curvas y loft
A continuacin, el estadio precisa una cubierta que enfatice su valor geomtrico y arquitectnico. El primer paso a
seguir es la definicin de las lneas de base que van a conformar, a la postre, la forma de la superficie final de la cubierta.
Observa con detenimiento la definicin de la figura 18. En ella encontrars los siguientes pasos:
- Obtencin de nuevas lneas de definicin de la cubierta a partir de las existentes (la cubierta se entiende separada de
los graderos, por lo que se realiza un offset hacia afuera para controlar dichas lneas. Como resultado se obtienen las curvas
llamadas Crv mid2 y Crv up 2
- Creacin de la curva del hueco de la cubierta mediante sucesivas transformaciones. Para la creacin de dicha lnea se
realiza, una vez ms, un offset de la recin obtenida CrvUp2.
- Modificacin de la curva del hueco de cubierta (CrvIn), tal como sigue:
Desplazamiento mediante el comando Move, lo que permite controlar su posicin sobre el estadio
Escalado uniforme o no uniforme de la misma, para controlar la forma definitiva y apertura del hueco de
cubierta. A continuacin se describirn las dos formas de escalar.
- Creacin de la superficie a partir de las curvas Crv Mid 2, CrvUp2 y CrvIn.
a. Utilizacin de escalado uniforme
El escalado uniforme escala, como su nombre indica, un objeto geomtrico con el mismo factor de escala en las tres dimensiones del espacio. Puedes encontrar el componente en Transform>Affine>Scale/ScaleNU o tecleando scale en el men
emergente cuando haces doble click. Para utilizar el componente, debes alimentarlo con la siguiente informacin:
- Geometra a escalar (independientemente del tipo)
[ 23 ]
INSTITUTO ARNAIZ
DISEO PARAMTRICO EXPLCITO CON GRASSHOPPER
ADOLFO NADAL SERRANO MAS. ARCHITECT - ARCHI [O] LOGICS
- Centro de escalado: preferiblemente, el centro de la curva. Para obtener el centro de la curva usa Surface>Analysis>Area,
un comando que funciona con superficies, curvas, y BREPs (Boundary REPresentations) en general y del que podrs obtener
tanto el rea del objeto como su centroide. Este componente precisa nicamente de un input geomtrico vlido.
- Factor de escala: en nuestro caso siempre menor que 1 y mayor que 0.1, para evitar problemas con geometra imposible.
Conecta la curva interior CrvIn al componente de escalado en G (geometry input). Para hallar el centroide de la curva,
que usaremos como punto base para escalar, emplea el comando Area descrito anteriormente. Conecta de nuevo CrvIn
como input, y usa el output C (centroide) como input para el escalado. Finalmente crea un slider que contenga valores ente
0.1 y 1 para controlar el factor de escala, que es igual para X, Y, Z, de manera automtica. Prueba a modificar los valores de los
sliders para ver cmo la curva va cambiando simultneamente si escala y su colocacin.
[Fig 22. Opciones de superficie en funcin de los distintos parmetros de offset, movimiento, y factores de escala]
b. Escalado no uniforme
Una vez familiarizados con el escalado uniforme, podemos probar el No Uniforme. La principal diferencia estriba en
que el no uniforme precisa 3 inputs que definan cada uno de los factores de escala para las respectivas transformaciones
en X, Y, y Z. Asimismo, y de manera un tanto extraa, el escalado no uniforme toma, en lugar de un punto base, un plano de
transformacin, del que extrae, automticamente, un punto base a posteriori. Esto va a hacer que tengamos que disear un
mtodo especfico para poder crear un plano donde queremos, lo que nos servir de investigacin a nivel ilustrativo.
- Crea un plano base:
En este caso, necesitamos que el plano base de escalado se site, una vez ms, en el centro de rea (centroide) de la
curva en cuestin. Como queremos escalar la curva CrvIn, buscaremos crear un plano cuyo centro est en el centro
de la misma. Podemos hacer esto de diferentes maneras. Una manera relativamente eficiente es hallar por un lado
el centroide, y usarlo como base para definir un base por tres puntos. Otra manera ms sencilla sera, sencillamente,
dividir la curva en un numero suficiente de segmentos (mnimo 3) y tratar de averiguar un plano que pase por todos
ellos. Exactamente esto se consigue usando el componente PlFit. Encuentra el componente en Vector>Plane>Plane Fit
o introduciendo una bsqueda en el men contextual que aparece al hazer doble click en el lienzo.
[ 24 ]
INSTITUTO ARNAIZ
DISEO PARAMTRICO EXPLCITO CON GRASSHOPPER
ADOLFO NADAL SERRANO MAS. ARCHITECT - ARCHI [O] LOGICS
Crv centroid
Scale Factors
Plane on
(0,0,0)
Translate Plane to
Curve Centroid
Curve
Base Plane X Y Z
Non-uniformly
scale Curve
[ 25 ]
INSTITUTO ARNAIZ
DISEO PARAMTRICO EXPLCITO CON GRASSHOPPER
ADOLFO NADAL SERRANO MAS. ARCHITECT - ARCHI [O] LOGICS
c. Loft
Finalmente, une CrvMid2, CrvUp2, y CrvIn en un componente Flatten para posteriormente usar el componente Loft.
Esto crear las geometra que falta, y obtendrs como resultado la cubierta. A este nivel, deberamos tener un estadio paramtrico simple (realmente, una muy simple volumetra) semejante al de la figura 25.
Hasta ahora, hemos creado de forma sencilla e intuitiva las superficies ms importantes de que consta el estadio, incluyendo:
- Campo
- Gradero
- Cubierta
A partir de ahora, completaremos el edificio con ms detalles de gradero y con una serie de huecos en la cubierta y su
estructura, lo que permite conocer ms a fondo cmo describe Grasshopper las superficies (si eres usuario de RhinoScript o
avanzado de Rhino, ya sabrs los conceptos bsicos) y algunos elementos interesantes para modificar los conjuntos numricos.
[ 26 ]
INSTITUTO ARNAIZ
DISEO PARAMTRICO EXPLCITO CON GRASSHOPPER
ADOLFO NADAL SERRANO MAS. ARCHITECT - ARCHI [O] LOGICS
[ 27 ]
INSTITUTO ARNAIZ
DISEO PARAMTRICO EXPLCITO CON GRASSHOPPER
ADOLFO NADAL SERRANO MAS. ARCHITECT - ARCHI [O] LOGICS
[ 28 ]
[ 29 ]
INSTITUTO ARNAIZ
DISEO PARAMTRICO EXPLCITO CON GRASSHOPPER
ADOLFO NADAL SERRANO MAS. ARCHITECT - ARCHI [O] LOGICS
[ 30 ]
INSTITUTO ARNAIZ
DISEO PARAMTRICO EXPLCITO CON GRASSHOPPER
ADOLFO NADAL SERRANO MAS. ARCHITECT - ARCHI [O] LOGICS
Input domain
(modified)
Input geometry
(surface)
Input domain
(surface)
U0 (min U)
U1 (max U)
V0 (min V)
V1 (max V)
U domain
V domain
SubSrf
(Isotrim)
Domain to 2
subdomains
Domain to
4 numbers
3. El componente Domain
Puedes encontrar los componentes de dominio en Mats>Domain>Domain2 Components. Vers que hay dos componentes que se llaman igual (como ves en la figura 27), realizan la misma operacin devolviendo resultados ligeramente
diferentes. En el primer caso, el componente devuelve un set de 4 nmeros, correspondiente a los siguientes valores:
- U0: valor mnimo del dominio en la direccin U (base para el dominio, en otras palabras). Por defecto, 0.
- U1: valor mximo del dominio en la direccin U (final del dominio en esta direccin).
- V0: valor mnimo del dominio en la direccin V (base para el otro dominio). Por defecto, 0.
- V1: valor mximo del dominio en la direccin V (final del dominio en la otra direccin).
En el segundo caso, el componente devuelve nicamente 2 conjuntos de valores:
- U: dominio en la direccin U.
- V: dominio en la direccin V.
La ventaja que ofrece obtener los cuatro valores es que somos ms libres de jugar con ellos, para luego poder recrear
otro dominio modificado a partir de los valores que queramos de U y V. Esto es, dado un mximo y un mnimo, podemos crear
tantos valores intermedios como queramos y siguiendo el patrn deseado, sin que necesariamente haya de ser un patrn
homogneo con distancias iguales, por ejemplo.
II. UNA CUBIERTA COMPLEJA
1. La base de la cubierta: superficie y subsuperficies
La idea de la cubierta es sencilla: ser el repositorio de la representatividad del edificio. Lo que vamos a hacer es subdividir la superficie original que hemos creado en el captulo anterior en un nmero determinado de subdivisiones (que podr
controlarse paramtricamente) para luego modificar cada una de esas subsuperficies a nuestro antojo, creando patrones
ms o menos definidos o ms o menos complejos.
[ 31 ]
INSTITUTO ARNAIZ
DISEO PARAMTRICO EXPLCITO CON GRASSHOPPER
ADOLFO NADAL SERRANO MAS. ARCHITECT - ARCHI [O] LOGICS
a. Usar la superficie generada como base
Si bien puedes enganchar directamente la superficie resultante del loft al componente de subdivisin, es posible que
quieras hacer esto de manera ms explcita usando un parmetro superficie que est conectado inalmbricamente a dicha
superficie, para ganar claridad en la definicin.
b. Modificar el dominio de la superficie base y crear las subsuperficies
Esta es realmente la parte ms interesante de nuestra actuacin por el momento. La figura 29 explica perfectamente
los pasos a seguir, que se describen a continuacin:
- Obtencin del dominio original con los valores mximo y mnimo para la creacin de un rango entre ellos.
Ve a Math>Domain>Domain2 Components (el ltimo de la lista) y aade el componente al lienzo de la definicin.
- Asignacin de un rango de divisiones independientes para los dominios U y V mediante grficas
Crea dos sliders con nmeros naturales. stos servirn para definir cuntas divisiones tendrn los rangos que
asignaremos a U y V.
A continuacin crea dos componentes Range (Rango), que encontrars en Sets>Sequence>Range. Estos
componentes crean un conjunto de valores entre dos dados con un nmero de pasos (por ejemplo, crea un
conjunto de valores ente 0 y 1 con 10 pasos intermedios: 0.0, 0.1, 0.2, 0.3, 0.4, 0.5, 0.6, 0.7, 0.8, 0.9, 1.0). Como
habrs imaginado, conecta los sliders que has creado a dichos componentes y vers que el rango resulta en
n+1 valores a partir de un slider de n valores.
Context menu
(15 values for input = 14)
Domain
(by default from 0.0 to 1.0)
Number of steps
for V domain division
Range
Graph
Finalmente crea unas grficas en Params>Input>Graph Mapper y conecta el output del rango a cada una de
ellas de manera independiente (es decir, duplica el resultado para U y V).
- Ajuste de las grficas en funcin de los criterios de diseo deseados.
Con el botn derecho puedes seleccionar el tipo de grfico que quieras (edita el componente), prueba varios
tipos y observa el resultado.
- Creacin del dominios bidimensional a partir de los valores U0 y V0 iniciales y los obtenidos de los rangos para U y
V. Para superficies nos interesa tener un rango de valores combinado para las dos direcciones principales de la misma, que
hemos denominado U y V. Para ello, hemos de combinar los dominios lineales que vamos a crear independientemente en
[ 32 ]
[ 33 ]
Number of
subdivisions
*keep 1
List of
subsurfaces
Surface
divide
Subdivisions in
U\V directions
uv
parameters
Normal
vectors
Get list
APPLY DOMAIN
Order list
Srf4Pt
Create
Domain Length Cull 2D Dom
Shift list
List
Shift by 1
V DOMAIN
U DOMAIN
Multiply
by max
Range
Maximum value V1
Graph
Subdivisions Range modifiers
Range domain
(default 0 to 1.0)
Number of values
Exp-type graph
RANGE DOMAIN
INSTITUTO ARNAIZ
DISEO PARAMTRICO EXPLCITO CON GRASSHOPPER
INSTITUTO ARNAIZ
DISEO PARAMTRICO EXPLCITO CON GRASSHOPPER
ADOLFO NADAL SERRANO MAS. ARCHITECT - ARCHI [O] LOGICS
[ 34 ]
[ 35 ]
Graph values
(from 0.0 to 1.0)
Value range
(0.0 to 1.0)
Shift list
Shifted list
Max domain
value
Shift list by 1
Result
(range from 0.0 to
max domain value)
List
Domain
Linear domain 1
Linear domain 2
Index of last
item in list
2D
domain
INSTITUTO ARNAIZ
DISEO PARAMTRICO EXPLCITO CON GRASSHOPPER
INSTITUTO ARNAIZ
DISEO PARAMTRICO EXPLCITO CON GRASSHOPPER
ADOLFO NADAL SERRANO MAS. ARCHITECT - ARCHI [O] LOGICS
a. Duplicando los bordes
Usa el comando Edges, que extrae las lneas de borde (las aristas) de un objeto BREP cualquiera. En el ejemplo vers
que lo hemos hecho con la pareja de listas de superficies obtenidas de la triangulacin. Como resultado obtendrs una lista
de curvas que a continuacin hemos de tratar para obtener tringulos cerrados.
b. Unir los bordes duplicados
Para unir los bordes, toma la lista de Naked Edges de los resultados del comando Edges anterior. Usa Flatten sobre
ella para obtener una lista unidimensional con todos los bordes. Deberas obtener una lista con exactamente el triple de
objetos de la lista inicial (es decir, tres aristas por cada rectngulo). Al alisar la lista, todos los bordes estn indeferenciados
en la nueva lista, pero en orden. Es decir, cada grupo de tres bordes consecutivos pertenece a un mismo tringulo, por lo que
podemos formar sublistas de 3 elementos que correspondan a cada uno de los 3 bordes de cada tringulo. Para ello, usa el
comando Partition de lista con la resultante del Flatten e introduce un valor de 3 en el input S (Size of List, o tamao de la
lista). Obtendrs un conjunto de sublistas (tantas como tringulos) que contienen cada una los tes bordes que necesitamos.
A continuacin une dichas aristas conectando el output C del comando Partition con el input C del Join. Obtendrs la lista de
curvas unidas y cerradas.
c. Escalar el borde para obtener el hueco interior del componente
Como en ocasiones interiores, podemos escalar cada una de las curvas obtenidas de manera uniforme para crear huecos en nuestros componentes que nos sirvan para simular una estructura de celosa tridimenional, barras, o cualquier otro
tipo de configuracin. Para ello, sigue los pasos que ya conoces:
- Obtn el centroide de masas de la curva exterior
- Crea un slider para el factor de escala que vare entre algo ms de 0 y algo menos de 1 (0 podra dar error y 1 dejara
la curva sin modificar, lo que tambin podra generar un error).
- Conecta las curvas, centroides, y factor de escala al componente Scale
Puedes adems introducir variantes de diseo mediante la modificacin de estas curvasvariando su geometra de diferentes maneras, incluyendo:
- Su grado
- La inclusin de fillets para redondear los bordes
- Otras que puedas pensar.
En este caso, hemos utilizado el comando fillet con un slider para modificar las curvas interiores. Tambin puedes utilizar cualquier otro tipo de factores externos a la geometra (que veremos ms adelante) o internos a ella, tales como
- La curvatura de la superficie original (a menor curvatura mayores esfuerzos),
- La posicin relativa de las piezas,
- El ngulo con la vertical,
o cualquier otro parmetro que ayude a que tu diseo sea ms inteligente.
d. Crear una superficie entre ambos
Una vez ms estamos recurriendo a partes y componentes que ya nos son conocidos. Para crear la superficie entre las
curvas, y al haber sido las primeras escaladas uniformemente (lo que nos garantiza que son coplanares), podemos emplear
el comando Planar, al que asignaremos tanto las curvas obtenidas inicialmente de Join como las que acabamos de crear
mediante Fillet (o el mtodo que hayas estimado oportuno).
e. Extruir la superficie
Extruir la superficie requiere que definamos una serie de parmetros:
- En primer lugar, el vector director de la extrusin (que nos dar la direccin, el sentido y la magnitud de la misma). Po-
[ 36 ]
[ 37 ]
Edges
Bezier-type graph
Naked Edges
Interior Edges
Graph
modifiers
Down-scale curve
(obtain inner curve)
Srf Closest
Point
Create in-between
planar surface
OFFSET COMPONENTS
uv Parameters
Extrude
INSTITUTO ARNAIZ
DISEO PARAMTRICO EXPLCITO CON GRASSHOPPER
INSTITUTO ARNAIZ
DISEO PARAMTRICO EXPLCITO CON GRASSHOPPER
ADOLFO NADAL SERRANO MAS. ARCHITECT - ARCHI [O] LOGICS
demos obtenerlo directamente evaluando la superficie en un punto dado. Para ello, lo ms sencillo es calcular el punto ms
cercano de la superficie al centroide de masas de cada uno de nuestros componentes, y hallar sus coordenadas en espacio
UV (R2).
Para ello, usa el comando Surface>Analysis>Surface Closest Point (Surface CP). Vers que el componente tiene dos
inputs, que corresponden al punto de referencia P y a la superficie base S. Los outputs que genera son los siguientes:
P: Closest Point o punto ms cercano sobre la superficie
uvP: coordenadas UV del punto, el output que necesitamos
D: distancia ente el punto seleccionado y la superficie de referencia
Podramos pensar que lo que necesitamos es el punto ms cercano. Sin embargo, y puesto que estamos tratando con
vectores, necesitamos las coordenadas del punto en R2 para posteriormente evaluar la superficie con estos parmetros y
obtener la normal a la superficie en cada punto.
El comando Eval (Surface>Analysis>Evaluate Surface) toma una superficie, una pareja de coordenadas (u,v) y devuelve lo siguiente:
[ 38 ]
INSTITUTO ARNAIZ
DISEO PARAMTRICO EXPLCITO CON GRASSHOPPER
ADOLFO NADAL SERRANO MAS. ARCHITECT - ARCHI [O] LOGICS
Punto: el punto (coordenadas x,y,z) en las coordenadas u y v dadas.
Normal: el vector normal a la superficie en dicho punto. Por defecto, el vector es unitario.
Frame: en ese punto, devuelve el plano tangente a la superficie.
De este modo, extraemos la normal que usaremos como base a la extrusin, con la dimensin por defecto (1 unidad) o
modificada por medio de algn tipo de escala o factor.
- En segundo lugar, debemos definir la dimensin de la extrusin. Para escalar un vector usa el comando Amplitude,
que encontrars en Vector>Vector>Amplitude. El mecanismo del componente es extremadamente sencillo y necesitas nicamente el vector base y el factor de escala. Ya hemos empleado sliders para escalar geometra en ocasiones anteriores, as
que no vamos a detenernos en ello.
1. Crear las lneas de contorno.
Para crear las lneas de contorno usaremos el componente Intersect>Mathematical>Contour. Arrastra el componente
al lienzo y vers que precisa de una gran cantidad de inputs, que explicamos a continuacin:
[ 39 ]
INSTITUTO ARNAIZ
DISEO PARAMTRICO EXPLCITO CON GRASSHOPPER
ADOLFO NADAL SERRANO MAS. ARCHITECT - ARCHI [O] LOGICS
- S (Shape): malla o BREP de base. La superficie del loft inicial.
- P (Plane): plano base para comenzar los contornos. El plano base el ms bajo posible, por tanto lo hallaremos con el
componente del rea de la curva base (la del campo)
- N (Normal): direccin normal al desplazamiento del plano de contorno. stos sern perpendiculares al vector. El vector ser vertical inicialmente.
- D (Distancia): distancia de salto entre plano y plano para los contornos. Esta distancia la controlaremos por un slider,
pero para comenzar puede ser 1 unidad.
Input geometry
(surface)
Loft Original
(previsualizacin)
Contours
from Loft Surface
Moved contours
Vertical offset
lines (move)
Contour
Lines
Final geometry
(loft between contour
and moved curves)
Final loft
surface
Observa la definicin de la figura 37 para comprender el proceso completo. Vers que en la ltima fase se hace preciso
ordenar las listas de las curvas con las que tratamos para su correcta aceptacin por el comando Loft. Este extremos lo explicaremos ms adelante con cautela.
Define los inputs del componente Contour con los siguientes valores:
Shape: el loft original, la superficie con la que hemos trabajado hasta ahora.
Plane: el plano base de la curva que hallamos partir del centroide. Define el plano con el origen en el centroide de masas de la curva (ya calculado previamente), el eje X universal y el eje Y universal. Los ejes puedes
extraerlos de Vector>Vector>UnitX y Vector>Vector>UnitY. Conecta dichos componentes al input del plano.
Normal: un eje vertical y hacia arriba, es decir, el vector Z
Distancia: en este caso crearemos un slider, pero podemos trabajar con 1 unidad (es decir, los contornos estarn separados entre s 1 metro en vertical)
2. Copia las lneas de contorno
Este paso es muy sencillo. Mueve las lneas de contorno hacia arriba la misma distancia que hayas usado para crear
los mismos contornos, de manera que la primera lnea copiada coincida en altura con la segunda del contorno. Como ves,
cuando vayamos a crear la nueva superficie, deberemos estudiar cuidadosamente cmo ordenamos las listas de curvas.
[ 40 ]
[ 41 ]
Normal
Plane Vector
Origin
X Axis vector
Y Axis vector
Input
curves
Contour
Weaving pattern
List1
List2
[Fig 37. Creacin de las curvas de contorno y el loft definitivo para los graderos]
Contour
Distance
Loft surface
Base Plane
Normal vector
Distance
Vertical vector
(horizontal planes)
Contour
INSTITUTO ARNAIZ
DISEO PARAMTRICO EXPLCITO CON GRASSHOPPER
INSTITUTO ARNAIZ
DISEO PARAMTRICO EXPLCITO CON GRASSHOPPER
ADOLFO NADAL SERRANO MAS. ARCHITECT - ARCHI [O] LOGICS
Como ves, hemos de combinar los elementos de las listas uno a uno, por lo que se hace imprescindible el uso de Weave.
Este componente, que encuentras en Sets>List>Weave, te permite definir un patrn de hilado ente dos listas. En este caso,
deberemos definir cuntos elementos y en qu orden (de cada lista) se van a introducir (aunque es el comportamiento por
defecto del componente hacer uno a uno).
Haz click con el botn derecho sobre el componente para abrir el panel contextual. En el input P, dentro de la opcin
Set Multiple Integers, define los siguientes: 0,1. Estos corresponden a la lista 0 y a la lista 1. De esta manera, el componente
analizar las listas y coger el primer elemento de la primera y luego el primer elemento de la segunda, y en se orden los
insertrar en la nueva lista. Al llegar al final de la definicin del patrn, volver a hacer los mismo con el siguiente elemento
de las lista hasta que las dos listas se acaben.
Una vez hayas hecho esto con las listas, obtendrs un nica lista refundida de las dos anteriores, y que podrs pasar
directamente al comando loft. El resultado debera ser como el de la fase 4 de la figura 36. Repite esta operacin con tantos
tramos de graderos tengas, e intenta crear tantos parmetros como sean necesarios para tener un control apropiado sobre
el modelo. Recuerda que la definicin correspondiente a este modelo es una definicin simplificada, y que por tanto es muy
mejorable. Algunas opciones seran:
- Introducir atractores para generar variabilidad externa a la definicin geomtrica.
- Modificar las aperturas de los huecos en funcin de factores intrnsecos al objeto.
- Ver posibilidades de scripting para fabricacin, lo que implicara un cambio radical del modelo.
[ 42 ]
INSTITUTO ARNAIZ
DISEO PARAMTRICO EXPLCITO CON GRASSHOPPER
ADOLFO NADAL SERRANO MAS. ARCHITECT - ARCHI [O] LOGICS
[ 43 ]
INSTITUTO ARNAIZ
DISEO PARAMTRICO EXPLCITO CON GRASSHOPPER
ADOLFO NADAL SERRANO MAS. ARCHITECT - ARCHI [O] LOGICS
[ 44 ]
[ 45 ]
INSTITUTO ARNAIZ
DISEO PARAMTRICO EXPLCITO CON GRASSHOPPER
ADOLFO NADAL SERRANO MAS. ARCHITECT - ARCHI [O] LOGICS
I. OBJETIVO
1. Topologa
Esta parte del manual se centra en generacin de geometra compleja y su modificacin a partir de controles externos
interactivos. Dichos controles son externos a la volumetra propia del edificio o modelo y pueden considerarse modificadores
del mismo, condicionantes que influyen en el comportamiento del mismo. De este modo, soleamiento, vistas, o sencillamente cuestiones estticas y de voluntad de diseo, pueden asemejarse a limitaciones geomtricas. De este modo, un punto
puede significar un rayo de luz, o un vector una direccin de apertura de lamas o semejante.
2. Descripcin del marco proyectual
Debes haber manejado Grasshopper con cierta soltura antes de comenzar a modelar este tipo de geometras. Trabajaremos con una superficie sencilla a la que aplicaremos un algoritmo de triangulacin y posteriores modificaciones para
generar volumen en componentes. Posteriormente, modificaremos la geometra ya creada con una serie de atractores.
II. TRABAJAR CON EL ALGORITMO VORONOI SOBRE DIFERENTES SUPERFICIES
1. Breve descripcin del algoritmo
Imagina que tienes un mapa de una ciudad en donde haya una cantidad n determinada de repetidores mviles, por
ejemplo. Un telfono localizado en cualquier punto de la ciudad trata siempre de conectar con los postes ms cercanos, por
lo que la ciudad se divide en zonas, en donde cada una de ellas tenga exactamente la cobertura de uno y slo uno de esos
repetidores y se encuentre lo ms cerca posible del mismo sin que exista ningn otro repetidor ms cercano. La resolucin
de este particionado zonal de un territorio definido se dispersa mediante el diagrama de Voronoi, y se resuelve matemticamente mediante una ecuacin de tipo n*(log n) para permutar varios algoritmos; sin embargo, no vamos a entrar en el algoritmo en tanta profundidad. Por otro lado, el Voronoi puede resolverse adems por medio de teoremas geomtricos como la
triangulacin Delaunay.
Puedes ver un grfico resuelto con el algoritmo en la figura 39. Vers que hay una serie de puntos y lneas. Los puntos
ms oscuros corresponden a los puntos de los repetidores, en el caso anterior, mientras que los grises corresponden a las
celdas que aqullos definen. De este modo,. se crean paquetes o zonas que corresponden a cada uno de los puntos dentro
de un espacio finito y limitado. Como puedes observar, todo lo que necesitamos es un conjunto de puntos y un espacio o
marco que los contenga. En nuestro caso, aplicaremos adems esta solucin al espacio bidimensional de una superficie, ya
que stas pueden definirse en espacio R2, al igual que la solucin plana que estamos tratando en el ejemplo.
[ 46 ]
INSTITUTO ARNAIZ
DISEO PARAMTRICO EXPLCITO CON GRASSHOPPER
ADOLFO NADAL SERRANO MAS. ARCHITECT - ARCHI [O] LOGICS
2. Aplicando el algoritmo en Grasshopper (mtodo I)
En este primer caso vamos a trabajar con el algoritmo de una mare muy especfica: dibujaremos el algoritmo en 2D,
crearemos la solucin tridimensional a partir de la caja contenedora de lasuperficie base; calcularemos la intereseccin ente
la solucin Voronoi y nuestra superficie, y crearemos una malla a partir de dicha interseccin. Otra opcin es, sin lugar a duda,
mapear la solucin bidimensional plana directamente sobre una superficie. Tambin estudiaremos esta opcin. En funcin
del tipo de superficie que tengas, es posible que quieras usar uno u otro mtodos.
En cualquiera de los casos, ya existe un componente que resuelve Voronoi en Grasshopper, por lo que no es necesario
que intentes crearlo t. Como en la mayora de los casos, basta con emplear de manera adecuada los componentes existentes.
a. Crea el setup para la solucin Voronoi
Recuerda, todo lo que necesitamos es una superficie y una nube de puntos. Para la superficie puedes crear una desde
el principio en Rhino o seleccionar, por ejemplo, la cubierta del estadio que acabamos de disear en el apartado anterior. La
nube de puntos, en este caso, la crearemos directamente dentro de la interfaz de Grasshopper mediante la poblacin de
una superficie, si bien se podra intentar controlar manualmente.
- Para crear una distribucin aleatoria de puntos sobre una superficie, hallaremos primero el dominio de la superficie, y
luego encontraremos (dentro de dichos rangos o dominios) tantos nmeros aleatorios como necesitemos, para combinarlos
en parejas que resulten finalmente en parmetros U y V. As pues:
Halla el dominio de la superficie mediante el comando Domain. Encuentra el componente en
Maths>Domain>Domain2 Components. Como probablemente sepas, el comando precisa una superficie u objeto con un dominio bidimensional y lo descompone en sus subdominios U y V, los cuales, a su vez, son rangos
de nmeros que oscilan ente 0 y uno superior. Usaremos el valor de dichos nmeros para calcular otros aleatorios que pertenezcan a dicho dominio.
Genera nmeros aleatorios mediante el comando Sets>Sequence>Random. De nuevo, este componente precisa un dominio para el rango numrico (R), la cantidad de nmeros aleatorios a generar (N), y una semilla
(Seed, S) para la generacin del nmero aleatorio. Crea dos contenedores separados para U y V, y conctalos
de forma independiente. Asegrate de que tanto uno como otro componente generen el mismo nmero de
[ 47 ]
Reduce rnd
Populate
Domain
OPTION 2
OPTION 1
Randomize
Srf
3D Vor
4
2
Remove
duplicated
data
strt pt
(n-1)th mesh
resulting mesh
*single face
nth mesh
Average to
obtain scale
center
original segment
Obtain vertices
on surface
U domain
V domain
BASE GEOMETRY
ORDER POINTS
1
3
Meshes Join
Vertices from
segments
Face order
Mesh list
(quads)
resulting mesh
*all faces
vertex order
*in QUAD
scaled segment
end pt
Shift lists
Other segments
end/start points
Segments
end/start points
CREATE MESH
[Fig 41. Definicin de Voronoi para crear una malla a partir de una distribucin de nube de puntos sobre una superficie (mostrando dos opciones)]
OBTAIN BBOX
INSTITUTO ARNAIZ
DISEO PARAMTRICO EXPLCITO CON GRASSHOPPER
[ 48 ]
INSTITUTO ARNAIZ
DISEO PARAMTRICO EXPLCITO CON GRASSHOPPER
ADOLFO NADAL SERRANO MAS. ARCHITECT - ARCHI [O] LOGICS
valores y finalmente establece valores diferentes para las semillas de ambos componentes (por ejemplo, 0 y 1).
Una vez genrados los valores aleatorios, debemos combinarlos en un nico valor del dominio. Esto puede
hacerse de mltiples maneras. Sin embargo, para demostrar la flexibilidad de los componentes de Grasshopper, lo haremos utilizando un a priori extrao componente al efecto, el Vector XYZ, que crea un vector (esto es,
una trada de valores) a partir de tres componentes o valores por separado (para los que utilizaremos el rango
obtenido para U, el rango obtenido para V, y 0).
Amount random
numbers
[Fig 42.Obteniendo los valores aleatorios para U y V. Combinacin para su uso por el comando Eval]
Conecta el output del componente VectorXYZ (Vec) al input uv del componente Surface>Analysis>Evaluate
Surface para obtener los puntos correspondientes a las coordenadas (u,v) dadas por los nmeros aleatorios. En
este caso, obtendrs la geometra en s.
[ 49 ]
INSTITUTO ARNAIZ
DISEO PARAMTRICO EXPLCITO CON GRASSHOPPER
ADOLFO NADAL SERRANO MAS. ARCHITECT - ARCHI [O] LOGICS
b. Calcula la solucin Voronoi
Una vez hemos construido los puntos sobre la superficie con el dominio dado, podemos proceder al clculo de la solucin Voronoi tridimensional que nos servir para fijar la geometra final sobre la cubierta. Es conveniente recordar que en este
caso lo haremos por medio de la interseccin del clculo de la solucin Vornoi 3D con la superficie de la cubierta, tal como
puedes ver en la figura 41.
Conecta los puntos recin obtenidos al input P del componente Mesh>Triangulation>Voronoi 3D.
Conecta la caja opcional del Bounding Box de la superficie al input B (Boundary) del componente Voronoi 3D,
lo que le dar un entorno limitado de trabajo.
La solucin se computar automticamente, y deber tener un aspecto semjante al de la figura 44, que encuentras
a continuacin. De todas maneras, no se trata, como hemos dicho, de conocer a fondo el algoritmo, sino de poder usar las
herramientas necesarias para trabajar con el diseo que ms nos convenga en cada momento.
[ 50 ]
INSTITUTO ARNAIZ
DISEO PARAMTRICO EXPLCITO CON GRASSHOPPER
ADOLFO NADAL SERRANO MAS. ARCHITECT - ARCHI [O] LOGICS
c. Crea la malla
A continuacin deberemos descomponer la geometra en segmentos, para posteriormente escalar dichos segmentos
y obtener as 4 puntos: el punto inicial y final de cada uno de ellos. Estos 4 puntos definirn los vrtices de las mallas, que
sern todas quads (a posteriori puede triangularse la malla). Dichas mallas tendrn nicamente una cara. De este modo, y
una vez hemos creado cada una de las mallas, podermos unirlas todas en una nica malla, cuyas caras sern cada una de las
mallas que hemos creado hasta el momento. As pues, el orden en el que introduzcamos las mallas iniciales es totalmente
indiferente, ya que en el ltimo paso las uniremos en una nica malla. Ten la precaucin de unificar las normales de la malla
antes de intentar modificarla, extruirla, o llevar a cabo cualquier otra operacin sobre ella.
- Para descomponer la geometra en segmentos, emplea el componente Explode. De esta manera obtendremos, por
un lado, los segmentos de la interseccin, y los puntos sobre la superficie. En este caso, vamos a emplear directamente los
vrtices sobre la superficie, ya que vienen ordenados por polgonos o reas, tal como puedes ver si conectas el output a un
panel de texto.
- Escalaremos los vrtices ordenadamente usando como centro el centro de masas de los polgonos. Para ello, y ya que
estamos tratando con puntos, usaremos el componente Maths>Util>Average para hallar la media de las coordenadas de
todos los puntos. Emplea el factor de escala que estimes oportuno, o algn tipo de parmetro en funcin del rea de cada
zona, por ejemplo.
- Escalados los vrtices hemos de ordenarlos de manera que generen una cara. Con los puntos inicial (0) y final del
segmento original (1) e inicial (2) y final (3) del segmento escalado definiremos dicha cara. Vers que realmente es en el componente Mesh>Primitive>Mesh Quad donde se ordenan dichos puntos, correspondiendo la siguiente distribucin:
A: 0
B: 1
C: 3
D: 2
De manera que queden correctamente ordenados, tal como puedes ver en la figura 41 de pginas anteriores.
- Hecho esto, conecta los vrtices al componente Merge, de manera que queden como una lista nica.
- Finalmente, asocia los vrtices y el output del componente Quad al componente Mesh, que se encarga de crear mallas
independientes en funcin de los vrtices dados y el orden en que se leen. Si as lo precisas, puedes unir todas las mallas en
una nica con el comando MeshJoin que encontrars en Mesh>Util.
[ 51 ]
INSTITUTO ARNAIZ
DISEO PARAMTRICO EXPLCITO CON GRASSHOPPER
ADOLFO NADAL SERRANO MAS. ARCHITECT - ARCHI [O] LOGICS
d. Posibles extensiones
Para terminar, puedes probar a extender el ejercicio probando alguna de las siguientes variantes:
Escalar los huecos en funcin de algn parmetro geomtrico
Refinar la malla una vez creada
Extrusionar la malla para obtener diferentes efectos
Aplicar el comando smooth sobre la malla terminada (y extruida) para crar un efecto de suavidad
Crea huecos curvos a partir de los vrtices
En definitiva, explora un poco ms all las posibilidades que ofrece el software, y trata de aplicar una imprompta personal que aleje el diseo de la estndar y directa aplicacin de funciones predefinidas. Puedes obtener resultados semejarntes
al de la figura 46. En este caso, se han unificado todas las normales de la malla, extruido una distancia determinada, y aplicado
el comando Smooth con un valor de suavizado de 2. Intenta crear tus propios efectos.
[ 52 ]
INSTITUTO ARNAIZ
DISEO PARAMTRICO EXPLCITO CON GRASSHOPPER
ADOLFO NADAL SERRANO MAS. ARCHITECT - ARCHI [O] LOGICS
[ 53 ]