건축/라이노강의-그래스호퍼 강의

[제작을 위한 그래스호퍼 #2 / 초급] 선 그리기

코드아키택트 2021. 12. 5. 21:55
반응형

안녕하세요 갈아만든 쌀입니다. 일주가 한달이 되는 기적. 그럼 시작해봅니다.

 

 커브는 굉장히 큰 개념이다

직선, 곡선, 폴리라인(여러 선의 조합) 등으로 구성된다
 호, 직선, 원 등과 같이 우리가 흔히 아는 식으로 정의할 수 있는 선의 경우 primitive라고 칭하며, 아주 복잡한 커브는 spline이라 부르며 belzier curve 원리를 보통 따른다

 커브를 다루려다보니 생각보다 큰 개념이라는 것을 까먹고 있었습니다. 커브는 위에 언급한것처럼 직선,곡선,폴리라인 등을 이야기합니다. 그래서 각자의 특성을 잘 모르고 쓰면 큰일날 수도 있습니다. 우선 간단한것 부터 해보겠습니다. 오늘은 간단한 직선부터 시작해서 폴리라인, 스플라인 까지 가보겠습니다.

 

들어가기전에

 이제 깃허브에 차곡차곡 올릴 예정입니다. 여러 예제를 때려박은 다음에 필요한 단위만큼 온오프 기준으로 돌아갈 수 있도록 하겠습니다. 그래서 간단하게 기능들을 보여드리겠습니다.

그래스호퍼 내 선택과 뷰포트

위와 같이 선택하게 되면 초록색으로 보입니다. Display 안에서 클릭시 보일 색상을 바꿀 수도 있습니다.

 

이상태에서 각 배터리 위 말고 캔버스 위에서 우클릭하면 위와같은 메뉴를 볼 수 있습니다.

 Preview On/ Off : 미리보기

Enable / Disable : 계산 끄기

Bake : 굽기. Grasshopper 내에 임시로 가지고 있는 것이 아닌 rhino 내부로 export라고 보면 됨

Zoom: 현재 선택된 geometry 줌

Group : 그룹합니다. 

Cluster : 하나의 컴포넌트로 만듭니다. 개인적으로 비추합니다.

 일단 위 정도만 알고 넘어가도록 하겠습니다. 제가 최대한 단위를 나눠서 preview off 해놓고 내보내도록 하겠습니다. 컴퓨터 사양이 부족하시다면 필요한 부분을 제외하고 disable하는것도 방법입니다.

 

직선

 직선은 크게 두가지 방법이 있습니다. 두 점을 잇던지, 아니면 시작점, 방향, 길이를 지정해 바꿀 수 있습니다. 바로 갑니다.

 

Pt 2 Pt

위와 같이 각 점의 위치를 이용해 선을 그을 수 있습니다

 

 Point + Direction

시작전에 grouping먼저 하겠습니다.

 

 이제  x,y,z 방향으로 선을 만들어 보겠습니다.

위에 보시면 각각 vector방향으로 선이 생기는 것을 볼 수 있습니다. 특이한 점은 한군데 세개의 배떠리가 연결된 것일텐데, 이는 shift키를 누르시면 할 수 있습니다. 갑자기 세개씩 나와서 당황스러울수도 있는데, grasshopper의 자료구조인 tree의 아주 초급판이라고 보시면 됩니다.

 사실 grasshopper는 tree구조를 얼마나 잘 다루느냐 싸움입니다. 다른 프로그래밍 언어로 따지자면 tree는 자료구조에서 다루는 tree가 아니라 nested list정도 됩니다.

 

곡선

빠르게 가야지

Primitive - 원

위의 세가지 또는 그 이상 방법으로 원을 만들 수 있습니다. 사실 cnr로 되어있는 거 말고는 많이 안써봤습니다.

p,r 인풋은 plane, radius로 어떤 타입을 받는지는 마우스에 올려보면 됩니다. 재미난 점은 가끔 타입대로 안넣어도 작동하는 점입니다. 예를들어 plane에 포인트를 넣게 되면 기본적으로 xyplane으로 인식하기 때문에 돌아가긴 합니다. 이런 특징을 항상 잘 파악하시고 해야 나중에 큰 문제가 생기지 않습니다. 그럼 각각 해보돌고 하겠습니다.

 위의 3포인트 원은 빼놓도록 하겠습니다.

 

 Circle with Plane

평면으로  circle을 만드는 방법입니다

위에서 한내용이라 비슷한게 많아 넘어가도록 하겠습니다.

 

Circle with Normal

 여기서 보실점은 원래 center포인트는 point를 받아야 하지만 plane으로도 된다는 점입니다. 이러한 숨은(?)기능들이 여기저기 있으니, 한번씩 해보시기를 추천합니다.

 

응용 : 사인커브 만들기

벨지에 커브?

너무 알려고하면 크게 다칩니다. 벨지에 커브라는게 여러 버전이 있는데 위는 Quadratic Curve입니다. 이게 저도 쉽게 얘기는 못하는데, 위의 예로는 P0와 P1 사이 1/4 3/4 지점에 점을 만들고, P1,P2사이에 다시 1/4,3/4지점에 점을 만들어서 직선을 만듭니다. 다서 그 직선을 또 1/4, 3/4에 점을 만들고 이어서 직선이 충분히 작아지면 곡선이나 마찬가지니 그렇게 되는 원리입니다.  자세한 설명은 https://www.youtube.com/user/longnguyenphuoc 이분의 강의중 하나에 나옵니다.

 

다시   Spline으로

  Spline도 위의 Belzier Curve의 일종이라고 보면 됩니다. 자세한 내용까지는 알 필요 없으니 그정도만 알면 될것 같습니다. 단, 실무에서 제작을 고려하는 용도라면 spline은 좋은 수단은 아닙니다. 왜냐하면 커브를 설명하기가 어렵기 때문에 제작할때도 문제가 되는일이 많습니다. 이와 관련된건 나중에 다뤄보도록 하겠습니다.

 여기서 tree 구조를 완전히 말을 안할순 없습니다.  Spline을 만드려면 원하는 point들이 하나의 branch 안에 있어야 합니다. 확인하는 방법은 아래에

Tree를 확인하는 방법은 두가지 입니다. 하나는 패널을 이용해서 간단히 보거나, 아니면 위에 보이는 tree view를 통해 볼 수 있습니다. 

 패널은 캔버스 더블클릭후 "만 입력해도 가져올 수 있습니다.

 

Spline만들기

지난번 sine 포인트 만들기를 가져왔습니다. 이미 하나의 branch안에 있기 떄문에 크게 문제가 되지 않습니다. 

 

더해보기 : 브랜치

 각 브랜치는 독립적으로 움직입니다. 이게 구조의 핵심인데, 그렇습니다. 그래서 어떤 커맨드를 넣었을때 각 브랜치 안에서 독립적으로 이뤄지며, 어떤 계산은 브랜치 vs 브랜치로 이루어 집니다. 오늘은 아주 간단하게 다루기만 하고 넘어가보도록 하겠습니다.

  앞에서 만든 sine 포인트를 여러 브렌치에 동일하게 만들어 봤습니다. 설정을 통해 9개의 브렌치가 생긴걸 볼 수 있죠. 이제 이떄 바로 spline을 만든느 것과 flatten을 통해 어떻게 바뀌는지 보겠습니다.

 

좀더 직관적인 이해를 위해서 polyline을 사용했습니다. interpolate 또는 spline과 차이점은 직선을 만들어 준다는 점입니다.

 위에서 보시면, flatten이전에는 각각 branch가 독립적으로 작동하지만, flatten을사용하면 하나로 통합된느 것을 볼 수 있습니다. 사실 지금 이해가 안갈수도 있습니다. 하지만 앞으로 계속 보게될 내용이니 참고가 되길 바라며 올려봤습니다. 

 

오늘 자료 깃허브 주소는 https://github.com/Chaeguevara/Rhino/tree/master/Grasshopper/Begginer 입니다

반응형