ARKBOX 건축사사무소

[GRASSHOPPER]for문 이용하여 점 찍기 본문

RHINO/PYTHON

[GRASSHOPPER]for문 이용하여 점 찍기

ARKBOX 건축사사무소 2018.05.08 21:34

 

for문을 이용해서 rhino에 점을 찍어 보도록 하겠다. 

rhino에서 점, 선 , 면 등을 그리기 위해서는 rhinoscriptsyntax라는 모듈을 불러와야 한다.

python 에서 모듈을 불러오기 위해서는 import명령어를 사용한다. rhinoscriptsyntax라는 모듈이름이 너무 길다고 생각이 되므로 as 라는 명령어를 이용해서 rs로 단축시켜서 간편하게 만든다.

이런 기능은 python의 장점 중의 하나라고 생각이 된다. 


rhino 6 의 grasshopper 안에 있는 python에서는 미리 rhinoscriptsyntax 모듈을 부르는 명령이 써져 있다. rhino 5에서는 수동으로 불러오면 되겠다. 

 

불러오는 명령은 

import rhinoscriptsyntax as rs

이다.

rs라는 단축명령을 이용해서 라이노에 점, 선, 면등등을 표현해 보자.


for문은 반복을 명령을 실행해 준다. 

for i in range(10):


이렇게 for 문을 이용하면 0부터 9까지 1씩 증가하면서 명령을 실행하게 된다. 

반복할 명령은 점을 표시하도록 하는 것이다. 

점을 찍어주는 명령을 하기 전에 미리 점을 넣어줄 빈바구니 즉 배열을 만들어 준다. 

배열은 for문 전에 만들어 준다. 

빈 배열을 만드는 것은 간단하다. 그냥 배열로 쓸 이름을 쓰고 대괄호[]를 쓰면 빈 배열이 된다.

list = []

list라는 배열이 만들어진다 . 

append 라는 명령은 배열에 하나의 물건을 넣어주는 것이다. 여기서는 점이 물건이 되겠다. 

list.append(점)

이런 식으로 하면 점이 list배열에 들어간다.

그럼 점을 표현하려면 어떻게 하면 될까?

rhinoscriptsyntax 모듈에는 여러가지 명령어가 있는데 여기에 AddPoint를 이용하면 점이 생성이 된다. 

rs.까지만 입력을 하게 되면 자동완성창이 뜨게 되는데 거기서 사용하고자 하는 명령어를 찾아 사용하면 편리하겠다. 

rs.AddPoint(0,0,0)

이렇게 되면 0,0,0 좌표에 점이 찍히게 되는 것이다. 

for 문에서 i는 0에서부터 9를 반복적으로 나타내므로 이것을 응용하면 

for i in range(10):

list.append(rs.AddPoint(i,0,0))

이렇게 하면 0,0,0부터 9,0,0의 10개의 점이 생기게 된다. 

 

실행을 하게 되면 에러가 뜰 경우가 생기는데 몇 번째 줄에서 에러가 발생했는지 아래에 나오니 참고하여 수정하면 될것이다. 위에서는 16번째 줄에서 에러가 났다고 하는데 그 위에 append에서 괄호를 닫지 않아서 생긴 경우이다. 16번째 줄에 아무런 이상이 없다고 생각이 된다면 근처줄에서 에러가 발생하지 않았나 검토해 본다. 

python 컴퍼넌트에서 a가 output으로 설정이 되어 있으므로 list를 a에 물려주면 rhino에서 점들을 볼수가 있다.

a = list


전체를 적어보면


import rhinoscriptsyntax as rs

list = []

for i in range(10):

    list.append(rs.AddPoint(i,0,0))

a = list


이렇게 된다.

y, z 좌표도 변경해 가며 응용을 해 볼 수 있다. 








'RHINO > PYTHON' 카테고리의 다른 글

[GRASSHOPPER]for문 이용하여 점 찍기  (0) 2018.05.08
[GRASSHOPPER]for 문  (0) 2018.05.05
[GRASSHOPPER]HELLO WORLD  (0) 2018.05.02
0 Comments
댓글쓰기 폼
ARKBOX ARCHITECTS
Design & Consultant
Architectureㆍ InteriorㆍGreen Building
RenovationㆍBIMㆍParmetric Design