Generative Algorithm 032

7_1_NURBS면의 매개변수(Parametric NURBS Surfaces)

전장에서 surface를 input으로 이용한 예제들을 살펴보았다. 이전 자에서는 loft와 pipe를 이용하여 surface들을 생성하였다. 또한 free-form surface를 input으로 하여 이것을 analysis 탭에 있는 component들에 연결하였을 때 나오는 결과물을 어떻게 활용할 수 있는지도 살펴보았다. 이처럼 많은 경우에 rhino상에서 그릴 수 있는 curve나 surface와 같은 기본적인 기하체들을 input으로 활용할 수 있다. 이처럼 Grasshopper를 잘 활용하기 위해서는 어떠한 시점에 어떠한 rhino input이 필요한지를 잘 판단할 수 있어야 한다.
벽체나 입면과 같이 surface로 구성되는 기하체가 보통 design의 결과물이 된다. 이러한 결과물을 내기 위해서는 process 중간중간에 필요한 curve와 점 등을 input으로 활용할 수 있어야 한다. 이번 예시에서는 surface에 관련된 다양한 component들을 살펴보고 이것들이 가지는 가능성들을 살펴보도록 하겠다. 이 경우 design process 나 결과물 자체 보다는 새로운 component를 활용해본다는 것에 그 초점을 맞추도록 하겠다.
 

매개변수를 이용한 tower (Parametric Tower)

 
London의 Thames 강변에 있는 Docklands 지역을 site로 하는 tower를 제안하여 보자. 제안은 간단하면서도 기본적인 design을 제안할 것이다. 이 때 free-form surface를 활용할 수 있는 여러 가지 기본 idea들을 살펴보도록 하자. 먼저 지역을 살펴보자.

