November 5, 2013

RhinoScript | Objects coverage area

개체들을 Top뷰에서 보았을 때 투영한 면적을 계산하기 위해서는 Top뷰에서 실루엣을 추출하고 이들의 합쳐진 커브의 면적을 계산하면 된다. 아래 스크립트는 건폐율 계산을 쉽게할 수 있도록 Top뷰의 실루엣 라인의 결합한 커브를 만들어준다. 스크립트는 단순히 Silhouette, CurveBoolean명령의 조합으로 작성되었다.


Option Explicit

Call Main()
Sub Main()
   
    Dim arrObjects, strView, arrBox, arrPt
    arrObjects = RHino.GetObjects("Surface or Polysurfaces", 8 + 16)
   
    If isNull(arrObjects) Then Exit Sub
   
    strView = Rhino.CurrentView
    Rhino.EnableRedraw False
    Rhino.CurrentView "Top"
   
    Rhino.SelectObjects  arrObjects
    arrBox = RHino.BoundingBox(arrObjects)
    arrPt = Rhino.PointAdd(arrBox(2), Rhino.VectorCreate(arrBox(2), arrBox(0)))
    Rhino.Command  "_Silhouette _ProjectToCPlane _Yes _CurveBoolean _DeleteInput=_All _CombineRegion=_Yes W" & RHino.Pt2Str(arrPt) & " _Enter", False
   
    Rhino.CurrentView strView
    Rhino.EnableRedraw True
   
End Sub

No comments: