Sweep1 different result in Rhino5 to Rhino6

Hi there,

I’ve got the same set of curves that I am sweeping in Rhino 5 & Rhino 6. I get different results, and I can’t figure out why. Was Sweep1 changed a bit for Rhino 6?

Rhino 5

Rhino 6

I’ve also noticed that the RH6 version has limited history. If I move the cross-section, the sweep does not update and the command line states “History failed to update 1 object.”

If I change the rail, then History updates the sweep just fine.

Here’s the .3dm file.
Rhino 6 Sweep1.3dm (968.4 KB)

Thanks in advance for the help!

Hi Mike - use the ‘Refit rail’ option in the Sweep dialog - by default now Sweep tries to make a simple surface - matching the input curve structure - if possible.
(I’m looking at the History bit)
@MikeM - if I make a new sweep with History, moving the shape curves updates correctly but breaks the link back to the other curves that are to one side on the Y axis.

Rhino 6 Sweep1_pg.3dm (929.3 KB)

-Pascal

OK, but even in your file when I delete the sweep and make a new one without Refit Rail, the sweep does not update when I move the cross section curves. Shouldn’t the sweep update when I move them off the rail?

Hi Mike - I think maybe what is going on is that the new position is not suitable for a simple sweep, and the thing does not know to switch to refitting the rail. I do not know what is possible but it seems to me this could probably be made smarter… I’ll get it on the pile.

https://mcneel.myjetbrains.com/youtrack/issue/RH-51029

-Pascal

In the short term, would it be possible to have the ability to toggle on and off these ‘simple sweeps’? Could you add a checkbox to the dialog box that pops up?

These simple sweeps aren’t necessarily as smooth as the original sweeps. What are the advantages of the simple sweep?

Hi Mike - the toggle for simple sweep is the ‘refit rail’ checkbox - with that checked it will not make a simple sweep.

The reason for Simple is that both Sweep1 and Sweep2 traditionally ignored the structure of the input (rail) curves and made a surface that was ususally much more complex in the sweep direction than the rail curves. Often this is not ideal because the resulting surface is intractable if you need to point edit, so Sweeps were basically not available as surface tools for super clean and simple surfacing, where structure is at least as important as strict accuracy. In your example the result is less than what is expected but in many cases it works out fine.

-Pascal

1 Like

Fair enough. What characteristics is Rhino looking for when determining if a sweep should be a simple sweep?

Also, are there simple sweep2’s?

Hi Mike - there are simple Sweep2s. yes. For a sweep to be simple, the cross-section curves must be exactly on an Edit point (as in EditPtOn) of the rail(s). For Sweep2 the rails must have the same structure and the shape curves must be on matching edit points at each rail. In practice this usually means that you’ll get a simple sweep if the rails are compatible and there’s a shape curve at one or both ends, since there are always edit points there. Getting them placed right out in the middle is less common, you’d have to do it deliberately.

-Pascal

Thank you for the clear explanations. I’m still not sold on having them as a default, but at least now I understand what they are trying to do.

Thanks,

  • Mike

Hi Pascal,

I’ve got another Sweep issue. It seems simple enough, but I can’t get history to stick on it. I’ve swept this both with and without Refit Rail. Either way, if I move a single cross-section curve, the sweep history breaks. If I move all four, it updates just fine. What’s going on here?

Sweep Broken History.3dm (566.3 KB)

Probably the curves are copies, with History, of one another - I’ll take a look.
Nope - but… it all works here in the latest.

Do you get any feedback at the command line when you try?

(The thing you pointed out about simple sweeps not updating has been fixed by the way.)

-Pascal

It says History failed to update 1 object.

Really? That’s fantastic! I look forward to the next service release.