top of page
  • Writer's pictureDavid Mans

Dash Curve

💻 Rhino 5

🔼 Rhino Script

🛠️ Visual Basic

 

A simple script developed during the Rib maker script, this Rhinoscript interface allows the user to select a set of curves then input a sequential set of curve parameters between 0 and 1. The curve set is then broken according to the sequential parameters.

 
Option Explicit
'Script written by <David Mans>
'Script copyrighted by <Neoarchaic Studio>
'Script version Monday, April 27, 2009 9:56:55 PM
 
Call Main()
Sub Main()
 
    Dim strCurve: strCurve = Rhino.GetObject("Select Curve", 4)
    If isnull(strCurve) Then Exit Sub
    reparameterize(strCurve)
     
    Call removeSegment(strCurve, array(array(0.1, 0.2), array(0.4, 0.5)))
End Sub
Function removeSegment(strCurve, arrParams)
    removeSegment = Null
    Dim arrVal()
    Dim i, curve, crv, keep
    i = 0
     
    keep = strCurve
    Do Until i = uBound(arrParams) + 1
        curve = Rhino.SplitCurve(keep, arrParams(i)(0), True)
        crv = Rhino.SplitCurve(curve(1), arrParams(i)(1), True)
        Call Rhino.DeleteObject(crv(0))
        keep = crv(1)
        ReDim Preserve arrVal(i)
        arrVal(i) = keep
        i = i + 1
    Loop
     
    For i = 0 To ubound(arrVal) Step 1
        Call Rhino.ObjectColor(arrVal(i), RGB(255, 0, 0))
    Next
    removeSegment = arrVal
End Function
Function reparameterize(strCurveID)
    If Rhino.IsCurve(strCurveID) = True Then
        Call rhino.SelectObject(strCurveID)
        Call rhino.Command("reparameterize 0 1")
        Call rhino.UnselectAllObjects()
    End If
    If Rhino.IsSurface(strCurveID) = True Then
        Call rhino.SelectObject(strCurveID)
        Call rhino.Command("reparameterize 0 1 0 1")
        Call rhino.UnselectAllObjects()
    End If
End Function
 


0 views

Recent Posts

See All
bottom of page