IPAL52702: TC7.6.0: Incorrect large name of SMESH group in the Object Browser

Add class toUtf8

IPAL52708: TC7.6.0: name of copied group is wrong when Scale transform
    Fix gp_Trsf definition in SMESH_MeshEditor_i::scale()

IPAL52704: TC7.6.0: "Modification of orientation" don't work on volumes
    Fix SMESHGUI_MultiEditDlg::isIdValid()

+ Doc update
This commit is contained in:
eap 2015-04-27 16:21:01 +03:00
parent 299e2326cd
commit d64c9cac70
19 changed files with 247 additions and 230 deletions

View File

@ -2,62 +2,45 @@
\page changing_orientation_of_elements_page Changing orientation of elements \page changing_orientation_of_elements_page Changing orientation of elements
\n Orientation of an element is switched by changing the order of its nodes. \n Orientation of an element is changed by changing the order of its nodes.
<em>To change orientation of elements:</em> <em>To change orientation of elements:</em>
<ol> <ol>
<li>Select a mesh.</li> <li>Select a mesh (and display it in the 3D Viewer if you are going to pick elements by mouse).</li>
<li>Display a mesh, a group or a sub-mesh if you plan to select <li>In the \b Modification menu select the \b Orientation item or click
elements to reorient in the 3D viewer.</li> <em>Orientation</em> button in the toolbar.
<li>In the \b Modification menu select the \b Orientation item or click
<em>Orientation</em> button in the toolbar.
<center> <center>
\image html image79.png \image html image79.png
<em>"Orientation" button</em> <em>"Orientation" button</em>
</center> </center>
The following dialog box will appear: The following dialog box will appear:
<center> <center>
\image html orientaation1.png \image html orientaation1.png
</center> </center>
<br> <ul>
<ul> <li>Select type of elements to reorient: \b Face or \b Volume.</li>
<li>Select <b>Element Type</b> to reorient: either \b Face or \b <li><b>The main list</b> shall contain the elements which will be
Volume </li> reoriented. You can click on an element in the 3D viewer and it will
<li><b>The main list</b> shall contain the elements which will be be highlighted. After that click the \b Add button and the ID of this
reoriented. You can click on an element in the 3D viewer and it will element will be added to the list. To remove a selected element or
be highlighted. After that click the \b Add button and the ID of this elements from the list click the \b Remove button. The \b Sort button
element will be added to the list. To remove a selected element or allows to sort the list of elements IDs. The <b>Set filter</b> button
elements from the list click the \b Remove button. The \b Sort button allows to apply a definite \ref filtering_elements "filter" to
allows to sort the list of elements IDs. <br> selection of elements.</li>
The <b>Set filter</b> button allows to apply a definite filter to <li><b>Apply to all</b> radio button allows to modify the orientation
selection of elements of your group. Depending on \a Source of of all elements of the selected mesh.</li>
elements to filter selected in \ref filtering_elements "Filter" <li><b>Select from</b> set of fields allows to choose a sub-mesh or an
dialog, the filter will be applied to different sets of elements.<ul> existing group whose elements then can be added to the list.</li>
<li> To all elements of the mesh - for \a Mesh source. All </ul>
elements satisfying the filter criteria will be highlighted in the
Viewer. You can adjust the selection and add the selected elements
to the <b>main list</b>.</li>
<li> To the elements selected in the Viewer - for <em>Initial
Selection</em> source. As a result, elements rejected by the
filter will be deselected.</li>
<li> To the elemets present in the <b>main list</b> -
for <em>Current Dialog</em> source. As a result, elements rejected
by the filter will be remove from the list.</li> </ul>
</li>
<li><b>Apply to all</b> radio button allows to modify the orientation
of all elements of the mesh.</li>
<li><b>Select from</b> set of fields allows to choose a sub-mesh or a
group whose elements can be added to the list.</li>
</ul>
</li> </li>
<li>Click the \b Apply or <b>Apply and Close</b> button to confirm the operation.</li> <li>Click the \b Apply or <b>Apply and Close</b> button to confirm the operation.</li>
</ol> </ol>
<br><b>See Also</b> a sample TUI Script of a <br><b>See Also</b> a sample TUI Script of a
\ref tui_orientation "Change Orientation" operation. \ref tui_orientation "Change Orientation" operation.
*/ */

View File

@ -400,9 +400,11 @@ failure is provided in \b Errors table.
After you select an error, <b>Show Sub-shape</b> button allows After you select an error, <b>Show Sub-shape</b> button allows
visualizing in magenta the geometrical entity that causes the error. visualizing in magenta the geometrical entity that causes the error.
<center>
\image html failed_computation.png \image html failed_computation.png
<em>3D algorithm failed to compute mesh on a box shown using <b>Show <em>3D algorithm failed to compute mesh on a box shown using <b>Show
Sub-shape</b> button</em> Sub-shape</b> button</em>
</center>
<b>Publish Sub-shape</b> button publishes the sub-shape, whose meshing <b>Publish Sub-shape</b> button publishes the sub-shape, whose meshing
has failed, in the Geometry component as a child of the main shape, which has failed, in the Geometry component as a child of the main shape, which
@ -420,9 +422,11 @@ the visualization of faces and volumes (if any).
<b>Bad Mesh to Group</b> button creates groups of bad mesh entities <b>Bad Mesh to Group</b> button creates groups of bad mesh entities
to facilitate their analysis. to facilitate their analysis.
<center>
\image html show_bad_mesh.png \image html show_bad_mesh.png
<em>Edges bounding a hole in the surface are shown in magenta using <b>Show <em>Edges bounding a hole in the surface are shown in magenta using <b>Show
bad Mesh</b> button</em> bad Mesh</b> button</em>
</center>
\note Mesh Computation Information box does not appear if you set \note Mesh Computation Information box does not appear if you set
"Mesh computation/Show a computation result notification" preference "Mesh computation/Show a computation result notification" preference

View File

