generate mass + Refinery toolkit Packing Cuboids test 영상입니다.
Packing Cuboid Node가 Cuboid(boundingbox)만을 인풋 값으로 받아드립니다.
다양한 형태의 다각형, 혹은 Geometry의 edge를 받아들여서 사용 가능하면 좋을 ㅇ은 아래것 같았습니다.
하지만 불가능합니다. 아쉬운데로, 해당 패키지를 활용하는 방식을 테스트 합니다.
중요한 포인트는 바운딩박스를 원점에 보낸 뒤, 형태에 맞추어 보내고, 회전하는 방식에 있습니다.
중요한 포인트는 바운딩박스를 원점에 보낸 뒤, 형태에 맞추어 보내고, 회전하는 방식에 있습니다.
해당 내용은 아래에서 설명하겠습니다.
진행중인 테스트 노드는 다음과 같습니다. (refinery toolkit package Packing Cuboids and space planning test 001 by revit dynamo)
기존 테스트한 다음 영상의 Mass 생성과
https://youtu.be/9MsTZtpPt2k
https://youtu.be/nGUoqH-EABY
Refinery Toolkit의 Packing Cuboids를 합치는 내용입니다.
중요한 부분은 위 이미지중 3가지 포인트입니다.
A는 기존 Mass 생성의 붉은 Mass중 Point들을 추출하는 과정입니다.
B는 A에서 생성된 Mass와 같은 크기의 Rectangle을 생성하는 과정입니다.
O 포인트는 origin point로 x,y,z의 포인트 좌표가 모두 0 입니다.
생성된 Mass의 W,H 값을 원점에 Rectangle로 생성합니다.
생성한 Rec를 Solid로 만들면 A Mass와 같아집니다.
Cuboid를 사용하기 위해 BoundingBox를 사용 가능합니다.
Refinery Toolkit의 Packing Cuboid에서 가장 중요한 부분은 저 연두색 노드입니다.
Create Bins는 Cuboid를 input으로 받아들이며, 이를 다음과 같이 Solid로 생성합니다.
Z값에 Mass 높이값의 1/2만큼 더하여 위로 올려주면
위 이미지와 같이 Z값을 일치시켜줍니다.
배치된 사각형의 종류 + A Mass와 같은 Cuboid의 edge들을 Curves로 추출한다.
추가적으로 내부 사각 요소의 배치는 다음 영상에서 추가적으로 설명하겠습니다.
origin 포인트에서 작업하여 추출한 Curves들을 옆에 생성한 A Mass의 위치로 대입한다.
이는 Cuboid를 사용했기 때문이다.
BoundingBox는 X,Y,Z와 평행하는 육면체가 생성되기 때문에
원점에서 만든 후 옮기는 방식을 선택했다.
이는 충분히 다른 방법으로 변경 가능하리라 생각한다.
위에서 옮겨지는 Curves들은 다음 Center point의 X,Y 좌표로 옮겨진다.
저 Center point는 아래의 각도 변경을 위한 중심 점으로도 사용된다.
각도를 추출하기 위해, origin point에서 curve를 하나 만들어 기준 Vector를 생성한다.
그리고 기존 A Mass의 Vector를 추출 한뒤, 두 백터의 각도를 확인한다.
그리고 마지막으로 해당 각도로 Curves를 회전한다.
생성되는 A Mass의 각도에 따라서
위 Vector 노드들의 값이 에러 발생 가능성이 있다.
추후에 수정할 부분이라고 판단되며,
바운딩박스의 각도 회전도 검토 필요하다.
댓글 없음:
댓글 쓰기