maksolino
29th Jun 2010, 01:48 pm
hello again
i need a script to Slide a point along a curve
The command DIVIDE whith option Lenght , start always from the beginning of curve.
I found this RhinoScript but it works only whith Rhino 4 .
Rhino 3 don't support the command CurveArcLengthPoint.
Can somebody make a similar script for Rhino 3.
Thanks
' Option Explicit
Sub OffsetPointOnCurve
' Select the curve
Dim crv : crv = Rhino.GetObject("Select curve", 4)
If IsNull(crv) Then Exit Sub
' Select a point on the curve to offset from
Dim pt : pt = Rhino.GetPointOnCurve(crv, "Select point on curve")
If IsNull( pt) Then Exit Sub
' Specify the offset distance
Dim dist : dist = Rhino.GetReal("Distance to offset point")
If IsNull(dist) Then Exit Sub
' Get the closest point on the curve from the test point
Dim t : t = Rhino.CurveClosestPoint(crv, pt)
' Get the curve's domain
Dim d : Dom = Rhino.CurveDomain(crv)
' Get the total length of the curve
Dim l : l = Rhino.CurveLength(crv)
' Determine the length from the start of the curve to the test point
Dim ls : ls = Rhino.CurveLength(crv,,Array(Dom(0),t))
' Offset a point in each direction
Rhino.AddPoint Rhino.CurveArcLengthPoint(crv, ls + dist, True)
'Rhino.AddPoint Rhino.CurveArcLengthPoint(crv, l - ls + dist, False)
' Add the test point for reference
'Rhino.AddPoint pt
End Sub
i need a script to Slide a point along a curve
The command DIVIDE whith option Lenght , start always from the beginning of curve.
I found this RhinoScript but it works only whith Rhino 4 .
Rhino 3 don't support the command CurveArcLengthPoint.
Can somebody make a similar script for Rhino 3.
Thanks
' Option Explicit
Sub OffsetPointOnCurve
' Select the curve
Dim crv : crv = Rhino.GetObject("Select curve", 4)
If IsNull(crv) Then Exit Sub
' Select a point on the curve to offset from
Dim pt : pt = Rhino.GetPointOnCurve(crv, "Select point on curve")
If IsNull( pt) Then Exit Sub
' Specify the offset distance
Dim dist : dist = Rhino.GetReal("Distance to offset point")
If IsNull(dist) Then Exit Sub
' Get the closest point on the curve from the test point
Dim t : t = Rhino.CurveClosestPoint(crv, pt)
' Get the curve's domain
Dim d : Dom = Rhino.CurveDomain(crv)
' Get the total length of the curve
Dim l : l = Rhino.CurveLength(crv)
' Determine the length from the start of the curve to the test point
Dim ls : ls = Rhino.CurveLength(crv,,Array(Dom(0),t))
' Offset a point in each direction
Rhino.AddPoint Rhino.CurveArcLengthPoint(crv, ls + dist, True)
'Rhino.AddPoint Rhino.CurveArcLengthPoint(crv, l - ls + dist, False)
' Add the test point for reference
'Rhino.AddPoint pt
End Sub