Flow along complex surface

Since there is no “flow along polysurface”, I had to merge a number of surfaces together, and now I need to flow something that should stay perfectly horisontal along that surface… however, I wasn’t able to unroll the surface and had to use squish, and apparently, that leaves the flow quite distorted…

Anyone know how I can get a flow that stays perfectly horisontal?

FlowAlongSurface.3dm (1.1 MB)

I find it easy to do flow along curve. Extract an isocurve from the object you want to place the other object, measure the length of the isocurve and than make a curve of the same length (base curve) next to the object you want to flow. Change the settings at the top for rigid, no distortion, etc. it works. Let me know if it does not make sense :smiley::woman_facepalming:t2:

It made sense and I can use that as a temporary workaround, but the surface has double curvature which I think I will loose using that method.

1 Like

yes, that is an issue. If you find a better way please let me know! I have issues with this all the time.

Maybe draw a horizontal surface on your target (the double-curved surface) using Project or whatever, and flow it to your flat surface. Then match your part to that curve (maybe flowalongcrv?). Then flow it to the target.

1 Like

That was a very good idea, but I wasn’t able to make it work…

If I were doing this, and if my first idea didn’t work, I’m sure my next try would be to use a different tool, and my favorite different tool is Pascal’s ProjectObjects script.

Hello - if you create the base surface using UnrollSrfUV it should do ok, if I understand what you are after.


1 Like

Thanks for the tip! I didn’t use UnrollSrfUV because UnrollSrf told me I wasn’t able to use it, and suggested Smash instead (not Squish as I said before… although I can never remember when to use what).

However, still using the surface cut with a plane, the result is very wobbly… do you have any tips on how to keep the top edge of that surface completely linear in the UnrollSrfUV?

Also, the CV distribution I get with UnrollSrfUV is very ugly… and probably why I can see some wonky lines in your flow result as well!

And just because Smash was now mentioned, I tried that as well with a regular flow as the first step, but the result after FlowAlongSrf is still very, very wonky and unusable.

Hi @eobet I would make two straight cuts like the attached example and then FlowAlongSrf that new surface
FlowAlongSurface_approach.3dm (1.3 MB)


Yes, that’s it, thank you! But what tool did you use to create that with? I do not get the same straight result if I use UnrollSrfUV despite two cuts?

(Also, I’m able to use SelObjectsWithHistory to see that history exists, but does Rhino have something like the Query command from Alias which can bring up the tool actually used to create that history too?)

I didn’t use UnrollSrf, I used CreateUVCrv, the surface in between is a sweep2 (see also the layer names)

1 Like

Ah, I see now. So you basically trimmed a rectangle out of the surface and then filled in that hole with a recreation of the surface, in order to be able to have cleaner iso curves for the mapping. Thanks again for the tip! Hope this workflow can be automated some day in the future.

(Also, I must admit I wasn’t able to recreate it using Sweep2 no matter what I tried… I had to resort to using a NetworkSrf in order to get it to line up to all the edges.)

The majority of time “RebuildUV” provides evenly distributed control points which is very important when it comes to proper flow of the object along the desired shape.

This is how those surfaces look like after a few minutes of extracting the border of the horizontal flat input surface, then splitting it into 4 curves via 4 points at the corners, then changing the degree to 4. Those curves were used to create "Sweep 2 rails, then I applied “RebuildUV” to it AND the target surface to make their control points evenly distributed. Once that was done, I created a horizontal surface at the top of the vertical one and used “Curve intersection” (see the blue curve). Then I used “Flow on surface” to transfer it onto the flat input surface. It was quire warped, so I drew a straight line (the black one) and used it as a guide to move the control points of the input surface until the blue curve started to closely follow the blue line (history must be enabled for this approach to work). Then, I used “Flow along surface” to transfer the grey details on the target surface. Not perfect, but still usable. Spending more time on fine tuning the control points of the input surface will make the things look better.

FlowAlongSurface Bobi.3dm (1.1 MB)

P.S.: With rare exceptions, “Remove multiknot” is a magic tool. :slight_smile:

If the UV is messy, I usually make a temporary target surface by rebuilding (a copy of) the surface with a lot of points - UnrollSrfUV that one, an\d flow back up to it, then delete.