diff --git a/src/GEOMGUI/GEOM_msg_en.ts b/src/GEOMGUI/GEOM_msg_en.ts
index eb6cd5a1c..9f9111384 100644
--- a/src/GEOMGUI/GEOM_msg_en.ts
+++ b/src/GEOMGUI/GEOM_msg_en.ts
@@ -579,6 +579,14 @@ Please, select face, shell or solid and try again
Face
+
+
+ Coordinate system
+
+
+
+ Global coordinate system
+
Local coordinate system
@@ -1063,6 +1071,10 @@ Please, select face, shell or solid and try again
Partition
+
+
+ The partition result is empty, please verify the reconstruction limit parameter.
+
Half-space partition
diff --git a/src/OperationGUI/OperationGUI_PartitionDlg.cxx b/src/OperationGUI/OperationGUI_PartitionDlg.cxx
index e52df271c..0b10ca391 100644
--- a/src/OperationGUI/OperationGUI_PartitionDlg.cxx
+++ b/src/OperationGUI/OperationGUI_PartitionDlg.cxx
@@ -34,9 +34,13 @@
#include
#include
#include
+#include
#include
#include
+#include
+#include
+
//=================================================================================
// class : OperationGUI_PartitionDlg()
// purpose : Constructs a OperationGUI_PartitionDlg which is a child of 'parent', with the
@@ -404,8 +408,21 @@ bool OperationGUI_PartitionDlg::execute( ObjectList& objects )
res = true;
}
- if ( !anObj->_is_nil() )
- objects.push_back( anObj._retn() );
+ if ( !anObj->_is_nil() ) {
+ TopoDS_Shape aShape;
+ GEOMBase::GetShape(anObj, aShape, TopAbs_SHAPE);
+ TopoDS_Iterator It (aShape, Standard_True, Standard_True);
+ int nbSubshapes=0;
+ for (; It.More(); It.Next())
+ nbSubshapes++;
+
+ if (nbSubshapes)
+ objects.push_back( anObj._retn() );
+ else
+ SUIT_MessageBox::warning(this,
+ QObject::tr("GEOM_ERROR"),
+ QObject::tr("GEOM_WRN_PARTITION_RESULT_EMPTY"));
+ }
return res;
}