@ -6,7 +6,7 @@ This operation allows cutting one or several quadrangle elements into two or fou
<em>To cut quadrangles:</em> <em>To cut quadrangles:</em>
1) Display a mesh, a 2D sub-mesh or a group of faces in the 3D viewer. 1) Select a mesh (and display it in the 3D Viewer if you are going to pick elements by mouse).
2) In the \b Modification menu select the <b>Cutting of quadrangles</b> item or 2) In the \b Modification menu select the <b>Cutting of quadrangles</b> item or
click <em>"Cutting of quadrangles"</em> button in the toolbar. click <em>"Cutting of quadrangles"</em> button in the toolbar.
@ -25,8 +25,9 @@ keyboard button to select several quadrangles):
- Click \b Add button and the ID of this quadrangle will be added to the list. - Click \b Add button and the ID of this quadrangle will be added to the list.
- To remove a selected element or elements from the list click \b Remove button. - To remove a selected element or elements from the list click \b Remove button.
- <b>Sort list</b> button allows sorting the list of IDs. - <b>Sort list</b> button allows sorting the list of IDs.
- \b Filter button allows applying a definite filter to the selection of quadrangles. - \b Filter button allows applying a definite \ref filtering_elements "filter"
- <b>Apply to all</b> check box allows cutting all quadrangles of the selected mesh, sub-mesh or group. to the selection of quadrangles.
- <b>Apply to all</b> check box allows cutting all quadrangles of the selected mesh.
- \b Preview provides a preview of cutting in the viewer. It is disabled for <b>Cut into 4 triangles</b> as this cutting way implies no ambiguity. - \b Preview provides a preview of cutting in the viewer. It is disabled for <b>Cut into 4 triangles</b> as this cutting way implies no ambiguity.
- \b Criterion defines the way of cutting: - \b Criterion defines the way of cutting:
- <b>Cut into 4 triangles</b> allows cutting a quadrangle into four triangles by inserting a new node at the center of the quadrangle. The other options allow cutting a quadrangle into two triangles by connecting the nodes of a diagonal. - <b>Cut into 4 triangles</b> allows cutting a quadrangle into four triangles by inserting a new node at the center of the quadrangle. The other options allow cutting a quadrangle into two triangles by connecting the nodes of a diagonal.
@ -36,7 +37,7 @@ keyboard button to select several quadrangles):
- <b>Aspect Ratio</b> cuts by the diagonal splitting the quadrangle into triangles with \ref aspect_ratio_page "Aspect Ratio" closer to 1 - <b>Aspect Ratio</b> cuts by the diagonal splitting the quadrangle into triangles with \ref aspect_ratio_page "Aspect Ratio" closer to 1
- <b>Minimum Angle</b> cuts by the diagonal splitting the quadrangle into triangles with \ref minimum_angle_page "Minimum Angle" closer to 60 degrees. - <b>Minimum Angle</b> cuts by the diagonal splitting the quadrangle into triangles with \ref minimum_angle_page "Minimum Angle" closer to 60 degrees.
- <b>Skew</b> cuts by the diagonal splitting the quadrangle into triangles with \ref skew_page "Skew" closer to 0.0 degrees. - <b>Skew</b> cuts by the diagonal splitting the quadrangle into triangles with \ref skew_page "Skew" closer to 0.0 degrees.
- <b>Select from</b> allows choosing a sub-mesh or an existing group, whose quadrangle elements will be automatically added to the main list. - <b>Select from</b> allows choosing a sub-mesh or an existing group, whose quadrangle elements then can be added to the main list.
3) Click the \b Apply or <b>Apply and Close</b> button to confirm the operation. 3) Click the \b Apply or <b>Apply and Close</b> button to confirm the operation.

View File

@ -1,6 +1,6 @@
/*! /*!
\page diagonal_inversion_of_elements_page Diagonal inversion of elements \page diagonal_inversion_of_elements_page Diagonal inversion of two triangles
\n In MESH you can inverse the diagonal (edge) of a pseudo-quadrangle \n In MESH you can inverse the diagonal (edge) of a pseudo-quadrangle
formed by two neighboring triangles with one common edge. formed by two neighboring triangles with one common edge.
@ -18,7 +18,7 @@ The following dialog box shall appear:
\image html diagonalinversion.png \image html diagonalinversion.png
</li> </li>
<li>Enter the ID of the required edge in the \b Edge field or select <li>Enter IDs of nodes forming the required edge in the \b Edge field (the node IDs must be separated by a dash) or select
this edge in the 3D viewer.</li> this edge in the 3D viewer.</li>
<li>Click the \b Apply or <b>Apply and Close</b> button.</li> <li>Click the \b Apply or <b>Apply and Close</b> button.</li>
</ol> </ol>
@ -30,4 +30,4 @@ this edge in the 3D viewer.</li>
<br><b>See Also</b> a sample TUI Script of a <br><b>See Also</b> a sample TUI Script of a
\ref tui_diagonal_inversion "Diagonal Inversion of Elements" operation. \ref tui_diagonal_inversion "Diagonal Inversion of Elements" operation.
*/ */

View File

