Shape is broken by BRepAlgoAPI_Cut

Hello, I want to get a model that eliminates shape2 from shape1. However, the following program will break the shape. Is there any good solution?

[code]

BRepAlgoAPI_Cut cut( shape1, shape2 );
cut.Build();
shape3 = cut.Shape();

[Environment]

Opencascade: V7.5.3
OS: Windows 10 Pro 64bit
CPU: Intel(R) Core(TM) i7-8550U
Memory: 16GB

Image

Best regards.

Eugene Zaliznyak's picture

Check please both arguments by BRepAlgoAPI_Check function.

Keito Okajima's picture

Hello Eugene Zaliznyak.
Thank you for your reply.
I have a question about BRepAlgoAPI_Check class.
What is the difference between BRepAlgoAPI_Check and BRepCheck_Analyzer?
BRepAlgoAPI_Check took longer to process, sometimes several seconds longer than BRepCheck_Analyzer.

Eugene Zaliznyak's picture

Hello Keito,
As I remember, BRepAlgoAPI_Check calls BRepCheck_Analyzer and does some additional checks. It can be checked if you look into sources. Finally, I think BRepAlgoAPI_Check is most wide checker for validity. Also, it has some flags to skip some checks.

Keito Okajima's picture

Hello Eugene Zaliznyak,
Thank you for your information.
I checked occt sources and understand BRepAlgoAPI_Check processing flow.
As you say, BRepAlgoAPI_Check calls BRepCheck_Analyzer and does some additional checks.

Eugene Zaliznyak's picture

As I understand, your cone is invalid by checking. And even also visually this cone is currupted.