Summary: 블록 인스턴스를 분해하는 방법을 소개합니다.
RhinoScripts 의 ExplodeBlockInstance 메서드로 블록의 인스턴스를 지오메트리 구성요소로 분해할 수 있습니다. 그러나, 블록에 또 다른 블록이 들어있는 경우, 이러한 “하위 블록”을 중첩된 블록이라고 합니다. ExplodeBlockInstance 메서드로는 중첩된 블록을 분해할 수 없으나, 재귀 반복을 사용하여 중첩된 블록을 분해하는 스크립트를 쓸 수 있습니다.
다음의 샘플 스크립트를 실행하면 모든 눈에 보이는 블록 인스턴스를 지오메트리 구성요소로 분해합니다. 이 스크립트는 블록이 중첩된 블록에 실행됩니다 .
Sub SuperExplodeBlock Const rhInstanceObject = 4096 Dim arrBlocks, strBlock arrBlocks = Rhino.ObjectsByType(rhInstanceObject) If IsArray(arrBlocks) Then For Each strBlock In arrBlocks If Rhino.IsObjectSelectable(strBlock) Then DoInstanceExplosion strBlock End If Next End If End Sub Sub DoBlockExplosion(strBlock) Dim arrObjects, strObject If Rhino.IsBlockInstance(strBlock) Then arrObjects = Rhino.ExplodeBlockInstance(strBlock) If IsArray(arrObjects) Then For Each strObject In arrObjects DoBlockExplosion strObject '*RECURSE* Next End If End If End Sub