Option Explicit
‘Script written by <Aren Bogossian-Mark Bearak>
‘Script copyrighted by <Parametric Realizations>
‘Script version Wednesday, December 02, 2009 9:50:02 PM
Call Main()
Sub Main()
Dim k,l,u,v, arrParam, arrNormal, arrNewPt
Dim strSrf : strSrf = Rhino.getobject (“select surface”)
Dim intU : intU = 12
Dim intV : intV = 24
ReDim arrFrame(intU,intV)
ReDim arrPtNor(intU,intV)
ReDim arrPtFlip(intU,intV), x(intU,intV), arrnewobject(intU,intV)
ReDim arrMP(intU,intV)
Dim UDomain : UDomain = Rhino.SurfaceDomain(strSrf, 0)
Dim VDomain : VDomain = Rhino.SurfaceDomain(strSrf, 1)
Dim UStep : UStep = (UDomain(1) – UDomain(0)) / intU
Dim VStep : VStep = (VDomain(1) – VDomain(0)) / intV
For l = 0 To intV
For k = 0 To intU
u = UDomain(0) + UStep * k
v = VDomain(0) + vStep * l
arrFrame(k,l) = Rhino.SurfaceFrame (strSrf, Array(U,V))
arrParam = Rhino.SurfaceClosestPoint(strSrf, arrFrame(k,l)(0))
arrNormal = Rhino.SurfaceNormal(strSrf, arrParam)
arrPtNor(k,l) = array(arrFrame(k,l)(0)(0)+arrNormal(0)*0.5,arrFrame(k,l)(0)(1)+arrNormal(1)*0.5,arrFrame(k,l)(0)(2)+arrNormal(2)*0.5)
arrPtFlip(k,l) = array(arrFrame(k,l)(0)(0)+arrNormal(0)*-0.5,arrFrame(k,l)(0)(1)+arrNormal(1)*-0.5,arrFrame(k,l)(0)(2)+arrNormal(2)*-0.5)
’Call Rhino.AddPoint (arrFrame(k,l)(0))
’Call Rhino.AddPoint (arrPtNor(k,l))
’Call Rhino.AddPoint (arrPtFlip(k,l))
If l>2 And (l Mod 3 = 0) Then
x(k,l) = Rhino.AddPolyline (array(arrFrame(k,l)(0),arrPtNor(k,l-1),arrPtNor(k,l-2),arrFrame(k,l-3)(0),arrPtFlip(k,l-2),arrPtFlip(k,l-1),arrFrame(k,l)(0)))
End If
Next
Next
End Sub
———–
Option Explicit
‘Script written by <Aren Bogossian>
‘Script copyrighted by <Aren Bogossian>
‘Script version Wednesday, December 02, 2009 10:08:10 PM
Call Main()
Sub Main()
Dim arrObjects, arrMP, i
arrObjects = Rhino.GetObjects(“Select curves to offset”)
If IsArray(arrObjects) Then
For i = 0 To UBound(arrObjects)
arrMP = Rhino.CurveAreaCentroid(arrObjects(i))
If IsArray(arrMP) Then
Dim arrNewobject
arrNewobject = Rhino.OffsetCurve(arrObjects(i), arrMP(0), 0.1, ,2)
Rhino.ObjectLayer arrNewobject,”offset”
End If
Next
End If
End Sub
———————-
Option Explicit
‘Script written by <insert name>
‘Script copyrighted by <insert company name>
‘Script version Monday, December 2, 2009 7:00:42 PM
Call Main()
Sub Main()
Dim k,l,u,v, arrParam, arrNormal, arrNewPt
Dim strSrf : strSrf = Rhino.getobject (“Select surface”)
Dim intU : intU = 8
Dim intV : intV = 48
ReDim arrFrame(intU,intV)
ReDim arrPtNor(intU,intV)
ReDim arrPtNora(intU,intV)
ReDim arrPtFlip(intU,intV)
ReDim arrPtFlipa(intU,intV)
ReDim arrSrf(intU)
Dim UDomain : UDomain = Rhino.SurfaceDomain(strSrf, 0)
Dim VDomain : VDomain = Rhino.SurfaceDomain(strSrf, 1)
Dim UStep : UStep = (UDomain(1) – UDomain(0)) / intU
Dim VStep : VStep = (VDomain(1) – VDomain(0)) / intV
For l = 0 To intV
For k = 0 To intU
u = UDomain(0) + UStep * k
v = VDomain(0) + vStep * l
arrFrame(k,l) = Rhino.SurfaceFrame (strSrf, Array(U,V))
arrParam = Rhino.SurfaceClosestPoint(strSrf, arrFrame(k,l)(0))
arrNormal = Rhino.SurfaceNormal(strSrf, arrParam)
arrPtNor(k,l) = array(arrFrame(k,l)(0)(0)+arrNormal(0)*0.5,arrFrame(k,l)(0)(1)+arrNormal(1)*0.5,arrFrame(k,l)(0)(2)+arrNormal(2)*0.5)
arrPtNora(k,l) = array(arrFrame(k,l)(0)(0)+arrNormal(0)*0.25,arrFrame(k,l)(0)(1)+arrNormal(1)*0.25,arrFrame(k,l)(0)(2)+arrNormal(2)*0.25)
arrPtFlip(k,l) = array(arrFrame(k,l)(0)(0)+arrNormal(0)*-0.5,arrFrame(k,l)(0)(1)+arrNormal(1)*-0.5,arrFrame(k,l)(0)(2)+arrNormal(2)*-0.5)
arrPtFlipa(k,l) = array(arrFrame(k,l)(0)(0)+arrNormal(0)*-0.25,arrFrame(k,l)(0)(1)+arrNormal(1)*-0.25,arrFrame(k,l)(0)(2)+arrNormal(2)*-0.25)
’Call Rhino.AddPoint (arrFrame(k,l)(0))
’Call Rhino.AddPoint (arrPtNor(k,l))
’Call Rhino.AddPoint (arrPtFlip(k,l))
If l>5 And (l Mod 6 = 0) Then
If k Mod 2 = 0 Then
arrSrf(k) = Rhino.AddPolyline (array(arrFrame(k,l)(0),arrPtNor(k,l-2),arrPtNor(k,l-4),arrFrame(k,l-6)(0),arrPtFlip(k,l-4),arrPtFlip(k,l-2),arrFrame(k,l)(0)))
Else
arrSrf(k) = Rhino.AddPolyline (array(arrFrame(k,l-2)(0),arrPtNora(k,l-3),arrPtNora(k,l-4),arrFrame(k,l-5)(0),arrPtFlipa(k,l-4),arrPtFlipa(k,l-3),arrFrame(k,l-2)(0)))
End If
If k>1 And (k Mod 2 = 0) Then
Call Rhino.AddLoftSrf (array(arrSrf(k),arrSrf(k-1),arrSrf(k-2)),,,2)
End If
End If
Next
Next
End Sub