Anomalies After Editing Trimmed Surfaces

test.3dm (77.1 KB)"

On the left, we have a trimmed surface. When I make a very slight movement to its control points, this trimmed surface changes dramatically, ending up like the shape on the right. Why does this happen?

I checked the properties of this trimmed surface and found that it has a degenerate region and also an edge tolerance. But I still can’t quite figure out why such a minor adjustment leads to such a massive change. I’ve run into this situation several times before and have never fully understood the root cause. I’d really appreciate it if you could take a look and share your insights. Thanks a lot!

I’ve been thinking about this for a long time today, trying to understand what’s actually happening at a fundamental level, but I still haven’t figured it out

first attempt - wrong:

use createUVCrvs for both surfaces.
this will show the trim curves in 2d, u-v, parameter space of the surface
and it does not change.

or explains what happens here:
you edit the cv s the trimming will be mapped to the new surface.

it is more like nurbs and trimming works - it might not be very intuitive.

_untrimAll will show the edit you did to the surface

edge Tolerance

this is the correct explanation:
_what will show a edge tolerance of

  Edge Tolerances: 0.000 to 2.623

on a nice surface it should be within document tolerance. 0..0.001

so your initial surface has bad trimming.

now moving the cv s will force rhino to recalculate the trimming and end up with the result you see.

_untrimAll - keepTrims
_createUVcrvs
_applyCrvs
_what
will help you understand what s going on here
read the help to the command s above.

kind regards - tom

Wow, you’re amazing! You thought of using CreateUVCurves to analyze this right away – it took me four or five hours of thinking to even remember that command! And you’re probably right, it’s most likely an issue with the mapping.

So if I understand correctly, are you saying that the trimmed surface on the left was inherently problematic from the start, and moving the control points merely triggered a re-trim calculation that corrected the error?

I have one more question: could the massive edge tolerance on the left be related to the degenerate edge? After I untrimmed it, I couldn’t trim it again. I always have this feeling that the degenerate edge is the culprit causing trouble, but I can’t quite articulate how

yes - i think so.

you have more a less a quite unusual setup for the marked (x) corner:
the edge is nearly collapsed (length 0.001)
and the corner is Angle = 179.320 Degree - close to 180.

so it s more a degenerated corner and an micro edge that is not fully collapsed.

and yes there is a good chance that this caused the bad trimming… but it s impossible to guess how it was done.

showing an edge with about 0.001 mm length (the 6 cvs)

if this is the geometry you need - depending on the next steps you need the surface for:
(A) draw a proper collapsed edge - > _SetPt all 6 CVs to one Position.
or
(B) better in most cases: draw a proper 4 sided Surface with corners as close to 90 degree as possible. 30 to 150 Degree for the corner should be possible without problems, maybe even 5 to 175 is fine… for the trimming of this surface - i always try do do not have trimmed corners below 1 or above 179 degree.

hope this helps - kind regards - tom

You can see it right away. 6 CVs bunched up on the left and bizarre isocurves.