DiscussionsIssue archiveOCCT:Modeling Algorithms

Archived issue #0026814

Strange result of Boolean operation in "boolean bsection N2" test case

Open CASCADEOCCT:Modeling Algorithmsclosed4 public notes

Search issues

Description

This 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.[revision removed]-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.[revision removed]-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.[revision removed]-006 = 3.[revision removed]-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.[revision removed]-006
0.1 : 5.[revision removed]-006
...
0.9999999999999999 : 7.[revision removed]-010

## OUTPUT (end)

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

However,

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


Steps to reproduce

test boolean bsection N2

Public activity

4 archived notes

Participants are labeled by their role within this record.

01Commenter 1
Ask to pay attention to the messages #0026675 and #0026815 while fixing.
02Commenter 2
In bug #0026842 analogical problem is described. However, it reproduces on the current MASTER (different from this issue).
03Commenter 3
DC,

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).
04Commenter 4
Problem described in issue is not reproduced on current state of OCCT. Fixed in OCCT7.1.0.

Related records