본문 바로가기
그래스호퍼/활용

그래스호퍼 QGIS를 활용한 콘타 자동 생성 | 03 도로 만들기

by 한동주 2022. 2. 22.
반응형

 

이번 포스팅에서는 도로 만드는 코드를 작성하는 법에 대해 다룹니다.

 


오늘 작성할 코드

 

전체 영상

 

이 영상을 보고 따라 만들어도 되고, 밑의 글과 사진을 보고 만들어도 돼요.

 


앞선 코드를 작성할 때 사용했던 동일한 dxf 파일을 라이노로 불러와요. 이전 포스팅에서 다운 받을 수 있어요. 그리고 동일하게 Scale 명령어를 사용해 1000배 키워줘요.

 

Layer Reference 컴포넌트를 불러오고, Layer에는 Road Hatch를 패널에 작성하여 연결해줘요. Toggle에는 Boolean Toggle 컴포넌트를 연결하고 더블 클릭하여 True로 바꿔줘요.

 

Match Text를 불러와 T에는 Layer Reference의 Geo를, P에는 Polyline Curve를 패널에 작성하여 연결해줘요. 그리고 Cull Pattern을 불러와 L에 Geo를, P에 Match Text의 M을 연결해요. 이렇게 하면 Cull Pattern에는 도로 커브만 남을 거예요.

 

Boundary Surfaces, Region Union, Boundary Surfaces를 순서대로 불러와 연결해줘요. 동일한 컴포넌트를 두번 썼는데, 도로를 하나로 합치는 작업이에요.

 

Extrude를 불러와 Boundary Surfaces와 연결해주고, D에는 Unit Z패널에 200을 입력하여 연결해줘요.

 

Bounding Box 컴포넌트를 불러와 앞의 Cull Pattern과 연결해줘요.

 

그리고 Bounding Box를 우클릭 하고 Union Box를 체크해줘요.

 

Bounding Box의 출력값을 Deconstruct Brep을 불러와 연결해줘요. 그리고 다시 한번 ExtrudeUnit Z를 연결해주는데, 이번에는 패널에 500을 입력해줘요.

 

이번에도 동일하게 Extrude, Unit Z, 500 패널을 연결해줘요. 그리고 Extrude의 B에는 Boundary Surfaces를 연결해줘요.

 

그리고 Solid Difference 컴포넌트를 불러와 A에는 Deconstruct Brep과 연결한 Extrude를, B에는 Boundary Surfaces와 연결한 Extrude를 연결해줘요. 이 순서가 중요해요.

 

Extrude를 다시 한번 불러와요. 그런데 이번에는 D에 Negative를 연결해준 다음, 거기에 Unit Z를 연결해줘요. 그리고 *를 입력하여 Multiplication(곱하기) 컴포넌트를 불러오고, B에는 1000을 입력한 패널을, A에는 100을 입력하여 0~100의 범위를 가진 넘버 슬라이더를 연결해줘요. 이 작업은 미리보기에 보이듯이 바닥을 박스처럼 만들어주는 작업이에요. 사람에 따라 굳이 필요하지 않을 수도 있어요.

 

이제 다 끝났어요! 라이노에서 사용하려면 사진에 보이듯이 Extrude, Solid Difference, Extrude 이 세 개만 Bake 하여 사용하면 돼요. 이제 보기 좋게 미리보기 하는 작업을 해줄게요. Custom Preview와 Colour Swatch 컴포넌트를 불러오고 M에 Colour Swatch를 연결해줘요.

 

그리고 G에 각각 하나씩 연결해주고, 색을 조금 조절해줘요. 맨 위의 Extrude가 도로이니 도로 색처럼 짙은 회색으로 해줄게요. 이러니 도로가 확 구분이 돼요.

 

Custom Preview를 제외한 모든 컴포넌트의 미리보기를 끄고, 렌더링뷰로 본 사진이에요. 깔끔하게 도로만 남은 걸 볼 수 있어요.

 

오늘 작성한 코드. 클릭하면 고화질로 볼 수 있어요

 

이렇게 도로를 만드는 코드를 모두 작성했어요. 이렇게 작성한 코드에, 이전에 작성한 건물 매스를 만드는 코드를 함께 불러와 사용하면 건축 매스 만들기 자동화가 되는 거예요. 그런데 이 코드를 작성할 때 활용한 dxf 파일을 어떻게 만드는지가 필요할 거예요. 그에 대해선 다음 포스팅에서 알려주도록 할게요.

 

혹시 코드를 따라 작성해보면서 잘 안되는 게 있었거나, 모르는 게 있었다면 댓글로 남겨주세요.

반응형

댓글