Salome HOME
[bos #40653][CEA] New mesh import export formats with meshio.
[modules/smesh.git] / src / SMESH_PY / smeshstudytools.py
index b5a0a3e6d936508407299e6b3896540fcdee93e6..53b58b4c2bea3761e514c94275ef98ff67b5ee28 100644 (file)
@@ -1,6 +1,6 @@
 # -*- coding: utf-8 -*-
 #
 # -*- coding: utf-8 -*-
 #
-# Copyright (C) 2007-2014  CEA/DEN, EDF R&D, OPEN CASCADE
+# Copyright (C) 2007-2024  CEA, EDF, OPEN CASCADE
 #
 # This library is free software; you can redistribute it and/or
 # modify it under the terms of the GNU Lesser General Public
 #
 # This library is free software; you can redistribute it and/or
 # modify it under the terms of the GNU Lesser General Public
 #
 # See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
 #
 #
 # See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
 #
+
+## \package smeshstudytools Python API to access SMESH objects in the study.
+
+## \defgroup smeshstudytools Accessing SMESH object in the study
+#  \{ 
+#  \details
+#  Module \b smeshstudytools provides a new class SMeshStudyTools to facilitate the
+#  use of mesh objects in Salome study.
+#  \}
+
 """
 """
-This module provides a new class :class:`SMeshStudyTools` to facilitate the
+This module provides a class :class:`SMeshStudyTools` to facilitate the
 use of mesh objects in Salome study.
 """
 
 use of mesh objects in Salome study.
 """
 
@@ -31,6 +41,15 @@ from salome.kernel.deprecation import is_called_by_sphinx
 if not is_called_by_sphinx():
   from salome.gui import helper
 
 if not is_called_by_sphinx():
   from salome.gui import helper
 
+## This class provides several methods to manipulate mesh objects in Salome
+#  study. The parameter \em studyEditor defines a \b StudyEditor
+#  object used to access the study. If \b None, the method returns a 
+#  \b StudyEditor object on the current study.
+#
+#  \b editor
+#  This instance attribute contains the underlying \b StudyEditor object. 
+#  It can be used to access the study but the attribute itself should not be modified.
+#  \ingroup smeshstudytools
 class SMeshStudyTools:
     """
     This class provides several methods to manipulate mesh objects in Salome
 class SMeshStudyTools:
     """
     This class provides several methods to manipulate mesh objects in Salome
@@ -56,13 +75,18 @@ class SMeshStudyTools:
         self.editor = studyEditor
         self.smeshGui = None
 
         self.editor = studyEditor
         self.smeshGui = None
 
-    def updateStudy(self, studyId=None):
+    ## This function updates the tools so that it works on the
+    #  specified study.
+    def updateStudy(self):
         """
         This function updates the tools so that it works on the
         specified study.
         """
         """
         This function updates the tools so that it works on the
         specified study.
         """
-        self.editor = getStudyEditor(studyId)
-        
+        self.editor = getStudyEditor()
+
+    ## Get the mesh item owning the mesh group \em meshGroupItem.
+    #  \param  meshGroupItem (SObject) mesh group belonging to the searched mesh.
+    #  \return The SObject corresponding to the mesh, or None if it was not found.        
     def getMeshFromGroup(self, meshGroupItem):
         """
         Get the mesh item owning the mesh group `meshGroupItem`.
     def getMeshFromGroup(self, meshGroupItem):
         """
         Get the mesh item owning the mesh group `meshGroupItem`.
@@ -81,34 +105,38 @@ class SMeshStudyTools:
             meshItem = salome.ObjectToSObject(meshObj)
         return meshItem
 
             meshItem = salome.ObjectToSObject(meshObj)
         return meshItem
 
-
+    ## Returns the MESH object currently selected in the active study.
     def getMeshObjectSelected(self):
     def getMeshObjectSelected(self):
-        '''
+        """
         Returns the MESH object currently selected in the active study.
         Returns the MESH object currently selected in the active study.
-        '''
+        """
         sobject, entry = helper.getSObjectSelected()
         meshObject = self.getMeshObjectFromEntry(entry)
         return meshObject
 
         sobject, entry = helper.getSObjectSelected()
         meshObject = self.getMeshObjectFromEntry(entry)
         return meshObject
 
+    ## Returns the MESH object associated to the specified entry,
+    #  (the entry is the identifier of an item in the objects browser).
     def getMeshObjectFromEntry(self, entry):
     def getMeshObjectFromEntry(self, entry):
-        '''
+        """
         Returns the MESH object associated to the specified entry,
         (the entry is the identifier of an item in the objects browser).
         Returns the MESH object associated to the specified entry,
         (the entry is the identifier of an item in the objects browser).
-        '''
+        """
         if entry is None:
             return None
         import SMESH
         from salome.smesh import smeshBuilder
         if entry is None:
             return None
         import SMESH
         from salome.smesh import smeshBuilder
-        smesh = smeshBuilder.New(self.editor.study)
-
-        meshObject=smesh.IDToObject(entry)
-        return meshObject
+        smesh = smeshBuilder.New()
 
 
+        meshObject=salome.IDToObject(entry)
+        return smesh.Mesh( meshObject )
+    
+    ## Returns the SMESH object associated to the specified \em SObject,
+    #  (the SObject is an item in the objects browser).
     def getMeshObjectFromSObject(self, sobject):
     def getMeshObjectFromSObject(self, sobject):
-        '''
+        """
         Returns the SMESH object associated to the specified SObject,
         (the SObject is an item in the objects browser).
         Returns the SMESH object associated to the specified SObject,
         (the SObject is an item in the objects browser).
-        '''
+        """
         if sobject is None:
             return None
         
         if sobject is None:
             return None
         
@@ -116,16 +144,18 @@ class SMeshStudyTools:
         meshObject = obj._narrow(SMESH.SMESH_Mesh)
         return meshObject
 
         meshObject = obj._narrow(SMESH.SMESH_Mesh)
         return meshObject
 
+    ## Display the SMESH object associated to the specified \em entry
+    #  (the entry is the identifier of an item in the objects browser).
     def displayMeshObjectFromEntry(self,entry):
     def displayMeshObjectFromEntry(self,entry):
-        '''
+        """
         Display the SMESH object associated to the specified entry
         (the entry is the identifier of an item in the objects browser).    
         Display the SMESH object associated to the specified entry
         (the entry is the identifier of an item in the objects browser).    
-        '''
+        """
         if self.smeshGui is None:
             self.smeshGui = salome.ImportComponentGUI("SMESH")
 
         if not helper.SalomeGUI.hasDesktop():
         if self.smeshGui is None:
             self.smeshGui = salome.ImportComponentGUI("SMESH")
 
         if not helper.SalomeGUI.hasDesktop():
-            print "displayMeshObject: no desktop available"
+            print("displayMeshObject: no desktop available")
             return
         self.smeshGui.CreateAndDisplayActor(entry)
 
             return
         self.smeshGui.CreateAndDisplayActor(entry)
 
@@ -153,17 +183,16 @@ class SMeshStudyTools:
 
 
 def TEST_createBoxMesh():
 
 
 def TEST_createBoxMesh():
-    theStudy = helper.getActiveStudy()
     
     import GEOM
     from salome.geom import geomBuilder
     
     import GEOM
     from salome.geom import geomBuilder
-    geompy = geomBuilder.New(theStudy)
+    geompy = geomBuilder.New()
     
     box = geompy.MakeBoxDXDYDZ(200, 200, 200)
 
     import SMESH, SALOMEDS
     from salome.smesh import smeshBuilder
     
     box = geompy.MakeBoxDXDYDZ(200, 200, 200)
 
     import SMESH, SALOMEDS
     from salome.smesh import smeshBuilder
-    smesh = smeshBuilder.New(theStudy
+    smesh = smeshBuilder.New() 
 
     from salome.StdMeshers import StdMeshersBuilder
     boxmesh = smesh.Mesh(box)
 
     from salome.StdMeshers import StdMeshersBuilder
     boxmesh = smesh.Mesh(box)
@@ -174,10 +203,12 @@ def TEST_createBoxMesh():
     Hexa_3D = smesh.CreateHypothesis('Hexa_3D')
     status = boxmesh.AddHypothesis(Hexa_3D)
     isDone = boxmesh.Compute()
     Hexa_3D = smesh.CreateHypothesis('Hexa_3D')
     status = boxmesh.AddHypothesis(Hexa_3D)
     isDone = boxmesh.Compute()
+    if not isDone:
+      raise Exception("Error when computing Mesh")
 
     smesh.SetName(boxmesh.GetMesh(), 'boxmesh')
     if salome.sg.hasDesktop():
 
     smesh.SetName(boxmesh.GetMesh(), 'boxmesh')
     if salome.sg.hasDesktop():
-        salome.sg.updateObjBrowser(1)
+        salome.sg.updateObjBrowser()
 
 #
 # Definitions:
 
 #
 # Definitions: