Version: 8.3.0
 All Classes Namespaces Files Functions Variables Groups Pages
Modifing Mesh Python scripts from SALOME 6 and before


In SALOME 7.2, the Python interface for Mesh has been slightly modified to offer new functionality:


Scripts generated for SALOME 6 and older versions must be adapted to work in SALOME 7.2 with full functionality.
The compatibility mode allows old scripts to work in almost all cases, but with a warning.

See also Modifying Geometry Python scripts from SALOME 6 and before

Salome initialisation must always be done as shown below
(salome_init() can be invoked safely several times):

import salome
salome.salome_init()

smesh initialisation is modified.
the old mode (from dump):

import smesh, SMESH, SALOMEDS
smesh.SetCurrentStudy(salome.myStudy)


the new mode:

import SMESH, SALOMEDS
from salome.smesh import smeshBuilder
smesh = smeshBuilder.New(salome.myStudy)

Of course, from smesh import * is no more possible.
You have to explicitely write smesh.some_method().

All algorithms have been transferred from the namespace smesh to the namespace smeshBuilder.
For instance:

MEFISTO_2D_1 = Mesh_1.Triangle(algo=smesh.MEFISTO,geom=Face_1)

is replaced by:

MEFISTO_2D_1 = Mesh_1.Triangle(algo=smeshBuilder.MEFISTO,geom=Face_1)


StdMeshers algorithms concerned are REGULAR, PYTHON, COMPOSITE, MEFISTO, Hexa, QUADRANGLE, RADIAL_QUAD.
SMESH Plugins provide such algorithms as: NETGEN, NETGEN_FULL, FULL_NETGEN, NETGEN_1D2D3D, NETGEN_1D2D, NETGEN_2D, NETGEN_3D.
If you use DISTENE plugins, you also have BLSURF, GHS3D, GHS3DPRL, Hexotic.

Some variables were available in both namespaces smesh and SMESH. Now they are available only in namespace SMESH.
The dump function used only the namespace SMESH, so, if your script was built with the help of the dump function, it should be already OK in this respect.

The most used variables concerned are:
NODE, EDGE, FACE, VOLUME, ALL.
FT_xxx, geom_xxx, ADD_xxx...


For instance:

srcFaceGroup = srcMesh.GroupOnGeom( midFace0, "src faces", smesh.FACE )
mesh.MakeGroup("Tetras",smesh.VOLUME,smesh.FT_ElemGeomType,"=",smesh.Geom_TETRA)
filter = smesh.GetFilter(smesh.FACE, smesh.FT_AspectRatio, smesh.FT_MoreThan, 6.5)

is replaced by:

srcFaceGroup = srcMesh.GroupOnGeom( midFace0, "src faces", SMESH.FACE )
mesh.MakeGroup("Tetras",SMESH.VOLUME,SMESH.FT_ElemGeomType,"=",SMESH.Geom_TETRA)
filter = smesh.GetFilter(SMESH.FACE, SMESH.FT_AspectRatio, SMESH.FT_MoreThan, 6.5)

The namespace smesh.smesh does not exist any more, use smesh instead.
For instance:

Compound1 = smesh.smesh.Concatenate([Mesh_inf.GetMesh(), Mesh_sup.GetMesh()], 0, 1, 1e-05)

is replaced by:

Compound1 = smesh.Concatenate([Mesh_inf.GetMesh(), Mesh_sup.GetMesh()], 0, 1, 1e-05)

If you need to import a SMESH Plugin explicitely, keep in mind that they are now located in separate namespaces.
For instance:

import StdMeshers
import NETGENPlugin
import BLSURFPlugin
import GHS3DPlugin
import HexoticPLUGIN

is replaced by:

from salome.StdMeshers import StdMeshersBuilder
from salome.NETGENPlugin import NETGENPluginBuilder
from salome.BLSURFPlugin import BLSURFPluginBuilder
from salome.GHS3DPlugin import GHS3DPluginBuilder
from salome.HexoticPLUGIN import HexoticPLUGINBuilder