MantisBT - Open CASCADE
View Issue Details
0029883Open CASCADE[OCCT] OCCT:Modeling Algorithmspublic2018-06-19 10:152018-07-19 16:30
nbv 
emv 
normalminor 
assignedopen 
 
[OCCT] 7.4.0* 
0029883: Boolean operation with prism and cone produces invalid result when tolerance of vertex in cone apex is too big
Too big tolerance of cone apex leads to create non-manifold contours (areas), which are very hard to process by Boolean algorithms.

At present, this is a limitation of Boolean operation.

Steps To Reproduce shows:

1. Result of Boolean operation with big tolerance is wrong (see scripts 1a and 2a).
2. After reducing the tolerance of apex (scripts 1b and 2b) we will obtain correct result.
********* Script # 1a (begin) **************
# Test bugs modalg_7 bug29807_b4a

restore [locate_data_file bug29807-obj.brep] b1
restore [locate_data_file bug29807-tool.brep] b2

trotate b2 +23.85857157145715500000 +12.00000000000000000000 +5.50000000000000000000 7 -7.14142842854285 0 -5
trotate b2 +23.85857157145715500000 +12.00000000000000000000 +5.50000000000000000000 7.1414284285428495 7.0000000000000009 -0 20
ttranslate b2 0 0 0.3

tolerance b2
# VERTEX : MAX=0.234223911268158 ==> WRONG. Tolerance is too big

bcut result b1 b2
# Result is wrong. Cone is not cut from prism.

********* Script # 1a (end) **************

********* Script # 1b (begin) **************
# Test bugs modalg_7 bug29807_b4b

restore [locate_data_file bug29807-obj.brep] b1
restore [locate_data_file bug29807-tool.brep] b2

trotate b2 +23.85857157145715500000 +12.00000000000000000000 +5.50000000000000000000 7 -7.14142842854285 0 -5
trotate b2 +23.85857157145715500000 +12.00000000000000000000 +5.50000000000000000000 7.1414284285428495 7.0000000000000009 -0 20
ttranslate b2 0 0 0.3

tolerance b2
# VERTEX : MAX=0.234223911268158 ==> WRONG. Tolerance is too big

explode b2 v
settolerance b2_2 1.0e-7

checkshape b2
# Seems to be valid

bcut result b1 b2
# Good result
********* Script # 1b (end) **************

********* Script # 2a (begin) **************
# Test bugs modalg_7 bug29807_b5a

restore [locate_data_file bug29807-obj.brep] b1
restore [locate_data_file bug29807-tool.brep] b2

trotate b2 +23.85857157145715500000 +12.00000000000000000000 +5.50000000000000000000 7 -7.14142842854285 0 5
trotate b2 +23.85857157145715500000 +12.00000000000000000000 +5.50000000000000000000 7.1414284285428495 7.0000000000000009 -0 -38
ttranslate b2 0 0 2

tolerance b2
# VERTEX : MAX=0.234223911268158 ==> WRONG. Tolerance is too big

bcut result b1 b2
# Result is wrong. Cone is not cut from prism.

********* Script # 2a (end) **************

********* Script # 2b (begin) **************
# Test bugs modalg_7 bug29807_b5b

restore [locate_data_file bug29807-obj.brep] b1
restore [locate_data_file bug29807-tool.brep] b2

trotate b2 +23.85857157145715500000 +12.00000000000000000000 +5.50000000000000000000 7 -7.14142842854285 0 5
trotate b2 +23.85857157145715500000 +12.00000000000000000000 +5.50000000000000000000 7.1414284285428495 7.0000000000000009 -0 -38
ttranslate b2 0 0 2

explode b2 v
settolerance b2_2 1.0e-7

checkshape b2
# Seems to be valid

bcut result b1 b2
# Good result
********* Script # 2b (end) **************
Described behavior is obtained on CR29807* branch
No tags attached.
related to 0029922new msv Boolean operation with conical argument loses degenerated edge 
child of 0029860assigned emv BOPAlgo_BuilderFace cannot build new faces correctly 
Issue History
2018-06-19 10:15nbvNew Issue
2018-06-19 10:15nbvAssigned To => msv
2018-06-19 10:16nbvRelationship addedchild of 0029860
2018-06-19 10:27nbvSteps to Reproduce Updatedbug_revision_view_page.php?rev_id=19314#r19314
2018-07-19 16:06nbvRelationship addedrelated to 0029922
2018-07-19 16:30nbvNote Added: 0077829
2018-07-19 16:30nbvAssigned Tomsv => emv
2018-07-19 16:30nbvStatusnew => assigned

Notes
(0077829)
nbv   
2018-07-19 16:30   
See the message 0029860:0077828.