MantisBT
Mantis Bug Tracker Workflow

View Issue Details Jump to Notes ] Issue History ] Print ]
IDProjectCategoryView StatusDate SubmittedLast Update
0025755Community[OCCT] OCCT:Modeling Algorithmspublic2015-01-27 10:492015-04-30 12:08
Reportermat127 
Assigned Tossv 
PrioritynormalSeveritymajor 
StatusassignedResolutionopen 
Platform64bitOSLinux Fedora CoreOS Version20
Product Version[OCCT] 6.8.0 
Target Version[OCCT] UnscheduledFixed in Version 
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 Fileszip file icon shapes.zip (3,836 bytes) 2015-01-27 10:49

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

-  Notes
(0040341)
pkv (developer)
2015-04-28 13:12

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.
(0040343)
msv (developer)
2015-04-28 13:20

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 View Revisions
2015-04-28 13:16 pkv Steps to Reproduce Updated View Revisions
2015-04-28 13:17 pkv Steps to Reproduce Updated View Revisions
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


Copyright © 2000 - 2018 MantisBT Team
Powered by Mantis Bugtracker