Archived issue #0029883
Boolean operation with prism and cone produces invalid result when tolerance of vertex in cone apex is too big
Description
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.
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 [phone removed]00000 [phone removed]00000 [phone removed]00000 7 -7.14142842854285 0 -5
trotate b2 [phone removed]00000 [phone removed]00000 [phone removed]00000 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 [phone removed]00000 [phone removed]00000 [phone removed]00000 7 -7.14142842854285 0 -5
trotate b2 [phone removed]00000 [phone removed]00000 [phone removed]00000 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 [phone removed]00000 [phone removed]00000 [phone removed]00000 7 -7.14142842854285 0 5
trotate b2 [phone removed]00000 [phone removed]00000 [phone removed]00000 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 [phone removed]00000 [phone removed]00000 [phone removed]00000 7 -7.14142842854285 0 5
trotate b2 [phone removed]00000 [phone removed]00000 [phone removed]00000 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) **************
# Test bugs modalg_7 bug29807_b4a
restore [locate_data_file bug29807-obj.brep] b1
restore [locate_data_file bug29807-tool.brep] b2
trotate b2 [phone removed]00000 [phone removed]00000 [phone removed]00000 7 -7.14142842854285 0 -5
trotate b2 [phone removed]00000 [phone removed]00000 [phone removed]00000 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 [phone removed]00000 [phone removed]00000 [phone removed]00000 7 -7.14142842854285 0 -5
trotate b2 [phone removed]00000 [phone removed]00000 [phone removed]00000 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 [phone removed]00000 [phone removed]00000 [phone removed]00000 7 -7.14142842854285 0 5
trotate b2 [phone removed]00000 [phone removed]00000 [phone removed]00000 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 [phone removed]00000 [phone removed]00000 [phone removed]00000 7 -7.14142842854285 0 5
trotate b2 [phone removed]00000 [phone removed]00000 [phone removed]00000 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
Described behavior is obtained on CR29807* branch
Public activity
1 archived note
Participants are labeled by their role within this record.
See the message #0029860.
Related records