Create Mesh From Points

I have a set of points made from (sort of) cross sections and I want to create a mesh from them…

At the moment I have 6 points in each cross section but I may add more.

I have manually created mesh faces from 2 cross section points so if I take points {0;0} {0;1} {1;0} and {1.1} I can make a mesh face. Then {0;1} {0;2} {1;1} and {1;2} and so on until {0;4} {0;5} {1;4} and {1;5} and I have one row of mesh faces. I need to do this all the way along the shape until it is covered. I can then mirror this and add a nose and tail to make a closed mesh.

No prizes for guessing what it is.

I can’t figure out how to select the points from the cross sections and feed them into a Construct Mesh

Any ideas?

create_mesh.gh (26.0 KB)

The end goal here is to create a coarse mesh that can be converted into a SubD. I’m trying to keep some control over how the radius along the edge changes from sharp at the tail end and more rounded towards the nose. (+Y)

1 Like

I beat a lot of bushes (so to speak) and threw away a lot of code before coming up with this…


create_mesh_2021_Aug9a.gh (32.2 KB)

Almost half of the Cap Holes faces are not quite planar, but they are close.

I left a Sweep 2 effort in the file (yellow group).

P.S. Perhaps still not what you want for SubD, but a cleaner mesh?


create_mesh_2021_Aug9b.gh (33.7 KB)

Thanks @Joseph_Oster I will check this out later when I get chance!

This is better.


create_mesh_2021_Aug10a.gh (29.5 KB)

OK, thanks for this but what I want to do is create a mesh directly from the points.

The way you have done it would be great if Delaunay produced a quad mesh which feeds into SubD nicer IMO.

Also I think Loft is a bit of a heavy calculation.

It feels like I’m losing control of the mesh a bit because it goes through a loft, then delaunay and I then need to get it back to a quad mesh (I think) for it to translate to SubD well.

Here’s how I would do it if there were just 2 branches of points (i.e. 2 cross sections)…

I can’t work out how to make this work for any number of cross sections.

create_mesh_2021_Aug11.gh (27.5 KB)

Your mesh code is in the white group. Maybe it can be done without Anemone but I was in a hurry. :sunglasses:


create_mesh_2021_Aug10b.gh (42.6 KB)

By the way, this must be a SUP (stand-up board) because surfboards have rocker, this doesn’t?

2 Likes

I’m going to add rocker and other features later.

Nice use of Anenome! Although does this really have to be done by Anenome?

Maybe this is where we should be using a C# or VBScript component?

What’s wrong with Anemone?

Well, perhaps nothing but it just feels like I should be able to do this without a loop.

And BTW… a SUP still has rocker… Perhaps I should call this board the SupD?

Go ahead. It’s your code in the white group that needs the loop, I didn’t study it, I just made it happy. If this works, I say move on.

Some do, some don’t.

Most do, some might not :slight_smile:

You want to argue about that? Some definitely do not. For sure, 100% certain.

To be clear, your code in the white group creates five meshes per section:

Strangely, when I subD the single mesh with no anenome the rail works OK…

but when I subD the joined mesh from the anenome loop, the edge goes weird…

with regards rocker, I’m sure there will be some SUPs with no rocker whatsoever but every one I’ve ever stood on has at least some rocker on the nose and I don’t recall seeing one that was totally flat. I will take your word for it though as its not worth arguing over.

Here it is without Anemone. This might be simpler using Relative Item?


create_mesh_2021_Aug10c.gh (41.3 KB)

I know nothing about SubD.

I do know about rocker on SUPs and surfboards. (and boats)

P.S. I added the orange group to create a “Closed Brep” with the same points used for the mesh.


create_mesh_2021_Aug10d.gh (47.5 KB)

It is more evident in the brep rendering that the transition in the ends to create “faces” (surfaces) is distressed?


Both ends of the hull…


2 Likes

Check this as well…


create_mesh_re.gh (23.2 KB)

2 Likes

Yes, I’ve noticed this on the SubD too. Its partly down to the way I’ve created the height of the points that run down the centre of the board on the top surface and possibly due to how I tried to keep the mesh faces quads at the nose and tail of the board.

When I create the point heights properly this almost goes away. I probably need to split this issue to a separate thread about subD…

Attached is the SubD Board with optional rocker and both @Joseph_Oster and @HS_Kim mesh from points solutions if anyone wants to look at how to get rid of the little blip on the surface. Sorry you don’t have SubD Joseph. SUBD_BOARD.gh (45.8 KB)

@HS_Kim Thank you! That’s a nice solution. I don’t know why I have a mistrust of the Loft component… I think I have been conditioned to think I should not mix Breps and meshes and rely on converting between them in case some scenarios fail. @Joseph_Oster also used lofts in his first solutions so maybe it is unnecessary to only build meshes from points.

This turned out to be just a setting on the SubD that I had got wrong (Used Interpolate = TRUE)

Here’s my attempt at a “mesh only” solution.

I almost didn’t post this after seeing the solutions already posted. I feel like a beginner at grasshopper compared to a lot of people in this forum, but I’m still learning.

First time I’ve used the Relative Item component. It seems to work well in this case.

create_mesh_210811c.gh (24.8 KB)

-Kevin

2 Likes

Very well, you make it look easy. And your method of creating faces for ConMesh ‘F’ input, wow! Nice. Needs to copy @martynjhogg’s rocker feature.

Out of curiosity - because i’ve been trying something similar (without sub-D - which i quickly gave up before learning more like here! Thanks very much for the pointers!). But how would you make a double pintail? How would you create the fin boxes?

I ask this because it was quite a pain for me in this model…!
First result with CNC… Scaled to wood block i had handy.

Should be model had i a 3D metal printer…

Updated - changed Offset input to Relative Item component to accommodate change in data tree:

create_mesh_210811d.gh (31.2 KB)

-Kevin

5 Likes