X-Git-Url: http://git.salome-platform.org/gitweb/?a=blobdiff_plain;f=src%2FGEOM_SWIG%2FGEOM_Spanner.py;h=567386ebff5845789262b23d7b9bb5fbeb5abc9c;hb=72a229c531962c9b07b12164f331c85d1a595c00;hp=cc336a7b441d64181c71b84f83641700a1934530;hpb=ca429d817a18d6acc571443f6a596575dee03c2f;p=modules%2Fgeom.git diff --git a/src/GEOM_SWIG/GEOM_Spanner.py b/src/GEOM_SWIG/GEOM_Spanner.py index cc336a7b4..567386ebf 100644 --- a/src/GEOM_SWIG/GEOM_Spanner.py +++ b/src/GEOM_SWIG/GEOM_Spanner.py @@ -1,6 +1,8 @@ -# GEOM GEOM_SWIG : binding of C++ implementaion with Python +# -*- coding: iso-8859-1 -*- +# Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE # -# Copyright (C) 2003 CEA +# 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 @@ -16,18 +18,20 @@ # 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.org -# -# +# See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com # +# GEOM GEOM_SWIG : binding of C++ implementaion with Python # File : GEOM_Spanner.py # Author : Julia DOROVSKIKH # Module : GEOM # $Header$ - +# ! Please, if you edit this example file, update also +# ! GEOM_SRC/doc/salome/gui/GEOM/input/tui_test_spanner.doc +# ! as some sequences of symbols from this example are used during +# ! documentation generation to identify certain places of this file ############# MakeSpanner ############# - -def MakeSpanner (salome, geompy, math, isBlocksTest = 0, isMeshTest = 0, smesh = None, hasGUI = 0): +# +def MakeSpanner (geompy, math, isBlocksTest = 0, isMeshTest = 0, smesh = None): ### Variables ### @@ -324,8 +328,13 @@ def MakeSpanner (salome, geompy, math, isBlocksTest = 0, isMeshTest = 0, smesh = Face_5_horiz = geompy.GetFaceByNormale(aBlock, vz) f_5_horiz_ind = geompy.LocalOp.GetSubShapeIndex(aBlock, Face_5_horiz) - MRot = geompy.MakeMultiTransformation2D(aBlock, f42_sp_ind, 0, 3, f_5_horiz_ind, 0, 5) - if MRot is not None: + MRot = None + is2Dok = True + try: + MRot = geompy.MakeMultiTransformation2D(aBlock, f42_sp_ind, 0, 3, f_5_horiz_ind, 0, 5) + except: + is2Dok = False + if is2Dok and MRot is not None: isMRot2D = 1 p_z100 = geompy.MakeVertex(0., 0., 100.) MRot_tr = geompy.MakeTranslationTwoPoints(MRot, p0, p_z100) @@ -355,11 +364,10 @@ def MakeSpanner (salome, geompy, math, isBlocksTest = 0, isMeshTest = 0, smesh = Block_new = geompy.MakeHexa2Faces(Face_g_1, Face_g_1_tr) id_block_new = geompy.addToStudy(Block_new, "Block New") - if isMeshTest == 1: + if isMeshTest == 1 and smesh is not None: print "##################### Build Mesh #####################" - import StdMeshers # ---- add a middle block of spanner handle in study @@ -380,117 +388,68 @@ def MakeSpanner (salome, geompy, math, isBlocksTest = 0, isMeshTest = 0, smesh = Id_Edge1 = geompy.addToStudyInFather(FaceTop, Edge1, "Edge 1") Id_Edge2 = geompy.addToStudyInFather(FaceTop, Edge2, "Edge 2") - # ---- launch SMESH - - smeshgui = None - if hasGUI == 1: - smeshgui = salome.ImportComponentGUI("SMESH") - smeshgui.Init(salome.myStudyId) - - print "-------------------------- create Hypothesis" - - print "-------------------------- NumberOfSegments" - - hypNbSeg3 = smesh.CreateHypothesis("NumberOfSegments", "libStdMeshersEngine.so") - hypNbSeg3.SetNumberOfSegments(3) - print hypNbSeg3.GetName() - print hypNbSeg3.GetId() - print hypNbSeg3.GetNumberOfSegments() - - if hasGUI == 1: - idseg = salome.ObjectToID(hypNbSeg3) - smeshgui.SetName(idseg, "NumberOfSegments_3"); - - print "-------------------------- LocalLength" - - hypLen1 = smesh.CreateHypothesis("LocalLength", "libStdMeshersEngine.so") - hypLen1.SetLength(10) - print hypLen1.GetName() - print hypLen1.GetId() - print hypLen1.GetLength() - - if hasGUI == 1: - idlength = salome.ObjectToID(hypLen1) - smeshgui.SetName(idlength, "Local_Length_10"); - - print "-------------------------- Propagation" - - hypProp = smesh.CreateHypothesis("Propagation", "libStdMeshersEngine.so") - print hypProp.GetName() - print hypProp.GetId() + print "-------------------------- Algorithm and Hypothesis" - if hasGUI == 1: - idprop = salome.ObjectToID(hypProp) - smeshgui.SetName(idprop, "Propagation hypothesis"); + print "---- Init a Mesh with the Spanner" - #print "-------------------------- NumberOfSegments" - # - #hypNbSeg15 = smesh.CreateHypothesis("NumberOfSegments", "libStdMeshersEngine.so") - #hypNbSeg15.SetNumberOfSegments(15) - #print hypNbSeg15.GetName() - #print hypNbSeg15.GetId() - #print hypNbSeg15.GetNumberOfSegments() - # - #if hasGUI == 1: - # idseg15 = salome.ObjectToID(hypNbSeg15) - # smeshgui.SetName(idseg15, "NumberOfSegments_15"); + mesh = smesh.Mesh(Spanner, "Meshed Spanner") - print "-------------------------- Regular_1D" + print "-------------------------- add hypothesis to Spanner" - algoReg = smesh.CreateHypothesis("Regular_1D", "libStdMeshersEngine.so") + print "-------------------------- NumberOfSegments" + algoReg = mesh.Segment() listHyp = algoReg.GetCompatibleHypothesis() for hyp in listHyp: - print hyp + print hyp print algoReg.GetName() print algoReg.GetId() + algoReg.SetName("Regular_1D") + - if hasGUI == 1: - idreg = salome.ObjectToID(algoReg) - smeshgui.SetName(idreg, "Regular_1D"); + hypNbSeg3 = algoReg.NumberOfSegments(3) + print hypNbSeg3.GetName() + print hypNbSeg3.GetId() + print hypNbSeg3.GetNumberOfSegments() + smesh.SetName(hypNbSeg3, "NumberOfSegments_3") print "-------------------------- Quadrangle_2D" - algoQuad = smesh.CreateHypothesis("Quadrangle_2D", "libStdMeshersEngine.so") + algoQuad = mesh.Quadrangle() listHyp = algoQuad.GetCompatibleHypothesis() for hyp in listHyp: print hyp print algoQuad.GetName() print algoQuad.GetId() - - if hasGUI == 1: - idquad = salome.ObjectToID(algoQuad) - smeshgui.SetName(idquad, "Quadrangle_2D"); - - print "---- Init a Mesh with the Spanner" - - mesh = smesh.CreateMesh(Spanner) - if hasGUI == 1: - idmesh = salome.ObjectToID(mesh) - smeshgui.SetName(idmesh, "Meshed Spanner"); - - print "-------------------------- add hypothesis to Spanner" - - mesh.AddHypothesis(Spanner, algoReg) - mesh.AddHypothesis(Spanner, hypNbSeg3) - mesh.AddHypothesis(Spanner, algoQuad) + algoQuad.SetName("Quadrangle_2D") print "-------------------------- add hypothesis to the Middle Block" - submesh_bl = mesh.GetSubMesh(BlockMh, "SubMesh Middle Block") - mesh.AddHypothesis(BlockMh, hypLen1) + print "-------------------------- LocalLength" + algoRegMb = mesh.Segment(BlockMh) + hypLen1 = algoRegMb.LocalLength(10) + print hypLen1.GetName() + print hypLen1.GetId() + print hypLen1.GetLength() + smesh.SetName(hypLen1, "Local_Length_10") print "-------------------------- add hypothesis to the long edges of the Top Face of the Middle Block" - submesh_e1 = mesh.GetSubMesh(Edge1, "SubMesh Edge 1 of Top Face") - mesh.AddHypothesis(Edge1, hypProp) - #mesh.AddHypothesis(Edge1, hypNbSeg15) + algoRegE1 = mesh.Segment(Edge1) + hypPropE1 = algoRegE1.Propagation() + print hypPropE1.GetName() + print hypPropE1.GetId() + smesh.SetName(hypPropE1, "Propagation hypothesis") + smesh.SetName(algoRegE1.GetSubMesh(), "SubMesh Edge 1 of Top Face") - submesh_e2 = mesh.GetSubMesh(Edge2, "SubMesh Edge 2 of Top Face") - mesh.AddHypothesis(Edge2, hypProp) - #mesh.AddHypothesis(Edge2, hypNbSeg15) + algoRegE2 = mesh.Segment(Edge2) + hypPropE2 = algoRegE2.Propagation() + print hypPropE2.GetName() + print hypPropE2.GetId() + smesh.SetName(hypPropE2, "Propagation hypothesis") + smesh.SetName(algoRegE2.GetSubMesh(), "SubMesh Edge 2 of Top Face") print "-------------------------- compute the mesh" - smesh.Compute(mesh, Spanner) + mesh.Compute() print "Information about the Mesh:" print "Number of nodes : ", mesh.NbNodes()