Orienting plane along a mesh surface to extract curves


I was looking for a way to convert scanned data to a single surface. I am thinking of achieving it as depicted below,

If there is way I can orient a plane to the mesh geometry and extract the curves that highlight the boundary of the mesh so that I can loft them to get a tubular surface. Using this code, Try_Code_2.gh (8.1 KB) I was able to extract the boundaries of this mesh. Once the loft would be complete I’d trim the surface with these curves to hopefully get the final surface. If this is a viable method any tips to determine the deviation from the original surface? I

As I am still learning grasshopper would really appreciate some help,

Thank You so much

Try_Set_3.stl (158.5 KB)

I don’t know if I understood your attempt correctly, but if so, I tried doing part of the surface automated. If you think that this principle works for your purposes it could be extended to cover the entire mesh.

The surface is made from curves created by Plane-Mesh Intersections, which were divided and Interpolate Curve from the Division Points, and finally Lofted.

Finetuning the surface would start with increasing the number of Intersection Planes, then the Division of the resulting Loft-Curves and finally the ControlPoints (CPsU, CPsV). Sliders/Control Panel to set them all.

In order to do the entire surface you may still have to work with part-surfaces, as you would if making it manually (polysurfaces) to get around the hole for example.

Fig 1. Copy of final surface on top. The difference between Mesh and the Nurbs Srf is seen in the blending colors below.

Mesh_Isect_Edges_RE.gh (155.4 KB)

// Rolf

Good evening and Wow,

This is really what I wanted. This so cool.

I have a few questions, if thats ok?

The surface rebuild section, what connects to what? seems like a few connections were lost.

As for the section with the hole, I don’t understand how or what to do. Maybe you can link an example or something?

But all in all this works, thank you so much and just a little more help sorting the hole area.

I wish I had the time to find a GH solution for all that, but if I had the time I would start with making the surfaces manually (to know where to generate curves for loft or network srf).

Regarding the missing compoents, are not using Rhino6? This is what I had in the original definition:

With icons (Loft component to the left not shown):

// Rolf

Yeah I am looking to buy Rhino 6 having used the trial already.

Having tried to connect, I got the Rebuild surface component from Kangroo and cant find the parameter curve divide surface component. As I connect I get this horrible result, any reasons?

Rebuild was from Pufferfish (I only now realized that). Hopefully it works also for R5.

The Divide Curve component was a parallel-version (R6), but it exists in R5 as well (as single threaded):

// Rolf

Thank You I got them and the divide curve component was already available. This has been awesome from your side. I’ll try to work around the hole bit. This is so good though.

Thank You so much

I don’t know what mesh or geometry you are originally starting from, but if possible, cover the hole with a “bulge”, tangent from the current edges (making the Mesh into one single mesh) and from that make the whole surface as one (with the approach already in the file). Then as a final step, cut out the hole.

Just a thought, if possible to start out like that. It would simplify extremely much.

// Rolf

Yeah I was thinking about that, let me see and give it a go. Thank you :slight_smile:

cant find the parameter curve divide surface component.

Also from Pufferfish. Pufferfish works for R5 and R6. Also version 2.0 has an updated rebuild surface component that also lets you rebuild the surface interval domain (not that you need it for this exercise, but just so you know there is a more updated version).


One more thing, which you probably already know, but if not: In order to have better success with nurbs surface creation from curves, it is important to have same number of control points on the curves, and preferably, evenly spaced along the curves.

This is the reason for Dividing the Curve parametrically, that is, with the same number of divisions, evenly distibuted along the curve from 0.0 to 1.0. And only then recreate the curve again with Interpolate Curve from the resulting Division points. Doing this even if there’s already a curve that could have been used (But the curves would then have had arbitrary distributions of control points along the curve, and then Loft would look more like a wrinkled dishcloth…)

// Rolf

1 Like

I’ll keep that in Mind, Thank You


I am coming back to this after ages, actually had a knee surgery. Well, I was able to get the hole part sorted (thanks to your suggestion) however, just another question. If we have a mesh where there are overlapping extensions (marked in green), any suggestions as to how we can go about lofting it?

Thank You

Sorry, I must be a little sluggish now but I didn’t quite get what you mean here. Can you make a rough sketch of what the desired end result would be?

// Rolf

I think he has the same problem like all the others trying to make a prosthetic. Don‘t have time to search all the threads, but there are plenty on this forum.
It‘s about the sort part failing, cause there are two contours in within the same plane.

1 Like

I have been going through a few articles but none seem to answer my question. Can you direct me as to how to approach this? or link me to an article that you might have come across?

Thank You

I am sorry I was not clear, so here I go.

When the part is tubular it is easy to loft the curves, however when the part has two contours like the following it is a little different.

The curves highlighted by the red square brackets can be easily lofted, but the ones marked by blue curly brackets are two sets of contours. Is there a way to somehow sort these two curves and loft them? I tried to search for a few articles but I don’t seem to be getting anywhere. I hope I am a little clear now.

Thank you so much for your help