View Issue Details

IDProjectCategoryView StatusLast Update
0024678CommunityOCCT:Modeling Algorithmspublic2019-08-12 13:14
Reportershoogen Assigned Tomsv  
PrioritynormalSeverityminor 
Status feedbackResolutionopen 
PlatformLinuxOSDebian Linux 
Product Version6.7.0 
Target VersionUnscheduled 
Summary0024678: Invalid result of Boolean fuse operation
Descriptiona call of BRepAlgoAPI_Fuse::BRepAlgoAPI_Fuse(TopoDS_Shape const&, TopoDS_Shape const&) with two slightly misalgined but valid shapes causes a crash.
Steps To Reproducerestore prism.brep
box cube001 10.000000 6.600000 2.600000
ttranslate cube001 -10.000000 -3.300000 -1.300000
bfuse union prism cube001
Additional information
and documentation updates
http://freecadweb.org/tracker/view.php?id=1435
TagsNo tags attached.
Test case number

Attached Files

  • prism.brep (3,652 bytes)
  • captive_nut.draw (733 bytes)
  • captive_nut_wrong_tolerance.draw (751 bytes)

Relationships

related to 0025781 assignedpkv Community BOP of coincident torus and cylinder fails in BeanFaceIntersector 

Activities

shoogen

2014-03-03 19:58

reporter  

prism.brep (3,652 bytes)

pkv

2014-03-04 14:13

developer   ~0028121

Last edited: 2014-03-04 14:14

1. The Problems
1.1. The crash is not reproduced on dev. OCC version
1.2. The result of fuse "union" is invalid.
    The reason:
Insufficient positioning accuracy of the arguments (5.e-7)
compared to the declared accuracy of the arguments themselves (1.e-7)

2 Resume:
The case is LIMITATION

3. Proposals:
3.1. To improve the positioning accuracy of the arguments to provide
the coherence with the declared accuracy of the arguments
3.2. To increase declared accuracy of the arguments.
#
#Example:
restore prism.brep
box cube001 10.000000 6.600000 2.600000
ttranslate cube001 -10.000000 -3.300000 -1.300000
settolerance cube001 5.e-7
bfuse union prism cube001
#
# the result "union" is valid shape.
#

shoogen

2014-03-06 00:16

reporter   ~0028158

thank you

bugmaster

2014-03-12 11:30

administrator   ~0028215

Andrey,

Please create testing case

shoogen

2014-03-12 12:18

reporter  

captive_nut.draw (733 bytes)

shoogen

2014-03-12 12:24

reporter  

captive_nut_wrong_tolerance.draw (751 bytes)

shoogen

2014-03-12 12:29

reporter   ~0028218

Last edited: 2014-03-12 12:32

I added two files. In contrast to the original exmaple they do not depend on the brep file.

captive_nut.draw has accurate locations with respect to the tolerances. captive_nut_wrong_tolerance.draw reproduces the LIMITATION mentioned above.

With version f8eb9b1 of DRAWEXE
Draw[4]> bopcheck union
V/V:x0, x1
V/V:x2, x3
V/E:x4, x5
V/E:x6, x7
V/E:x8, x9
E/E:x10, x11
V/F:x12, x13
V/F:x14, x15

with the DRAWEXE from OCE 0.15 i get a crash (as with the original example)

pkv

2014-03-18 10:17

developer   ~0028318

The note
http://tracker.dev.opencascade.org/view.php?id=24678#c28218
adds nothing new to be interested in.

Please close the issue.

shoogen

2014-07-31 00:47

reporter   ~0030500

would you mind to reassign the ticket to get it closed?

shoogen

2014-09-12 14:23

reporter   ~0031664

I don't know you are gonna do with this ticket. And I'm embarrassed about it current state.
I see two distinct problems. First the one originally reported. It was my mistake to report it without careful testing with a certified version. Following the first comment the ticked should be closed as the original problem is "not reproduceable"

Secondly the model provided is flawed because it the tolerances are set below the precision of the the Locations used. The boolean could fail more gracefully and raise an exception instead of returning a broken shape.
But this second problem does not match with the description and severity of the original problem.
Please either CLOSE the ticket or CHANGE the description, severity and reproducibility.

abv

2014-09-12 18:31

manager   ~0031680

