]> OCCT Git - occt.git/commitdiff
0029564: STEP Import and Export failure IR-2020-11-27
authorskl <skl@opencascade.com>
Mon, 2 Nov 2020 16:52:44 +0000 (19:52 +0300)
committerbugmaster <bugmaster@opencascade.com>
Sat, 28 Nov 2020 09:36:49 +0000 (12:36 +0300)
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.

src/ShapeFix/ShapeFix_Face.cxx
src/StepToTopoDS/StepToTopoDS_TranslateFace.cxx
tests/bugs/step/bug29564 [new file with mode: 0644]
tests/de/step_1/E6
tests/de/step_2/A3
tests/de/step_2/A5
tests/de/step_2/D2
tests/de/step_3/A5
tests/de/step_3/A9
tests/de/step_3/D8

index 32dede1de679469bd185dd9d08a2307cb2389907..f0ad0e3ed1a42756154fc801014613778fcccbc4 100644 (file)
@@ -51,6 +51,7 @@
 #include <Geom_RectangularTrimmedSurface.hxx>
 #include <Geom_SphericalSurface.hxx>
 #include <Geom_Surface.hxx>
+#include <Geom_ToroidalSurface.hxx>
 #include <GeomAdaptor_HSurface.hxx>
 #include <GProp_GProps.hxx>
 #include <IntRes2d_Domain.hxx>
@@ -118,9 +119,9 @@ static Standard_Boolean IsSurfaceUVInfinite(const Handle(Geom_Surface)& theSurf)
           Precision::IsInfinite(VMax)   );
 }
 
-static Standard_Boolean IsSurfaceUVPeriodic(const Handle(Geom_Surface)& theSurf)
+static Standard_Boolean IsSurfaceUVPeriodic(const Handle(GeomAdaptor_HSurface)& theSurf)
 {
-  return theSurf->IsUPeriodic() && theSurf->IsVPeriodic();
+       return ( (theSurf->IsUPeriodic() && theSurf->IsVPeriodic()) || theSurf->GetType() == GeomAbs_Sphere);
 }
 
 //=======================================================================
@@ -855,7 +856,7 @@ Standard_Boolean ShapeFix_Face::FixAddNaturalBound()
   }
 
   // check if surface is double-closed and fix is needed
-  if ( !IsSurfaceUVPeriodic (mySurf->Surface()) || ShapeAnalysis::IsOuterBound (myFace) ) 
+  if ( !IsSurfaceUVPeriodic (mySurf->Adaptor3d()) || ShapeAnalysis::IsOuterBound (myFace) ) 
     return Standard_False;
 
   // Collect informations on free intervals in U and V
@@ -866,6 +867,7 @@ Standard_Boolean ShapeFix_Face::FixAddNaturalBound()
   intV.Append ( gp_Pnt2d(SVF, SVL) );
   Standard_Integer nb = ws.Length();
   Standard_Integer i;
+  
   for ( i=1; i <= nb; i ++) {
     Standard_Real Umin, Vmin, Umax, Vmax;
 //     Bnd_Box2d B;
@@ -877,12 +879,13 @@ Standard_Boolean ShapeFix_Face::FixAddNaturalBound()
     BRep_Builder aB;
     aB.Add( aWireFace, aw );
     ShapeAnalysis::GetFaceUVBounds(aWireFace, Umin, Umax, Vmin, Vmax);
+    
     // PTV 01.11.2002 ACIS907, OCC921 end
     if ( mySurf->IsUClosed() ) CutInterval ( intU, gp_Pnt2d(Umin,Umax), SUL-SUF );
     if ( mySurf->IsVClosed() ) CutInterval ( intV, gp_Pnt2d(Vmin,Vmax), SVL-SVF );
     centers.Append ( gp_Pnt2d ( 0.5*(Umin+Umax), 0.5*(Vmin+Vmax) ) );
   }
-
+   
   // find best interval and thus compute shift
   gp_Pnt2d shift(0.,0.);
   if ( mySurf->IsUClosed() ) shift.SetX ( FindBestInterval ( intU ) );
@@ -1084,8 +1087,8 @@ Standard_Boolean ShapeFix_Face::FixOrientation(TopTools_DataMapOfShapeListOfShap
   // if no wires, just do nothing
   if ( nb <= 0) return Standard_False;
   Standard_Integer nbInternal=0;
-  Standard_Boolean isAddNaturalBounds = (NeedFix (myFixAddNaturalBoundMode) && 
-                                         IsSurfaceUVPeriodic (mySurf->Surface()));
+
+  Standard_Boolean isAddNaturalBounds = (NeedFix (myFixAddNaturalBoundMode) && IsSurfaceUVPeriodic(mySurf->Adaptor3d()));
   TColStd_SequenceOfInteger aSeqReversed;
   // if wire is only one, check its orientation
   if ( nb == 1 ) {
@@ -1095,19 +1098,17 @@ Standard_Boolean ShapeFix_Face::FixOrientation(TopTools_DataMapOfShapeListOfShap
     TopoDS_Face af = TopoDS::Face ( dummy );
     af.Orientation ( TopAbs_FORWARD );
     B.Add (af,ws.Value(1));
+    
     if ((myFixAddNaturalBoundMode != 1 ||
-         !IsSurfaceUVPeriodic (mySurf->Surface())    ) &&
-        !ShapeAnalysis::IsOuterBound (af)                )
+      !IsSurfaceUVPeriodic(mySurf->Adaptor3d())) &&
+      !ShapeAnalysis::IsOuterBound(af))
     {
-      Handle(ShapeExtend_WireData) sbdw = 
-        new ShapeExtend_WireData (TopoDS::Wire(ws.Value(1)));
-      sbdw->Reverse ( myFace );
-      ws.SetValue ( 1, sbdw->Wire() );
-      SendWarning ( sbdw->Wire(), Message_Msg ( "FixAdvFace.FixOrientation.MSG5" ) );// Wire on face was reversed
+      Handle(ShapeExtend_WireData) sbdw =
+        new ShapeExtend_WireData(TopoDS::Wire(ws.Value(1)));
+      sbdw->Reverse(myFace);
+      ws.SetValue(1, sbdw->Wire());
+      SendWarning(sbdw->Wire(), Message_Msg("FixAdvFace.FixOrientation.MSG5"));// Wire on face was reversed
       done = Standard_True;
-#ifdef OCCT_DEBUG
-      std::cout<<"Wire reversed"<<std::endl; // mise au point !
-#endif
     }
   }
   // in case of several wires, perform complex analysis