@ -3,57 +3,62 @@
\page merging_elements_page Merging Elements \page merging_elements_page Merging Elements
\n This functionality allows to merge coincident elements of a mesh \n This functionality allows to merge coincident elements of a mesh
selectable in the dialog box. object selectable in the dialog box. Two elements are considered coincident if they are based on the same set of nodes.
\image html mergeelems_ico.png "Merge elements button" \image html mergeelems_ico.png "Merge elements menu button"
<ol> <ol>
<li>Choose in the main menu \b Modification -> \b Transformation -> <b>Merge elements</b> item. The following dialog box <li>Choose in the main menu \b Modification -> \b Transformation
shall appear:</li> -> <b>Merge elements</b> item. The following dialog box shall
appear:</li>
\image html mergeelems_auto.png \image html mergeelems_auto.png
<br> <br>
<ul> <ul>
<li>\b Name is the name of the mesh whose elements will be merged.</li> <li>\b Name is the name of the mesh object whose elements will be
merged.</li>
<li>\b Automatic or \b Manual Mode allows choosing how the elements <li>\b Automatic or \b Manual Mode allows choosing how the elements
are processed. are processed.
</ul> </ul>
<li><b>Automatic mode:</b> <li><b>Automatic mode:</b>
<ul> <ul>
<li>In the \b Automatic Mode the elements created on the same nodes will be merged.</li> <li>In the \b Automatic Mode the elements created on the same nodes
will be merged.</li>
</ul> </ul>
</li> </li>
<li>If the \b Manual Mode is selected, additional controls are <li>If the \b Manual Mode is selected, additional controls are
available: available:
\image html mergeelems.png \image html mergeelems.png
<br> <br>
<ul> <ul>
<li>\b Detect button generates the list of coincident elements for the given \b Tolerance.</li> <li>\b Detect button generates the list of coincident elements found
in the selected object.</li>
<li><b>Coincident elements</b> is a list of groups of elements for <li><b>Coincident elements</b> is a list of groups of elements for
merging. All elements of each group will form one after the operation. merging. As result of the operation all elements of each group will
be replaced by the firts element of the group.
<ul> <ul>
<li>\b Remove button deletes the selected group from the list.</li> <li>\b Remove button deletes the selected group from the list.</li>
<li>\b Add button adds to the list a group of elements selected in the <li>\b Add button adds to the list a group of elements selected in the
viewer with pressed "Shift" key.</li> viewer with pressed "Shift" key.</li>
<li><b>Select all</b> checkbox selects all groups.</li> <li><b>Select all</b> checkbox selects all groups.</li>
<li><b>Show double elements IDs</b> checkbox shows/hides identifiers of <li><b>Show double elements IDs</b> checkbox shows/hides identifiers of
elements in the 3D viewer.</li> elements of selected groups in the 3D viewer.</li>
</ul></li> </ul></li>
<li><b>Edit selected group</b> list allows editing the selected group: <li><b>Edit selected group</b> list allows editing the selected group:
<br><br> <br><br>
\image html add.png \image html add.png
<center>adds to the group the element selected in the viewer.</center> <center>adds to the group the elements selected in the viewer.</center>
<br> <br>
\image html remove.png \image html remove.png
<center>removes from the group the selected element.</center> <center>removes from the group the selected elements.</center>
<br> <br>
\image html sort.png \image html sort.png
<center>moves the selected element to the first position in the <center>moves the selected element to the first position in the
group. This means that all other elements will be merged into this group. This means that all other elements of the group will be
one.</center> replaced by this one.</center>
<br> <br>
</li> </li>
<li>To confirm your choice click \b Apply or <b>Apply and Close</b> button.</li> <li>To confirm your choice click \b Apply or <b>Apply and Close</b> button.</li>

View File

@ -6,19 +6,18 @@ This functionality allows user to detect groups of coincident nodes
with specified tolerance; each group of the coincident nodes can be with specified tolerance; each group of the coincident nodes can be
then converted to the single node. then converted to the single node.
\image html mergenodes_ico.png "Merge nodes button" \image html mergenodes_ico.png "Merge nodes menu button"
<em>To merge nodes of your mesh:</em> <em>To merge nodes of your mesh:</em>
<ol> <ol>
<li>From the \b Modification choose \b Transformation and from its <li>Choose \b Modification -> \b Transformation -> <b>Merge nodes</b>
sub-menu select the <b>Merge nodes</b> item. The following dialog box menu item. The following dialog box shall appear:</li>
shall appear:</li>
<br> <br>
\image html mergenodes_auto.png \image html mergenodes_auto.png
<br> <br>
<ul> <ul>
<li>\b Name is the name of the mesh whose nodes will be merged.</li> <li>\b Name is the name of the mesh whose nodes will be merged.</li>
<li>\b Automatic or \b Manual Mode allows choosing how the nodes are <li>\b Automatic or \b Manual mode allows choosing how the nodes are
processed. processed.
<li>\b Tolerance is a maximum distance between nodes sufficient for <li>\b Tolerance is a maximum distance between nodes sufficient for
merging.</li> merging.</li>
@ -34,20 +33,21 @@ will be merged. The nodes which belong to the groups specified in the
<b>Exclude Groups</b> will be not taken into account.</li> <b>Exclude Groups</b> will be not taken into account.</li>
</ul> </ul>
</li><br> </li><br>
<li>If the \b Manual Mode is selected, additional controls are available: <li> The \b Manual mode gives you full control of what the operation will do.
In this mode additional controls are available:
<ul> <ul>
<li>\b Detect button generates the list of coincident nodes for the given <li>\b Detect button generates the list of coincident nodes for the given
\b Tolerance.</li> \b Tolerance.</li>
<li><b>Coincident nodes</b> is a list of groups of nodes for <li><b>Coincident nodes</b> is a list of groups of nodes for
merging. All nodes of each group will form one after the merging. As result of the operation all nodes of each group will be
operation. replaces by the firts node of the group.
<ul> <ul>
<li>\b Remove button deletes the selected group from the list.</li> <li>\b Remove button deletes the selected group from the list.</li>
<li>\b Add button adds to the list a group of nodes selected in the <li>\b Add button adds to the list a group of nodes selected in the
viewer with pressed "Shift" key.</li> viewer with pressed "Shift" key.</li>
<li><b>Select all</b> checkbox selects all groups.</li> <li><b>Select all</b> checkbox selects all groups.</li>
<li><b>Show double nodes IDs</b> checkbox shows/hides identifiers of <li><b>Show double nodes IDs</b> checkbox shows/hides identifiers of
nodes in the 3D viewer.</li> nodes of selected groups in the 3D viewer.</li>
</ul> </ul>
<br> <br>
@ -55,18 +55,18 @@ nodes in the 3D viewer.</li>
<br> <br>
</li> </li>
<li><b>Edit selected group</b> list allows editing the selected <li><b>Edit selected group</b> list allows editing the selected
group: group:
<br><br> <br><br>
\image html add.png \image html add.png
<center>adds to the group the node selected in the viewer.</center> <center>adds to the group the nodes selected in the viewer.</center>
<br> <br>
\image html remove.png \image html remove.png
<center>removes from the group the selected node.</center> <center>removes from the group the selected nodes.</center>
<br> <br>
\image html sort.png \image html sort.png
<center>moves the selected node to the first position in the <center>moves the selected node to the first position in the
group. This means that all other nodes will be merged into this group. This means that all other nodes of the group will be
one.</center><br> replaced by this one.</center><br>
</li> </li>
</ul> </ul>
</li> </li>

View File

