Edge Continuity tool ELI5?

I’m wondering f anyone can help me understand how to use this tool.
I have here 3 pairs of joined single span surfaces. One positional, one tangent, one curvature.
How do I decide which values I should be using in the tolerance areas?
What numbers should I be seeing in the little black squircles?
I assume the zero’s are all indicting the G1 and G0 aren’t curvature continuous (as expected), but, what exactly does 0.023 mean on the G2 join?
What numbers should I be looking for here for nicer surface matches?

Sorry if these are silly questions, thanks in advance for looking :slight_smile:

These values are perfect! You have to understand that there is no exact or the one-and-only continuity. Its always a matter of tolerances, because you are dealing with two principal curvatures on a single surface and one affects the other.

I don‘t know this particular tool, but I used to work a lot with an equivalent function in Icem Surf. I assume it will also show you a graph on the edge indicating where locally the highest deviation is. This can be used to improve the continuity by manually tweaking control points or by using different matching settings. This is especially useful on corner blends or on places with high tension were algorithms might fail to produce great output or just by messing up the surface.

I have created production ready surface models of real cars, and we also used to validate surface quality which such tools. But be aware that continuity alone is not a sign of a good surface model! Slightly higher values, but better curvature flow can actually look much better. Thats also why G1 is far more relevant, since having G1 but no G2 only result in a kink in the zebras but this is not necessarily super bad, depending on where this is. You always have to to tell is it noticeable? A wavy zebra flow is much worse than a slight kink. So always aim for perfect G1 and see how good G2 can be without unsmoothing the surfaces

We had a threshold for G1 at 0.05 but even 0.15 is technically totally fine, G2 is almost irrelevant. Closer to 0 is obviously better.

1 Like

Thanks for the response Tom,
Ok, so, in the curvature continuous pair, if I grab one of the matched surface’s points and pull it out of alignment, the number shoots up to 1.000, and I take this to mean curvature continuity has been lost. This seems sensible.
So, the lower the number the better, and values below 0.05 are desirable but, it depends on the tolerance I’ve set.
I’m still not totally clear on where I should get my tolerance values from though. Is this related to the tolerance I’ll use later to create an STL for print/machining etc, is this the rhino tolerance for joining surfaces? is 0.01 enough? or 0.001?
When I change the “density” value, I get different numbers however.
At a density of 50 i get 0.050, at 100 I get 0.016 and, at 200 i get 0.029. Any ideas what this is trying to tell me? I originally thought the density button was just for the number little curvature graph hairs, but now i’m doubly confused :slight_smile:
Again, apologies if this is all simple and I’m missing something obvious here…

Again, matching the curvature of two surfaces is a matter of tolerances. Because, both the u and the v direction affects the curvature. Its often not possible to achieve the same local curvature on the other surface. So you can only anneal that. See not only if you move the 3rd row of cps up and down, but also moving them in any other direction affects the curvature. And you noticed how sensitive this operation is. You need to adjust the pull sensitivity(don‘t know the name of this command in Rhino) to have a chance modifying it manually. And I rather speak about G1 for that. G2 manually matching is almost impossible for a human.

You can only test the continuity on a single point at the surface (edge) so the more points you have the more accurate it is. This explains the observation you made by tweaking the sample points.

Matching Surface is a recursive algorithm and so it stops when its oscillates around a value, but there is no obvious threshold specified for G2 in Rhino as far as I know. Of course there must be one so that it can be said this is G2, but this very subjective. So thats why I‘m saying G2 has no real threshold. With G1 it indicates the angle deviation and obviously you can specify that below a certain angle its not G1. But this is also subjective to a certain degree. Sometimes it is not possible to G2 match two surfaces unless you move the cps closer to the matching edge which is kind of cheating.

Furthermore only G1 is desirable below 0.15/0.05 not G2 ! The angle tolerances are set to 0.01 by default I think. An algorithm can try to achieve better. But as I said, there are many situations were the surface cannot be matched below a given threshold. This is when you need to rework your surface layout.

Thanks for all your help. I think I have a slightly better grasp on it… still not totally understanding though… the curvature hairs seem to show and not show at random… Perhaps the tool itself is bit buggy… (or I have no idea what I’m doing… which is more likely :smiley: )

This could be. Maybe one more thing. Unless you are working in an industrial context like I did, defining the threshold is really up to you. Just render with reflections or Zebras and decide for yourself what’s okay and what’s not. You would be surprised how high the tolerance can be until you really notice something visually. That’s why I don’t care much in Rhino about these values when doing Hobby Projects… As always, there are some exceptions to this, so it’s definitely a good thing to have such a feature.

Oh, yes, to be totally clear, I’m not an engineer making bonnets for Ferrari. I just use rhino for model making but, I do want to be able to make things nicely and to understand the tool set so I can make things faster and better :slight_smile: