MergeCrv - disappoinment, flawed,

MergeCrv is a disappoinment and flawed. It could be very useful for me but as it exists it is of no value. Starting with degree 3 input curves which are G2 continuous the result of MergeCrv with Roundness=1 is lumpy and very different from the input curves. At a minimum a note needs to be added to Help warning the user that the result will have a different shape than the input curves.

The algorithm with Roundness=1 appears to be simplistic; nothing more than creatng a curve using knots and control points which are a composite of the input curves’ knots and control points. A curve created using such an algorihm should be expected to differ significantly from the input curves.

Example: A single span degree 3 curve was created. This curve was split into three curves which are G2 continuous. The three curves were used as input to MergeCrv with Roundness=1. The result of a command named MergeCrv should have the identical shape of the input curves.
MergeCrvEx1DC.3dm (51.9 KB)

Roundness=0 seems to be a better result. I don’t know what this setting does really.

The help says:

Roundness (0~1)

Controls the smoothness of the output curve where two input curves are connected. 0 simply joins the curves into a polycurve.

However, that is not the case here, it is one NURBS curve after merging with roundness=0 and the curve graph looks more or less the same as the original - but the curve is now multispan with 7 control points.

It appears that MergeCrv with Roundness=0 merges the input curves into a single curve with full multi-knots at the locations corresponding to the breaks in the input curves. The user can then use RemoveMultKnot to remove the multi-knots, but RemoveMultiKnot is a blunt tool.

List is a useful command for seeing the details including knot parameter values and control point coordinates of curves and surfaces. However List in not intended for ordinary users It contains “DEVELOPER DEBUGGING INFORMATION ONLY” and non-developers should “Use the Rhino “What” command”.

I agree @davidcockey. There is an undocumented command that is better than MergeCrv called Joincopy. You have complete control over the transitions.

It works really well for open curves, but is useless for closed curves as you cannot control the seam or direction and it will flip randomly:

1 Like