View Issue Details

IDProjectCategoryView StatusLast Update
0024983CommunityOCCT:Shape Healingpublic2014-11-11 12:53
Reporterdrazmyslovich Assigned Toapn  
PrioritynormalSeverityjust a question 
Status closedResolutionfixed 
PlatformWindowsOSVC++ 2010 
Product Version6.6.0 
Target Version6.8.0Fixed in Version6.8.0 
Summary0024983: For the incorrect seam edge in STEP file no fix is provided
DescriptionSince the original geometry in STEP file is corrupted, I've marked the ticket as "question". The original file was generated by Adobe 3D Reviewer (part of Acrobat Extended Pro) by our customer. The attached file is "synthetic" - the single face was manually extracted from the original file. The header is also changed due to security reasons.
The problem: ShapeFix_ComposeShell creates 3 empty faces for the specified geometry instead of creating a seam edge on the conical surface (I've checked already the solution from CR24055, it doesn't help).
The reason: STEP file contains predefined seam edge (check references #2720, #2721), but the defined seam edge isn't high enough. ShapeFix_ComposeShell identifies the specified edge as seam, and therefore doesn't try to build another seam edge, which will satisfy the condition and construct the face instead of splitting it into peaces.
Proving workaround: removing references #2720, #2721 from the edge loop #1628 resolves the problem - ShapeFix_ComposeShell doesn't find any existing seam edge and builds the correct one.
Question: is it possible to automate the identification of wrong seam edges? I expect, that the answer is "No", since it's impossible strictly to define which seam edge is wrong. As a proposal: maybe it's possible to introduce a flag for ShapeFix, that it should always try to through away any existing seam edges and build a new one?
Steps To ReproduceImport the attached file into the viewer and check the result.
TagsNo tags attached.
Test case numberbugs heal(017) bug24983

Attached Files

  • 111FACE.stp (13,240 bytes)
  • step_2_F1.png (149,347 bytes)
  • invalid_face.png (47,318 bytes)

Activities

drazmyslovich

2014-06-03 12:25

developer  

111FACE.stp (13,240 bytes)

abv

2014-06-03 14:48

manager   ~0029648

This kind of situation can be detected by presence of the same edge twice in the wire, without one of its end vertices being not shared by any other edge in the same wire. In fact, some kind of this check should be already made (likely in ShapeFix); at least wire consisting of only seam edge (see EDGE_LOOP #1626) gets successfully removed during translation. If ShapeFix already has code for treatment of this case (perhaps FixNotched()?), the solution could be just reordering fixes so as to have that fix prior to FixMissingSeam.

drazmyslovich

2014-06-03 17:15

developer   ~0029652

Changing the sequence of fixes in ShapeFix_Face::Perform resolves the issue. I'll commit the change in order to verify if it doesn't effect any other tests. Should be a test case created?

drazmyslovich

2014-06-03 17:51

developer   ~0029655

The changed is committed. Please, verify it.

abv

2014-06-03 18:36

manager   ~0029657

Dmitry, the commit looks fine, just could you please make it a single commit on top of current master?

The test case will be created as part of testing process by our QA team, though you are welcome to provide draft.

drazmyslovich

2014-06-04 14:52

developer   ~0029674

Sorry for messing up the things. I've committed the changes on the root and pushed it to branch CR24983_1

abv

2014-06-05 13:10

manager   ~0029701

No remarks, please test (branch CR24983_2)

Dmitry, I have rebased this change on master as simple commit, not a merge one (merge commit, being one commit after master, still contains all changes from the merged branch), and added a test case (bugs heal bug24983). Note that STEP file is not included in commit (can be placed to tests/heal/data for running test).

mkv

2014-06-06 14:45

tester   ~0029732

Dear BugMaster,

Branch CR24983_2 (and products from GIT master) was compiled on Linux, MacOS and Windows platforms and tested.
SHA-1: 53ac130bcfa7786c46c4271c1c39435292974cf5

Number of compiler warnings:

occt component :
Linux: 16 (16 on master)
Windows: 0 (0 on master)
MacOS: 203 (203 on master)

products component :
Linux: 11 (11 on master)
Windows: 2 (2 on master)

Regressions/Differences:
http://occt-tests/CR24983-2-master-occt/Debian60-64/summary.html
http://occt-tests/CR24983-2-master-occt/Windows-32-VC9/summary.html
de iges_1(001) G9, I3, L8, M6, O5, R8
de iges_2(002) F4, G4, H9
de iges_3(003) A2, B2
de step_2(005) F1, W2
de step_3(006) E6

Testing cases:
http://occt-tests/CR24983-2-master-occt/Debian60-64/bugs/heal/bug24983.html
http://occt-tests/CR24983-2-master-occt/Windows-32-VC9/bugs/heal/bug24983.html
bugs heal(017) bug24983: OK

Testing on Linux:
Total MEMORY difference: 357776136 / 358087976
Total CPU difference: 49297.68 / 52024.34

Testing on Windows:
Total MEMORY difference: 381338176 / 381625692
Total CPU difference: 38684.328125 / 41886.671875

There are no differences in images found by testdiff.

abv

2014-06-06 14:59

manager   ~0029734

Irina, could you please have a look at the regressions reported? The first seem to be just decrease of number of edges, though in the end of the list some more checkshape faces are shown...

ika

2014-06-24 14:25

developer  

step_2_F1.png (149,347 bytes)

ika

2014-06-24 14:26

developer  

invalid_face.png (47,318 bytes)

ika

2014-06-24 14:31

developer   ~0029869

The analysis led to the following results:

Improvements (number of invalid faces is decreased):
iges_1 O5
iges_2 F4
iges_3 A2
step_3 E6

Regressions:
step_2 F1 - face is read incorrect (see attached step_2_F1.png) but checkshape is OK, after writing and second reading this face became invalid (attached invalid_face.png)

Other tests are not regressions of improvements, only new behavior.

ika

2014-06-26 16:35

developer   ~0029894

Add check for invalid Surface of linear extrusion (with basis curve - line and extrusion direction parallel to this line) during converting STEP surface.

Branch CR24983_2 is ready to be reviewed.
Dear GKA,
Please review.

gka

2014-06-26 16:44

developer   ~0029895

Branch CR24983 is ready to be tested

mkv

2014-06-27 17:07

tester   ~0029910

Dear BugMaster,

Branch CR24983_2 from occt git-repository (and master from products git-repository) was compiled on Linux, MacOS and Windows platforms and tested.
SHA-1: 37c0b630f0abea11e55297009abf1be7d044fb41

Number of compiler warnings:

occt component :
Linux: 16 (16 on master)
Windows: 0 (0 on master)
MacOS: 200 (203 on master)

products component :
Linux: 11 (11 on master)
Windows: 2 (2 on master)

Regressions/Differences:
http://occt-tests/CR24983-2-master-occt/Debian60-64/summary.html
http://occt-tests/CR24983-2-master-occt/Windows-32-VC9/summary.html
de iges_1(001) G9, I3, L8, M6, O5, R8
de iges_2(002) F4, G4, H9
de iges_3(003) A2, B2
de step_2(005) F1, W2
de step_3(006) E6

Testing cases:
http://occt-tests/CR24983-2-master-occt/Debian60-64/bugs/heal/bug24983.html
http://occt-tests/CR24983-2-master-occt/Windows-32-VC9/bugs/heal/bug24983.html
bugs heal(017) bug24983: OK

Testing on Linux:
Total MEMORY difference: 336442728 / 336637348
Total CPU difference: 49223.69000000001 / 44189.09

Testing on Windows:
Total MEMORY difference: 374380072 / 374695312
Total CPU difference: 39062.390625 / 37900.515625

There are no differences in images found by testdiff.

ika

2014-06-27 17:56

developer   ~0029913

Dear MKV,

As I wrote before,
de iges_1(001) G9, I3, L8, M6, O5, R8
de iges_2(002) F4, G4, H9
de iges_3(003) A2, B2
de step_2(005) W2
de step_3(006) E6
are not regressions,
what about
de step_2(005) F1 - it is new right behavior.
So could you please regenerate reference data of all these tests?

mkv

2014-07-01 15:39

tester   ~0029936

Dear BugMaster,
following test cases are corrected and pushed to branch CR24983_2
de iges_1(001) G9, I3, L8, M6, O5, R8
de iges_2(002) F4, G4, H9
de iges_3(003) A2, B2
de step_2(005) F1, W2
de step_3(006) E6

git

2014-07-22 16:22

administrator   ~0030359

Branch CR24983 has been deleted by inv.

SHA-1: 4f40f47971d3eb0d4135a133b1159e65d6ff58ea

git

2014-07-22 16:22

administrator   ~0030360

Branch CR24983_1 has been deleted by inv.

SHA-1: 5ed0c06960cd3f0b4cbcefdb8e260b4285429ca3

git

2014-07-22 16:22

administrator   ~0030361

Branch CR24983_2 has been deleted by inv.

SHA-1: 6d2c92cbf3e2f5a0f7e1f5f909d096444949bbd7

Related Changesets

occt: master 0d4e3501

2014-07-03 13:16:07

razmyslovich


Committer: apn Details Diff
0024983: For the incorrect seam edge in STEP file no fix is provided

fix the notched edges twice per face - before checking for missing seam and after
Test case correction for issue CR24983
Add check for invalid Surface of linear extrusion (with basis curve - line and extrusion direction parallel to this line) during converting STEP surface
Small corrections of test cases for issue CR24983
Affected Issues
0024983
mod - src/ShapeFix/ShapeFix_Face.cxx Diff File
mod - src/StepToGeom/StepToGeom_MakeSurfaceOfLinearExtrusion.cxx Diff File
add - tests/bugs/heal/bug24983 Diff File
mod - tests/de/iges_2/F4 Diff File
mod - tests/de/iges_3/A2 Diff File

Issue History

Date Modified Username Field Change
2014-06-03 12:25 drazmyslovich New Issue
2014-06-03 12:25 drazmyslovich Assigned To => gka
2014-06-03 12:25 drazmyslovich File Added: 111FACE.stp
2014-06-03 12:26 drazmyslovich Description Updated
2014-06-03 14:48 abv Note Added: 0029648
2014-06-03 17:15 drazmyslovich Note Added: 0029652
2014-06-03 17:51 drazmyslovich Note Added: 0029655
2014-06-03 18:12 kgv Relationship added related to 0024055
2014-06-03 18:13 kgv Relationship deleted related to 0024055
2014-06-03 18:36 abv Note Added: 0029657
2014-06-04 14:52 drazmyslovich Note Added: 0029674
2014-06-04 15:27 drazmyslovich Assigned To gka => abv
2014-06-04 15:27 drazmyslovich Status new => resolved
2014-06-05 13:10 abv Note Added: 0029701
2014-06-05 13:10 abv Assigned To abv => bugmaster
2014-06-05 13:10 abv Status resolved => reviewed
2014-06-05 16:23 mkv Assigned To bugmaster => mkv
2014-06-06 14:45 mkv Note Added: 0029732
2014-06-06 14:47 mkv Test case number => bugs heal(017) bug24983
2014-06-06 14:47 mkv Assigned To mkv => abv
2014-06-06 14:47 mkv Status reviewed => assigned
2014-06-06 14:58 abv Assigned To abv => ika
2014-06-06 14:59 abv Note Added: 0029734
2014-06-17 12:47 aiv Project Open CASCADE => Community
2014-06-24 14:25 ika File Added: step_2_F1.png
2014-06-24 14:26 ika File Added: invalid_face.png
2014-06-24 14:31 ika Note Added: 0029869
2014-06-24 14:31 ika Assigned To ika => gka
2014-06-24 14:31 ika Status assigned => feedback
2014-06-26 16:35 ika Note Added: 0029894
2014-06-26 16:44 gka Note Added: 0029895
2014-06-26 16:44 gka Status feedback => reviewed
2014-06-26 17:03 mkv Assigned To gka => mkv
2014-06-27 17:07 mkv Note Added: 0029910
2014-06-27 17:08 mkv Assigned To mkv => ika
2014-06-27 17:08 mkv Status reviewed => assigned
2014-06-27 17:56 ika Note Added: 0029913
2014-06-27 17:56 ika Assigned To ika => mkv
2014-06-27 17:56 ika Status assigned => feedback
2014-07-01 15:39 mkv Note Added: 0029936
2014-07-01 15:40 mkv Assigned To mkv => bugmaster
2014-07-01 15:40 mkv Status feedback => tested
2014-07-03 10:13 apn Target Version => 6.8.0
2014-07-04 13:38 apn Changeset attached => occt master 0d4e3501
2014-07-04 13:38 apn Assigned To bugmaster => apn
2014-07-04 13:38 apn Status tested => verified
2014-07-04 13:38 apn Resolution open => fixed
2014-07-22 16:22 git Note Added: 0030359
2014-07-22 16:22 git Note Added: 0030360
2014-07-22 16:22 git Note Added: 0030361
2014-11-11 12:46 aiv Fixed in Version => 6.8.0
2014-11-11 12:53 aiv Status verified => closed