Salome HOME
Mantis issue 0021778: [CEA 612] MakeSolid on an unclosed shell in TUI
authorjfa <jfa@opencascade.com>
Mon, 6 Aug 2012 13:39:16 +0000 (13:39 +0000)
committerjfa <jfa@opencascade.com>
Mon, 6 Aug 2012 13:39:16 +0000 (13:39 +0000)
src/BuildGUI/BuildGUI_SolidDlg.cxx
src/GEOM_SWIG/geompyDC.py

index fcd5307ea7774cb9f106077cb8f85bd42533e204..e8f4f63fc64b3e9901518027142a2e32cd793897 100644 (file)
@@ -258,11 +258,13 @@ bool BuildGUI_SolidDlg::isValid (QString& msg)
   GEOM::MeasureOpPtr anOp;
   anOp.take(myGeomGUI->GetGeomGen()->GetIMeasureOperations(getStudyId()));
 
-  for ( int i = 0, n = myShells.count(); i < n && ok; i++ ) {
-    CORBA::String_var aRes = anOp->IsGoodForSolid(myShells[i].get());
-    if (strlen(aRes.in())) {
-      msg = QObject::tr(aRes.in()).arg(GEOMBase::GetName(myShells[i].get()));
-      ok = false;
+  if (!GroupSolid->CheckButton1->isChecked() || myShells.count() == 1) {
+    for (int i = 0, n = myShells.count(); i < n && ok; i++) {
+      CORBA::String_var aRes = anOp->IsGoodForSolid(myShells[i].get());
+      if (strlen(aRes.in())) {
+        msg = QObject::tr(aRes.in()).arg(GEOMBase::GetName(myShells[i].get()));
+        ok = false;
+      }
     }
   }
   return ok;
index 3e5ab3dcfe7f4d6bfee37956169e2b9597b8b39c..ca34d88932208da5a4e5bdb4caa1e9203a724ba9 100644 (file)
@@ -3016,7 +3016,7 @@ class geompyDC(GEOM._objref_GEOM_Gen):
         #  @return New GEOM.GEOM_Object, containing the created solid.
         #
         #  @ref tui_creation_solid "Example"
-        def MakeSolid(self,theShells):
+        def MakeSolid(self, theShells):
             """
             Create a solid, bounded by the given shells.
 
@@ -3027,6 +3027,12 @@ class geompyDC(GEOM._objref_GEOM_Gen):
                 New GEOM.GEOM_Object, containing the created solid.
             """
             # Example: see GEOM_TestAll.py
+            if len(theShells) == 1:
+                descr = self.MeasuOp.IsGoodForSolid(theShells[0])
+                #if len(descr) > 0:
+                #    raise RuntimeError, "MakeSolidShells : " + descr
+                if descr == "WRN_SHAPE_UNCLOSED":
+                    raise RuntimeError, "MakeSolidShells : Unable to create solid from unclosed shape"
             anObj = self.ShapesOp.MakeSolidShells(theShells)
             RaiseIfFailed("MakeSolidShells", self.ShapesOp)
             return anObj