FlowAlongSrf behaving badly!

I am trying to create a curved hand rail on a curved but not circular or helical stair design. After trying many things I am following a work flow which should yield results - I unroll my surface, set out the curves in 2d then FlowAlongSrf them back onto the form before sweeping the profiles of the handrails and stringers. - However - I cant work out why my FlowAlongSrf seems to keep failing - seems it doesn’t want to do the bend?

Any ideas - I am a convert from Skehtup but really struggling!

Test Monday.3dm (558.7 KB)

Hi Thomas - is this more or less what you are shooting for?


yes def - whats the secret - so exciting to see it!

So- the main thing to undestand is that what this tool does is map objects from the U-V-N of one surface to the U-V-N of another - it has some smarts to line up U and V according to where you pick and so on but essentially you need a base and a target surface - in your case, you have three base surfaces and two targets:

Since the vertical red surface is quite complex and un-even, UV wise - note the dense and unevenly distributed isocurves - mapping from a plane base surface may work but be un-even:

The way out is to make a base surface that has the UV distribution the same as the target surfrace - there are a couple of ways to do this - one is to unroll the target surface usinf UnrollSrfUV which will get you a flat version of the target while maintiaining the UV. Note this flattening is only accurate in 3d if the surface is developable, as in your example. Then you can flow and get even distribution.

You will need to move and scale the unrolled version to fit your curves, or vice versa.


A post was split to a new topic: OSnap an locked objects

Thanks for your response - it makes a massive difference to a user to have forums like this with responses like yours.

Having tried your method I have a few issues, firstly I have to re assemble my UV target (i think that’s what you meant in your last comment) however I see that the help suggests that you might be able to select a non exploded version see below - however i don’t seem to have these options in my command line?

that said once i have connected the two I can (sometimes) get it to work though it doesnt seem to be all the time!

Once it does work I seem to get an issue with the line occurring like this:

is this what you would expect?
Test Monday issue 2.3dm (1.2 MB)

Yeah, that is messy - mostly because, while perfectly valid the surface is a bit messy for your purposes here - there is a tangency at that location between the arc and the rest of the surface - ideally that would be curvature continuous for this operation. If you DivideAlongCreases > SplitAtTangents = Yes, that will split up that surface into two - explode to get at them - you can then do the same operation in three parts, going back you your original three base surfaces configuration. One more thing you can do to clean up the input before unrolling is to, in this case, RemoveMultiKnot from the complex vertical surface after dividing it from the arc at the corner.
Really, if you want to use this tool predictably and cleanly, I would build the surfaces from non-rational, uniform surfaces where possible - e.g. in my example file, I’ve redrawn the mmore complex curve as a simple degree 5 curve with no internal knots - the shape is simple enough to support that - similarly, the arc on the corner can be rebuilt (Rebuild command) to a very close approximation of the true 90 degree arc by using degree=5 and point count = 6 in the Rebuild dialog. This has a simpler internal structure with no control point weighting as is used in true arcs and circles, which makes for a more even UV distribution.
Another way is to rebuild the target surfaces, if in doubt, with a high point count and degree 3 and use that as a temporary flow input and then delete it - the result should be very very close to the actual target surface and is sure to have (due to the Rebuild) very even UV distribution.

Test Monday issue 2_PG.3dm (714.1 KB)


Thanks for this - I managed to get it to work, i went back to the original curve then used rebuild to correct the geometry and extruded, this seemed to produce a better and cleaner result which works with flowsurface.