From f6c3a1e96c5af69ec6f9c085da1ff509e3c63e49 Mon Sep 17 00:00:00 2001 From: vsr Date: Tue, 6 Oct 2009 10:29:14 +0000 Subject: [PATCH] Issue 0020520: [CEA 358] Import - Export Sauv files in SMESH --- src/SMESHGUI/SMESHGUI.cxx | 63 ++++++++++++++++++++++++++++++++---- src/SMESHGUI/SMESH_msg_en.ts | 24 ++++++++++++++ 2 files changed, 80 insertions(+), 7 deletions(-) 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 @@ MEN_EXPORT_MED Export to MED File + + MEN_EXPORT_SAUV + Export to SAUV (ASCII) file + MEN_EXPORT_STL Export to STL File @@ -397,6 +401,10 @@ MEN_MED MED file + + MEN_SAUV + SAUV (ASCII) file + MEN_MERGE Merge Nodes @@ -2143,6 +2151,10 @@ Consider saving your work before application crash STB_EXPORT_MED Export to MED file + + STB_EXPORT_SAUV + Export to SAUV (ASCII) file + STB_EXPORT_STL Export to STL file @@ -2217,6 +2229,10 @@ Consider saving your work before application crash STB_MED Import MED file + + STB_SAUV + Import SAUV (ASCII) file + STB_MERGE Merge nodes @@ -2641,6 +2657,10 @@ Consider saving your work before application crash TOP_EXPORT_MED Export to MED file + + TOP_EXPORT_SAUV + Export to SAUV (ASCII) file + TOP_EXPORT_STL Export to STL file @@ -2715,6 +2735,10 @@ Consider saving your work before application crash TOP_MED Import MED file + + TOP_SAUV + Import SAUV (ASCII) file + TOP_MERGE Merge nodes -- 2.39.2