본문 바로가기
Grasshopper

[인표몬의 그래스호퍼] 그물 자동설계 알고리즘(어린이 놀이시설)

by 인표몬 2024. 1. 3.
반응형

 먼저, 이 포스팅은 개인 기록용임을 알립니다.
 
 해당 알고리즘은 제작자가 현재 재직중인 회사에서 개인적으로 사용하고 있습니다. 회사의 업무지시에 의해 제작하진 않았지만 회사의 정보(재산)이 공유될 위험이 있으므로 포스팅 내용에 정보성이 일부 제한적일 수 있으며, 외부로 알고리즘 파일을 절대 배포하지 않습니다.
 
※ 이 알고리즘은 지식 재산권으로 보호받으며 저작자의 허가를 받은 사람 외에 아래와 같은 행위를 엄금합니다.
1. 저작자의 허가를 받지 않은 다른 사람의 복제·전송·배포·개작 등의 이용.
2. 외부/타인에게 배포하는 행위.
*허가받은 사용자: 저작자로부터 직접 배포받은 사람.
*저작자: 홍인표
 
 


 
 
어린이 놀이시설의 파이프-그물 놀이 자동설계 알고리즘 소개입니다.
2023.12.28 V2.0 업데이트를 하였습니다.
 

*버전 2.0 업데이트 내용
1. 그물(네트)의 시작점/끝점 설정 노드가 제거되었습니다.
2. 그물(네트) 설계 알고리즘이 아래와 같이 개선되었습니다.
  1) 네트가 자동으로 파이프 외경으로부터 시작됩니다.
  2) 알고리즘과 매뉴얼을 분리/작성하였습니다.
  3) 램 과부하를 줄이기 위하여 일부 Output 프리뷰는 기본값 Off 로 시작합니다.
  4) 네트 자동 치수 알고리즘 초안이 완성되었습니다.

 
※ 아래에 algorithm 소개를 위한 몇 장의 GIF파일이 있습니다.
 
 


조건1. 우선 2rail(sweep2) 기반으로 짜여진 알고리즘으로써 파이프를 구성 할 2개의 커브가 있어야 합니다.
조건2. 파이프는 밴딩 및 용접하여 제작하며 하나로 이어진 자율곡선이 아닌 나누어진 호 또는 직선이어야 합니다.
조건3. 이 알고리즘은 그래스호퍼 애드온인 엘레프론트(elefront)런치박스(lunchbox)가 사전 설치되어있어야 정상 작동이 가능합니다.
 
 
애드온 설치: https://www.food4rhino.com/en

 

Food4Rhino

www.food4rhino.com

위 사이트에서 원하는 애드온을 검색 후 엘레프론트, 런치박스 등을 설치할 수 있습니다.
 
 
 
 
 

1. 위 조건1 을 따르는 호 2개 배치

 

자율곡선이 아닌 호 입니다.

 
 파이프는 자율곡선으로 밴딩하기 어렵기 떄문에 반드시 중심점과의 거리가 일정한 호를 사용합니다.
 커브 2개를 알고리즘에 할당하면서 다음 과정을 따릅니다.
 
 
 

2. 그물네트 칸 수 조절 가능.(등간격)

그물 칸 개수를 실시간으로 설정하며, 안전기준에 따라 칸의 크기가 작아질 수록 점차 붉은색으로 표현됩니다.

 

 
어린이 놀이시설물 안전기준에 따라 얽매임 치구(안전인증 검사에 사용하는 탐침봉)가 그물을 통과해야 하므로
한 변의 줄 길이가 270mm(오차 +40mm) 미만일 경우 붉은색, 그 이상일 경우 푸른색으로 표현되도록 설정했습니다.
 
 
 
 
 
 
현재 공정에서는 등간격으로 나뉘지만 후공정에서 네트 체결부속을 배치할 경우 양 끝 길이는 달라질 수 있습니다.
 
예를들어 현재 작업과정에서 300 / 300 / 300 / 300 / 300 (mm) 으로 나눴다고 해도
후공정에서 커브 양 끝에 부속 배치 시
350 / 300 / 300 / 300 / 350 (mm) (양 끝 +50mm)이 될 수도,
290 / 300 / 300 / 300 / 290 (mm) (양 끝 -10mm)이 될 수도 있습니다.
 
어찌저찌 등간격으로 하라면 할 수는 있으나
이는 체결부속 먼저 사전배치 후에 비로소 그물을 구성하라는 뜻이므로 해당 알고리즘에는 부적합하다고 할 수 있습니다.
 
해당 사안은 설계 공정상 제작자가 감내해야 할 리스크입니다.
 
또한 후작업으로 파이프와 그물을 체결하는 부속을 사용할 것이기 때문에 커브는 자동적으로 파이프 외경에서부터 시작 됩니다.
 
호와 호 간에 loft 또는 sweep1 된 Srf가 가상에 존재하며, 그것을 lunchbox 기능인 quadpanel 로 분할, line을 crv로 출력하여 보여주는 기능입니다. 
 
 
 
 

3. 파이프 외경에서 시작되도록 설정.

 

