X-Git-Url: http://git.salome-platform.org/gitweb/?p=modules%2Fsmesh.git;a=blobdiff_plain;f=src%2FSMESH_SWIG%2FSMESH_test.py;h=3b46f54800a57c320168de78f030a055e2e14350;hp=d2385f3a98932c0ef64cc651c9ab7571b515a77f;hb=2aed859fcd4a79ddeaf25370c39b2ee713fc873c;hpb=b8d6cdc9c94d41680c919afad67e5122b1097b8a diff --git a/src/SMESH_SWIG/SMESH_test.py b/src/SMESH_SWIG/SMESH_test.py index d2385f3a9..3b46f5480 100644 --- a/src/SMESH_SWIG/SMESH_test.py +++ b/src/SMESH_SWIG/SMESH_test.py @@ -1,35 +1,39 @@ -# SMESH SMESH_I : idl implementation based on 'SMESH' unit's calsses +# -*- coding: iso-8859-1 -*- +# Copyright (C) 2007-2016 CEA/DEN, EDF R&D, OPEN CASCADE # -# Copyright (C) 2003 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -# CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS +# 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 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.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org +# 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 # + +# SMESH SMESH_I : idl implementation based on 'SMESH' unit's classes # File : SMESH_test.py # Module : SMESH - +# import salome -import geompy -import smeshpy +salome.salome_init() +import GEOM +from salome.geom import geomBuilder +geompy = geomBuilder.New() -import SMESH -import StdMeshers +import SMESH, SALOMEDS +from salome.smesh import smeshBuilder +smesh = smeshBuilder.New() # ---- define a box @@ -57,98 +61,51 @@ edge = edgeList[0]; name = geompy.SubShapeName(edge, face) ide = geompy.addToStudyInFather(face, edge, name) -# ---- launch SMESH, init a Mesh with the box - -gen = smeshpy.smeshpy() -mesh = gen.CreateMesh(idb) - -print "-------------------------- create Hypothesis" - -print "-------------------------- LocalLength" +# ---- SMESH -hypo1 = gen.CreateHypothesis("LocalLength", "libStdMeshersEngine.so") -print hypo1.GetName() -print hypo1.GetId() -print hypo1.GetLength() -hypo1.SetLength(100) -print hypo1.GetLength() - -print "-------------------------- bidon" +smesh.UpdateStudy() +box = salome.IDToObject(idb) +mesh = smesh.Mesh(box, "Meshbox") -hyp3 = gen.CreateHypothesis("bidon", "") +print("-------------------------- add hypothesis to box") -print "-------------------------- NumberOfSegments" +algo_1 = mesh.Segment(box) +hyp = algo_1.LocalLength(100) +print(hyp.GetName()) +print(hyp.GetId()) +print(hyp.GetLength()) -hypo3 = gen.CreateHypothesis("NumberOfSegments", "libStdMeshersEngine.so") -hypo3.SetNumberOfSegments(7) -print hypo3.GetName() -print hypo3.GetNumberOfSegments() -print hypo3.GetId() +algo_2 = mesh.Triangle(smeshBuilder.MEFISTO, box) +hyp = algo_2.MaxElementArea(5000) +print(hyp.GetName()) +print(hyp.GetId()) +print(hyp.GetMaxElementArea()) -print "-------------------------- MaxElementArea" +smesh.SetName(algo_2.GetSubMesh(), "SubMeshBox") -hypo4 = gen.CreateHypothesis("MaxElementArea", "libStdMeshersEngine.so") -hypo4.SetMaxElementArea(5000) -print hypo4.GetName() -print hypo4.GetMaxElementArea() -print hypo4.GetId() -print "-------------------------- Regular_1D" +print("-------------------------- add hypothesis to edge") -algo_1 = gen.CreateHypothesis("Regular_1D", "libStdMeshersEngine.so") -print algo_1.GetName() -print algo_1.GetId() -listHyp = algo_1.GetCompatibleHypothesis() -for hyp in listHyp: - print hyp -print algo_1.GetId() +edge = salome.IDToObject(ide) -print "-------------------------- MEFISTO_2D" +algo_3 = mesh.Segment(edge) +hyp = algo_3.LocalLength(100) +print(hyp.GetName()) +print(hyp.GetId()) +print(hyp.GetLength()) -algo_2 = gen.CreateHypothesis("MEFISTO_2D", "libStdMeshersEngine.so") -print algo_2.GetName() -print algo_2.GetId() -listHyp = algo_2.GetCompatibleHypothesis() -for hyp in listHyp: - print hyp -print algo_2.GetId() +smesh.SetName(algo_3.GetSubMesh(), "SubMeshEdge") -print "-------------------------- add hypothesis to edge" -edge = salome.IDToObject(ide) -submesh = mesh.GetSubMesh(edge, "SubMeshEdge") -ret = mesh.AddHypothesis(edge,algo_1) -print ret -ret = mesh.AddHypothesis(edge,hypo1) -print ret +print("-------------------------- compute face") -##print "-------------------------- compute edge" -##ret=gen.Compute(mesh,ide) -##print ret -##log=mesh.GetLog(1); -##for a in log: -## print a +face = salome.IDToObject(idf) -print "-------------------------- add hypothesis to box" - -box = salome.IDToObject(idb) -submesh = mesh.GetSubMesh(box, "SubMeshBox") -ret = mesh.AddHypothesis(box,algo_1) -print ret -ret = mesh.AddHypothesis(box,hypo1) -print ret -ret = mesh.AddHypothesis(box,algo_2) -print ret -ret = mesh.AddHypothesis(box,hypo4) -print ret - -print "-------------------------- compute face" - -ret = gen.Compute(mesh,idf) -print ret -log = mesh.GetLog(0) # 0 - GetLog without ClearLog after, else if 1 - ClearLog after +ret = mesh.Compute(face) +print(ret) +log = [] #mesh.GetLog(0) # 0 - GetLog without ClearLog after, else if 1 - ClearLog after for a in log: - print "-------" + print("-------") ii = 0 ir = 0 comType = a.commandType @@ -162,7 +119,7 @@ for a in log: ir = ir+1 r3 = a.coords[ir] ir = ir+1 - print "AddNode %i - %g %g %g" % (ind, r1, r2, r3) + print("AddNode %i - %g %g %g" % (ind, r1, r2, r3)) elif comType == 1: for i in range(a.number): ind = a.indexes[ii] @@ -171,30 +128,23 @@ for a in log: ii = ii+1 i2 = a.indexes[ii] ii = ii+1 - print "AddEdge %i - %i %i" % (ind, i1, i2) + print("AddEdge %i - %i %i" % (ind, i1, i2)) elif comType == 2: for i in range(a.number): ind = a.indexes[ii] + print(ind) ii = ii+1 + print(ii) i1 = a.indexes[ii] ii = ii+1 i2 = a.indexes[ii] + print(i2) ii = ii+1 + print("ii", ii) i3 = a.indexes[ii] + print(i3) + #ii = ii+1 ii = ii+1 - print "AddTriangle %i - %i %i %i" % (ind, i1, i2, i3) - -##print "-------------------------- compute box" -##ret=gen.Compute(mesh,idb) -##print ret -##log=mesh.GetLog(1); -##print log - -##shell=salome.IDToObject(ids) -##submesh=mesh.GetElementsOnShape(shell) -##ret=mesh.AddHypothesis(shell,algo_1) -##print ret -##ret=mesh.AddHypothesis(shell,hypo1) -##print ret -##ret=gen.Compute(mesh,ids) -##print ret + print("AddTriangle %i - %i %i %i" % (ind, i1, i2, i3)) + +salome.sg.updateObjBrowser()