@ -3,8 +3,8 @@
\page mesh_through_point_page Moving nodes \page mesh_through_point_page Moving nodes
\n In mesh you can define a node at a certain point either \n In mesh you can define a node at a certain point either
by movement of the node closest to the point or by - by movement of the node closest to the point or
movement of any node to the point. - by movement of a selected node to the point.
<em>To displace a node:</em> <em>To displace a node:</em>
<ol> <ol>
@ -17,19 +17,20 @@ click <em>"Move Node"</em> button in the toolbar.
The following dialog will appear: The following dialog will appear:
\image html meshtopass1.png "Manual node selection" \image html meshtopass1.png "Manual node selection"
<br>
\image html meshtopass2.png "Automatic node selection" \image html meshtopass2.png "Automatic node selection"
<br>
</li> </li>
<li>Specify the way of node selection: manually (the first radio <li>Specify the way of node selection: manually (the first radio
button) or automatically (the second radio button).</li> button) or automatically (the second radio button).</li>
<li>If the manual method is selected, select the necessary node (X, Y, <li>If the manual method is selected, select a node to move (X, Y,
Z fields show the original coordinates of the node to move) or type Z fields show the original coordinates of the node) or type
the node ID.</li> the node ID.</li>
<li>Enter the coordinates of the destination point.</li> <li>Enter the coordinates of the destination point. You can
<li>Click <b>Update Destination</b> button to set the coordinates click <b>Update Destination</b> button to set the coordinates of the
of the destination point equal to the coordinates of the node to destination point equal to the coordinates of the node to move.</li>
move.</li>
<li>Activate \b Preview check-box to show the result of move in the <li>Activate \b Preview check-box to show the result of move in the
viewer.</li> viewer.</li>
<li>Click the \b Apply or <b>Apply and Close</b> button to confirm the <li>Click the \b Apply or <b>Apply and Close</b> button to confirm the

66
doc/salome/gui/SMESH/input/modifying_meshes.doc Executable file → Normal file
View File

@ -2,51 +2,57 @@
\page modifying_meshes_page Modifying meshes \page modifying_meshes_page Modifying meshes
Salome provides an extremely vast specter of mesh modification and Salome provides a vast specter of mesh modification and
transformation operations, giving the possibility to: transformation operations, giving the possibility to:
<ul> <ul>
<li>\subpage adding_nodes_and_elements_page "Add" mesh elements from <li>\subpage adding_nodes_and_elements_page "Add" mesh elements from
nodes to polyhedrons at an arbitrary place in the mesh.</li> nodes to polyhedrons at an arbitrary place in the mesh.</li>
<li>\subpage adding_quadratic_elements_page "Add quadratic" mesh <li>\subpage adding_quadratic_elements_page "Add quadratic" mesh
elements (used in quadratic meshes) from quadratic nodes to quadratic polyhedrons at an arbitrary place in the mesh.</li> elements from quadratic segments to quadratic hexahedrons at an
arbitrary place in the mesh.</li>
<li>\subpage removing_nodes_and_elements_page "Remove" any existing <li>\subpage removing_nodes_and_elements_page "Remove" any existing
mesh elements.</li> mesh elements and nodes.</li>
<li>\subpage translation_page "Translate" in the indicated direction the mesh or some of <li>\subpage translation_page "Translate" in the indicated direction
its elements.</li> the mesh or some of its elements.</li>
<li>\subpage rotation_page "Rotate" by the indicated axis and angle <li>\subpage rotation_page "Rotate" by the indicated axis and angle
the mesh or some of its elements.</li> the mesh or some of its elements.</li>
<li>\subpage scale_page "Scale" the mesh or some of its <li>\subpage scale_page "Scale" the mesh or some of its elements.</li>
elements.</li> <li>\subpage symmetry_page "Mirror" the mesh through a point, a vector
<li>\subpage symmetry_page "Mirror" the mesh or a plane of symmetry.</li>
through a point or a vector of symmetry.</li> <li>\subpage double_nodes_page "Duplicate nodes or/and Elements".
<li>\subpage double_nodes_page "Duplicate nodes or/and Elements". Duplication of nodes can be useful to emulate a crack in the model.</li> Duplication of nodes can be useful to emulate a crack in the
model.</li>
<li>Unite meshes by \subpage sewing_meshes_page "sewing" free borders, <li>Unite meshes by \subpage sewing_meshes_page "sewing" free borders,
conform free borders, border to side or side elements.</li> border to side or side elements.</li>
<li>\subpage merging_nodes_page "Merge Nodes", considered coincident <li>\subpage merging_nodes_page "Merge Nodes", coincident within the
within the indicated tolerance.</li> indicated tolerance.</li>
<li>\subpage merging_elements_page "Merge Elements", considered coincident <li>\subpage merging_elements_page "Merge Elements" based on the same
within the indicated tolerance.</li> nodes.</li>
<li>\subpage mesh_through_point_page "Move Nodes" to an arbitrary location <li>\subpage mesh_through_point_page "Move Nodes" to an arbitrary
with consequent transformation of all adjacent elements and edges.</li> location with consequent transformation of all adjacent
<li>\subpage diagonal_inversion_of_elements_page "Invert an edge" between neighboring triangles.</li> elements.</li>
<li>\subpage diagonal_inversion_of_elements_page "Invert an edge"
between neighboring triangles.</li>
<li>\subpage uniting_two_triangles_page "Unite two triangles".</li> <li>\subpage uniting_two_triangles_page "Unite two triangles".</li>
<li>\subpage uniting_set_of_triangles_page "Unite several adjacent triangles".</li> <li>\subpage uniting_set_of_triangles_page "Unite several adjacent triangles".</li>
<li>\subpage changing_orientation_of_elements_page "Change orientation" <li>\subpage changing_orientation_of_elements_page "Change orientation"
of the selected elements.</li> of the selected elements.</li>
<li>\subpage reorient_faces_page "Reorient faces".</li> <li>\subpage reorient_faces_page "Orient faces" by several means.</li>
<li>\subpage cutting_quadrangles_page "Cut a quadrangle" into two triangles.</li> <li>\subpage cutting_quadrangles_page "Cut a quadrangle" into two
<li>\subpage split_to_tetra_page "Split" volumic elements into tetrahedra or prisms.</li> triangles.</li>
<li>\subpage split_to_tetra_page "Split" volumic elements into
tetrahedra or prisms.</li>
<li>\subpage smoothing_page "Smooth" elements, reducung distortions in <li>\subpage smoothing_page "Smooth" elements, reducung distortions in
them by adjusting the locations of element corners.</li> them by adjusting the locations of nodes.</li>
<li>Create an \subpage extrusion_page "extrusion" along a vector or by <li>Create an \subpage extrusion_page "extrusion" along a vector or by
normal to a discretized surface.</li> normal to a discretized surface.</li>
<li>Create an \subpage extrusion_along_path_page "extrusion along a path".</li> <li>Create an \subpage extrusion_along_path_page "extrusion along a path".</li>
<li>Create an edge or a surface by \subpage revolution_page "revolution" <li>Create elements by \subpage revolution_page "revolution" of the
of the selected node or edge.</li> selected nodes and elements.</li>
<li>Apply \subpage pattern_mapping_page "pattern mapping".</li> <li>Apply \subpage pattern_mapping_page "pattern mapping".</li>
<li>\subpage convert_to_from_quadratic_mesh_page "Convert regular mesh to quadratic", <li>\subpage convert_to_from_quadratic_mesh_page "Convert linear mesh to quadratic",
or vice versa.</li> or vice versa.</li>
<li>\subpage make_2dmesh_from_3d_page "Generate boundary elements".</li> <li>\subpage make_2dmesh_from_3d_page "Generate boundary elements".</li>
<li>\subpage generate_flat_elements_page "Generate flat elements on group boundaries or on faces".</li> <li>\subpage generate_flat_elements_page "Generate flat elements on group boundaries or on faces".</li>
<li>\subpage cut_mesh_by_plane_page "Cut a tetrahedron mesh by a plane".</li> <li>\subpage cut_mesh_by_plane_page "Cut a tetrahedron mesh by a plane".</li>

