From 5980f7c6cc925471e77507c48b92b84742432348 Mon Sep 17 00:00:00 2001 From: admin Date: Thu, 1 Apr 2004 11:58:40 +0000 Subject: [PATCH] This commit was generated by cvs2git to create branch 'V1_4_1a'. Sprout from master 2004-01-29 17:52:25 UTC jrt 'Upgrade to version 1.4.0.' Cherrypick from master 2004-04-01 11:58:39 UTC nadir 'adding python scripts to illustrate the way to mesh a shape giving different hypothesis on its sub-shapes.': doc/html/SMESHTutorial_1/ControlFeature.png doc/html/SMESHTutorial_1/ImportResult.png doc/html/SMESHTutorial_1/MeshInit.png doc/html/SMESHTutorial_1/MeshResult.png doc/html/SMESHTutorial_1/MeshResult2.png doc/html/SMESHTutorial_1/SMESHOverview.png doc/html/SMESHTutorial_1/SMESHTutorial_1.html doc/html/SMESHTutorial_1/SelectAlgorithms.png doc/html/SMESHTutorial_1/SetColor.png doc/html/SMESHTutorial_1/SubMeshContruction.png doc/html/SMESHTutorial_1/SubShapesSelection.png src/SMESH_SWIG/SMESH_box_hexa.py src/SMESH_SWIG/SMESH_demo_hexa.py src/SMESH_SWIG/SMESH_demo_hexa2.py src/SMESH_SWIG/SMESH_demo_tetra.py src/SMESH_SWIG/SMESH_demo_tetra2.py Cherrypick from master 2004-01-30 15:42:52 UTC jrt 'update.': ChangeLog Cherrypick from IMPORT 2003-07-10 08:13:02 UTC yfr 'sources v1.2': src/DriverMED/DriverMED_R_SMESHDS_Document.h src/DriverMED/DriverMED_W_SMESHDS_Document.h src/SMESHGUI/SMESHGUI_msg_en.po --- ChangeLog | 72 +----- doc/html/SMESHTutorial_1/ControlFeature.png | Bin 0 -> 14080 bytes doc/html/SMESHTutorial_1/ImportResult.png | Bin 0 -> 12362 bytes doc/html/SMESHTutorial_1/MeshInit.png | Bin 0 -> 804 bytes doc/html/SMESHTutorial_1/MeshResult.png | Bin 0 -> 34332 bytes doc/html/SMESHTutorial_1/MeshResult2.png | Bin 0 -> 41749 bytes doc/html/SMESHTutorial_1/SMESHOverview.png | Bin 0 -> 40811 bytes doc/html/SMESHTutorial_1/SMESHTutorial_1.html | 230 +++++++++++++++++ doc/html/SMESHTutorial_1/SelectAlgorithms.png | Bin 0 -> 1002 bytes doc/html/SMESHTutorial_1/SetColor.png | Bin 0 -> 4037 bytes .../SMESHTutorial_1/SubMeshContruction.png | Bin 0 -> 4280 bytes .../SMESHTutorial_1/SubShapesSelection.png | Bin 0 -> 5099 bytes src/SMESH_SWIG/SMESH_box_hexa.py | 215 ++++++++++++++++ src/SMESH_SWIG/SMESH_demo_hexa.py | 175 +++++++++++++ src/SMESH_SWIG/SMESH_demo_hexa2.py | 225 ++++++++++++++++ src/SMESH_SWIG/SMESH_demo_tetra.py | 176 +++++++++++++ src/SMESH_SWIG/SMESH_demo_tetra2.py | 243 ++++++++++++++++++ 17 files changed, 1278 insertions(+), 58 deletions(-) create mode 100644 doc/html/SMESHTutorial_1/ControlFeature.png create mode 100644 doc/html/SMESHTutorial_1/ImportResult.png create mode 100644 doc/html/SMESHTutorial_1/MeshInit.png create mode 100644 doc/html/SMESHTutorial_1/MeshResult.png create mode 100644 doc/html/SMESHTutorial_1/MeshResult2.png create mode 100644 doc/html/SMESHTutorial_1/SMESHOverview.png create mode 100644 doc/html/SMESHTutorial_1/SMESHTutorial_1.html create mode 100644 doc/html/SMESHTutorial_1/SelectAlgorithms.png create mode 100644 doc/html/SMESHTutorial_1/SetColor.png create mode 100644 doc/html/SMESHTutorial_1/SubMeshContruction.png create mode 100644 doc/html/SMESHTutorial_1/SubShapesSelection.png create mode 100644 src/SMESH_SWIG/SMESH_box_hexa.py create mode 100644 src/SMESH_SWIG/SMESH_demo_hexa.py create mode 100644 src/SMESH_SWIG/SMESH_demo_hexa2.py create mode 100644 src/SMESH_SWIG/SMESH_demo_tetra.py create mode 100644 src/SMESH_SWIG/SMESH_demo_tetra2.py diff --git a/ChangeLog b/ChangeLog index 77da70fb1..46cf0c992 100644 --- a/ChangeLog +++ b/ChangeLog @@ -4,6 +4,20 @@ #cvs2cl.pl -l "-b" -U users.cvs2cl --header header.cvs2cl -T -b --utc ############################################################################### +2004-01-30 13:18 Nicolas Rejneri + + * doc/html/INPUT/: doxyfile, sources/static/tree.js: NRI : 1.4.0 + version + +2004-01-29 17:52 Jerome Robert + + * INSTALL, bin/VERSION: Upgrade to version 1.4.0. + +2004-01-29 17:33 Jerome Robert + + * src/: SMESHGUI/SMESHGUI_StudyAPI.cxx, SMESHGUI/SMESHGUI_Swig.cxx, + SMESH_I/SMESH_Gen_i.cxx: Merge branch merge_1_2_d + 2004-01-14 09:24 Nicolas Rejneri * doc/html/Makefile.in: NRI : bug KERNEL5014 fixed. @@ -28,10 +42,6 @@ 2004-01-05 14:28 tag V1_3_1 -2004-01-05 14:28 Jerome Robert - - * ChangeLog, cvs-tags: update - 2004-01-05 13:53 Jerome Robert * src/NETGEN/: ReadMeForNgUsers, netgen43ForSalome.patch: Add a @@ -149,10 +159,6 @@ * src/MEFISTO2/trte.f: Remove "pause" primitive call. -2003-11-27 11:47 Jerome Robert - - * ChangeLog, cvs-tags: update - 2003-11-27 11:45 Jerome Robert * resources/SMESH_en.xml, resources/SMESH_fr.xml, @@ -201,10 +207,6 @@ nadir_update_MED_v1_3_0 (branch to build the V1_3_0 version of the module. -2003-11-17 09:22 Jerome Robert - - * cvs-tags: update - 2003-11-12 13:20 tag V1_3_0_b1 2003-11-12 13:20 Jerome Robert @@ -248,10 +250,6 @@ * src/SMDS/SMDS_Mesh.cxx: Fix a bug. Quadrangles were added as triangles. -2003-10-17 12:35 Jerome Robert - - * cvs-tags: Create branch merge_1_2_c__1_2_2 - 2003-10-06 10:50 tag MergeV1_2c-1 2003-10-06 10:50 Jerome Robert @@ -304,10 +302,6 @@ * src/SMDS/SMDS_VolumeOfNodes.cxx: Fix bug. Was always printing 8 nodes -2003-09-08 15:11 Jerome Robert - - * ChangeLog: update - 2003-09-08 15:04 Jerome Robert * src/SMDS/: SMDS_Mesh.cxx, SMDS_VolumeOfNodes.cxx, @@ -556,10 +550,6 @@ SMDS_VertexPosition.cdl, SMDS_VertexPosition.ixx, SMDS_VertexPosition.jxx: Remove no longer needed files -2003-09-04 14:09 Jerome Robert - - * ChangeLog: Add a ChangeLog file - 2003-09-04 13:28 Jerome Robert * build_configure: It seems "make_omniorb" and "make_commence" need @@ -738,40 +728,6 @@ SMDS_VolumeOfNodes.cxx, SMDS_VolumeOfNodes.hxx: Add needed class for the new DS -2003-07-18 12:19 tag V_02092003 - -2003-07-18 12:19 tag V_03092003 - -2003-07-18 12:19 tag V_04092003 - -2003-07-18 12:19 tag V_05092003 - -2003-07-18 12:19 tag V_06092003 - -2003-07-18 12:19 tag V_07092003 - -2003-07-18 12:19 tag V_08092003 - -2003-07-18 12:19 tag V_09092003 - -2003-07-18 12:19 tag V_10092003 - -2003-07-18 12:19 tag V_11092003 - -2003-07-18 12:19 tag V_12092003 - -2003-07-18 12:19 tag V_13092003 - -2003-07-18 12:19 tag V_14092003 - -2003-07-18 12:19 tag V_15092003 - -2003-07-18 12:19 tag V_16092003 - -2003-07-18 12:19 tag V_17092003 - -2003-07-18 12:19 tag V_18092003 - 2003-07-18 12:19 Nicolas Rejneri * src/SMESHGUI/SMESHGUI_StudyAPI.cxx: NRI : correction wrong merge. diff --git a/doc/html/SMESHTutorial_1/ControlFeature.png b/doc/html/SMESHTutorial_1/ControlFeature.png new file mode 100644 index 0000000000000000000000000000000000000000..82222c47c8ec6d034b64c7f0e482c862befd4780 GIT binary patch literal 14080 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
  • `{W2p>=g6$hVK1w*F9Y)HJKHm6-CvmA1}=P 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 literal 0 HcmV?d00001 diff --git a/doc/html/SMESHTutorial_1/MeshInit.png b/doc/html/SMESHTutorial_1/MeshInit.png new file mode 100644 index 0000000000000000000000000000000000000000..c9c4c1603d70ba54fa2d19ae8d41035384449d48 GIT binary patch literal 804 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

    nsJ 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 + + + + Geometry module in SALOME environnement + + + +

    SMESH starting tutorial

    + +

    2D meshing with MEFISTO

    + +

    Overview

    + +

    Before following this tutorial you need to create or import a geometry. +Please refere to the GEOM module documentation to do so.

    + +

    Now we have to load SMESH component. To do so :

    +
      +
    • click on the SMESH icon or on 'SMESH' into the combo box of resources + on botton left.
    • +
    + +

    SMESH is used to mesh edges, faces and volums each one thanks to a +specialised algorithm. To mesh an entity which degree is n, one must have all +its lower degree entities meshed. For instance, to mesh a face requires a +previous meshing of all its edges. In the example MEFISTO meshes faces, and +Regular_1D meshes edges. MEFISTO doesn't check how edges are meshed. The only +test it does is to verify that edges are meshed before starting its work. +MEFISTO requires an hypothesis : maximum area of triangles. Regular_1D +requires one hypothesis among two: number of segments per edge or +length of segment. 

    + +

    The entire operation is done by :

    +
      +
    1. init a mesh object associated to a geometrical object
    2. +
    3. choosing an algorithm for meshing faces, here MEFISTO is + choosen
    4. +
    5. choosing an algorithm for meshing edges, here Regular1d is + choosen
    6. +
    7. creating hypothesis of calculation. We need to inform : +
        +
      • the number of segments per edge
      • +
      • the maximum area per triangle of meshing
      • +
      +
    8. +
    9. setting or attaching algorithm and hypothesis to the object loaded
    10. +
    11. launching computation
    12. +
    13. displaying the result in the best mode.
    14. +
    + + +

    Details

    + +

    Below are explained those 6 steps precisely :

    +
      +
    1. init a mesh object associated to a geometrical object :

      +

      +
        +
      • In the menu bar on the top, find the Mesh menu and click on + Init.
      • +
      • Then in the dialog box select the topology into Geometry field of + ObjectBrowser or Viewer, give a name an click on Ok.
      • +
      • The topology is now known inside SMESH component.
      • +
      +
    2. +
    3. define algorithms for meshing :

      +

      +
        +
      • In the menu bar, find Hypothesis, Algorithm then + click on Mefisto.
      • +
      • Do the same to load 'Regular1D'.
      • +
      • Remember, Regular1D is needed for edge meshing.
      • +
      +
    4. +
    5. define hypothesis of calculation :
      + In the menu bar, find Hypothesis then Hypothesis and click on + Segments. Then in the dialog box give a name for hypothesis and a + value that is the number of segments per edge. Enter 7 segments for + example.
      + Do the same for 'Max. Element Area' argument that is the maximum surface + of triangles builded during meshing. Enter 2500 here.

      +
    6. +
    7. Attach previous arguments (hypothesis) and algorithm to the + topology :
      + Select the object in the Object Browser then using pop up menu (right + click on object),
      + 'Set algorithm' and 'Set Hypothesis' into specialized dialog boxes.
      + You can also find these methods in the menu 'Hypothesis'.

      +
    8. +
    9. Selecting the mesh object before, start computation in the pop up + menu; click on 'Compute'.

      +
    10. +
    11. Update the display using 'Update' if necessary.
      + Note : in Preferencies / Mesh menu there is an + option to have an automatic update of the display after operations that + modify it such as Compute, adding nodes… If this option is not + setted user must make an update of the display manually.
      +
      + You may also adjust the display 'Properties' / 'Display Mode' has + you prefer ; shading, wireframe or shrink,
      + and adjust color and size attributs in a specific dialog box shown + below.

      +

      +
    12. +
    + +

    Final result of meshing

    + +

    At this final step you can observe the result of 2D meshing of faces by +MEFISTO.

    + +

    Note : it is possible to change an hypothesis by mean the pop up then +Edit and finally compute again.

    + +

    + +

    Meshing with global and local hypothesis

    + +

    details

    + +

    We would now make a mesh as before but with a local modification of +parameter (hypothesis) on an edge. We first have to explode the initial +topology in GEOMETRY component. This operation will give us access to sub +shapes edges of geom.brep.

    +
      +
    1. import or create a geometry as before

      +
    2. +
    3. call 'Explode' method found in 'New Entity' on the menu bar ; + (remember the tip about Automatic/Store !)

      +

      +
    4. +
    5. select the main object, choose 'Edge' in the combo box and click on + Ok.
      + Note : do not click on 'select sub shape' at anytime. This + function is used with OCC viewer for individual sub shape selection not + yet available with VTK.
      +
      + Now the object browser contents all edges as sub shapes of the main + topology. Select the first edge Edge_ 1 and display only it. + Use the pop up 'Display only' mode for this.
      + You may also rename the edge to remember it for future meshing.
      + Our scope : apply a local hypothesis on this edge.
      +

      +
    6. +
    7. The job is now finished for GEOMETRY component.

      +
    8. +
    9. Load SMESH component and use menus 'Mesh' and 'Init' to load the + topology into SMESH as before.
      + (Already defined if you have kept the previous study.)

      +
    10. +
    11. Define algorithms Regular_1D and Mefisto using menus 'Hypothesis' + and 'Algorithm'.

      +
    12. +
    13. Define hypothesis 'Segments' = 7 and 'Max. Element Area' = 2500. + (Already defined if…)

      +
    14. +
    15. Define another hypothesis 'Local length' = 100 to be used only as + local parameter for the edge.

      +
    16. +
    17. Now we have to attach algorithms and hypothesis to topologies, the + global and the sub shape edge.
      + For the main topology, select it and use 'Set algorithms' and 'Set + Hypothesis' and attach :
      + hypothesis 'Segments' = 7 and 'Max. Element Area' = 2500.

      +
    18. +
    19. To set a local parameter of meshing on the edge we do :
      + click on 'Mesh' menu then 'Add Sub Mesh'. On the dialog box select the + main object then sub object edge from Object Browser and GEOMETRY field. + Give it a local name; for example myEdge or anyone.

      +

      +
    20. +
    21. Set the algorithm used for edge meshing. Here use Regular_ 1D. +

      +
    22. +
    23. Set a local hypothesis to the edge. Use 'Local length' = 100.

      +
    24. +
    25. 'Compute' (and 'Update' display if necessary see + before) the main mesh object. This will compute also the edge sub + shape.
      + Do not forget to activate the display mode Wireframe, + Shading or Shrink; see in pop up menu 'Properties', + 'Display mode'…

      +
    26. +
    27. Move the point of view to watch the edge meshed with a local + hypothesis 'Local length' = 100.

      +
    28. +
    + +

    The result of second meshing

    + +

    As we see below, the effect produced by setting a local hypothesis setted +on the edge Edge_ 1.

    + +

    Compare to another edge that have the same physical +length.

    + +

    + +

    Using PYTHON interpretor to import an example script

    +It is easy to import an example of meshing procedure using PYTHON interpretor +: +
      +
    • Load SMESH component with VTK viewer.
    • +
    • Just type 'import geomMesh.py' in the textual window of + PYTHON.
    • +
    • Validate with the Enter key.
    • +
    • You just have to run 'Compute' then choose a display mode to see the + result.
    • +
    +This imported example is very similar to the last exercice. It uses a local +hypothesis on an edge too. + +

    + +

    Control features

    + +

    Test now a control function of area for mesh resulting triangles.

    + +

    Find Control on the menu bar then Cells and Area. The +image below displays areas with a color depending on its value in the scalar +bar shown on the left.
    +Scalar bar general parameters are setted in Preferencies / +Mesh / Scalar Bar.

    + +

    Specific range parameters are changed with the pop up menu.

    + +

    + + diff --git a/doc/html/SMESHTutorial_1/SelectAlgorithms.png b/doc/html/SMESHTutorial_1/SelectAlgorithms.png new file mode 100644 index 0000000000000000000000000000000000000000..c69f3e4bab5115a9f5f645540e06a4946b83908c GIT binary patch literal 1002 zcmVv8HZ5QW7Z3V}{s3RJ?R5?qQ?iPH)9hrzRvWUB~rtkZVDlV6cm%@6|^+ILuC{B7FT7R{o^>EPN#O( z+Z>@5xLkhvzHj0IPE0=R{WPrvV81Id@lANoPyjF#0L*g@7={jN#vYl%yyyX7C;%7= z0EPm9p#Weg0GLt%x)+HInn#Ij>DHGnwnEWwL0#7k!w_D7jL)}NooZ8%RKgpN(NQ@G z7CxGb%Sx8&3_qhb$U3dLNRbD~9-IW2{b0J7GU&&tEbgU*m3w9+vPErM`L3-f^?>1p zH{#NzWYA}^Xtg1eaP#m{bR}qEl|d@60dtD%V*Q*ei+dOD zoo|_%+4Vd(p1AG#tF{S$fnr6IskT8TK9aoaRjTR|u zNRy?(yHwol6tv2QCSfVj<&k(a2}`jv47WmM0m81Q7-=^DO?c~205B8)48u~uFf0WI z!%|GZH2@3+07C)5PyjF#01O2HgE=jw;*L$YJHNIdmTjMwQi2g{VW*{pL`!+@8veR$c(T0d`u7=AFA8#IsZjOObD~s-O#o@UG%nV5g;g2K(_Wt^N$nm{s=~&tmJe z6qlSI!sgQTFBLa61=%_+CAvKRRcxJ>f*poHtO#IyF>eQd3j#v{z)%1%NB7#ECuEQO Y2L$mWz?xNX*8l(j07*qoM6N<$f}9M)HUIzs literal 0 HcmV?d00001 diff --git a/doc/html/SMESHTutorial_1/SetColor.png b/doc/html/SMESHTutorial_1/SetColor.png new file mode 100644 index 0000000000000000000000000000000000000000..bda5fd568f2377ccc99a0a8b61deebc4b181cdbc GIT binary patch literal 4037 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 TUm&o{a}MZLt1IP~?#28MM^^Vo literal 0 HcmV?d00001 diff --git a/doc/html/SMESHTutorial_1/SubMeshContruction.png b/doc/html/SMESHTutorial_1/SubMeshContruction.png new file mode 100644 index 0000000000000000000000000000000000000000..1080f08fe836b552dae7338c947ec6556db19a1a GIT binary patch literal 4280 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 Hw|xB{4Y^(y literal 0 HcmV?d00001 diff --git a/src/SMESH_SWIG/SMESH_box_hexa.py b/src/SMESH_SWIG/SMESH_box_hexa.py new file mode 100644 index 000000000..2c6b20ca5 --- /dev/null +++ b/src/SMESH_SWIG/SMESH_box_hexa.py @@ -0,0 +1,215 @@ +# +# Hexahedrization of a simple box. Hypothesis and algorithms for +# the mesh generation are not global: the mesh of some edges is thinner +# + +import salome +from salome import sg + +import geompy + +import SMESH +import smeshpy + +# ----------------------------------------------------------------------------- + +geom = geompy.geom +myBuilder = geompy.myBuilder + +ShapeTypeShell = 3 +ShapeTypeFace = 4 +ShapeTypeEdge = 6 + +# ---- define a boxe + +box = geompy.MakeBox(0., 0., 0., 1., 1., 1.) + +idbox = geompy.addToStudy(box,"box") + +print "Analysis of the geometry box :" +subShellList=geompy.SubShapeAllSorted(box,ShapeTypeShell) +subFaceList=geompy.SubShapeAllSorted(box,ShapeTypeFace) +subEdgeList=geompy.SubShapeAllSorted(box,ShapeTypeEdge) + +print "number of Shells in box : ",len(subShellList) +print "number of Faces in box : ",len(subFaceList) +print "number of Edges in box : ",len(subEdgeList) + +idSubEdge = [] +for k in range(len(subEdgeList)): + idSubEdge.append(geompy.addToStudyInFather(box,subEdgeList[k],"SubEdge"+str(k))) + +edgeX = [] +edgeX.append(subEdgeList[4]) +edgeX.append(subEdgeList[5]) +edgeX.append(subEdgeList[6]) +edgeX.append(subEdgeList[7]) + +edgeY = [] +edgeY.append(subEdgeList[1]) +edgeY.append(subEdgeList[2]) +edgeY.append(subEdgeList[9]) +edgeY.append(subEdgeList[10]) + +edgeZ = [] +edgeZ.append(subEdgeList[0]) +edgeZ.append(subEdgeList[3]) +edgeZ.append(subEdgeList[8]) +edgeZ.append(subEdgeList[11]) + +idEdgeX = [] +idEdgeY = [] +idEdgeZ = [] +for i in range(4): + idEdgeX.append(geompy.addToStudyInFather(box,edgeX[i],"EdgeX"+str(i+1))) + idEdgeY.append(geompy.addToStudyInFather(box,edgeY[i],"EdgeY"+str(i+1))) + idEdgeZ.append(geompy.addToStudyInFather(box,edgeZ[i],"EdgeZ"+str(i+1))) + +# ---- launch SMESH + +smeshgui = salome.ImportComponentGUI("SMESH") +smeshgui.Init(salome.myStudyId) + +gen=smeshpy.smeshpy() + +# ---- create Hypothesis + +print "-------------------------- create Hypothesis" + +print "-------------------------- NumberOfSegments in X, Y, Z direction" + +numberOfSegmentsX = 10 + +hyp1=gen.CreateHypothesis("NumberOfSegments") +hypNbSegX=hyp1._narrow(SMESH.SMESH_NumberOfSegments) +hypNbSegX.SetNumberOfSegments(numberOfSegmentsX) +hypNbSegXID = hypNbSegX.GetId() +print hypNbSegX.GetName() +print hypNbSegXID +print hypNbSegX.GetNumberOfSegments() + +idsegX = smeshgui.AddNewHypothesis( salome.orb.object_to_string(hypNbSegX) ) +smeshgui.SetName(idsegX, "NumberOfSegmentsX") + +print "" + +numberOfSegmentsY = 20 + +hyp1=gen.CreateHypothesis("NumberOfSegments") +hypNbSegY=hyp1._narrow(SMESH.SMESH_NumberOfSegments) +hypNbSegY.SetNumberOfSegments(numberOfSegmentsY) +hypNbSegYID = hypNbSegY.GetId() +print hypNbSegY.GetName() +print hypNbSegYID +print hypNbSegY.GetNumberOfSegments() + +idsegY = smeshgui.AddNewHypothesis( salome.orb.object_to_string(hypNbSegY) ) +smeshgui.SetName(idsegY, "NumberOfSegmentsY") + +print "" + +numberOfSegmentsZ = 40 + +hyp1=gen.CreateHypothesis("NumberOfSegments") +hypNbSegZ=hyp1._narrow(SMESH.SMESH_NumberOfSegments) +hypNbSegZ.SetNumberOfSegments(numberOfSegmentsZ) +hypNbSegZID = hypNbSegZ.GetId() +print hypNbSegZ.GetName() +print hypNbSegZID +print hypNbSegZ.GetNumberOfSegments() + +idsegZ = smeshgui.AddNewHypothesis( salome.orb.object_to_string(hypNbSegZ) ) +smeshgui.SetName(idsegZ, "NumberOfSegmentsZ") + +# ---- create Algorithms + +print "-------------------------- create Algorithms" + +print "-------------------------- Regular_1D" + +hypothesis=gen.CreateHypothesis("Regular_1D") +regular1D = hypothesis._narrow(SMESH.SMESH_Regular_1D) +regularID = smeshgui.AddNewAlgorithms( salome.orb.object_to_string(regular1D) ) +smeshgui.SetName(regularID, "Wire Discretisation") + +print "-------------------------- Quadrangle_2D" + +hypothesis=gen.CreateHypothesis("Quadrangle_2D") +quad2D = hypothesis._narrow(SMESH.SMESH_Quadrangle_2D) +quadID = smeshgui.AddNewAlgorithms( salome.orb.object_to_string(quad2D) ) +smeshgui.SetName(quadID, "Quadrangle_2D") + +print "-------------------------- Hexa_3D" + +hypothesis=gen.CreateHypothesis("Hexa_3D") +hexa3D = hypothesis._narrow(SMESH.SMESH_Hexa_3D) +hexaID = smeshgui.AddNewAlgorithms( salome.orb.object_to_string(hexa3D) ) +smeshgui.SetName(hexaID, "Hexa_3D") + +# ---- init a Mesh with the boxe + +mesh=gen.Init(idbox) +idmesh = smeshgui.AddNewMesh( salome.orb.object_to_string(mesh) ) +smeshgui.SetName(idmesh, "MeshBox") +smeshgui.SetShape(idbox, idmesh) + +# ---- add hypothesis to the boxe + +print "-------------------------- add hypothesis to the boxe" +print " the number of segments is globally set to" +print " NumberOfSegmentsX = ", numberOfSegmentsX + +ret=mesh.AddHypothesis(box,regular1D) +print ret +ret=mesh.AddHypothesis(box,hypNbSegX) +print ret +ret=mesh.AddHypothesis(box,quad2D) +print ret +ret=mesh.AddHypothesis(box,hexa3D) +print ret + +print "-------------------------- set algoritms" + +smeshgui.SetAlgorithms( idmesh, regularID) +smeshgui.SetHypothesis( idmesh, idsegX ) +smeshgui.SetAlgorithms( idmesh, quadID ) +smeshgui.SetAlgorithms( idmesh, hexaID ) + +for i in range(4): + print "-------------------------- add hypothesis to edge in the Y and Z directions", (i+1) + + subMeshEdgeY = mesh.GetElementsOnShape(edgeY[i]) + subMeshEdgeZ = mesh.GetElementsOnShape(edgeZ[i]) + + retY = mesh.AddHypothesis(edgeY[i],hypNbSegY) + retZ = mesh.AddHypothesis(edgeZ[i],hypNbSegZ) + print " add hyp Y ", retY, " Z ", retZ + + idsmY = smeshgui.AddSubMeshOnShape( + idmesh,idEdgeY[i],salome.orb.object_to_string(subMeshEdgeY), + ShapeTypeEdge) + idsmZ = smeshgui.AddSubMeshOnShape( + idmesh,idEdgeZ[i],salome.orb.object_to_string(subMeshEdgeZ), + ShapeTypeEdge) + + smeshgui.SetName(idsmY, "SubMeshEdgeY_"+str(i+1)) + smeshgui.SetName(idsmZ, "SubMeshEdgeZ_"+str(i+1)) + + smeshgui.SetHypothesis(idsmY, idsegY) + smeshgui.SetHypothesis(idsmZ, idsegZ) + +sg.updateObjBrowser(1) + +print "-------------------------- compute the mesh of the boxe" +ret=gen.Compute(mesh,idbox) +print ret +if ret != 0: + log=mesh.GetLog(0) # no erase trace + for linelog in log: + print linelog +else: + print "problem when Computing the mesh" + +sg.updateObjBrowser(1) + + diff --git a/src/SMESH_SWIG/SMESH_demo_hexa.py b/src/SMESH_SWIG/SMESH_demo_hexa.py new file mode 100644 index 000000000..5446936ba --- /dev/null +++ b/src/SMESH_SWIG/SMESH_demo_hexa.py @@ -0,0 +1,175 @@ +# +# Tetrahedrization of a geometry (box minus a inner cylinder). +# Hypothesis and algorithms for the mesh generation are global +# + +import math +import salome +from salome import sg + +import geompy + +import SMESH +import smeshpy + +# ----------------------------------------------------------------------------- + +geom = geompy.geom +myBuilder = geompy.myBuilder + +ShapeTypeShell = 3 +ShapeTypeFace = 4 +ShapeTypeEdge = 6 + +a = math.sqrt(2.)/4. +ma = - a +zero = 0. +un = 1. +mun= - un +demi = 1./2. + +Orig = geom.MakePointStruct(zero,zero,zero) +P0 = geom.MakePointStruct(a,a,zero) +P1 = geom.MakePointStruct(zero,demi,zero) +P2 = geom.MakePointStruct(ma,a,zero) +P3 = geom.MakePointStruct(mun,un,zero) +P4 = geom.MakePointStruct(un,un,zero) +P5 = geom.MakePointStruct(zero,zero,un) + +arc = geompy.MakeArc(P0,P1,P2) +e1 = geompy.MakeEdge(P2,P3) +e2 = geompy.MakeEdge(P3,P4) +e3 = geompy.MakeEdge(P4,P0) + +list = [] +list.append(arc._get_Name()) +list.append(e1._get_Name()) +list.append(e2._get_Name()) +list.append(e3._get_Name()) + +wire = geompy.MakeWire(list) +face = geompy.MakeFace(wire,1) + +dir = geompy.MakeVector(Orig,P5) +vol1 = geompy.MakePipe(dir,face) + +angle = math.pi/2. +dir = geom.MakeAxisStruct(zero,zero,zero,zero,zero,un) +vol2 = geompy.MakeRotation(vol1,dir,angle) + +vol3 = geompy.MakeRotation(vol2,dir,angle) + +vol4 = geompy.MakeRotation(vol3,dir,angle) + +list = [] +list.append(vol1._get_Name()) +list.append(vol2._get_Name()) +list.append(vol3._get_Name()) +list.append(vol4._get_Name()) + +volComp = geompy.MakeCompound(list) + +tol3d = 1.e-3 +vol = geom.MakeGlueFaces(volComp,tol3d) +idVol = geompy.addToStudy(vol,"volume") + +print "Analysis of the final volume:" +subShellList=geompy.SubShapeAll(vol,ShapeTypeShell) +subFaceList=geompy.SubShapeAll(vol,ShapeTypeFace) +subEdgeList=geompy.SubShapeAll(vol,ShapeTypeEdge) + +print "number of Shells in the volume : ",len(subShellList) +print "number of Faces in the volume : ",len(subFaceList) +print "number of Edges in the volume : ",len(subEdgeList) + +# ---- launch SMESH + +smeshgui = salome.ImportComponentGUI("SMESH") +smeshgui.Init(salome.myStudyId) + +gen=smeshpy.smeshpy() + +# ---- create Hypothesis + +print "-------------------------- create Hypothesis" + +print "-------------------------- NumberOfSegments" + +numberOfSegments = 10 + +hypothesis=gen.CreateHypothesis("NumberOfSegments") +hypNbSeg=hypothesis._narrow(SMESH.SMESH_NumberOfSegments) +hypNbSeg.SetNumberOfSegments(numberOfSegments) +hypNbSegID = hypNbSeg.GetId() +print hypNbSeg.GetName() +print hypNbSegID +print hypNbSeg.GetNumberOfSegments() + +idseg = smeshgui.AddNewHypothesis( salome.orb.object_to_string(hypNbSeg) ) +smeshgui.SetName(idseg, "NumberOfSegments") + +# ---- create Algorithms + +print "-------------------------- create Algorithms" + +print "-------------------------- Regular_1D" + +hypothesis=gen.CreateHypothesis("Regular_1D") +regular1D = hypothesis._narrow(SMESH.SMESH_Regular_1D) +regularID = smeshgui.AddNewAlgorithms( salome.orb.object_to_string(regular1D) ) +smeshgui.SetName(regularID, "Wire Discretisation") + +print "-------------------------- Quadrangle_2D" + +hypothesis=gen.CreateHypothesis("Quadrangle_2D") +quad2D = hypothesis._narrow(SMESH.SMESH_Quadrangle_2D) +quadID = smeshgui.AddNewAlgorithms( salome.orb.object_to_string(quad2D) ) +smeshgui.SetName(quadID, "Quadrangle_2D") + +print "-------------------------- Hexa_3D" + +hypothesis=gen.CreateHypothesis("Hexa_3D") +hexa3D = hypothesis._narrow(SMESH.SMESH_Hexa_3D) +hexaID = smeshgui.AddNewAlgorithms( salome.orb.object_to_string(hexa3D) ) +smeshgui.SetName(hexaID, "Hexa_3D") + +# ---- init a Mesh with the volume + +mesh=gen.Init(idVol) +idmesh = smeshgui.AddNewMesh( salome.orb.object_to_string(mesh) ) +smeshgui.SetName(idmesh, "meshVolume") +smeshgui.SetShape(idVol, idmesh) + +# ---- add hypothesis to the volume + +print "-------------------------- add hypothesis to the volume" + +ret=mesh.AddHypothesis(vol,regular1D) +print ret +ret=mesh.AddHypothesis(vol,hypNbSeg) +print ret +ret=mesh.AddHypothesis(vol,quad2D) +print ret +ret=mesh.AddHypothesis(vol,hexa3D) +print ret + +print "-------------------------- set algoritms" + +smeshgui.SetAlgorithms( idmesh, regularID) +smeshgui.SetHypothesis( idmesh, idseg ) +smeshgui.SetAlgorithms( idmesh, quadID ) +smeshgui.SetAlgorithms( idmesh, hexaID ) + +sg.updateObjBrowser(1) + +print "-------------------------- compute the mesh of the volume" +ret=gen.Compute(mesh,idVol) +print ret +if ret != 0: + log=mesh.GetLog(0) # no erase trace + for linelog in log: + print linelog +else: + print "problem when Computing the mesh" + +sg.updateObjBrowser(1) diff --git a/src/SMESH_SWIG/SMESH_demo_hexa2.py b/src/SMESH_SWIG/SMESH_demo_hexa2.py new file mode 100644 index 000000000..336bf01ef --- /dev/null +++ b/src/SMESH_SWIG/SMESH_demo_hexa2.py @@ -0,0 +1,225 @@ +# +# Tetrahedrization of a geometry (box minus a inner cylinder). +# Hypothesis and algorithms for the mesh generation are not global: +# the mesh of some edges is thinner +# + +import math +import salome +from salome import sg + +import geompy + +import SMESH +import smeshpy + +# ----------------------------------------------------------------------------- + +geom = geompy.geom +myBuilder = geompy.myBuilder + +ShapeTypeShell = 3 +ShapeTypeFace = 4 +ShapeTypeEdge = 6 + +a = math.sqrt(2.)/4. +ma = - a +zero = 0. +un = 1. +mun= - un +demi = 1./2. + +Orig = geom.MakePointStruct(zero,zero,zero) +P0 = geom.MakePointStruct(a,a,zero) +P1 = geom.MakePointStruct(zero,demi,zero) +P2 = geom.MakePointStruct(ma,a,zero) +P3 = geom.MakePointStruct(mun,un,zero) +P4 = geom.MakePointStruct(un,un,zero) +P5 = geom.MakePointStruct(zero,zero,un) + +arc = geompy.MakeArc(P0,P1,P2) +e1 = geompy.MakeEdge(P2,P3) +e2 = geompy.MakeEdge(P3,P4) +e3 = geompy.MakeEdge(P4,P0) + +list = [] +list.append(arc._get_Name()) +list.append(e1._get_Name()) +list.append(e2._get_Name()) +list.append(e3._get_Name()) + +wire = geompy.MakeWire(list) +face = geompy.MakeFace(wire,1) + +dir = geompy.MakeVector(Orig,P5) +vol1 = geompy.MakePipe(dir,face) + +angle = math.pi/2. +dir = geom.MakeAxisStruct(zero,zero,zero,zero,zero,un) +vol2 = geompy.MakeRotation(vol1,dir,angle) + +vol3 = geompy.MakeRotation(vol2,dir,angle) + +vol4 = geompy.MakeRotation(vol3,dir,angle) + +list = [] +list.append(vol1._get_Name()) +list.append(vol2._get_Name()) +list.append(vol3._get_Name()) +list.append(vol4._get_Name()) + +volComp = geompy.MakeCompound(list) + +tol3d = 1.e-3 +vol = geom.MakeGlueFaces(volComp,tol3d) +idVol = geompy.addToStudy(vol,"volume") + +print "Analysis of the final volume:" +subShellList=geompy.SubShapeAllSorted(vol,ShapeTypeShell) +subFaceList=geompy.SubShapeAllSorted(vol,ShapeTypeFace) +subEdgeList=geompy.SubShapeAllSorted(vol,ShapeTypeEdge) + +print "number of Shells in the volume : ",len(subShellList) +print "number of Faces in the volume : ",len(subFaceList) +print "number of Edges in the volume : ",len(subEdgeList) + +idSubEdge = [] +for k in range(len(subEdgeList)): + idSubEdge.append(geompy.addToStudyInFather(vol,subEdgeList[k],"SubEdge"+str(k))) + +edgeZ = [] +edgeZ.append(subEdgeList[0]) +edgeZ.append(subEdgeList[3]) +edgeZ.append(subEdgeList[10]) +edgeZ.append(subEdgeList[11]) +edgeZ.append(subEdgeList[20]) +edgeZ.append(subEdgeList[21]) +edgeZ.append(subEdgeList[28]) +edgeZ.append(subEdgeList[31]) + +idEdgeZ = [] +for i in range(8): + idEdgeZ.append(geompy.addToStudyInFather(vol,edgeZ[i],"EdgeZ"+str(i+1))) + +# ---- launch SMESH + +smeshgui = salome.ImportComponentGUI("SMESH") +smeshgui.Init(salome.myStudyId) + +gen=smeshpy.smeshpy() + +# ---- create Hypothesis + +print "-------------------------- create Hypothesis" + +print "-------------------------- NumberOfSegments the global one" + +numberOfSegments = 10 + +hypothesis=gen.CreateHypothesis("NumberOfSegments") +hypNbSeg=hypothesis._narrow(SMESH.SMESH_NumberOfSegments) +hypNbSeg.SetNumberOfSegments(numberOfSegments) +hypNbSegID = hypNbSeg.GetId() +print hypNbSeg.GetName() +print hypNbSegID +print hypNbSeg.GetNumberOfSegments() + +idseg = smeshgui.AddNewHypothesis( salome.orb.object_to_string(hypNbSeg) ) +smeshgui.SetName(idseg, "NumberOfSegments") + +print "-------------------------- NumberOfSegments in the Z direction" + +numberOfSegmentsZ = 40 + +hypothesis=gen.CreateHypothesis("NumberOfSegments") +hypNbSegZ=hypothesis._narrow(SMESH.SMESH_NumberOfSegments) +hypNbSegZ.SetNumberOfSegments(numberOfSegmentsZ) +hypNbSegZID = hypNbSegZ.GetId() +print hypNbSegZ.GetName() +print hypNbSegZID +print hypNbSegZ.GetNumberOfSegments() + +idsegZ = smeshgui.AddNewHypothesis( salome.orb.object_to_string(hypNbSegZ) ) +smeshgui.SetName(idsegZ, "NumberOfSegmentsZ") + +# ---- create Algorithms + +print "-------------------------- create Algorithms" + +print "-------------------------- Regular_1D" + +hypothesis=gen.CreateHypothesis("Regular_1D") +regular1D = hypothesis._narrow(SMESH.SMESH_Regular_1D) +regularID = smeshgui.AddNewAlgorithms( salome.orb.object_to_string(regular1D) ) +smeshgui.SetName(regularID, "Wire Discretisation") + +print "-------------------------- Quadrangle_2D" + +hypothesis=gen.CreateHypothesis("Quadrangle_2D") +quad2D = hypothesis._narrow(SMESH.SMESH_Quadrangle_2D) +quadID = smeshgui.AddNewAlgorithms( salome.orb.object_to_string(quad2D) ) +smeshgui.SetName(quadID, "Quadrangle_2D") + +print "-------------------------- Hexa_3D" + +hypothesis=gen.CreateHypothesis("Hexa_3D") +hexa3D = hypothesis._narrow(SMESH.SMESH_Hexa_3D) +hexaID = smeshgui.AddNewAlgorithms( salome.orb.object_to_string(hexa3D) ) +smeshgui.SetName(hexaID, "Hexa_3D") + +# ---- init a Mesh with the volume + +mesh=gen.Init(idVol) +idmesh = smeshgui.AddNewMesh( salome.orb.object_to_string(mesh) ) +smeshgui.SetName(idmesh, "meshVolume") +smeshgui.SetShape(idVol, idmesh) + +# ---- add hypothesis to the volume + +print "-------------------------- add hypothesis to the volume" + +ret=mesh.AddHypothesis(vol,regular1D) +print ret +ret=mesh.AddHypothesis(vol,hypNbSeg) +print ret +ret=mesh.AddHypothesis(vol,quad2D) +print ret +ret=mesh.AddHypothesis(vol,hexa3D) +print ret + +print "-------------------------- set algoritms" + +smeshgui.SetAlgorithms( idmesh, regularID) +smeshgui.SetHypothesis( idmesh, idseg ) +smeshgui.SetAlgorithms( idmesh, quadID ) +smeshgui.SetAlgorithms( idmesh, hexaID ) + +for i in range(8): + print "-------------------------- add hypothesis to edge in the Z directions", (i+1) + + subMeshEdgeZ = mesh.GetElementsOnShape(edgeZ[i]) + + retZ = mesh.AddHypothesis(edgeZ[i],hypNbSegZ) + print " add hyp Z ", retZ + + idsmZ = smeshgui.AddSubMeshOnShape( + idmesh,idEdgeZ[i],salome.orb.object_to_string(subMeshEdgeZ), + ShapeTypeEdge) + + smeshgui.SetName(idsmZ, "SubMeshEdgeZ_"+str(i+1)) + + smeshgui.SetHypothesis(idsmZ, idsegZ) + +sg.updateObjBrowser(1) + +print "-------------------------- compute the mesh of the volume" +ret=gen.Compute(mesh,idVol) +print ret +if ret != 0: + log=mesh.GetLog(0) # no erase trace + for linelog in log: + print linelog +else: + print "problem when Computing the mesh" + +sg.updateObjBrowser(1) diff --git a/src/SMESH_SWIG/SMESH_demo_tetra.py b/src/SMESH_SWIG/SMESH_demo_tetra.py new file mode 100644 index 000000000..95a5ef0f2 --- /dev/null +++ b/src/SMESH_SWIG/SMESH_demo_tetra.py @@ -0,0 +1,176 @@ +# +# Tetrahedrization of a geometry (box minus a inner cylinder). +# Hypothesis and algorithms for the mesh generation are global +# + +import salome +from salome import sg + +import geompy + +import SMESH +import smeshpy + +# ----------------------------------------------------------------------------- + +geom = geompy.geom +myBuilder = geompy.myBuilder + +ShapeTypeShell = 3 +ShapeTypeFace = 4 +ShapeTypeEdge = 6 + +# ---- define a boxe and a cylinder +x0 = -1. +y0 = -1. +z0 = -1. + +x1 = 1. +y1 = 1. +z1 = 1. + +P0 = geom.MakePointStruct(0.,-1.,0.) +P1 = geom.MakePointStruct(0.,1.,0.) +Vect = geom.MakeDirection(P1) +radius = 0.5 +height = 2. + +boxe = geompy.MakeBox(x0,y0,z0,x1,y1,z1) + +cylinder = geompy.MakeCylinder(P0,Vect,radius,height) + +shape = geompy.MakeBoolean(boxe,cylinder,2) +idshape = geompy.addToStudy(shape,"shape") + +print "" + +print "Analysis of the shape :" +subShellList=geompy.SubShapeAll(shape,ShapeTypeShell) +subFaceList=geompy.SubShapeAll(shape,ShapeTypeFace) +subEdgeList=geompy.SubShapeAll(shape,ShapeTypeEdge) + +print "number of Shells in the shape : ",len(subShellList) +print "number of Faces in the shape : ",len(subFaceList) +print "number of Edges in the shape : ",len(subEdgeList) + +# ---- launch SMESH + +smeshgui = salome.ImportComponentGUI("SMESH") +smeshgui.Init(salome.myStudyId) + +gen=smeshpy.smeshpy() + +# ---- create Hypothesis + +print "-------------------------- create Hypothesis" + +print "-------------------------- NumberOfSegments" + +numberOfSegments = 10 + +hypothesis=gen.CreateHypothesis("NumberOfSegments") +hypNbSeg=hypothesis._narrow(SMESH.SMESH_NumberOfSegments) +hypNbSeg.SetNumberOfSegments(numberOfSegments) +hypNbSegID = hypNbSeg.GetId() +print hypNbSeg.GetName() +print hypNbSegID +print hypNbSeg.GetNumberOfSegments() + +idseg = smeshgui.AddNewHypothesis( salome.orb.object_to_string(hypNbSeg) ) +smeshgui.SetName(idseg, "NumberOfSegments") + +print "-------------------------- LengthFromEdges" + +hypothesis=gen.CreateHypothesis("LengthFromEdges") +hypLengthFromEdge=hypothesis._narrow(SMESH.SMESH_LengthFromEdges) +hypLengthFromEdgeID = hypLengthFromEdge.GetId() +print hypLengthFromEdge.GetName() +print hypLengthFromEdgeID + +idlenfromedge = smeshgui.AddNewHypothesis( salome.orb.object_to_string(hypLengthFromEdge) ) +smeshgui.SetName(idlenfromedge, "LengthFromEdge") + +print "-------------------------- MaxElementVolume" + +maxElementVolume = 0.5 + +hypothesis=gen.CreateHypothesis("MaxElementVolume") +hypVolume=hypothesis._narrow(SMESH.SMESH_MaxElementVolume) +hypVolume.SetMaxElementVolume(maxElementVolume) +print hypVolume.GetName() +print hypVolume.GetId() +print hypVolume.GetMaxElementVolume() + +idvolume = smeshgui.AddNewHypothesis( salome.orb.object_to_string(hypVolume) ) +smeshgui.SetName(idvolume, "MaxElementVolume") + +# ---- create Algorithms + +print "-------------------------- create Algorithms" + +print "-------------------------- Regular_1D" + +hypothesis=gen.CreateHypothesis("Regular_1D") +regular1D = hypothesis._narrow(SMESH.SMESH_Regular_1D) +regularID = smeshgui.AddNewAlgorithms( salome.orb.object_to_string(regular1D) ) +smeshgui.SetName(regularID, "Wire Discretisation") + +print "-------------------------- MEFISTO_2D" + +hypothesis=gen.CreateHypothesis("MEFISTO_2D") +mefisto2D = hypothesis._narrow(SMESH.SMESH_MEFISTO_2D) +mefistoID = smeshgui.AddNewAlgorithms( salome.orb.object_to_string(mefisto2D) ) +smeshgui.SetName(mefistoID, "MEFISTO_2D") + +print "-------------------------- NETGEN_3D" + +hypothesis=gen.CreateHypothesis("NETGEN_3D") +netgen3D = hypothesis._narrow(SMESH.SMESH_NETGEN_3D) +netgenID = smeshgui.AddNewAlgorithms( salome.orb.object_to_string(netgen3D) ) +smeshgui.SetName(netgenID, "NETGEN_3D") + +# ---- init a Mesh with the shell + +mesh=gen.Init(idshape) +idmesh = smeshgui.AddNewMesh( salome.orb.object_to_string(mesh) ) +smeshgui.SetName(idmesh, "MeshShape") +smeshgui.SetShape(idshape, idmesh) + +# ---- add hypothesis to flight + +print "-------------------------- add hypothesis to the shape" + +ret=mesh.AddHypothesis(shape,regular1D) +print ret +ret=mesh.AddHypothesis(shape,hypNbSeg) +print ret +ret=mesh.AddHypothesis(shape,mefisto2D) +print ret +ret=mesh.AddHypothesis(shape,hypLengthFromEdge) +print ret +ret=mesh.AddHypothesis(shape,netgen3D) +print ret +ret=mesh.AddHypothesis(shape,hypVolume) +print ret + +smeshgui.SetAlgorithms( idmesh, regularID) +smeshgui.SetHypothesis( idmesh, idseg ) +smeshgui.SetAlgorithms( idmesh, mefistoID ) +smeshgui.SetHypothesis( idmesh, idlenfromedge) +smeshgui.SetAlgorithms( idmesh, netgenID ) +smeshgui.SetHypothesis( idmesh, idvolume ) + +sg.updateObjBrowser(1) + + +print "-------------------------- compute the mesh of the shape" +ret=gen.Compute(mesh,idshape) +print ret +if ret != 0: + log=mesh.GetLog(0) # no erase trace + for linelog in log: + print linelog +else: + print "probleme when computing the mesh" + +sg.updateObjBrowser(1) diff --git a/src/SMESH_SWIG/SMESH_demo_tetra2.py b/src/SMESH_SWIG/SMESH_demo_tetra2.py new file mode 100644 index 000000000..7aebfa509 --- /dev/null +++ b/src/SMESH_SWIG/SMESH_demo_tetra2.py @@ -0,0 +1,243 @@ +# +# Tetrahedrization of a geometry (box minus a inner cylinder). +# Hypothesis and algorithms for the mesh generation are not +# global: the mesh of some edges is thinner. +# + +import salome +from salome import sg + +import geompy + +import SMESH +import smeshpy + +# ----------------------------------------------------------------------------- + +geom = geompy.geom +myBuilder = geompy.myBuilder + +ShapeTypeShell = 3 +ShapeTypeFace = 4 +ShapeTypeEdge = 6 + +# ---- define a boxe and a cylinder +x0 = -1. +y0 = -1. +z0 = -1. + +x1 = 1. +y1 = 1. +z1 = 1. + +P0 = geom.MakePointStruct(0.,-1.,0.) +P1 = geom.MakePointStruct(0.,1.,0.) +Vect = geom.MakeDirection(P1) +radius = 0.5 +height = 2. + +boxe = geompy.MakeBox(x0,y0,z0,x1,y1,z1) + +cylinder = geompy.MakeCylinder(P0,Vect,radius,height) + +shape = geompy.MakeBoolean(boxe,cylinder,2) +idshape = geompy.addToStudy(shape,"shape") + +print "Analysis of the shape :" +subShellList=geompy.SubShapeAllSorted(shape,ShapeTypeShell) +subFaceList=geompy.SubShapeAllSorted(shape,ShapeTypeFace) +subEdgeList=geompy.SubShapeAllSorted(shape,ShapeTypeEdge) + +print "number of Shells in the shape : ",len(subShellList) +print "number of Faces in the shape : ",len(subFaceList) +print "number of Edges in the shape : ",len(subEdgeList) + +idSubEdge = [] +for k in range(len(subEdgeList)): + idSubEdge.append(geompy.addToStudyInFather(shape,subEdgeList[k],"SubEdge"+str(k))) + +circle1 = subEdgeList[5] +idCircle1 = geompy.addToStudyInFather(shape,circle1,"circle1") + +circle2 = subEdgeList[9] +idCircle2 = geompy.addToStudyInFather(shape,circle2,"circle2") + +height = subEdgeList[7] +idHeight = geompy.addToStudyInFather(shape,height,"height") + +# ---- launch SMESH + +smeshgui = salome.ImportComponentGUI("SMESH") +smeshgui.Init(salome.myStudyId) + +gen=smeshpy.smeshpy() + +# ---- create Hypothesis + +print "-------------------------- create Hypothesis" + +print "-------------------------- NumberOfSegments Edge of the boxe" + +numberOfSegmentsBoxe = 10 + +hypothesis=gen.CreateHypothesis("NumberOfSegments") +hypNbSegBoxe=hypothesis._narrow(SMESH.SMESH_NumberOfSegments) +hypNbSegBoxe.SetNumberOfSegments(numberOfSegmentsBoxe) +hypNbSegID = hypNbSegBoxe.GetId() +print hypNbSegBoxe.GetName() +print hypNbSegID +print hypNbSegBoxe.GetNumberOfSegments() + +idSegBoxe = smeshgui.AddNewHypothesis(salome.orb.object_to_string(hypNbSegBoxe)) +smeshgui.SetName(idSegBoxe, "NumberOfSegmentsBoxe") + +print "-------------------------- NumberOfSegments Edge of the cylinder" + +numberOfSegmentsCylinder = 40 + +hypothesis=gen.CreateHypothesis("NumberOfSegments") +hypNbSegCylinder=hypothesis._narrow(SMESH.SMESH_NumberOfSegments) +hypNbSegCylinder.SetNumberOfSegments(numberOfSegmentsCylinder) +hypNbSegID = hypNbSegCylinder.GetId() +print hypNbSegCylinder.GetName() +print hypNbSegID +print hypNbSegCylinder.GetNumberOfSegments() + +idSegCylinder = smeshgui.AddNewHypothesis(salome.orb.object_to_string(hypNbSegCylinder)) +smeshgui.SetName(idSegCylinder, "NumberOfSegmentsCylinder") + +print "-------------------------- LengthFromEdges" + +hypothesis=gen.CreateHypothesis("LengthFromEdges") +hypLengthFromEdge=hypothesis._narrow(SMESH.SMESH_LengthFromEdges) +hypLengthFromEdgeID = hypLengthFromEdge.GetId() +print hypLengthFromEdge.GetName() +print hypLengthFromEdgeID + +idlenfromedge = smeshgui.AddNewHypothesis( salome.orb.object_to_string(hypLengthFromEdge) ) +smeshgui.SetName(idlenfromedge, "LengthFromEdge") + +print "-------------------------- MaxElementVolume" + +maxElementVolume = 0.5 + +hypothesis=gen.CreateHypothesis("MaxElementVolume") +hypVolume=hypothesis._narrow(SMESH.SMESH_MaxElementVolume) +hypVolume.SetMaxElementVolume(maxElementVolume) +print hypVolume.GetName() +print hypVolume.GetId() +print hypVolume.GetMaxElementVolume() + +idvolume = smeshgui.AddNewHypothesis( salome.orb.object_to_string(hypVolume) ) +smeshgui.SetName(idvolume, "MaxElementVolume") + +# ---- create Algorithms + +print "-------------------------- create Algorithms" + +print "-------------------------- Regular_1D" + +hypothesis=gen.CreateHypothesis("Regular_1D") +regular1D = hypothesis._narrow(SMESH.SMESH_Regular_1D) +regularID = smeshgui.AddNewAlgorithms( salome.orb.object_to_string(regular1D) ) +smeshgui.SetName(regularID, "Wire Discretisation") + +print "-------------------------- MEFISTO_2D" + +hypothesis=gen.CreateHypothesis("MEFISTO_2D") +mefisto2D = hypothesis._narrow(SMESH.SMESH_MEFISTO_2D) +mefistoID = smeshgui.AddNewAlgorithms( salome.orb.object_to_string(mefisto2D) ) +smeshgui.SetName(mefistoID, "MEFISTO_2D") + +print "-------------------------- NETGEN_3D" + +hypothesis=gen.CreateHypothesis("NETGEN_3D") +netgen3D = hypothesis._narrow(SMESH.SMESH_NETGEN_3D) +netgenID = smeshgui.AddNewAlgorithms( salome.orb.object_to_string(netgen3D) ) +smeshgui.SetName(netgenID, "NETGEN_3D") + +# ---- init a Mesh with the shell + +mesh=gen.Init(idshape) +idmesh = smeshgui.AddNewMesh( salome.orb.object_to_string(mesh) ) +smeshgui.SetName(idmesh, "MeshShape") +smeshgui.SetShape(idshape, idmesh) + +# ---- add hypothesis to flight + +print "-------------------------- add hypothesis to the shape" + +ret=mesh.AddHypothesis(shape,regular1D) +print ret +ret=mesh.AddHypothesis(shape,hypNbSegBoxe) +print ret +ret=mesh.AddHypothesis(shape,mefisto2D) +print ret +ret=mesh.AddHypothesis(shape,hypLengthFromEdge) +print ret +ret=mesh.AddHypothesis(shape,netgen3D) +print ret +ret=mesh.AddHypothesis(shape,hypVolume) +print ret + +print "-------------------------- set algoritms" + +smeshgui.SetAlgorithms( idmesh, regularID) +smeshgui.SetHypothesis( idmesh, idSegBoxe ) +smeshgui.SetAlgorithms( idmesh, mefistoID ) +smeshgui.SetHypothesis( idmesh, idlenfromedge) +smeshgui.SetAlgorithms( idmesh, netgenID ) +smeshgui.SetHypothesis( idmesh, idvolume ) + +print "-------------------------- add hypothesis to the first circle" + +subMeshEdgeCircle1 = mesh.GetElementsOnShape(circle1) +retCircle1 = mesh.AddHypothesis(circle1,hypNbSegCylinder) +print " add hyp to C1 ", retCircle1 + +idsmCircle1 = smeshgui.AddSubMeshOnShape( + idmesh,idCircle1,salome.orb.object_to_string(subMeshEdgeCircle1), + ShapeTypeEdge) + +smeshgui.SetName(idsmCircle1, "SubMeshEdgeCircle1") +smeshgui.SetHypothesis(idsmCircle1, idSegCylinder) + +print "-------------------------- add hypothesis to the second circle" + +subMeshEdgeCircle2 = mesh.GetElementsOnShape(circle2) +retCircle2 = mesh.AddHypothesis(circle2,hypNbSegCylinder) +print " add hyp to C2 ", retCircle2 + +idsmCircle2 = smeshgui.AddSubMeshOnShape( + idmesh,idCircle2,salome.orb.object_to_string(subMeshEdgeCircle2), + ShapeTypeEdge) + +smeshgui.SetName(idsmCircle2, "SubMeshEdgeCircle2") +smeshgui.SetHypothesis(idsmCircle2, idSegCylinder) + +print "-------------------------- add hypothesis to the height of the cylinder" + +subMeshEdgeHeight = mesh.GetElementsOnShape(height) +retHeight = mesh.AddHypothesis(height,hypNbSegCylinder) +print " add hyp to H ", retHeight + +idsmHeight = smeshgui.AddSubMeshOnShape( + idmesh,idHeight,salome.orb.object_to_string(subMeshEdgeHeight), + ShapeTypeEdge) + +smeshgui.SetName(idsmHeight, "SubMeshEdgeHeight") +smeshgui.SetHypothesis(idsmHeight, idSegCylinder) + +sg.updateObjBrowser(1) + +print "-------------------------- compute the mesh of the shape" +ret=gen.Compute(mesh,idshape) +print ret +if ret != 0: + log=mesh.GetLog(0) # no erase trace + for linelog in log: + print linelog +else: + print "probleme when computing the mesh" + +sg.updateObjBrowser(1)