Salome HOME
refs #484: corrected dump to python
authorasl <asl@opencascade.com>
Tue, 28 Oct 2014 09:14:00 +0000 (09:14 +0000)
committerasl <asl@opencascade.com>
Tue, 28 Oct 2014 09:14:00 +0000 (09:14 +0000)
src/HYDROData/HYDROData_CalculationCase.cxx
src/HYDROData/HYDROData_CalculationCase.h

index 5c5760130d4124f270dfc528dd99a1e8612f68f8..b9c17a895048e8d78dcd6ff0f56b8d03f421540f 100644 (file)
@@ -117,6 +117,7 @@ void HYDROData_CalculationCase::SetName( const QString& theName )
 QStringList HYDROData_CalculationCase::DumpToPython( MapOfTreatedObjects& theTreatedObjects ) const
 {
   QStringList aResList = dumpObjectCreation( theTreatedObjects );
+  aResList.prepend( "# Calculation case" );
 
   QString aCalculName = GetObjPyName();
 
@@ -156,18 +157,16 @@ QStringList HYDROData_CalculationCase::DumpToPython( MapOfTreatedObjects& theTre
 
     aResList << QString( "%1.AddGeometryGroup( %2 );" ).arg( aCalculName ).arg( aGroupName );
   }
-  aResList << QString( "" );
 
   Handle(HYDROData_PolylineXY) aBoundaryPolyline = GetBoundaryPolyline();
   setPythonReferenceObject( theTreatedObjects, aResList, aBoundaryPolyline, "SetBoundaryPolyline" );
-  aResList << QString( "" );
 
   if( aMode==AUTOMATIC )
     DumpRulesToPython( aCalculName, aResList );
 
   aResList << QString( "" );
+  aResList << "# Start the algorithm of the partition and assignment";
   aResList << QString( "%1.Update();" ).arg( aCalculName );
-  aResList << QString( "" );
 
   if( aMode==MANUAL )
   {
@@ -197,10 +196,56 @@ QStringList HYDROData_CalculationCase::DumpToPython( MapOfTreatedObjects& theTre
     }
   }
 
+  // Export calculation case
+  aResList << QString( "" );
+  aResList << "# Export of the calculation case";
+  QString aStudyName = "theStudy";
+  QString anEntryVar = aCalculName + "_entry";
+  aResList << QString( "%1 = %2.Export( %3._get_StudyId() )" ).arg( anEntryVar ).arg( aCalculName ).arg( aStudyName );
+
+  // Get geometry object and print debug information
+  aResList << "";
+  aResList << "# Get geometry shape and print debug information";
+  aResList << "import GEOM";
+  aResList << QString( "print \"Entry:\", %1" ).arg( anEntryVar );
+  QString aGeomShapeName = aCalculName + "_geom";
+  aResList << QString( "%1 = salome.IDToObject( str( %2 ) )" ).arg( aGeomShapeName ).arg( anEntryVar );
+  aResList << QString( "print \"Geom shape:\", %1" ).arg( aGeomShapeName );
+  aResList << QString( "print \"Geom shape name:\", %1.GetName()" ).arg( aGeomShapeName );
+
+  DumpSampleMeshing( aResList, aStudyName, aGeomShapeName, aCalculName+"_mesh" );
+
   aResList << QString( "" );
   return aResList;
 }
 
+void HYDROData_CalculationCase::DumpSampleMeshing( QStringList& theResList,
+                                                   const QString& theStudyName,
+                                                   const QString& theGeomShapeName,
+                                                   const QString& theMeshName ) const
+{
+  theResList << "";
+  theResList << "# Meshing";
+  theResList << "import SMESH, SALOMEDS";
+  theResList << "from salome.smesh import smeshBuilder";
+
+  theResList << QString( "smesh = smeshBuilder.New( %1 )" ).arg( theStudyName );
+  theResList << QString( "%1 = smesh.Mesh( %2 )" ).arg( theMeshName ).arg( theGeomShapeName );
+  theResList << QString( "MEFISTO_2D = %1.Triangle( algo=smeshBuilder.MEFISTO )" ).arg( theMeshName );
+  theResList << "Max_Element_Area_1 = MEFISTO_2D.MaxElementArea( 10 )";
+  theResList << QString( "Regular_1D = %1.Segment()" ).arg( theMeshName );
+  theResList << "Max_Size_1 = Regular_1D.MaxSize(10)";
+  theResList << QString( "isDone = %1.Compute()" ).arg( theMeshName );
+
+  theResList << "";
+  theResList << "# Set names of Mesh objects";
+  theResList << "smesh.SetName( MEFISTO_2D.GetAlgorithm(), 'MEFISTO_2D' )";
+  theResList << "smesh.SetName( Regular_1D.GetAlgorithm(), 'Regular_1D' )";
+  theResList << "smesh.SetName( Max_Size_1, 'Max Size_1' )";
+  theResList << "smesh.SetName( Max_Element_Area_1, 'Max. Element Area_1' )";
+  theResList << QString( "smesh.SetName( %1.GetMesh(), '%1' )" ).arg( theMeshName );
+}
+
 HYDROData_SequenceOfObjects HYDROData_CalculationCase::GetAllReferenceObjects() const
 {
   HYDROData_SequenceOfObjects aResSeq = HYDROData_Entity::GetAllReferenceObjects();
index 8104fbb261ab4b664ef431e9ae9ff1572c222864..4f0ed90f7ed4aa8b15d77e4a788a0145b6ab38f4 100644 (file)
@@ -383,6 +383,11 @@ protected:
    */
   HYDRODATA_EXPORT ~HYDROData_CalculationCase();
 
+  void DumpSampleMeshing( QStringList& theScript,
+                          const QString& theStudyName,
+                          const QString& theGeomShapeName,
+                          const QString& theMeshName ) const;
+
 private:
   HYDROData_Warning myLastWarning;
 };