diff --git a/src/SMESHGUI/SMESHGUI.cxx b/src/SMESHGUI/SMESHGUI.cxx
index 10e2d8820..356ccec84 100644
--- a/src/SMESHGUI/SMESHGUI.cxx
+++ b/src/SMESHGUI/SMESHGUI.cxx
@@ -174,6 +174,10 @@
else if ( theCommandID == 111 ) {
filter.append( QObject::tr( "DAT files (*.dat)" ) );
}
+ else if ( theCommandID == 115 ) {
+ filter.append( QObject::tr( "SAUV files (*.sauv *.sauve)" ) );
+ filter.append( QObject::tr( "All files (*)" ) );
+ }
QString anInitialPath = "";
if ( SUIT_FileDlg::getLastVisitedPath().isEmpty() )
@@ -287,6 +291,8 @@
switch ( theCommandID ) {
case 125:
case 122:
+ case 142:
+ case 143:
{
if (aMesh->HasDuplicatedGroupNamesMED()) {
int aRet = SUIT_MessageBox::warning
@@ -297,11 +303,25 @@
if (aRet != SUIT_MessageBox::Yes)
return;
}
- // PAL18696
- QString v21 (aMesh->GetVersionString(SMESH::MED_V2_1, 2));
- QString v22 (aMesh->GetVersionString(SMESH::MED_V2_2, 2));
- aFilterMap.insert( QString("MED ") + v21 + " (*.med)", SMESH::MED_V2_1 );
- aFilterMap.insert( QString("MED ") + v22 + " (*.med)", SMESH::MED_V2_2 );
+ switch ( theCommandID ) {
+ case 125:
+ case 122:
+ {
+ // PAL18696
+ QString v21 (aMesh->GetVersionString(SMESH::MED_V2_1, 2));
+ QString v22 (aMesh->GetVersionString(SMESH::MED_V2_2, 2));
+ aFilterMap.insert( QString("MED ") + v21 + " (*.med)", SMESH::MED_V2_1 );
+ aFilterMap.insert( QString("MED ") + v22 + " (*.med)", SMESH::MED_V2_2 );
+ }
+ break;
+ case 142:
+ case 143:
+ {
+ aFilterMap.insert("SAUV files (*.sauv *.sauve)", SMESH::MED_V2_2 );
+ aFilterMap.insert("All files (*)", SMESH::MED_V2_1 );
+ }
+ break;
+ }
}
break;
case 124:
@@ -368,7 +388,7 @@
if ( SUIT_FileDlg::getLastVisitedPath().isEmpty() )
anInitialPath = QDir::currentPath();
- if ( theCommandID != 122 && theCommandID != 125 && theCommandID != 140 && theCommandID != 141) {
+ if ( theCommandID != 122 && theCommandID != 125 && theCommandID != 140 && theCommandID != 141 && theCommandID != 142 && theCommandID != 143) {
if ( anInitialPath.isEmpty() ) anInitialPath = SUIT_FileDlg::getLastVisitedPath();
aFilename = SUIT_FileDlg::getFileName(SMESHGUI::desktop(), anInitialPath + QString("/") + anIObject->getName(),
aFilter, aTitle, false);
@@ -461,6 +481,26 @@
case 122:
aMesh->ExportToMED( aFilename.toLatin1().data(), toCreateGroups, aFormat );
break;
+ case 142:
+ case 143:
+ {
+ std::string file_out = aFilename.toLatin1().data();
+ std::string file_tmp = file_out + "_tmp.med";
+ std::string cmd;
+ aMesh->ExportToMED( file_tmp.c_str(), toCreateGroups, aFormat );
+#ifdef WNT
+ cmd = "%PYTHONBIN% ";
+#else
+ cmd = "python ";
+#endif
+ cmd += "-c \"";
+ cmd += "from medutilities import convert ; convert(r'" + file_tmp + "', 'MED', 'GIBI', 1, r'" + file_out + "')";
+ cmd += " ; ";
+ cmd += "from medutilities import my_remove ; my_remove(r'" + file_tmp + "')";
+ cmd += "\"";
+ system(cmd.c_str());
+ }
+ break;
case 124:
case 121:
aMesh->ExportDAT( aFilename.toLatin1().data() );
@@ -1384,6 +1424,7 @@ bool SMESHGUI::OnGUIEvent( int theCommandID )
case 113: // IMPORT
case 112:
case 111:
+ case 115:
{
if(checkLock(aStudy)) break;
::ImportMeshesFromFile(GetSMESHGen(),theCommandID);
@@ -1417,6 +1458,8 @@ bool SMESHGUI::OnGUIEvent( int theCommandID )
case 126:
case 140:
case 141:
+ case 142:
+ case 143:
{
::ExportMeshToFile(theCommandID);
break;
@@ -2650,7 +2693,7 @@ void SMESHGUI::createPopupItem( const int id,
const QString& clients,
const QString& types,
const QString& theRule,
- const int pId )
+ const int pId )
{
int parentId = pId;
if( pId!=-1 )
@@ -2696,15 +2739,18 @@ void SMESHGUI::initialize( CAM_Application* app )
createSMESHAction( 111, "DAT", "", (Qt::CTRL+Qt::Key_B) );
createSMESHAction( 112, "UNV", "", (Qt::CTRL+Qt::Key_U) );
createSMESHAction( 113, "MED", "", (Qt::CTRL+Qt::Key_M) );
+ createSMESHAction( 115, "SAUV" );
createSMESHAction( 114, "NUM" );
createSMESHAction( 121, "DAT" );
createSMESHAction( 122, "MED" );
createSMESHAction( 123, "UNV" );
createSMESHAction( 140, "STL" );
+ createSMESHAction( 142, "SAUV" );
createSMESHAction( 124, "EXPORT_DAT" );
createSMESHAction( 125, "EXPORT_MED" );
createSMESHAction( 126, "EXPORT_UNV" );
createSMESHAction( 141, "EXPORT_STL" );
+ createSMESHAction( 143, "EXPORT_SAUV" );
createSMESHAction( 150, "FILE_INFO" );
createSMESHAction( 33, "DELETE", "ICON_DELETE", Qt::Key_Delete );
createSMESHAction( 5105, "SEL_FILTER_LIB" );
@@ -2843,11 +2889,13 @@ void SMESHGUI::initialize( CAM_Application* app )
createMenu( 111, importId, -1 );
createMenu( 112, importId, -1 );
createMenu( 113, importId, -1 );
+ createMenu( 115, importId, -1 );
createMenu( 121, exportId, -1 );
createMenu( 122, exportId, -1 );
createMenu( 123, exportId, -1 );
createMenu( 140, exportId, -1 ); // export to stl STL
+ createMenu( 142, exportId, -1 );
createMenu( separator(), fileId, 10 );
@@ -3122,6 +3170,7 @@ void SMESHGUI::initialize( CAM_Application* app )
createPopupItem( 125, OB, mesh, only_one_non_empty ); // EXPORT_MED
createPopupItem( 126, OB, mesh, only_one_non_empty ); // EXPORT_UNV
createPopupItem( 141, OB, mesh, only_one_non_empty ); // EXPORT_STL
+ createPopupItem( 143, OB, mesh, only_one_non_empty ); // EXPORT_SAUV
//createPopupItem( 33, OB, subMesh + " " + group ); // DELETE
createPopupItem( 33, OB, mesh_group + " " + hyp_alg ); // DELETE
popupMgr()->insert( separator(), -1, 0 );
diff --git a/src/SMESHGUI/SMESH_msg_en.ts b/src/SMESHGUI/SMESH_msg_en.ts
index 7b4f62eb6..959a47634 100644
--- a/src/SMESHGUI/SMESH_msg_en.ts
+++ b/src/SMESHGUI/SMESH_msg_en.ts
@@ -313,6 +313,10 @@
Export to MED File
+
+
+ Export to SAUV (ASCII) file
+
Export to STL File
@@ -397,6 +401,10 @@
MED file
+
+
+ SAUV (ASCII) file
+
Merge Nodes
@@ -2143,6 +2151,10 @@ Consider saving your work before application crash
Export to MED file
+
+
+ Export to SAUV (ASCII) file
+
Export to STL file
@@ -2217,6 +2229,10 @@ Consider saving your work before application crash
Import MED file
+
+
+ Import SAUV (ASCII) file
+
Merge nodes
@@ -2641,6 +2657,10 @@ Consider saving your work before application crash
Export to MED file
+
+
+ Export to SAUV (ASCII) file
+
Export to STL file
@@ -2715,6 +2735,10 @@ Consider saving your work before application crash
Import MED file
+
+
+ Import SAUV (ASCII) file
+
Merge nodes