quarta-feira, 7 de dezembro de 2011

exercício 8: intervenção no anfiteatro CAU-UFC

Após a seleção de Fortaleza para sediar o congresso SIGRADI 2012, o novo exercício, que, na verdade, substituiu o passado, foi o de pensar numa intervenção no anfiteatro CAU-UFC, com bancos de madeira, a serem fabricados digitalmente (por ora, só seria fabricado um trecho de 60 cm do banco criado, para estudos).

Assim como no exercício 7, a modelagem básica foi feita no rhino, através de ferramentas como polyline, line e control points curve (para os perfis) e o velho e bom loft para a forma dos bancos. Em seguida, com a ajuda do grasshopper, foi possível complementar os perfis (sobretudo com a pilha line - Ln) e dar a aparência dos perfis compensados a serem fabricados. O grasshopper também foi utilizado para explicitar os perfis para corte, dos 60 cm escolhidos.

Mostrarei aqui as pranchas desse trabalho final, que foi feito de dupla com o Felippe Fideles! :)










e esse blog termina por aqui! até a próxima!

sábado, 1 de outubro de 2011

exercício 7: parada de ônibus

Antes de fazer esse exercício, aprendemos algumas coisas novas! Nele, teríamos que fazer uma parada de ônibus utilizando a modelagem básica no rhino e o grasshopper para incrementar. Também deveríamos fazer planos de corte (para posterior prototipagem) no grasshopper.

parte teórica: logic components


~ series: informa início, número de passos e distância entre os passos (incrementar) - produz uma lista.
domain: informa início e fim - não produz nada, serve como input para outros.
range: informa domínio, início e fim (distribuir) - produz uma lista.
divide domains: divide o domínio em outros domínios, informando domínio inicial e quantidade de domínios - serve também de input para o range, p. ex., que resulta em uma lista de listas.


parte prática: parada de ônibus


esses foram os primeiros estudos, mais para aprender as ferramentas:


1. surface
faz a superfície no Rhino (com control point curve e loft, p. ex) - pilha surface (params>geometry>surface) - set one surface - clica na superfície do Rhino.
2. divide domain 2
*input I: liga no output da srf;
*input u: número de divisões na direção u;
*input v: número de divisões na direção v;
3. surface box
[cria caixas moldadas numa superfície]
*input S: output da srf;
*input D: liga o output S da pilha divide.






4. geometry
faz uma forma no Rhino (esfera, cone, donut) - pilha geometry (params>geometry>geometry) - set one geometry - clica na forma do Rhino.
5. bounding box
[caixa ao redor de um objeto - o tamanho dele está associado a ela e vice-versa]
*input C: liga o output da geometry


6. box morph
[com isso vamos transferir o objeto que está na bounding box para as surface boxes]
*input G: é a origem - liga no output da geometry.
*input R: é a referência - liga no output da bounding box.
*input T: é o destino - liga no output do surface box.




e fazendo um bake, por fim:



escalas aleatórias

e continuamos as atividades relacionadas com o exercício 6...


Tentando escalar mais de um elemento com diferentes escalas

A. series - point x, y, z - box


B. reduce
(com isso, reduzimos aleatoriamente 5 volumes)




e agora, como escalar os volumes retirados?

C. evaluate box - ex diff


evaluate box (surface > analysis > evaluate box) é uma pilha que transforma uma lista de box em uma lista de coordenadas.

ex diff (sets > sets > set difference (s)) é uma pilha que faz a diferença entre dois conjuntos (listas) - não pelo index mas pelo valor. Com isso temos como output a lista justamente dos volumes retirados!


D. box - scale nu
(com, isso materializaremos a lista de coordenadas obtidas em volumes e escalaremos estes volumes)


E. jitter - random
(duas pilhas que trazem aleatoriedade para as escalas)



trabalhando com listas e escalas

Continuando as atividades (ainda relacionadas com o exercício 6), tivemos uma aula teórica (21.09) com algumas (muitas) operações/pilhas com listas (sets > list) e sequências (sets > sequence).

Algumas delas e suas funções (os inputs estão entre parênteses):
LISTAS
~ series: cria uma lista através de um início (S - 0,0 por default), de um número de elementos (C) e da distância entre os elementos (N).
~ item: escolhe um item, a partir da lista inicial (L) e do index escolhido (i).
~ insert: insere uma lista (I) na lista inicial (L), no index escolhido (i).
~ subset: cria uma sublista a partir da lista inicial, informando o domínio escolhido (D).
~ replace: substitui um item da lista inicial (L), informando o index (i), por um novo item (I).
~ split:divide a lista inicial (L) em duas novas listas, informando o momento/index em que a lista se divide (i).

