diff --git a/doc/salome/gui/SMESH/images/2d_from_3d_dlg.png b/doc/salome/gui/SMESH/images/2d_from_3d_dlg.png
new file mode 100644
index 000000000..a03530978
Binary files /dev/null and b/doc/salome/gui/SMESH/images/2d_from_3d_dlg.png differ
diff --git a/doc/salome/gui/SMESH/images/2d_from_3d_ico.png b/doc/salome/gui/SMESH/images/2d_from_3d_ico.png
new file mode 100644
index 000000000..b0842d3e7
Binary files /dev/null and b/doc/salome/gui/SMESH/images/2d_from_3d_ico.png differ
diff --git a/doc/salome/gui/SMESH/input/double_nodes_page.doc b/doc/salome/gui/SMESH/input/double_nodes_page.doc
index 22f324032..063bcba5e 100644
--- a/doc/salome/gui/SMESH/input/double_nodes_page.doc
+++ b/doc/salome/gui/SMESH/input/double_nodes_page.doc
@@ -3,6 +3,9 @@
\page double_nodes_page Duplicate Nodes
\n This operation allows to duplicate nodes of your mesh.
+Duplication consists in replacement of an existing mesh element by another one.
+Lower level elements of the duplicated ones are cloned
+automatically.
To duplicate nodes:
@@ -34,13 +37,13 @@ In this mode the dialog looks like:
\image html duplicate01.png
Parameters to be defined in this mode:
-
+
- Group of nodes to duplicate (mandatory): these nodes will be duplicated.
- Group of elements to replace nodes with new ones (optional): the duplicated nodes
will be associated with these elements.
- Construct group with newly created nodes option (checked by default):
if checked - the group with just created nodes will be built.
-
+
\anchor mode_with_elem_anchor
@@ -51,15 +54,15 @@ In this mode the dialog looks like:
\image html duplicate02.png
Parameters to be defined in this mode:
-
+
- Group of elements to duplicate (mandatory): these elements will be duplicated.
- Group of nodes at not to duplicate (optional): group of nodes at crack bottom
which will not be duplicated.
- Group of elements to replace nodes with new ones (mandatory): the duplicated nodes
will be associated with these elements.
- Construct group with newly created elements option (checked by default):
- if checked - the group with just created elements will be builded.
-
+ if checked - the group with just created elements will be built.
+
See Also a sample TUI Script of a \ref tui_duplicate_nodes "Duplicate nodes" operation.
diff --git a/doc/salome/gui/SMESH/input/make_2dmesh_from_3d.doc b/doc/salome/gui/SMESH/input/make_2dmesh_from_3d.doc
index 9d334340f..e52078629 100644
--- a/doc/salome/gui/SMESH/input/make_2dmesh_from_3d.doc
+++ b/doc/salome/gui/SMESH/input/make_2dmesh_from_3d.doc
@@ -2,18 +2,18 @@
\page make_2dmesh_from_3d_page Generate boundary elements
-\n This functionality allows to generate mesh elements on borders of
-elements of higher dimension.
-
+\n This functionality allows to generate mesh elements on the borders of
+elements of a higher dimension.
To generate border elements:
- From the Modification menu choose "Create boundary elements"
-item, or choose from the popup menu.
+item, or click "Create boundary elements" button in the toolbar
+
+\image html 2d_from_3d_ico.png "Create boundary elements icon"
-\image html 2d_from_3d_menu.png
The following dialog box will appear:
-\image html 2d_from_3d_dlg.png
+\image html 2d_from_3d_dlg.png "Create boundary elements dialog box".
- Check in the dialog box one of three radio buttons corresponding to
the type of operation you would like to perform.
@@ -28,32 +28,30 @@ of three types.
- 1D from 2D creates mesh edges on free edges of mesh faces
- 1D from 3D creates mesh edges on all borders of free facets of volume elements
-Here free facet means a facet shared by only one volume, free edge
+Here a free facet means a facet shared by only one volume, a free edge
means an edge shared by only one mesh face.
In this dialog:
-- specify Mesh, submesh or group to analyze the boundary.
-- specify Target mesh where boundary elements will
+
- specify the Mesh, submesh or group, the boundary which of
+will be analyzed.
+- specify the Target mesh, where the boundary elements will
be created.
- This mesh adds elements in the selected mesh or the mesh
the selected submesh or group belongs to.
- - New mesh add elements to a new mesh. The new mesh appears
- in the Object Browser with the name specified in the adjacent box
- that you can change.
+ - New mesh adds elements to a new mesh. The new mesh appears
+ in the Object Browser with the name that you can change in the adjacent box.
- activate Copy source mesh checkbox to copy 2D or 3D
- elements (depending on operation type) belonging to the object
- specified in Mesh, submesh or group field to the new
- mesh.
+ elements (depending on the operation type), which belong to the analyzed
+Mesh, submesh or group field, to the new mesh.
- deactivate Copy missing elements only checkbox to copy
- boundary elements already present in the mesh being checked to the
+ boundary elements already present in the analyzed mesh to the
new mesh.
-- activate Create group checkbox to create a group where
- missing boundary elements are added to. The new group appears
- in the Object Browser with the name specified in the adjacent box
- that you can change.
+- activate Create group checkbox to create a group to which the
+ missing boundary elements are added. The new group appears
+ in the Object Browser with the name that you can change in the adjacent box.
See Also a sample TUI Script of a \ref tui_make_2dmesh_from_3d "Create boundary elements" operation.
diff --git a/doc/salome/gui/SMESH/input/pattern_mapping.doc b/doc/salome/gui/SMESH/input/pattern_mapping.doc
index 8421b1d87..ef7f8ba66 100644
--- a/doc/salome/gui/SMESH/input/pattern_mapping.doc
+++ b/doc/salome/gui/SMESH/input/pattern_mapping.doc
@@ -99,92 +99,118 @@ From the \b Modification menu choose the Pattern Mapping item or click
The following dialog box will appear:
-\n 2D pattern
+\n For a 2D pattern
\image html patternmapping1.png
In this dialog you should specify:
- - A face with the number of vertices equal to the number of
+
- \b Pattern, which can be loaded from .smp pattern file previously
+created manually or generated automatically from an existing mesh or submesh.
+- \b Face with the number of vertices equal to the number of
key-points in the pattern; the number of key-points on internal
boundaries of the pattern must also be equal to the number of vertices
on internal boundaries of the face;
- - A vertex to which the first key-point should be mapped;
- - If the order of key-points is reversed or not. (The order of vertices of
- a face is counterclockwise looking from the outside).
+- \b Vertex to which the first key-point should be mapped;
+Alternatively, it is possible to select Refine selected mesh elements
+checkbox and apply the pattern to
+- Mesh Face instead of a geometric Face
+- and select \b Node instead of vertex.
+
+Additionally it is possible to:
+- Reverse the order of key-points By default, the vertices of
+ a face are ordered counterclockwise.
-
+
- Enable to Create polygons near boundary
+- and Create polyhedrons near boundary
-
-\n 3D pattern
+\n For a 3D pattern
\image html patternmapping2.png
In this dialog you should specify:
+- \b Pattern, which can be loaded from .smp pattern file previously
+created manually or generated automatically from an existing mesh or submesh.
- A 3D block (Solid) object;
- Two vertices that specify the order of nodes in the resulting mesh.
+Alternatively, it is possible to select Refine selected mesh elements
+checkbox and apply the pattern to
+- One or several Mesh volumes instead of a geometric 3D
+object
+- and select two /b Nodes instead of vertices.
+Additionally it is possible to:
+- Enable to Create polygons near boundary
+- and Create polyhedrons near boundary
-
-Then you either load a .smp pattern file previously created manually
-by clicking on the "Load pattern" button, or click on the \b
-New button for automatic generation of the pattern.
+\n Automatic Generation
-For automatic generation you should specify a geometrical face (for a
-2D pattern) or a solid (for a 3D pattern) with a mesh built on it. Mesh nodes lying on
-face vertices become key-points of the pattern. Additionally, for a 2D
-pattern you may choose the way of getting nodes coordinates by
-projecting nodes on the face instead of using
-"positions on face" generated by mesher (if there is any). Faces
-having a seam edge can't be used for automatic pattern creation.
+To generate a pattern automatically from an existing mesh or submesh,
+click \b New button.
-When creating a pattern from an existing mesh, there are two possible
-cases:
-
-- A sub-mesh on face/solid is selected. A pattern is created from the 2d/3d
-elements bound to a face/solid by mesher. For 2D pattern, node coordinates are either
-"positions on face" computed by mesher, or coordinates got by node
-projection on a geometrical surface, according to the user choice. For
-3D pattern, nodes coordinates correspond to the nodes computed by mesher.
-- A mesh where the main shape is a face/solid, is selected. A pattern is
-created from all the 2d/3d elements in a mesh. In addition, for 2D
-pattern, if all mesh elements are build by mesher, the user can select
-the way of getting nodes coordinates, else all nodes are projected on
-a face surface.
-
-\image html a-patterntype.png
-
- 2D Pattern Creation dialog box
+The following dialog box will appear:
\image html a-patterntype1.png
- 3D Pattern Creation dialog box
+In this dialog you should specify:
+
+
+- Mesh or Submesh, which is a meshed geometrical face (for a
+2D pattern) or a meshed solid (for a 3D pattern). Mesh nodes lying on
+the face vertices become key-points of the pattern.
+- A custom Pattern Name
+- Additionally, for a 2D pattern you may choose to
+Project nodes on the face to get node coordinates instead of using
+"positions on face" generated by the mesher (if there is any). The faces
+having a seam edge cannot be used for automatic pattern creation.
+
+
+When a pattern is created from an existing mesh, two cases are possible:
+
+- A sub-mesh on a face/solid is selected. The pattern is created from the 2d/3d
+elements bound to the face/solid by the mesher. For a 2D pattern, the node coordinates are either
+"positions on face" computed by the mesher, or coordinates got by node
+projection on a geometrical surface, according to the user choice. For
+a 3D pattern, the node coordinates correspond to the nodes computed by
+the mesher.
+- A mesh, where the main shape is a face/solid, is selected. The pattern is
+created from all 2d/3d elements in a mesh. In addition, if all mesh
+elements of a 2D pattern are built by the mesher, the user can select
+how to get node coordinates, otherwise all nodes are projected on
+a face surface.
+
Mapping algorithm
-The mapping algorithm for 2D case is as follows:
+The mapping algorithm for a 2D case is as follows:
-- Key-points are set in the order that they are encountered when
- walking along a pattern boundary so that elements are on the left. The
- first key-point is preserved.
-- Find geometrical vertices corresponding to key-points by vertices
- order in a face boundary; here, "Reverse order of key-points" flag is
- taken into account. \image html image95.gif
-- Boundary nodes of a pattern are mapped onto edges of a face: a
- node located between certain key-points on a pattern boundary is
- mapped on a geometrical edge limited by corresponding geometrical
- vertices. Node position on an edge reflects its distance from two
- key-points. \image html image96.gif
-- Coordinates of a non-boundary node in a parametric space of a face
- are defined as following. In a parametric space of a pattern, a node
- lays at the intersection of two iso-lines, each of which intersects a
- pattern boundary at least at two points. Knowing mapped positions of
- boundary nodes, we find where isoline-boundary intersection points are
- mapped to, and hence we can find mapped isolines direction and then,
- two node positions on two mapped isolines. The eventual mapped
- position of a node is found as an average of positions on mapped
- isolines. \image html image97.gif
+- The key-points are set counterclockwise in the order corresponding
+ to their location on the pattern boundary. The first key-point is preserved.
+- The geometrical vertices corresponding to the key-points are found
+ on face boundary. Here, "Reverse order of key-points" flag is set.
+\image html image95.gif
+- The boundary nodes of the pattern are mapped onto the edges of the face: a
+ node located between two key-points on the pattern boundary is
+ mapped on the geometrical edge limited by the corresponding geometrical
+ vertices. The node position on the edge depends on its distance from the
+ key-points.
+\image html image96.gif
+- The cordinates of a non-boundary node in the parametric space of the face
+ are defined in the following way. In the parametric space of the
+ pattern, the node lies at the intersection of two iso-lines. Both
+ of them intersect the pattern boundary at two
+ points at least. If the mapped positions of boundary nodes are known, it is
+ possible to find, where the points at the intersection of isolines
+ and boundaries are mapped. Then it is possible to find
+ the direction of mapped isolinesection and, filally, the poitions of
+ two nodes on two mapped isolines. The eventual mapped
+ position of the node is found as an average of the positions on mapped
+ isolines.
+\image html image97.gif
-For 3D case the algorithm is similar.
+The 3D algorithm is similar.
See Also a sample TUI Script of a
\ref tui_pattern_mapping "Pattern Mapping" operation.
diff --git a/doc/salome/gui/SMESH/input/tui_transforming_meshes.doc b/doc/salome/gui/SMESH/input/tui_transforming_meshes.doc
index 87d75b672..22f11886f 100644
--- a/doc/salome/gui/SMESH/input/tui_transforming_meshes.doc
+++ b/doc/salome/gui/SMESH/input/tui_transforming_meshes.doc
@@ -426,15 +426,15 @@ if salome.sg.hasDesktop():
Create boundary elements
\code
-# The goal of this feature is to enable the following use cases:
-# 1) The mesh MESH1 with 3D cells does not have or have only a part of its skin (2D cells):
-# 1.1) Add the 2D skin (missing 2D cells) to MESH1 (what it's done now by the algorithm).
-# 1.2) Create new 3D Mesh MESH2 that consists of MESH1 and added 2D skin cells.
-# 1.3) Create new 2D Mesh MESH3 that consists of only the 2D skin cells.
+# The objective of these samples is to illustrate the following use cases:
+# 1) The mesh MESH1 with 3D cells has no or only a part of its skin (2D cells):
+# 1.1) Add the 2D skin (missing 2D cells) to MESH1 (what is done now by the algorithm).
+# 1.2) Create a new 3D Mesh MESH2 that consists of MESH1 and added 2D skin cells.
+# 1.3) Create a new 2D Mesh MESH3 that consists only of 2D skin cells.
# 2) The mesh MESH1 with 3D cells has all its skin (2D cells):
-# Create new 2D Mesh MESH3 that consists of only the 2D skin cells.
+# Create a new 2D Mesh MESH3 that consists only of 2D skin cells.
#
-# In all cases an option to create a group containing these 2D skin cells should be available.
+# In all cases an option to create a group containing these 2D skin cells is available.
from smesh import *
@@ -451,7 +451,7 @@ init_nb_faces = MESH1.NbFaces()
init_nb_volumes = MESH1.NbVolumes()
# =========================================================================================
-# 1) The mesh MESH1 with 3D cells does not have or have only a part of its skin (2D cells)
+# 1) The mesh MESH1 with 3D cells has no or only a part of its skin (2D cells)
# =========================================================================================
# remove some faces
all_faces = MESH1.GetElementsByType(SMESH.FACE)
@@ -479,7 +479,7 @@ for v in volumes:
assert(init_nb_faces == MESH1.NbFaces())
assert(init_nb_edges == MESH1.NbEdges())
-# 1.1.3) to group of elements
+# 1.1.3) to a group of elements
volGroup1 = MESH1.CreateEmptyGroup(SMESH.VOLUME, "volGroup1")
volGroup1.Add( volumes[: init_nb_volumes/2])
volGroup2 = MESH1.CreateEmptyGroup(SMESH.VOLUME, "volGroup2")
@@ -490,8 +490,8 @@ MESH1.MakeBoundaryMesh(volGroup2)
assert(init_nb_faces == MESH1.NbFaces())
assert(init_nb_edges == MESH1.NbEdges())
-# 1.1.4) to submesh.
-# The submesh has no volumes, so check if it pass w/o a crash and does not create
+# 1.1.4) to a submesh.
+# The submesh has no volumes, so it is required to check if it passes without crash and does not create
# missing faces
faceSubmesh = MESH1.GetSubMesh( boxFace, "boxFace" )
MESH1.RemoveElements(rm_faces)
@@ -507,7 +507,7 @@ assert(group.GetName() == groupName)
assert(group.Size() == len(rm_faces))
-# 1.2) Create new 3D Mesh MESH2 that consists of MESH1 and added 2D skin cells.
+# 1.2) Create a new 3D Mesh MESH2 that consists of MESH1 and added 2D skin cells.
# ------------------------------------------------------------------------------
MESH1.RemoveElements(rm_faces)
meshName = "MESH2"
@@ -526,7 +526,7 @@ assert(group.GetName() == groupName)
assert(group.Size() == len(rm_faces))
assert(group.GetMesh()._is_equivalent(MESH2.GetMesh()))
-# 1.3) Create new 2D Mesh MESH3 that consists of only the 2D skin cells.
+# 1.3) Create a new 2D Mesh MESH3 that consists only of 2D skin cells.
# -----------------------------------------------------------------------
MESH1.RemoveElements(rm_faces)
meshName = "MESH3"
@@ -549,7 +549,7 @@ assert(MESH3.NbFaces() == init_nb_faces)
# ==================================================================
# 2) The mesh MESH1 with 3D cells has all its skin (2D cells)
-# Create new 2D Mesh MESH3 that consists of only the 2D skin cells.
+# Create a new 2D Mesh MESH3 that consists only of 2D skin cells.
# ==================================================================
MESH1.MakeBoundaryMesh(MESH1)
MESH3,group = MESH1.MakeBoundaryMesh(MESH1,meshName=meshName,toCopyExistingBondary=True)