smesh/src/Tools/padder/spadderpy/__init__.py
2020-04-15 18:19:44 +03:00

109 lines
3.7 KiB
Python

# Copyright (C) 2011-2020 EDF R&D
#
# 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, or (at your option) any later version.
#
# 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.
#
# 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
#
# See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
#
# Author(s): Guillaume Boulant (23/03/2011)
#
# TODO: put all this stuff in the unitests package
import os
def getRootDir():
'''
This returns the root directory where the module SPADDER is
installed. All test files are looked up from this location.
'''
return os.environ['SMESH_ROOT_DIR']
def getTestDataDir():
'''
This function gives the absolute path to the SMESH directory
containing the data files for the padder plugin test (realistic
med files).
'''
datadir = os.path.join(getRootDir(),"share/salome/resources/smesh/padderdata")
return datadir
def getTestPadderDataDir():
"""
This function gives the absolute path to the PADDER directory
containing the data files for the padder plugin test. WARNING:
this directory is a directory of the external program SpherePadder
that is wrapped by the padder plugin. We use the shell variable
PADDERHOME (defined by the SALOME environment) to localize this
folder.
"""
PADDERHOME = os.environ['PADDERHOME']
datadir = os.path.join(PADDERHOME,"tests")
return datadir
import MESHJOB # to get the enum constant values
from MESHJOB import MeshJobFile, MeshJobFileList
DEFAULT_CONCRETE_FILENAME=os.path.join(getTestDataDir(),'concrete.med')
DEFAULT_STEELBAR_LISTFILENAME=[
os.path.join(getTestDataDir(),'ferraill.med')
]
def getMeshJobFileList(concrete_filename=DEFAULT_CONCRETE_FILENAME,
steelbar_listfilename=DEFAULT_STEELBAR_LISTFILENAME):
'''
This helper function creates a complete set of parameters (a
MeshJobFileList) for a simple test case, i.e. a case with a
concrete filename and a single steelbar filename.
'''
# Note that a CORBA sequence (MeshJobFileList) is mapped on a
# simple list in python
meshJobFileList = []
# We can add some parameters
param = MeshJobFile(
file_name = concrete_filename,
file_type = MESHJOB.MED_CONCRETE,
group_name = "concrete")
meshJobFileList.append(param)
for steelbar_filename in steelbar_listfilename:
param = MeshJobFile(
file_name = steelbar_filename,
file_type = MESHJOB.MED_STEELBAR,
group_name = "steelbar")
meshJobFileList.append(param)
return meshJobFileList
def getSpadderCatalogFilename():
filename=os.path.join(getRootDir(),"share/salome/resources/smesh/SPADDERCatalog.xml")
return filename
def loadSpadderCatalog():
import salome
salome.salome_init()
obj = salome.naming_service.Resolve('Kernel/ModulCatalog')
import SALOME_ModuleCatalog
catalog = obj._narrow(SALOME_ModuleCatalog.ModuleCatalog)
if not catalog:
raise RuntimeError("Can't access module catalog")
filename = getSpadderCatalogFilename()
catalog.ImportXmlCatalogFile(filename)
from salome.kernel import services
print("The list of SALOME components is now:")
print(services.getComponentList())