X-Git-Url: http://git.salome-platform.org/gitweb/?p=modules%2Fsmesh.git;a=blobdiff_plain;f=src%2FSMESH_PY%2Fsmeshstudytools.py;h=dc5ce1c066952a768bdfef1a167b727bebd7d1f5;hp=b5a0a3e6d936508407299e6b3896540fcdee93e6;hb=HEAD;hpb=b0a908c0d20341651771d0249fb10882f54b2aad diff --git a/src/SMESH_PY/smeshstudytools.py b/src/SMESH_PY/smeshstudytools.py index b5a0a3e6d..53b58b4c2 100644 --- a/src/SMESH_PY/smeshstudytools.py +++ b/src/SMESH_PY/smeshstudytools.py @@ -1,6 +1,6 @@ # -*- 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 @@ -18,8 +18,18 @@ # # 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. """ @@ -31,6 +41,15 @@ from salome.kernel.deprecation import is_called_by_sphinx 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 @@ -56,13 +75,18 @@ class SMeshStudyTools: 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. """ - 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`. @@ -81,34 +105,38 @@ class SMeshStudyTools: meshItem = salome.ObjectToSObject(meshObj) return meshItem - + ## Returns the MESH object currently selected in the active study. def getMeshObjectSelected(self): - ''' + """ Returns the MESH object currently selected in the active study. - ''' + """ 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): - ''' + """ 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 - 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): - ''' + """ Returns the SMESH object associated to the specified SObject, (the SObject is an item in the objects browser). - ''' + """ if sobject is None: return None @@ -116,16 +144,18 @@ class SMeshStudyTools: 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): - ''' + """ 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(): - print "displayMeshObject: no desktop available" + print("displayMeshObject: no desktop available") return self.smeshGui.CreateAndDisplayActor(entry) @@ -153,17 +183,16 @@ class SMeshStudyTools: def TEST_createBoxMesh(): - theStudy = helper.getActiveStudy() 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 - smesh = smeshBuilder.New(theStudy) + smesh = smeshBuilder.New() 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() + if not isDone: + raise Exception("Error when computing Mesh") smesh.SetName(boxmesh.GetMesh(), 'boxmesh') if salome.sg.hasDesktop(): - salome.sg.updateObjBrowser(1) + salome.sg.updateObjBrowser() # # Definitions: