Curve.Rebuild periodic to minimum pointcount

Although the UI’s _Rebuild can output a periodic curve with total number of control points equal to double the curve degree, RC’s Curve.Rebuild outputs a minimum of 2*degree+1. I’ve tried various arguments but haven’t found a way for Curve.Rebuild to mimic _Rebuild at this extreme.


Start curve: Degree(3) PtCt(6) IsValid(True)
Rebuilt curve: Degree(3) PtCtIn(3) PtCtOut(7) IsValid(True)
Rebuilt curve: Degree(3) PtCtIn(4) PtCtOut(7) IsValid(True)
Rebuilt curve: Degree(3) PtCtIn(5) PtCtOut(8) IsValid(True)
from __future__ import print_function
import Rhino.Geometry as rg

def main():
    degree = 3
    pline = rg.Polyline.CreateInscribedPolygon(
        circle=rg.Circle(10.0), sideCount=degree)
    ncA = rg.NurbsCurve.Create(periodic=True, degree=degree, points=list(pline)[:-1])
        "Start curve:",
    for pointCount in range(degree,degree+3):
        ncB = ncA.Rebuild(pointCount=pointCount, degree=degree, preserveTangents=False)
            "Rebuilt curve:",

if __name__ == '__main__': main()

Hi @spb,

Thanks, I’ve logged this limitation.

– Dale