Trying to accurately select naked vertices

Yeah. That’s slightly similar to what I was talking about in my original post.

i.e. creating culling based upon either curve CP as shown by you or points in BREP.

There are some other mesh weld features including vanilla GH Weld Mesh.

2 Likes

That’s what I’m wondering about. I mean the need of the resultant mesh preserving the duplicate data instead of combining it into one by default automatically.

Whenever we have a unified mesh made from two surfaces joining at common edge, speaking from a real life fabrication utility point of view, that edge is a common one, having duplicate data at the same edge for a unified monolithic geometry isn’t useful in any application, or is it?

It is useful for somethings like simulation and I believe it is resulting that way because it is a hell of a lot easier to weld a mesh than to unweld it, so you wouldn’t want an already welded in case you don’t need it. When unwelding you’d have to think about angles as well.

Insightful! I found the weaverbird component you’ve used in my toolset. What plugin(s) do the components ‘ngon’ and ‘meshedit’ belong to ?

They belong to ngon and meshedit. That’s the name of the plugins that @HS_Kim wrote there.

1 Like

Totally agree and understand fully this portion.

Simulation of… ?

Like Kangaroo simulation. Say you want to act on the faces individually but anchor some shared points so that the seam separates only in some locations. That’s just one example off the top of my head.

1 Like

Okay. Thanks. I’ll check them out in Food4Rhino.

Okay. I see. That’s interesting. So, the ‘clean’ and ‘weld’ components automatically detected and cleaned overlapping vertices, conversely speaking, we can find out overlapping vertices and keep them separate to use them later. How can I do that?

2 Likes

Okay. Thanks @DanielPiker. Thanks a lot everyone for your speedy, insightful and helpful replies. Thank you so much!! :raised_hands:

Here is a fast way to get the naked verts without welding if interested.


naked.gh (24.2 KB)

1 Like

Wai!! WHaaa!!

That’s an interesting behaviour of grasshopper, now it is biased! It is showing those top and bottom curves if I use the naked edges output of mesh edges component.

So for curves, we are good to go, for vertices we have to cleanup.

Wait, this doesn’t work at all. Not the points he wants, not organized by edges and seems to be missing a few points? ‘Like’ retracted. :slight_smile:

The question was how to:

What I posted is a way to do this. This question doesn’t appear to be about organizing these by edges, but that’s probably possible too if needed.
As for missing points, maybe you are being thrown off by the mesh - look closely and you’ll see the mesh doesn’t have regularly spaced vertices there:

Also, bear in mind this keeps all the overlapping points, so you’d need to add a remove duplicates component at the end if you wanted unique points.

1 Like

Got it, my bad.

This might be interesting @archz2 ? It uses Brep Edges ‘Ei’ (Interior) to get edge points organized by “interior” edges, which creates duplicates of course, when an edge is shared by two faces. Cull Duplicates (CullPt) on the flattened list yields 176 unique points compared to 363 from what @DanielPiker posted.


TOP AND BOTTOM NAKED VERTICES_2019Dec1b.gh (31.5 KB)

If you change CullPt in the cyan group from ‘Average’ to ‘Leave One’, the number drops from 363 to 188, whereas it makes no difference in the yellow group (176)?

How many are there really?

Ah, so, but I’m still puzzled. Adding CullPt after Cull i reduces both 363 and 188 to 176. But I don’t understand this yet?

TOP%20AND%20BOTTOM%20NAKED%20VERTICES_2019Dec1b2

At the risk of muddying the waters further, I count:

  • 12 corners that share three faces/edges/points each, or two duplicate points each. 12 * 2 = 24 duplicate corner points?
  • 8 corners that share two faces and one edge each, or one duplicate point each, so 8 more duplicate corner points?

32 duplicate corner points, no help at all.


TOP AND BOTTOM NAKED VERTICES_2019Dec1c.gh (41.6 KB)

It almost makes sense but not quite… What’s going on here?

TOP%20AND%20BOTTOM%20NAKED%20VERTICES_2019Dec1c2

The fuzzy, ragged edges of mesh world, I guess, where precision is negotiable?

OH!!! Because I apply CullPt to the points collected on each edge by Crv CP, the duplicates at the eight corner points that share only two faces and one edge are already removed, leaving only 24 of the 32 duplicate corner points. 176 + 24 = 200. Bingo!

Something similar must be happening with the method suggested by @DanielPiker, though it’s more mysterious to me as it depends on ‘Average’ (363) vs. ‘Leave One’ (188), where the latter leaves 12 duplicates instead of my 24… 176 + 12 = 188. I still don’t get that part? :thinking:

12 corners that share three faces/edges each…

Ah… Weld Mesh destroys @DanielPiker’s solution while mine works either way. Let me see if I got this straight… Without Weld, the mesh has 10 “faces” equivalent to Deconstruct Brep ‘F’ but they are not accessible using Deconstruct Mesh or by any other means? WEIRD!

1 Like

I just started going through your script and it uses some native Grasshopper components of which I do not know the basic functions. After downloading only I realized that there are clusters in which there are more components of whose function I don’t understand.

Intending to get my foundation of understanding right, I entered into a realm of what probably I can call ‘understanding at the micro micro micro subatomic’ level which your script looks like.

I first need to understand some more native grasshopper components that you have used, only then I would be qualified enough to comprehend what exactly is happening in your script.

Immensely grateful to your relentless patience and efforts into deconstructing this concept into so many tiny parts.

Thanks a lot once again.

Reminds me of ‘it is what it is’ maxim that I should probably now apply to this idiosyncrasy of Grasshopper mesh deconstruction and just move on with the simpler components of welding the mesh or cleaning the mesh using weaverbird and Kangaroo components.

#DejaVu

Clusters in my code? Oh, you mean the ‘Tree/List Viewer’ tool? That’s a general purpose utility for visually examining data trees of geometry. You don’t have to understand it to use it, though you are welcome to examine their innards.

For the purposes of this thread, you can treat it as a black box. Sometimes it’s necessary to disable other previews if they override what it is trying to show.

Oh, you’re that guy? :slight_smile: Not sure I did you any favors with my speculations in that thread.

I’m learning about meshes myself in this thread. I never knew that, if not “welded”, they can have an internal data structure similar to polysurfaces? Because from what I can tell so far, there is no possible way to get at that structure through standard components?

This exercise to identify “naked” and “clothed” vertices has been illuminating. Naked vertices by edge using Mesh Edges (MEdges) makes sense but from what I can tell, getting clothed vertices by edge depends on knowing the interior edges from the brep represented by the mesh, if there is one. It must be possible somehow without a brep(?) but I haven’t seen it yet.