MantisBT - Open CASCADE
View Issue Details
0026204Open CASCADE[OCCT] OCCT:Modeling Algorithmspublic2015-05-08 14:092020-11-18 11:30
akz 
msv 
normalminor 
assignedopen 
[OCCT] 6.7.1 
[OCCT] 7.6.0* 
0026204: Modeling Algorithms - artifact on a result of Boolean operation "Cut"
Two attached shapes Cut135S1 and Cut135S2 are processed by Cut operation.
Resultant shape Cut135SR has an artifact which was not cut.

restore Cut135S1.brep s1
restore Cut135S2.brep s2
bcut sr s1 s2

No tags attached.
? Cut135S1.brep (28,027) 2015-05-08 14:09
https://tracker.dev.opencascade.org/
? Cut135SR.brep (37,319) 2015-05-08 14:10
https://tracker.dev.opencascade.org/
png 1.png (28,325) 2015-05-08 14:12
https://tracker.dev.opencascade.org/
png 2.png (9,320) 2015-05-08 14:51
https://tracker.dev.opencascade.org/
? Cut135S2.brep (13,446) 2015-05-25 13:28
https://tracker.dev.opencascade.org/
png too_close_edges.PNG (18,183) 2015-05-25 14:51
https://tracker.dev.opencascade.org/
doc Report_01.doc (60,416) 2015-05-27 10:44
https://tracker.dev.opencascade.org/
Issue History
2015-05-08 14:09akzNew Issue
2015-05-08 14:09akzAssigned To => msv
2015-05-08 14:09akzFile Added: Cut135S1.brep
2015-05-08 14:09akzFile Added: Cut135S2.brep
2015-05-08 14:10akzFile Added: Cut135SR.brep
2015-05-08 14:12akzFile Added: 1.png
2015-05-08 14:51akzFile Added: 2.png
2015-05-08 15:59msvAssigned Tomsv => pkv
2015-05-08 15:59msvStatusnew => assigned
2015-05-08 16:11akzSteps to Reproduce Updatedbug_revision_view_page.php?rev_id=10409#r10409
2015-05-25 09:47pkvNote Added: 0041476
2015-05-25 09:48pkvAssigned Topkv => msv
2015-05-25 13:28akzFile Deleted: Cut135S2.brep
2015-05-25 13:28akzFile Added: Cut135S2.brep
2015-05-25 13:30akzNote Added: 0041490
2015-05-25 13:31akzNote Edited: 0041490bug_revision_view_page.php?bugnote_id=41490#r10553
2015-05-25 13:33akzNote Edited: 0041490bug_revision_view_page.php?bugnote_id=41490#r10554
2015-05-25 13:56akzNote Edited: 0041490bug_revision_view_page.php?bugnote_id=41490#r10555
2015-05-25 14:50msvNote Added: 0041496
2015-05-25 14:51msvFile Added: too_close_edges.PNG
2015-05-25 14:57msvNote Added: 0041498
2015-05-25 14:57msvAssigned Tomsv => pkv
2015-05-25 14:57msvStatusassigned => feedback
2015-05-25 14:57msvNote Edited: 0041498bug_revision_view_page.php?bugnote_id=41498#r10557
2015-05-27 10:44pkvFile Added: Report_01.doc
2015-05-27 10:45pkvNote Added: 0041589
2015-05-27 10:45pkvAssigned Topkv => msv
2015-05-27 10:45pkvStatusfeedback => assigned
2015-05-27 12:28msvNote Added: 0041599
2015-05-27 12:28msvAssigned Tomsv => ssv
2015-05-27 12:28msvStatusassigned => feedback
2015-12-18 12:27abvAssigned Tossv => msv
2015-12-18 12:27abvStatusfeedback => assigned
2015-12-18 12:27abvTarget Version => 7.1.0
2016-10-28 17:03msvTarget Version7.1.0 => 7.2.0
2017-07-24 09:22msvTarget Version7.2.0 => 7.3.0
2017-12-05 17:09msvTarget Version7.3.0 => 7.4.0
2019-08-12 16:45msvTarget Version7.4.0 => 7.5.0
2020-09-14 22:54msvTarget Version7.5.0 => 7.6.0*
2020-11-18 11:30kgvSummaryArtifact on a result of Boolean operation "Cut" => Modeling Algorithms - artifact on a result of Boolean operation "Cut"

Notes
(0041476)
pkv   
2015-05-25 09:47   
The shape Cut135S2.brep is self-interfered shape.

# Use the followind DRAW commands to confirm:
# ---------------------------------
restore Cut135S2.brep b2
bopargcheck b2 #f
# ---------------------------------
# The result of bopargcheck is:
Made faulty shape: s1si_1
Made faulty shape: s1si_2
Made faulty shape: s1si_3
Made faulty shape: s1se_1
Made faulty shape: s1se_2
Made faulty shape: s1se_3
Made faulty shape: s1se_4
Faulties for FIRST shape found : 7
 ---------------------------------
Shapes are not suppotrted by BOP: NO
Self-Intersections : YES Cases(3) Total shapes(6)
Check for SI has been aborted : NO
Too small edges : YES Cases(4) Total shapes(4)
Bad faces : NO
Too close vertices : DISABLED
Too close edges : DISABLED
Shapes with Continuity C0 : NO
Invalid Curve on Surface : NO
 ---------------------------------

The self-interfered shape should not be used as an argument for
the Boolean Operation Algorithm.
See
http://dev.opencascade.org/doc/overview/html/occt_user_guides__boolean_operations.html#occt_algorithms_4 [^]
for more details
(0041490)
akz   
2015-05-25 13:30   
(edited on: 2015-05-25 13:56)
I've uploaded the fixed shape s2. Bad tolerance was a reason for GFA to consider two close edges as intersected.

(0041496)
msv   
2015-05-25 14:50   
The command bopargcheck reports issue of too close edges when analyzing these two shapes together. The picture too_close_edges.png shows the shapes and problematic edges.

Draw[246]> bopargcheck s1 s2 #F
Made faulty shape: s1be_1
Made faulty shape: s2be_1
Faulties for FIRST shape found : 1
---------------------------------
Shapes are not suppotrted by BOP: NO
Self-Intersections : NO
Check for SI has been aborted : NO
Too small edges : NO
Bad faces : NO
Too close vertices : NO
Too close edges : YES Cases(1) Total shapes(1)
Shapes with Continuity C0 : NO
Invalid Curve on Surface : NO

Faulties for SECOND shape found : 1
---------------------------------
Shapes are not suppotrted by BOP: NO
Self-Intersections : NO
Check for SI has been aborted : NO
Too small edges : NO
Bad faces : NO
Too close vertices : NO
Too close edges : YES Cases(1) Total shapes(2)
Shapes with Continuity C0 : NO
Invalid Curve on Surface : NO
(0041498)
msv   
2015-05-25 14:57   
Now the middle edge (it is from s1 shape) has the tolerance (0.001) that makes it coinciding with both (left and right) edges from s2 shape.
Dear Peter, is it possible to get a valid result with such input shapes?
If no, what is the cost to make the algorithm well working with such cases? What idea can be implemented?

(0041589)
pkv   
2015-05-27 10:45   
Please, have a look Report_01.doc for the details.
(0041599)
msv   
2015-05-27 12:28   
Dear Sergey,
According to Peter's analysis, this problem is a limitation of the Boolean operations algorithm. We can leave this bug for reconsidering in the future.