smesh/doc/salome/gui/SMESH/input/smeshpy_interface.doc

133 lines
3.4 KiB
Plaintext
Raw Normal View History

/*!
2009-02-17 10:27:49 +05:00
\page smeshpy_interface_page Python interface
2012-10-08 17:56:59 +06:00
Python API for SALOME %Mesh module defines several classes that can
be used for easy mesh creation and edition.
2012-10-08 17:56:59 +06:00
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
2012-08-09 16:03:55 +06:00
classes are grouped by their functionality, like it is done in the GUI documentation
2012-10-08 17:56:59 +06:00
- <a href="smeshpy_doc/namespaces.html">Linear documentation</a> grouped only by classes, declared
in the \ref smesh and StdMeshersDC Python packages.
2012-08-09 16:03:55 +06:00
2012-10-08 17:56:59 +06:00
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.
2012-08-09 16:03:55 +06:00
2012-10-08 17:56:59 +06:00
As soon as mesh is created, it is possible to manage it via its own
methods, described in \ref smesh.Mesh "class Mesh" documentation.
2012-08-09 16:03:55 +06:00
2012-10-08 17:56:59 +06:00
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:
2012-08-09 16:03:55 +06:00
- REGULAR (1D)
- COMPOSITE (1D)
- MEFISTO (2D)
- Quadrangle (2D)
- Hexa(3D)
2012-10-08 17:56:59 +06:00
- etc ...
2012-08-09 16:03:55 +06:00
2012-10-08 17:56:59 +06:00
To add meshing hypotheses, it is possible to use the functions provided by the
algorithms interfaces.
2009-02-17 10:27:49 +05:00
2012-10-08 17:56:59 +06:00
An example below demonstrates usage of the Python API for 3d mesh generation.
2009-02-17 10:27:49 +05:00
2012-08-09 16:03:55 +06:00
\anchor example_3d_mesh
<h2>Example of 3d mesh generation:</h2>
2009-02-17 10:27:49 +05:00
2012-08-09 16:03:55 +06:00
\code
from geompy import *
import smesh
2009-02-17 10:27:49 +05:00
2012-08-09 16:03:55 +06:00
###
# Geometry: an assembly of a box, a cylinder and a truncated cone
# meshed with tetrahedral
###
2009-02-17 10:27:49 +05:00
2012-08-09 16:03:55 +06:00
# Define values
name = "ex21_lamp"
cote = 60
section = 20
size = 200
radius_1 = 80
radius_2 = 40
height = 100
2009-02-17 10:27:49 +05:00
2012-08-09 16:03:55 +06:00
# Build a box
box = MakeBox(-cote, -cote, -cote, +cote, +cote, +cote)
2009-02-17 10:27:49 +05:00
2012-08-09 16:03:55 +06:00
# Build a cylinder
pt1 = MakeVertex(0, 0, cote/3)
di1 = MakeVectorDXDYDZ(0, 0, 1)
cyl = MakeCylinder(pt1, di1, section, size)
2009-02-17 10:27:49 +05:00
2012-08-09 16:03:55 +06:00
# Build a truncated cone
pt2 = MakeVertex(0, 0, size)
cone = MakeCone(pt2, di1, radius_1, radius_2, height)
2009-02-17 10:27:49 +05:00
2012-08-09 16:03:55 +06:00
# Fuse
box_cyl = MakeFuse(box, cyl)
piece = MakeFuse(box_cyl, cone)
2009-02-17 10:27:49 +05:00
2012-08-09 16:03:55 +06:00
# Add to the study
addToStudy(piece, name)
2009-02-17 10:27:49 +05:00
2012-08-09 16:03:55 +06:00
# Create a group of faces
group = CreateGroup(piece, ShapeType["FACE"])
group_name = name + "_grp"
addToStudy(group, group_name)
group.SetName(group_name)
2009-02-17 10:27:49 +05:00
2012-08-09 16:03:55 +06:00
# Add faces to the group
faces = SubShapeAllIDs(piece, ShapeType["FACE"])
UnionIDs(group, faces)
2009-02-17 10:27:49 +05:00
2012-08-09 16:03:55 +06:00
###
# Create a mesh
###
2009-02-17 10:27:49 +05:00
2012-08-09 16:03:55 +06:00
# Define a mesh on a geometry
tetra = smesh.Mesh(piece, name)
2009-02-17 10:27:49 +05:00
2012-08-09 16:03:55 +06:00
# Define 1D hypothesis
algo1d = tetra.Segment()
algo1d.LocalLength(10)
2009-02-17 10:27:49 +05:00
2012-08-09 16:03:55 +06:00
# Define 2D hypothesis
algo2d = tetra.Triangle()
algo2d.LengthFromEdges()
2009-02-17 10:27:49 +05:00
2012-08-09 16:03:55 +06:00
# Define 3D hypothesis
algo3d = tetra.Tetrahedron()
algo3d.MaxElementVolume(100)
2009-02-17 10:27:49 +05:00
2012-08-09 16:03:55 +06:00
# Compute the mesh
tetra.Compute()
2009-02-17 10:27:49 +05:00
2012-08-09 16:03:55 +06:00
# Create a groupe of faces
tetra.Group(group)
2009-02-17 10:27:49 +05:00
2012-08-09 16:03:55 +06:00
\endcode
2009-02-17 10:27:49 +05:00
2012-10-08 17:56:59 +06:00
Examples of Python scripts for Mesh operations are available by
2012-08-09 16:03:55 +06:00
the following links:
2012-08-09 16:03:55 +06:00
- \subpage tui_creating_meshes_page
- \subpage tui_cartesian_algo
2012-12-13 17:41:29 +06:00
- \subpage tui_use_existing_faces
2012-08-09 16:03:55 +06:00
- \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
*/