X-Git-Url: http://git.salome-platform.org/gitweb/?p=modules%2Fsmesh.git;a=blobdiff_plain;f=doc%2Fsalome%2Fexamples%2Ftransforming_meshes_ex10.py;h=e0120b4810f5dc87b5a03dfc88aac0dc32bf8cfa;hp=c54aca660c377a19212ada45b4a83f8083e83b9b;hb=f0f67c0b47e58361bc50c7169734da604fbfca01;hpb=9a54694a0ab1e5cbc558a35c4606ceea4f7af2ef diff --git a/doc/salome/examples/transforming_meshes_ex10.py b/doc/salome/examples/transforming_meshes_ex10.py index c54aca660..e0120b481 100644 --- a/doc/salome/examples/transforming_meshes_ex10.py +++ b/doc/salome/examples/transforming_meshes_ex10.py @@ -1,7 +1,14 @@ # Sew Side Elements -import geompy -import smesh +import salome +salome.salome_init() +import GEOM +from salome.geom import geomBuilder +geompy = geomBuilder.New(salome.myStudy) + +import SMESH, SALOMEDS +from salome.smesh import smeshBuilder +smesh = smeshBuilder.New(salome.myStudy) # create two boxes box1 = geompy.MakeBox(0., 0., 0., 10., 10., 10.) @@ -13,7 +20,7 @@ aComp = geompy.MakeCompound([box1, box2]) geompy.addToStudy(aComp, "Two boxes") # create a mesh on two boxes -mesh = smesh.Mesh(aComp, "Two faces : quadrangle mesh") +mesh = smesh.Mesh(aComp, "Sew Side Elements") algo1D = mesh.Segment() algo1D.NumberOfSegments(2) @@ -26,6 +33,31 @@ algo_local.Propagation() mesh.Compute() # sew side elements -# IDsOfSide1Elements, IDsOfSide2Elements, -# NodeID1OfSide1ToMerge, NodeID1OfSide2ToMerge, NodeID2OfSide1ToMerge, NodeID2OfSide2ToMerge -mesh.SewSideElements([69, 70, 71, 72], [91, 92, 89, 90], 8, 38, 23, 58) + +# find elements to sew +face1 = geompy.GetFaceNearPoint( aComp, geompy.MakeVertex( 5, 10, 5 )) +IDsOfSide1Elements = mesh.GetSubMeshElementsId( face1 ) +print "side faces 1:",IDsOfSide1Elements + +face1Translated = geompy.MakeTranslation( face1, 0,5,0 ) +faceFilter = smesh.GetFilter( SMESH.FACE, SMESH.FT_BelongToGeom,'=', face1Translated ) +IDsOfSide2Elements = mesh.GetIdsFromFilter( faceFilter ) +print "side faces 2:",IDsOfSide2Elements + +# find corresponding nodes on sides +edge1 = geompy.GetEdgeNearPoint( aComp, geompy.MakeVertex( 0, 10, 5 )) +segs1 = mesh.GetSubMeshElementsId( edge1 ) # mesh segments generated on edge1 +NodeID1OfSide1ToMerge = mesh.GetElemNode( segs1[0], 0 ) +NodeID2OfSide1ToMerge = mesh.GetElemNode( segs1[0], 1 ) +print "nodes of side1:", [NodeID1OfSide1ToMerge,NodeID2OfSide1ToMerge] + +edge2 = geompy.GetEdgeNearPoint( aComp, geompy.MakeVertex( 0, 15, 5 )) +segs2 = mesh.GetSubMeshElementsId( edge2 ) # mesh segments generated on edge2 +NodeID1OfSide2ToMerge = mesh.GetElemNode( segs2[0], 0 ) +NodeID2OfSide2ToMerge = mesh.GetElemNode( segs2[0], 1 ) +print "nodes of side2:", [NodeID1OfSide2ToMerge,NodeID2OfSide2ToMerge] + +res = mesh.SewSideElements(IDsOfSide1Elements, IDsOfSide2Elements, + NodeID1OfSide1ToMerge, NodeID1OfSide2ToMerge, + NodeID2OfSide1ToMerge, NodeID2OfSide2ToMerge) +print res