NEW: Welcome to the Rhino 6 version of this page! Looking for the older Rhino 5 version?

Splitting Curves into Segments

Demonstrates how to split a curve into multiple segments using RhinoScript.


Option Explicit

Sub CurveSplitter

  Const rhCurveObject = 4

  Dim sCurve
  sCurve = Rhino.GetObject("Select curve to split", rhCurveObject)
  If IsNull(sCurve) Then Exit Sub

  Dim nSegments
  nSegments = Rhino.GetInteger("Number of segments", 2, 2)
  If IsNull(nSegments) Then Exit Sub

  Dim aPoints
  aPoints = Rhino.DivideCurve(sCurve, nSegments)
  If Not IsArray(aPoints) Then Exit Sub

  Rhino.EnableRedraw False

  Dim i, t0, t1
  For i = 0 To UBound(aPoints) - 1
    t0 = Rhino.CurveClosestPoint(sCurve, aPoints(i))
    t1 = Rhino.CurveClosestPoint(sCurve, aPoints(i+1))
    Rhino.TrimCurve sCurve, Array(t0, t1), vbFalse

  Rhino.DeleteObject sCurve
  Rhino.EnableRedraw True

End Sub