1
0
mirror of https://git.dev.opencascade.org/repos/occt.git synced 2025-09-18 14:27:39 +03:00

0029564: STEP Import and Export failure

In the result of translation one face lying on the spherical surface converted to the two separate faces due to method IsSurfaceUVPeriodic returned false for spherical surface.
Now method IsSurfaceUVPeriodic returns true for spherical surface in order to natural bounds can be added for spherical surface too.
Method ShapeFix_Face::FixOrientation was corrected to avoid reversing inner wire for case when spherical face has only one inner bound without outer bound.
Check that wire has bounding box equal to bounding box of surface was added in the method ShapeFix_Face::FixAddNaturalBound in order to avoid addition of the natural bounds ( test bugs xde bug22535_2 1 for face 2 lying on the torus)

In order to avoid regressions fix for translation "VERTEX_LOOP" entities was added. Natural bounds for "VERTEX_LOOP" lying on the Spherical and BSpline surface is added only if face does not have any other bounds.
In other case natural bounds were added during ShapeFix operation after translation in order take into account mutual position of the all bounds in the UV space of the face.
This commit is contained in:
skl
2020-11-02 19:52:44 +03:00
committed by bugmaster
parent 59069d3fd8
commit d66f7c0fa2
10 changed files with 126 additions and 102 deletions

15
tests/bugs/step/bug29564 Normal file
View File

@@ -0,0 +1,15 @@
puts "# ====================================================================="
puts "# 0029564: In the result of translation of one face lying on the sphere two separate faces were obtained"
puts "# ====================================================================="
puts ""
set filepath [locate_data_file bug29564.stp]
stepread $filepath a *
tpcompound result
checkshape result
checkprops result -s 5831.82
checknbshapes result -wire 78 -face 68 -shell 5 -solid 5 -compound 2
# checkview -display result -2d -path ${imagedir}/${test_image}.png

View File

