PR: packaging: from salome.smesh import smeshBuilder

This commit is contained in:
prascle 2013-02-24 20:57:19 +00:00
parent 36cfe45a94
commit 1d673b7232
7 changed files with 5803 additions and 38 deletions

View File

@ -64,7 +64,7 @@ fi
#CCRTif test -f ${SMESH_DIR}/bin/salome/libSMESH_Swig.py ; then
#if test -f ${SMESH_DIR}/bin/salome/MED_Test ; then
if test -f ${SMESH_DIR}/bin/salome/smesh.py ; then
if test -f ${SMESH_DIR}/bin/salome/SMESH_test.py ; then
SMesh_ok=yes
AC_MSG_RESULT(Using SMesh module distribution in ${SMESH_DIR})

View File

@ -27,10 +27,6 @@ include $(top_srcdir)/adm_local/unix/make_common_starter.am
# Scripts to be installed.
dist_salomescript_PYTHON = \
smesh.py \
smeshDC.py \
smesh_algorithm.py \
StdMeshersDC.py \
batchmode_smesh.py \
batchmode_mefisto.py \
ex00_all.py \
@ -99,5 +95,16 @@ dist_salomescript_PYTHON = \
PAL_MESH_043_3D.py \
SMESH_reg.py
mypkgpythondir = $(salomepythondir)/salome/smesh
mypkgpython_PYTHON = \
smesh.py \
smeshBuilder.py \
smesh_algorithm.py
stdpkgpythondir = $(salomepythondir)/salome/StdMeshers
stdpkgpython_PYTHON = \
__init__.py \
StdMeshersBuilder.py
sharedpkgpython_PYTHON = \
SMESH_shared_modules.py

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,25 @@
# -*- coding: iso-8859-1 -*-
# Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE
#
# Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
# CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS
#
# 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.
#
# 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
#
# File : __init__.py
# Package : StdMeshers

View File

@ -32,34 +32,35 @@
import salome
from salome import *
import geompy
from salome.geom import geompy
import SMESH, SALOMEDS
import smeshDC
#from smeshDC import *
from salome.smesh import smeshBuilder
#from smeshBuilder import *
# retrieve SMESH engine in try/except block
# to avoid problems in some cases, e.g. when generating documentation
try:
# get instance of class smeshDC
# get instance of class smeshBuilder
engineSmesh = salome.lcc.FindOrLoadComponent( "FactoryServer", "SMESH" )
smesh = smeshDC.smeshInstance(salome.myStudy, engineSmesh)
smesh = smeshBuilder.New(salome.myStudy, engineSmesh)
except:
smesh = None
pass
# 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 smeshBuilder import Mesh, algoCreator
for pluginName in os.environ[ "SMESH_MeshersList" ].split( ":" ):
#
pluginName += "DC"
print "pluginName: ", pluginName
pluginBuilderName = pluginName + "Builder"
try:
exec( "from %s import *" % pluginName )
exec( "from salome.%s.%s import *" % (pluginName, pluginBuilderName))
except Exception, e:
print "Exception while loading %s: %s" % ( pluginName, e )
print "Exception while loading %s: %s" % ( pluginBuilderName, e )
continue
exec( "import %s" % pluginName )
plugin = eval( pluginName )
exec( "from salome.%s import %s" % (pluginName, pluginBuilderName))
plugin = eval( pluginBuilderName )
# add methods creating algorithms to Mesh
for k in dir( plugin ):
@ -75,7 +76,7 @@ for pluginName in os.environ[ "SMESH_MeshersList" ].split( ":" ):
pass
del pluginName
# export the methods of smeshDC
# export the methods of smeshBuilder
if smesh:
for k in dir( smesh ):
if k[0] == '_': continue
@ -100,12 +101,13 @@ smesh.SetCurrentStudy(theStudy) |
with |
---- |
|
import smeshDC, SMESH, SALOMEDS |
smesh = smeshDC.smeshInstance(theStudy) |
import SMESH, SALOMEDS |
from salome.smesh import smeshBuilder |
smesh = smeshBuilder.New(theStudy) |
|
you also need to modify some lines where smeshDC is used instead of smesh: |
you also need to modify some lines where smeshBuilder is used instead of smesh|
|
algo=smesh.xxxx ==> algo.smeshDC.xxxx |
algo=smesh.xxxx ==> algo.smeshBuilder.xxxx |
|
===============================================================================
"""

File diff suppressed because it is too large Load Diff

View File

@ -22,7 +22,7 @@
# This package is a part of SALOME %Mesh module Python API
import salome
import geompyDC
from salome.geom import geomBuilder
import SMESH
## The base class to define meshing algorithms
@ -166,7 +166,7 @@ class Mesh_Algorithm:
## Gets the name of the algorithm
def GetName(self):
from smeshDC import GetName
from salome.smesh.smeshBuilder import GetName
return GetName(self.algo)
## Sets the name to the algorithm
@ -190,7 +190,7 @@ class Mesh_Algorithm:
## Private method
def Assign(self, algo, mesh, geom):
from smeshDC import AssureGeomPublished, TreatHypoStatus, GetName
from salome.smesh.smeshBuilder import AssureGeomPublished, TreatHypoStatus, GetName
if geom is None:
raise RuntimeError, "Attemp to create " + algo + " algoritm on None shape"
self.mesh = mesh
@ -221,7 +221,7 @@ class Mesh_Algorithm:
## Private method
def Hypothesis (self, hyp, args=[], so="libStdMeshersEngine.so",
UseExisting=0, CompareMethod=""):
from smeshDC import TreatHypoStatus, GetName
from salome.smesh.smeshBuilder import TreatHypoStatus, GetName
hypo = None
if UseExisting:
if CompareMethod == "": CompareMethod = self.CompareHyp
@ -233,7 +233,7 @@ class Mesh_Algorithm:
s = "="
for arg in args:
argStr = str(arg)
if isinstance( arg, geompyDC.GEOM._objref_GEOM_Object ):
if isinstance( arg, geomBuilder.GEOM._objref_GEOM_Object ):
argStr = arg.GetStudyEntry()
if not argStr: argStr = "GEOM_Obj_%s", arg.GetEntry()
if len( argStr ) > 10:
@ -273,7 +273,7 @@ class Mesh_Algorithm:
raise TypeError, "ViscousLayers are supported by 3D algorithms only"
if not "ViscousLayers" in self.GetCompatibleHypothesis():
raise TypeError, "ViscousLayers are not supported by %s"%self.algo.GetName()
if ignoreFaces and isinstance( ignoreFaces[0], geompyDC.GEOM._objref_GEOM_Object ):
if ignoreFaces and isinstance( ignoreFaces[0], geomBuilder.GEOM._objref_GEOM_Object ):
ignoreFaces = [ self.mesh.geompyD.GetSubShapeID(self.mesh.geom, f) for f in ignoreFaces ]
hyp = self.Hypothesis("ViscousLayers",
[thickness, numberOfLayers, stretchFactor, ignoreFaces])
@ -296,7 +296,7 @@ class Mesh_Algorithm:
raise TypeError, "ViscousLayers2D are supported by 2D algorithms only"
if not "ViscousLayers2D" in self.GetCompatibleHypothesis():
raise TypeError, "ViscousLayers2D are not supported by %s"%self.algo.GetName()
if ignoreEdges and isinstance( ignoreEdges[0], geompyDC.GEOM._objref_GEOM_Object ):
if ignoreEdges and isinstance( ignoreEdges[0], geomBuilder.GEOM._objref_GEOM_Object ):
ignoreEdges = [ self.mesh.geompyD.GetSubShapeID(self.mesh.geom, f) for f in ignoreEdges ]
hyp = self.Hypothesis("ViscousLayers2D",
[thickness, numberOfLayers, stretchFactor, ignoreEdges])
@ -310,30 +310,30 @@ class Mesh_Algorithm:
# into a list acceptable to SetReversedEdges() of some 1D hypotheses
# @ingroup l3_hypos_1dhyps
def ReversedEdgeIndices(self, reverseList):
from smeshDC import FirstVertexOnCurve
from salome.smesh.smeshBuilder import FirstVertexOnCurve
resList = []
geompy = self.mesh.geompyD
for i in reverseList:
if isinstance( i, int ):
s = geompy.SubShapes(self.mesh.geom, [i])[0]
if s.GetShapeType() != geompyDC.GEOM.EDGE:
if s.GetShapeType() != geomBuilder.GEOM.EDGE:
raise TypeError, "Not EDGE index given"
resList.append( i )
elif isinstance( i, geompyDC.GEOM._objref_GEOM_Object ):
if i.GetShapeType() != geompyDC.GEOM.EDGE:
elif isinstance( i, geomBuilder.GEOM._objref_GEOM_Object ):
if i.GetShapeType() != geomBuilder.GEOM.EDGE:
raise TypeError, "Not an EDGE given"
resList.append( geompy.GetSubShapeID(self.mesh.geom, i ))
elif len( i ) > 1:
e = i[0]
v = i[1]
if not isinstance( e, geompyDC.GEOM._objref_GEOM_Object ) or \
not isinstance( v, geompyDC.GEOM._objref_GEOM_Object ):
if not isinstance( e, geomBuilder.GEOM._objref_GEOM_Object ) or \
not isinstance( v, geomBuilder.GEOM._objref_GEOM_Object ):
raise TypeError, "A list item must be a tuple (edge, 1st_vertex_of_edge)"
if v.GetShapeType() == geompyDC.GEOM.EDGE and \
e.GetShapeType() == geompyDC.GEOM.VERTEX:
if v.GetShapeType() == geomBuilder.GEOM.EDGE and \
e.GetShapeType() == geomBuilder.GEOM.VERTEX:
v,e = e,v
if e.GetShapeType() != geompyDC.GEOM.EDGE or \
v.GetShapeType() != geompyDC.GEOM.VERTEX:
if e.GetShapeType() != geomBuilder.GEOM.EDGE or \
v.GetShapeType() != geomBuilder.GEOM.VERTEX:
raise TypeError, "A list item must be a tuple (edge, 1st_vertex_of_edge)"
vFirst = FirstVertexOnCurve( e )
tol = geompy.Tolerance( vFirst )[-1]