Sweep2 Issue with Arcs

I’m trying to sweep a profile along 2 polycurves that consist of only arcs. The polycurves are offset by 20’. When I sweep the profile the height of the resulting surface profile ends up not being the same as the selected profile.

The profile that I select when sweeping is this one that has a length on the angled line of 10’.
2022-06-23 12_44_29-Sweep2 Issue.3dm (552 KB) - Rhinoceros 7 Commercial - Perspective

This is the area that I will examine to show the issue:

Here are the options I’m using, however, I have tried “Do not change cross sections” as well.
2022-06-23 12_47_45-Sweep 2 Rail Options

If I create a vertical plane from the center the arc to the arc end point, intersect it with the surface resulting from the sweep, and measure the angled profile line, it is greater than the original 10’. I am trying to make the Sweep2 command keep the length of that angled line the same throughout the sweep.
2022-06-23 14_23_34-Sweep2 Issue.3dm (552 KB) - Rhinoceros 7 Commercial - Perspective

For testing I copied that arc segment to a new object. I copied and rotated the profile so it’s perpendicular to the arc segment.

The I used Sweep2 on this segment and voila, the profile stays at the same length / height.
2022-06-23 14_30_41-Sweep2 Issue.3dm (552 KB) - Rhinoceros 7 Commercial - Perspective

I realize that I could sweep every arc segment separately and easily create a script to do so, but I’d rather not if I don’t have to. Is there a way to sweep both rails and keep the same profile length and height?

Sweep2 Issue.3dm (644.0 KB)

Hi Mike - Sweep2 tried to match up sections along the rails by arc length - there is no assumption that the rails will match in strucure in any way. In this case you have matching sub-curves in your rails - if you mark these ahead of time (just because there are so many - explode the curves, select the segments and run CrvEnd)

you can then add ‘slashes’ to the point pairs, inside the Sweep2 command, to line these up.

See if this is closer to what you are shooting for.

Sweep2 IssueSlashes.3dm (676.7 KB)


@pascal - Thanks…is there anyway besides a script to automate the adding of all the slashes?

@pascal - Actually I was looking at the SweepTwoRail object and it doesn’t look like you can add slashes there. Can you? Am I missing something? If it can’t then can you add a feature request to allow this in the next version?

Sweep 1 can give you the precise result that I think you want. Also, the surfaces that are planar could all be made in one go using planarsrf:
Sweep2 IssueX.3dm (617.5 KB)

This is a good example of serious bugs in both sweep1 and sweep2 commands.

In the case of sweep1 the bug is that you get a different result depending on which series of arcs you pick as the rail curve. One produces a precise rational result and the other is a slightly less precise (but well within tolerance) non-rational result. Both of these results are valid, but the bugs are:
A] Either rail curve should produce the exact same results.
B] The user should be the one who decides which result they want. I guarantee the arbitrary results they have decided to foist on the users without the users consent are going to be wrong for some users. Some are going to want the precise rational result and some are going to want the accurate non-rational result. The arrogance of the developers to think they know which one the users want and won’t allow the user to chose is breath taking.

The bugs in sweep2 is that it just falls on its face and fails. It can’t recognize this as a simple case and produce either the rational or non-rational result , instead it produces inaccurate garbage. And no the user should not have to provide more input curves to assist the developers in figuring out what to do here.


@jim - Good info. Thanks!