View File

@ -1,14 +1,15 @@
/*! /*!
\page reorient_faces_page Reorient faces \page reorient_faces_page Orient faces
\n This operation allows changing the orientation of a set faces in the following ways: \n This operation allows fixing the orientation of a set of faces in
the following ways:
<ul> <ul>
<li>The new orientation of a set of neighboring faces can be defined <li>The desired orientation of a set of neighboring faces can be defined
by a vector. <br> Since the direction of face normals in by a vector giving a desired direction of a normal of a certain face. <br>
the set can be even opposite, it is necessary to specify a control Since the direction of face normals in the set can be even opposite,
face, the normal to which will be compared with the vector. This face can be it is necessary to specify a \a control face, the normal to which
either: will be compared with the vector. This face can be either:
<ul> <ul>
<li>found by proximity to a given point, or</li> <li>found by proximity to a given point, or</li>
<li>specified explicitly.</li> <li>specified explicitly.</li>
@ -19,7 +20,7 @@
The orientation of a face is changed by reverting the order of its nodes. The orientation of a face is changed by reverting the order of its nodes.
<em>To change orientation of faces:</em> <em>To set orientation of faces:</em>
<ol> <ol>
<li>In the \b Modification menu select <b>Reorient faces</b> <li>In the \b Modification menu select <b>Reorient faces</b>
item or click <em>Reorient faces</em> button in the toolbar. item or click <em>Reorient faces</em> button in the toolbar.
@ -37,18 +38,20 @@ The orientation of a face is changed by reverting the order of its nodes.
containing faces to reorient, in the Object Browser or in the 3D containing faces to reorient, in the Object Browser or in the 3D
Viewer.</li> Viewer.</li>
<li>To reorient according to vector: <li>To reorient by direction of the face normal:
<ul> <ul>
<li>Specify the coordinates of the \b Point by which the control face <li>Specify the coordinates of the \b Point by which the control face
will be found. You can easy specify the \b will be found. You can specify the \b Point by either picking a
Point by either picking a node in the 3D Viewer or selecting a vertex node in the 3D Viewer or selecting a vertex in the Object
in the Object Browser. It is possible to pick the \b Face by mouse in Browser.</li>
the 3D Viewer or enter its ID.</li>
<li>Set up the \b Direction vector to be compared with the normal of the <li>Set up the \b Direction vector to be compared with the normal of the
control face. If you pick a node in the 3D Viewer then the \b Direction control face. There are following options: <ul>
vector will go from the coordinate system origin to the selected node. <li>adjust vector components directly;</li>
If you pick two nodes (holding Shift button) then the \b Direction vector <li>select a vertex in the Object Browser or a node in the 3D
will go from the first to the second node.</li> Viewer; their coordinates will define vector components;</li>
<li> pick two nodes (holding Shift button), the \b Direction vector
will go from the first to the second node.</li>
</ul>
</ul> </ul>
<br> <br>
@ -58,7 +61,7 @@ The orientation of a face is changed by reverting the order of its nodes.
</li> </li>
<li>In the second mode it is possible to directly input the \b Face ID in the corresponding field. <li>In the second mode it is possible to either pick the \b Face by mouse in the 3D Viewer or directly input the \b Face ID in the corresponding field.
<center> <center>
\image html reorient_2d_face.png "The orientation of adjacent faces is chosen according to a vector. The control face is explicitly given." \image html reorient_2d_face.png "The orientation of adjacent faces is chosen according to a vector. The control face is explicitly given."

View File

@ -16,7 +16,7 @@ a \ref extrusion_struct "structured mesh from scratch".
\image html image92.png \image html image92.png
<center><em>"Revolution" button</em></center> <center><em>"Revolution" button</em></center>
The following dialog common for line and planar elements will appear: The following dialog will appear:
\image html revolution1.png \image html revolution1.png
@ -79,8 +79,8 @@ The following dialog common for line and planar elements will appear:
</li> </li>
</ul> </ul>
</li> </li>
<li>Specify the \b Tolerance for the operation, which is used to <li>Specify the \b Tolerance, which is used to detect nodes lying
detect nodes lying on the axis of revolution. on the axis of revolution.
</li> </li>
<li>Activate <b>Preview</b> check-box to see the result mesh in <li>Activate <b>Preview</b> check-box to see the result mesh in
the viewer. the viewer.

View File

@ -16,28 +16,24 @@ the current study. You can \b Add or \b Delete filters.
\n In <b>Filter name</b> box you can specify the name for your \n In <b>Filter name</b> box you can specify the name for your
filter. By default it is prefixed with the corresponding entity type. filter. By default it is prefixed with the corresponding entity type.
When we use filters during a group creation or another operation (by
clicking <b>Set Filters</b> button in the corresponding dialog), the
menu for setting filters looks a bit differently (see the image below).
\anchor filtering_elements \anchor filtering_elements
Each filter can be applicable to \b Nodes, \b Edges, \b Faces or \b When we use filters during a group creation or another operation (by
Volumes. You can combine many criteria in one filter, but they all clicking <b>Set Filter</b> button in the corresponding dialog), the
must be of the same <b>Entity type</b>. <br> menu for setting filters looks as shown below.
The \b Add button creates a new criterion at the end of the list of The \b Add button creates a new criterion at the end of the list of
criteria. The \b Insert button creates a new criterion before the criteria. The \b Insert button creates a new criterion before the
selected criterion. The \b Remove button deletes the selected selected criterion. The \b Remove button deletes the selected
criterion. The \b Clear button deletes all criteria. criterion. The \b Clear button deletes all criteria.
\n Each <b>Entity type</b> has its specific list of criteria, however all \n Each <b>Entity type</b> has its specific list of criteria, however all
filters have common syntax. For each criterion you should specify the filters have common syntax. For each criterion you should specify the
<b>Threshold Value</b> and whether we search for the elements that should be <b>Threshold Value</b> and for numerical criteria whether we search
\b More, \b Less or \b Equal to this \b Value. You can also reverse the for the elements that should be \b More, \b Less or \b Equal to this
sense of a criterion using \b Unary operator Not and you should \b Value. You can also reverse the sense of a criterion using \b Unary
specify logical relations between criteria using \b Binary operators operator \a Not and you should specify logical relations between
Or and And. criteria using \b Binary operators \a Or and \a And.
\n Some criteria should have the additional parameter of \b Tolerance. \n Some criteria have the additional parameter of \b Tolerance.<br>
<br>
Switching on <b>Insert filter in viewer</b> checkbox limits Switching on <b>Insert filter in viewer</b> checkbox limits
selection of elements in the Viewer to the current filter. selection of elements in the Viewer to the current filter.
<br> <br>
@ -64,11 +60,10 @@ created. You have to select the mesh and the button will be enabled.
Some criteria are applicable to all <b>Entity types</b>: Some criteria are applicable to all <b>Entity types</b>:
<ul><li> <ul><li>
<b>Belong to Geom</b> selects entities whose all nodes <b>Belong to Geom</b> selects entities whose all nodes lie on the
lie on the shape defined by <b>Threshold Value</b>. shape defined by <b>Threshold Value</b>. If the threshold shape is a
If the threshold shape is a sub-shape of the main shape of the mesh sub-shape of the main shape of the mesh the algorithm works faster, if
the algorithm works faster, if this is any other this is any other shape the algorithm works slower.
shape the algorithm works slower.
</li><li> </li><li>
<b>Lying on Geom</b> selects entities whose at least one node <b>Lying on Geom</b> selects entities whose at least one node
lies on the shape defined by the <b>Threshold Value</b>. lies on the shape defined by the <b>Threshold Value</b>.
@ -76,7 +71,7 @@ If the threshold shape is a sub-shape of the main shape of the mesh the
algorithm works faster, if this is any other algorithm works faster, if this is any other
shape, the algorithm works slower. shape, the algorithm works slower.
</li><li> </li><li>
<b>Belong to Mesh Group</b> selects entities included into a mesh group <b>Belong to Mesh Group</b> selects entities included into the mesh group
defined by <b>Threshold Value</b>. defined by <b>Threshold Value</b>.
</li><li> </li><li>
<b>Range of IDs</b> allows selection of entities with the specified <b>Range of IDs</b> allows selection of entities with the specified
@ -97,14 +92,17 @@ other parts. <b>Threshold Value</b> locating any element of the domain can be ei
</li> </li>
</ul> </ul>
Some criteria are applicable to all <b>Entity types</b>, except for Some criteria are applicable to all <b>Entity types</b> of dimension
<b>Nodes</b> more than zero, i.e. to \b Edges, \b Faces and \b Volumes:
<ul><li> <ul><li>
<b>Linear</b> allows selection of Linear or Quadratic elements (if Unary is set to "Not") <b>Linear</b> allows selection of Linear or Quadratic elements (if Unary is set to "Not")
</li><li> </li><li>
<b>Geometry type</b> allows selection of elements by their geometric type <b>Geometry type</b> allows selection of elements by their geometric type
defined by the <b>Threshold Value</b>. The list of available geometric defined by the <b>Threshold Value</b>. The list of available geometric
types depends on the element entity type defined by the <b>Threshold Value</b>. types depends on the current entity type.
</li><li>
<b>Entity type</b> allows selection of elements by their type defined
as combination of geometry type + number of nodes.
</li> </li>
</ul> </ul>

View File

@ -2,7 +2,7 @@
\page sewing_meshes_page Sewing meshes \page sewing_meshes_page Sewing meshes
\n In SMESH you can sew elements of different meshes. The current \n In SMESH you can sew elements of a mesh. The current
functionality allows you to sew: functionality allows you to sew:
<ul> <ul>
<li>\ref free_borders_anchor "Free borders"</li> <li>\ref free_borders_anchor "Free borders"</li>
@ -13,7 +13,7 @@ functionality allows you to sew:
\image html sewing.png "Sewing button" \image html sewing.png "Sewing button"
<em>To sew elements of different meshes:</em> <em>To sew elements of a mesh:</em>
<ol> <ol>
<li>From the \b Modification menu choose the \b Transformation item <li>From the \b Modification menu choose the \b Transformation item
and from its sub-menu select the \b Sewing item.</li> and from its sub-menu select the \b Sewing item.</li>
@ -158,4 +158,4 @@ nodes in 3D viewer or define them by its id.
<b>See Also</b> a sample TUI Script of a <b>See Also</b> a sample TUI Script of a
\ref tui_sew_side_elements "Sew Side Elements" operation. \ref tui_sew_side_elements "Sew Side Elements" operation.
*/ */

View File

@ -5,7 +5,7 @@
\n This geometrical operation allows to perform a symmetrical copy of \n This geometrical operation allows to perform a symmetrical copy of
your mesh or some of its elements. your mesh or some of its elements.
<em>To create a symmetrical copy of the mesh:</em> <em>To create a symmetrical copy:</em>
<ol> <ol>
<li>From the \b Modification menu choose \b Transformation -> \b Symmetry item or click <li>From the \b Modification menu choose \b Transformation -> \b Symmetry item or click
@ -16,67 +16,72 @@ your mesh or some of its elements.
One of the following dialogs will appear: One of the following dialogs will appear:
It is possible to mirror a mesh or some of its elements through: It is possible to mirror a mesh or some of its elements through:
\image html symmetry1.png "a point (defined by a point and a vector)" \image html symmetry1.png "a point" <br>
\image html symmetry2.png "an axis" \image html symmetry2.png "an axis" <br>
\image html symmetry3.png "a plane (defined by a point and a normal to the plane)" \image html symmetry3.png "a plane (defined by a point and a normal to the plane)"
</li> </li>
<li>In the dialog: <li>In the dialog:
<ul> <ul>
<li>specify the IDs of the elements for the symmetry operation: <li>specify the elements for the symmetry operation:
<ul> <ul>
<li><b>Select the whole mesh, submesh or group</b> activating this <li><b>Select the whole mesh, submesh or group</b> activating this
checkbox; or</li> checkbox; or</li>
<li>choose mesh elements with the mouse in the 3D Viewer. It is <li>choose mesh elements with the mouse in the 3D Viewer. It is
possible to select a whole area with a mouse frame; or</li> possible to select a whole area with a mouse frame; or</li>
<li>input the element IDs directly in <b>ID Elements</b> field. The selected elements will be highlighted in the <li>input the element IDs directly in <b>ID Elements</b> field. The
viewer; or</li> selected elements will be highlighted in the viewer; or</li>
<li>apply Filters. <b>Set filter</b> button allows to apply a filter to the selection of elements. See more <li>apply Filters. <b>Set Filter</b> button allows to apply a
about filters in the \ref selection_filter_library_page "Selection filter library" page.</li> \ref filtering_elements "filter" to the selection of elements.</li>
</ul> </ul>
</li> </li>
<li>depending on the nature of the mirror object: <li>depending on the nature of the mirror object:
<ul> <ul>
<li>if the mesh is mirrored through a point, specify the coordinates <li>if the mesh is mirrored through a point, specify the coordinates
of the point</li> of the point, either directly or by picking a mesh node;</li>
<li>if the mesh is mirrored through an axis: <li>if the mesh is mirrored through an axis:
<ul> <ul>
<li>specify the cooordinates of the start \b Point of the axis vector;</li> <li>specify the coordinates of the start \b Point of the axis, either
<li>specify the axis \b Vector through the coordinates of its directly or by picking a mesh node;</li>
end point with respect to the coordinates of the start point;</li> <li>specify the components of axis \b Vector, either directly or by
picking a mesh node, in which case \b Vector is defined as a shift
between the \b Point and the node;</li>
</ul> </ul>
</li> </li>
<li>if the mesh is mirrored through a plane: <li>if the mesh is mirrored through a plane:
<ul> <ul>
<li>specify the cooordinates of the \b Point lying on the plane;</li> <li>specify the cooordinates of the \b Point lying on the plane,
<li>specify the axis \b Vector through the coordinates of its either directly or by picking a mesh node;</li>
end point with respect to the coordinates of the start point.</li> <li>specify the components of plane \b Normal, either directly or by
picking a mesh node, in which case \b Normal is defined as a shift
between the \b Point and the node.</li>
</ul> </ul>
</li> </li>
<li>specify the conditions of symmetry operation: <li>specify the conditions of symmetry operation:
<ul> <ul>
<li>activate <b>Move elements</b> radio button to create the source <li>activate <b>Move elements</b> radio button to change location of
mesh (or elements) at the new location and erase it from the previous location;</li> the selected elements within the current mesh;</li>
<li>activate <b>Copy elements</b> radio button to create the source <li>activate <b>Copy elements</b> radio button to duplicate the
mesh (or elements) at the new location, but leave it at the previous selected elements at the new location within the current mesh;</li>
location, the source mesh will be considered one and single mesh with the result of the rotation;</li> <li>activate <b>Create as new mesh</b> radio button to create new
<li>activate <b>Create as new mesh</b> radio button to leave the element in a new mesh; the new mesh appears in the Object Browser
source mesh (or elements) at its previous location and create a new with the default name MeshName_mirrored (it is possible to change
mesh at the new location, the new mesh appears in the Object Browser this name in the adjacent box);</li>
with the default name MeshName_rotated (it is possible to change this <li>activate <b> Copy groups </b> checkbox to put new mesh enities
name in the adjacent box);</li> into new groups if source entities belongs to some groups. New
<li>activate <b> Copy groups </b> checkbox to copy the groups of elements of the source mesh to the newly created mesh.</li> groups are named by pattern "<old group name>_mirrored".</li>
</ul> </ul>
</li> </li>
</ul> </ul>
<li>activate <b>Preview</b> checkbox to show the result of transformation in the viewer </li> <li>activate <b>Preview</b> checkbox to show the result of
transformation in the viewer;</li>
<li>click \b Apply or <b> Apply and Close</b> button to confirm the <li>click \b Apply or <b> Apply and Close</b> button to confirm the
operation.</li> operation.</li>
</ul> </ul>
</ol> </ol>

