Salome HOME
Fix dump for #17845 [EDF] Modifications of Automatic meshing
authoreap <eap@opencascade.com>
Tue, 5 Nov 2019 12:02:59 +0000 (15:02 +0300)
committereap <eap@opencascade.com>
Fri, 24 Jan 2020 16:09:38 +0000 (19:09 +0300)
idl/SMESH_Gen.idl
src/SMESHGUI/SMESHGUI_MeshOp.cxx
src/SMESHGUI/SMESH_msg_fr.ts
src/SMESH_I/SMESH_Gen_i.cxx
src/SMESH_I/SMESH_Gen_i.hxx

index 4dbeb2ef0bc5d026aae1e7865c0f54c3e719127e..f612bb08ec642e7fdd500edcdddcf353d93b5f2b 100644 (file)
@@ -173,6 +173,15 @@ module SMESH
                                        in string theLibName )
       raises ( SALOME::SALOME_Exception );
 
+    /*!
+     * Create a hypothesis and initialize it by average length
+     */
+    SMESH_Hypothesis CreateHypothesisByAverageLength( in string  theHypName,
+                                                      in string  theLibName,
+                                                      in double  theAverageLength,
+                                                      in boolean theQuadDominated)
+      raises ( SALOME::SALOME_Exception );
+
     /*!
      * Return a hypothesis holding parameter values corresponding either to the mesh
      * existing on the given geometry or to size of the geometry.
index d1a7d6305bf10a5f48475282f2053eb70e7bbe17..c33a4fe927cf45fac1d706b6b8439eef6b475445 100644 (file)
@@ -1103,12 +1103,18 @@ SMESHGUI_MeshOp::getInitParamsHypothesis( const QString&              aHypType,
     initParams.way = isSubMesh ? BY_MESH : BY_GEOM;
   }
 
-  SMESH::SMESH_Hypothesis_var hyp =
-    SMESHGUI::GetSMESHGen()->GetHypothesisParameterValues( aHypType.toUtf8().data(),
-                                                           aServerLib.toUtf8().data(),
-                                                           aMesh,
-                                                           aGeomVar,
-                                                           initParams );
+  SMESH::SMESH_Hypothesis_var hyp;
+  if ( initParams.way == BY_AVERAGE_LENGTH )
+    hyp = SMESHGUI::GetSMESHGen()->CreateHypothesisByAverageLength( aHypType.toUtf8().data(),
+                                                                    aServerLib.toUtf8().data(),
+                                                                    initParams.averageLength,
+                                                                    initParams.quadDominated );
+  else
+    hyp = SMESHGUI::GetSMESHGen()->GetHypothesisParameterValues( aHypType.toUtf8().data(),
+                                                                 aServerLib.toUtf8().data(),
+                                                                 aMesh,
+                                                                 aGeomVar,
+                                                                 initParams );
   if ( hyp->_is_nil() && initParams.way == BY_MESH )
   {
     initParams.way = BY_GEOM;
@@ -1898,7 +1904,7 @@ void SMESHGUI_MeshOp::onHypoSet( const QString& theSetName )
   HypothesesSet::SetType setType = aHypoSet->getPreferredHypType();
   if ( !aHypoSet->getAlgoAvailable( setType ))
   {
-    setType = setType == HypothesesSet::ALT ? HypothesesSet::MAIN : HypothesesSet::ALT;
+    setType = ( setType == HypothesesSet::ALT ) ? HypothesesSet::MAIN : HypothesesSet::ALT;
     if ( !aHypoSet->getAlgoAvailable( setType ))
       return;
   }
index fc4d2f56fd431821a296a794c1a012b611fa4733..11c2365156a69ec9b7c82ef6f3f18bf922b88fab 100644 (file)
@@ -53,7 +53,7 @@
     </message>
     <message>
         <source>GMF_BINARY_FILES_FILTER</source>
-        <translation>Fichier GMF binaires</translation>
+        <translation>Fichiers GMF binaires</translation>
     </message>
     <message>
         <source>STL_BIN_FILES_FILTER</source>
     </message>
     <message>
         <source>MIN_ELEM_EDGE</source>
-        <translation>Longueur arête Minimum</translation>
+        <translation>Longueur arête minimum</translation>
     </message>
     <message>
         <source>ASPECTRATIO_3D_ELEMENTS</source>
     </message>
     <message>
         <source>EDITERR_NO_MEDIUM_ON_GEOM</source>
-        <translation>Certain noeuds milieux (affichés en magenta) ne sont pas placés
+        <translation>Certain nœuds milieux (affichés en magenta) ne sont pas placés
         sur la géométrie pour éviter d&apos;obtenir des élements distordus.</translation>
     </message>
     <message>
     </message>
     <message>
         <source>DEFLECTION2D_FACES</source>
-        <translation>Deflection 2D</translation>
+        <translation>Déflection 2D</translation>
     </message>
     <message>
         <source>LENGTH_EDGES</source>
     </message>
     <message>
         <source>MAX_ELEMENT_LENGTH_2D</source>
-        <translation>Diamètre d&apos;éléments 2D</translation>
+        <translation>Diamètre des éléments 2D</translation>
     </message>
     <message>
         <source>MAX_ELEMENT_LENGTH_3D</source>
-        <translation>Diamètre Element 3D</translation>
+        <translation>Diamètre des éléments 3D</translation>
     </message>
     <message>
         <source>DEFLECTION_2D</source>
-        <translation>Deflection 2D</translation>
+        <translation>Déflection 2D</translation>
     </message>
     <message>
         <source>MEN_ADD</source>
     </message>
     <message>
         <source>MEN_CONV_TO_QUAD</source>
-        <translation>Convertir vers/de quadratique</translation>
+        <translation>Convertir vers/depuis quadratique</translation>
     </message>
     <message>
         <source>MEN_2D_FROM_3D</source>
     </message>
     <message>
         <source>MEN_0D_ON_ALL_NODES</source>
-        <translation>Eléments 0D sur des noeuds</translation>
+        <translation>Eléments 0D sur des nœuds</translation>
     </message>
     <message>
         <source>MEN_BALL</source>
     <message>
         <source>STB_OVERALL_MESH_QUALITY</source>
         <translation>Qualité du maillage global</translation>
-    </message>    
+    </message>
     <message>
         <source>STB_SPLIT_TO_TETRA</source>
         <translation>Eclater en tétraèdres</translation>
@@ -1803,7 +1803,7 @@ Voulez-vous continuer ?</translation>
     </message>
     <message>
         <source>SMESH_EXPORT_MED_VERSION_COLLISION</source>
-        <translation>La version MED du fichier &quot;%1&quot; n&apos;est pas connue 
+        <translation>La version MED du fichier &quot;%1&quot; n&apos;est pas connue
 ou ne correspond pas à la version choisie.
 Ecraser le fichier ?</translation>
     </message>
@@ -1855,8 +1855,7 @@ Voulez-vous continuer ?</translation>
     <message>
         <source>SMESH_FILE_EXISTS</source>
         <translation>Le fichier &quot;%1&quot; existe déjà.
-Voulez-vous le réécrire ou y ajouter 
-les données exportées ?</translation>
+Voulez-vous le réécrire ou y ajouter les données exportées ?</translation>
     </message>
     <message>
         <source>SMESH_FONT_ARIAL</source>
@@ -3154,7 +3153,7 @@ Utilisez le menu &quot;Visualiser une entité&quot; pour les afficher.
     </message>
     <message>
         <source>STB_0D_ON_ALL_NODES</source>
-        <translation>Créer des éléments 0D sur des noeuds</translation>
+        <translation>Créer des éléments 0D sur des nœuds</translation>
     </message>
     <message>
         <source>STB_ELEMS0D</source>
@@ -3846,7 +3845,7 @@ Utilisez le menu &quot;Visualiser une entité&quot; pour les afficher.
     </message>
     <message>
         <source>TOP_0D_ON_ALL_NODES</source>
-        <translation>Créer des éléments 0D sur des noeuds</translation>
+        <translation>Créer des éléments 0D sur des nœuds</translation>
     </message>
     <message>
         <source>TOP_ELEM0D</source>
@@ -4964,7 +4963,7 @@ Ouvrez une fenêtre VTK et essayez de nouveau</translation>
     <name>SMESHGUI_Add0DElemsOnAllNodesDlg</name>
     <message>
         <source>CAPTION</source>
-        <translation>Créer des éléments 0D sur des noeuds</translation>
+        <translation>Créer des éléments 0D sur des nœuds</translation>
     </message>
     <message>
         <source>OBJ_BTN</source>
@@ -5407,7 +5406,7 @@ Choisissez un groupe et essayez de nouveau</translation>
     </message>
     <message>
         <source>EDIT_SELECTED_NODE_GROUP</source>
-        <translation>Editer le groupe sélectionné de noeuds coïncidents</translation>
+        <translation>Editer le groupe sélectionné de nœuds coïncidents</translation>
     </message>
     <message>
         <source>EDIT_SELECTED_ELEM_GROUP</source>
@@ -5431,7 +5430,7 @@ Choisissez un groupe et essayez de nouveau</translation>
     </message>
     <message>
         <source>SEPARATE_CORNERS_AND_MEDIUM</source>
-        <translation>Pas de fusion du coin et des noeuds moyens des cellules quadratiques</translation>
+        <translation>Pas de fusion du coin et des nœuds moyens des cellules quadratiques</translation>
     </message>
     <message>
         <source>AVOID_MAKING_HOLES</source>
@@ -5439,7 +5438,7 @@ Choisissez un groupe et essayez de nouveau</translation>
     </message>
     <message>
         <source>KEEP_NODES</source>
-        <translation>Les noeuds à conserver pendant la fusion</translation>
+        <translation>Les nœuds à conserver pendant la fusion</translation>
     </message>
     <message>
         <source>GROUP_SUBMESH</source>
@@ -5533,7 +5532,7 @@ Choisissez un groupe et essayez de nouveau</translation>
     <name>SMESHGUI_ExtrusionDlg</name>
     <message>
         <source>EXTRUSION_0D</source>
-        <translation>Extrusion de noeuds</translation>
+        <translation>Extrusion de nœuds</translation>
     </message>
     <message>
         <source>EXTRUSION_1D</source>
@@ -5877,7 +5876,7 @@ Vérifiez la validité des informations données</translation>
     </message>
     <message>
         <source>NUMBEROFNODESINELEMENT</source>
-        <translation>Nombre de noeuds dans l&apos;élément</translation>
+        <translation>Nombre de nœuds dans l&apos;élément</translation>
     </message>
     <message>
         <source>COPY_FROM</source>
@@ -6463,6 +6462,30 @@ Indiquez-les et essayez de nouveau</translation>
         <source>CREATE_ALL_GROUPS</source>
         <translation>Créer tous les groupes définis dans la géométrie</translation>
     </message>
+    <message>
+        <source>3D: Tetrahedralization</source>
+        <translation>3D : Tétraèdres</translation>
+    </message>
+    <message>
+        <source>3D: Mapped Hexahedralization</source>
+        <translation>3D : Hexaèdres réglés</translation>
+    </message>
+    <message>
+        <source>3D: Free Hexahedralization</source>
+        <translation>3D : Hexaèdres libres</translation>
+    </message>
+    <message>
+        <source>2D: Triangulation</source>
+        <translation>2D : Triangles</translation>
+    </message>
+    <message>
+        <source>2D: Mapped Quadrangulation</source>
+        <translation>2D : Quadrangles réglés</translation>
+    </message>
+    <message>
+        <source>2D: Free Quadrangulation</source>
+        <translation>2D : Quadrangles libres</translation>
+    </message>
 </context>
 <context>
     <name>SMESHGUI_MeshOp</name>
@@ -6525,7 +6548,7 @@ Spécifiez-le et essayez de nouveau</translation>
     </message>
     <message>
         <source>MT_HEXAHEDRAL</source>
-        <translation>Hexahèdre</translation>
+        <translation>Hexaèdre</translation>
     </message>
     <message>
         <source>MT_TETRAHEDRAL</source>
@@ -6556,7 +6579,7 @@ Sélectionnez un maillage ou un sous-maillage et essayez de nouveau</translation
     </message>
     <message>
         <source>CONCURRENT_SUBMESH_APPEARS</source>
-        <translation> 
+        <translation>
 L&apos;algorithme assigné a la même priorité que celui assigné à un
 sous-maillage adjacent; ainsi l'algorithme à utiliser pour mailler la
 frontière partagée par les deux sous-maillages n&apos;est pas défini.
@@ -6588,7 +6611,7 @@ Il est probable que le fichier est corrompu ou contient un autre type de motif</
     </message>
     <message>
         <source>ERROR_OF_OPENING</source>
-        <translation>Il est impossible d&apos;ouvrir le fichier. 
+        <translation>Il est impossible d&apos;ouvrir le fichier.
 Vérifiez s&apos;il existe et si vous avez l&apos;autorisation</translation>
     </message>
     <message>
@@ -6638,7 +6661,7 @@ Il est impossible de lire les coordonnées des points dans le fichier</translati
     </message>
     <message>
         <source>ERR_READ_TOO_FEW_POINTS</source>
-        <translation>Il est impossible de charger le motif. 
+        <translation>Il est impossible de charger le motif.
 Il y a trop peu de points dans le fichier </translation>
     </message>
     <message>
@@ -8144,7 +8167,7 @@ en raison de leurs types incompatibles:
     <message>
         <source>SUBSHAPES_NOT_FOUND_MSG</source>
         <translation>
-Some sub-shapes not found in the new geometry. They are listed 
+Some sub-shapes not found in the new geometry. They are listed
 below along with dependent mesh objects that are marked with
 with red in the Object Browser.</translation>
     </message>
index 2b0e5d30c910e99bcd4a627c8799efd28a36f7e4..3e9465f2e2a462a84e72a9973cbdbdfa69ae0a9a 100644 (file)
@@ -749,6 +749,43 @@ SMESH::SMESH_Hypothesis_ptr SMESH_Gen_i::CreateHypothesis( const char* theHypNam
   return hyp._retn();
 }
 
+//================================================================================
+/*!
+ * \brief Return a hypothesis initialized by given average length.
+ *  \param theHypType - hypothesis type name
+ *  \param theLibName - plugin library name
+ *  \param theAverageLength - average length
+ *  \param theQuadDominated - is quad-dominated flag
+ *  \retval SMESH::SMESH_Hypothesis_ptr - the new hypothesis
+ */
+//================================================================================
+
+SMESH::SMESH_Hypothesis_ptr
+SMESH_Gen_i::CreateHypothesisByAverageLength( const char*    theHypType,
+                                              const char*    theLibName,
+                                              CORBA::Double  theAverageLength,
+                                              CORBA::Boolean theQuadDominated)
+  throw ( SALOME::SALOME_Exception )
+{
+  SMESH::HypInitParams initParams = { ::SMESH_Hypothesis::BY_AVERAGE_LENGTH,
+                                      theAverageLength, theQuadDominated };
+
+  SMESH::SMESH_Hypothesis_var hyp =
+    GetHypothesisParameterValues( theHypType, theLibName,
+                                  SMESH::SMESH_Mesh::_nil(),
+                                  GEOM::GEOM_Object::_nil(),
+                                  initParams );
+  SALOMEDS::SObject_wrap so = PublishHypothesis( hyp );
+
+  TPythonDump() << hyp << " = " << this << ".CreateHypothesisByAverageLength( '"
+                << theHypType << "', '"
+                << theLibName << "', "
+                << theAverageLength << ", "
+                << theQuadDominated << " )";
+
+  return hyp._retn();
+}
+
 //================================================================================
 /*!
  * \brief Return a hypothesis holding parameter values corresponding either to the mesh
@@ -764,7 +801,7 @@ SMESH::SMESH_Hypothesis_ptr SMESH_Gen_i::CreateHypothesis( const char* theHypNam
 //================================================================================
 
 SMESH::SMESH_Hypothesis_ptr
-SMESH_Gen_i::GetHypothesisParameterValues (const char*                 theHypType,
+SMESH_Gen_i::GetHypothesisParameterValuesconst char*                 theHypType,
                                            const char*                 theLibName,
                                            SMESH::SMESH_Mesh_ptr       theMesh,
                                            GEOM::GEOM_Object_ptr       theGeom,
@@ -844,6 +881,7 @@ SMESH_Gen_i::GetHypothesisParameterValues (const char*                 theHypTyp
       dflts._elemLength  = dflts._diagonal / myGen.GetBoundaryBoxSegmentation();
       dflts._shape       = &shape;
     }
+
     // let the hypothesis initialize it's values
     if ( hyp->SetParametersByDefaults( dflts, mesh ))
       return SMESH::SMESH_Hypothesis::_duplicate( tmpHyp );
index ec800b96566ebf9139b3557f90568d370c1d9757..6938708670924386c4bbd71536e7a0708d15d8a0 100644 (file)
@@ -163,12 +163,19 @@ public:
                                                 const char* theLibName)
     throw ( SALOME::SALOME_Exception );
 
+  SMESH::SMESH_Hypothesis_ptr CreateHypothesisByAverageLength( const char*    theHypType,
+                                                               const char*    theLibName,
+                                                               CORBA::Double  theAverageLength,
+                                                               CORBA::Boolean theQuadDominated)
+    throw ( SALOME::SALOME_Exception );
+
   // Return hypothesis of given type holding parameter values of the existing mesh
-  SMESH::SMESH_Hypothesis_ptr GetHypothesisParameterValues (const char*                 theHypType,
-                                                            const char*                 theLibName,
-                                                            SMESH::SMESH_Mesh_ptr       theMesh,
-                                                            GEOM::GEOM_Object_ptr       theGeom,
-                                                            const SMESH::HypInitParams& theWay)
+  SMESH::SMESH_Hypothesis_ptr
+    GetHypothesisParameterValues (const char*                 theHypType,
+                                  const char*                 theLibName,
+                                  SMESH::SMESH_Mesh_ptr       theMesh,
+                                  GEOM::GEOM_Object_ptr       theGeom,
+                                  const SMESH::HypInitParams& theWay)
     throw ( SALOME::SALOME_Exception );
 
   /*