Bug: ToNURBS distorts some brep trims out of model tolerance

_ToNURBS can distort trims of breps, resulting in almost a out-of-tolerance-edge trim of the model tolerance on a face whose surface is either a RevSurface or a SumSurface created with an ArcCurve.

In Bad_ToNURBS_for_RevSrf_and_SumSrf_with_ArcCrv.3dm (199.4 KB)
are 3 styles of surface:

  1. Cylindrical RevSurface
  2. Cylindrical SumSurface
  3. SumSurface created with an elliptical NurbsCurve

All are trimmed with the same curve.

The set of 3 are copied for study.
On the first set of 3, _ToNURBS is executed on the first set of 3.
On the 2nd set, control points are displayed and an arbitrarily-picked control point is moved out of then back into its location, therefore also converting the surfaces to NURBS.

Although the ToNURBS set displays the same edge tolerances before and after the ToNURBS, when zoomed into the edges of the RevSurface and cylindrical SumSurface, the isocurve-edge relationship shows that some deviation has occurred:


(_What and _List don’t report the actual edge tolerance of the _ToNURBS result.)

Using _RebuildEdges at 0.01 and 1e-5 tolerances confirms the distorted trims. In this case, _CrvDeviation reports distortion of about 0.19, but the model’s absolute tolerance is only 0.01. The rebuilt edges are about 0.19 from the those of the faces before _ToNURBS.

The alternative method to _ToNURBS doesn’t create an out-of-edge-tolerance-edge trim on any of the 3 faces. The same is true using _ToNURBS on the SumSurface with the elliptical Curve A.

This occurs in:
8.17.25066.7001, 2025-03-07
7.38.24338.17001, 2024-12-03