Extend with the Smooth type extrapolates the curvature of the curve to be extended. Compare the rightmost 3 CVs of both single span degree 5 curves, and the extension to the right. If your extension must be G2 but not “curve away”, better insert a curve and match it G2, or even re-shape the existing one. See the image below, where a degree 3 curve has been added and matched G2.
As @Lagom explained Extend is simply extrapolating the curve.
To have control over the shape and end location of the extended curve:
Extend
Enter or right click for dynamic extend
Select the curve
Select ToPoint option
Use cursor to select desired location for the end of the curve. Near Osnap to snap to the line.
Left click to complete.
@Lagom thank you for the explanation, I would be lying if said I understood…I don’t fully understand what a “degree n” curve is and you totally lost me with G2…
I’m sure it uses entire curve to calculate how it should be extended, it just to my untrained eyes it’s not intuitive how it actually does it, but at least now I know why it fails during trim-extend.
@davidcockey try it yourself, the shape of the extension on my screenshot is not something I “chose”. In my example snapping to the line would produce curve ending before the sharp turn.
As the title says InterpCrv is the type of curve and Trim → extend is the Trim command which also allows to extend while holding shift key.
The “ToPoint” won’t work in my use case, since I don’t know where the curve should end up at. I’m trying to “project” the curve.
So, I thought if I cut the curve leaving only gentle arc at the end, it surely should be able extend it to the line… well, no it still extends it with the same sharp 180…
I’m very confused now.
Sorry, can’t provide a file, I’m away from rhino computer right now.
If you’re going to do a lot of NURBS surface modelling, it could be a good idea to go through a few essentials regarding curves and surfaces, and learn more in detail here.
InterpCrv is not a type of curve. InterpCrv is a command which creates a NURBS curve by interpolating through the selected location. All curves in Rhino are NURBS curves except for a few special types such as Arcs, and even though are NURBS curves if you go deep enough.
That gives the same result as the Extend command with Natural type extension and extending to a boundary. I would be very surprised if it and Extend do not use the same algorithm and code for the extension.
Why would Rhino know where it should extend to?
Project the curve on to what? Projecting a curve is fundamentally different than extending a curve.
That is how the math of extrapolation which Rhino uses works.
is very intuitive and expected result of extending a slightly curved “line”, then please, don’t question anything, accept it as is. I’m on other hand think this is a wrong math Rhino is using, there is absolutely no logical reason for a 2D curve turn 180 at such steep angle at such short distance…
Here is a DXF file I’m testing it with, in both AutoCAD and Rhino it looks identical until you extend it.
You can extend a curve with a line just like in Autocad, too, snapping to the line. However, the curve is then not extrapolated by its curvature, and the transition between the curve and its extension will be G1 (tangent continuity) only.
You can also extend the curve with an arc using Extend with Type=Arc. (This option is not available when extending curves in Trim). The result will be curvature continuous with the original curve.