UnrollSrv Tolerance Error Versus UnrollSrvUV

I can’t seen to find the Rhinocommon difference between UnrollSrf and UnrollSrvUV and the default seems to be UnrollSrf which gives the same result as manually using UnrollSurf. However, when unrolling sheet metal, with explode turned off some of my unrolled flat polysurface parts have a 0.0012" sliding offset compared to being perfectly aligned in the 3D polysurface:

3D model:

Flat pattern of the hole near its bend:

My Rhino tolerance is 0.0001" and I tried that for Rhinocommon/Python Unroller command with absolute and relative tolerance also set to 0.0001".

So I can avoid the offset error using UnrollSrfUV in Rhino but cannot access this command in Rhinocommon. I’d prefer if the normal command would work actually, in case any of my surfaces due to editing have become skew a bit in their UV structure.

Sheet Metal.3dm (330.0 KB)

I’m using Rhino 7 WIP.

I see a seemingly new developable surface class in Rhinocommon but not unroll method and certainly it’s not for polysurfaces anyway.

Hello - I see that, thanks - I’ll get it on the pile for the developer to look at.



It’s quite odd though, that Lowell claims in the linked page that there’s a modeling error in surfaces being a bit off in the model and he enclosed a markup of that model showing a gap. However when I open his model on top of my original I don’t see the gap whatsoever in my original. How is he getting it then? His model upload is seen in red, my original in green:

If it’s a modeling error, there’s hope I can find and fix these, but in this case I simply cannot even see the claimed error.

When I take his example model with exploded pieces and I join them and then expode again his gap is gone:

I do however get a slightly different length of the curved strips from top to bottom of the strip, so indeed the model itself is not even. I just can’t see it, and it’s only at the tolerance level of 0.0001" different. But the rest of the model where it works is exactly the same.

Here’s a related model that shows a new type of gap, not a sliding gap but a whopping 0.003" surface overlap error:

In my 3D original model I can indeed find slight errors in that the biggest surface isn’t perfectly rectangular. A bounding box around it shows this, but its’ only 0.0003" off.

So 1/1000th inch level uneveness in perfectly joined polysurfaces is creating 1/100th level errors in flat patterns.

Gap Again.3dm (3.0 MB)

I found a kludge: Rhino is happy to explode and rejoin the odd unrolled polysurfaces and repair the gaps:

This is fine for sheet metal work. Actually I’m using a highly complex Grasshopper script to compute bend reductions that adjusts things in the unrolled state, but it can’t work on bizarre disjoined edges. Explode/join is likely to fix that issue.

However, for this kludge I have to turn my Rhino tolerance up to 0.005" instead of my usual 0.0001" to no longer show naked edges with the surface analysis command.

Another way to define the Rhino bug is to exclaim that the 3D polysurface has no naked edges, while the flat pattern does show naked edges where before there were properly joined faces.

Trying the kludge first on the 3D model with 0.005" tolerance isn’t so lucrative since if I turn back town to 0.0001" tolerance for the unrolling, naked edges reappear. The original model shows no naked edges anyway.

So I merely needed to replace the native Grasshopper surface join component with a Python one that specified 0.005" tolerance when I join my unrolled flat pattern into a polysurface. The Rhinocommon command to unroll even with explode turned off doesn’t join the surfaces on its own.

Hello - on the final part, what does What report for edge tolerances?


Curious difference, in new model posted above:

Original 3D polysurface with no naked edges:

Unrolled version that ends up with naked edges:

Exploded/joined kludge on unrolled version with tolerance temporarily changed to at 0.005" instead of 0.0001":