DiscussionsIssue archiveOCCT:Shape Healing

Archived issue #0025553

ShapeFix_Face::FixMissingSeam() fails to correct a face

CommunityOCCT:Shape Healingclosed45 public notes

Search issues

Description

ShapeFix_Face::FixMissingSeam() fails to correct a face with two wires, two edges each.

The edge ends do not correspond to a surface seam and are placeed but with shift one respectively to another - see the 2D screenshot.

FixMissingSeam() fails to fix this. Moreover it tries to apply a rectangular grid (ShapeFix_ComposeShell). Is this geometrical configuration (multiple edges, not surface seam) a known limitation or is it just a bug in ShapeFix ?

Steps to reproduce

restore ii_73.brep
fixshape r ii_73

For additional reproducers please see enclosed files and C++ test

Additional information

a.brep - interim result right before calling FixMissingSeam()
Attachment 1 (PNG) - screenshot of results "pcurve a"

Public activity

45 archived notes

Participants are labeled by their role within this record.

01Commenter 2
Branch [archived branch] has been created by Author.

[revision removed]


Detailed log of new commits:

Author: Author
Date: Fri Jan 16 10:37:32 2015 +0400

    0025553: ShapeFix_Face::FixMissingSeam() fails to correct a face
02Commenter 2
Branch CR2553 is ready to be tested.
03Commenter 2
Branch [archived branch] has been updated forcibly by Participant.

[revision removed]
04Commenter 4
Branch [archived branch] has been rebased on the current master
05Commenter 5
Dear Commenter 1,

Branch CR25553 from occt git-repository (and master from products git-repository) was compiled on Linux, MacOS and Windows platforms and tested.
[revision removed]

Number of compiler warnings:
occt component:
   Linux: 18 (18 on master)
   Windows: 0 (0 on master)
products component :
   Linux: 11 (11 on master)
   Windows: 1 (1 on master)

Regressions/Differences:
http://occt-tests/CR25553-master-occt/Debian60-64/summary.html
http://occt-tests/CR25553-master-occt/Windows-32-VC10/summary.html
bugs vis(004) bug23153
bugs modalg_2(007) bug22631
bugs step(014) bug22145
de iges_1(001) O2
de step_1(004) E6, G9, V6, W9, Y1, ZB3, ZB5, ZX5
de step_2(005) A3, W9, X8
de step_3(006) A5, A9, C6, D8, E6
de step_4(007) H1, H8
de_step_5(008) A1, A7
heal split_angle(007) C1, E4, E5
heal split_closed_faces(011) F6
heal split_angle_advanced(013) B6, B8, D6, E2, L9, N3, N4
heal split_angle_standard(014) A2, A9, C8, D6, D8, E5, I7, I8, Q1, Q2, ZF7, ZM5, ZT9, ZW1, ZW3
heal split_to_revolution_advanced(017) A2, A9, C3, C7, C9, V3, ZE6
heal surface_to_revolution_standard(018) C3
mesh advanced_shading(004) B2, B3
mesh advanced_incmesh(005) B2, B3
mesh advanced_incmesh_parallel(008) B2, B3

http://occt-tests/CR25553-master-products/Debian60-64/summary.html
http://occt-tests/CR25553-master-products/Windows-32-VC10/summary.html
cr standard(001) D3
parasolid doc_3(003) A8, B1, C3, D5, E7, E8
parasolid read(005) C5
sat doc_1(001) B4, C4, D2, G6, W4, Z4
sat doc_2(002) E3, F2, G1
sat doc_3(003) B2, B3
sat doc_6(006) B2, G4, H5
sat read(008) C9
sat sumple(009) A8, B6, C4
sat load(010) A8, C4
sat read_parallel_1(011) C9

Testing on Linux:
Total MEMORY difference: 363354916 / 363900912
Total CPU difference: 51899.259999999944 / 49636.3300000001

Testing on Windows:
Total MEMORY difference: 272015312 / 271661456
Total CPU difference: 43791.34375 / 36569.046875