View File

@ -2,14 +2,15 @@
\page uniting_set_of_triangles_page Uniting a set of triangles \page uniting_set_of_triangles_page Uniting a set of triangles
\n In contrast to the previous operation this one allows to unite at \n In MESH you can union many neighboring triangles (cells) into
once many triangles if they have adjacent edges. quadrangles by deletion of the common edge.
<em>To union several triangles:</em> <em>To union several triangles:</em>
<ol> <ol>
<li>Display a mesh or a sub-mesh in the 3D viewer.</li> <li>Select a mesh (and display it in the 3D Viewer if you are going to
pick elements by mouse).</li>
<li>In the \b Modification menu select the <b>Union of triangles</b> <li>In the \b Modification menu select the <b>Union of triangles</b>
item or click <em>"Union of triangles"</em> button in the toolbar. item or click <em>"Union of triangles"</em> button in the toolbar.
\image html image80.png \image html image80.png
<center><em>"Union of triangles" button</em></center> <center><em>"Union of triangles" button</em></center>
@ -20,20 +21,20 @@ The following dialog box will appear:
<ul> <ul>
<li><b>The main list</b> shall contain the triangles which will be <li><b>The main list</b> shall contain the triangles which will be
united. You can click on an triangle in the 3D viewer and it will be united. You can click on a triangle in the 3D viewer and it will be
highlighted. After that click the \b Add button and the ID of this highlighted. After that click the \b Add button and the ID of this
triangle will be added to the list. To remove a selected element or triangle will be added to the list. To remove a selected element or
elements from the list click the \b Remove button. The \b Sort button allows elements from the list click the \b Remove button. The \b Sort button allows
to sort the list of IDs. The <b>Set filter</b> button allows to apply a to sort the list of IDs. The <b>Filter</b> button allows to apply a
definite filter to selection of triangles.</li> definite \ref filtering_elements "filter" to selection of triangles.</li>
<li><b>Apply to all</b> radio button allows to modify connectivity and <li><b>Apply to all</b> radio button allows to apply the operation to
type of all triangles of the currently displayed mesh or sub-mesh.</li> all triangles of the selected mesh.</li>
<li><b>Preview</b> provides a preview in the viewer.</li> <li><b>Preview</b> provides a preview in the viewer.</li>
<li>\b Criterion menu allows to choose a quality criterion, <li>\b Criterion menu allows to choose a quality criterion,
which will be optimized to select triangles to unite.</li> which will be optimized to select triangles to unite.</li>
<li><b>Select from</b> set of fields allows to choose a sub-mesh or an <li><b>Select from</b> set of fields allows to choose a sub-mesh or an
existing group whose triangle elements will be automatically added to existing group whose triangle elements then can be added to the
the list.</li> list.</li>
</ul> </ul>
</li> </li>