@@ -5,8 +5,8 @@ set ref_data {
DATA : Faulties = 0 ( 54 ) Warnings = 0 ( 0 ) Summary = 0 ( 54 )
TPSTAT : Faulties = 0 ( 0 ) Warnings = 2 ( 51 ) Summary = 2 ( 51 )
CHECKSHAPE : Wires = 0 ( 0 ) Faces = 0 ( 0 ) Shells = 0 ( 0 ) Solids = 0 ( 0 )
NBSHAPES : Solid = 8 ( 8 ) Shell = 10 ( 10 ) Face = 108 ( 108 )
STATSHAPE : Solid = 8 ( 8 ) Shell = 10 ( 10 ) Face = 108 ( 108 ) FreeWire = 0 ( 0 )
NBSHAPES : Solid = 8 ( 8 ) Shell = 8 ( 8 ) Face = 104 ( 104 )
STATSHAPE : Solid = 8 ( 8 ) Shell = 8 ( 8 ) Face = 104 ( 104 ) FreeWire = 0 ( 0 )
TOLERANCE : MaxTol = 0.0007308806138 ( 0.002238556699 ) AvgTol = 1.588300578e-005 ( 3.376756081e-005 )
LABELS : N0Labels = 9 ( 9 ) N1Labels = 8 ( 8 ) N2Labels = 0 ( 0 ) TotalLabels = 17 ( 17 ) NameLabels = 17 ( 17 ) ColorLabels = 0 ( 0 ) LayerLabels = 0 ( 0 )
PROPS : Centroid = 1 ( 1 ) Volume = 1 ( 1 ) Area = 1 ( 1 )

View File

@@ -5,8 +5,8 @@ set ref_data {
DATA : Faulties = 0 ( 0 ) Warnings = 0 ( 0 ) Summary = 0 ( 0 )
TPSTAT : Faulties = 0 ( 0 ) Warnings = 1 ( 398 ) Summary = 1 ( 398 )
CHECKSHAPE : Wires = 0 ( 0 ) Faces = 0 ( 0 ) Shells = 0 ( 0 ) Solids = 0 ( 0 )
NBSHAPES : Solid = 1 ( 1 ) Shell = 1 ( 1 ) Face = 538 ( 538 )
STATSHAPE : Solid = 1 ( 1 ) Shell = 1 ( 1 ) Face = 538 ( 538 ) FreeWire = 0 ( 0 )
NBSHAPES : Solid = 1 ( 1 ) Shell = 1 ( 1 ) Face = 532 ( 532 )
STATSHAPE : Solid = 1 ( 1 ) Shell = 1 ( 1 ) Face = 532 ( 532 ) FreeWire = 0 ( 0 )
TOLERANCE : MaxTol = 1.956021749e-005 ( 0.0003145873437 ) AvgTol = 8.898149576e-007 ( 7.870748276e-006 )
LABELS : N0Labels = 1 ( 1 ) N1Labels = 0 ( 0 ) N2Labels = 0 ( 0 ) TotalLabels = 1 ( 1 ) NameLabels = 1 ( 1 ) ColorLabels = 1 ( 1 ) LayerLabels = 0 ( 0 )
PROPS : Centroid = 0 ( 0 ) Volume = 0 ( 0 ) Area = 0 ( 0 )

View File

@@ -5,8 +5,8 @@ set ref_data {
DATA : Faulties = 0 ( 0 ) Warnings = 0 ( 0 ) Summary = 0 ( 0 )
TPSTAT : Faulties = 0 ( 0 ) Warnings = 4 ( 127 ) Summary = 4 ( 127 )
CHECKSHAPE : Wires = 0 ( 0 ) Faces = 0 ( 0 ) Shells = 0 ( 0 ) Solids = 0 ( 0 )
NBSHAPES : Solid = 27 ( 27 ) Shell = 28 ( 28 ) Face = 479 ( 479 )
STATSHAPE : Solid = 27 ( 27 ) Shell = 28 ( 28 ) Face = 479 ( 479 ) FreeWire = 0 ( 0 )
NBSHAPES : Solid = 25 ( 25 ) Shell = 25 ( 25 ) Face = 476 ( 476 )
STATSHAPE : Solid = 25 ( 25 ) Shell = 25 ( 25 ) Face = 476 ( 476 ) FreeWire = 0 ( 0 )
TOLERANCE : MaxTol = 8.47188394e-006 ( 1.437435657e-005 ) AvgTol = 5.284196224e-007 ( 2.390274944e-006 )
LABELS : N0Labels = 16 ( 16 ) N1Labels = 15 ( 15 ) N2Labels = 0 ( 0 ) TotalLabels = 31 ( 31 ) NameLabels = 31 ( 31 ) ColorLabels = 0 ( 0 ) LayerLabels = 0 ( 0 )
PROPS : Centroid = 0 ( 0 ) Volume = 0 ( 0 ) Area = 0 ( 0 )

View File

@@ -5,8 +5,8 @@ set ref_data {
DATA : Faulties = 0 ( 0 ) Warnings = 0 ( 0 ) Summary = 0 ( 0 )
TPSTAT : Faulties = 0 ( 0 ) Warnings = 8 ( 82 ) Summary = 8 ( 82 )
CHECKSHAPE : Wires = 0 ( 0 ) Faces = 0 ( 0 ) Shells = 0 ( 0 ) Solids = 0 ( 0 )
NBSHAPES : Solid = 18 ( 18 ) Shell = 18 ( 18 ) Face = 376 ( 376 )
STATSHAPE : Solid = 18 ( 18 ) Shell = 18 ( 18 ) Face = 376 ( 376 ) FreeWire = 0 ( 0 )
NBSHAPES : Solid = 18 ( 18 ) Shell = 18 ( 18 ) Face = 369 ( 369 )
STATSHAPE : Solid = 18 ( 18 ) Shell = 18 ( 18 ) Face = 369 ( 369 ) FreeWire = 0 ( 0 )
TOLERANCE : MaxTol = 0.005929066011 ( 0.01678530642 ) AvgTol = 9.716756634e-005 ( 0.0001556337239 )
LABELS : N0Labels = 20 ( 20 ) N1Labels = 19 ( 19 ) N2Labels = 0 ( 0 ) TotalLabels = 39 ( 39 ) NameLabels = 39 ( 39 ) ColorLabels = 0 ( 0 ) LayerLabels = 0 ( 0 )
PROPS : Centroid = 20 ( 20 ) Volume = 20 ( 20 ) Area = 20 ( 20 )

View File

@@ -5,10 +5,10 @@ set ref_data {
DATA : Faulties = 0 ( 0 ) Warnings = 0 ( 80 ) Summary = 0 ( 80 )
TPSTAT : Faulties = 0 ( 0 ) Warnings = 14 ( 545 ) Summary = 14 ( 545 )
CHECKSHAPE : Wires = 0 ( 0 ) Faces = 0 ( 0 ) Shells = 0 ( 0 ) Solids = 0 ( 0 )
NBSHAPES : Solid = 98 ( 98 ) Shell = 98 ( 98 ) Face = 1506 ( 1506 )
STATSHAPE : Solid = 272 ( 272 ) Shell = 272 ( 272 ) Face = 3216 ( 3216 ) FreeWire = 0 ( 0 )
NBSHAPES : Solid = 98 ( 98 ) Shell = 98 ( 98 ) Face = 1504 ( 1504 )
STATSHAPE : Solid = 272 ( 272 ) Shell = 272 ( 272 ) Face = 3214 ( 3214 ) FreeWire = 0 ( 0 )
TOLERANCE : MaxTol = 0.9320948364 ( 3.3196868 ) AvgTol = 0.0006692755906 ( 0.003731702354 )
LABELS : N0Labels = 230 ( 230 ) N1Labels = 1909 ( 1909 ) N2Labels = 0 ( 0 ) TotalLabels = 2139 ( 2139 ) NameLabels = 633 ( 633 ) ColorLabels = 1604 ( 1604 ) LayerLabels = 0 ( 0 )
LABELS : N0Labels = 230 ( 230 ) N1Labels = 1907 ( 1907 ) N2Labels = 0 ( 0 ) TotalLabels = 2137 ( 2137 ) NameLabels = 633 ( 633 ) ColorLabels = 1602 ( 1602 ) LayerLabels = 0 ( 0 )
PROPS : Centroid = 161 ( 161 ) Volume = 161 ( 161 ) Area = 161 ( 161 )
NCOLORS : NColors = 6 ( 6 )
COLORS : Colors = DARKSEAGREEN1 LAVENDER LIGHTGOLDENROD LIGHTSTEELBLUE1 LIGHTSTEELBLUE3 STEELBLUE3 ( DARKSEAGREEN1 LAVENDER LIGHTGOLDENROD LIGHTSTEELBLUE1 LIGHTSTEELBLUE3 STEELBLUE3 )

View File

@@ -5,8 +5,8 @@ set ref_data {
DATA : Faulties = 0 ( 0 ) Warnings = 0 ( 80 ) Summary = 0 ( 80 )
TPSTAT : Faulties = 0 ( 0 ) Warnings = 21 ( 559 ) Summary = 21 ( 559 )
CHECKSHAPE : Wires = 0 ( 0 ) Faces = 0 ( 0 ) Shells = 0 ( 0 ) Solids = 0 ( 0 )
NBSHAPES : Solid = 98 ( 98 ) Shell = 98 ( 98 ) Face = 1506 ( 1506 )
STATSHAPE : Solid = 272 ( 272 ) Shell = 272 ( 272 ) Face = 3216 ( 3216 ) FreeWire = 0 ( 0 )
NBSHAPES : Solid = 98 ( 98 ) Shell = 98 ( 98 ) Face = 1504 ( 1504 )
STATSHAPE : Solid = 272 ( 272 ) Shell = 272 ( 272 ) Face = 3214 ( 3214 ) FreeWire = 0 ( 0 )
TOLERANCE : MaxTol = 0.9320948364 ( 3.3196868 ) AvgTol = 0.0006686833198 ( 0.003731109924 )
LABELS : N0Labels = 230 ( 230 ) N1Labels = 403 ( 403 ) N2Labels = 0 ( 0 ) TotalLabels = 633 ( 633 ) NameLabels = 633 ( 633 ) ColorLabels = 98 ( 98 ) LayerLabels = 0 ( 0 )
PROPS : Centroid = 99 ( 99 ) Volume = 99 ( 99 ) Area = 99 ( 99 )

View File

@@ -5,10 +5,10 @@ set ref_data {
DATA : Faulties = 0 ( 0 ) Warnings = 0 ( 80 ) Summary = 0 ( 80 )
TPSTAT : Faulties = 0 ( 0 ) Warnings = 21 ( 559 ) Summary = 21 ( 559 )
CHECKSHAPE : Wires = 0 ( 0 ) Faces = 0 ( 0 ) Shells = 0 ( 0 ) Solids = 0 ( 0 )
NBSHAPES : Solid = 98 ( 98 ) Shell = 98 ( 98 ) Face = 1506 ( 1506 )
STATSHAPE : Solid = 272 ( 272 ) Shell = 272 ( 272 ) Face = 3216 ( 3216 ) FreeWire = 0 ( 0 )
NBSHAPES : Solid = 98 ( 98 ) Shell = 98 ( 98 ) Face = 1504 ( 1504 )
STATSHAPE : Solid = 272 ( 272 ) Shell = 272 ( 272 ) Face = 3214 ( 3214 ) FreeWire = 0 ( 0 )
TOLERANCE : MaxTol = 0.9320948364 ( 3.3196868 ) AvgTol = 0.0006670990393 ( 0.003722145099 )
LABELS : N0Labels = 230 ( 230 ) N1Labels = 1909 ( 1909 ) N2Labels = 0 ( 0 ) TotalLabels = 2139 ( 2139 ) NameLabels = 633 ( 633 ) ColorLabels = 1506 ( 1506 ) LayerLabels = 0 ( 0 )
LABELS : N0Labels = 230 ( 230 ) N1Labels = 1907 ( 1907 ) N2Labels = 0 ( 0 ) TotalLabels = 2137 ( 2137 ) NameLabels = 633 ( 633 ) ColorLabels = 1504 ( 1504 ) LayerLabels = 0 ( 0 )
PROPS : Centroid = 98 ( 98 ) Volume = 98 ( 98 ) Area = 98 ( 98 )
NCOLORS : NColors = 6 ( 6 )
COLORS : Colors = DARKSEAGREEN1 LAVENDER LIGHTGOLDENROD LIGHTSTEELBLUE1 LIGHTSTEELBLUE3 STEELBLUE3 ( DARKSEAGREEN1 LAVENDER LIGHTGOLDENROD LIGHTSTEELBLUE1 LIGHTSTEELBLUE3 STEELBLUE3 )