Sweep 2 rails issue


I often need to use sweep two rails.

Why is it that 9 times out of 10, the resulting surface has an edge that perfectly matches the rail curves, but one time of ten, the resulting edge is different?

It is not clear to me why I would ever want the resulting edge to be different. I drew the curve so it would follow it.

Anyway - this has caused me great pain - trying to hunt backwards to figure out why I have naked edges. Zooming in and discovering multiple lines where I never intended to create any.

Furthermore, when I “patch” a surface and use either all surface edges or all curves, I get a surface that also has naked edges when joined to adjacent surfaces.

Can anyone tell me what’s happening?

p.s. I use one template for all my work and so I’m not convinced this has to do with tolerances. I never change them or the general scale of my project and yet this still occurs unpredictably.



The sweep issue could be due to using the rebuild option or kinks in the rail curves. Post a set of curves or surfaces where this happens and that should tell more.

Patch can’t be relied upon to join into all shaped boundaries as it’s limited in how dense the control point structure can be. NetworkSrf can be more useful as it will stick to edges or curves within a set tolerance. Post any 3dm if it seems like the hole is simple enough and the Join should be working. If I use Patch I tend to Join right away to see if it will do so in that case.

interesting. Can you explain why a rebuilt curve might behave that way?

For simplicity sake - let me restate the problem.

I sweep two rails.

The resulting surface edge doesn’t match the rail.


Thank you in advance

It’s just a guess without seeing the file but rebuilding the cross section curves would be like rebuilding the surface afterwards and might cause the rail edge to be moved slightly. If you post the file I can take a look. There’s also a refit rail option you could try in the Sweep2 dialog if you are rebuilding the cross sections.

Even if the curve is rebuilt before the sweep?

I’m not rebuilding them after I sweep.

I’m talking about this option

Post your file if you have more questions please. That will make it easier to not misunderstand.

Hi Shaun - the rails are refit (to a tolerance) in Sweep2 unless it is a simple sweep - can you post an example? Rebuilding the cross sections should not affect the fit to the rails as far as I know.


sweep 2 rails ex.3dm (2.3 MB)

Here’s what I’m talking about. It doesn’t get more basic than this. I’ve swept two rails, chose “do not rebuild” from the menu, and what I get is a surface that does not match the rail and cross section curves.

Often it seems this is not a problem when joining adjacent surfaces - I suppose they are often within tolerance…?

But sometimes when I go to join a number of surfaces like this together to form a watertight model, I wind up with naked edges that clearly seem to be a result of this discrepancy between curve and surface edge. This creates either small gaps between surfaces or small overlaps of surfaces. Often when I go back in to rebuild these areas and try again, I feel like I’m entering into a jungle of curves that I am mystified as to the origin of.

@shaun What curves did you use as rails and as sections to create the surface in your file? The file has a surface, one curve at a surface edge, and a curve which appears to be the surface border.

Zoom into one of the long sides (rails)
Click on the surface and it will highlight the surface curve.

The other curve you see very close to it is one of the original rail curves.

Can you provide a file with all the curves used to create the surface?

Hello David. That is the file up above. There is nothing in the file except what you are asking for - the original curves and the resulting surface. All I want to know is why the resulting surface edges do not match the original curves.

I am having trouble seeing how this could be stated more clearly.

I found the curves in the file.

Are you using the “Add slash” option? If so that essentially forces a rebuild of the rails and can result in what you are seeing. Interior sections can cause similar results.

I used Sweep2 with your curves without Add slash and the resulting surfaces edges exactly match the input curves. When I used Add slash the results were similar to your results. (Edit: I used Rhino V6 for Windows) sweep 2 rails ex DC.3dm (251.8 KB)


Hi David,

 First off, thanks for your help. My sweep2 was as simple as it gets - it's the default - "do not simplify" is checked and that's it. No "add slash" or anything. I'm in Mac just fyi so some of the terms are diff.

@shaun Are you using Rhino for Mac V5? This appears to be a V5 vs V6 issue. I can duplicate your results using Sweep2 in Rhino for Windows V6. sweep 2 rails ex DC V5.3dm (320.5 KB)


As far as I’m aware I’m fully up to date. V 5.5.3

Just for clarity - it feels like it’s the rails that change - not the cross sections.

Rhino for Mac currently lags behind Rhino for Windows, V5 vs V6 for the current released versions. You could download and try the Rhino for Mac V6 WIP and see if it has the revised algorithm. https://www.rhino3d.com/download/rhino-for-mac/6/wip

Agree, it is the rails which change. I thought that was what I said above.