Salome HOME
0021746: EDF 2135 GEOM: Unification of Python documentations
[modules/smesh.git] / doc / salome / gui / SMESH / input / smeshpy_interface.doc
index 17255212cd841c7ae21b152f24ace185123836b6..c3bb2ae184c92ebf2aa2102bfbac67e09b0631e9 100644 (file)
 
 \page smeshpy_interface_page Python interface
 
-\n Python package smesh defines several classes, destined for easy and
-clear mesh creation and edition.
+Python API for SALOME %Mesh module defines several classes that can
+be used for easy mesh creation and edition.
 
-\n Documentation for smesh package is available in two forms:
+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, like it is done in the GUI documentation
+- <a href="smeshpy_doc/namespaces.html">Linear documentation</a> grouped only by classes, declared
+in the \ref smeshBuilder and \ref StdMeshersBuilder Python packages.
 
-\n The <a href="smeshpy_doc/modules.html"> structured
-   documentation for smesh package</a>, where all methods and
-   classes are grouped by their functionality, like it is done in the GUI documentation
-\n and the \ref smeshDC "linear documentation for smesh package"
-   grouped only by classes, declared in the smesh.py file.
+\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 The main page of the \ref smeshDC "linear documentation for smesh package"
-   contains a list of data structures and a list of
-   functions, provided by the package smesh.py. The first item in
-   the list of data structures (\ref smeshDC::smeshDC "class smesh")
-   also represents documentation for the methods of the package smesh.py itself.
+The SMESH python package contains helper functions to manipulate mesh elements and 
+interact with these elements.
 
-\n The package smesh.py provides an interface to create and handle
-   meshes. Use it to create an empty mesh or to import it from the data file.
+Note that these functions either encapsulate the python programming interface of SMESH core 
+(the CORBA or SWIG interface for example) or extend existing utilities as the smesh.py module.
 
-\n Once a mesh has been created, it is possible to  manage it via its own
-   methods, described at \ref smeshDC::Mesh "class Mesh" documentation
-   (it is also accessible by the second item "class Mesh" in the list of data structures).
+The functions are distributed in the python package \b salome.smesh.
 
-\n Class Mesh allows assigning algorithms to a mesh.
-\n Please note, that some algorithms,
-   included in the standard Salome installation are always available:
-      - REGULAR(1D), COMPOSITE(1D), MEFISTO(2D), Quadrangle(2D), Hexa(3D), etc.
+\note
+The main package \bsalome contains other sub-packages that are distributed with the other 
+SALOME modules. For example, the KERNEL module provides the python package \b salome.kernel 
+and GEOM the package \b salome.geom.
 
-\n There are also 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),
+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 others are based on commercial meshers:
-         - GHS3D(3D), BLSURF(2D).
+Class \ref smeshstudytools.SMeshStudyTools "SMeshStudyTools" provides several methods to manipulate mesh objects in Salome study. 
 
-\n    To add hypotheses, use the interfaces, provided by the assigned
-algorithms.
+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 Below you can see an example of usage of the package smesh for 3d mesh generation. 
+Class \ref smeshBuilder.Mesh "Mesh" allows assigning algorithms to a mesh.
+Please note that some algorithms, included in the standard SALOME
+distribution are always available. Python package \ref StdMeshersBuilder "StdMeshersBuilder"
+provides an interface for standard meshing algorithms included into
+the SALOME %Mesh module distribution, like:
+- REGULAR (1D)
+- COMPOSITE (1D)
+- MEFISTO (2D)
+- Quadrangle (2D)
+- Hexa(3D)
+- etc ...
 
-<h2>Example of 3d mesh generation with NETGEN:</h2>
+To add meshing hypotheses, it is possible to use the functions provided by the
+algorithms interfaces.
 
-\n from geompy import * 
-\n import smesh 
+An example below demonstrates usage of the Python API for 3d mesh generation. 
 
-<b># Geometry</b>
-\n <b># an assembly of a box, a cylinder and a truncated cone meshed with tetrahedral</b>. 
+\anchor example_3d_mesh
+<h2>Example of 3d mesh generation:</h2>
+\tui_script{3dmesh.py}
 
-<b># Define values</b>
-\n name = "ex21_lamp" 
-\n cote = 60 
-\n section = 20 
-\n size = 200 
-\n radius_1 = 80 
-\n radius_2 = 40 
-\n height = 100 
-
-<b># Build a box</b>
-\n box = MakeBox(-cote, -cote, -cote, +cote, +cote, +cote) 
-
-<b># Build a cylinder</b>
-\n pt1 = MakeVertex(0, 0, cote/3) 
-\n di1 = MakeVectorDXDYDZ(0, 0, 1) 
-\n cyl = MakeCylinder(pt1, di1, section, size) 
-
-<b># Build a truncated cone</b>
-\n pt2 = MakeVertex(0, 0, size) 
-\n cone = MakeCone(pt2, di1, radius_1, radius_2, height) 
-
-<b># Fuse </b>
-\n box_cyl = MakeFuse(box, cyl) 
-\n piece = MakeFuse(box_cyl, cone) 
-
-<b># Add in study</b>
-\n addToStudy(piece, name) 
-
-<b># Create a group of faces</b>
-\n group = CreateGroup(piece, ShapeType["FACE"]) 
-\n group_name = name + "_grp" 
-\n addToStudy(group, group_name) 
-\n group.SetName(group_name) 
-
-<b># Add faces in the group</b>
-\n faces = SubShapeAllIDs(piece, ShapeType["FACE"]) 
-\n UnionIDs(group, faces) 
-
-<b># Create a mesh</b>
-
-<b># Define a mesh on a geometry</b>
-\n tetra = smesh.Mesh(piece, name) 
-
-<b># Define 1D hypothesis</b>
-\n algo1d = tetra.Segment() 
-\n algo1d.LocalLength(10) 
-
-<b># Define 2D hypothesis</b>
-\n algo2d = tetra.Triangle() 
-\n algo2d.LengthFromEdges() 
-
-<b># Define 3D hypothesis</b>
-\n algo3d = tetra.Tetrahedron(smesh.NETGEN) 
-\n algo3d.MaxElementVolume(100) 
-
-<b># Compute the mesh</b>
-\n tetra.Compute() 
-
-<b># Create a groupe of faces</b>
-\n tetra.Group(group)
-
-\n Examples of Python scripts for all Mesh operations are available by
+Examples of Python scripts for Mesh operations are available by
 the following links:
 
-<ul>
-<li>\subpage tui_creating_meshes_page</li>
-<li>\subpage tui_viewing_meshes_page</li>
-<li>\subpage tui_defining_hypotheses_page</li>
-<li>\subpage tui_quality_controls_page</li>
-<li>\subpage tui_grouping_elements_page</li>
-<li>\subpage tui_modifying_meshes_page</li>
-<li>\subpage tui_transforming_meshes_page</li>
-</ul>
-
+- \subpage tui_creating_meshes_page
+- \subpage tui_cartesian_algo
+- \subpage tui_use_existing_faces
+- \subpage tui_viewing_meshes_page
+- \subpage tui_defining_hypotheses_page
+- \subpage tui_quality_controls_page
+- \subpage tui_filters_page
+- \subpage tui_grouping_elements_page
+- \subpage tui_modifying_meshes_page
+- \subpage tui_transforming_meshes_page
+- \subpage tui_notebook_smesh_page
+- \subpage tui_measurements_page
+- \subpage tui_generate_flat_elements_page
+- \subpage tui_work_on_objects_from_gui
+- \subpage tui_prism_3d_algo
 
 */