mirror of
https://git.salome-platform.org/gitpub/modules/smesh.git
synced 2025-01-18 15:50:33 +05:00
0021308: EDF 1923 SMESH: Remove hard-coded dependency of the external mesh plugins from the SMESH module
* Improve documentation for meshing plug-ins (in particular, dynamically added methods)
This commit is contained in:
parent
7722c85978
commit
a4ca8bc3bc
@ -36,34 +36,48 @@ import geompy
|
|||||||
import smeshDC
|
import smeshDC
|
||||||
from smeshDC import *
|
from smeshDC import *
|
||||||
|
|
||||||
# get instance of class smeshDC
|
# retrieve SMESH engine in try/except block
|
||||||
smesh = salome.lcc.FindOrLoadComponent("FactoryServer", "SMESH")
|
# to avoid problems in some cases, e.g. when generating documentation
|
||||||
smesh.init_smesh(salome.myStudy,geompy.geom)
|
try:
|
||||||
|
# get instance of class smeshDC
|
||||||
|
smesh = salome.lcc.FindOrLoadComponent( "FactoryServer", "SMESH" )
|
||||||
|
smesh.init_smesh( salome.myStudy, geompy.geom )
|
||||||
|
except:
|
||||||
|
smesh = None
|
||||||
|
pass
|
||||||
|
|
||||||
# load plugins
|
# load plugins and add dynamically generated methods to Mesh class,
|
||||||
|
# the same for for global variables declared by plug-ins
|
||||||
from smeshDC import Mesh, algoCreator
|
from smeshDC import Mesh, algoCreator
|
||||||
for pluginName in os.environ["SMESH_MeshersList"].split(":"):
|
for pluginName in os.environ[ "SMESH_MeshersList" ].split( ":" ):
|
||||||
|
#
|
||||||
|
pluginName += "DC"
|
||||||
|
try:
|
||||||
|
exec( "from %s import *" % pluginName )
|
||||||
|
except Exception, e:
|
||||||
|
print "Exception while loading %s: %s" % ( pluginName, e )
|
||||||
|
continue
|
||||||
|
exec( "import %s" % pluginName )
|
||||||
|
plugin = eval( pluginName )
|
||||||
|
|
||||||
pluginName += "DC"
|
# add methods creating algorithms to Mesh
|
||||||
try:
|
for k in dir( plugin ):
|
||||||
exec("from %s import *" % pluginName )
|
if k[0] == '_': continue
|
||||||
except Exception, e:
|
algo = getattr( plugin, k )
|
||||||
print "Exception while loading %s: %s" % ( pluginName, e )
|
if type( algo ).__name__ == 'classobj' and hasattr( algo, "meshMethod" ):
|
||||||
continue
|
if not hasattr( Mesh, algo.meshMethod ):
|
||||||
exec("import %s" % pluginName )
|
setattr( Mesh, algo.meshMethod, algoCreator() )
|
||||||
plugin = eval(pluginName)
|
pass
|
||||||
|
getattr( Mesh, algo.meshMethod ).add( algo )
|
||||||
|
pass
|
||||||
|
pass
|
||||||
|
pass
|
||||||
|
del pluginName
|
||||||
|
|
||||||
# add methods creating algorithms to Mesh
|
# export the methods of smeshDC
|
||||||
for k in dir(plugin):
|
if smesh:
|
||||||
if k[0] == '_':continue
|
for k in dir( smesh ):
|
||||||
algo = getattr(plugin,k)
|
if k[0] == '_': continue
|
||||||
if type( algo ).__name__ == 'classobj' and hasattr( algo, "meshMethod"):
|
globals()[k] = getattr( smesh, k )
|
||||||
if not hasattr( Mesh, algo.meshMethod ):
|
del k
|
||||||
setattr( Mesh, algo.meshMethod, algoCreator())
|
pass
|
||||||
getattr( Mesh, algo.meshMethod ).add( algo )
|
|
||||||
|
|
||||||
# Export the methods of smeshDC
|
|
||||||
for k in dir(smesh):
|
|
||||||
if k[0] == '_':continue
|
|
||||||
globals()[k]=getattr(smesh,k)
|
|
||||||
del k
|
|
||||||
|
Loading…
Reference in New Issue
Block a user