Find unwelded mesh edges

unhandled
(Pfotiad0) #21

Sum-up:

  1. IF you want to get a mesh in pieces via some sort of edge chain loop then unwelding edges MAY be useful (but there’s other ways to do that as well).
  2. IF you want to create “gaps” also via some sort of edge chain (with a total user control upon where the chain terminates both sides) then unwelding edges has no meaning.

In both cases the core of the matter is the chain:

  1. In meshes with reasonable amount of edges (whatever this means) picking them interactively is the best way to go: for each C# loop store the insofar state of the selected edge indices - as Tree - in a parameter (volatile > permanent) and read the content (access the thing via his nickname) BEFORE the C# re executes (that requires code - obviously - but I have about 500+ cases that do that).
  2. In big meshes a computer assisted chain creation makes sense: obviously via a controlled recursion PLUS a smart way to visually locate the start edge Index (that’s easy via a kind of 3d crosshair system with a search sphere at the origin point).

1 Like
(Michael Pryor) #22

Just a thought if this is the goal, would it not make sense to just not weld the mesh at all in the first place (or simply unweld / explode all mesh faces), move the correct points, then weld (as weld will ignore the not touching verts.

(Pfotiad0) #24

You are lucky: no F1 race this w/e (forza Lewis) or MotoGP (forza Vale) … only British Superbikes (better than WSB races). So there’s time for stupid things:

Study the image: In the textDots L is for loop and E for edge index. So L0 is for the start index. Chain goes both sides (obviously). As shown no restrictions are applied meaning that recursion stops on naked points. So … what kind of restrictions/rules you want for that chain? (for instance: work only in a banana shaped mesh colored pink, work only in black non-manifold meshes, stop when you are out of cigars /Vodka… etc etc).

And here with a max loop restriction:

Q: Should I add a make gap/“slice” thingy? I.e. zero (or a startD) D at start/end and then some D (steady/cos/sin/random).

BTW: here’s some classic questions (as always: work with topo vertices and NOT vertices).

(Thomas Evans) #25

Finally “gaps” done and yes MeshTopology(Vertex-Face) was the key (Sandbox of course :sweat_smile: and standard components)


On the other hand interesting loop method definitely I would like to try.

For the “SplitMesh by EdgeIndices” any update? not for unroll just to split

(Pfotiad0) #26

Well … all that (by coincidence) have some real-life meaning since a new project emerged and one possible envelope (solely for shading in some desert - no rain expected the next 100 years) option has as follows:

Imagine a tri mesh that yields a W truss, say like this one:

Now having the truss on hand let’s focus to the envelope (out of the mesh tri Faces). Imagine a Dendrogram i.e. a recursive chain creation (with N options about what to do and when to stop) like this:

Now imagine that we modify each node in the Dendrogram by (a) taking into account the normal at a given node (requires conversion to MTV indexing since vertex normals use MV indexing) with length proportional to the node depth (b) “shifting” it - also proportional to depth - using bisectors VS the neighbor nodes.

I hear you: use a proper tensile membrane and forget stupid meshes. Indeed … but client thinks that membranes have limited life span (he’s wrong).

#27

Thanks for all the input, unfortunately I couldn’t follow. I already ran into the next issue with Mesh.UnweldEdge requiring a list of IEnumerable?

Where do I start if I want to learn C#?

#28

@wim

I think unweld edge based on a list of lines, not mesh edges, would be a really useful SubD command. This requires finding the matching index in the MeshTopologyEdgeList….