MantisBT - Community
View Issue Details
0027759Community[OCCT] OCCT:Modeling Algorithmspublic2016-08-09 11:302016-12-09 16:39
windowsWindows 8.1 Pro8.1 Pro
[OCCT] 7.0.0 
[OCCT] 7.1.0[OCCT] 7.1.0 
0027759: invalid result of a boolean fuse
performing a boolean fuse on two shapes that occt reports as valid (even for fuse bop) produce a result that checkshape command reports as faulty (BRepCheck_BadOrientationOfSubshape)
Draw[55]> restore merge-in1.brep i1
Draw[56]> checkshape i1
This shape seems to be valid
Draw[57]> restore merge-in2.brep i2
Draw[58]> checkshape i2
This shape seems to be valid
Draw[60]> bopcheck i1
 This shape seems to be OK.

Draw[61]> bopcheck i2
 This shape seems to be OK.

Draw[62]> bopargcheck i1 i2 -F #F
Shape(s) seem(s) to be valid for BOP.

Draw[63]> bop i1 i2
Draw[64]> bopfuse o
Draw[65]> checkshape o
On Shape faulty_1 :

Faulty shapes in variables faulty_1 to faulty_1
No tags attached.
? merge-in1.brep (5,000) 2016-08-09 11:30
? merge-in2.brep (32,792) 2016-08-09 11:32
Issue History
2016-08-09 11:30mat127New Issue
2016-08-09 11:30mat127Assigned To => msv
2016-08-09 11:30mat127File Added: merge-in1.brep
2016-08-09 11:32mat127File Added: merge-in2.brep
2016-08-11 18:43msvNote Added: 0056666
2016-08-11 18:43msvAssigned Tomsv => mat127
2016-08-11 18:43msvStatusnew => feedback
2016-08-29 10:52mat127Note Added: 0057245
2016-08-29 20:01msvNote Added: 0057274
2016-08-29 20:01msvAssigned Tomat127 => bugmaster
2016-08-29 20:01msvResolutionopen => no change required
2016-08-30 07:58gitNote Added: 0057276
2016-08-30 08:03emvNote Added: 0057277
2016-08-30 08:03emvStatusfeedback => resolved
2016-09-06 12:38bugmasterNote Added: 0057504
2016-09-06 12:38bugmasterStatusresolved => reviewed
2016-09-06 12:39bugmasterStatusreviewed => tested
2016-09-07 10:32bugmasterTarget Version => 7.1.0
2016-09-09 09:40bugmasterChangeset attached => occt master 84caaf81
2016-09-09 09:40bugmasterStatustested => verified
2016-09-09 09:40bugmasterResolutionno change required => fixed
2016-10-28 21:48gitNote Added: 0059560
2016-12-09 16:30aivStatusverified => closed
2016-12-09 16:39aivFixed in Version => 7.1.0

2016-08-11 18:43   
There is very tricky case for Boolean operation provided by these shapes.
It is because there is a gap between the solids (distance about 2e-4). But the shapes surrounding the gap have very different tolerance from 1e-7 (for faces) to 3.5e-4 (for edges). In such situation it is hard to expect a good result.
Boolean operation has a work around such cases. For that you can use FuzzyValue option. With Fuzzy option, the result is valid:

restore merge-in1.brep a
restore merge-in2.brep b
bfuzzyvalue 1e-3
bfuse r a b
checkshape r
2016-08-29 10:52   
Ok, I understand. What should I do with the ticket?
2016-08-29 20:01   
Dear bugmaster, I think we can close it.
2016-08-30 07:58   
Branch CR27759 has been created by emv.

SHA-1: ce0a684322d03e1e489fd454f1227bc2d65295eb

Detailed log of new commits:

Author: emv
Date: Tue Aug 30 08:00:08 2016 +0300

    0027759: Invalid result of a Boolean fuse operation
    Test case for the issue.
2016-08-30 08:03   
I think that at least the test case with the fuzzy option should be added.
Git branch CR27759 contains this test case. Dear bugmaster, please review this branch and check the test case. No additional testing is needed.
2016-09-06 12:38   
Test case was reviewed.
Test shape was put to public shape repository
2016-10-28 21:48   
Branch CR27759 has been deleted by kgv.

SHA-1: ce0a684322d03e1e489fd454f1227bc2d65295eb