Unroll Surface exploded

Hi everyone,

The rage gauge has hit 100%

I use Rhino 6 and this kind of problems did not happened for a while.

When creating the surface by extruding the polyline it creates multiple surfaces rather than one single smooth surface. (Grey)

I have used rebuild and fit curve commands to get rid of the surface divisions. It doesn’t work.

When surface is created with “surface from network curves” command it comes as single smooth surface, but the round corners are off and this affects accuracy. (Magenta)

Edge surface command has the best results but when unrolling surface it keeps exploding single surface into multiple surfaces. (Green)

Any help on this subject is greatly appreciated.

you have to tweak the settings:

_UseExtrusions = Polysurface

_CreaseSplitting = disable

(option: splitAtTangents = No)

then you should get a single surface

the above setting might be a bit annoying for other workflows.
you might want to set a macro, that does the settings, calls _extrudeCrv with pause and resets the settings.

or if you only need it for a few surfaes:
_mergeSrf (smooth = no)

1 Like

Hi Tom,

I have done tweaking. I have rebuilt and fit the curve but the result is the same.

Also, It doesn’t give me the split at tangents option.

Please see below.

Upload a .3dm file with the geometry including input curves.

A bit of terminology. Multiple surfaces joined are a polysurface. Multiple curves joined are a polycurve.

In UnrollSrf is Explode=No set?

If Explode=Yes in UnrollSrf then any polysurfaces will be exploded. A single surface will not be exploded. If Expolde=No then UnrollSrf will generally not explode a polysurface.

NetworkSrf always creates a smooth, degree 3 single surface. Any kinks are smoothed.

If the input curves are polycurves then EdgeSrf result is a polysurface.

Hi David,

Thank for your reply. Please find attached file that is problematic.

Rhino Forum.3dm (265.7 KB)

Hi Robert - yeah, it looks like merging (MergeSrf) the result is the way out here- the unroll process splits the faces out at curvature discontinuities.

Why do you need a single surface? What is the goal here? It would be simple enough, at least in your simple example, to make a rectangular surface of the right size.


Hi Pascal,

I use single surface for FlowAlogSurface when creating staircase balustrade. I intersect all my solids (treads, risers & strings) and then unroll all intersections with the surface. Then I place all my spindles accordingly.

I had similar problem few years back. Before I extrude the line or polyline I go through _rebuild and _fitcrv to smooth out and get rid of any divisions in the polyline that will give me single surface.

Hi Robert- can you post a simple example of the whole process? I bet there is a better way…


Staircase Section Rhino Forum.rar (8.9 MB)

I believe that you will get the jist once you open the file.

Its WinRar compressed.

Hi Robert- yeah, I see - it makes sense. One thing you might thoink about, dpending on the desired results is to do the flow in two parts - if you do not want the verticals and the mountings to deform into wedges:

you can flow these in a separate operation with Rigid=Yes and RigidGroups=No


But I see what you are doing.
I do not see flow working too well on the example from earlier, even if the base were one surface. The very tight transitions at the corners seem like trouble.

It looks like UnrollSrfUV will make a single surface from a kinked input is CreaseSplitting is disabled.


Hi Pascal,

I don’t use “rigid” _flowAlongSrf with grouped items as it slaps everything onto one surface. It works best on single individual items. On average some of my staircases can have over 300 spindles and spindle shoes. Doing every one of them individually would be nightmare. Manufacturers will adjust this and its almost impossible to spot this deviation in 3D renders.

I am not really sure what happened to my Rhino settings but I still cant extrude polyline into single surface as I used to until Monday this week. I have tried everything suggested from you, David and Tom but with no results. Whatever it is it must be a serious bug in the software.

I have created single surface merging surfaces with _mergesrf (I never had to do this) and done _flowAlongSrf. The results are really bad. Please see below.

Black - Rigid
Magenta - Not rigid
Orange - Not rigid and only one corner was OK.

_UnrollSrfUV does create single surface but I cant select my grouped solid intersections to do it together as with _UnrollSrf

Just mental …

When using the _mergesrf command and after proceed to _flowAlongSurface all components are placed inaccurately.

are you using _mergeSrf with option smooth = no ?
hard to guess where in your problem / the inaccuracy comes from.

do the spindles as block instances !
you can _pointsOn and _Project the block s anchor points

Hi Robert - set RigidGroups=No


Hi Tom,

_mergeSrf will not be the answer in my case. My problem was when extruding polyline. Instead of having one single surface as I did as before I had multiple surfaces created individually from the points on the polyline.

To avoid points on the polyline and multiple surfaces when extruding, I used to rebuild the curve with _rebuild and then _fitcrv to have it a smooth single surface when extruded.

Once extruded, the single smooth surface was used to intersect all my treads, risers, strings … etc.
I would then group all intersection lines and _unrollsrf (not _unrollsrfUV) which gave me a flat single surface with all intersection lines on it. Like 2D flat map.

This would be my guide for placing spindles, handrail, spindle shoes (caps) and strings before grouping components and using _unrollSrf .
It would accurately place all the components (with a small deviation ) where they needed to be in 3D space. I would manually hone and fix the details.

Sifting through the internet and messing with the Rhino with some of your suggestions, I have found a better way of creating a single smooth surface with more accuracy and less deviation on the corners.

Every polyline with multiple joints should go through _RebuildCrvNonUniform before extruding it into single smoot surface. Works perfectly.

Corner example with 1x1mm square.

FlowAlong accurate spindle position

Final result.

If you have an easier and better way of doing this, I am all ears.

I would also like to thank you for your suggestions. It helped me unlock new features in Rhino and learn a thing or two.