모델링 작업 중 4뷰를 빠르게 종이에 인쇄하여 확인하며 작업하는 경우가 종종 있습니다. 이 때 Layout 명령에서 디테일 4개를 이용하게 되는데, 각 뷰들의 크기가 달라 Top-Front-Right뷰가 서로 다른 크기로 출력되어 이 크기와 위치를 재 설정해야 합니다.
이를 쉽게 설정할 수 있는 방법으로 출력하고자하는 전체 개체 보다 조금 큰 구(Sphere)를 생성하여 Layout을 생성하게 되면 전체 뷰의 가로-세로 크기가 동일하게 설정됩니다. 레이아웃을 생성한 후에 이 구를 삭제하고 출력하면 간단히 4 뷰 포트를 동일한 크기로 설정할 수 있습니다. 물론 1:1 등 크기의 경우도 이렇게 설정한 후 각 디테일의 스케일을 조절하면 중심이 맞은 상태라 동일하게 설정됩니다.
Layout 4 details 명령에서 각 디테일 뷰가 맞지 않은 경우
구를 만들고 레이아웃을 생성한 후 다시 구를 삭제하는 과정을 라이노 스크립트로 쉽게 구현할 수 있습니다. 아래 스크립트는 전체 개체의 바운딩박스의 중심에서 모서리까지를 반지름으로 하는 구를 생성한 후 레이아웃을 생성하고 구를 삭제하는 스크립트입니다. New Layout : 4 Detail 버튼에 아래 스크립트를 대신 사용하면 아래 그림처럼 가로-세로가 맞는 4개의 디테일뷰를 쉽게 생성할 수 있습니다. 이 후 디테일의 디스플레이 모드를 변경하여 출력하면 간단히 Top-Front-Right뷰가 맞춰 인쇄할 수 있습니다.
Call Main()
Sub Main()
Rhino.EnableRedraw False
allObjects = Rhino.NormalObjects()
Dim Objs()
j = 0
For Each A In allObjects
i = Rhino.ObjectType(A)
Select Case i
Case 1,2,4,8,16,32,512,4096,8192,65536,1073741824
ReDim Preserve Objs(j)
Objs(j) = A
j = j + 1
End Select
Next
If j = 0 Then Exit Sub
BB = Rhino.BoundingBox(Objs)
C = middlePoint(BB(0), BB(6))
R = Rhino.Distance(C, BB(0))
strSphere = Rhino.AddSphere(C, R)
Rhino.Command "! _-Layout _Enter _Enter _Enter 4", False
Rhino.DeleteObject strSphere
Rhino.EnableRedraw True
End Sub
Function MiddlePoint (A, B)
MiddlePoint = array((A(0) + B(0)) / 2, (A(1) + B(1)) / 2, (A(2) + B(2)) / 2)
End Function
스크립트를 실행한 디테일 뷰가 맞춰진 Layout
각 디테일 뷰의 디스플레이 모드를 변경한 모습
No comments:
Post a Comment