I use the Unroll component a LOT, and somehow, with this set of surfaces, there is no way I can get it to work.
Since there is no GH Unroll component (Shame on you David !) , I use ones from plugins ; namely :
-Fabtools
-Wombat
-Lunchbox
-(None in Pufferfish. Strange…)
Although some of those surfaces have a (slight) compound curvature , they will unroll fine in Rhino with UnrollSrf.
The Relative tolerance was the blocking point here.
Looks like a “must have” input for a practical “Unroll” component.
The strange part is that the UnrollSrf Rhino command worked with the file tolerance settings, and I thought that Rhinocommon tools used it also by default.
I realize that the Fabtool component has all the desirable inputs, including curves, points, etc…
you can mix both components. just add an additional input of type double name it relativeTolerance and copy maydars second line of code into my component at the same location. Its just weird that this happens. Are you sure you are unrolling developable surfaces only?
My surfaces are internalized in the definition from my initial post.
Now that I understand where the problem is, I can do everything I need with Fabtool’s Unroll component.
But I’m still wondering about this tolerance thing : why does it work in Rhino and not in Grasshopper ?
I try not to have the same components that exist in many other plugins, and if I do (like rebuild surface) is only because I find them necessary to use with my other components like tween surfaces and I can’t guarantee the user has the other plugins installed. I don’t really find unroll so useful in my workflow.
Quite often Rhinocommon functionality is not as robust or equal to its Rhino commands. Most grasshopper-plugin-developer rely on Rhinocommon, hardly anyone relies on a own geometric library. I don’t know of a plugin which offers an own implementation of unroll.
There is a professional plugin called ExactFlat for Rhino. Its quite “expensive”, but it can also unroll double curved shapes, physical accurate (depending on the material). I don’t know if this is also available for Rhino 6. In Rhino 5 it also had compatibility issues with others plugins such as VSR/ASM.
You can however create macro-like behaviour in Grasshopper to use almost any Rhino function.
Bake, get guids, select guids, call the _unroll command by runscript or sendkeys. Wait in between and load the flatten shape back into GH. This kind of scripting is a bit more challenging, but doable.
Well, there is room for yet another Unroll component :
The one that comes closest to have everything is the one from Fabtools, but I’d be glad to do away with fabtools altogether since is has not been updated for V6 and is no longer maintained.
An Unroll tool would fit nicely in your “Surface” toolbar
yes: import Rhino.Geometry as rg or just import Rhino. Rhinoscriptsyntax is also Rhinocommon. Its just a wrapper around it to call it better in a pythonic way.
Fabtool’s version has an option for not exploding /exploding (+spacing), and options for labelling.
If cou can add those, then it’s the ultimate unroll component !