View Issue Details

IDProjectCategoryView StatusLast Update
0029883Open CASCADEOCCT:Modeling Algorithmspublic2021-08-29 18:51
ReporternbvAssigned Toemv  
PrioritynormalSeverityminor 
Status assignedResolutionopen 
Target Version7.7.0 
Summary0029883: Boolean operation with prism and cone produces invalid result when tolerance of vertex in cone apex is too big
DescriptionToo 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.
Steps To Reproduce********* 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) **************
Additional information
and documentation updates
Described behavior is obtained on CR29807* branch
TagsNo tags attached.
Test case number

Relationships

related to 0029922 newmsv Boolean operation with conical argument loses degenerated edge 
child of 0029860 assignedemv Modeling Algorithms - BOPAlgo_BuilderFace cannot build new faces correctly 

Activities

nbv

2018-07-19 16:30

developer   ~0077829

See the message 0029860:0077828.

Issue History

Date Modified Username Field Change
2018-06-19 10:15 nbv New Issue
2018-06-19 10:15 nbv Assigned To => msv
2018-06-19 10:16 nbv Relationship added child of 0029860
2018-06-19 10:27 nbv Steps to Reproduce Updated
2018-07-19 16:06 nbv Relationship added related to 0029922
2018-07-19 16:30 nbv Note Added: 0077829
2018-07-19 16:30 nbv Assigned To msv => emv
2018-07-19 16:30 nbv Status new => assigned
2019-08-12 18:01 emv Target Version 7.4.0 => 7.5.0
2020-08-28 13:25 emv Target Version 7.5.0 => 7.6.0
2021-08-29 18:51 msv Target Version 7.6.0 => 7.7.0