글라스호퍼 프로그램 흐름

2015. 2. 26. 09:57grasshopper/기본

글라스호퍼로 뭔가를 만드는 것은 일반 프로그래밍과 별반 다르지 않다. 

일반 프로그래밍과 다른 점은 각 명령어 대신 컨퍼넌트를 사용하고 컨퍼넌트를 연결하여 직관적으로 보면서 작업이 가능하기 때문에 즉각적으로 볼수 있고 따라서 직접 디버깅(고치는 작업)도 용이하다.


글라스호퍼의 프로세스를 알아보기 위해 간단하게 기둥모양을 만들어 보려한다.

[글라스호퍼 프로그래밍]


[라이노 모형]



1.

커브를 하나 그려준다.

2.

글라스호퍼에서 지오메트리 컨퍼넌트를 생성한다.

3.

지오메트리 컨퍼넌트에서 마우스 오르쪽 버튼을 눌러 Set one Geometry를 눌러 앞에서 만들었던 커브를 선택한다.

4.

5.

Divide 컨퍼넌트를 추가 하고 지오메트리를 Divide컨퍼넌트의 C(curve)에 연결한다.

기본적으로 Divide의 N(count)는 10으로 정해져 있다. 커브를 디바이드컨퍼넌트를 이용해서 10등분한 결과를 나타낸 것이다.

6.

Divide의 분할 갯수를 변경하기 위해 슬라이드 컨퍼넌트를 하나 만든다. 글라스호퍼 캔퍼스에서 마우스왼쪽 버튼을 더블클릭하고 원하는 컨퍼넌트의 이름을 쓰면 관련 컨퍼넌트목록이 나오는데 숫자를 입력하면 넘버 슬라이드가 나오고 그것을 선택하면 입력한 숫자가 들어가 있는 넘버슬라이드가 생성된다.


만든 넘버슬라이드를 Divide의 N에 연결하면 분할갯수가 바뀐다.

적당하게 변경해 본다.

7.

캔버스에 마우스 왼쪽버튼 더블크릭을 이용하여 Circle CNR을 생성한다. 캔버스에서 마우스 왼쪽 버튼을 더블클릭하는 기능은 정말 편리하다. Circle CNR은 원을 만들어주는데 중심점과 normal, 반지름을 이용한다. normal은 방향을 나타내주는 값이다.

divide의 p(point)를 circle CNR의 c(center)에 연결한다. 분할점에 원이 생긴것을 볼 수있다.

divide의 t(tangent)와 circle CNR의 N(normal)을 연결하면 커브의 방향과 각 원의 방향이 일치하게 된다.

8.

원의 반지름을 변경하기 위해 Graph Mapper를 이용한다. 

Graph Mapper의 옵션에 보면 Graph types가 있는데 취향에 맞게 사용하면 되겠다.

9.

graph mapper를 사용하기 위해서는 입력된 커브를 Reparameterize해야 한다.이것은 분할점의 간격을 0에서부터 1로 데이터를 재생성해 준다.

10.

graph mapper의 출력값은 0에서 1사이이기 때문에 반지름으로 사용하기에는 너무 작다. 따라서 일정값을 곱해줘서 원하는 모양을 만들어 본다. 곱하기 기능이 있는 multiplication을 이용하여 반지름을 입력값을 만들어준다.

11.


생성된 원에 Loft 컨퍼넌트를 연결해주면 원기둥 서페이스가 생성된다.






글라스호퍼 파일

ex1.gh