View Issue Details
ID | Project | Category | View Status | Date Submitted | Last Update |
---|---|---|---|---|---|
0024983 | Community | OCCT:Shape Healing | public | 2014-06-03 12:25 | 2014-11-11 12:53 |
Reporter | drazmyslovich | Assigned To | apn | ||
Priority | normal | Severity | just a question | ||
Status | closed | Resolution | fixed | ||
Platform | Windows | OS | VC++ 2010 | ||
Product Version | 6.6.0 | ||||
Target Version | 6.8.0 | Fixed in Version | 6.8.0 | ||
Summary | 0024983: For the incorrect seam edge in STEP file no fix is provided | ||||
Description | Since 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 Reproduce | Import the attached file into the viewer and check the result. | ||||
Tags | No tags attached. | ||||
Test case number | bugs heal(017) bug24983 | ||||
|
111FACE.stp (13,240 bytes) |
|
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. |
|
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? |
|
The changed is committed. Please, verify it. |
|
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. |
|
Sorry for messing up the things. I've committed the changes on the root and pushed it to branch CR24983_1 |
|
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). |
|
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. |
|
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... |
|
step_2_F1.png (149,347 bytes) |
|
invalid_face.png (47,318 bytes) |
|
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. |
|
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. |
|
Branch CR24983 is ready to be tested |
|
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. |
|
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? |
|
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 |
|
Branch CR24983 has been deleted by inv. SHA-1: 4f40f47971d3eb0d4135a133b1159e65d6ff58ea |
|
Branch CR24983_1 has been deleted by inv. SHA-1: 5ed0c06960cd3f0b4cbcefdb8e260b4285429ca3 |
|
Branch CR24983_2 has been deleted by inv. SHA-1: 6d2c92cbf3e2f5a0f7e1f5f909d096444949bbd7 |
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 |
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 |
|
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 |
|
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 |
|
Note Added: 0029701 | |
2014-06-05 13:10 |
|
Assigned To | abv => bugmaster |
2014-06-05 13:10 |
|
Status | resolved => reviewed |
2014-06-05 16:23 |
|
Assigned To | bugmaster => mkv |
2014-06-06 14:45 |
|
Note Added: 0029732 | |
2014-06-06 14:47 |
|
Test case number | => bugs heal(017) bug24983 |
2014-06-06 14:47 |
|
Assigned To | mkv => abv |
2014-06-06 14:47 |
|
Status | reviewed => assigned |
2014-06-06 14:58 |
|
Assigned To | abv => ika |
2014-06-06 14:59 |
|
Note Added: 0029734 | |
2014-06-17 12:47 |
|
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 |
|
Note Added: 0029895 | |
2014-06-26 16:44 |
|
Status | feedback => reviewed |
2014-06-26 17:03 |
|
Assigned To | gka => mkv |
2014-06-27 17:07 |
|
Note Added: 0029910 | |
2014-06-27 17:08 |
|
Assigned To | mkv => ika |
2014-06-27 17:08 |
|
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 |
|
Note Added: 0029936 | |
2014-07-01 15:40 |
|
Assigned To | mkv => bugmaster |
2014-07-01 15:40 |
|
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 |
|
Fixed in Version | => 6.8.0 |
2014-11-11 12:53 |
|
Status | verified => closed |