Brep.CreateBoolean Intersection worked when flipping a Brep although it is oriented outward and IsSolid is True

Hello,
I have two breps that Brep.CreateBooleanIntersection returns a wrong result (the result looks like one brep is substracted from the other)
A correct result is returned when one of them is flipped.
But before flipped, they are both IsSolid=True and SolidOrientation is Outward.
Is three anything I should take a look?

Thanks.

Hi @mikity_kogekoge,

You’ll need to provide more information for us to be helpful. Perhaps you have a sample model or sample source code you can share?

– Dale

intersection test.gh (28.5 KB)
Hello Dale, thank you so much for the reply.
I attached a minimal code that can reproduce the issue.
Thanks!

Hi @mikity_kogekoge,

If I bake your Breps to the document, I can see that the smaller, inner one, isn’t correct even though it might report as such.

How was this Brep created? If it’s the results of a Split or Loft operation, make sure you split the kinky surfaces before capping and before confirming it’s solid orientation.

https://developer.rhino3d.com/api/RhinoCommon/html/Overload_Rhino_Geometry_Collections_BrepFaceList_SplitKinkyFaces.htm

– Dale

Hello Dale, the smaller Brep was created by capping a lofted surface in a Python script. I tried splitKinkyFaces and it worked.
Thank you.