1 # -*- coding: iso-8859-1 -*-
2 # Copyright (C) 2007-2015 CEA/DEN, EDF R&D, OPEN CASCADE
4 # Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
5 # CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS
7 # This library is free software; you can redistribute it and/or
8 # modify it under the terms of the GNU Lesser General Public
9 # License as published by the Free Software Foundation; either
10 # version 2.1 of the License, or (at your option) any later version.
12 # This library is distributed in the hope that it will be useful,
13 # but WITHOUT ANY WARRANTY; without even the implied warranty of
14 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
15 # Lesser General Public License for more details.
17 # You should have received a copy of the GNU Lesser General Public
18 # License along with this library; if not, write to the Free Software
19 # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
21 # See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
25 # Author : Francis KLOSS, OCC
37 import SMESH, SALOMEDS
38 from salome.smesh import smeshBuilder
40 # retrieve SMESH engine in try/except block
41 # to avoid problems in some cases, e.g. when generating documentation
43 # get instance of class smeshBuilder
44 engineSmesh = salome.lcc.FindOrLoadComponent( "FactoryServer", "SMESH" )
45 smesh = smeshBuilder.New(salome.myStudy, engineSmesh)
47 print "exception in smesh.py: instance creation failed"
51 # load plugins and add dynamically generated methods to Mesh class,
52 # the same for for global variables declared by plug-ins
53 from salome.smesh.smeshBuilder import *
54 from salome.smesh.smeshBuilder import Mesh, algoCreator
55 for pluginName in os.environ[ "SMESH_MeshersList" ].split( ":" ):
57 #print "pluginName: ", pluginName
58 pluginBuilderName = pluginName + "Builder"
60 exec( "from salome.%s.%s import *" % (pluginName, pluginBuilderName))
62 from salome_utils import verbose
63 if verbose(): print "Exception while loading %s: %s" % ( pluginBuilderName, e )
65 exec( "from salome.%s import %s" % (pluginName, pluginBuilderName))
66 plugin = eval( pluginBuilderName )
68 # add methods creating algorithms to Mesh
69 for k in dir( plugin ):
70 if k[0] == '_': continue
71 algo = getattr( plugin, k )
72 if type( algo ).__name__ == 'classobj' and hasattr( algo, "meshMethod" ):
73 if not hasattr( Mesh, algo.meshMethod ):
74 setattr( Mesh, algo.meshMethod, algoCreator() )
76 getattr( Mesh, algo.meshMethod ).add( algo )
82 # export the methods of smeshBuilder
84 for k in dir( smesh ):
85 if k[0] == '_': continue
86 globals()[k] = getattr( smesh, k )
91 ===============================================================================
93 Usage of smesh.py is deprecated in SALOME V7.2!
94 smesh.py will be removed in a future version!
96 The following changes in your scripts are required to avoid this message:
102 smesh.SetCurrentStudy(theStudy)
108 from salome.smesh import smeshBuilder
109 smesh = smeshBuilder.New(salome.myStudy)
111 you also need to modify some lines where smeshBuilder is used instead of smesh
113 algo=smesh.xxxx ==> algo=smeshBuilder.xxxx
115 See also SMESH User's Guide for more details
118 The smesh.py module works correctly only in the first created study.
119 It does not work in the second, third, etc studies!
121 ===============================================================================