Help needed for Sweeping a Rectangle profile

HelixSweep02_rh6.3dm (2.4 MB)

dear @RodolfoSantos … yes i agree that the sweep1 framestyle is not predictable … that is why i opend the above topic, but did not get the desired attention.
my workarround is, to copy the profile for many times (via rhinoscript) and then just loft the curves.

see screenshot / attachted file.
You will just find the result of the script, with some additional debugging-output:
the inital curve (blue) divided into 200 Points (blue)
the result (red square-surfaces) from CurveFrame
for all those 200 points
the result (green surfaces) from CurvePerpFrame
(which i did not use further, as i do not understand the rotation of the plane)

… the CurveFrame gives x-y-z vectors, “local cplane” if you want.
… within this the script draws 200 squares (or orientates 200 curves)
… the 200 squares / curves are lofted…

i may find time on Monday to clean the script and post it, so it can be used by others…

and if you use curvature-Analysis, make sure to set a custom mesh.

hope that helps - kind regards -tom

1 Like



By comparing this approach ( Curve based )
Captura de ecrã 2021-03-21, às 12.28.15
With this approach ( Surface Based ) from @encephalon

Or with this approach ( surface based ) from @Gijs

I see no real benefit in using a virtual skin to calculate the sweep as desired.

The main reason is that the initial objective is not achieved, i.e. to have a level of control over the starting profile adapted to the needs.

In one case there is no profile to work on.
In the other case , some adjustments lead to unpredictable results ( as pointed above ).

That’s why I think that Rhino’s implicit history seems to set certain limits regarding this specific demand, which a scripted solution would probably allow to overcome…

Rodolfo Santos.

Then we should find a way to catch more attention.
*I was not aware about the existence of your topic, thanks for pointing this out.

Sweep 1 is a frequently performed operation.

Increasing the number of profiles on a rail to hope for a better approximation should not be the only possible approach.

It is a race to complexity.

Let’s address the question more directly then.

Can anyone at McNeel help us to better understand how to proceed in such a situation ?

  • What are the possible solutions with the native tools ?
  • What are the recommended external solutions ?

Rodolfo Santos

Thank you very much for sharing this.

This is an interesting and exotic way of evaluating a curve (200 profiles ).
As I wrote doing this manually in Rhino is a race to the complexity, the use of a script makes sense.

I see

Planes ( 2 directions )
A ribbon Srf
A PolySrf

You would like to explain what is executed by the script and what is done by the user ?

Unpacking a given logic is always instructive.

Rodolfo Santos

1 Like

i was not sure, wether you just need a result (my fast guess) or an more general understanding - your last question … i will edit the post above…

Hi, I did not check all solutions…
Attached is a version where the twist is controlled by the curve curvature. As others already mentioned the point count of your curve is a bit low and the curvature at the ends is not so nice. However I think this would be nice to have in Sweep.
HelixSweep_jM.3dm (281.7 KB)


Thank you for sharing your file.

This curve was just an example to put forward the current scenario.
More accurate curves can be used naturally.

I start to see something emerging concerning the Spiral/Helix curve .

A :
Be able to reshape the guide curve used to calculate the Spiral/Helix curve that we may need to transform a bit ( FAB constraints ).

Curves with less points is the right path.

Sweep 1
More points is the right path.

Seems like there is a 2 step workflow emerging…

Simplicity is required to reshape the guide curves while complexity seems required for the Sweep operation.

I will check your file on another computer, I am using RH6 on this one.

Rodolfo Santos.

nice idea @Jess

attached is that concept in a simple gh file (12.3 KB)

1 Like


Thank you for sharing your file.

Curvature alignement is to my opinion an elegant way to manage the twist.
I still need to apply such a strategy to a project awaiting production, but Instinctively I think this is a valid and appropriate solution for the intended purpose.


What I see is that the input curve can be simplified with no significant impact on the accuracy of the resulting surface.

This confirm that a 2 step workflow makes sense as mentioned earlier.

Most important, the initial objective with this approach is achieved.
Adjusting the profile becomes easy and intuitive.

Less is more…

I vote for this one as well.

Rodolfo Santos.

Shall I publish a wish topic based on the existing ones + this thread ?

You may, but I’d bet that this will never happen :wink:
That is way too fuzzy since a curve may have zero curvature…

I would be happy if it were possible to model a super simple picture frame with the Sweep1 command like the attached sample. SimpleFrame.3dm (73.0 KB)

Yes, it is a legitimate counter argument.

Having a way to manage the twist is however a legitimate request.

If we compare the orientation of a profile created around a curve at the knot location with another profile created around the osculating circle (calculated at the same location), it seems obvious.

I admit that I don’t really understand which information leads to the twist applied on the red profile when using the AroundCurve option…

The result obtained from the osculating circle can be suitable in many situations.

Do you think that the GH solution provided by @Gijs could be written in Python ?

Rodolfo Santos.

Anything made in grasshopper (at least with its native components) can be made into a python script, as all the used functions are exposed in RhinoCommon


Right, that being said, I will try to find someone willing to write such a script.

Thanks for the clarification.

Rodolfo Santos.

I can certainly make that but this sounds more like a bigger assignment in order to get this up to the specs that it is useful for you. If however all you need is the gh file I sent as python, I can look into it.

Here’s possible way, maybe, if it is not too involved to set up - add a guide curve to guide the orientation of the profiles.
HelixForGH.3dm (82.3 KB) (11.2 KB)


My take on it.

Should be pretty straightforward to script in Python or C#.

Spiral Rectangle Profile (21.5 KB)

// Rolf

The sweep is one thing, but there is also a complex rail curve to generate.
If ultimate clean geometry and maximum control with minimum editing is needed then I’d create everything parametrically. ParametricHelix_jM.3dm (550.4 KB)

Thank you very much for these contributions.

As I am conducting online training until 8pm tonight, I will not be able to read your contributions until tomorrow morning.

I am very grateful for your involvement and responsiveness.
I will be more available tomorrow

Rodolfo Santos.

Here a Grasshopper version + a hastily crafted scripted C# version.

Only the mandatory inputs are connected to the component. Inputs are commended (mouse over). A group of outputs are useful for debugging to understand what inputs may be needed to change.

Spiral Rectangle Profile (49.6 KB)

Not intended for use in nuclear plants or medical intensive care. :wink:

// Rolf