@@ -1318,7 +1319,7 @@ Standard_Boolean ShapeFix_Face::FixOrientation(TopTools_DataMapOfShapeListOfShap
         MW.Bind(aw,IntWires);
         if(sta==TopAbs_OUT) {
           NbOuts++;
-          if(staout==TopAbs_IN) {
+          if(staout==TopAbs_IN ) {
             // wire is OUT but InfinitePoint is IN => need to reverse
             ShapeExtend_WireData sewd (aw);
             sewd.Reverse(myFace);
index 6dbd42ce3695885636b6368318296b3ea8049de4..8bf7a3ee4f38111a12996f9875018498843ccd9c 100644 (file)
@@ -140,8 +140,8 @@ void StepToTopoDS_TranslateFace::Init
   done = Standard_True;
   if (aTool.IsBound(FS)) {
     myResult = TopoDS::Face(aTool.Find(FS));
-    myError  = StepToTopoDS_TranslateFaceDone;
-    done     = Standard_True;
+    myError = StepToTopoDS_TranslateFaceDone;
+    done = Standard_True;
     return;
   }
   
@@ -251,35 +251,43 @@ void StepToTopoDS_TranslateFace::Init
           GeomSurf->IsKind (STANDARD_TYPE(Geom_BSplineSurface)) || 
           GeomSurf->IsKind (STANDARD_TYPE(Geom_SurfaceOfRevolution)))
       {
-        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;
+
+        //  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.
+        if (NbBnd == 1) {
+          BRepBuilderAPI_MakeFace mf(GeomSurf, Precision());
+          for (TopoDS_Iterator it(mf); it.More(); it.Next())
+            B.Add(F, it.Value());
+
         }
-      }
-      
-      if (GeomSurf->IsKind(STANDARD_TYPE(Geom_ToroidalSurface))) {
         continue;
+
       }
-      if (GeomSurf->IsKind(STANDARD_TYPE(Geom_Plane))) {
-        TP->AddWarning(VL, "VertexLoop on plane is ignored");
-        continue; //smh : BUC60809
-      }
-      myTranVL.SetPrecision(Precision());//gka
-      myTranVL.SetMaxTol(MaxTol());
-      myTranVL.Init(VL, aTool, NMTool);
-      if (myTranVL.IsDone()) {
-        B.Add(F, myTranVL.Value());
-      }
-      else {
-        TP->AddWarning(VL, " a VertexLoop not mapped to TopoDS");
-      }
+    
+    if (GeomSurf->IsKind(STANDARD_TYPE(Geom_ToroidalSurface))) {
+      continue;
+    }
+    if (GeomSurf->IsKind(STANDARD_TYPE(Geom_Plane))) {
+      TP->AddWarning(VL, "VertexLoop on plane is ignored");
+      continue; //smh : BUC60809
+    }
+    myTranVL.SetPrecision(Precision());//gka
+    myTranVL.SetMaxTol(MaxTol());
+    myTranVL.Init(VL, aTool, NMTool);
+    if (myTranVL.IsDone()) {
+      B.Add(F, myTranVL.Value());
+    }
+    else {
+      TP->AddWarning(VL, " a VertexLoop not mapped to TopoDS");
     }
+  }
     
-    // ----------------------
-    // The Loop is a PolyLoop
-    // ----------------------
+  // ----------------------
+  // The Loop is a PolyLoop
+  // ----------------------
     
     else if (Loop->IsKind(STANDARD_TYPE(StepShape_PolyLoop))) {
 //:S4136      STF.Closed() = Standard_False;
@@ -302,54 +310,54 @@ void StepToTopoDS_TranslateFace::Init
     // The Loop is an EdgeLoop
     // -----------------------
     
-    else if (Loop->IsKind(STANDARD_TYPE(StepShape_EdgeLoop))) {
-      //:S4136      if (STF.Closed()) {
-      //:S4136 Handle(StepShape_EdgeLoop) EL = 
-      //:S4136   Handle(StepShape_EdgeLoop)::DownCast(FaceBound->Bound());
-      //:S4136 if (EL->NbEdgeList() != 1) STF.Closed() = Standard_False;
-      //:S4136      }
-
-      TopoDS_Wire   W;
-      myTranEdgeLoop.SetPrecision(Precision());  //gka
-      myTranEdgeLoop.SetMaxTol(MaxTol());
-      myTranEdgeLoop.Init(FaceBound, F, GeomSurf, StepSurf, sameSense, aTool, NMTool);
-
-      if (myTranEdgeLoop.IsDone()) {
-        W = TopoDS::Wire(myTranEdgeLoop.Value());
-
-        // STEP Face_Surface orientation :
-        // if the topological orientation is opposite to the geometric
-        // orientation of the surface => the underlying topological 
-        // orientation are not implicitly reversed
-        // this is the case in CAS.CADE => If the face_surface is reversed,
-        // the wire orientation has to be explictly reversed
-        if (FaceBound->Orientation()) {
-          // *DTH*       if (sameSense || GeomSurf->IsKind(STANDARD_TYPE(Geom_Plane)))
-          W.Orientation(sameSense ? TopAbs_FORWARD : TopAbs_REVERSED);
-        }
-        else {
-          // *DTH*       if (sameSense || GeomSurf->IsKind(STANDARD_TYPE(Geom_Plane)))
-          W.Orientation(sameSense ? TopAbs_REVERSED : TopAbs_FORWARD);
-        }
-        // -----------------------------
-        // The Wire is added to the Face      
-        // -----------------------------
+  else if (Loop->IsKind(STANDARD_TYPE(StepShape_EdgeLoop))) {
+    //:S4136      if (STF.Closed()) {
+    //:S4136   Handle(StepShape_EdgeLoop) EL = 
+    //:S4136     Handle(StepShape_EdgeLoop)::DownCast(FaceBound->Bound());
+    //:S4136   if (EL->NbEdgeList() != 1) STF.Closed() = Standard_False;
+    //:S4136      }
 
-        B.Add(F, W);
+    TopoDS_Wire   W;
+    myTranEdgeLoop.SetPrecision(Precision());  //gka
+    myTranEdgeLoop.SetMaxTol(MaxTol());
+    myTranEdgeLoop.Init(FaceBound, F, GeomSurf, StepSurf, sameSense, aTool, NMTool);
+
+    if (myTranEdgeLoop.IsDone()) {
+      W = TopoDS::Wire(myTranEdgeLoop.Value());
+
+      // STEP Face_Surface orientation :
+      // if the topological orientation is opposite to the geometric
+      // orientation of the surface => the underlying topological 
+      // orientation are not implicitly reversed
+      // this is the case in CAS.CADE => If the face_surface is reversed,
+      // the wire orientation has to be explictly reversed
+      if (FaceBound->Orientation()) {
+        // *DTH*         if (sameSense || GeomSurf->IsKind(STANDARD_TYPE(Geom_Plane)))
+        W.Orientation(sameSense ? TopAbs_FORWARD : TopAbs_REVERSED);
       }
       else {
-        // Il y a eu un probleme dans le mapping : On perd la Face
-        // (facon de parler ...) Pas de moyen aujourd hui de recuperer
-        // au moins toutes les geometries (Points, Courbes 3D, Surface)
-        TP->AddFail(Loop, " EdgeLoop not mapped to TopoDS");
-
-        // CKY JAN-97 : un Wire manque, eh bien on continue quand meme !!
-        //  sauf si OuterBound : la c est quand meme pas bien normal ...
-        if (FaceBound->IsKind(STANDARD_TYPE(StepShape_FaceOuterBound))) {
-          TP->AddWarning(FS, "No Outer Bound : Face not done");
-        }
-        continue;
+        // *DTH*         if (sameSense || GeomSurf->IsKind(STANDARD_TYPE(Geom_Plane)))
+        W.Orientation(sameSense ? TopAbs_REVERSED : TopAbs_FORWARD);
       }
+      // -----------------------------
+      // The Wire is added to the Face      
+      // -----------------------------
+
+      B.Add(F, W);
+    }
+    else {
+      // Il y a eu un probleme dans le mapping : On perd la Face
+      // (facon de parler ...) Pas de moyen aujourd hui de recuperer
+      // au moins toutes les geometries (Points, Courbes 3D, Surface)
+      TP->AddFail(Loop, " EdgeLoop not mapped to TopoDS");
+
+      // CKY JAN-97 : un Wire manque, eh bien on continue quand meme !!
+      //  sauf si OuterBound : la c est quand meme pas bien normal ...
+      if (FaceBound->IsKind(STANDARD_TYPE(StepShape_FaceOuterBound))) {
+        TP->AddWarning(FS, "No Outer Bound : Face not done");
+      }
+      continue;
+    }
     }    
     else { 
       // Type not yet implemented or non sens
diff --git a/tests/bugs/step/bug29564 b/tests/bugs/step/bug29564
new file mode 100644 (file)
index 0000000..94f38de
--- /dev/null
@@ -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
index aba133da5132e03cfa46f076cb3c90314c207a03..7cb558bba9b83576d7b563ebe6a1f67a66f62cb7 100755 (executable)
@@ -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 )
index c2038865d560a0dbcf468d966eb84be89d88d1ee..bf6afcb087e3a5a28784866cf1324a2362bd7540 100755 (executable)
@@ -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 )
index 99771835be4737ebcd9d4ecc9ab98b7a4a2122eb..c89d6bcb6e6a52fc4523354f7e28d1a53a094aac 100755 (executable)
@@ -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 )
index f4811c33152fa1a65ec8da3fa021cbd9fad3d107..57c69ff184d4c0a727fa1deb201930d3f778e216 100755 (executable)
@@ -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 )
index 7c2494c95d8c98a50fe7349a812b353ec6ae806c..b2559ed5f53721642e828758090657927c8acb0a 100755 (executable)
@@ -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 )
index 4e7d19d451b34075545142dbfc22c74fc9c4465c..1887ba4382c681c191ea26e716fbd4bfc2c7554e 100755 (executable)
@@ -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 )
index 9a3d46793b4cfd50a9c85dd58f6d74512e77ec7b..deba4e574b528f6acc0428784c3669c8b63a692c 100755 (executable)
@@ -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 )