본문 바로가기
Grasshopper

[인표몬의 그래스호퍼]라이노로 견적 산출하기(part.1 환봉 무게 및 가격 산출)

by 인표몬 2024. 4. 11.
반응형

라이노로 제품 견적을 산출하는 방법은 몇 가지가 있다.

1. 파이썬으로 스크립트를 구성하여 BOM 정보와 동기화하여 라이노 자체 기능처럼 사용하는 법,
2. 그래스호퍼를 활용하여 개체의 재료 원가, 공수, 무게 등을 산출하는 방법.

 
오늘 다뤄볼 내용은 두 번째에 해당하는 그래스호퍼 활용이다.
 
제품 설계/생산을 하다보면 여러가지 소재와 재료를 사용한다.
 
그 중 환봉이라는 재료의 원가산출을 해보자.
 
환봉은 원파이프와 조금 다르다고 한다. 파이프는 속이 비어있는 관이며, 환봉은 가득 차 있는 원통형태의 봉이다.
 
먼저 속이 차 있는 환봉으로 알고리즘을 작성할 수 있어야 속이 빈 파이프도 작성이 가능해질 것이다.
 
 


1. 환봉의 가격 공식

 
환봉의 가격 공식은 이렇다.
 

부피 x 비중 x kg당 단가

 
부피 x 비중 = 중량 이고,
 
즉 당연하게도 중량 x kg당 단가 가 환봉의 가격이 된다.
 
 
부피는 어떻게 구해야 할까?
원통의 부피 공식과 같다.
 

원통의 부피 = 3.14 x 반지름^2 x 길이 = 원의 넓이 x 길이

 
 
 
 

2. 알고리즘 작성

 
먼저 라이노에서 예제로 지름 6mm, 길이 100mm인 환봉을 모델링해보자.
 

지름 6mm에 100mm 길이의 환봉 모델링.

 
그래스호퍼를 실행한 후 배경을 더블클릭하여 타이핑하여 검색,
Geo(Geometry) 노드를 불러온다.

그래스호퍼 Geometry 노드 생성.

 
Geometry란? 번역하여 "지오메트리"란 '기하학' 이라는 뜻으로, 그래스호퍼에서는 모든 개체를 뜻한다.
점, 선, 면 등의 모든 개체를 Geometry라고 정의하며 정확히 말하자면 Brep, Line, Crv, Srf, Box 등을 모두 포함한다.
 
우리는 원통형태의 '환봉 모델링'을 이곳 Geo 노드에 할당하고자 하는 것이므로 Geo 노드를 생성한 것이다.
 
Geo 노드 우클릭 후, Set one Geometry 를 클릭하여 모델링을 할당한다.
 

노드에 개체를 할당한 상태. 할당된 개체는 붉은색으로 표시되고, 노드는 흰색으로 표시된다.

 
할당 시키고 나면, 대상 개체 위치에 붉은색으로 된 동일형태 개체가 표시된다.
환봉 형태가 Geo 노드에 할당 되었다는 뜻이다.
또한 주황색이었던 Geo 노드가 흰색으로 바뀌었다.
 

노드 클릭 시, 해당 노드에 할당 된 개체가 무엇인지 녹색으로 표시된다.

 
 
 상술했듯이 원통의 부피를 구하려면 원통의 "원의 넓이"과 "길이" 가 필요하다.
 라이노에 그려진 원통은 어떤 방식으로 모델링 했냐에 따라 "솔리드" 또는 "돌출", "폴리서피스", "닫힌서피스" 등으로 표현하지만 이 모든 서피스는 사실 그래스호퍼에서 'Brep' 이라고 통칭하고 있다.
 
 그래스호퍼에서 BrepEdges 라는 노드를 생성한다.
 

BrepEdges 노드 생성

 
BrepEdges란 이름에서 알 수 있듯 브렙의 가장자리를 추출할 수 있는 알고리즘이다.
 
 

 
 이런식으로 노드를 연결하여 Output에 해당되는 Geo 노드를 클릭해보면
 어떤 가장자리들이 매칭되어있는지 라이노상에 녹색으로 표시가 된다.
 
 이로써 원의 넓이를 구할 때 필요한 원의 둘레, 그리고 부피를 구할 때 필요한 높이(길이)를 구할 수 있게 되었다.
 
 근데 이건 너무 원시적인 방법이고, 사실 한번에 개체의 부피를 구해주는 알고리즘이 있다.
 
 라이노에도 동일 명령어가 있어 예상할 수 있듯이 Volume 이라는 알고리즘인데, 마찬가지로 그래스호퍼에서 Volume 노드를 생성하여 아래와 같이 연결해주면 손쉽게 부피를 구할 수 있다.
 

 
 Volume 노드의 Output인 V는 부피값을 나타내며, Pannel 노드를 연결하여 수치를 시각화할 수 있다.
 2827.433423 이라는 수치가 출력되는데, 이것은 2827.4334(+/- 0.00036)세제곱밀리미터 와 같은 수치이다.
 
 숫자가 나오니 머리가 어질할 수 있는데, 소수점 둘째짜리까진 절사하고 편하게 2827.43mm^3 라고 하자.
 
 세제곱 밀리미터는 0.0000001 까지 내려가므로 나중에 견적 완성 시 1,000,000이라는 숫자를 나눠줘야 한다는 점을 참고하자.
 
 
 이제 저 2827.43 이라는 값은 "부피"이며 여기에 "비중"과 "kg당 단가" 를 곱한 뒤 "1,000,000"를 나눠주면 끝이 난다.
 

 
 결과값: 137원.
 Mass Multiplication은 줄여서 MM 이라고 하며, 모든 값을 일괄 곱해주는 알고리즘이다.
 Division A/B 는 A를 B로 나눠주는 알고리즘이다.
 Integer 는 소수점을 정수로 반올림해주는 기능이다.
 
 자재 원가만 137원이고, 밴딩, 용접 등의 임가공비 혹은 공수가 붙을 경우 알고리즘에 살을 덧붙이는 방법으로 충분히 작성이 가능하다.
 
 이제 이 노드들을 정리하여 Cluster 애드온으로 정리를 해주면
 

클러스터(Cluster) 에드온으로 정리 된 알고리즘.

 이런식으로 정리할 수 있다.
 
 Input값 [Geo] 노드에 원하는 환봉 개체만 할당해주면 언제든지 바로 가격을 알 수 있다.
 
 만약에
 1. 환봉 최대길이가 1000mm라고 가정하고 1000mm가 넘을 시엔 환봉 수량으로 증가시키겠다거나,
예: 최대길이는 1000mm인데 1200mm 짜리 할당 시 1000*1ea 와 200*1ea 로 각각 가격 출력.
 2. 여러 개체를 복수 할당하여 총견적을 산출하겠다거나
 
 하는 경우 해당 알고리즘에 살을 덧붙여야 하는데, 내용이 길어지므로 추후 다루기로 한다.

반응형