Trimming, recommended extensional size of underlying surface

What is the recommended size for an underlying nurbs surface to be bigger then the trim-Curves ?

  • Absolut Add-on ?
  • relative Add-on ?
  • take care of Control Points of trim Curves ?

I am a bit confused.
Until know I mostly used a relative Value 100*DocumentAbsoluteTolerance and this worked fine.

But it looks like - for example _planarSrf takes care on the control point structure of the trimmed curve and does a relative (2%) add-on

left world-oriented circle, _planarSrf, _untrimAll
middle circle rotated by 45 degree
right _shrinkTrimmedSurface

how should we handle those additional surface–Sizes to develop robust plug-ins.
(Rhinocommon, c#)

Is there something else to be considered (regarding this add-on) if the breps are used for Boolean Operations.

thanks for some Background info - kind regards -tom

I think it makes sense to prevent any form of overlapping within the absolute tolerance.

However, in my experience there is only a handful examples where it doesn’t matter how big the underlying surface is. In practice the underlying surface is part of a bigger surface layout, and as such it makes sense of not touching it, especially just for trimming.

The problem usually is not that the surface is touching the cutting curve. Instead, often the trimming curve is not fully on the surface, resulting in a very heavy trim boundary curve or going beyond the surface border. The projection vector is important then.

Also note, you cannot truly extrapolate all surfaces without the risk of modifying continuity or stability. If you linear extend a single- or low-span surface you shouldn’t run into any problems. This is very stable, but consider a heavy surface. Usually what happens, you also extrapolate the error. Very un-smooth surfaces can easily go wild. So there is a lot of things which still can go wrong, even if you prevent a tolerance issue.

thanks for your answer.

yes - I am mostly using extension with 10 oder 100 * AbsolutTolerance
but this would be a absolut extension.

as a most simple example
_planarSrf uses a relative (?) extension - at least the extension is getting bigger, vor larger curves…

this is, why I am not sure, if I have overseen something, or miss some infos about nurbssurface + trimming.

any explanation why _planarSrf is doing a more relativ extension ?
and any need s to also do this in custom commands… ?