Weld Mesh vs Mesh WeldVertices

mesh
weaverbird
unhandled

(Spencer) #1

Just a slight confusion of how the two components behave and if I should use one or the other, or both?

In some tutorials, they use Weld Mesh. In another tutorial , they use WeldVertices.

Another thing. Regarding Weaverbird’s Join Meshes and Weld, should I use it over the native Join Meshes and Weld Edges? There have been instances where the results were not identical when I used one over the other.


(David Rutten) #2

Grasshopper only provides the Weld Mesh and Unweld Mesh components. Weld MeshVertices must come from a plugin. It is possible that the plugin provided the functionality before the native components were added.


(Spencer) #3

I see, I guess I got it from MeshEdit.
I’m guessing though that the native components should be preferred over the plug-in version?i.e. Weld Mesh over Weld MeshVertices and Mesh Join + Weld Mesh over the weaverbird equivalent?


(Laurent Delrieu) #4

All these tools rely on Rhinocommon, my understanding is that
Weld Mesh uses
http://developer.rhino3d.com/api/RhinoCommon/html/M_Rhino_Geometry_Mesh_Weld.htm
"Makes sure that faces sharing an edge and having a difference of normal greater than or equal to angleToleranceRadians share vertexes along that edge, vertex normals are averaged."
=> just a difference in rendering , suppress some creases

Unweld Mesh
http://developer.rhino3d.com/api/RhinoCommon/html/M_Rhino_Geometry_Mesh_Unweld.htm
=> Could be useful if you want a cube look like a cube and not a sphere

Weld MeshVertices
is like
http://developer.rhino3d.com/api/RhinoCommon/html/M_Rhino_Geometry_Collections_MeshVertexList_CombineIdentical.htm
Just a bit more powerful because it uses a tolerance.
=> there is a modification in Mesh topology, Very useful to seal the mesh, to lower the number of vertices, to connect faces, edges, vertices.

Join Meshes and Weld Edges
Join multiples separates meshes and may use
http://developer.rhino3d.com/api/RhinoCommon/html/M_Rhino_Geometry_Mesh_Append.htm
then weld all vertices near from each other.

For the normals you will also need Unify Normals but use it after the welding
If you go in C# it is important to follow these steps :
Optional : Unweld or weld depending if you want to see crease or not
Mesh.FaceNormals.ComputeFaceNormals();
Mesh.Normals.ComputeNormals();
Mesht.UnifyNormals();
Mesh.Compact();


(Spencer) #5

Thanks.

Just a clarification. So Weld MeshVertices is a bit more powerful than the native Weld Mesh?


(Laurent Delrieu) #6

For mes yes, because it works first on vertices. Weld Mesh is first for rendering and then work on vertices. If you want full control use a C#.


(Michael Pryor) #8

If using R6 you can just use this one "Mesh.RebuildNormals"
http://developer.rhino3d.com/api/RhinoCommon/html/M_Rhino_Geometry_Mesh_RebuildNormals.htm