There are differences in images found by testdiff:
http://occt-tests/CR25553-master-occt/Debian60-64/diff-Debian60-64.html
http://occt-tests/CR25553-master-occt/Windows-32-VC10/diff-Windows-32-VC10.html
heal surface_to_bezier A1
heal surface_to_revolution_advanced S7
heal split_continuity_standard C3
xcaf stp_to_dxc L1
06Author
As communicated earlier in email, please provide access to (a subset of) failing models. The fix has been tested against the public test suite and passed well.
Thank you.
07Commenter 7
trj4_s1-ai-214.stp (de step_1 E6)
trj4_k1_geo-pe-203.stp (de step_1 G9)
trj3_s1-ug-214.stp (de step_1 V6)
trj4_s1-ug-214.stp (de step_1 W9)
trj5_s1-ug-214.stp (de step_1 Y1)
trj8_k1-md-214.stp (de step_1 ZX5)
bowl_noremove.brep (heal split_closed_faces F6)
sphere.rle (heal split_angle_standard A2)
res3.rle (heal split_angle_standard A9)
heal-Face1.rle (heal split_angle_standard C8, ZW1)
BUC60277.rle (heal split_angle_standard D6)
BUC60394.rle (heal split_angle_standard D8)
ma-test2.rle (heal split_angle_standard E5)
cts21128c.rle (heal split_angle_standard I7)
cts21128d.rle (heal split_angle_standard I8)
CTO900_pro12953-part.rle (heal split_angle_standard Q2)
cts20552_tool.rle (heal split_angle_standard ZF7)
cts21210b.rle (heal split_angle_standard ZM5)
CTO909_IR2_sphere1_20.brep (heal split_angle_standard ZW3)
BUC60035-ruled-378.rle (heal surface_to_revolution_standard C3)
08Commenter 2
Branch [archived branch] has been created by Commenter 3.

[revision removed]


Detailed log of new commits:

Author: Alexander Zashivalov
Date: Thu Mar 19 16:03:20 2015 +0300

    0025553: ShapeFix_Face::FixMissingSeam() fails to correct a face
09Author
The updated fix is in CR25553_1 branch. Please review.
10Commenter 10
Branch CR25553_1 is ready to be tested
11Commenter 2
Branch [archived branch] has been updated forcibly by Participant.

[revision removed]
12Commenter 12
Branch [archived branch] has been rebased on the current master
13Commenter 13
Dear Commenter 1,

Branch CR25553_1 from occt git-repository (and master from products git-repository) was compiled on Linux, MacOS and Windows platforms and tested.
[revision removed]

Number of compiler warnings:
occt component:
   Linux: 18 (18 on master)
   Windows: 0 (0 on master)
products component :
   Linux: 4 (4 on master)
   Windows: 0 (0 on master)

Regressions/Differences:
http://occt-tests/CR25553-1-master-occt-64/Debian60-64/summary.html
http://occt-tests/CR25553-1-master-occt-64/Windows-64-VC10/summary.html
bugs modalg_2(007) bug22641
de step_1(004) G9
de step_2(005) A3
de step_3(006) C6, E6
de step_4(007) H1
de_step_5(008) A1, A7
heal surface_to_revolution_advanced(017) A2

http://occt-tests/CR25553-1-master-products-64/Debian60-64/summary.html
http://occt-tests/CR25553-1-master-products-64/Windows-64-VC10/summary.html
sat doc_3(003) B3
parasolid read(005) B2

Testing on Linux:
Total MEMORY difference: 85386086 / 86238394 [-0.99%]
Total CPU difference: 52250.08999999985 / 53310.80000000014 [-1.99%]

Testing on Windows:
Total MEMORY difference: 55671495 / 55679110 [-0.01%]
Total CPU difference: 16352.524023199685 / 15861.557675999678 [+3.10%]
14Commenter 2
Branch [archived branch] has been created by Commenter 3.

[revision removed]


Detailed log of new commits:

Author: Alexander Zashivalov
Date: Mon Jun 29 12:48:29 2015 +0300

    0025553: ShapeFix_Face::FixMissingSeam() fails to correct a face
