When preserveTangents = False, Curve.Rebuild’s output has a Degree equal to the degree argument.
However, when preserveTangents = True, Rebuild’s output has a Degree of 3 when:
Yes, that is because when a curve is interpolated with the tangents as additional input, degree three is required for the algorithm: you get one control point for each point through which the curve is interpolated + 2 control points to set the tangents.
Are you referring to Rebuild or CreateInterpolatedCurve? Although the script also shows that even-numbered degree curves are not created with the latter, the focus of this post is to inform that Rebuild with preserveTangents=True doesn’t honor the degree argument for most, but not all, values for pointCount.
For example, from a Degree 5 curve,
Rebuild(pointCount=6, degree=5, preservetangents=True) will create a Degree 5 curve
Rebuild(pointCount=(>6), degree=5, preservetangents=True) will create a Degree 3 curve