Polyline.BreakAtAngle problem

Hi all,

I am trying to break a polyline at its angles until i get 4 segments out of it. So i thought this could just be done by increasing the angle. But for some reason, if fails on one of the example polylines attached below. Here is the script:

import Rhino
import rhinoscriptsyntax as rs
import math

def SplitPolylineAtAngle(polyline):

    for angle in xrange(5, 180, 5):
        segments = polyline.BreakAtAngles(math.radians(angle))
        print "Angle:", angle, " Segments:", len(segments)
        if len(segments) == 4: break

    if len(segments) != 4: return
    for s in segments: rs.AddPoint(s.PointAt(0))

if __name__=="__main__":
    id = rs.GetObject("Polyline", rs.filter.curve, True, False)
    if id:
        polylinecurve = rs.coercecurve(id, True)
        rc, polyline = polylinecurve.TryGetPolyline()
        if rc:
            rc = SplitPolylineAtAngle(polyline)

File with some testing polylines: Polylines.3dm (52.1 KB)

One Polyline fails to break at the angles even when 120° is reached. Anything i´m doing wrong here ?


Ok, found the error. Seems to be related to polylinecurve.TryGetPolyline() and the failing curve no beeing a real polyline.