View Issue Details
ID | Project | Category | View Status | Date Submitted | Last Update |
---|---|---|---|---|---|
0025755 | Community | OCCT:Modeling Algorithms | public | 2015-01-27 10:49 | 2015-04-30 12:08 |
Reporter | mat127 | Assigned To | |||
Priority | normal | Severity | major | ||
Status | assigned | Resolution | open | ||
Platform | 64bit | OS | Linux Fedora Core | ||
Product Version | 6.8.0 | ||||
Target Version | Unscheduled | ||||
Summary | 0025755: 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); | ||||
Tags | No tags attached. | ||||
Test case number | |||||
related to | 0025771 | assigned | fusion of cylinder and torus generates self intersections and invalid imbrications |
|
shapes.zip (3,836 bytes) |
|
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. |
|
Dear bugmaster, please create a test case using suggested by pkv script and close this bug. |
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 |
|
Assigned To | msv => pkv |
2015-02-03 10:06 |
|
Status | new => assigned |
2015-04-28 13:05 |
|
Target Version | => 6.9.0 |
2015-04-28 13:05 |
|
Relationship added | related to 0025771 |
2015-04-28 13:12 |
|
Note Added: 0040341 | |
2015-04-28 13:15 |
|
Steps to Reproduce Updated | |
2015-04-28 13:16 |
|
Steps to Reproduce Updated | |
2015-04-28 13:17 |
|
Steps to Reproduce Updated | |
2015-04-28 13:18 |
|
Assigned To | pkv => msv |
2015-04-28 13:20 |
|
Note Added: 0040343 | |
2015-04-28 13:20 |
|
Status | assigned => resolved |
2015-04-28 13:20 |
|
Assigned To | msv => bugmaster |
2015-04-28 13:20 |
|
Status | resolved => reviewed |
2015-04-28 13:36 |
|
Assigned To | bugmaster => ssv |
2015-04-28 13:36 |
|
Status | reviewed => assigned |
2015-04-30 12:08 |
|
Target Version | 6.9.0 => Unscheduled |