블록은 Rhino 4와 5에서 기본적으로 동일합니다. 그러나, Rhino 5에는 더 많은 기능과 명령이 추가되어 있습니다. Rhino 5의 새 기능 보기.
> Summary: 블록을 사용하여 파일에서 반복된 개체를 관리할 수 있습니다.
1. 블록을 정의하는 지오메트리만 바꾸면, 블록 인스턴스인 개체 복사본들은 개수와 상관없이 변경할 수 있습니다.
2. 외부 파일로부터 개체를 업데이트할 수 있습니다.
3. 단일 정의의 반복된 인스턴스는 파일 크기를 증가시키지 않습니다. 해당 파일에 있는 블록의 실제 정의는 하나밖에 없기 때문입니다. 모든 인스턴스는 하나의 원래 정의에서 데이터를 참조합니다. Rhino는 이러한 인스턴스를 다른 위치와 방향을 지정해 표시합니다.
Rhino에서 현재 파일에 있는 지오메트리로 블록을 만들 때 (Block 명령), Rhino는 사용자가 선택한 지오메트리를 블록 인스턴스로 바꿉니다. 파일에서 블록 정의 (블록을 정의하기 위해 사용자가 선택한 지오메트리) 가 저장됩니다. 이 정의의 인스턴스를 원하는 개수만큼 Insert 명령으로 삽입할 수 있습니다. 삽입할 수 있는 기존 블록 정의는 삽입 대화상자의 드롭다운 목록에 있습니다.
다른 3dm 파일을 블록 인스턴스로 삽입하는 것도 이와 비슷합니다. 블록 정의가 현재 파일에 포함되고, 함께 저장됩니다. 화면에 보이는 것은 지오메트리의 인스턴스입니다. 해당 정의는 외부 파일을 참조하고 외부 파일이 변경되면 그에 따라 배치된 인스턴스도 업데이트된다는 점이 차이점이라고 할 수 있습니다. 이것은 [rhino:blockmanager|BlockManager]]를 통해 실행됩니다.
(두 경우에서, 블록 정의가 해당 파일에 존재하기 위해 실제 인스턴스가 배치될 필요가 없습니다. 블록 정의에서 레이어를 사용하면 이를 삭제할 수 없으므로, 레이어를 삭제할 때 문제 발생하기도 합니다. 블록의 모든 인스턴스가 삭제되었을 때 발생할 수도 있습니다. 사용되지 않은 블록 정의를 제거하려면 Purge 명령을 사용하십시오.) 파일의 특정 블록의 모든 블록 인스턴스를 업데이트하려며 해당 파일 정의를 재정의해야 합니다. 블록 인스턴스를 분해(Explode)하고 수정하고 해당 블록을 같은 이름으로 재정의하여 이를 실행할 수 있습니다. 정의를 변경할 것인지 확인하는 경고 대화상자가 표시됩니다. 또는, 다른 개체로 블록을 재정의하여 간단하게 변경할 수 있습니다.
상자를 만들고 Block 명령을 사용하여 이를 블록으로 정의합니다. Box1이라고 이름을 지정합니다. 상자의 한쪽 모서리에 삽입점을 놓습니다. 이 작업이 완료되면 해당 상자는 더 이상 상자가 아닙니다. 상자처럼 보이지만 속성 > 자세히를 선택하여 확인하면 블록 인스턴스임을 알 수 있습니다.
블록을 분해합니다(Explode). 속성을 다시 확인합니다. 해당 상자는 다시 상자가 되었으며, 이름이 Box1인 블록과 무관합니다. 해당 상자를 삭제합니다. 이제 Insert 명령을 사용합니다. 삽입 대화상자의 드롭다운 목록에서 Box 1을 찾습니다. 이것은 사용자가 블록을 만들었을 때 생성된 블록 정의입니다. 블록 인스턴스로 삽입하고 이 인스턴스를 여러 번 복사합니다.
Rhino 4에서 블록 재정의하기: Box1의 인스턴스 중 하나를 선택합니다. 인스턴스를 분해(Explode)하여 일반적인 상자로 되돌립니다. 해당 상자의 가장자리를 필릿 실행합니다. Block 명령을 시작하여 필릿 실행한 상자를 선택하고 삽입점을 선택합니다. 새 블록의 이름을 Box1로 선택합니다. Box1의 모든 인스턴스가 필릿 실행된 상자가 됩니다. 새 정의의 삽입점 위치를 원래 위치와 다르게 지정하면 모든 인스턴스가 그에 따라 움직일 수 있습니다.
Rhino 5에서 블록 재정의하기: 여기에서는 BlockEdit 명령을 사용합니다. 블록을 두 번 클릭하여 편집합니다. BlockEdit 대화상자가 표시됩니다. 개체를 추가하고 삭제한 후 삽입점을 다시 설정할 수 있습니다. 블록의 지오메트리를 직접 편집할 수 있습니다. BlockEdit을 닫으면 변경이 저장되고 모델의 모든 블록 인스턴스가 업데이트됩니다. “x”를 클릭하거나 ESC를 누르면 재정의가 취소됩니다.
구를 만듭니다. Block 명령을 시작하고 삽입점을 선택합니다. 블록의 이름을 Box1로 설정합니다. 필릿 실행된 상자들이 모두 구가 됩니다.
외부 파일을 참조하는 블록 정의는 외부 파일을 편집하고 저장한 후 BlockManager로 해당 정의를 업데이트하는 방법으로 업데이트가 가능합니다. 정의는 절대 경로를 참조하므로 블록 정의에 사용된 외부 파일의 위치를 변경하면 업데이트를 실행할 수 없습니다. 그러나 현재 정의는 원래 소스 파일의 위치의 이동과 무관합니다. 현재 정의는 현재 파일에 있습니다.
상자를 만들고, 파일을 저장합니다. 새 파일을 열어 이름을 Insert로 지정합니다. 대화상자의 파일 단추를 사용하여 상자 파일을 찾습니다. 이를 블록 인스턴스로 삽입합니다.
블록의 복사본을 여러 개 만듭니다 - 원하는 대로 크기 조정, 회전, 이동합니다.
다른 Rhino 창에서 상자 파일을 열고 가장자리를 필릿 실행합니다. 구를 만듭니다. 파일을 저장합니다.
이제, 삽입된 블록이 있는 파일로 되돌아갑니다. BlockManager 명령을 시작합니다. 삽입된 상자 파일로의 참조를 볼 수 있습니다. 목록에서 이를 선택하고 업데이트를 클릭합니다.
파일의 인스턴스가, 구가 있는 필릿 실행된 상자로 모두 변경됩니다.
모든 경우에 블록 정의가 사용하는 레이어가 인스턴스에서도 유지되었습니다. 블록 인스턴스의 일부가 사용하는 레이어를 끄면 Rhino 창에 있는 블록의 해당 부분이 꺼지게 됩니다. 인스턴스가 삽입된 레이어를 끄면 해당 블록이 사용하는 다른 레이어의 상태와 무관하게 블록 전체가 꺼집니다.
SuperExplodeBlock Script
(4 버전의 Rhino Labs Tools이며, 5 버전에서는 명령으로 통합되었습니다)