View Issue Details

IDProjectCategoryView StatusLast Update
0025755CommunityOCCT:Modeling Algorithmspublic2015-04-30 12:08
Reportermat127 Assigned Tossv 
PrioritynormalSeveritymajor 
Status assignedResolutionopen 
Platform64bitOSLinux Fedora Core 
Product Version6.8.0 
Target VersionUnscheduled 
Summary0025755: BRepAlgoAPI_Fuse incorrect behavior
Description- fuse of two valid shapes produces incorrect result
- input shapes .brep representations in attachment
- previously posted on "usage issues" forum, reporting as a bug recommended by the FSR:

It looks like a bug.
At OCC6.8.0 it doesn't give the missing face, but gives self-intersection of faces:
Draw[5]> bopcheck r
F/F: x3 x74
I suggest you to register the issue in Mantis BugTracker Bugtracker which is available via the Collaborative portal - http://dev.opencascade.org/index.php?q=home/get_involved.
Steps To Reproduce# Use the following DRAW commands to reproduce the problem:
restore shape1.brep b1
restore shape2.brep b2

bclearobjects; bcleartools;
baddobjects b1
baddtools b2

# set the fuzzy value to 0.00001
bfuzzyvalue 0.00001

bfillds
bbop r 1










BRep_Builder builder;

TopoDS_Shape shape1;
BRepTools::Read(shape1, "shape1.brep", builder);
BRepCheck_Analyzer analyzer1(shape1);
cout << "shape1 is valid: " << analyzer1.IsValid() << endl;

TopoDS_Shape shape2;
BRepTools::Read(shape2, "shape2.brep", builder);
BRepCheck_Analyzer analyzer2(shape2);
cout << "shape2 is valid: " << analyzer2.IsValid() << endl;

TopoDS_Shape fuse = BRepAlgoAPI_Fuse(shape1, shape2);
TagsNo tags attached.
Test case number

Attached Files

  • shapes.zip (3,836 bytes)

Relationships

related to 0025771 assignedssv fusion of cylinder and torus generates self intersections and invalid imbrications 

Activities

mat127

2015-01-27 10:49

reporter  

shapes.zip (3,836 bytes)

pkv

2015-04-28 13:12

developer   ~0040341

I. The Case

The Tcl script below is used to reproduce the case.

restore shape1.brep b1
restore shape2.brep b2

bclearobjects; bcleartools;
baddobjects b1
baddtools b2

bfillds
bbop r 1

II. Analysis

The case (as it is) can not be treated by the algorithm.

The reason is the following:
Some entities from the one argument are intended to be coincide with some entities from the other argument.
But this coincidence is not precise in terms of given values of tolerances of the entities.
On the other hand,
...the shapes interfere with each other in terms of their tolerances...
[see
http://dev.opencascade.org/doc/overview/html/occt_user_guides__boolean_operations.html#occt_algorithms_3
for more details ]

The declared values of tolerances (1.e-7 for both arguments) is not enough to provide intended coincidence.

To solve the problem the Fuzzy option of Boolean operation algorithm has been designed and developed (6.9.0).
[see
http://dev.opencascade.org/doc/overview/html/occt_user_guides__boolean_operations.html#occt_algorithms_11_1
for more details]
 
-------------------------------------------------
The following Tcl script can be used for the case
to obtain correct result r:

restore shape1.brep b1
restore shape2.brep b2

bclearobjects; bcleartools;
baddobjects b1
baddtools b2

# set the fuzzy value to 0.00001
bfuzzyvalue 0.00001

bfillds
bbop r 1

III. Resume

It is known CAD models in most cases, have all sorts of inaccuracies.
The algorithm can not guess about inaccuracies of the models.
That is why the algorithm should be supplied by the information about the
available inaccuracies.
The value Fuzzy should be provided by the User who only can control the data.

msv

2015-04-28 13:20

developer   ~0040343

Dear bugmaster, please create a test case using suggested by pkv script and close this bug.

Issue History

Date Modified Username Field Change
2015-01-27 10:49 mat127 New Issue
2015-01-27 10:49 mat127 Assigned To => msv
2015-01-27 10:49 mat127 File Added: shapes.zip
2015-02-03 10:06 msv Assigned To msv => pkv
2015-02-03 10:06 msv Status new => assigned
2015-04-28 13:05 msv Target Version => 6.9.0
2015-04-28 13:05 msv Relationship added related to 0025771
2015-04-28 13:12 pkv Note Added: 0040341
2015-04-28 13:15 pkv Steps to Reproduce Updated
2015-04-28 13:16 pkv Steps to Reproduce Updated
2015-04-28 13:17 pkv Steps to Reproduce Updated
2015-04-28 13:18 pkv Assigned To pkv => msv
2015-04-28 13:20 msv Note Added: 0040343
2015-04-28 13:20 msv Status assigned => resolved
2015-04-28 13:20 msv Assigned To msv => bugmaster
2015-04-28 13:20 msv Status resolved => reviewed
2015-04-28 13:36 abv Assigned To bugmaster => ssv
2015-04-28 13:36 abv Status reviewed => assigned
2015-04-30 12:08 msv Target Version 6.9.0 => Unscheduled