mirror of
https://git.salome-platform.org/gitpub/modules/smesh.git
synced 2025-01-14 02:30:33 +05:00
PR: packaging: from salome.smesh import smeshBuilder
This commit is contained in:
parent
36cfe45a94
commit
1d673b7232
@ -64,7 +64,7 @@ fi
|
|||||||
|
|
||||||
#CCRTif test -f ${SMESH_DIR}/bin/salome/libSMESH_Swig.py ; then
|
#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/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
|
SMesh_ok=yes
|
||||||
AC_MSG_RESULT(Using SMesh module distribution in ${SMESH_DIR})
|
AC_MSG_RESULT(Using SMesh module distribution in ${SMESH_DIR})
|
||||||
|
|
||||||
|
@ -27,10 +27,6 @@ include $(top_srcdir)/adm_local/unix/make_common_starter.am
|
|||||||
|
|
||||||
# Scripts to be installed.
|
# Scripts to be installed.
|
||||||
dist_salomescript_PYTHON = \
|
dist_salomescript_PYTHON = \
|
||||||
smesh.py \
|
|
||||||
smeshDC.py \
|
|
||||||
smesh_algorithm.py \
|
|
||||||
StdMeshersDC.py \
|
|
||||||
batchmode_smesh.py \
|
batchmode_smesh.py \
|
||||||
batchmode_mefisto.py \
|
batchmode_mefisto.py \
|
||||||
ex00_all.py \
|
ex00_all.py \
|
||||||
@ -99,5 +95,16 @@ dist_salomescript_PYTHON = \
|
|||||||
PAL_MESH_043_3D.py \
|
PAL_MESH_043_3D.py \
|
||||||
SMESH_reg.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 = \
|
sharedpkgpython_PYTHON = \
|
||||||
SMESH_shared_modules.py
|
SMESH_shared_modules.py
|
||||||
|
1326
src/SMESH_SWIG/StdMeshersBuilder.py
Normal file
1326
src/SMESH_SWIG/StdMeshersBuilder.py
Normal file
File diff suppressed because it is too large
Load Diff
25
src/SMESH_SWIG/__init__.py
Normal file
25
src/SMESH_SWIG/__init__.py
Normal 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
|
@ -32,34 +32,35 @@
|
|||||||
import salome
|
import salome
|
||||||
from salome import *
|
from salome import *
|
||||||
|
|
||||||
import geompy
|
from salome.geom import geompy
|
||||||
import SMESH, SALOMEDS
|
import SMESH, SALOMEDS
|
||||||
import smeshDC
|
from salome.smesh import smeshBuilder
|
||||||
#from smeshDC import *
|
#from smeshBuilder import *
|
||||||
|
|
||||||
# retrieve SMESH engine in try/except block
|
# retrieve SMESH engine in try/except block
|
||||||
# to avoid problems in some cases, e.g. when generating documentation
|
# to avoid problems in some cases, e.g. when generating documentation
|
||||||
try:
|
try:
|
||||||
# get instance of class smeshDC
|
# get instance of class smeshBuilder
|
||||||
engineSmesh = salome.lcc.FindOrLoadComponent( "FactoryServer", "SMESH" )
|
engineSmesh = salome.lcc.FindOrLoadComponent( "FactoryServer", "SMESH" )
|
||||||
smesh = smeshDC.smeshInstance(salome.myStudy, engineSmesh)
|
smesh = smeshBuilder.New(salome.myStudy, engineSmesh)
|
||||||
except:
|
except:
|
||||||
smesh = None
|
smesh = None
|
||||||
pass
|
pass
|
||||||
|
|
||||||
# load plugins and add dynamically generated methods to Mesh class,
|
# load plugins and add dynamically generated methods to Mesh class,
|
||||||
# the same for for global variables declared by plug-ins
|
# 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( ":" ):
|
for pluginName in os.environ[ "SMESH_MeshersList" ].split( ":" ):
|
||||||
#
|
#
|
||||||
pluginName += "DC"
|
print "pluginName: ", pluginName
|
||||||
|
pluginBuilderName = pluginName + "Builder"
|
||||||
try:
|
try:
|
||||||
exec( "from %s import *" % pluginName )
|
exec( "from salome.%s.%s import *" % (pluginName, pluginBuilderName))
|
||||||
except Exception, e:
|
except Exception, e:
|
||||||
print "Exception while loading %s: %s" % ( pluginName, e )
|
print "Exception while loading %s: %s" % ( pluginBuilderName, e )
|
||||||
continue
|
continue
|
||||||
exec( "import %s" % pluginName )
|
exec( "from salome.%s import %s" % (pluginName, pluginBuilderName))
|
||||||
plugin = eval( pluginName )
|
plugin = eval( pluginBuilderName )
|
||||||
|
|
||||||
# add methods creating algorithms to Mesh
|
# add methods creating algorithms to Mesh
|
||||||
for k in dir( plugin ):
|
for k in dir( plugin ):
|
||||||
@ -75,7 +76,7 @@ for pluginName in os.environ[ "SMESH_MeshersList" ].split( ":" ):
|
|||||||
pass
|
pass
|
||||||
del pluginName
|
del pluginName
|
||||||
|
|
||||||
# export the methods of smeshDC
|
# export the methods of smeshBuilder
|
||||||
if smesh:
|
if smesh:
|
||||||
for k in dir( smesh ):
|
for k in dir( smesh ):
|
||||||
if k[0] == '_': continue
|
if k[0] == '_': continue
|
||||||
@ -100,12 +101,13 @@ smesh.SetCurrentStudy(theStudy) |
|
|||||||
with |
|
with |
|
||||||
---- |
|
---- |
|
||||||
|
|
|
|
||||||
import smeshDC, SMESH, SALOMEDS |
|
import SMESH, SALOMEDS |
|
||||||
smesh = smeshDC.smeshInstance(theStudy) |
|
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 |
|
||||||
|
|
|
|
||||||
===============================================================================
|
===============================================================================
|
||||||
"""
|
"""
|
||||||
|
4405
src/SMESH_SWIG/smeshBuilder.py
Normal file
4405
src/SMESH_SWIG/smeshBuilder.py
Normal file
File diff suppressed because it is too large
Load Diff
@ -22,7 +22,7 @@
|
|||||||
# This package is a part of SALOME %Mesh module Python API
|
# This package is a part of SALOME %Mesh module Python API
|
||||||
|
|
||||||
import salome
|
import salome
|
||||||
import geompyDC
|
from salome.geom import geomBuilder
|
||||||
import SMESH
|
import SMESH
|
||||||
|
|
||||||
## The base class to define meshing algorithms
|
## The base class to define meshing algorithms
|
||||||
@ -166,7 +166,7 @@ class Mesh_Algorithm:
|
|||||||
|
|
||||||
## Gets the name of the algorithm
|
## Gets the name of the algorithm
|
||||||
def GetName(self):
|
def GetName(self):
|
||||||
from smeshDC import GetName
|
from salome.smesh.smeshBuilder import GetName
|
||||||
return GetName(self.algo)
|
return GetName(self.algo)
|
||||||
|
|
||||||
## Sets the name to the algorithm
|
## Sets the name to the algorithm
|
||||||
@ -190,7 +190,7 @@ class Mesh_Algorithm:
|
|||||||
|
|
||||||
## Private method
|
## Private method
|
||||||
def Assign(self, algo, mesh, geom):
|
def Assign(self, algo, mesh, geom):
|
||||||
from smeshDC import AssureGeomPublished, TreatHypoStatus, GetName
|
from salome.smesh.smeshBuilder import AssureGeomPublished, TreatHypoStatus, GetName
|
||||||
if geom is None:
|
if geom is None:
|
||||||
raise RuntimeError, "Attemp to create " + algo + " algoritm on None shape"
|
raise RuntimeError, "Attemp to create " + algo + " algoritm on None shape"
|
||||||
self.mesh = mesh
|
self.mesh = mesh
|
||||||
@ -221,7 +221,7 @@ class Mesh_Algorithm:
|
|||||||
## Private method
|
## Private method
|
||||||
def Hypothesis (self, hyp, args=[], so="libStdMeshersEngine.so",
|
def Hypothesis (self, hyp, args=[], so="libStdMeshersEngine.so",
|
||||||
UseExisting=0, CompareMethod=""):
|
UseExisting=0, CompareMethod=""):
|
||||||
from smeshDC import TreatHypoStatus, GetName
|
from salome.smesh.smeshBuilder import TreatHypoStatus, GetName
|
||||||
hypo = None
|
hypo = None
|
||||||
if UseExisting:
|
if UseExisting:
|
||||||
if CompareMethod == "": CompareMethod = self.CompareHyp
|
if CompareMethod == "": CompareMethod = self.CompareHyp
|
||||||
@ -233,7 +233,7 @@ class Mesh_Algorithm:
|
|||||||
s = "="
|
s = "="
|
||||||
for arg in args:
|
for arg in args:
|
||||||
argStr = str(arg)
|
argStr = str(arg)
|
||||||
if isinstance( arg, geompyDC.GEOM._objref_GEOM_Object ):
|
if isinstance( arg, geomBuilder.GEOM._objref_GEOM_Object ):
|
||||||
argStr = arg.GetStudyEntry()
|
argStr = arg.GetStudyEntry()
|
||||||
if not argStr: argStr = "GEOM_Obj_%s", arg.GetEntry()
|
if not argStr: argStr = "GEOM_Obj_%s", arg.GetEntry()
|
||||||
if len( argStr ) > 10:
|
if len( argStr ) > 10:
|
||||||
@ -273,7 +273,7 @@ class Mesh_Algorithm:
|
|||||||
raise TypeError, "ViscousLayers are supported by 3D algorithms only"
|
raise TypeError, "ViscousLayers are supported by 3D algorithms only"
|
||||||
if not "ViscousLayers" in self.GetCompatibleHypothesis():
|
if not "ViscousLayers" in self.GetCompatibleHypothesis():
|
||||||
raise TypeError, "ViscousLayers are not supported by %s"%self.algo.GetName()
|
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 ]
|
ignoreFaces = [ self.mesh.geompyD.GetSubShapeID(self.mesh.geom, f) for f in ignoreFaces ]
|
||||||
hyp = self.Hypothesis("ViscousLayers",
|
hyp = self.Hypothesis("ViscousLayers",
|
||||||
[thickness, numberOfLayers, stretchFactor, ignoreFaces])
|
[thickness, numberOfLayers, stretchFactor, ignoreFaces])
|
||||||
@ -296,7 +296,7 @@ class Mesh_Algorithm:
|
|||||||
raise TypeError, "ViscousLayers2D are supported by 2D algorithms only"
|
raise TypeError, "ViscousLayers2D are supported by 2D algorithms only"
|
||||||
if not "ViscousLayers2D" in self.GetCompatibleHypothesis():
|
if not "ViscousLayers2D" in self.GetCompatibleHypothesis():
|
||||||
raise TypeError, "ViscousLayers2D are not supported by %s"%self.algo.GetName()
|
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 ]
|
ignoreEdges = [ self.mesh.geompyD.GetSubShapeID(self.mesh.geom, f) for f in ignoreEdges ]
|
||||||
hyp = self.Hypothesis("ViscousLayers2D",
|
hyp = self.Hypothesis("ViscousLayers2D",
|
||||||
[thickness, numberOfLayers, stretchFactor, ignoreEdges])
|
[thickness, numberOfLayers, stretchFactor, ignoreEdges])
|
||||||
@ -310,30 +310,30 @@ class Mesh_Algorithm:
|
|||||||
# into a list acceptable to SetReversedEdges() of some 1D hypotheses
|
# into a list acceptable to SetReversedEdges() of some 1D hypotheses
|
||||||
# @ingroup l3_hypos_1dhyps
|
# @ingroup l3_hypos_1dhyps
|
||||||
def ReversedEdgeIndices(self, reverseList):
|
def ReversedEdgeIndices(self, reverseList):
|
||||||
from smeshDC import FirstVertexOnCurve
|
from salome.smesh.smeshBuilder import FirstVertexOnCurve
|
||||||
resList = []
|
resList = []
|
||||||
geompy = self.mesh.geompyD
|
geompy = self.mesh.geompyD
|
||||||
for i in reverseList:
|
for i in reverseList:
|
||||||
if isinstance( i, int ):
|
if isinstance( i, int ):
|
||||||
s = geompy.SubShapes(self.mesh.geom, [i])[0]
|
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"
|
raise TypeError, "Not EDGE index given"
|
||||||
resList.append( i )
|
resList.append( i )
|
||||||
elif isinstance( i, geompyDC.GEOM._objref_GEOM_Object ):
|
elif isinstance( i, geomBuilder.GEOM._objref_GEOM_Object ):
|
||||||
if i.GetShapeType() != geompyDC.GEOM.EDGE:
|
if i.GetShapeType() != geomBuilder.GEOM.EDGE:
|
||||||
raise TypeError, "Not an EDGE given"
|
raise TypeError, "Not an EDGE given"
|
||||||
resList.append( geompy.GetSubShapeID(self.mesh.geom, i ))
|
resList.append( geompy.GetSubShapeID(self.mesh.geom, i ))
|
||||||
elif len( i ) > 1:
|
elif len( i ) > 1:
|
||||||
e = i[0]
|
e = i[0]
|
||||||
v = i[1]
|
v = i[1]
|
||||||
if not isinstance( e, geompyDC.GEOM._objref_GEOM_Object ) or \
|
if not isinstance( e, geomBuilder.GEOM._objref_GEOM_Object ) or \
|
||||||
not isinstance( v, geompyDC.GEOM._objref_GEOM_Object ):
|
not isinstance( v, geomBuilder.GEOM._objref_GEOM_Object ):
|
||||||
raise TypeError, "A list item must be a tuple (edge, 1st_vertex_of_edge)"
|
raise TypeError, "A list item must be a tuple (edge, 1st_vertex_of_edge)"
|
||||||
if v.GetShapeType() == geompyDC.GEOM.EDGE and \
|
if v.GetShapeType() == geomBuilder.GEOM.EDGE and \
|
||||||
e.GetShapeType() == geompyDC.GEOM.VERTEX:
|
e.GetShapeType() == geomBuilder.GEOM.VERTEX:
|
||||||
v,e = e,v
|
v,e = e,v
|
||||||
if e.GetShapeType() != geompyDC.GEOM.EDGE or \
|
if e.GetShapeType() != geomBuilder.GEOM.EDGE or \
|
||||||
v.GetShapeType() != geompyDC.GEOM.VERTEX:
|
v.GetShapeType() != geomBuilder.GEOM.VERTEX:
|
||||||
raise TypeError, "A list item must be a tuple (edge, 1st_vertex_of_edge)"
|
raise TypeError, "A list item must be a tuple (edge, 1st_vertex_of_edge)"
|
||||||
vFirst = FirstVertexOnCurve( e )
|
vFirst = FirstVertexOnCurve( e )
|
||||||
tol = geompy.Tolerance( vFirst )[-1]
|
tol = geompy.Tolerance( vFirst )[-1]
|
||||||
|
Loading…
Reference in New Issue
Block a user