We are currently running into some issues with mesh handling in Rhino8 & GH and are looking for tips and tricks:
We want to temporarily join multiple touching and/or adjacent meshes and then be able to separate them back into their individual component meshes afterward. (Grouping or creating Blocks is sadly not an option right now).
At first, we tried Mesh Join and Disjoint Mesh. As suspected, this failed because some touching meshes coincide rather than existing as purely disconnected islands, or because Mesh Join alters the underlying topology.
Are there alternative native commands, scripts, or Grasshopper components that can unjoin or separate meshes that share boundaries or contact points as we desire? Any advice on the proper workflow for this would be greatly appreciated.
A Side Question on Mesh Topology:
Although we need the workflow to be ready in Grasshopper later on, we also tested it in Rhino with commands like Join and SplitDisjointMesh. Here we also had no success.
During our tests, we wondered why a default Mesh Box with 6 faces still appears to have 24 vertices instead of 8. Each corner behaves inside Rhino like a singular vertex rather than 3 overlapping ones. After Weld Mesh, we got the expected box with only 8 vertices, but still had no success in joining and separating multiple boxes of this type. Is welding only changing the way Rhino shades meshes, or does it change the topology?
Can you explain a little more what you are after? If you explain a bit more the why, we could probably help more with the how. Also, you haven’t mentioned MeshMesh Split. I’m mentioning it because it may be something to look into in some cases.
If you want to split again exactly as before, though, the easiest is probably to count the number of faces, and keep them on a side. Later, you can take the right amout exactly out, as MeshJoin will not rotate the faces in new orders.
That’s how meshes in Rhino work, and it’s an implementation detail, really. Normals, textures, etc are stored per-vertex, so if adjacent faces need different values, vertices are repeated.
What we eventually want to achieve:
We are currently working on a custom script expanding an existing plugin.
For simulation purpose we modeled multiple closed meshes (for example: Tool Flange, Base, Gripper) Since the plugin can only handle a single mesh on the input we currently need to join all of these together before feeding the simulation. Afterwards, it would be very useful to split these into the separate ones again, to visualize specific movements of the individual parts, like the opening state of the gripper.
We also thought about other workarounds (ditching the simulated meshes and orienting the meshes later) But at first, we would like to try the direct approach by “disjoining” the previously joined mesh into its “submeshes”.
Join seems to “merge” coinciding vertices automatically.
Is it possible to join meshes without this default behavior?
If yes, Disjoint Mesh would be an option again.