Sweep1 question/problem

I have a simple helix curve:

that I want to use as a Sweep1 rail curve for this planar surface:

Sweep1 produces this:

which is the proper shape, except the surface twists 180 degrees from start to finish and ends up upside down. I need it to maintain it’s original orientation, so (1) is it possible to make this happen, and (2) why is it flipped 180 degrees anyway?

Sweep1.gh (5.9 KB)

An alternative with Sweep2.


Sweep1_2026Jan11a.gh (11.9 KB)

Aha! 2 excellent solutions - thanks. Clearly I should have thought of those methods myself. What I’ll probably do is incorporate each method into my GH file and see which one is easiest/shortest/simplest. Naturally I’ve got all the geometry components that make the shape & curve so that should be fairly easy to do.

I still wonder though - is it generally known that Sweep1 rotates the swept shape? And why does it do this anyway? My sense was it used a mechanism similar to Joseph’s method to keep the swept shape’s orientation the same throughout the sweep operation.

Thanks again your help.

Look at the raw pFrames before they are aligned to Z. It’s a well-known fact that pFrames are affected by curvature. “Why” is irrelevant really, though “obvious” if you think about it. The real question is what to do about it.

This version has a Python spiral and switch (blue group) between spiral versions:


Sweep1_2026Jan11b.gh (17.9 KB)

import rhinoscriptsyntax as rs

a = rs.AddSpiral(point0, point1, pitch, turns, radius0, radius1)

For (1), to add to the absurdity of how sweep works but still stick with it, and also from very similar experiences:
Sweep1.gh (18.7 KB)




As for (2) what’s also ironic is that if you still were to ensure both top and bottom sections are oriented consistently prior to sweeping, the resulting shape will twist in the middle of the 3D rail more severely:

Good grief Rene - how did you ever figure that out? Talk about non-intuitive! Maybe it’s my lack of awareness of how Rhino works, but what you did would never have occurred to me in a zillion years.

To solve my problem I used Sweep2 which ended up working just fine. The biggest problem I had was getting the right shape for the sweep shape. I ended up with this:

Which I used to make this:

Which works like this: