]> OCCT Git - occt-copy.git/commitdiff
0032228: Data Exchange - Shape becomes invalid after STEP export then import CR0-740-ZLR
authordpasukhi <dpasukhi@opencascade.com>
Wed, 14 Apr 2021 08:32:47 +0000 (11:32 +0300)
committerazv <azv@opencascade.com>
Thu, 27 May 2021 20:10:29 +0000 (23:10 +0300)
Location of edge is applied to geom curve before analysis of vertices projections

src/TopoDSToStep/TopoDSToStep_MakeStepEdge.cxx
tests/bugs/step/bug32228 [new file with mode: 0644]

index 8cdc167859ac092571b54c01522021c5a7dc4678..bfb8bb350862815db80762e04f5d890a93adc37d 100644 (file)
@@ -187,7 +187,8 @@ void TopoDSToStep_MakeStepEdge::Init(const TopoDS_Edge& aEdge,
   Handle(Geom_Curve) C = CA.Curve().Curve();
   if (!C.IsNull()) {
     C = Handle(Geom_Curve)::DownCast(C->Copy());
-   
+    gp_Trsf Tr1 = CA.Trsf();
+    C->Transform(Tr1);
     if (C->IsPeriodic())
     {
       Standard_Real dpar = CA.LastParameter() - CA.FirstParameter();
@@ -236,8 +237,6 @@ void TopoDSToStep_MakeStepEdge::Init(const TopoDS_Edge& aEdge,
         }
       }
     }
-    gp_Trsf Tr1 = CA.Trsf();
-    C->Transform(Tr1);
     GeomToStep_MakeCurve MkCurve(C);
     Gpms = MkCurve.Value();
   }
diff --git a/tests/bugs/step/bug32228 b/tests/bugs/step/bug32228
new file mode 100644 (file)
index 0000000..3358570
--- /dev/null
@@ -0,0 +1,17 @@
+puts "# ====================================================================="
+puts "# 0032228: Data Exchange - Shape becomes invalid after STEP export then import"
+puts "# ====================================================================="
+puts ""
+
+# Reading file
+brestore [locate_data_file bug32228.brep] s
+set aTmpFile "$imagedir/${casename}.brep"
+testwritestep "$aTmpFile" s
+testreadstep  "$aTmpFile" s1
+file delete   "$aTmpFile"
+
+# Checking
+checknbshapes s1 -vertex 47 -edge 72 -wire 35 -face 28
+checkshape s1 f
+checkmaxtol s1 -ref 1.e-7
+checkprops s1 -v 586991 -deps 0.01