Check fails but what does it mean?

I ran the check command on part of my model and I get the error:

"Rhino polysurface object is not valid.

ON_Brep.m_T[39].m_bRev3d = false, but closed curve directions are opposite."

I ran the Dir command and all seems fine. So why does it complain that, “curve directions are opposite?”

I also ran the CheckEdges command with the show naked edges option and nothing looks strange. The highlighted edges are where this object joins to the rest of the model (which is hidden).

Hello- try:


deselect and start UntrimAll, with KeeptrimObjects=Yes.

Use the curves resuting from UntrimAll to retrim the surface.

any better?


This has something to do with the “under-the-hood” definition of a trim. It is possible that you don’t see this when using Dir or CheckEdges.

Thank you Pascal and Menno. I’ve followed Pascal’s instructions (Untrim is great!). I can re-join all the pieces but I still have the exact same error message when I run Check on the object.

In case it helps, this is what the What command tells me:

ID: 341e54d0-a136-4142-81e4-a3262fd7a25a (3)
Layer name: Layer 01
Render Material:
source = from layer
index = -1
Invalid polysurface.
Polysurface with 11 surfaces.
Edge Tally:
18 boundary edges
2 seam edges
18 manifold edges
= 38 total edges
Edge Tolerances: 0.000 to 0.025
median = 0.003 average = 0.006
Vertex Tolerances: 0.000 to 0.025
median = 0.003 average = 0.006
Render mesh: 11 fast meshes 4099 vertices 4513 polygons
Analysis mesh: none present
Geometry UserData:
UserData ID: 3B7FB506-437C-431e-B1D7-93C4CBFF417F
Plug-in: Rhino
description: Gumball grip frame
saved in file: no
copy count: 1

ShowEdges again looks like the previous picture I posted. I can’t see any problems.

Can you please send the object to, att’n Pascal, I’ll take a look.



Thanks for the offer Pascal but it in this case it’s quicker if I simply remake the object.

If you still have the model can you send it anyway? If Rhino is creating bad geometry when joining good geometry, that is a bug we want to fix.

Sure. I just didn’t want to take up too much of Pascal’s time, but if it might be helpful to you, happy to do my bit. If there’s a mistake I’ve made then I’d be glad to learn too of course.

I’ve now sent the model to you guys marked for the attention of Pascal and Brian.