I have a question about how the Curve to Polyline function works. In particular, when I set a minimum segment length (MinEdge) it is not respected. From what I understand, MinEdge guarantees you that the segments of the polyline are all of minimum length equal to the imposed MinEdge, correct? Below I attach a screenshot.

I’d like to understand the reason for this behavior. Even using a larger distance tolerance (or angular tolerance) does not guarantee MinEdge. Am I missing something?

I think you are right. But there is a problem. By imposing a maximum length, even a linear segment will be divided into sub-segments because a MaxEdge is imposed. If instead you use a very large MaxEdge, without tolerance, the polyline will not approximate well the original curve. I attach a screenshot.

Both min and max settings seem to be behaving erratically.
The only way I could make it stay within the boundaries was recreating the curve. (Which might be a problem since you have to raise it to the hundreds of control points if you want to be precise).
To me it looks like a bug.

It seems to work. But the problem remains that even using a distance tolerance parameter, MinEdge is not respected. This problem does not appear when using angular tolerance.

The function used by my my sample and by GH’s ToPoly component is Curve.ToPolyline, which returns a polyline approximation of a curve. There are several flavors of this method, which can make it easy get the solver into a position of compromise.

Why? What problem are you trying to solve?

In general, using the document’s default model absolute and angle tolerances work well. The link I provided (above) gives a good description of that each of these tolerances does. The help for Rhino’s Convert command, which uses the same function, does too.

If the resulting polyline points must reside on the input curve, then consider using GH’s Divide Length component and constructing a polyline from the results.

I would like to find the best polyline approximating the input curve for my applications. However, I have to guarantee a minimum segment length. So, if I use only MinEdge and MaxEdge, the resulting polyline will not be optimal because a linear curve will be divided according to MaxEdge. For my cases, there is no limit for MaxEdge (see the figure).

As noted from my example and the example of @anikolo, the MinEdge is not always respected. I read the documentation, and I think that the Curve to Polyline function should work as follow:
Create a polyline according to the imposed tolerance (distance/angular), respecting the MinEdge and MaxEdge.

If we rebuild the initial curve, the function seems to respect the MinEdge (only with angular tolerance). However, the result depends on the number of control points.