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