2012-08-09 16:03:55 +06:00
|
|
|
# -*- coding: iso-8859-1 -*-
|
2013-04-01 19:05:47 +06:00
|
|
|
# Copyright (C) 2007-2013 CEA/DEN, EDF R&D, OPEN CASCADE
|
2009-02-17 10:27:49 +05:00
|
|
|
#
|
2012-08-09 16:03:55 +06:00
|
|
|
# Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
|
|
|
|
# CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS
|
2005-03-21 13:38:22 +05:00
|
|
|
#
|
2012-08-09 16:03:55 +06:00
|
|
|
# This library is free software; you can redistribute it and/or
|
|
|
|
# modify it under the terms of the GNU Lesser General Public
|
|
|
|
# License as published by the Free Software Foundation; either
|
|
|
|
# version 2.1 of the License.
|
2005-03-21 13:38:22 +05:00
|
|
|
#
|
2012-08-09 16:03:55 +06:00
|
|
|
# This library is distributed in the hope that it will be useful,
|
|
|
|
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
|
|
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
|
|
|
# Lesser General Public License for more details.
|
2005-03-21 13:38:22 +05:00
|
|
|
#
|
2012-08-09 16:03:55 +06:00
|
|
|
# You should have received a copy of the GNU Lesser General Public
|
|
|
|
# License along with this library; if not, write to the Free Software
|
|
|
|
# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
|
2005-03-21 13:38:22 +05:00
|
|
|
#
|
2012-08-09 16:03:55 +06:00
|
|
|
# See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
|
2005-03-21 13:38:22 +05:00
|
|
|
#
|
2012-08-09 16:03:55 +06:00
|
|
|
|
2005-03-21 13:38:22 +05:00
|
|
|
# File : smesh.py
|
|
|
|
# Author : Francis KLOSS, OCC
|
|
|
|
# Module : SMESH
|
2009-02-17 10:27:49 +05:00
|
|
|
#
|
2008-03-07 12:47:05 +05:00
|
|
|
"""@package smesh
|
2005-03-21 13:38:22 +05:00
|
|
|
\brief Module smesh
|
|
|
|
"""
|
|
|
|
|
|
|
|
import salome
|
2008-03-07 12:47:05 +05:00
|
|
|
from salome import *
|
2005-03-21 13:38:22 +05:00
|
|
|
|
2008-03-07 12:47:05 +05:00
|
|
|
import geompy
|
|
|
|
import smeshDC
|
|
|
|
from smeshDC import *
|
2005-03-21 13:38:22 +05:00
|
|
|
|
2012-10-08 17:56:59 +06:00
|
|
|
# retrieve SMESH engine in try/except block
|
|
|
|
# to avoid problems in some cases, e.g. when generating documentation
|
|
|
|
try:
|
|
|
|
# get instance of class smeshDC
|
|
|
|
smesh = salome.lcc.FindOrLoadComponent( "FactoryServer", "SMESH" )
|
|
|
|
smesh.init_smesh( salome.myStudy, geompy.geom )
|
|
|
|
except:
|
|
|
|
smesh = None
|
|
|
|
pass
|
2005-03-21 13:38:22 +05:00
|
|
|
|
2012-10-08 17:56:59 +06:00
|
|
|
# load plugins and add dynamically generated methods to Mesh class,
|
|
|
|
# the same for for global variables declared by plug-ins
|
2012-08-09 16:03:55 +06:00
|
|
|
from smeshDC import Mesh, algoCreator
|
2012-10-08 17:56:59 +06:00
|
|
|
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 )
|
2012-08-09 16:03:55 +06:00
|
|
|
|
2012-10-08 17:56:59 +06:00
|
|
|
# add methods creating algorithms to Mesh
|
|
|
|
for k in dir( plugin ):
|
|
|
|
if k[0] == '_': continue
|
|
|
|
algo = getattr( plugin, k )
|
|
|
|
if type( algo ).__name__ == 'classobj' and hasattr( algo, "meshMethod" ):
|
|
|
|
if not hasattr( Mesh, algo.meshMethod ):
|
|
|
|
setattr( Mesh, algo.meshMethod, algoCreator() )
|
|
|
|
pass
|
|
|
|
getattr( Mesh, algo.meshMethod ).add( algo )
|
|
|
|
pass
|
|
|
|
pass
|
|
|
|
pass
|
|
|
|
del pluginName
|
2012-08-09 16:03:55 +06:00
|
|
|
|
2012-10-08 17:56:59 +06:00
|
|
|
# export the methods of smeshDC
|
|
|
|
if smesh:
|
|
|
|
for k in dir( smesh ):
|
|
|
|
if k[0] == '_': continue
|
|
|
|
globals()[k] = getattr( smesh, k )
|
|
|
|
del k
|
|
|
|
pass
|