Lofting curves...almost but not quite?

I’m a new user trying to get Rhino to re-create a curved shape. In my mind it should be the same as creating a boat hull from cross sections, so that is how I have approached it.

I am drawing what is very much like a half hull. I have a series of cross sections taken from a model, and I want to loft a surface over the curves.

If I use “Loft” command, it is close except for 1 problem. The surface does not extend all the way to the edges of the curves.

If I try “SubD loft” the result is similar to loft, except there is an additional problem of the program trying to create a corner where the surface meets the last curve, which is on a different plane. And I haven’t been able to remove this corner after the fact.

SubD 2 rails follows the rails as it should, but two problems. First the surface becomes wavy for no apparent reason. (I re-built curves with same number of control points, checked direction.)

Second, visually, both rails start at a point and end at a point, but SubD won’t loft to a point…so I have to chop up the rails so I can designate the ends of the rail as the last curve. But I can’t have 2 curves intersecting, so I have to extend the rail slightly past the last cross section curve, then cut it to create the end of the part. This leaves a defect in the surface, similar to the regular SubD loft.

Any help would be appreciate. Maybe there is a simple answer, but this is my first time using the program. It seems like it should “just” work, but so far I haven’t been able to crack it.

Any particular reason for using SubDLoft? My understanding is SubD is not the best approach when precision matching of existing curves, etc is desired.

Sweep2 may be more appropriate than Loft for a set of cross-section curves between rail curves.

Thanks. I tried sweep2 again, this time adding points at the intersections of the two rails and including those points in the sweep. (I re-joined the rail I had split apart to make the SubD 2 rail work. I forgot to try that before, because SubD commands don’t let me select a point when selecting curves. But regular loft does…)

Sweep2 does create a surface from rail to rail, but there is still the problem of the waves. I have no idea of why it would be wavy. The waves only appear when I include rails! Lofting without the rails gives a perfectly fair surface, both with regular loft and SubD.

Can you upload a .3dm file with the curves?

How accurately do your curves match the original model?

How accurately does the digital model need to match the model?

What is the relative importance of “smoothness” of the digital surface compared to accuracy of matching the model?

1 Like

Probably tools like xNURBS can help you.


The project: I am starting with a hand made mold for laminating fiberglass, which has been laser scanned. And now I am trying to turn that scan into a “perfect” version of the mold.

Making the surface smooth and fair is most important. I plan to have several molds machined from this digital model.Rhino sweep test.3dm (4.7 MB)

The curves don’t have to be 100% accurate. They are already slightly modified from the original to eliminate the minor asymetry in the original model.

I didn’t include the issue with regular “loft” before. It creates a fair surface that is almost right, except it flatens out the curved edge when approaching the point at the end.

I’m attaching a file that is a portion of the curves. It seems to be enough to reproduct the wavy surface I get when lofting with rails.

Rhino sweep test.3dm (4.7 MB)

Thanks. That sounds like exactly the thing that I need. Creating a surface the way a wood batten lays over a curve is precisely what I need!

But I’m using a trial of Rhino 7, and xnurbs appears to only have versions for Rhino 5 and 6? I didn’t see anything for Rhino 7.

dear @darren3
rearrange your curves, that the symmetry is proper aligned to world coordinates
(or for complex document set up a custom cplane for this purpose)
split the curves at the symmetry-plane (draw _line _trim in top view)
use loft with the _rebuild N=8 option.
build a helping-Surface (green in my screenshot) from the edge (_extrudeCrv)
use _matchSrf (tangent, (not average), preserve Isocurve) from the loft-surface against the “helper”. (to fix the condition, that the surface is mirrored proper)

good luck -tom

What is, “the proper alignment to world coordinates”? (I’m curious why alignment of the construction plane would have any affect on the program’s ability to loft a surface, but I guess that isn’t the important thing right now…)

I am working with the curves split along the symmetry plane, as you say. So that’s done. But I would be equally happy to loft the curves in one step, rather than to loft half curves and then mirror.

But regardless, I try everything as you say, exept I don’t know what this proper alignment is. Maybe this alignment is the secret, because the other steps you suggest don’t seem to solve the problem.

I drew my rails as degree 1 curves, and then used “curve through polyline” command with “square chord” option. This seems to be the way to get a curve to go through a point, rather than just nearby. It is the type of curve I would get if I were drawing on paper with a spline. And I want the surface to have this same curve.

But the loft command seems to be calculating the curvature of the surface by some other method, because the edge of the lofted surface does not match the curve I drew over the same curves. And the Matchsrf command only seems to affect the edge of the surface, creating a transition between the two, rather than recalculating the loft so it is a fair surface that smoothly transitions to the helper surface.

(1) use World Axis for symmetry … is just a simple way to get symmetry done right with less effort… but of course you can do the same somewhere freely orientated / rotated in space, but this will give you more sources of potential errors.

(2) half / vs full if you build proper symmetric curves you can build it i one go.

(3) drawing curves / how loft calculate curvature… drawing curves is its own topic. At the end the surface has only a single amount of CVs, Degree, Parametrisation in each Direction U/V. So for a very accurate result you have to build your curves with same Degree, same number of CVs, distribution of points corresponding to your features / the fast (and not 100% exact / satisfying) option ist the rebuild.
… to explain the difference of the Knot / “square chord” option check the help. I would guess that the loft command more behaves like “uniform” Knot spacing for the “normal” loft-style.
-> but your digging into an area that is not entry level.

you might want to post your results again and point on the aspects you don’t like.

there are two excellent training resources:
some of your questions are covered in level 2, “Exercise 11-2 Making the detergent bottle”
but maybe already in earlier chapters.

kind regards -tom

1 Like

Thanks Tom. I forgot I had the full curves in the file I uploaded, so I didn’t realize you were saying to trim them! (I’m already pretty comfortable with the basic operations. I am familiar with AutoCAD, so Rhino feels very familiar. I’m surprised how similar it is.)

The issue was that the lofted surface doesn’t precisely follow the ends of the curves. Like I said in the title, it’s close, but not quite.

Since my last post I decided I need to adjust my approach.

What I did now is I extended the curves beyond the part edge.

And then I drew the curve that represents the part edge, and extruded it perpendicular to the surface.

I’m feeling pretty confident I can get the result I need with this technique.

Screen Shot 2020-12-17 at 10.38.44 PM

… dear darren3 - sorry but i will not have time to answer you within the next days maybe @pascal can help. thanks.