]> OCCT Git - occt.git/commitdiff
Shape Healing, STP Import - Revolved shape in STEP file is imported inverted (#699)
authorikochetkova <irina.kochetkova@opencascade.com>
Thu, 4 Sep 2025 16:05:44 +0000 (17:05 +0100)
committerdpasukhi <dpasukhi@opencascade.com>
Sat, 6 Sep 2025 20:18:29 +0000 (21:18 +0100)
Make the degenerated torus bounded in two values of parameters processed as a regular to insert a seam edge properly.

src/ShapeFix/ShapeFix_Face.cxx
tests/bugs/step/gh_bug378 [new file with mode: 0644]

index 928a63bf1901746303206e3171d3d7003d0bb481..6876f39809159689a14e479855bca1426198fe8b 100644 (file)
@@ -1687,6 +1687,12 @@ Standard_Boolean ShapeFix_Face::FixMissingSeam()
   Handle(Geom_ToroidalSurface) aTorSurf = Handle(Geom_ToroidalSurface)::DownCast(mySurf->Surface());
   Standard_Boolean             anIsDegeneratedTor =
     (aTorSurf.IsNull() ? Standard_False : aTorSurf->MajorRadius() < aTorSurf->MinorRadius());
+  // if the second wire is not null, we don't need mark the torus as degenerated
+  // and should process it as a regular one.
+  if (anIsDegeneratedTor && !w2.IsNull())
+  {
+    anIsDegeneratedTor = Standard_False;
+  }
 
   if (w1.IsNull())
     return Standard_False;
diff --git a/tests/bugs/step/gh_bug378 b/tests/bugs/step/gh_bug378
new file mode 100644 (file)
index 0000000..b899a14
--- /dev/null
@@ -0,0 +1,8 @@
+puts "================================================"
+puts "Revolved shape in STEP file is imported inverted"
+puts "================================================"
+puts ""
+
+stepread [locate_data_file gh_bug378.stp] a *
+checkprops a_1 -v 10504.9
+