Archived issue #0030831
Shape Healing - ShapeFix algorithm (creation of seam edge) takes too long time with thin faces
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
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.
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.
[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.
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
>> Elapsed time: 0 Hours 0 Minutes 0.00192222837359 Seconds
>> Elapsed time: 0 Hours 0 Minutes 0.00816187029704 Seconds
+ // 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.
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.
[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.
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.
[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.
Branch CR30831_1 was reviewed
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
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
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
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
Branch [archived branch] has been updated forcibly by Participant.
[revision removed]
[revision removed]
Branch [archived branch] has been updated forcibly by Participant.
[revision removed]
[revision removed]
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.
Could you please add attached file Attachment 1 (BIN) in the data base for testing.
Test case bug30381 was puched in branch CR30831_1.
Branch [archived branch] has been deleted by Participant.
[revision removed]
[revision removed]
Branch [archived branch] has been deleted by Participant.
[revision removed]
[revision removed]