SEQUÊNCIAS
cull index: apaga um ou mais itens da lista inicial (L), a partir de uma lista de index (I).
reduce: apaga aleatoriamente item da lista inicial (L), informando o número de retiradas (R) e a sequência aleatória (S).

Depois dessa parte teórica, iniciamos uma parte prática (26.09), exercitando possíveis soluções para escalar os volumes individualmente, segundo alguma regra.

Tentando escalar um único objeto e treinar as listas

A. series - point x, y, z - box OU series - vector - move - box




OU



B.split list - box
(podemos antes de inserir o box, usar o split list)




C. item - scale nu
(ligamos o item à pilha box e a pilha escolhida vai ser escalada somente em uma direção pela pilha scale nu)


D. cull index
(utilizamos essa pilha para excluir exatamente o item que está sendo escalado, pois, como já sabemos o grasshopper cria réplicas a cada operação)

exercício 6: blocos paramétricos

A idéia do exercício 6 baseia-se no Museu do Holocausto (Peter Eisenman):


Antes de mais nada, começamos a aplicar as ferramentas de ponto, linha e plano aprendidas para fazer um volume paramétrico (aula 19.09):


Em seguida, o objetivo era fazer uma matriz de 6 x 12 volumes. Para isso, fez-se os seguintes passos:

1. SERIES: essa pilha foi utilizada duas vezes, tendo em vista que o objetivo era uma série de 6 no eixo X e uma de 12 no eixo Y.
*para o input N: a distância entre os bloquinhos (de centro a centro);
*para o input C: a quantidade de bloquinhos.

e como associar cada série à sua respectiva direção esperada?

2. VECTOR:
*para o input X, ligamos o output da primeira pilha series;
*para o input Y, ligamos o output da segunda pilha series;
*não ligamos nada no input Z.
[detalhe importante: para o nosso objetivo, devemos ativar o cross reference na pilha vector, para que todos os X da primeira série se associem a todos os Y da segunda.]

e como fazer com que essa lista de coordenadas influenciem o bloco feito no início?

3. MOVE
*para o input G, ligamos o output de TODAS as pilhas Srf4Pt.
*para o input T, ligamos o output V da pilha Vector.
[detalhe importante: para o nosso objetivo, devemos ativar o cross reference na pilha move, para que todos os planos sejam copiados para cada coordenada.]









ponto, linha, plano

ponto
existem algumas maneiras diferentes de fazer pontos, que vão depender dos objetivos.

- pelo caminho: params > geometry > point
[clicando com o botão direito na pilha: set one point ou set multiple points - com ambos, você deve selecionar a posição do(s) ponto(s) na tela do rhino]


OU

- pelo caminhos: vector > point > point xyz
*para os inputs x, y e z: informar valores através do panel/ number slider/ MD slider ou ainda da series (informa intervalo e número de pontos).


{observação importante: com o botão direito na pilha point (e outras pilhas também como, move, vector), você pode selecionar: longest list (as series/listas se combinarão uma a uma, e quando não há correspondência, o último se repete), shortest list (as series/listas se combinarão uma a uma, e pára quando não há correspondência) ou cross reference (conecta todos os elementos de uma lista com todos da outra)}


linha
- pelo caminho: params > geometry > line
[assim como o ponto, a linha é desenhada na tela do rhino]

OU

- pelo caminho: curve > primitive > line
*para os inputs A e B: ligas os output de pontos.

[vale para a pinha Ln, a longest list/shortest list/cross reference]


plano
Existem, também, várias maneiras de fazer planos. Talvez a mais prática delas seja pelo caminho: surface > freeform > 4 point surface.



domingo, 18 de setembro de 2011

exercício 5: St. Mary Axe (grasshopper)

Novo desafio: modelar o mesmo edifício do exercício anterior só que através do grasshopper. Para isso, tivemos mais algumas noções do que é algoritmo e nos utilizamos bastante delas para trabalhar com o grasshopper.

A. Passo a Passo para fazer a FORMA:

1. CIRCLE: palete curve > primitive > circle
*para o input R (Raio): palete params > special > panel (escreve raio 11,47).

2. MOVE: (clica 2x na tela e busca move)
*para o input G (Geometria): ligar no output C da pilha circle;
*para o input T: informar eixo.
[lembrando que o move, no grasshopper, é um copy, porque deixa os resíduos - isso vale para as outras ações]

3. UNIT Z: (clica 2x na tela e busca unit z)
*para o input F: informar alturas - panel (0; 20; 60; 80; 90; 100);
*liga o output V no input T da pilha move.




