Custom mesh editing creates disjoined mesh, why?

I made some tools to work with the Sub-D feature in V6 a while back, but now those tools creates meshes that won’t join propperly. The vertices are aligned well within tolerance, yet the mesh is considered a disjoined mesh. Even if I explode and rejoin it is considered a disjoined mesh. (It won’t weld the seams either) I can refit the mesh and then it works fine. But it seems like something under the Rhino hood has changed that makes it hyper sensitive to vertex tolerances or somehting.

Here is an abstract example of the mesh output after I have extruded one face and divided another.

Please explode and try to rejoin, weld etc. and check the tolerance between the faces.

If you extract the points from the mesh and select duplicates then you’ll also see that Rhino considers these as duplicates. Yet it won’t join the meshes… And it used to do so.

Thanks for taking a look.

mesh disjoined why.3dm (67.4 KB)

@pascal can you take a look?

Hi Jorgen - just looking at the two faces to one side, so far … if I ExtractPt and SelDup, it finds a pair of dups as expected, but if I move both faces, together, snapping from a vertex to the origin, and repeat the process, SelDup does not find the points… floating point fuzz, I guess, but curious. Still poking.

I don’t know if, previously, your tests were using double-precision meshes or not?

-Pascal

I have no idea, I just used vanilla script stuff… :smile:
I’ll PM you the script for the extrude mesh face tool I made. It is still WIP as I put this on hold until things got fixed, but then they didn’t and I was too busy working. But this script used to work flawlessly, and now V6 generates meshes that can’t be welded. So I added a AlignMeshVertices command to it, but it should not need that.

Here is an example of the mesh before and after extrusion and before and after AlignMeshVertices is ran:

Jorgen, it looks like double-precision meshes are at work here - your script works if you first testDestroyDoublePrecisionVertices on the input mesh. I do not, off hand, know what to do about it though, I’ll poke some more.

-Pascal

Hmm… it was my understanding that RH6 would always use double precision meshes. Not so?

Hi Wim - I believe it does now, but, and I’m just speculating because I don’t remember the chronology, it may not have in the past at some point when Jorgen was writing and testing the script.

-Pascal