항공사진, Canary Warf, London (image: http://www.maps.live.com, Microsoft Virtual Earth).


Site는 Thames 강변의 둑 위에 위치하고 있다. 강쪽으로 좋은 조망권을 형성하고 있으며, Canary Warf (Westferry Road)의 중심부에 있는 광장의 입구에 면해있다. Site에 대한 이야기는 이 정도로 하고 형태적인 issue들에 대하여 이야기 해보도록 하자.

Site


 

Rhino input의 생성(Manual drawings)

 
건물의 모형을 그리는 데에는 여러 가지 방법이 있다. 먼저 1층의 평면을 그린 뒤 그것을 수직방향으로 필요한 만큼 복사하고 detail을 더해갈 수 있다. 이러한 방법이 활용된 예시는 다른 곳에서 쉽게 찾아볼 수 있다. 이 예시에서는 몇 가지 surface component를 이용하려고 한다.
개념은 간단하다. Tower의 표면은 유리로 마감되며 그 바깥에 선적인 요소들이 더해지게 된다. 이 입면에 공간이 더해지게 되고 이 공간은 입면 위에 무작위로 배치된다. 이러한 공간들은 입면의 선적 요소들을 자르게 된다. 또한 이러한 입면의 선적 요소는 입면에서 그 주변의 강변까지 연결되며 public space를 형성하게 된다.
아래 그림에서 볼 수 있는 것처럼 먼저 rhino에서 기본적으로 필요한 curve를 그린다. 이 curve들은 site에서 필요한 요구사항들이나 그 형상, 경계 그리고 높이제한 등 다양한 조건에 의하여 조절될 수 있다. 이 중 두 개의 curve에 각각에 인접하는 또 다른 curve를 하나씩 그린다. 이 두 curve들은 지상에서부터 시작하여 건물의 최고층까지 연결되게 된다. 이러한 curve의 개수나 형상은 이후 사용자가 원하는 대로 바꿔줄 수 있다.

 

기본적인 입면 요소(Basic façade elements)


먼저 해야 할 일은 위에서 그린 rhino상의 curve를 grasshopper에 연결하는 것이다. <curve>를 이용하면 된다. 이것을 다시 <divide curve>에 연결하고 N에 40을 줘서 위에서 연결된 curve들이 40등분 한다. 위를 보면 각 curve 위에 그려진 41개의 point들이 4개의 다른 가지(branch)에 들어있는 것을 알 수 있다.

이제 이것들을 연결하여 입면의 기본적인 요소가 되는 line을 그려준다. 이를 위해서는 먼저 각branch안에 있는 점들을 각각의 data list에 분류해주어야 한다. 이러한 역할을 하는 것이 <explode tree> <division curve>(Logic > Tree > Explode Tree)이다. 이것을 이용하여 각 branch 들을 data list화 한 뒤 <line>을 이용하여 하나의 branch 안에 있는 point들을 그 옆 branch의 point들과 연결하면 점을 그릴 수 있다. 이것을 반복하여 위와 같이 line을 생성해준다.

이제 위에서 생성된 기본 입면 line에 이와 겹치는 기하체들을 그려주는 것이다. 위처럼 타원체를 구려 둔 뒤 입면 위에 무작위로 배치한다. 이것을 <geometry>를 이용하여 grasshopper에 연결시켜 준다. 그리고 위에서 생성된 <line>을 <merge multiple>을 이용하여 모두 합쳐주게 된다.

이 다음 단계에서는 < trim with Breps >을 이용하며 <merger>된 모든 line을 <geometry>에 연결된 타원체를 이용하여 잘라준다. 이때 <trim with Breps>의 output은 curve inside, 즉 타원체의 내부에 있는 line부분과 curve outside 즉 타원체의 바깥에 있는 line부분으로 나누어지게 된다. 이제 타원체 바깥에 있는 line들을 원하는 만큼 <extrude>시켜주자.

이제 이 선들을 감싸는 면을 그려보자. 이 때 이용할 component는 바로 <sweep2>이다. 이것에는 section curve와 두 개의 rail curve를 필요로 한다. 먼저 이에 필요한 section curve를 그려보자.
rhino로 돌아가서 각 curve의 끝점을 연결하는 polyline을 그려준다. 이것을 <curve>를 이용하여 grasshopper에 연결시켜 준 뒤 다시 <explode>를 이용하여 위의 polyline들을 최소한의 선 단위로 나누어 준다. 이 결과물은 네 개의 line-like curve이다. 이를 <graft>를 이용하여 각 line-like curve가 하나씩 들어있는 네 개의 data list를 만들어 준다.

Rail curve로는 앞서 사용한 네 개의 curve를 이용하면 된다. 이것을 바로 <graft>를 한 것과 <list shift>를 한 뒤 Graft 한 것을 이용해주면 된다. [1] 이제 이것들을 위와 같이 <sweep2>로 연결하면 면이 생기게 된다.
주의할 것은 만일 결과가 위의 그림과 같지 않다면 rail curve가 data list에 선택된 순서와 section curve의 순서가 일치하지 않기 대문이다. 이럴 때는 제일 처음 <curve>에서 네 개의 curve를 선택할 때 그 순서를 바꿔주거나 <explode>의 S에서 나오는 curve의 list를 <shift list>를 이용하여 그 순서를 바꿔준다.

이제 이렇게 생성된 면들을 이용하여 타원체들을 잘라보자. 이를 위해 주의해야 할 것은 바로 면의 방향(normal vector)이다. 이것에 따라 잘리고 남는 면이 달라지게 된다. <flip>을 이용하면 면의 방향을 뒤집을 수 있다. 이것을 <solid difference> (Intersect > Boolean > Solid Difference)에 연결하여 surface 내부의 타원체들을 남기도록 하자.

위의 방법과 마찬가지로 curve를 연결하여 두 개의 curve를 그린 뒤 이것을 grasshopper에 연결하고 나누어 선을 그리고 입면을 그어준다. 이것을 <extrude> 시켜주면 기존의 입면과 같은 효과를 줄 수 있다.

모든 기하체를 생성한 뒤 <difference>와 <extrude>를 bake 하면 된다.


 


[1] 역자 주: 이 때 section curve가 양 끝에 있는 rail curve와 data matching 될 수 있도록 curve의 선택 순서에 유의 하여야 한다. 또한 <shift list>의 W를 우클릭 하여 boolean을 true로 만들어준다.

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s