15Commenter 3
New Branch [archived branch] has been pushed, please review.
Some tests' ref_data was corrected as algorithm now has more accurate logic. Сonfirmation of this was provided by e-mail.
16Commenter 16
Branch CR25553_2 is ready to be tested.

Attention!!! : After tests bug CR25553 should be assigned to me.
Until branch CR25553 should not be integrated.
17Commenter 2
Branch [archived branch] has been updated forcibly by Participant.

[revision removed]
18Commenter 18
Branch [archived branch] has been rebased on the current master
19Commenter 19
Dear Commenter 1,

Branch CR25553_2 from occt git-repository (and master from products git-repository) was compiled on Linux, MacOS and Windows platforms and tested.
[revision removed]

Number of compiler warnings:
occt component:
   Linux: 15 (15 on master)
   Windows: 0 (0 on master)
products component :
   Linux: 39 (39 on master)
   Windows: 0 (0 on master)

Regressions/Differences:
http://occt-tests/CR25553-2-master-occt-64/Debian70-64/summary.html
http://occt-tests/CR25553-2-master-occt-64/Windows-64-VC10/summary.html
bugs heal bug25823
bugs modalg_2 bug22631
de step_1 D1, E3, Z1, ZA6, ZB3, ZB4, ZB5. G9
de step_2 D2
de step_3 A5, A9, D8, E6
de step_4 H1
de step_5 A1
heal surface_to_revolution_advanced A2

http://occt-tests/CR25553-2-master-products-64/Debian70-64/summary.html
http://occt-tests/CR25553-2-master-products-64/Windows-64-VC10/summary.html
cr standard D3, D8
parasolid doc_1 A3
parasolid doc_3 A5, A8, C3 (Linux only), D5, E7
sat doc_1 B8, D2, E9, F5, F7, Z1
sat doc_2 C1
sat doc_3 B2, B3, C4
sat doc_6 D7, E8, F8, G5, H1, I7
sat load B3, C4
sat read_parallel_1 D2 (Linux only)
sat simple B3
20Commenter 2
Branch [archived branch] has been created by Commenter 3.

[revision removed]


Detailed log of new commits:

Author: Alexander Zashivalov
Date: Mon Jun 29 12:48:29 2015 +0300

    0025553: ShapeFix_Face::FixMissingSeam() fails to correct a face
21Commenter 3
Regression reported by e-mail was resolved. Please review.
22Commenter 22
Branch CR25553_3 is ready to be tested
23Commenter 23
Dear Commenter 1,

Branch CR25553-3 from occt git-repository (and master from products git-repository) was compiled on Linux, MacOS and Windows platforms and tested.
[revision removed]

Number of compiler warnings:
occt component:
   Linux: 15 (15 on master)
   Windows: 0 (0 on master)
products component :
   Linux: 39 (39 on master)
   Windows: 0 (0 on master)

Regressions/Differences:
http://occt-tests/CR25553-3-master-occt-64/Debian70-64/summary.html
http://occt-tests/CR25553-3-master-occt-64/Windows-64-VC10/summary.html
bugs modalg_2 bug22631
bugs step bug24601
de step_1 D1, E3, G9, Z1, ZA6, ZB3, ZB4, ZB5
de step_2 D2, H7
de step_3 A5, A9, C6, D8, E6
de step_4 H1
de step_5 A1, A7
heal surface_to_revolution_advanced A2

http://occt-tests/CR25553-3-master-products-64/Debian70-64/summary.html
http://occt-tests/CR25553-3-master-products-64/Windows-64-VC10/summary.html
cr standard D3, D8
parasolid doc_1 A3
parasolid doc_3 A5, C3, D5
sat doc_1 B8, D2, E9, F5, F7, Z1
sat doc_2 C1, E3
sat doc_3 B2, B3, C4
sat doc_6 D7, E8, F8, G5, I7
sat load B3, C4
sat simple B3

Testing on Linux:
Total MEMORY difference: 88433529 / 89440224 [-1.13%]
Total CPU difference: 17256.96999999991 / 17049.839999999665 [+1.21%]

Testing on Windows:
Total MEMORY difference: 55404223 / 55411749 [-0.01%]
Total CPU difference: 15932.569331199013 / 16293.69604609923 [-2.22%]

There are differences in images found by testdiff:
http://occt-tests/CR25553-3-master-occt-64/Debian70-64/diff-Debian70-64.html
http://occt-tests/CR25553-3-master-occt-64/Windows-64-VC10/diff-Windows-64-VC10.html
http://occt-tests/CR25553-3-master-products-64/Debian70-64/diff-Debian70-64.html
http://occt-tests/CR25553-3-master-products-64/Windows-64-VC10/diff-Windows-64-VC10.html
24Commenter 2
Branch [archived branch] has been created by Participant.

[revision removed]


Detailed log of new commits:

Author: gka
Date: Fri Aug 28 11:53:42 2015 +0300

    0025553: ShapeFix_Face::FixMissingSeam() fails to correct a face
    
    Modification to support case when edges on face have incorrect orientation was added.
    Modification to support case when wires have intersecting segment was added
25Commenter 25
Could you please to review branch CR25553_4
26Commenter 2
Branch [archived branch] has been updated by Participant.

[revision removed]


Detailed log of new commits:

Author: gka
Date: Tue Sep 1 19:37:58 2015 +0300

    0025553: ShapeFix_Face::FixMissingSeam() fails to correct a face
    
    Fix to correct invalid orientation of wires for closed surface was added in the FixMissingSeem operator

27Commenter 2
Branch [archived branch] has been updated forcibly by Participant.

[revision removed]
28Commenter 2
Branch [archived branch] has been updated by Participant.

[revision removed]


Detailed log of new commits:

Author: gka
Date: Thu Sep 3 12:17:25 2015 +0300

    Test cases for bug 0025553

29Commenter 29
Shapes for test scripts buc25553, buc25553_1, buc25553_2 were attached.
30Commenter 2
Branch [archived branch] has been created by Participant.

[revision removed]


Detailed log of new commits:

Author: gka
Date: Wed Sep 2 11:45:35 2015 +0300

    0025553: ShapeFix_Face::FixMissingSeam() fails to correct a face
    
    Modification to support case when edges on face have incorrect orientation was added.
    Modification to support case when wires have intersecting segment was added
    
    Test cases for issue 25553
31Commenter 31
Reviewed, please test branch CR25553_5 (cleaned up and rebased on new master).

Note that branch already contains tests for this issue, just add BRep files contained in ZIP archives attached to the issue to the test models base (with prefix "bug25553_").
32Commenter 32
Dear Commenter 1,

Branch CR25553-5 from occt git-repository (and master from products git-repository) was compiled on Linux, MacOS and Windows platforms and tested.
[revision removed]

Number of compiler warnings:
occt component:
   Linux: 15 (15 on master)
   Windows: 0 (0 on master)
products component :
   Linux: 39 (39 on master)
   Windows: 0 (0 on master)

Regressions/Differences:
http://occt-tests/CR25553-5-master-occt-64/Debian70-64/summary.html
de step_3 D8

http://occt-tests/CR25553-5-master-products-64/Debian70-64/summary.html
http://occt-tests/CR25553-5-master-products-64/Windows-64-VC10/summary.html
sat doc_6 E8

Testing on Linux:
Total MEMORY difference: 90224267 / 91719239 [-1.63%]
Total CPU difference: 17791.99999999901 / 17670.16999999897 [+0.69%]

Testing on Windows:
Total MEMORY difference: 57081276 / 57089171 [-0.01%]
Total CPU difference: 16153.575947899251 / 16226.724816799388 [-0.45%]

There are differences in images found by testdiff:
http://occt-tests/CR25553-5-master-products-64/Debian70-64/diff-Debian70-64.html
http://occt-tests/CR25553-5-master-products-64/Windows-64-VC10/diff-Windows-64-VC10.html
parasolid read D4

33Commenter 2
Branch [archived branch] has been updated by Participant.

[revision removed]


Detailed log of new commits:

Author: gka
Date: Wed Sep 9 14:35:56 2015 +0300

    Small modification to avoid regression for sat/doc_6/E8 test case

Author: gka
Date: Thu Sep 3 12:17:25 2015 +0300

    Test cases for bug 0025553

34Commenter 34
Branch CR25553_5 is ready to be reviewed
35Commenter 2
Branch [archived branch] has been updated forcibly by Participant.

[revision removed]
36Commenter 36
Reviewed, please test
37Commenter 37
Dear Commenter 1,
Branch CR25553_5 from occt git-repository (and master from products git-repository) was compiled on Linux and Windows platforms and tested on Release mode.
[revision removed]

Number of compiler warnings:

occt component :
Linux: 15 (15 on master)
Windows: 0 (0 on master)

products component :
Linux: 39 (39 on master)
Windows: 0 (0 on master)

Regressions/Differences/Improvements:
http://occt-tests/CR25553-5-master-occt-64/Windows-64-VC10/de/step_3/D8.html
de step_3 D8: FAILED

Testing cases:
http://occt-tests/CR25553-5-master-occt-64/Debian70-64/bugs/heal/bug25553_1.html
http://occt-tests/CR25553-5-master-occt-64/Windows-64-VC10/bugs/heal/bug25553_1.html
bugs heal bug25553_1: OK

http://occt-tests/CR25553-5-master-occt-64/Debian70-64/bugs/heal/bug25553_2.html
http://occt-tests/CR25553-5-master-occt-64/Windows-64-VC10/bugs/heal/bug25553_2.html
bugs heal bug25553_2: OK

http://occt-tests/CR25553-5-master-occt-64/Debian70-64/bugs/heal/bug25553_3.html
http://occt-tests/CR25553-5-master-occt-64/Windows-64-VC10/bugs/heal/bug25553_3.html
bugs heal bug25553_3: OK

Testing on Linux:
occt component :
Total MEMORY difference: 91707590 / 91717246 [-0.01%]
Total CPU difference: 17705.289999999113 / 17668.02999999897 [+0.21%]
products component :
Total MEMORY difference: 25220299 / 25209091 [+0.04%]
Total CPU difference: 7346.719999999997 / 6932.900000000004 [+5.97%]

Testing on Windows:
occt component :
Total MEMORY difference: 56988563 / 56979281 [+0.02%]
Total CPU difference: 16368.654526598959 / 16540.895230699352 [-1.04%]
products component :
Total MEMORY difference: 16226662 / 16225943 [+0.00%]
Total CPU difference: 5358.275547699977 / 5398.88260799997 [-0.75%]

There are following differences in images found by testdiff.
http://occt-tests/CR25553-5-master-products-64/Debian70-64/diff-Debian70-64.html
http://occt-tests/CR25553-5-master-products-64/Windows-64-VC10/diff-Windows-64-VC10.html
IMAGE parasolid read D4: D4.png differs

http://occt-tests/CR25553-5-master-occt-64/Debian70-64/diff-Debian70-64.html
http://occt-tests/CR25553-5-master-occt-64/Windows-64-VC10/diff-Windows-64-VC10.html
IMAGE de step_1 G9: G9.png differs
38Commenter 2
Branch [archived branch] has been updated by Participant.

[revision removed]


Detailed log of new commits:

Author: gka
Date: Thu Sep 10 17:07:33 2015 +0300

    Corrected test case

39Commenter 39
Case de step_3 D8 is not regression .Corrected test case was pushed in CR25553_5 branch.
Case de step_1 G - improvement;
Case parasolid read D4 is not regression. This case is bad in both versions
40Commenter 2
Branch [archived branch] has been deleted by Participant.

[revision removed]
41Commenter 2
Branch [archived branch] has been deleted by Participant.

[revision removed]
42Commenter 2
Branch [archived branch] has been deleted by Participant.

[revision removed]
43Commenter 2
Branch [archived branch] has been deleted by Participant.

[revision removed]
44Commenter 2
Branch [archived branch] has been deleted by Participant.

[revision removed]
45Commenter 2
Branch [archived branch] has been deleted by Participant.

[revision removed]

Related records