Problem visually diagnosing G2

Here’s a weird example:

That doesn’t look G2 or even G1 for that matter.

But here’s what the point editor analysis has to say:


Oh, and this was my zebra mesh density:

(Yup, it’s so dense that the preview is actually 100% black on the left.) :sweat_smile:

continuity.3dm (59.5 KB)

Hello eobet
I’ve noticed that I often have to join the surfaces into a polysurface to get the zebra stripes to ‘jump’ and match up.

EdgeContinuity is reporting a tangency difference of 0.09 degrees which is what you are seeing with Zebra, The Angle tolerance in DocumentProperties > Units is set to 1.0 in your file and the Tangent tolerance in EdgeContinuity is set to 1 in your screen shot.

Yes, that does seems to have solved it, and that reminded me another reason why I saved this file in the first place:

  • The surfaces weren’t even within G0 tolerance to begin with! :sweat_smile:

Super weird that G1 and G2 can be within tolerance while G0 is not… or actually, probably not weird… but there should at least be a warning? :slight_smile:

Also, if the only way to check true zebra flow continuity is by joining surfaces, then that’s a catastrophe for anyone attempting to use this new tool in V7…

I don’t get what your point is. Aren’t I within 10 times the tolerances set for both G1 and G2, or am I reading things wrong?

(EDIT: But again, if you look at the answer above, it helps to check that G0 is within tolerance too first…)

If the tangent tolerance is 1 degree and the actual difference from tangent is 0.09 degree then Rhino thinks the surfaces are G1 continuous even when Zebra shows that the surfaces are not exactly tangent. Zebra does not use the angle tolerance. Similar for distance and curvature.

How did you “join” the surfaces? Join did not work for me because the surfaces are further apart then the absolute tolerance. Or did you set the absolute tolerance to larger than 0.09 so that Join would work?

Added: Zebra shows what the geometry is based on the mesh created using the mesh settings. It does not use any tolerance settings.

No, I did match first.

AND I posted my zebra settings just so nobody would comment on the mesh density, yet that didn’t help apparently! :joy:

Also, even if I match and join, and make sure the G1 and G2 are as in the first post, I still get this:

Probably too small to matter, though. Overall it looks ok. If I had noticed my G0 mistake I would never have made the thread in the first place.

The discontinuity in zebra stripe shows a discontinuity in tangency. I used MatchSrf with Position matching which results in G0 continuity (edge locations match) but not G1 continuity (tangents do not match). I still see a discontinuity in zerbra stripes which is expected.

I used MatchSrf with Curvature matching and tight tolerances and the zebra stripes are nice and continuous. Settings used were:

Zebra shows a simplified rendering of the reflection on the selected surfaces of a zebra stripped surface. It does not do any calculations of distance, tangency or curvature. It is essentially an EMap of a zebra surface. (This is fundamentally different than commands like CurvatureAnalysis which calculates curvature properties and then displays the results of the calculations in a color code.)

Rhino has a default tangency tolerance of 1 degree. I manually matched it up to 0.09 degrees and then put the zebra mesh at 0.1 degrees.

This is from the Rhino docs, and I thought I should at most see the G1 result, but I’m seeing G0:

So why, in this instance, do I need to match tangency to 0.01 degrees in order to smooth it out?

Again, this is super small, so it doesn’t matter, but since we’re sweating the details here now why not get into specific numbers… :slight_smile:

The Zebra mesh is created using vertices on the surfaces being examined. The toleances in the Zebra mesh settings determine the spacing between the vertices. My understanting is the Zebra mesh angle setting determines the maximum angle allowed in the Zebra mesh. Depending on the surface shape and other mesh settings the actual maximum angle in the Zebra mesh may be smaller than the Zebra angle setting. That is probably the situation in your example. Zebra does not use the Rhino document propereties angle tolerance.

What you see using the Zebra command is determined by the orientation of the faces of the Zebra mesh…What you see does not depend directly on any tolerance settings, either for the Zebra mesh, the Rhino render mesh, nor the tolerance settings in Document Properties. It also does not depend on how the surfaces being examined were created.

Because it is possible to see larger deviations from G1 if you look carefully with the Zebra mesh created with the settings your are using.