4. SCALE (clica 2x na tela e busca scale):
*para o input G (Geometria): liga no output G da pilha move;
*para o input F (Fator): informar fatores de escala - panel (0.9; 1.2; 1.2; 0.9; 0.6; 0.09);
[com isso, cada círculo vai ser escalado de acordo com seu fator]
*para o input C: informar o plano (xy) de escala, isto é informar os centros dos círculos.

5. CENTER: palete curve > analysis > center
*para o input A: liga no output G da pilha move;
[os centros de cada círculo vão ser identificados]
*liga o output C no input C da pilha scale.
 [com isso, cada círculo vai ser escalado de acordo com seu centro]
(opcional: liga um panel no output C para visualizar as coordenadas dos centros)




6. LOFT: palete surface > freeforms > loft
*para o input S (Superfície): liga no output G da pilha scale
*não liga nada no output L (Loft): a forma está feita.

B. Passo a Passo para fazer uma CURVA ao redor da FORMA:

1. END: (clica 2x na tela e busca end points)
*para o input C: liga no output G da pilha scale.
[os endpoints de cada círculo vão ser identificados]


2. INTCRV: palete curve > spline > interpolate
*para o input V (Valor): liga no output S da pilha end
[vai se formar uma curva ligando os endpoints - mas não é exatamente isso que queremos]

3. POLYGON (clica 2x na tela e busca polygon)
*para o input P (Ponto): liga no output S da pilha IntCrv
[para ter um polígono em cada endpoint]
*para o input R (Raio): palete params > special > number slider (limites de 0 a 1 - integers - deixa no 1).
*para o input S (Lados): palete params > special > panel (coloca o número 3 - triângulo)




[os próximos passos terão como objetivo rotacionar os polígonos um a um até a curva voltar ao endpoint no topo]

4. DIVIDE: (clica 2x na tela e busca divide)
*para o input C: liga no output C da pilha IntCrv;
*o input P da pilha polygon deve ser desligado do output da pilha IntCrv e ligado no output da pilha divide;
*para o input N (Número de divisões): palete params > special > number slider (limites de 0 a 100- integers - deixa no 40).
[agora temos 40 polígonos ao longo da curva, mas temos que rotacionar um a um]

5. F(x): palete math > script > F1
[clica 2x na pilha para escrever a expressão: 360/x*0,0174 (para transformar o ângulo 360/40 - 9 graus - em radianos)]
*para o input x (variável da função): liga no number slider com o número 40;
*o output r (Resultado) é justamente o quanto cada polígono deve rotacionar.

6. SERIES: (clica 2x na tela e busca series)
[essa pilha serve para criar uma série]
*para o input N (intervalo): liga no output r da pilha F(x);
*para o input C (número de passos): liga no number slider com o número 40;

7. ROTATE: (clica 2x na tela e busca rotate)
*para o input G (Geometria): ligar no output P da pilha polygon;
*para o input A (Ângulo): ligar no output S da pilha series.
[agora sim, cada um dos 40 polígonos está rotacionado de 9 em 9 graus]



8. LOFT: palete surface > freeforms > loft
*para o input S (Superfície): liga no output G da pilha rotate;
[temos a curva ao redor da forma!]



(Paramos aqui na aula do dia 12.09, para continuar na aula do dia 14.09)

C. Passo a Passo para MULTIPLICAR e ROTACIONAR a CURVA:

1. DOMAIN: (clica 2x na tela e busca domain - ver figurinha com intervalo 0 a 1)
[define um domínio com início e fim]
*os inputs são A (começo) e B (fim): ligar um panel em cada com os valores 0 e 360, respectivamente.

2. RANGE: (clica 2x na tela e busca range)
[pega os valores do domínio e divide por uma quantidade específica]
*para o input D (domínio): ligar no output I da pilha domínio;
*para o input N (quantidade de passos): palete params > special > number slider (limites de 0 a 10 - integers - deixa no 10).

(opcional: liga um panel no output R para visualizar os valores)

3. F(x): palete math > script > F1
[clica 2x na pilha para escrever a expressão: x*0,0174 (para transformar o ângulo x em radianos)]
*para o input x (variável da função): liga no output R da pilha range;

4. ROTATE: (clica 2x na tela e busca rotate)
*para o input G (Geometria): ligar no output L da pilha loft;
*para o input A (Ângulo): ligar no output r da pilha F(x).
[o output r (Resultado) é justamente o quanto a curva vai rotacionar (a rotação também deixa resíduos), totalizando 10 curvas]



5. MIRROR: (clica 2x na tela e busca mirror)
*para o input G (Geometria): liga no output G da pilha rotate;
*para o input P (Plano): informar plano do espelho - palete vector > plane > XY plan




E PRONTO!