Lofting with multiple openings at ends?

Hi, I am trying to automate turning these curves into a lofted surface (via Python):

I can already produce the desired result when there is only one opening:

But when there are 2 openings at the other end, I can no longer correctly loft the surface : ( It gets pretty messy, and the openings end up getting filled in:

This is a more basic example of the actual geometry I am working with (I’m actually working off of a mesh from a scanned object of similar geometry that I need to first Contour, then Loft and OffsetSrf)

As a side note, I am using Rhino for Mac, latest version. Thanks for your help!

@pascal, any modeling suggestion?

Have you tried to do this by hand? It seems that it is not topologically possible to loft this.

Hi btub - there are certainly ways to model this but not in a way that can be automated, I would say - the rectangular topology of NURBS surfaces does not lend itself to branching forms like this very easily - you need to set things up differently- there will be multiple surfaces.


Well, unfortunately, while this type of topological structure is very easy to do in one “piece” with a mesh or sub-d modeler, it it virtually impossible to model accurately as one single surface with NURBS - the “rubber sheet” topology does not work here. So any single surface creation command such as Loft just won’t work.

While it is certainly possible to create something that looks like that by pushing a blob’s control points around and trimming parts off to create the basic shape, the result will be less than satisfactory. Therefore something like this needs to be modeled as a polysurface with transitions between the two smaller cylinders and the larger single cylinder (like your legs to your body). This will involve some lofting/trimming and blend surfacing. Would be quite difficult to script.


@Helvetosaur @pascal Thanks. I am still fairly new to Rhino so getting up to speed on various commands, etc. - that being said, perhaps I am approaching things the wrong way? If start with a full mesh (from a 3D scan), would it be easier to just work with that directly instead of trying to Contour/Loft? i.e., do a MeshSplit on each end followed by OffSetMesh?

The reason I took the Contour/Loft approach is because I am trying to wrap a new surface over the mesh model, then trim off each end before running OffsetSrf to give an outer wall thickness. I will then delete the original mesh.

At the end of the day, I have to be able to automate the entire process via RhinoScript/Python.

Thanks again for your help!