Artgineer_기술 배우는 아티스트
[인표몬의 그래스호퍼] 브랜치와 브랜치 데이터를 비교하기 - Flatten Tree 본문
50*50*30 의 솔리드 1개가 있습니다.
이것을 그래스호퍼에 할당하고 이 솔리드의 각 면에서 제일 넓은 면적 1개와
또 다른 솔리드의 제일 넓은 면적 1개의 데이터의 브랜치를 평탄화해 보려고 합니다.
이와 같이 Deconstruct Brep 으로 면을 나눈 후,
Face Output에서 Area 로 연결.
즉 면들의 면적을 구합니다.
{0;0} 이라는 트리 안에 6개(0~5)의 값이 출력됩니다.
그럼 Brep 안에 또 다른 솔리드를 동시에 할당 시키면 어떻게 될까요?
이번엔 20*20*40 솔리드를 추가로 모델링하여 두 개체를 동시에 할당해보았습니다.
브랜치가 {0;0} 와 {0;1} 로 분리되어 데이터가 출력되었습니다.
그럼 여기서 각 브랜치의 각 가장 큰 면을 선별하기 위해서는
sort list 컴포넌트를 사용하여 오름차순으로 정렬한 뒤, Item List 컴포넌트로 가장 첫번째에 해당하는 데이터만을 출력하도록 합니다.
이렇게 하면 가장 작은 면을 추출한 것이므로 반대로 가장 넓은 면을 출력하도록 바꿔줘야 하는데요,
Item List의 I(Item) Input 값에 -1을 대입해주면 됩니다.
여러 개체들의 가장 큰 면을 모두 추출했습니다.
그러면 모든 개체들 중 제일 큰 면을 알고싶으면 어떻게 하면 될까요?
각각 개체별로 브랜치로 나뉘어져 있어서 독립 계산을 하기때문에 모든 개체의 면 중 가장 큰 면을 추출하기란 불가능하죠..
여기서 필요한 컴포넌트는 Flatten Tree 입니다.
해당 알고리즘 앞부분에 Flatten Tree 을 선행해주시면 브랜치가 제거되고,
각 면을 추출한 후 정렬, 그리고 가장 넓은면 단 하나의 데이터를 출력하게 됩니다.
이렇게 Flatten Tree 를 선행 배치하여 데이터 트리를 단순화하여 모든 브랜치를 통합시켜 준 뒤, 작업하시면 모든 개체들 중 가장 큰 면적을 가진 면의 면적을 계산할 수 있게 됩니다.
'Grasshopper ⚙️' 카테고리의 다른 글
그래스호퍼로 개체 벤딩(bending) 또는 폴딩(folding)하기 (0) | 2025.04.03 |
---|---|
산업 디자이너라면 필수로 배워야 할 그래스호퍼 (0) | 2025.03.25 |
[인표몬의 그래스호퍼]목재 데크 자동설계 알고리즘 (4) | 2024.07.30 |
[인표몬의 그래스호퍼]주사위게임 알고리즘 만들기 (0) | 2024.05.08 |
[인표몬의 그래스호퍼]라이노로 견적 산출하기(part.1 환봉 무게 및 가격 산출) (0) | 2024.04.11 |