Site Tools


서페이스에 개체 배치

RhinoScript

Summary: RhinoScript 를 사용하여 서페이스에 개체를 배치하는 방법을 소개합니다.

질문

불규칙한 서페이스에 여러 개의 개체를 배치해야 합니다. 각각의 서페이스의 높이는 제각각입니다. 예:

rspositiononsrf.jpg

RhinoScript 로 할 수 있는 방법이 있습니까?

답변

다음 스크립트를 참조하세요.

'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
' PositionOnSrf.rvb -- February 2009
' If this code works, it was written by Dale Fugier.
' If not, I don't know who wrote it.
' Works with Rhino 4.0.
'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
Option Explicit
 
Sub PositionOnSrf
  Dim objs, srf, box, p0, p1, pt, arr, i
 
  objs = Rhino.GetObjects("Select objects to position on surface")
  If IsNull(objs) Then Exit Sub
 
  srf = Rhino.GetObject("Select surface", 8)
  If IsNull(srf) Then Exit Sub
 
  Rhino.EnableRedraw False
 
  For i = 0 To UBound(objs)
    box = Rhino.BoundingBox(objs(i))
    If IsArray(box) Then
      p0 = box(0)
      p1 = box(2)
      pt = Array((p1(0)+p0(0))/2,(p1(1)+p0(1))/2,(p1(2)+p0(2))/2)
      arr = Rhino.ProjectPointToSurface(pt, srf, Array(0,0,1))
      If IsArray(arr) Then
        Rhino.MoveObject objs(i), pt, arr(0)
      End If
    End If
  Next
 
  Rhino.EnableRedraw True
End Sub
 
'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''

Rhino.AddStartupScript Rhino.LastLoadedScriptFile
Rhino.AddAlias "PositionOnSrf", "_NoEcho _-RunScript (PositionOnSrf)"
ko/developer/scriptsamples/positiononsrf.txt · Last modified: 2015/09/14 (external edit)