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

그래스호퍼 파이썬 | Surface 만들기 PlanarSrf, Loft, Sweep1, Sweep2

by 한동주 2022. 4. 8.
반응형

 

 

 

이번 포스팅에서는 rhinoscriptsyntax를 이용해 라이노의 PlanarSrf 혹은 그래스호퍼의 Boundary Surfaces 컴포넌트 그리고 Loft, Sweep1, Sweep2를 사용하는 방법을 다룹니다.


동영상 설명

 

https://youtu.be/1VzfWkQsSRw

 

 

rs.AddPlanarSrf

 

 

라이노에선 PlanarSrf, 그래스호퍼에선 Boundary Surfaces 라는 이름의 컴포넌트로 존재하는 이 기능을 그래스호퍼 파이썬 rhinoscriptsyntax에선 AddPlanarSrf 라는 함수로 사용할 수 있습니다. Closed Crv를 만들기 위해 사각형을 하나 만들겠습니다. 사각형은 AddRectangle이라는 함수로 사용할 수 있는데, 인수로 plane과 width, height를 받습니다. plane을 만들기 위해 WorldXYPlane이라는 함수를 사용했습니다. WorldXYPlane은 라이노 월드의 XY Plane을 만들어주는 함수로, 인수로 아무것도 받지 않고 리턴으로 World XY Plane을 리턴합니다. 이 plane을 pl이라는 변수로 할당시켜주고, 사각형의 Plane으로 사용합니다. 사각형의 가로 세로 크기는 각각 10으로 만들어줍니다. 이 사각형을 rec이라는 변수로 할당합니다.

 

이렇게 rec이라는 이름의 closed crv를 만들었으니 이것으로 면을 만들려면 PlanarSrf를 사용하면 됩니다. AddPlanarSrf의 인수에 rec을 넣어주면 됩니다.

 

 

 

rs.AddLoftSrf()

 

 

다음으로는 Loft에 대해서 알려드리겠습니다. 라이노에서 Loft는 여러개의 커브에 대해 사용하는 명령어입니다. 그러니 파이썬에서 사용하려면 역시 커브를 만들어야겠죠. 세개의 굴곡진 커브를 만들고 그래스호퍼에 참조해옵니다. 그리고 이걸 python 컴포넌트에 연결해줍니다.

 

Loft는 AddLoftSrf라는 함수로 사용할 수 있습니다. 그런데 지금 이렇게 바로 사용을 하면 오류가 납니다. 여러개의 커브를 Item Access로 받아왔기 때문입니다.

 

 

그래서 커브를 받아올 때 List Access로 받아와야 합니다. 이렇게 함으로써 Loft를 할 수 있습니다.

 

 

 

rs.AddSweep1()

 

Sweep1은 레일 하나와 그 레일을 따라 서피스를 만들 커브(shape)를 통해 사용할 수 있습니다. 이때 레일은 단 한개지만 shape은 여러개일 수 있습니다.

 

sweep1을 사용하기 위해 원을 하나 만들어주고, shape crv를 하나 만들어준 뒤 그래스호퍼에 참조해옵니다. 이들을 각각 rail과 shape이라는 이름으로 파이썬 컴포넌트에 연결해줍니다. 그리고 AddSweep1 함수의 인수에 rail과 shape을 넣어줍니다. 그런데 이렇게 하면 오류가 날 것입니다.

 

 

앞서 말씀드렸듯이 shape은 여러개의 커브일 수 있기 때문입니다. AddSweep1 함수를 보면 shape을 받을 땐 리스트로 받아야 하는 것을 알 수 있습니다. 그러므로 파이썬 컴포넌트의 shape 인풋을 List Access로 바꿔줍니다. 이제 오류 없이 작동할 것입니다.

 

 

 

rs.AddSweep2()

 

 

Sweep2는 두개의 레일과, 아무런 개수의 shape으로 사용할 수 있는 명령어입니다. 이걸 위해 두개의 레일을 각각 만들어 참조해오고 파이썬 컴포넌트에 연결해줍니다. AddSweep2 함수에서 rails 인수는 리스트로 받아야 합니다. 그러므로 각각 받아온 rail1, rail2를 [rail1, rail2]로 입력함으로써 함수의 인수로 넣을 때 하나의 리스트로 넣어줍니다.

 

 

이때도 마찬가지로 shape을 List Access로 받아와야 오류 없이 작동할 것입니다.

 


이상으로 rhinoscriptsyntax를 통해 그래스호퍼 파이썬에서 Surface를 만드는 다양한 함수를 알아봤습니다. 저도 rhinoscriptsyntax를 처음 공부할 때 PlanarSrf(Boundary Surfaces)의 기능을 하는 명령어가 무엇인지 못 찾겠어서 한참 헤맸던 기억이 있어요. 그런데 이 포스팅에서 보셨듯이 어떤걸 만드는 함수는 대부분 앞에 Add가 붙습니다. AddRectangle, AddPlanarSrf와 같이 말이에요. 함수를 찾을 때 이걸 기억하고 검색하면 좀 더 빠르게 찾을 수 있을 거예요. 더 자세한 설명을 원하신다면 유튜브 영상을 확인해주세요!

 

 

 

 

 

 

반응형

댓글