MantisBT
Mantis Bug Tracker Workflow

View Issue Details Jump to Notes ] Related Changesets ] Issue History ] Print ]
IDProjectCategoryView StatusDate SubmittedLast Update
0024983Community[OCCT] OCCT:Shape Healingpublic2014-06-03 12:252014-11-11 12:53
Reporterdrazmyslovich 
Assigned Toapn 
PrioritynormalSeverityjust a question 
StatusclosedResolutionfixed 
PlatformWindowsOSVC++ 2010OS Version64 bit
Product Version[OCCT] 6.6.0 
Target Version[OCCT] 6.8.0Fixed in Version[OCCT] 6.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? file icon 111FACE.stp (13,240 bytes) 2014-06-03 12:25
png file icon step_2_F1.png (149,347 bytes) 2014-06-24 14:25
png file icon invalid_face.png (47,318 bytes) 2014-06-24 14:26

- Relationships

-  Notes
(0029648)
abv (manager)
2014-06-03 14:48

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.
(0029652)
drazmyslovich (developer)
2014-06-03 17:15

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?
(0029655)
drazmyslovich (developer)
2014-06-03 17:51

The changed is committed. Please, verify it.
(0029657)
abv (manager)
2014-06-03 18:36

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.
(0029674)
drazmyslovich (developer)
2014-06-04 14:52

Sorry for messing up the things. I've committed the changes on the root and pushed it to branch CR24983_1
(0029701)
abv (manager)
2014-06-05 13:10

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).
(0029732)
mkv (tester)
2014-06-06 14:45

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.
(0029734)
abv (manager)
2014-06-06 14:59

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...
(0029869)
ika (developer)
2014-06-24 14:31

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.

(0029894)
ika (developer)
2014-06-26 16:35

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.
(0029895)
gka (developer)
2014-06-26 16:44

Branch CR24983 is ready to be tested
(0029910)
mkv (tester)
2014-06-27 17:07

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.
(0029913)
ika (developer)
2014-06-27 17:56

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?
(0029936)
mkv (tester)
2014-07-01 15:39

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
(0030359)
git (administrator)
2014-07-22 16:22

Branch CR24983 has been deleted by inv.

SHA-1: 4f40f47971d3eb0d4135a133b1159e65d6ff58ea
(0030360)
git (administrator)
2014-07-22 16:22

Branch CR24983_1 has been deleted by inv.

SHA-1: 5ed0c06960cd3f0b4cbcefdb8e260b4285429ca3
(0030361)
git (administrator)
2014-07-22 16:22

Branch CR24983_2 has been deleted by inv.

SHA-1: 6d2c92cbf3e2f5a0f7e1f5f909d096444949bbd7

- Related Changesets
occt: master 0d4e3501
Timestamp: 2014-07-03 13:16:07
Author: 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
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 View Revisions
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 user533 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 user533 Fixed in Version => 6.8.0
2014-11-11 12:53 user533 Status verified => closed


Copyright © 2000 - 2018 MantisBT Team
Powered by Mantis Bugtracker