\page smeshpy_interface_page Python interface
-Python package smesh defines several classes, destined for easy and
-clear mesh creation and edition.
-
-Documentation for smesh package is available in two forms:
-
-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
-and the \ref smeshDC "linear documentation for smesh package"
-grouped only by classes, declared in the smesh.py file.
-
-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 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.
-
-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).
-
-Class \b Mesh allows assigning algorithms to a mesh.
-Please note, that some algorithms, included in the standard SALOME
-distribution are always available:
-- REGULAR (1D)
-- COMPOSITE (1D)
-- MEFISTO (2D)
-- Quadrangle (2D)
-- Hexa(3D)
-- etc...
-
-To add hypotheses, use the interfaces, provided by the assigned
-algorithms.
-
-Below you can see an example of usage of the package smesh for 3d mesh generation.
+Python API for SALOME %Mesh module defines several classes that can
+be used for easy mesh creation and edition.
+
+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 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.
+
+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.
+
+As soon as mesh is created, it is possible to manage it via its own
+methods, described in class \ref smeshBuilder.Mesh "Mesh" documentation.
+
+Class \ref smeshstudytools.SMeshStudyTools "SMeshStudyTools" provides several methods to manipulate mesh objects in Salome study.
+
+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>
+
+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.
+
+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}
-\code
-from geompy import *
-import smesh
-
-###
-# Geometry: an assembly of a box, a cylinder and a truncated cone
-# meshed with tetrahedral
-###
-
-# Define values
-name = "ex21_lamp"
-cote = 60
-section = 20
-size = 200
-radius_1 = 80
-radius_2 = 40
-height = 100
-
-# Build a box
-box = MakeBox(-cote, -cote, -cote, +cote, +cote, +cote)
-
-# Build a cylinder
-pt1 = MakeVertex(0, 0, cote/3)
-di1 = MakeVectorDXDYDZ(0, 0, 1)
-cyl = MakeCylinder(pt1, di1, section, size)
-
-# Build a truncated cone
-pt2 = MakeVertex(0, 0, size)
-cone = MakeCone(pt2, di1, radius_1, radius_2, height)
-
-# Fuse
-box_cyl = MakeFuse(box, cyl)
-piece = MakeFuse(box_cyl, cone)
-
-# Add to the study
-addToStudy(piece, name)
-
-# Create a group of faces
-group = CreateGroup(piece, ShapeType["FACE"])
-group_name = name + "_grp"
-addToStudy(group, group_name)
-group.SetName(group_name)
-
-# Add faces to the group
-faces = SubShapeAllIDs(piece, ShapeType["FACE"])
-UnionIDs(group, faces)
-
-###
-# Create a mesh
-###
-
-# Define a mesh on a geometry
-tetra = smesh.Mesh(piece, name)
-
-# Define 1D hypothesis
-algo1d = tetra.Segment()
-algo1d.LocalLength(10)
-
-# Define 2D hypothesis
-algo2d = tetra.Triangle()
-algo2d.LengthFromEdges()
-
-# Define 3D hypothesis
-algo3d = tetra.Tetrahedron()
-algo3d.MaxElementVolume(100)
-
-# Compute the mesh
-tetra.Compute()
-
-# Create a groupe of faces
-tetra.Group(group)
-
-\endcode
-
-Examples of Python scripts for all Mesh operations are available by
+Examples of Python scripts for Mesh operations are available by
the following links:
- \subpage tui_creating_meshes_page
-- \subpage tui_cartesian_algo
-- \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_filters_page
- \subpage tui_modifying_meshes_page
- \subpage tui_transforming_meshes_page
-- \subpage tui_notebook_smesh_page
+- \subpage tui_viewing_meshes_page
+- \subpage tui_quality_controls_page
- \subpage tui_measurements_page
-- \subpage tui_generate_flat_elements_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
*/