파이프 외경을 실시간으로 조절, 그에 따라 네트 끝점도 파이프의 외경을 따른다.

 
파이프 외경 사이즈를 조절할 수 있습니다.
이를 따라서 커브가 파이프 외경에서부터 시작됩니다.
네트가 체결되는 플레이트 용접 위치도 pt(점)로 추출할 수 있습니다.
 
밴딩 파이프의 경우 힘들지만 직선 파이프의 경우 레이저 마킹을 위함.
 
호와 호 사이를 잇는 커브가 파이프에서 시작되게 하는 법은 다소 복잡하고 내용이 많으므로 추후 포스팅에서 다루도록 하겠습니다.
 
 
 

4. 파이프 마감 캡(평마감/둥근캡마감/캡 없음)

Value list 노드를 사용했습니다. 파이프 마감 형태를 지정할 수 있습니다.

 

 
 
 
 
 
 
 
판 막음 = 1
둥근 캡 = 2
캡 x  = 2² - 1
Null = Sqrt(16)
 
 
 
 
 
 
 
 
이는 그래스호퍼의 pipe 알고리즘의 기본 기능입니다. value list를 연결하고 1, 2, 2² - 1, Sqrt(16) 값을 선택함으로써 캡 유무를 지정할 수 있습니다.
 
 
 
 

5. 230mm 얽매임 치구 미리보기/자동배치

어린이 놀이시설 안전기준에 따라 얽매임 치구를 그물의 각 칸에 자동 배치. 그물 칸 수를 조정해도 적용됩니다.

 
상기하였던 붉은색-푸른색의 색상표현으로 안전기준에 적합한 지 시각적으로 확인이 가능하지만
보다 정확하게 볼 수 있도록 얽매임 치구를 각 칸 중심에 배열하도록 셋팅했습니다.
 
규모가 큰 네트에 일괄 적용할 경우 램 과부하로 라이노가 강제 종료될 수 있습니다. 사용시 주의가 필요합니다.
 
quadpanel 로 나뉜 각 Srf 에 area 알고리즘으로 각 센터를 잡은 후, 해당 pt에 sphere(250mm)를 생성하도록 했습니다.

 
 
 

6. 네트 체결부속 자동 배치

그물 네트 체결부속을 자동 배치합니다. 원하는 커브를 선택하면 자동배열 됩니다.

 
체결부속은 설계 도중 변경 될 여지가 있다고 판단하여 라이노에서 블록인스턴스화 했습니다.
블록인스턴스를 그래스호퍼의 노드에 할당하기 위해서는 엘레프론트(elefront) 라는 그래스호퍼 애드온(addon)이 필요합니다. 엘레프론트는 무료 애드온이며 https://www.food4rhino.com/en 에서 설치 가능합니다.
 
블록화 하는 이유는 체결부속 하나만 교체해 줌으로써 동일 블록이 교체되는 상황으로 수정이 용이한 작업환경을 만들기 위함입니다.
 
 
 
 

7. 그물(네트) 생성하기

생성 된 네트는 전체선택 후 Join으로 세로 줄과 가로 줄을 쉽게 분리할 수 있습니다.

 
bake 시 네트를 생성할 수 있습니다. 커브와 포인트로 구성 되어있으며
커브: 그물로 활용.
포인트: 체결부속 용접점으로 활용.
 
위에서 얘기했듯이 밴딩 파이프에서 레이저 마킹이 불가능하지만
라이노에서 치수를 재면서 참고가 가능합니다.
 
 
위에 소개한 공정으로 다음과 같은 작업물을 5분~10분 내에 작업이 가능합니다.
 

나선(회오리형) 그물 놀이

 
 이 형태로 단순히 완성이라고 볼 수는 없지만 상당한 윤곽을 신속하게 그리기 위해서는
 그래스호퍼 알고리즘의 적극 활용이 요구됩니다.
 
 마지막으로 제작도면을 만들기 위한 그물 펼치기 기능입니다.
 
 
 
 

8. 그물 펼치기 기능

제작도면 자동 생성

 
 3D 형태로 존재하는 그물 형상을 바닥에 펼치는 기능입니다.
 바닥에 quadpanel 된 형태로 깔리므로 bake 후 intersect 명령어가 수동으로 사용되어야 합니다.
 
 이로써 제작도면 생성이 신속, 정확해집니다.
 단, 펼칠 수 없는 복잡한 구조의 그물은 불가능합니다.
 
 그렇다면 펼칠 수 없는 구조는 어떻게 제작 도면을 만들어야 할까요?
 
 
 
 

9. 3D 자동 치수

각 칸마다 자동 치수기입, 외줄 총 길이 자동 치수기입.

 
3D 형상을 바닥에 펼치지 않은 채 그대로 치수를 찍어 인쇄하도록 만드는 기능입니다.
 
 

3D 형태에서 즉시 치수 확인 가능.

 
 작업물을 회전해가며 치수를 실시간으로 볼 수 있고, 이 상태로 인쇄 시 제작에 사용할 수 있습니다.
 만약 DWG화를 원한다면 치수 기입방식을 주석(DOT)이 아닌 치수(Dimension)로 출력하도록 수정할 수 있습니다.

 
 
 이렇게 알고리즘의 힘을 빌려 제품설계를 할 경우 실수나 누락, 오류가 최소화되고 긴급 수정이 편리해집니다.

반응형