logo

TerminatorEasterEGG_FIRST

Option Explicit

'Script written by Luis Quinones
'Script copyrighted by [n]igma + complicit matter
'www.complicitmatter.com
'Script version Wednesday, March 30, 2011 12:00:37 PM

Call Main()
Sub Main()
    Dim strLayer : strLayer = Rhino.AddLayer("Attractors")
    Dim strCrv : strCrv = Rhino.GetObject("CRV",4)
    Dim strMesh : strMesh = Rhino.GetObjects("Mesh",32)
    Dim crvPts : crvPts = Rhino.DivideCurve(strCrv,25)
    Dim i
    Dim j
    For j = 0 To Ubound(strMesh) Step 5    
        Dim mesharea : mesharea = Rhino.MeshArea(strMesh(j))    
        If mesharea(1) > 2000 Then
            Dim meshPts : meshPts = Rhino.MeshVertices(strMesh(j))
            Dim centroid : centroid = Rhino.meshareaCentroid(strMesh(j))
            Dim index : index = Rhino.PointArrayClosestPoint(crvPts,centroid)
            Dim arrClostactualPoint : arrClostactualPoint = crvPts(index-3)
            Dim newLine : newLine = Rhino.AddLine(centroid,arrClostactualPoint)
            Dim newDiv : newDiv = Rhino.DivideCurve(newLine,4)
            Dim mainLine : mainLine = Rhino.AddLine(newDiv(1),arrClostactualPoint)
            Dim gripStart2 : gripStart2 = Rhino.CurveStartPoint(mainLine)
            Dim arrStart2 : arrStart2 = Rhino.AddPoint(gripStart2)
            Call Rhino.ObjectLayer(arrStart2,strLayer)
            Dim gripEnd2 : gripEnd2 = Rhino.CurveEndPoint(mainLine)
            Dim arrEnd2 : arrEnd2 = Rhino.AddPoint(gripEnd2)
            Call Rhino.ObjectLayer(arrEnd2,strLayer)
            Call Rhino.DeleteObject(newLine)
            For i  = 0 To Ubound(meshPts) 
            
                Dim strGrip : strGrip = Rhino.AddLine(newDiv(1),meshPts(i))
                Dim gripStart : gripStart = Rhino.CurveStartPoint(strGrip)
                Dim arrStart : arrStart = Rhino.AddPoint(gripStart)
                Call Rhino.ObjectLayer(arrStart,strLayer)
                Dim gripEnd : gripEnd = Rhino.CurveEndPoint(strGrip)
                Dim arrEnd : arrEnd = Rhino.AddPoint(gripEnd)
                Call Rhino.ObjectLayer(arrEnd,strLayer)        
            Next    
        End If
    Next
    Call Rhino.Command ("SelDup")
    Call Rhino.Command ("Delete")
End Sub
Update
  • Share