So hard to make a shell with uniform thickness from the top surface of a shape in OCC?

When the shape geometry has narrow gap, "Offset" value larger than the gap in "BRepOffset_MakeOffset" may cause fault result.
Is that a bug in OpenCascade? Any other better solutions in OCC?

The attached file is the perfect result in SolidWorks.

Attachments: 
xibinke's picture

And this file is what I get in PythonOCC.

The shape generated by OCC is wrong because there're overlapped geometries...
I've tried lots of parameters in BRepOffset_MakeOffset, such as Tol(larger is better), Mode, Intersection, SelfInter, Join. But all failed.

Attachments: