DiscussionsIssue archiveOCCT:Shape Healing

Archived issue #0030831

Shape Healing - ShapeFix algorithm (creation of seam edge) takes too long time with thin faces

Open CASCADEOCCT:Shape Healingclosed14 public notes

Search issues

Description

Attached file "Attachment 2 (BIN)" contains two faces from a large STEP assembly obtained with the conversion of units from mm to m (everything scaled down 1000 times). As the result these cylindrical faces have the height ~2e-8, and the algorithm considers them as both U-closed and V-closed. Hence incorrect result and too long processing.

Steps to reproduce

binrestore Attachment 2 (BIN) ff
explode ff
chrono cc start
fixshape rr_1 ff_1
chrono cc show
>> CPU user time: 426.2415323 seconds
fixshape rr_2 ff_2
chrono cc show
>> CPU user time: 671.2879031 seconds

Public activity

14 archived notes

Participants are labeled by their role within this record.

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

[revision removed]


Detailed log of new commits:

Author: Author
Date: Wed Jul 3 20:04:16 2019 +0300

    0030831: ShapeFix algorithm (creation of seam edge) takes too long time with thin faces
    
    In class ShapeFix_ComposeShell the U- and V-closedness of input face is taken immediately avoiding the error when the face is small in any of these dimensions.
02Commenter 2
With this change the result is valid shapes and the processing time is greatly reduced:

>> Elapsed time: 0 Hours 0 Minutes 0.00192222837359 Seconds
>> Elapsed time: 0 Hours 0 Minutes 0.00816187029704 Seconds
03Commenter 2
+  // agv 2019/07/03 - avoid false detection of 'Closed' on very thin faces
+  if (theSurface->IsKind(STANDARD_TYPE(Geom_ElementarySurface))) {

This is an obsolete (before moving OCCT to git) style, which should be avoided in new patches.
The change description should be within git commit message, authorship is deduced from git commit author field (as well as change date),
and code itself should contain only comments documenting the actual status, when needed.

04Commenter 1
Branch [archived branch] has been updated by Author.

[revision removed]


Detailed log of new commits:

Author: Author
Date: Thu Jul 4 11:42:11 2019 +0300

    Correction of a comment to the new code block.

05Commenter 1
Branch [archived branch] has been created by Participant.

[revision removed]


Detailed log of new commits:

Author: Author
Date: Wed Jul 3 20:04:16 2019 +0300

    0030831: ShapeFix algorithm (creation of seam edge) takes too long time with thin faces
    
    In class ShapeFix_ComposeShell the U- and V-closedness of input face is taken immediately avoiding the error when the face is small in any of these dimensions.
    
    Correction of a comment to the new code block.
06Commenter 6
07Commenter 7
Branch CR30831_1 was reviewed
08Commenter 3
Combination -
OCCT branch : [archived branch]
master SHA - [revision removed]
[revision removed]
Products branch : [archived branch] SHA - [revision removed]
was compiled on Linux, MacOS and Windows platforms and tested in optimize mode.

Number of compiler warnings:
No new/fixed warnings

Regressions/Differences/Improvements:
No regressions/differences

CPU differences:
Debian80-64:
OCCT
Total CPU difference: 16822.52000000005 / 16836.290000000165 [-0.08%]
Products
Total CPU difference: 10549.110000000052 / 10553.510000000031 [-0.04%]
Windows-64-VC14:
OCCT
Total CPU difference: 18281.15625 / 18300.0625 [-0.10%]
Products
Total CPU difference: 12229.015625 / 12227.453125 [+0.01%]


Image differences :
No differences that require special attention

Memory differences :
No differences that require special attention
09Commenter 9
Time before fix:
Draw[4]> chrono t1 start; fixshape r ff 1.e-7 1.; chrono t1 stop; chrono t1 show
Elapsed time: 0 Hours 10 Minutes 6.75428409991 Seconds
CPU user time: 601.8125 seconds
CPU system time: 0.5625 seconds

Time after fix:
Draw[4]> chrono t1 start; fixshape r ff 1.e-7 1.; chrono t1 stop; chrono t1 show
Elapsed time: 0 Hours 0 Minutes 0.00241609988734 Seconds
CPU user time: 0 seconds
CPU system time: 0 seconds
10Commenter 1
Branch [archived branch] has been updated forcibly by Participant.

[revision removed]
11Commenter 1
Branch [archived branch] has been updated forcibly by Participant.

[revision removed]
12Commenter 12
Dear Commenter 3.

Could you please add attached file Attachment 1 (BIN) in the data base for testing.

Test case bug30381 was puched in branch CR30831_1.
13Commenter 1
Branch [archived branch] has been deleted by Participant.

[revision removed]
14Commenter 1
Branch [archived branch] has been deleted by Participant.

[revision removed]