Académique Documents
Professionnel Documents
Culture Documents
Call attractorToolsScale
Sub attractorToolsScale
Dim i, j,m
Dim arrObjects, strCrv, arrCrvs
Dim arrCtPts, arrPtsCoord,arrPtsOnCrv
Dim thresholdDist, scaleFactor, arrBBox, arrCntrPt, counter, arrAttPt
Dim dblSubdiv, dblAttDistTest, dblClosestAttDist, dblClosestAtt, adjAmount, dblMoveZRatio
' input
arrObjects = Rhino.GetObjects("select objects", 8+16)
Dim bboxPt:bboxPt=Rhino.BoundingBox(arrObjects)
Dim distance:distance=CInt(((Rhino.Distance(bboxPt(0), bboxPt(1))+ Rhino.Distance(bboxPt(0), bboxPt(1)))/2)/sqr(Ubound(arrObjects)+1))
arrCrvs = Rhino.GetObjects("select attractor curve(s)", 4)
dblSubdiv= Rhino.GetInteger("number of pts on crv", 10)-1
thresholdDist = Rhino.GetReal("distance threshold", distance*7, 0)
scaleFactor = Rhino.GetReal("scale factor", 1, 0)
dblMoveZRatio= Rhino.GetInteger("move Z ratio", distance*4)
Rhino.EnableRedraw (False)
arrPtsOnCrv=Rhino.DivideCurve(arrCrvs(m),dblSubdiv)
arrCtPts=Rhino.AddPoints(arrPtsOnCrv)
ReDim Preserve arrAttract((UBound(arrCtPts)+1)*(m+1)-1)
If m=0 Then
arrAttract(i)=arrCtPts(i)
Else
arrAttract((UBound(arrCtPts)+1)*m+i)=arrCtPts(i)'str
End If
Next
Next
'''''''''''''''''''''''''''''''''''''''''''''''''''''''''
' loop through each object and get the closest attractor
For i = 0 To UBound(arrObjects)
Next
End If
Next
Rhino.DeleteObjects(arrAttract)
Rhino.EnableRedraw (True)
End Sub
Function at_ChangeColor(obj,tDist,aDist)
Dim objColor, newColor
' caculate color
newColor = 255 - ((1 - ((tDist - aDist)/tDist)) * 255)
' change color
objColor = Rhino.ObjectColor(obj, newColor)
End Function