Control Point Curve automatically becomes Degree1 Curve?

i am not sure when that started happening, but i have the feeling that was not there before… otherwise my apologies.

when i create a curve with Curve set to degree 3 and make 2 points it automatically changes the properties of the curve to degree 1.

i often do that and add a control point in the center, but suddenly i got a kink instead of a control point.
(delirious)

why?

also when i add 3 points right from the start the curve is still just degree2 instead of the set degree3

A NURBS curve always has a minimum of Degree+1 points. A 2-point curve can only be degree 1. A 3-point curve can be degree 1 or 2. A degree 3 curve needs at least 4 points.

1 Like

Nothing has changed since at least V4. To expand on @Helvetosaur comment the degree set in Curve is the maximum degree curve which will be created. If insufficient control points are input for the degree set then a lower degree curve will be created.

ChangeDegree can be used to increase the degree of the curve without changing the shape. The number of control points will be increased as needed

1 Like

@Helvetosaur and @davidcockey thank you both for the heads up i indeed got confused it seems


thinking about it, maybe that is not solved quite well, i would assume a curve set to degree 3 would generate the amount of cps automatically at least until i have reached the needed amount of cps myself. being in need of the theoretical knowledge how exactly the nurbs curve is defined is maybe something that could be avoided then, any thoughts?

i mean when i create a line, i know i have degree1, but when i use the curve command set to degree3 someone else than me might also get confused.

Well, either it adds points you didn’t ask for or it changes the degree to something you didn’t ask for… Six of one, half-dozen of the other.

yes, but just that the set definition in the command at least would be correct, even if it adds unknown (at first) parameters to fulfil this.

I suppose if you had regular need for a degree-3 line, you could put this in a macro:

_Curve _Pause _Pause _EnterEnd _SelLast _-ChangeDegree _Pause 3 _EnterEnd

yes sure, but what i mean that this is about meeting the expectations when setting it to degree 3 and which is causing confusion. i now know and hopefully remember it the next time i get more signs of dementia and cant remember it again, but maybe others might fall into this trap (repeatedly…) either.

Two alternatives are possible when a curve is created with fewer control points input than needed for the specified degree of the curve.

A) Create the curve of highest degree possible using the input control points. This has the advantage that the resulting curve has control points at the input locations. The disadvantage is the curve degree is less than specified in the command.

B) Create the curve of highest degree possible using the input control points, and then elevate the degree to the specified degree. This will replace the input control points with a new set of control points without changing the shape of the curve. This has the advantage that the resulting curve has the specified degree. It has the disadvantage that the control points will be different than the input.

Since at least V4 and probably since the origins of the Curve command Rhino has used alternative A. I don’t recall seeing any previous concerns about this here.

My preference would be for alternative B, but I have become used to changing the degree when needed.

2 Likes

my choice definitely either. that would at least fulfil the set input parameter of degree 3. when i want a line (degree1 curve with 2 points) then i use the line command not the curve command, when i use the curve command i expect it to become a bendy curvy thingy, even though i can set it to degree1 which somehow also does not make much sense, because that basically becomes a polyline for which we have yet another command.

Is there a macro that will do this after the fact that will work in the same way whether the curves are pre- or post-selected? I have a specific workstream where I need to convert fillets to degree 3 curves but usually make the conversion en mass, so I’ve been following this thread with interest.

The simple macro I made only works if the curves are post-selected. As the CP’s aren’t on show, there’s little visual evidence to confirm that the command has run succesfully.

The ChangeDegree command works with muliple curves or surfaces, whether pre-selected or post-selected, but not on a mix of curves and surfaces.

Post you macro, possibly in a new thread, if you need assistance in getting it to work as desired.