I prefer to keep this issue opened as it provides a test case for limitation in current BOP. Hope we will be able to address this kind of problems after version 7.0.

shoogen

2014-11-22 17:28

reporter   ~0034620

related to 0025477

shoogen

2015-02-19 10:36

reporter   ~0037683

with a bfuzzyvalue > 3e-8 the fusion (in captive_nut_wrong_tolerance.draw) gives the correct result (on a 64bit linux system)
Therefore I consider this as resolved by #25614

abv

2016-11-15 09:56

manager   ~0060336

The problem is still reproduced on 7.1.0.beta: bfuse of valid solids produces invalid result. See script captive_nut_wrong_tolerance.draw

nbv

2016-11-15 11:01

developer   ~0060338

Close problem is described in the issue #27128.

Choice of correct fuzzy-tolerance is individual problem for every case. Nevertheless, fix for issue #27178 will help in unification of this problem.

msv

2016-11-15 11:16

developer   ~0060339

This is limitation of current Boolean operations and intersections. The principal problem is concluded in the fact that the algorithm cannot determine partial overlapping zones (edge-edge, edge-face, face-face). Only complete coincidence can be detected and properly processed.

Issue History

Date Modified Username Field Change
2014-03-03 19:58 shoogen New Issue
2014-03-03 19:58 shoogen Assigned To => ifv
2014-03-03 19:58 shoogen File Added: prism.brep
2014-03-04 10:11 ifv Assigned To ifv => pkv
2014-03-04 10:11 ifv Status new => assigned
2014-03-04 14:13 pkv Note Added: 0028121
2014-03-04 14:13 pkv Assigned To pkv => ifv
2014-03-04 14:13 pkv Status assigned => feedback
2014-03-04 14:14 pkv Note Edited: 0028121
2014-03-04 14:27 ifv Resolution open => unable to reproduce
2014-03-04 14:27 ifv Assigned To ifv => bugmaster
2014-03-06 00:16 shoogen Note Added: 0028158
2014-03-06 00:16 shoogen Status feedback => resolved
2014-03-12 11:30 bugmaster Note Added: 0028215
2014-03-12 11:30 bugmaster Assigned To bugmaster => apn
2014-03-12 11:30 bugmaster Status resolved => assigned
2014-03-12 12:18 shoogen File Added: captive_nut.draw
2014-03-12 12:24 shoogen File Added: captive_nut_wrong_tolerance.draw
2014-03-12 12:29 shoogen Note Added: 0028218
2014-03-12 12:32 shoogen Note Edited: 0028218
2014-03-17 12:08 apn Assigned To apn => pkv
2014-03-18 10:17 pkv Note Added: 0028318
2014-03-18 10:17 pkv Assigned To pkv => apn
2014-07-31 00:47 shoogen Note Added: 0030500
2014-09-11 19:02 abv Target Version => 7.1.0
2014-09-12 14:23 shoogen Note Added: 0031664
2014-09-12 18:31 abv Note Added: 0031680
2014-09-12 18:31 abv Summary segfault in BOPAlgo_PaveFiller => Invalid result of Boolean fuse operation
2014-09-12 18:32 abv Severity crash => minor
2014-09-12 18:32 abv Resolution unable to reproduce => open
2014-11-22 17:28 shoogen Note Added: 0034620
2015-02-19 10:36 shoogen Note Added: 0037683
2016-08-18 10:17 bugmaster Assigned To apn => apv
2016-08-18 10:25 apv Status assigned => feedback
2016-11-15 09:55 abv Assigned To apv => msv
2016-11-15 09:55 abv Status feedback => assigned
2016-11-15 09:56 abv Note Added: 0060336
2016-11-15 10:08 msv Assigned To msv => nbv
2016-11-15 10:51 abv Target Version 7.1.0 => 7.2.0
2016-11-15 10:59 msv Assigned To nbv => msv
2016-11-15 11:01 nbv Note Added: 0060338
2016-11-15 11:16 msv Note Added: 0060339
2016-11-15 11:16 msv Status assigned => feedback
2017-07-20 16:35 msv Target Version 7.2.0 => 7.4.0
2017-11-01 10:35 aml Relationship added related to 0025781
2019-08-12 13:14 msv Target Version 7.4.0 => Unscheduled