View Issue Details
ID | Project | Category | View Status | Date Submitted | Last Update |
---|---|---|---|---|---|
0031144 | Open CASCADE | OCCT:Shape Healing | public | 2019-11-09 08:20 | 2022-08-31 17:33 |
Reporter | Assigned To | bugmaster | |||
Priority | normal | Severity | block | ||
Status | closed | Resolution | fixed | ||
Product Version | 7.4.0 | ||||
Target Version | 7.5.0 | Fixed in Version | 7.5.0 | ||
Summary | 0031144: Shape Healing - ShapeAnalysis::OuterWire() infinite loop on solid obtained from IFC | ||||
Description | BRepMesh hangs on one of solids created during reading from IFC with OCC reader. This blocks any possibility to see the model in CAD Assistant or other OCCT-based viewer. This is regression appeared in OCCT 7.4.0. The solid is valid according to checkshape but has large tolerance (90 mm, on object of ~ 300 mm size) and visible gaps in edges + misplaced vertex, see attached image. The IFC files comes from Duraark archives (http://duraark.eu/data-repository/), archive "A-House Scan September 2014" (https://tib.eu/data/duraark/BuildingData/03_IFC_E57/LTU_A-House_2014-09-25_ifc.zip), file LTU_A-House_redesign.ifc, solid 4081 (no information on original entity). | ||||
Steps To Reproduce | pload ALL restore LTU_A-House_redesign_so4081.brep a incmesh a 1. | ||||
Tags | No tags attached. | ||||
Test case number | bugs/mesh/bug31144 | ||||
related to | 0031248 | new | Community | Shape Healing - ShapeAnalysis::OuterWire() returns empty outer wire for attached use case | |
related to | 0032226 | new | Open CASCADE | Modeling Algorithms - Bad models with BRepCheck_CollapsedEdge checkshape error | |
related to | 0031926 | closed | oan | Community | Shape Healing - ShapeAnalysis::OuterWire() considers next iteration element always to be a wire causing skipping of primal one |
2019-11-09 08:20 manager |
LTU_A-House_redesign_so4081.brep (17,661 bytes) |
2019-11-09 08:21 manager |
LTU_A-House_redesign_so4081.png (8,809 bytes) |
|
It is strange that checkshape reports nothing, whereas bopargcheck notifies a lot of failures: bopargcheck a #F Made faulty shape: s1si_1 Made faulty shape: s1si_2 Made faulty shape: s1si_3 Made faulty shape: s1si_4 Made faulty shape: s1si_5 Made faulty shape: s1si_6 Made faulty shape: s1si_7 Made faulty shape: s1si_8 Made faulty shape: s1si_9 Made faulty shape: s1si_10 Made faulty shape: s1si_11 Made faulty shape: s1si_12 Made faulty shape: s1si_13 Made faulty shape: s1si_14 Made faulty shape: s1si_15 Made faulty shape: s1si_16 Made faulty shape: s1si_17 Made faulty shape: s1si_18 Made faulty shape: s1si_19 Made faulty shape: s1si_20 Made faulty shape: s1si_21 Made faulty shape: s1si_22 Made faulty shape: s1si_23 Made faulty shape: s1si_24 Made faulty shape: s1si_25 Made faulty shape: s1si_26 Made faulty shape: s1si_27 Made faulty shape: s1si_28 Made faulty shape: s1si_29 Made faulty shape: s1si_30 Made faulty shape: s1si_31 Made faulty shape: s1si_32 Made faulty shape: s1se_1 Made faulty shape: s1se_2 Made faulty shape: s1se_3 Made faulty shape: s1se_4 Faulties for FIRST shape found : 36 --------------------------------- Shapes are not suppotrted by BOP: NO Self-Intersections : YES Cases(32) Total shapes(64) Check for SI has been aborted : NO Too small edges : YES Cases(4) Total shapes(4) Bad faces : NO Too close vertices : DISABLED Too close edges : DISABLED Shapes with Continuity C0 : NO Invalid Curve on Surface : NO Faulties for SECOND shape found : 0 However, issue should be checked in context of BRepMesh anyway. |
|
Dear Andrey, preliminary analysis has shown that issue with hang on attached model is caused by ShapeAnalysis::OuterWire (theFace); called from BRepMesh_ShapeVisitor::Visit (const TopoDS_Face& theFace). This means that issue by its nature is not a problem of BRepMesh, but Shape Healing regression. Please move the ticket to Shape Healing category and assign to proper person for further processing. |
|
In details, ShapeAnalysis::OuterWire causes infinite loop if first sub-shape is not a wire due to lack of proper iterator move after this particular check. |
|
Potentially, this issue will cause hang up of any algorithm using ShapeAnalysis::OuterWire, so it should be checked by an expert in order to provide an appropriate fix. |
|
Branch CR31144 has been created by abv. SHA-1: 40125556fe489fcb0a862a7f6ccc43dd2a72f81b Detailed log of new commits: Author: abv Date: Tue Nov 12 19:10:14 2019 +0300 0031144: Shape Healing - ShapeAnalysis::OuterWire() infinite loop on solid obtained from IFC Implementation of ShapeAnalysis::OuterWire() is revised to avoid infinite cycle if face contains internal vertex. |
|
Branch CR31144 has been updated by abv. SHA-1: e6764f9969f1760dca248568767e6765cd1bb888 Detailed log of new commits: Author: abv Date: Tue Nov 12 23:15:55 2019 +0300 Added test bugs mesh bug31144 |
|
Fix is pushed to CR3144 and tested, see Jenkins job CR3144-abv; please review |
|
Branch CR31144 was reviewed |
|
Branch CR31144 has been deleted by inv. SHA-1: e6764f9969f1760dca248568767e6765cd1bb888 |
occt: master 31a5a359 2019-11-12 16:10:14
Committer: bugmaster Details Diff |
0031144: Shape Healing - ShapeAnalysis::OuterWire() infinite loop on solid obtained from IFC Implementation of ShapeAnalysis::OuterWire() is revised to avoid infinite cycle if face contains internal vertex. |
Affected Issues 0031144 |
|
mod - src/ShapeAnalysis/ShapeAnalysis.cxx | Diff File | ||
add - tests/bugs/mesh/bug31144 | Diff File |
Date Modified | Username | Field | Change |
---|---|---|---|
2019-11-09 08:20 |
|
New Issue | |
2019-11-09 08:20 |
|
Assigned To | => oan |
2019-11-09 08:20 |
|
File Added: LTU_A-House_redesign_so4081.brep | |
2019-11-09 08:21 |
|
File Added: LTU_A-House_redesign_so4081.png | |
2019-11-10 19:04 | oan | Note Added: 0088883 | |
2019-11-10 21:07 | oan | Note Added: 0088884 | |
2019-11-10 21:07 | oan | Assigned To | oan => abv |
2019-11-10 21:07 | oan | Status | new => assigned |
2019-11-10 22:17 | oan | Note Added: 0088885 | |
2019-11-10 22:26 | oan | Note Added: 0088886 | |
2019-11-11 12:39 | oan | Status | assigned => feedback |
2019-11-12 15:06 | oan | Category | OCCT:Mesh => OCCT:Shape Healing |
2019-11-12 15:06 | oan | Summary | Mesh - [regression] BRepMesh hangs on solid obtained from IFC => Shape Healing - ShapeAnalysis::OuterWire() infinite loop on solid obtained from IFC |
2019-11-12 19:13 | git | Note Added: 0088921 | |
2019-11-12 19:27 |
|
Status | feedback => assigned |
2019-11-12 23:17 | git | Note Added: 0088925 | |
2019-11-12 23:17 |
|
Note Added: 0088926 | |
2019-11-12 23:17 |
|
Assigned To | abv => gka |
2019-11-12 23:17 |
|
Status | assigned => resolved |
2019-11-12 23:17 |
|
Steps to Reproduce Updated | |
2019-11-13 08:36 |
|
Description Updated | |
2019-11-15 10:07 |
|
Note Added: 0088982 | |
2019-11-15 10:07 |
|
Assigned To | gka => bugmaster |
2019-11-15 10:07 |
|
Status | resolved => reviewed |
2019-11-15 16:39 | bugmaster | Test case number | => bugs/mesh/bug31144 |
2019-11-16 17:57 | bugmaster | Changeset attached | => occt master 31a5a359 |
2019-11-16 17:57 | bugmaster | Status | reviewed => verified |
2019-11-16 17:57 | bugmaster | Resolution | open => fixed |
2019-11-16 18:11 | git | Note Added: 0089022 | |
2019-12-16 19:07 | oan | Relationship added | related to 0031248 |
2020-12-02 16:40 |
|
Fixed in Version | => 7.5.0 |
2020-12-02 17:12 |
|
Status | verified => closed |
2021-03-18 12:25 |
|
Relationship added | related to 0032226 |
2022-08-31 17:33 | oan | Relationship added | related to 0031926 |