View Issue Details
ID | Project | Category | View Status | Date Submitted | Last Update |
---|---|---|---|---|---|
0023933 | Community | OCCT:Modeling Algorithms | public | 2013-04-25 02:41 | 2013-12-19 13:55 |
Reporter | Aaron Michalk | Assigned To | |||
Priority | normal | Severity | major | ||
Status | closed | Resolution | fixed | ||
Platform | Windows | OS | VC++ 2010 | ||
Product Version | 6.6.0 | ||||
Target Version | 6.7.0 | Fixed in Version | 6.7.0 | ||
Summary | 0023933: Self intersection reported after Fuse operation | ||||
Description | After performing a BRepAlgoAPI_Fuse, BRepAlgoAPI_Check fails with BOPAlgo_SelfIntersect. | ||||
Steps To Reproduce | BRep_Builder builder; TopoDS_Shape a, b; BRepTools::Read(a, std::ifstream("a.brep", builder); BRepTools::Read(b, std::ifstream("b.brep", builder); TopoDS_Shape c = BRepAlgoAPI_Fuse(a, b); assert(BRepAlgoAPI_Check(c).IsValid()); | ||||
Tags | No tags attached. | ||||
Test case number | bugs modalg_5(010) bug23933 | ||||
|
ab.zip (24,357 bytes) |
|
I could not reproduce this in DRAW with official distribution of OCCT 6.6.0 on my system (Windows 7 64-bit). The commands are: restore a.brep restore b.brep bfuse r a b checkshape r Note that files a.brep and b.brep need to be modified for DRAW to be able to read them (add first line containing "DBRep_DrawableShape"). The result looks Ok. Please check if this is reproducible in DRAW on your system, and indicate your platform (OS, compiler, used build method). |
|
Oops, sorry, the system has been properly indicated, please ignore my request for it. Just please check if the problem can be reproduced with the DRAW commands above. |
|
I have checked with VS 2010 (10.0.40219.1 SP 1 Rel), Debug mode: the problem is not reproduced in DRAW |
|
checkshape reports that "This shape seems to be valid." However, checkshape only calls BRepCheck_Analyzer. It does not call BRepAlgoAPI_Check where the problem is. |
|
Sorry I did not recognize the problem is not in BRepCheck but in BOP validity. The script to reproduce a problem in DRAW: restore a.brep restore b.brep checkshape a checkshape b bopargcheck a b -F #F bfuse r a b checkshape r bopargcheck r #F In OCCT 6.6.0, the last bopargcheck reports self-intersection on one face. In OCCT 6.5.4 and 6.5.5, first bopargcheck reports 38 faulties, and second 4. |
|
The result of fuse operation is a valid shape. So the problem was in the checker for self intersection. I have fixed the problem. The draw commands bopcheck and bopargcheck report OK now for the result. Please review the Git branch CR23933. |
|
Could you provide some explanation to this change? As I can guess from the code, it applies only for (aTypeInt == 4), i.e. likely edge-face intersection, and skips if intersection is shape. Does this mean that no intersection exists? Should not this be applied to other cases? |
|
Yes, it means that there is no intersection exists and this should not be applied to the other cases. I have added the additional check for the case like that (edge lies on the surface of the face, but not on the face itself) in IntTools_BeanFaceIntersector::FastComputeExactIntersection() to prevent creating an Edge/Face intersection. So, please review the Git branch CR23933 once more. |
|
Dear BugMaster, Branch CR23933 (and products from GIT master) was compiled on Linux and Windows platforms and tested. SHA-1: 6aded94450a81ea0b7caddc6c682e692eafa74ba Number of compiler warnings: occt component : Linux: 2 (2 on master) Windows: 11 (11 on master) products component : Linux: 0 (0 on master) Windows: 64 (64 on master) Regressions: No regressions Improvements: No improvements Testing cases: bugs modalg_5(010) bug23933 - OK Testing on Linux: Total MEMORY difference: 366022500 / 365872296 Total CPU difference: 42718.340000001 / 45787.80000000135 Testing on Windows: Total MEMORY difference: 415905576 / 418425896 Total CPU difference: 35951.6875 / 30650.765625 There are not differences in images found by testdiff. |
occt: master f1419025 2013-05-23 07:55:08
|
0023933: Self intersection reported after Fuse operation. Additional check has been added in IntTools_BeanFaceIntersector::FastComputeExactIntersection() to prevent creating an Edge/Face intersection for the case when edge lies on the surface of the face, but not on the face itself. Adding test case for this fix |
Affected Issues 0023933 |
|
mod - src/BOPAlgo/BOPAlgo_ArgumentAnalyzer.cxx | Diff File | ||
mod - src/BOPTest/BOPTest_CheckCommands.cxx | Diff File | ||
mod - src/IntTools/IntTools_BeanFaceIntersector.cxx | Diff File | ||
add - tests/bugs/modalg_5/bug23933 | Diff File |
Date Modified | Username | Field | Change |
---|---|---|---|
2013-04-25 02:41 | Aaron Michalk | New Issue | |
2013-04-25 02:41 | Aaron Michalk | Assigned To | => jgv |
2013-04-25 02:41 | Aaron Michalk | File Added: ab.zip | |
2013-04-25 10:16 |
|
Note Added: 0024266 | |
2013-04-25 10:16 |
|
Assigned To | jgv => Aaron Michalk |
2013-04-25 10:16 |
|
Status | new => feedback |
2013-04-25 10:20 |
|
Note Added: 0024267 | |
2013-04-25 12:23 |
|
Note Added: 0024270 | |
2013-04-26 03:32 | Aaron Michalk | Note Added: 0024284 | |
2013-04-26 07:05 |
|
Note Added: 0024285 | |
2013-04-26 07:05 |
|
Assigned To | Aaron Michalk => emv |
2013-04-26 07:05 |
|
Status | feedback => acknowledged |
2013-05-15 11:39 |
|
Note Added: 0024390 | |
2013-05-15 11:39 |
|
Assigned To | emv => abv |
2013-05-15 11:39 |
|
Status | acknowledged => resolved |
2013-05-16 10:13 |
|
Assigned To | abv => emv |
2013-05-16 10:13 |
|
Status | resolved => assigned |
2013-05-16 11:40 |
|
Assigned To | emv => abv |
2013-05-16 11:40 |
|
Status | assigned => resolved |
2013-05-16 13:31 |
|
Note Added: 0024416 | |
2013-05-17 12:56 |
|
Note Added: 0024427 | |
2013-05-17 13:14 |
|
Assigned To | abv => bugmaster |
2013-05-17 13:14 |
|
Status | resolved => reviewed |
2013-05-17 14:15 |
|
Assigned To | bugmaster => mkv |
2013-05-21 10:06 |
|
Note Added: 0024445 | |
2013-05-21 10:06 |
|
Note Edited: 0024445 | |
2013-05-21 10:07 |
|
Test case number | => bugs modalg_5(010) bug23933 |
2013-05-21 10:07 |
|
Assigned To | mkv => bugmaster |
2013-05-21 10:07 |
|
Status | reviewed => tested |
2013-05-23 12:12 | bugmaster | Target Version | => 6.7.0 |
2013-05-24 13:06 |
|
Changeset attached | => occt master f1419025 |
2013-05-24 13:06 |
|
Assigned To | bugmaster => emv |
2013-05-24 13:06 |
|
Status | tested => verified |
2013-05-24 13:06 |
|
Resolution | open => fixed |
2013-12-19 13:53 | bugmaster | Status | verified => closed |
2013-12-19 13:55 | bugmaster | Fixed in Version | => 6.7.0 |