Error in RhinoCommon Unroller vs _UnrollSrf

Hi,
I found a big difference in the results between the RhinoCommon unroller versus the Rhino command _UnrollSrf. Unfortunately found this out after fabrication - and as a notification for future generations I’m posting here my findings.

This subject has been dealt here as well:

In the background the Rhino’s UnrollSrf seems to shrink faces before unrolling. @dale
The RhinoCommon version does not. This is apparent if you script the command yourself - or if you use OpenNest’s “Unroll” or LunchBox’s “Unroll Brep” components.
Could the shrinkfaces be added to these components in future updates? @Petras_Vestartas @Nathan_Miller

Interestingly FabTool’s “Unroll” component produces correct results, but I suspect it’s based on Rhino command, as it propably predates RhinoCommon.

Here is an example of an “bad” geometry being unrolled before and after shrinking.
Red is the correct outline.

The breps need to be shrunk prior unrolling either in Rhino or in Gh.
In Rhino it’s _ShrinkTrimmedSrf, or in Gh with a small python script, for instance:

[x input type hint: brep]

x.Faces.ShrinkFaces()
a=x


UnrollTests.gh (151.9 KB)

1 Like

Good to know this!

Would it be any case where doing this to the brep:

x.Faces.ShrinkFaces()

Would actually have worse results?
Or it is the way to do it?

@Petras_Vestartas
This post, and everything in it by @dale provides more insight.

I’m unfamiliar what brep.Compact() does, but it seems that Dale rebuilds edges, shrinks surfaces and culls unused faces, (plus some checkups) prior.

1 Like