smesh/doc/salome/gui/SMESH/input/smeshpy_interface.doc
vsr 9423cdc0ef 0021308: EDF 1923 SMESH: Remove hard-coded dependency of the external mesh plugins from the SMESH module
* Improve documentation for meshing plug-ins (in particular, dynamically added methods)
2012-08-21 13:15:16 +00:00

132 lines
3.4 KiB
Plaintext

/*!
\page smeshpy_interface_page Python interface
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, 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 smesh and StdMeshersDC Python packages.
Python package \ref smesh 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 \ref smesh.Mesh "class Mesh" documentation.
Class \ref smesh.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 StdMeshersDC
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 ...
To add meshing hypotheses, it is possible to use the functions provided by the
algorithms interfaces.
An example below demonstrates usage of the Python API for 3d mesh generation.
\anchor example_3d_mesh
<h2>Example of 3d mesh generation:</h2>
\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 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_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
*/