View File

@ -19,8 +19,9 @@ The following dialog box shall appear:
\image html unionoftwotriangles.png \image html unionoftwotriangles.png
</li> </li>
<li>Enter the ID of the required edge in the \b Edge field or select <li>Enter IDs of nodes forming the required edge in the \b Edge field
this edge in the 3D viewer.</li> (the node IDs must be separated by a dash) or select this edge in
the 3D viewer.</li>
<li>Click the \b Apply or <b>Apply and Close</b> button.</li> <li>Click the \b Apply or <b>Apply and Close</b> button.</li>
</ol> </ol>
@ -31,4 +32,4 @@ this edge in the 3D viewer.</li>
<br><b>See Also</b> a sample TUI Script of a <br><b>See Also</b> a sample TUI Script of a
\ref tui_uniting_two_triangles "Uniting Two Triangles" operation. \ref tui_uniting_two_triangles "Uniting Two Triangles" operation.
*/ */

View File

@ -645,6 +645,9 @@ void SMESHGUI_MultiEditDlg::onFilterAccepted()
//======================================================================= //=======================================================================
bool SMESHGUI_MultiEditDlg::isIdValid (const int theId) const bool SMESHGUI_MultiEditDlg::isIdValid (const int theId) const
{ {
if ( !myActor )
return true; // filter can't work w/o actor
SVTK_Selector* aSelector = SMESH::GetSelector(); SVTK_Selector* aSelector = SMESH::GetSelector();
Handle(SMESHGUI_Filter) aFilter = Handle(SMESHGUI_Filter) aFilter =
Handle(SMESHGUI_Filter)::DownCast(aSelector->GetFilter(myFilterType)); Handle(SMESHGUI_Filter)::DownCast(aSelector->GetFilter(myFilterType));

View File

@ -391,12 +391,12 @@ namespace SMESH
return fromUtf8( txt.c_str() ); return fromUtf8( txt.c_str() );
} }
const char* toUtf8( const QString& txt ) toUtf8::toUtf8( const QString& txt )
{ {
#ifdef PAL22528_UNICODE #ifdef PAL22528_UNICODE
return txt.toUtf8().constData(); assign( txt.toUtf8().constData() );
#else #else
return txt.toLatin1().constData(); assign( txt.toLatin1().constData() );
#endif #endif
} }

View File

@ -210,7 +210,11 @@ SMESHGUI_EXPORT
QString fromUtf8( const char* txt ); QString fromUtf8( const char* txt );
QString fromUtf8( const std::string& txt ); QString fromUtf8( const std::string& txt );
const char* toUtf8( const QString& txt ); struct toUtf8: public std::string
{
toUtf8( const QString& txt );
operator const char*() const { return c_str(); }
};
} }
#endif // SMESHGUI_UTILS_H #endif // SMESHGUI_UTILS_H

View File

@ -3784,21 +3784,23 @@ SMESH_MeshEditor_i::scale(SMESH::SMESH_IDSource_ptr theObject,
(theScaleFact.length() == 1) ? theScaleFact[0] : theScaleFact[1], (theScaleFact.length() == 1) ? theScaleFact[0] : theScaleFact[1],
(theScaleFact.length() == 1) ? theScaleFact[0] : theScaleFact[2], (theScaleFact.length() == 1) ? theScaleFact[0] : theScaleFact[2],
}; };
double tol = std::numeric_limits<double>::max();
gp_Trsf aTrsf; gp_Trsf aTrsf;
#if OCC_VERSION_LARGE > 0x06070100 #if OCC_VERSION_LARGE > 0x06070100
// fight against ortagonalization // fight against orthogonalization
// aTrsf.SetValues( S[0], 0, 0, thePoint.x * (1-S[0]), // aTrsf.SetValues( S[0], 0, 0, thePoint.x * (1-S[0]),
// 0, S[1], 0, thePoint.y * (1-S[1]), // 0, S[1], 0, thePoint.y * (1-S[1]),
// 0, 0, S[2], thePoint.z * (1-S[2]) ); // 0, 0, S[2], thePoint.z * (1-S[2]) );
aTrsf.SetTranslation( gp_Vec( thePoint.x * (1-S[0]), aTrsf.SetScale( gp::Origin(), 1.0 ); // set form which is used to make group names
thePoint.y * (1-S[1]), gp_XYZ & loc = ( gp_XYZ& ) aTrsf.TranslationPart();
thePoint.z * (1-S[2]))); gp_Mat & M = ( gp_Mat& ) aTrsf.HVectorialPart();
gp_Mat & M = ( gp_Mat& ) aTrsf.HVectorialPart(); loc.SetCoord( thePoint.x * (1-S[0]),
thePoint.y * (1-S[1]),
thePoint.z * (1-S[2]));
M.SetDiagonal( S[0], S[1], S[2] ); M.SetDiagonal( S[0], S[1], S[2] );
#else #else
double tol = std::numeric_limits<double>::max();
aTrsf.SetValues( S[0], 0, 0, thePoint.x * (1-S[0]), aTrsf.SetValues( S[0], 0, 0, thePoint.x * (1-S[0]),
0, S[1], 0, thePoint.y * (1-S[1]), 0, S[1], 0, thePoint.y * (1-S[1]),
0, 0, S[2], thePoint.z * (1-S[2]), tol, tol); 0, 0, S[2], thePoint.z * (1-S[2]), tol, tol);