]> OCCT Git - occt-copy.git/commitdiff
0024595: STEP import missing surfaces CR0_PMI_TESS
authorgka <gka@opencascade.com>
Fri, 11 Dec 2015 08:01:27 +0000 (11:01 +0300)
committergka <gka@opencascade.com>
Fri, 11 Dec 2015 08:01:27 +0000 (11:01 +0300)
Modification to create natural bounds for face based on the spherical and Bspline surface and having only one bound represented by Vertex loop was made.
 According to the specification of ISO-10303 part 42:
    "If the face has only one bound and this is of type vertex_loop, then the interior of the face is the domain of the face_surface.face_geometry. In such a case the underlying surface shall be closed (e.g. a spherical_surface.)"
    - natural bounds are applied only in case if VertexLoop is only the one
      defined face bound.

src/StepToTopoDS/StepToTopoDS_TranslateFace.cxx
tests/de/step_1/D1
tests/de/step_3/D8

index 83bc20ae858433b7ad13a3909915be259f81c9a1..cd673ae3d8778b1e8ff7a7a9b3689a88314e048e 100644 (file)
@@ -236,12 +236,7 @@ void StepToTopoDS_TranslateFace::Init
 //  Standard_Boolean fautcoudre =
 //    ( (NbBnd == 2) && (GeomSurf->IsUClosed() || GeomSurf->IsVClosed()) );
 
-  Standard_Boolean isExistOuter = Standard_False;
-  for (Standard_Integer i = 1; i <= NbBnd; i++) {
-    FaceBound = FS->BoundsValue(i);
-    if (FaceBound->IsKind(STANDARD_TYPE(StepShape_FaceOuterBound)))
-      isExistOuter = Standard_True;
-  }
+  
   for (Standard_Integer i = 1; i <= NbBnd; i ++) {
 
 #ifdef OCCT_DEBUG
@@ -265,13 +260,14 @@ void StepToTopoDS_TranslateFace::Init
       if (GeomSurf->IsKind (STANDARD_TYPE(Geom_SphericalSurface)) ||
           GeomSurf->IsKind (STANDARD_TYPE(Geom_BSplineSurface)) )
       {
-        if (!isExistOuter || FaceBound->IsKind(STANDARD_TYPE(StepShape_FaceOuterBound))) {
+        if (NbBnd ==1 || FaceBound->IsKind(STANDARD_TYPE(StepShape_FaceOuterBound))) {
           BRepBuilderAPI_MakeFace mf (GeomSurf, Precision());
           for (TopoDS_Iterator it(mf); it.More(); it.Next()) 
             B.Add (F, it.Value());
-        }
+        
 
         continue;
+        }
       }
       
       if (//GeomSurf->IsKind(STANDARD_TYPE(Geom_SphericalSurface)) ||
index a090a45344c23c8050f3c71104cadc83c7d9c51a..ba098ae99ac85313e8411a4628736d031d238a16 100644 (file)
@@ -1,14 +1,13 @@
 # !!!! This file is generated automatically, do not edit manually! See end script
-
 set filename trj9_b2-ai-214.stp
 
 set ref_data {
 DATA        : Faulties = 0  ( 0 )  Warnings = 0  ( 0 )  Summary  = 0  ( 0 )
-TPSTAT      : Faulties = 0  ( 0 )  Warnings = 8  ( 38 )  Summary  = 8  ( 38 )
-CHECKSHAPE  : Wires    = 1  ( 1 )  Faces    = 1  ( 1 )  Shells   = 0  ( 0 )   Solids   = 0 ( 0 )
-NBSHAPES    : Solid    = 1  ( 1 )  Shell    = 1  ( 1 )  Face     = 221  ( 221 )   Summary  = 1465  ( 1463 )
-STATSHAPE   : Solid    = 1  ( 1 )  Shell    = 1  ( 1 )  Face     = 221  ( 221 )   FreeWire = 0  ( 0 )   FreeEdge  = 0 ( 0 )   SharedEdge = 610  ( 610 )
-TOLERANCE   : MaxTol   = 0.004950186716  ( 0.004950186717 )  AvgTol   =  0.0003553188051  (  0.0003621212346 )
+TPSTAT      : Faulties = 0  ( 0 )  Warnings = 7  ( 38 )  Summary  = 7  ( 38 )
+CHECKSHAPE  : Wires    = 0  ( 0 )  Faces    = 0  ( 0 )  Shells   = 0  ( 0 )   Solids   = 0 ( 0 )
+NBSHAPES    : Solid    = 1  ( 1 )  Shell    = 1  ( 1 )  Face     = 221  ( 221 )   Summary  = 1460  ( 1459 )
+STATSHAPE   : Solid    = 1  ( 1 )  Shell    = 1  ( 1 )  Face     = 221  ( 221 )   FreeWire = 0  ( 0 )   FreeEdge  = 0 ( 0 )   SharedEdge = 608  ( 608 )
+TOLERANCE   : MaxTol   = 0.004950137219  ( 0.004950137216 )  AvgTol   =  0.0003566630364  (  0.0003615446964 )
 LABELS      : N0Labels = 1  ( 1 )  N1Labels = 0  ( 0 )  N2Labels = 0  ( 0 )   TotalLabels = 1  ( 1 )   NameLabels = 1  ( 1 )   ColorLabels = 1  ( 1 )   LayerLabels = 0  ( 0 )
 PROPS       : Centroid = 1  ( 1 )  Volume   = 1  ( 1 )  Area     = 1  ( 1 )
 NCOLORS     : NColors  = 1  ( 1 )
index ae83511d297060aa8172af5ca585f00772ca1a58..9f66b882d1cf74dfce76c4bfa3d31e83ae6473f0 100755 (executable)
@@ -1,15 +1,13 @@
 # !!!! This file is generated automatically, do not edit manually! See end script
-puts "TODO CR25013 Linux: Error : 1 differences with reference data found" 
-
 set filename trj6_pm4-hc-214.stp
 
 set ref_data {
 DATA        : Faulties = 0  ( 20 )  Warnings = 0  ( 60 )  Summary  = 0  ( 80 )
 TPSTAT      : Faulties = 0  ( 0 )  Warnings = 21  ( 557 )  Summary  = 21  ( 557 )
 CHECKSHAPE  : Wires    = 0  ( 0 )  Faces    = 0  ( 0 )  Shells   = 0  ( 0 )   Solids   = 0 ( 0 )
-NBSHAPES    : Solid    = 98  ( 98 )  Shell    = 98  ( 98 )  Face     = 1506  ( 1506 )   Summary  = 9262  ( 9257 )
+NBSHAPES    : Solid    = 98  ( 98 )  Shell    = 98  ( 98 )  Face     = 1506  ( 1506 )   Summary  = 9261  ( 9257 )
 STATSHAPE   : Solid    = 272  ( 272 )  Shell    = 272  ( 272 )  Face     = 3216  ( 3216 )   FreeWire = 0  ( 0 )   FreeEdge  = 0 ( 0 )   SharedEdge = 3315  ( 3311 )
-TOLERANCE   : MaxTol   =   0.9562231856  (      3.3196868 )  AvgTol   =  0.0007127405962  (  0.003722159881 )
+TOLERANCE   : MaxTol   =   0.9562231856  (      3.3196868 )  AvgTol   =  0.0007127401639  (  0.003722159846 )
 LABELS      : N0Labels = 230  ( 230 )  N1Labels = 1909  ( 1909 )  N2Labels = 0  ( 0 )   TotalLabels = 2139  ( 2139 )   NameLabels = 633  ( 633 )   ColorLabels = 1506  ( 1506 )   LayerLabels = 0  ( 0 )
 PROPS       : Centroid = 98  ( 98 )  Volume   = 98  ( 98 )  Area     = 98  ( 98 )
 NCOLORS     : NColors  = 6  ( 6 )