본문 바로가기
GH Python/튜토리얼

그래스호퍼 파이썬 | AddPoint 포인트 생성 및 포인트 그리드

by 한동주 2022. 3. 21.
반응형

이번 포스팅에서는 rhinoscriptsyntax의 가장 기본적인 함수인 AddPoint를 다룹니다.

 


동영상 설명

https://youtu.be/tGlcGmbMXoo

 

Construct Point

 

먼저 rhinoscriptsyntax를 rs로 import 해옵니다. 그 후 rs.을 입력하면 많은 함수들이 나오는데, 포인트를 추가하는 건 AddPoint 함수입니다. 괄호 안에는 좌표를 넣어주면 되는데 먼저 0,0,0을 입력해봅니다. 그리고 파이썬 컴포넌트에서 출력하는 곳을 보면 a가 있습니다. 이 a에 우리가 만든 포인트인 p를 할당해줘야 합니다. 그래서 마지막으로 a = p를 하면 만든 포인트를 라이노 뷰포트 상에서 볼 수 있습니다.

 

 

그래스호퍼 컴포넌트인 Construct Point를 그래스호퍼 파이썬에서 rhinoscriptsyntax로 구현하는 법입니다.

 

먼저 입력값을 X, Y, Z 세개로 만들어줍니다. 그리고 앞에서 만들었던 코드에서 좌표를 넣는 곳에 X, Y, Z를 넣어주면 Construct Point와 동일하게 작동하는 코드가 완성된 것입니다.

 

이 간단한 AddPoint 함수와, for loop을 활용하여 포인트를 나열하는 방법을 알아보겠습니다.

 

 

Point Grid 2D

 

먼저 x축과 y축으로만 포인트를 나열하는, Point Grid 2D를 만들어보았습니다. 2D 포인트 그리드를 만들기 위해서는 for loop을 두번 써주어야 합니다. pts 라는 빈 리스트를 만든 뒤, for loop에서 p 라는 포인트를 만듭니다. 그리고 그 포인트를 pts 안에 append 시켜주면 pts라는 포인트 리스트가 생깁니다. 마지막으로 Pt라는 아웃풋에 pts를 할당해주면 100개의 포인트가 생깁니다.

 

넘버 슬라이더를 움직이면서 x축과 y축 각각 몇줄씩 만들 것인지 조절할 수 있습니다. 이때 x와 y는 int로 입력되어야 합니다. 그러므로 인풋에서 우클하여 int로 바꿔주거나, 사진상의 코드에서 두번째 줄에

x = int(x)
y = int(y)

를 추가로 입력하여 int로 자료형을 변환해줄 수 있습니다.

 

 

그런데 이 코드는 각 포인트 사이의 거리가 1인 포인트만을 만들어줍니다. 이 포인트 사이의 거리를 더 크게 하고 싶다면 다음과 같이 하면 됩니다.

 

Point Grid 2D with scale

6번 줄에서 좌표를 입력해줄 때 i와 j에 스케일값인 SC를 곱해주었습니다. 왼쪽 하단의 스케일 값을 곱해주기 전의 기본 Point Grid 2D가 빨간색으로 나타나고 있고, 스케일값을 곱해준 결과가 화면상에 보이는 초록색 점들입니다.

 

 

Point Grid 3D

 

 

그럼 2D로 만들었으니 위로도 올려 Point Grid 3D를 만들어볼까요? 이번에는 바로 스케일값을 추가하여 만들어봤어요. 4번줄에서 for loop을 한번 더 추가해주었습니다. 그래스호퍼 파이썬 에디터에서 코드를 드래그 한 뒤 탭을 누르면 한번에 들여쓰기가 가능합니다.

 

 


이렇게 rhinoscriptsyntax의 아주 기본적인 함수를 사용하여 그래스호퍼의 기본적인 컴포넌트를 따라 만들어 봤습니다. 혹시 따라 하시다가 잘 안된 부분이 있으셨거나 궁금한 점이 있다면 언제든 댓글 남겨주세요!

반응형

댓글