/*!
-\page smeshpy_interface_page Python interface smesh.py
+\page smeshpy_interface_page Python interface
-\n Python package smesh defines several classes, destined for easy and
-clear mesh creation and edition (see the \ref introduction_to_mesh_python_page "example").
+Python API for SALOME %Mesh module defines several classes that can
+be used for easy mesh creation and edition.
-\n Please draw your attention to the below notes before address to
-the \ref smeshDC "documentation for smesh.py"
+Documentation for SALOME %Mesh module Python API is available in two forms:
+- <a href="smeshpy_doc/modules.html">Structured documentation</a>, where all methods and
+classes are grouped by their functionality.
+- <a href="smeshpy_doc/namespaces.html">Linear documentation</a> grouped only by classes, declared
+in the \ref smeshBuilder and \ref StdMeshersBuilder Python packages.
-\n 1. The main page of the \ref smeshDC "documentation for smesh.py"
- contains a list of data structures and a list of functions,
- provided by the package smesh.py. The first item in the data
- structures list (\ref smeshDC::smeshDC "class smesh") also
- represents documentation for methods of the package smesh.py itself.
+\n With SALOME 7.2, the Python interface for %Mesh has been slightly modified to offer new functionality.
+\n You may have to modify your scripts generated with SALOME 6 or older versions.
+\n Please see \ref smesh_migration_page.
-\n 2. Package smesh.py gives interface to create and manage
- meshes. Please, use it to create an empty mesh or to import
- it from data file.
+Class \ref smeshBuilder.smeshBuilder "smeshBuilder" provides an interface to create and handle
+meshes. It can be used to create an empty mesh or to import mesh from the data file.
-\n 3. Once you have created a mesh, you can manage it via its own
- methods. See \ref smeshDC::Mesh "class Mesh" documentation for
- them (it is also accessible by the second item "class Mesh" in the
- data structures list).
+As soon as mesh is created, it is possible to manage it via its own
+methods, described in class \ref smeshBuilder.Mesh "Mesh" documentation.
-\n 4. Class Mesh allows to assign algorithms to a mesh.
-\n \t Please note, that there are always available some algorithms,
- included in standard Salome installation:
- - REGULAR(1D), COMPOSITE(1D), MEFISTO(2D), Quadrangle(2D), Hexa(3D), etc.
+Class \ref smeshstudytools.SMeshStudyTools "SMeshStudyTools" provides several methods to manipulate mesh objects in Salome study.
-\n Also there are some algorithms, which can be installed optionally,
-\n some of them are based on open-source meshers:
- - NETGEN(1D-2D,2D,1D-2D-3D,3D),
+A usual workflow to generate a mesh on geometry is following:
+<ol>
+ <li>Create an instance of \ref smeshBuilder.smeshBuilder "smeshBuilder":
+ <pre>
+ from salome.smesh import smeshBuilder
+ smesh = smeshBuilder.New( salome.myStudy )
+ </pre></li>
+ <li>Create a \ref smeshBuilder.Mesh "mesh" object:
+ <pre>
+ mesh = \ref smeshBuilder.smeshBuilder.Mesh "smesh.Mesh( geometry )"
+ </pre></li>
+ <li> Create and assign \ref basic_meshing_algos_page "algorithms" by
+ calling corresponding methods of the mesh. If a sub-shape is
+ provided as an argument, a \ref constructing_submeshes_page "sub-mesh"
+ is implicitly created on this sub-shape:
+ <pre>
+ regular1D = \ref smeshBuilder.Mesh.Segment "mesh.Segment"()
+ mefisto = \ref smeshBuilder.Mesh.Triangle "mesh.Triangle"( smeshBuilder.MEFISTO )
+ # use other triangle algorithm on a face -- a sub-mesh appears in the mesh
+ netgen = \ref smeshBuilder.Mesh.Triangle "mesh.Triangle"( smeshBuilder.NETGEN_1D2D, face )
+ </pre></li>
+ <li> Create and assign \ref about_hypo_page "hypotheses" by calling
+ corresponding methods of algorithms:
+ <pre>
+ segLen10 = \ref StdMeshersBuilder.StdMeshersBuilder_Segment.LocalLength "regular1D.LocalLength"( 10. )
+ maxArea = \ref StdMeshersBuilder.StdMeshersBuilder_Segment.LocalLength "mefisto.MaxElementArea"( 100. )
+ netgen.SetMaxSize( 20. )
+ netgen.SetFineness( smeshBuilder.VeryCoarse )
+ </pre>
+ </li>
+ <li> \ref compute_anchor "Compute" the mesh (generate mesh nodes and elements):
+ <pre>
+ \ref Mesh.Compute "mesh.Compute"()
+ </pre>
+ </li>
+</ol>
-\n others are based on commercial meshers:
- - GHS3D(3D).
+An easiest way to start with Python scripting is to do something in
+GUI and then to get a corresponding Python script via
+<b> File > Dump Study </b> menu item. Don't forget that you can get
+all methods of any object in hand (e.g. a mesh group or a hypothesis)
+by calling \a dir() Python built-in function.
-\n \t To add hypotheses, please use interfaces, provided by the
- assigned algorithms.
+All methods of the Mesh Group can be found in \ref tui_create_standalone_group sample script.
+
+An example below demonstrates usage of the Python API for 3d mesh generation.
+
+\anchor example_3d_mesh
+<h2>Example of 3d mesh generation:</h2>
+\tui_script{3dmesh.py}
+
+Examples of Python scripts for Mesh operations are available by
+the following links:
+
+- \subpage tui_creating_meshes_page
+- \subpage tui_defining_hypotheses_page
+- \subpage tui_grouping_elements_page
+- \subpage tui_filters_page
+- \subpage tui_modifying_meshes_page
+- \subpage tui_transforming_meshes_page
+- \subpage tui_viewing_meshes_page
+- \subpage tui_quality_controls_page
+- \subpage tui_measurements_page
+- \subpage tui_work_on_objects_from_gui
+- \subpage tui_notebook_smesh_page
+- \subpage tui_cartesian_algo
+- \subpage tui_use_existing_faces
+- \subpage tui_prism_3d_algo
+- \subpage tui_generate_flat_elements_page
*/