DiscussionsIssue archiveOCCT:Modeling Algorithms

Archived issue #0029883

Boolean operation with prism and cone produces invalid result when tolerance of vertex in cone apex is too big

Open CASCADEOCCT:Modeling Algorithmsassigned1 public note

Search issues

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.

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) **************

Additional information

Described behavior is obtained on CR29807* branch

Public activity

1 archived note

Participants are labeled by their role within this record.

01Commenter 1
See the message #0029860.

Related records