Loft Issues

I’m making a Grasshopper program that builds pendant settings given a closed curve by lofting through a bunch of parametric cross-sections like this:

I’m experiencing a strange crunching-up on the sides of some of the models:


The failure varies depending on the number of cross-sections, but every model fails with certain values.

Usually some come out perfectly, some bake with the errors, and a few can’t bake at all - on these Null Item gives the following error:

Brep: brep.m_E[7] edge is not valid. edge.m_vi[]=(4,5) but edge.IsClosed() is true ON_Brep.m_E[7] is invalid.

Sometimes the numbers are 3,2,3 instead of 7,4,5; I’m assuming this is describing the first cross-section that the loft is gailing on.

Any ideas of how to fix this or a human-readable translation of that error?

I’ve tried rebuilding the curves in the loft options which works but the resultant model always have smoothness issues, and refitting the curves just goes crazy.

Many thanks. (51.2 KB)

Hi Charlotte.
You didn’t internalize your geometry, so the solution is empty.

Also, your solution is somehow complex (and I do not have your plug-in)… can you isolate the part where the loft (or sweep?) happen?
(… internalize the geometries just before the part where you have problems.)

Hi Riccardo,

Here’s a file with just the curves and the loft.

Thank you (995.9 KB)

Ok… I have NO IDEA why some of your curved are messed up.
To me they appear to be like the other “good” sections… no clue.

A workaround, sorry. (998.0 KB)
For every segment done 2 rails and sweep; then join and cap.
It seems to work clean, but it’s indeed way slower than loft (it take some seconds, I’ve disabled first component).

We need an expert in loft/nurbs here…

A solution is to explode your polycurves into segments.

Your curves where good in terms of having same properties and being of low cp count.
However my guess is, that the loft algorithm has problems choosing the right internal segment. Generally spoken its always a good idea not to use polycurves and even better no multispan Nurbs, even if this means having more of them.
Keep it simple and “relaxed”.

I used “flip matrix” for the quick solution, but if you want to make it multidimensional you need to find a better way. Works just for a single shape, but at least it works… (995.6 KB)


If you are using Rhino 6 + GH1 you can duplicate the start curve to the end of the list and use the Control point Loft component. (Only if you don’t care about the closed loft not being periodic.) (990.8 KB)


Alas I’m only on Rhino 5. Will keep this in mind when I upgrade though, thanks.

THANK YOU THANK YOU THANK YOU THANK YOU. This has been driving me absolutely nuts and this is such an easy solution - I don’t have to explode the curves because segments are constructed and then joined together (just before I internalised it), so it’s just lofting each curve and joining the breps instead of joining each curve and then lofting them. Perfection.