Archived issue #0025045

STEP Import fails to find all surfaces

CommunityOCCT:Meshclosed11 public notes

Search issues

Description

OpenCASCADE model is missing a bottom surface when importing the attached STEP model.

Steps to reproduce

Steps to reproduce:
1. Import the attached step model using the ImportExport sample program
2. View the shaded model in the viewer - rotate to view missing bottom surface

Additional information

All other non-OCC-based CAD programs tested render the STEP file correctly.

Public activity

11 archived notes

Participants are labeled by their role within this record.

01Commenter 1
All the faces translate from STEP correctly. The problem is in meshing of face 11, now attached to the issue as separate file Attachment 2 (BREP). BRepMesh reports "Self-intersecting wire" error, althoung the face is valid according to checkshape, and has rather small tolerance:

Draw[2]> rest d:/temp/Attachment 2 (BREP) a
a
Draw[3]> incmesh a 1
Incremental Mesh, multi-threading OFF
Meshing statuses: SelfIntersectingWire
Draw[4]> trinfo a

This shape contains 0 triangles.
                    0 nodes.
Maximal deflection 0


Draw[5]> checksh a
This shape seems to be valid
Draw[6]> toler a
Tolerance MAX=0.00053798328028226996 AVG=0.0002255237013194376 MIN=9.99999999999
99995e-008
FACE : MAX=9.[revision removed]-008 AVG=9.[revision removed]-008 MIN=9.99999999
99999995e-008
EDGE : MAX=0.00053730480348679094 AVG=0.000118593008751733 MIN=9.999999999999
9995e-008
VERTEX : MAX=0.00053798328028226996 AVG=0.00029777435604657639 MIN=9.9999999999
999995e-008

Draw[7]> boundings a
-5.2126900585274489 -2.6044476583634797 -1.[revision removed]-007 4.7674093775600
284 5.2126900585274498 1.826735590329116
02Commenter 2
The core of the problem is in method BRepMesh_FastDiscretFace::FindUV that uses large tolerance to identify coinciding points in 2D space. As a result, degenerative edge (in fact represented by a segment in 2D space) collapses to a single vertex during discretization procedure and causes wire with self intersection (see attached screenshot). Another anomaly related to this behavior is already reported in #0023111 issue.

In context of current issue it is proposed:
- take changes implemented in #0023106 as a base for current one;
- in BRepMesh_FastDiscret fill data structure and classifier tool using scaled dimensions as it is implemented in BRepMesh_FastDiscretFace::Add(face);
- fill data structure within BRepMesh_FastDiscretFace using scaled dimensions without further conversion to normal ones;
- convert dimensions from scaled to normal directly before storing of triangulation to the shape in BRepMesh_FastDiscret.

03Commenter 3
Branch [archived branch] has been created by Commenter 2.

[revision removed]


Detailed log of new commits:

Author: Commenter 2
Date: Fri Jan 29 12:41:02 2016 +0300

    Added test case
04Commenter 2
Dear Commenter 1,

it seems that this case has became OK due to fixes for shape healing and mesh since 6.7.0.

Please verify. Test case has been added to branch CR25045.
05Commenter 3
Branch [archived branch] has been deleted by Commenter 2.

[revision removed]
06Commenter 3
Branch [archived branch] has been created by Commenter 2.

[revision removed]


Detailed log of new commits:

Author: Commenter 2
Date: Fri Jan 29 14:08:31 2016 +0300

    Added test case
07Commenter 3
Branch [archived branch] has been updated by Commenter 4.

[revision removed]


Detailed log of new commits:

Author: Commenter 4
Date: Thu Feb 18 14:56:35 2016 +0300

    Small corrections in test case

08Commenter 4
09Commenter 3
Branch [archived branch] has been updated forcibly by Commenter 4.

[revision removed]
10Commenter 3
Branch [archived branch] has been updated forcibly by Commenter 4.

[revision removed]
11Commenter 3
Branch [archived branch] has been deleted by Commenter 5.

[revision removed]

Related records