MatchSrf - Surface edge going rogue - please help

If you convert the surface matched by ChatGPT into single-span Bezier surfaces and then try to match them to the trimmed edge of the main hull, you will notice that Rhino fails to achieve even G0. The reason is that the “Match edges by closest points” option does not respect the already available perfect position of the first row of control points responsible for the G0. Instead, it tries to rearrange the matched edge by its own logic that leaves a huge gap between both surfaces.

Even untrimming the main hull surface and trimming it again with the matched edge of the nose surface does not help. There is still a gap large enough to make you wonder what’s going on and to force you to spend extra hours on this edge alone.

The “Match surface” tool definitely needs some more love from the Rhino developers. It’s the main reason why Alias achieves countless times better surface quality than Rhino. Not to mention the time required to achieve something usable.
Also, the lack of “Explicit control” option inside the main surfacing tools is a huge weakness.

Here is a quick solution that required me to split the matched surface into 4 Bezier surfaces to achieve a tight gap and G1 comparable to what both, Alias and ChatGPT, can achieve with a single surface. It still has plenty of waviness here and there.

SINGLE SPAN LEARN_v2 fixed Bobi.rar (3.2 MB)

Quick thing with the Global Edge Continuity feature. I found that I was fighting the G0, G1, G2…just following the tutorials, and wasn’t getting the expected results.

Out of frustration, I joined and then exploded the surfaces, and to my pleasant surprise all the numbers do what’s expected. Take a look at the screenshots for a G0 example.

I don’t know if this is a bug, or maybe there is some hidden power with join and explode. I did a search but didn’t find anything.

@Gijs - I noticed you’ve been looking into this from time to time, thanks for working on this tool!

@RD3 after Join, Explode, run _RebuildEdges and analyze the edges again, what do you see?
What is your document absolute tolerance set to?

Cool, that worked, instead of joining and exploding I just ran rebuild edges on the two surfaces. It defaulted to Tolerance: 1E-05

Question @Gijs , does running rebuild edges mess up my curves in any way that I might be unaware of?

My document tolerance is 0.001

@Gijs Here is another example, it seems that Join and Explode is the only thing that consistently works, in this case rebuild edges did not help, and join+explode+rebuild edges didn’t make a difference in this case.

Join does modify the edges. Join joins edges that are within 1.8* model absolute tolerance. After Join, the gap between edges is 0, even if you explode afterward.