View Issue Details

IDProjectCategoryView StatusLast Update
0026814Open CASCADEOCCT:Modeling Algorithmspublic2017-08-15 15:10
ReporternbvAssigned Tomsv  
Status closedResolutionfixed 
Target Version7.3.0Fixed in Version7.1.0 
Summary0026814: Strange result of Boolean operation in "boolean bsection N2" test case
DescriptionThis bug has been detected while fixing bug 0026675.

In short, algorithm of Boolean operation (BOP) rejects an edge, which is the intersection line of two faces (see Steps to reproduce for more detail information).

This situation cannot be reproduced before integration of the fix for bug 0026675. The reason is that the intersection edge has greater tolerance (3.5545925001212765e-005) on MASTER than on the FIX. Therefore, on the MASTER this edge is shared with a_135_1. Nevertheless, on the FIX intersection curve is obtained with greater precision.

Try the following script to reproduce.
The main question is Why bsection result does not contain any edges?

Draw[]> restore [locate_data_file lh3d_px1.brep] a
Draw[]> plane p 0 0 0 1 0 0
Draw[]> mkface f p
Draw[]> explode a f
Draw[]> donly a_135
Draw[]> bopcurves a_135 f -2d
#c_1 (c2d1_1, c2d2_1): Tolerance Reached=3.7239063406803231e-006

Draw[]> explode a_135 e
Draw[]> donly a_135 a_135_1 c_1
Draw[]> toler a_135_1
# Max tolerance for the EDGE is 1.0e-7
# 1.0e-7 + 3.7239063406803231e-006 = 3.8239063406803231e-006

## SCRIPT 1 (begin)
for {set tpar 0.0} {$tpar <= 1.0} {set tpar [expr $tpar+0.1]} {
  cvalue c_1 $tpar xx yy zz
  vertex vv xx yy zz
  distmini dd vv a_135_1
  puts "$tpar : [dval dd_val]"
## SCRIPT 1 (end)

## OUTPUT (begin)

0.0 : 5.4193376082637118e-006
0.1 : 5.2303380702458479e-006
0.9999999999999999 : 7.1504370893251456e-010

## OUTPUT (end)

I.e. there are some points in the intersection edge, which are so far (distance is greater than 3.8239063406803231e-006) from a_135_1. Consequently, the intersection edge must have failed to share with a_135_1.


Draw[]> bsection rr135 a_135 f
Draw[]> donly a_135 rr135
Draw[]> nbshapes rr135
#VERTEX : 2, EDGE : 0

Steps To Reproducetest boolean bsection N2
TagsNo tags attached.
Test case numberboolean bsection N2


related to 0026675 closedbugmaster Open CASCADE Eliminate normalization of coordinates in ApproxInt package 



2015-10-29 16:40

developer   ~0047617

Ask to pay attention to the messages 0026675:0047612 and 0026815:0047546 while fixing.


2015-11-05 11:07

developer   ~0047794

In bug #0026842 analogical problem is described. However, it reproduces on the current MASTER (different from this issue).


2016-02-25 16:27

developer   ~0051127


The problem described in this issue is not reproduced on the current MASTER.

However, for getting correct result,two conditions must be satisfied:

1. The edge a_135_1 must be shared with section edge (with c_1 curve);
2. The edge a_135_1 must form common block with face f.

If at least one condition is not satisfied the section result will not contain any edge (only vertices as it is described).


2017-08-15 15:10

tester   ~0069399

Problem described in issue is not reproduced on current state of OCCT. Fixed in OCCT7.1.0.

Issue History

Date Modified Username Field Change
2015-10-27 10:20 nbv New Issue
2015-10-27 10:20 nbv Assigned To => msv
2015-10-27 10:20 nbv Relationship added related to 0026675
2015-10-27 10:21 nbv Steps to Reproduce Updated
2015-10-27 15:18 nbv Description Updated
2015-10-27 15:18 nbv Steps to Reproduce Updated
2015-10-28 17:35 msv Target Version 7.0.0 => 7.1.0
2015-10-29 16:40 nbv Note Added: 0047617
2015-11-05 11:07 nbv Note Added: 0047794
2016-02-25 16:27 nbv Note Added: 0051127
2016-10-28 17:03 msv Target Version 7.1.0 => 7.2.0
2017-07-24 09:32 msv Target Version 7.2.0 => 7.3.0
2017-08-15 15:10 mkv Test case number => boolean bsection N2
2017-08-15 15:10 mkv Note Added: 0069399
2017-08-15 15:10 mkv Status new => closed
2017-08-15 15:10 mkv Resolution open => fixed
2017-08-15 15:10 mkv Fixed in Version => 7.1.0