View Issue Details
ID | Project | Category | View Status | Date Submitted | Last Update |
---|---|---|---|---|---|
0022849 | Community | OCCT:Data Exchange | public | 2011-12-15 21:25 | 2023-09-29 17:46 |
Reporter | AGPX | Assigned To | |||
Priority | normal | Severity | minor | ||
Status | feedback | Resolution | open | ||
Platform | Windows | OS | Windows | ||
Product Version | 6.5.2 | ||||
Target Version | Unscheduled | ||||
Summary | 0022849: Bad import of a STEP file (error during triangulation). | ||||
Description | The attached STEP file is not imported correctly. At least, 9 faces cannot be triangulated. I have compared the results with other software that show the mesh correctly. | ||||
Steps To Reproduce | Simply try to open the STEP with the Import/Export sample. Navigate around the "3M" extruded text. The lateral faces of the number "3" are missing. | ||||
Tags | No tags attached. | ||||
Test case number | chl 934 V7 | ||||
|
2520-6002_step.stp (840,020 bytes) |
|
shot1.jpg (53,874 bytes) |
|
Reproduced on last trunk, in DRAW: Draw[5]> stepread D:/ABV/Work/OCC/occ22849/2520-6002_step.stp a * ... Draw[6]> checksh a_1 This shape seems to be valid Draw[7]> tole a_1 Tolerance MAX=0.025401524012559532 AVG=0.00034227306905487047 MIN=9.999999999999 9995e-008 FACE : MAX=9.9999999999999995e-008 AVG=9.9999999999999995e-008 MIN=9.99999999 99999995e-008 EDGE : MAX=0.025401524012559532 AVG=0.00014795105451371384 MIN=1.00005e-007 VERTEX : MAX=0.025401524012559532 AVG=0.00047448980445837901 MIN=1.000100002500 0001e-007 Draw[9]> incmesh a_1 0.1 Meshing statuses: OpenWire Failure Draw[10]> tricheck a_1 face 66 has no triangulation face 67 has no triangulation face 68 has no triangulation face 72 has no triangulation face 73 has no triangulation face 74 has no triangulation face 89 has no triangulation face 90 has no triangulation face 91 has no triangulation |
|
The same problem (no shading of some faces) is reproduced in previous releases of OCCT (checked: 6.3.0, 6.3.1, and 6.5.0) |
|
SVN branch http://svn/svn/occt/branches/OCC22849 (revision 10634) is ready to be reviewed. Modified process of edges discretization (BRepMesh_FastDiscret::Add(edge)) in this way to avoid unclosed polygons and "OpenWire Failure". If adjucent edges are disconnected in 2d (while connected in 3d) the gap is closed by last point from previous edge. But some faces is still has no triangulation (face 67, 73, 91). This is normal because in the original file (2520-6002_step.stp) these faces are determined by a planar surface and only two vertex that lead to an error during triangulation (Meshing statuses: Failure). Also changed the conditions of bending pcurves in ShapeFix_Wire::FixLacking() - if two pcurves are parallel lines - bending is replaced by increase tolerance of vertex. |
|
The fix looks like a workaround. Comparing of 2D points with Precision::PConfusion looks redundant, because nearest 2D points are merged in the 2D cell filter. Comparing of 3D points looks dangerous: * why double tolerance is uses * what behaviour will be if the tolerance of vertex is too big (more than face bounding box) * this fix potensionnaly contradict to fix with checking direction of pcurves (not yet integrated) Before testing this fix please update the values of the field myFirstEdge in all places where the function "Add" is called from the Edge |
|
SVN branch http://svn/svn/occt/branches/OCC22849 (revision 10740) is ready to be reviewed. |
|
Dear Bugmaster, Please test the current fix |
|
V7 (894 bytes) |
|
Dear BugMaster, SVN branch http://svn/svn/occt/branches/OCC22849 hes been moved to GIT CR22849 one. Workbench KAS:dev:apn-22849-occt was created from git branch CR22849 (and apn-22849-products from svn trunk) and compiled on Linux platform. There are following regressions in apn-22849-products regarding to KAS:dev:products-20120306-opt: bom 009 A3 B3 F3 G3 bom 010 P2 P3 Q2 Q3 bom 012 P2 P3 Q2 bom 013 G2 H2 H3 R2 R3 S2 S3 bom 014 A1 B4 C1 C2 C3 C4 D4 E4 G1 I1 N1 N3 N4 O1 O3 O4 P1 P3 P4 Q1 Q3 Q4 R1 R3 R4 T1 T3 T4 U1 U3 U4 bom 015 A4 B4 C4 D4 E2 E4 P2 bom 016 J2 J3 K2 K3 Q2 Q3 bom 017 A1 A3 A4 B2 B4 C4 D4 E1 E2 E3 E4 F1 F2 F4 G2 G3 G4 K1 K3 K4 L1 L3 L4 M1 M2 M3 M4 N1 N3 N4 bom 018 A3 B2 B3 bom 019 A2 A3 A4 D4 E1 E3 E4 F2 F4 G4 H4 I1 I2 I3 I4 J1 J2 J4 bom 020 A2 A4 B2 B4 M2 bom 102 C1 C2 E3 E4 F1 F2 P1 P2 P3 P4 P5 P6 Q1 Q2 T2 bom 801 A1 B1 B2 C1 C2 C3 D1 D2 D4 D6 D7 E2 F1 G1 G2 G3 G4 G5 G6 bom 802 A1 A3 bom 803 B1 C1 D1 D2 bom 814 A1 C1 bom 900 A1 C1 E1 G3 H1 J5 K3 L5 L8 M1 N2 O1 P3 bom 903 A2 E2 E4 E5 E6 E7 F1 F2 F3 F4 F5 F6 G1 G2 G3 G4 G5 G6 H2 H4 H5 H6 I3 I4 I5 I6 J1 J2 J3 J4 J5 J6 K1 K3 L3 M2 bom 904 B8 C6 D1 D4 D6 G4 G5 J2 J4 K7 L3 L4 L7 L8 M1 M2 bom 909 A7 E4 E6 E9 caf 003 D1 D2 D3 D4 E1 F1 F2 F3 F4 G1 H1 H2 I1 I2 J1 J2 K1 K2 chl 902 F1 chl 917 C9 chl 919 C1 C2 M6 W6 chl 922 G9 H1 T3 T4 T5 T6 T8 T9 chl 926 A1 C8 C9 D2 chl 928 O5 chl 929 E2 chl 934 C8 J6 chl 935 S8 chl 936 G9 chl 904 A4 B1 C3 C4 chl 914 E3 chl 917 D6 chl 918 A2 A3 A6 A7 chl 919 C7 Q1 chl 922 R8 R9 U1 U2 U3 U4 U5 U6 Y3 Y4 chl 926 C3 C5 D1 D7 D8 chl 929 ... chl 934 ... chl 936 ... msh 001 D2 D7 F2 F6 F7 F8 L2 N7 O1 O3 O6 P2 P4 R6 .......... shd 001 A2 A4 A7 B2 B3 B5 B6 B7 B9 C1 C2 C4 C5 C6 C7 C8 C9 D1 D2 D3 D4 D5 D7 D8 D9 E1 E2 E3 E4 E5 E6 E7 E8 E9 .... shd 002 ... shd 003 A2 A5 B1 B3 B4 B6 vpr 002 A1 A2 A3 A4 A5 A6 A7 A8 vpr 005 A1 A2 A3 A4 A5 A6 A7 A8 vpr 007 A2 B2 B5 D8 vpr 008 A2 B2 B5 D8 Test case for this fix is chl 934 V7. It's OK. See results in /QADisk/occttests/results/KAS/dev/apn-22849-products_15032012/lin See reference results in /QADisk/occttests/results/KAS/dev/products-20120306-opt_07032012/lin See test cases in /QADisk/occttests/tests/ED |
|
Reminder sent to: apn, Hello, there's some prevision for when this fix will be released? Thank you. |
|
Reminder sent to: Hello, there's some prevision on when this fix will be released? Thank you. |
|
Issue has been moved to Data Exchange category due to problem during STEP translation described in: https://tracker.dev.opencascade.org/view.php?id=25415#c37394 |
|
For this case STEP file contains faces containing from two edges based on the lines. For example face with number 67 obtained from entity #5009 Shape a_1_1_67 : imported from entity 4973:#5009 Draw[29]> entity 4973 6 -- DUMP Entity n0 4973 level 6 --- (STEP) Entity 4973:#5009 Type cdl : StepShape_AdvancedFace In dump, iii:#jjj means : entity rank iii has step ident #jjj 4963:#4999 = PLANE('',4962:#4998); 4972:#5008 = FACE_OUTER_BOUND('',4971:#5007,.T.); 4973:#5009 = ADVANCED_FACE('',(4972:#5008),4963:#4999,.F.); Draw[30]> entity 4971 6 -- DUMP Entity n0 4971 level 6 --- (STEP) Entity 4971:#5007 Type cdl : StepShape_EdgeLoop In dump, iii:#jjj means : entity rank iii has step ident #jjj 4969:#5005 = ORIENTED_EDGE('',*,*,4968:#5004,.F.); 4970:#5006 = ORIENTED_EDGE('',*,*,2690:#2726,.F.); 4971:#5007 = EDGE_LOOP('',(4969:#5005,4970:#5006)); Draw[31]> entity 4968 6 -- DUMP Entity n0 4968 level 6 --- (STEP) Entity 4968:#5004 Type cdl : StepShape_EdgeCurve In dump, iii:#jjj means : entity rank iii has step ident #jjj 2459:#2495 = VERTEX_POINT('',2458:#2494); 2667:#2703 = VERTEX_POINT('',2666:#2702); 4967:#5003 = LINE('',4964:#5000,4966:#5002); 4968:#5004 = EDGE_CURVE('',2459:#2495,2667:#2703,4967:#5003,.T.); Draw[32]> entity 2690 6 -- DUMP Entity n0 2690 level 6 --- (STEP) Entity 2690:#2726 Type cdl : StepShape_EdgeCurve In dump, iii:#jjj means : entity rank iii has step ident #jjj 2459:#2495 = VERTEX_POINT('',2458:#2494); 2667:#2703 = VERTEX_POINT('',2666:#2702); 2689:#2725 = LINE('',2686:#2722,2688:#2724); 2690:#2726 = EDGE_CURVE('',2667:#2703,2459:#2495,2689:#2725,.T.); After translation from STEP valid face consists of two edges with to vertices was created. Gaps in the 2D and 3D space on the both ends of face was covered by tolerances of vertices. Therefore translation from STEP in this case is valid. Obviously that this case is limitation of the BRepMesh_FastDiscret algorithm. |
|
Despite of that the ends of the edges of the problematic faces are covered by tolerance of their vertices in 3d, they are invalid in 2d. The common problem is that they have either non-closed outer contours or contain only two straight coinciding edges with opposite direction, i.e. forming zero area in 2d which is nonsence for BRepMesh as it by nature requires triangles on non-zero area, i.e. links of non-zero length, in order to build their circumcircles and perform Delaunay analysis during insertion of the points which is impossible to do if triangles are degenerated (https://en.wikipedia.org/wiki/Delaunay_triangulation#Algorithms). In general case, after integration of 0028500 issue, there is a possibility to create kind of rough mesh for the aforementioned cases. However, it is required that each face has non-zero area of its outer contour in 2d, and it is desirable that it should be closed. Given that such shapes could be processed and visualized even if they are visually disconnected in 3d. non-closed.png (13,333 bytes) |
|
zero-area.png (11,209 bytes) |
|
Dear Irina, could you please have a look at the faces reported by tricheck using the following script: stepread 2520-6002_step.stp a * vinit vsetdispmode 1 vdisplay a_1 vfit tricheck a_1 |
Date Modified | Username | Field | Change |
---|---|---|---|
2011-12-15 21:25 | AGPX | New Issue | |
2011-12-15 21:25 | AGPX | Assigned To | => gka |
2011-12-15 21:25 | AGPX | File Added: 2520-6002_step.stp | |
2011-12-15 21:29 | AGPX | File Added: shot1.jpg | |
2011-12-16 08:14 |
|
Note Added: 0018876 | |
2011-12-16 08:14 |
|
Assigned To | gka => ama |
2011-12-16 08:14 |
|
Status | new => assigned |
2012-01-12 09:48 |
|
Note Added: 0019094 | |
2012-01-27 16:38 |
|
Note Added: 0019286 | |
2012-01-27 16:40 |
|
Assigned To | ama => pdn |
2012-01-27 16:40 |
|
Status | assigned => resolved |
2012-02-15 15:20 |
|
Assigned To | pdn => ama |
2012-02-15 15:20 |
|
Status | resolved => assigned |
2012-02-28 15:02 |
|
Note Edited: 0019286 | |
2012-02-28 15:58 |
|
Assigned To | ama => pdn |
2012-02-28 15:58 |
|
Status | assigned => resolved |
2012-03-11 10:43 |
|
Assigned To | pdn => epa |
2012-03-12 10:51 |
|
Note Added: 0019931 | |
2012-03-12 10:51 |
|
Assigned To | epa => ama |
2012-03-12 10:51 |
|
Status | resolved => assigned |
2012-03-14 14:51 |
|
Note Added: 0019966 | |
2012-03-14 14:51 |
|
Assigned To | ama => epa |
2012-03-14 14:51 |
|
Status | assigned => resolved |
2012-03-14 15:39 |
|
Note Added: 0019968 | |
2012-03-14 15:39 |
|
Assigned To | epa => bugmaster |
2012-03-14 15:39 |
|
Status | resolved => reviewed |
2012-03-14 15:50 |
|
Assigned To | bugmaster => aan |
2012-03-15 17:33 | apn | Test case number | => chl 934 V7 |
2012-03-15 17:34 | apn | Assigned To | aan => apn |
2012-03-15 17:34 | apn | File Added: V7 | |
2012-03-16 16:01 | apn | Note Added: 0020021 | |
2012-03-16 16:01 | apn | Note Edited: 0020021 | |
2012-03-16 16:02 | apn | Assigned To | apn => ama |
2012-03-16 16:02 | apn | Status | reviewed => assigned |
2012-11-09 10:10 |
|
Category | OCCT:Data Exchange => OCCT:Mesh |
2013-01-19 18:56 | AGPX | Note Added: 0023036 | |
2013-01-19 18:57 | AGPX | Note Added: 0023037 | |
2014-09-15 11:52 |
|
Target Version | => 7.1.0 |
2016-10-17 11:51 | oan | Note Added: 0058771 | |
2016-10-17 11:51 | oan | Assigned To | ama => |
2016-10-17 11:51 | oan | Category | OCCT:Mesh => OCCT:Data Exchange |
2016-10-17 11:51 | oan | Assigned To | => gka |
2016-10-25 16:21 |
|
Note Added: 0059101 | |
2016-10-25 16:22 |
|
Assigned To | gka => oan |
2016-10-25 16:22 |
|
Status | assigned => feedback |
2016-10-25 16:22 |
|
Target Version | 7.1.0 => 7.2.0 |
2017-07-27 09:24 |
|
Target Version | 7.2.0 => 7.4.0 |
2019-07-10 21:56 |
|
Target Version | 7.4.0 => 7.5.0 |
2020-10-02 21:45 |
|
Target Version | 7.5.0 => 7.6.0 |
2021-11-01 18:14 |
|
Target Version | 7.6.0 => 7.7.0 |
2022-10-19 13:32 | oan | Relationship added | related to 0028500 |
2022-10-19 14:16 | oan | Assigned To | oan => AGPX |
2022-10-19 14:16 | oan | Assigned To | AGPX => msv |
2022-10-19 14:16 | oan | Note Added: 0111660 | |
2022-10-19 14:16 | oan | File Added: non-closed.png | |
2022-10-19 14:16 | oan | File Added: self-intersection.png | |
2022-10-19 14:17 | oan | File Deleted: self-intersection.png | |
2022-10-19 14:17 | oan | Note Added: 0111661 | |
2022-10-19 14:17 | oan | File Added: zero-area.png | |
2022-10-19 15:15 | oan | Assigned To | msv => ika |
2022-10-19 15:17 | oan | Note Added: 0111667 | |
2022-10-24 10:38 |
|
Target Version | 7.7.0 => 7.8.0 |
2023-08-02 02:09 | dpasukhi | Target Version | 7.8.0 => Unscheduled |
2023-09-29 17:46 | ika | Assigned To | ika => |