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
\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>
<ol>
<li>Select a mesh.</li>
<li>Display a mesh, a group or a sub-mesh if you plan to select
elements to reorient in the 3D viewer.</li>
<li>In the \b Modification menu select the \b Orientation item or click
<em>Orientation</em> button in the toolbar.
<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 Orientation item or click
<em>Orientation</em> button in the toolbar.
<center>
<center>
\image html image79.png
<em>"Orientation" button</em>
</center>
</center>
The following dialog box will appear:
The following dialog box will appear:
<center>
<center>
\image html orientaation1.png
</center>
<br>
<ul>
<li>Select <b>Element Type</b> to reorient: either \b Face or \b
Volume </li>
<li><b>The main list</b> shall contain the elements which will be
reoriented. You can click on an element in the 3D viewer and it will
be highlighted. After that click the \b Add button and the ID of this
element 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 to sort the list of elements IDs. <br>
The <b>Set filter</b> button allows to apply a definite filter to
selection of elements of your group. Depending on \a Source of
elements to filter selected in \ref filtering_elements "Filter"
dialog, the filter will be applied to different sets of elements.<ul>
<li> To all elements of the mesh - for \a Mesh source. All
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>
</center>
<ul>
<li>Select type of elements to reorient: \b Face or \b Volume.</li>
<li><b>The main list</b> shall contain the elements which will be
reoriented. You can click on an element in the 3D viewer and it will
be highlighted. After that click the \b Add button and the ID of this
element 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 to sort the list of elements IDs. The <b>Set filter</b> button
allows to apply a definite \ref filtering_elements "filter" to
selection of elements.</li>
<li><b>Apply to all</b> radio button allows to modify the orientation
of all elements of the selected mesh.</li>
<li><b>Select from</b> set of fields allows to choose a sub-mesh or an
existing group whose elements then can be added to the list.</li>
</ul>
</li>
<li>Click the \b Apply or <b>Apply and Close</b> button to confirm the operation.</li>
</li>
<li>Click the \b Apply or <b>Apply and Close</b> button to confirm the operation.</li>
</ol>
<br><b>See Also</b> a sample TUI Script of a
\ref tui_orientation "Change Orientation" operation.
<br><b>See Also</b> a sample TUI Script of a
\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
visualizing in magenta the geometrical entity that causes the error.
<center>
\image html failed_computation.png
<em>3D algorithm failed to compute mesh on a box shown using <b>Show
Sub-shape</b> button</em>
</center>
<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
@ -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
to facilitate their analysis.
<center>
\image html show_bad_mesh.png
<em>Edges bounding a hole in the surface are shown in magenta using <b>Show
bad Mesh</b> button</em>
</center>
\note Mesh Computation Information box does not appear if you set
"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>
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
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.
- 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 Filter button allows applying a definite filter to the selection of quadrangles.
- <b>Apply to all</b> check box allows cutting all quadrangles of the selected mesh, sub-mesh or group.
- \b Filter button allows applying a definite \ref filtering_elements "filter"
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 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.
@ -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>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>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.

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
formed by two neighboring triangles with one common edge.
@ -18,7 +18,7 @@ The following dialog box shall appear:
\image html diagonalinversion.png
</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>
<li>Click the \b Apply or <b>Apply and Close</b> button.</li>
</ol>
@ -30,4 +30,4 @@ this edge in the 3D viewer.</li>
<br><b>See Also</b> a sample TUI Script of a
\ref tui_diagonal_inversion "Diagonal Inversion of Elements" operation.
*/
*/

View File

@ -3,57 +3,62 @@
\page merging_elements_page Merging Elements
\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>
<li>Choose in the main menu \b Modification -> \b Transformation -> <b>Merge elements</b> item. The following dialog box
shall appear:</li>
<li>Choose in the main menu \b Modification -> \b Transformation
-> <b>Merge elements</b> item. The following dialog box shall
appear:</li>
\image html mergeelems_auto.png
<br>
<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
are processed.
are processed.
</ul>
<li><b>Automatic mode:</b>
<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>
</li>
<li>If the \b Manual Mode is selected, additional controls are
available:
available:
\image html mergeelems.png
<br>
<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
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>
<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
viewer with pressed "Shift" key.</li>
viewer with pressed "Shift" key.</li>
<li><b>Select all</b> checkbox selects all groups.</li>
<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>
<li><b>Edit selected group</b> list allows editing the selected group:
<br><br>
\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>
\image html remove.png
<center>removes from the group the selected element.</center>
<center>removes from the group the selected elements.</center>
<br>
\image html sort.png
<center>moves the selected element to the first position in the
group. This means that all other elements will be merged into this
one.</center>
group. This means that all other elements of the group will be
replaced by this one.</center>
<br>
</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
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>
<ol>
<li>From the \b Modification choose \b Transformation and from its
sub-menu select the <b>Merge nodes</b> item. The following dialog box
shall appear:</li>
<li>Choose \b Modification -> \b Transformation -> <b>Merge nodes</b>
menu item. The following dialog box shall appear:</li>
<br>
\image html mergenodes_auto.png
<br>
<ul>
<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.
<li>\b Tolerance is a maximum distance between nodes sufficient for
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>
</ul>
</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>
<li>\b Detect button generates the list of coincident nodes for the given
\b Tolerance.</li>
<li><b>Coincident nodes</b> is a list of groups of nodes for
merging. All nodes of each group will form one after the
operation.
merging. As result of the operation all nodes of each group will be
replaces by the firts node of the group.
<ul>
<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
viewer with pressed "Shift" key.</li>
<li><b>Select all</b> checkbox selects all groups.</li>
<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>
<br>
@ -55,18 +55,18 @@ nodes in the 3D viewer.</li>
<br>
</li>
<li><b>Edit selected group</b> list allows editing the selected
group:
<br><br>
\image html add.png
<center>adds to the group the node selected in the viewer.</center>
<br>
\image html remove.png
<center>removes from the group the selected node.</center>
<br>
\image html sort.png
<center>moves the selected node to the first position in the
group. This means that all other nodes will be merged into this
one.</center><br>
group:
<br><br>
\image html add.png
<center>adds to the group the nodes selected in the viewer.</center>
<br>
\image html remove.png
<center>removes from the group the selected nodes.</center>
<br>
\image html sort.png
<center>moves the selected node to the first position in the
group. This means that all other nodes of the group will be
replaced by this one.</center><br>
</li>
</ul>
</li>

View File

@ -3,8 +3,8 @@
\page mesh_through_point_page Moving nodes
\n In mesh you can define a node at a certain point either
by movement of the node closest to the point or by
movement of any node to the point.
- by movement of the node closest to the point or
- by movement of a selected node to the point.
<em>To displace a node:</em>
<ol>
@ -17,19 +17,20 @@ click <em>"Move Node"</em> button in the toolbar.
The following dialog will appear:
\image html meshtopass1.png "Manual node selection"
<br>
\image html meshtopass2.png "Automatic node selection"
<br>
</li>
<li>Specify the way of node selection: manually (the first radio
button) or automatically (the second radio button).</li>
<li>If the manual method is selected, select the necessary node (X, Y,
Z fields show the original coordinates of the node to move) or type
<li>If the manual method is selected, select a node to move (X, Y,
Z fields show the original coordinates of the node) or type
the node ID.</li>
<li>Enter the coordinates of the destination point.</li>
<li>Click <b>Update Destination</b> button to set the coordinates
of the destination point equal to the coordinates of the node to
move.</li>
<li>Enter the coordinates of the destination point. You can
click <b>Update Destination</b> button to set the coordinates of the
destination point equal to the coordinates of the node to move.</li>
<li>Activate \b Preview check-box to show the result of move in the
viewer.</li>
<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
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:
<ul>
<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
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
mesh elements.</li>
<li>\subpage translation_page "Translate" in the indicated direction the mesh or some of
its elements.</li>
mesh elements and nodes.</li>
<li>\subpage translation_page "Translate" in the indicated direction
the mesh or some of its elements.</li>
<li>\subpage rotation_page "Rotate" by the indicated axis and angle
the mesh or some of its elements.</li>
<li>\subpage scale_page "Scale" the mesh or some of its
elements.</li>
<li>\subpage symmetry_page "Mirror" the mesh
through a point or a vector of symmetry.</li>
<li>\subpage double_nodes_page "Duplicate nodes or/and Elements". Duplication of nodes can be useful to emulate a crack in the model.</li>
the mesh or some of its elements.</li>
<li>\subpage scale_page "Scale" the mesh or some of its elements.</li>
<li>\subpage symmetry_page "Mirror" the mesh through a point, a vector
or a plane of symmetry.</li>
<li>\subpage double_nodes_page "Duplicate nodes or/and Elements".
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,
conform free borders, border to side or side elements.</li>
<li>\subpage merging_nodes_page "Merge Nodes", considered coincident
within the indicated tolerance.</li>
<li>\subpage merging_elements_page "Merge Elements", considered coincident
within the indicated tolerance.</li>
<li>\subpage mesh_through_point_page "Move Nodes" to an arbitrary location
with consequent transformation of all adjacent elements and edges.</li>
<li>\subpage diagonal_inversion_of_elements_page "Invert an edge" between neighboring triangles.</li>
border to side or side elements.</li>
<li>\subpage merging_nodes_page "Merge Nodes", coincident within the
indicated tolerance.</li>
<li>\subpage merging_elements_page "Merge Elements" based on the same
nodes.</li>
<li>\subpage mesh_through_point_page "Move Nodes" to an arbitrary
location with consequent transformation of all adjacent
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_set_of_triangles_page "Unite several adjacent triangles".</li>
<li>\subpage changing_orientation_of_elements_page "Change orientation"
of the selected elements.</li>
<li>\subpage reorient_faces_page "Reorient faces".</li>
<li>\subpage cutting_quadrangles_page "Cut a quadrangle" into two triangles.</li>
<li>\subpage split_to_tetra_page "Split" volumic elements into tetrahedra or prisms.</li>
of the selected elements.</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 split_to_tetra_page "Split" volumic elements into
tetrahedra or prisms.</li>
<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
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 edge or a surface by \subpage revolution_page "revolution"
of the selected node or edge.</li>
<li>Create elements by \subpage revolution_page "revolution" of the
selected nodes and elements.</li>
<li>Apply \subpage pattern_mapping_page "pattern mapping".</li>
<li>\subpage convert_to_from_quadratic_mesh_page "Convert regular mesh to quadratic",
or vice versa.</li>
<li>\subpage convert_to_from_quadratic_mesh_page "Convert linear mesh to quadratic",
or vice versa.</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 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>
<li>The new orientation of a set of neighboring faces can be defined
by a vector. <br> Since the direction of face normals in
the set can be even opposite, it is necessary to specify a control
face, the normal to which will be compared with the vector. This face can be
either:
<li>The desired orientation of a set of neighboring faces can be defined
by a vector giving a desired direction of a normal of a certain face. <br>
Since the direction of face normals in the set can be even opposite,
it is necessary to specify a \a control face, the normal to which
will be compared with the vector. This face can be either:
<ul>
<li>found by proximity to a given point, or</li>
<li>specified explicitly.</li>
@ -19,7 +20,7 @@
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>
<li>In the \b Modification menu select <b>Reorient faces</b>
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
Viewer.</li>
<li>To reorient according to vector:
<li>To reorient by direction of the face normal:
<ul>
<li>Specify the coordinates of the \b Point by which the control face
will be found. You can easy specify the \b
Point by either picking a node in the 3D Viewer or selecting a vertex
in the Object Browser. It is possible to pick the \b Face by mouse in
the 3D Viewer or enter its ID.</li>
will be found. You can specify the \b Point by either picking a
node in the 3D Viewer or selecting a vertex in the Object
Browser.</li>
<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
vector will go from the coordinate system origin to the selected node.
If you pick two nodes (holding Shift button) then the \b Direction vector
will go from the first to the second node.</li>
control face. There are following options: <ul>
<li>adjust vector components directly;</li>
<li>select a vertex in the Object Browser or a node in the 3D
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>
<br>
@ -58,7 +61,7 @@ The orientation of a face is changed by reverting the order of its nodes.
</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>
\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
<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
@ -79,8 +79,8 @@ The following dialog common for line and planar elements will appear:
</li>
</ul>
</li>
<li>Specify the \b Tolerance for the operation, which is used to
detect nodes lying on the axis of revolution.
<li>Specify the \b Tolerance, which is used to detect nodes lying
on the axis of revolution.
</li>
<li>Activate <b>Preview</b> check-box to see the result mesh in
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
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
Each filter can be applicable to \b Nodes, \b Edges, \b Faces or \b
Volumes. You can combine many criteria in one filter, but they all
must be of the same <b>Entity type</b>. <br>
When we use filters during a group creation or another operation (by
clicking <b>Set Filter</b> button in the corresponding dialog), the
menu for setting filters looks as shown below.
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
selected criterion. The \b Remove button deletes the selected
criterion. The \b Clear button deletes all criteria.
\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
<b>Threshold Value</b> and whether we search for the elements that should be
\b More, \b Less or \b Equal to this \b Value. You can also reverse the
sense of a criterion using \b Unary operator Not and you should
specify logical relations between criteria using \b Binary operators
Or and And.
\n Some criteria should have the additional parameter of \b Tolerance.
<br>
<b>Threshold Value</b> and for numerical criteria whether we search
for the elements that should be \b More, \b Less or \b Equal to this
\b Value. You can also reverse the sense of a criterion using \b Unary
operator \a Not and you should specify logical relations between
criteria using \b Binary operators \a Or and \a And.
\n Some criteria have the additional parameter of \b Tolerance.<br>
Switching on <b>Insert filter in viewer</b> checkbox limits
selection of elements in the Viewer to the current filter.
<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>:
<ul><li>
<b>Belong to Geom</b> selects entities whose all nodes
lie on the shape defined by <b>Threshold Value</b>.
If the threshold shape is a sub-shape of the main shape of the mesh
the algorithm works faster, if this is any other
shape the algorithm works slower.
<b>Belong to Geom</b> selects entities whose all nodes lie on the
shape defined by <b>Threshold Value</b>. If the threshold shape is a
sub-shape of the main shape of the mesh the algorithm works faster, if
this is any other shape the algorithm works slower.
</li><li>
<b>Lying on Geom</b> selects entities whose at least one node
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
shape, the algorithm works slower.
</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>.
</li><li>
<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>
</ul>
Some criteria are applicable to all <b>Entity types</b>, except for
<b>Nodes</b>
Some criteria are applicable to all <b>Entity types</b> of dimension
more than zero, i.e. to \b Edges, \b Faces and \b Volumes:
<ul><li>
<b>Linear</b> allows selection of Linear or Quadratic elements (if Unary is set to "Not")
</li><li>
<b>Geometry type</b> allows selection of elements by their geometric type
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>
</ul>

View File

@ -2,7 +2,7 @@
\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:
<ul>
<li>\ref free_borders_anchor "Free borders"</li>
@ -13,7 +13,7 @@ functionality allows you to sew:
\image html sewing.png "Sewing button"
<em>To sew elements of different meshes:</em>
<em>To sew elements of a mesh:</em>
<ol>
<li>From the \b Modification menu choose the \b Transformation item
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
\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
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>
<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:
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 symmetry2.png "an axis"
\image html symmetry1.png "a point" <br>
\image html symmetry2.png "an axis" <br>
\image html symmetry3.png "a plane (defined by a point and a normal to the plane)"
</li>
<li>In the dialog:
<ul>
<li>specify the IDs of the elements for the symmetry operation:
<li>specify the elements for the symmetry operation:
<ul>
<li><b>Select the whole mesh, submesh or group</b> activating this
checkbox; or</li>
<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>
<li>input the element IDs directly in <b>ID Elements</b> field. The 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
about filters in the \ref selection_filter_library_page "Selection filter library" page.</li>
<li>input the element IDs directly in <b>ID Elements</b> field. The
selected elements will be highlighted in the viewer; or</li>
<li>apply Filters. <b>Set Filter</b> button allows to apply a
\ref filtering_elements "filter" to the selection of elements.</li>
</ul>
</li>
<li>depending on the nature of the mirror object:
<ul>
<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:
<ul>
<li>specify the cooordinates of the start \b Point of the axis vector;</li>
<li>specify the axis \b Vector through the coordinates of its
end point with respect to the coordinates of the start point;</li>
<li>specify the coordinates of the start \b Point of the axis, either
directly or by picking a mesh node;</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>
</li>
<li>if the mesh is mirrored through a plane:
<ul>
<li>specify the cooordinates of the \b Point lying on the plane;</li>
<li>specify the axis \b Vector through the coordinates of its
end point with respect to the coordinates of the start point.</li>
<li>specify the cooordinates of the \b Point lying on the plane,
either directly or by picking a mesh node;</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>
</li>
<li>specify the conditions of symmetry operation:
<ul>
<li>activate <b>Move elements</b> radio button to create the source
mesh (or elements) at the new location and erase it from the previous location;</li>
<li>activate <b>Copy elements</b> radio button to create the source
mesh (or elements) at the new location, but leave it at the previous
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 leave the
source mesh (or elements) at its previous location and create a new
mesh at the new location, the new mesh appears in the Object Browser
with the default name MeshName_rotated (it is possible to change this
name in the adjacent box);</li>
<li>activate <b> Copy groups </b> checkbox to copy the groups of elements of the source mesh to the newly created mesh.</li>
<li>activate <b>Move elements</b> radio button to change location of
the selected elements within the current mesh;</li>
<li>activate <b>Copy elements</b> radio button to duplicate the
selected elements at the new location within the current mesh;</li>
<li>activate <b>Create as new mesh</b> radio button to create new
element in a new mesh; the new mesh appears in the Object Browser
with the default name MeshName_mirrored (it is possible to change
this name in the adjacent box);</li>
<li>activate <b> Copy groups </b> checkbox to put new mesh enities
into new groups if source entities belongs to some groups. New
groups are named by pattern "<old group name>_mirrored".</li>
</ul>
</li>
</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
operation.</li>
operation.</li>
</ul>
</ol>

View File

@ -2,14 +2,15 @@
\page uniting_set_of_triangles_page Uniting a set of triangles
\n In contrast to the previous operation this one allows to unite at
once many triangles if they have adjacent edges.
\n In MESH you can union many neighboring triangles (cells) into
quadrangles by deletion of the common edge.
<em>To union several triangles:</em>
<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>
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
<center><em>"Union of triangles" button</em></center>
@ -20,20 +21,20 @@ The following dialog box will appear:
<ul>
<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
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
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
definite filter to selection of triangles.</li>
<li><b>Apply to all</b> radio button allows to modify connectivity and
type of all triangles of the currently displayed mesh or sub-mesh.</li>
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
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
to sort the list of IDs. The <b>Filter</b> button allows to apply a
definite \ref filtering_elements "filter" to selection of triangles.</li>
<li><b>Apply to all</b> radio button allows to apply the operation to
all triangles of the selected mesh.</li>
<li><b>Preview</b> provides a preview in the viewer.</li>
<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
existing group whose triangle elements will be automatically added to
the list.</li>
existing group whose triangle elements then can be added to the
list.</li>
</ul>
</li>

View File

@ -19,8 +19,9 @@ The following dialog box shall appear:
\image html unionoftwotriangles.png
</li>
<li>Enter the ID of the required edge in the \b Edge field or select
this edge in the 3D viewer.</li>
<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>
<li>Click the \b Apply or <b>Apply and Close</b> button.</li>
</ol>
@ -31,4 +32,4 @@ this edge in the 3D viewer.</li>
<br><b>See Also</b> a sample TUI Script of a
\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
{
if ( !myActor )
return true; // filter can't work w/o actor
SVTK_Selector* aSelector = SMESH::GetSelector();
Handle(SMESHGUI_Filter) aFilter =
Handle(SMESHGUI_Filter)::DownCast(aSelector->GetFilter(myFilterType));

View File

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

View File

@ -210,7 +210,11 @@ SMESHGUI_EXPORT
QString fromUtf8( const char* 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

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[2],
};
double tol = std::numeric_limits<double>::max();
gp_Trsf aTrsf;
#if OCC_VERSION_LARGE > 0x06070100
// fight against ortagonalization
// fight against orthogonalization
// aTrsf.SetValues( S[0], 0, 0, thePoint.x * (1-S[0]),
// 0, S[1], 0, thePoint.y * (1-S[1]),
// 0, 0, S[2], thePoint.z * (1-S[2]) );
aTrsf.SetTranslation( gp_Vec( thePoint.x * (1-S[0]),
thePoint.y * (1-S[1]),
thePoint.z * (1-S[2])));
gp_Mat & M = ( gp_Mat& ) aTrsf.HVectorialPart();
aTrsf.SetScale( gp::Origin(), 1.0 ); // set form which is used to make group names
gp_XYZ & loc = ( gp_XYZ& ) aTrsf.TranslationPart();
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] );
#else
double tol = std::numeric_limits<double>::max();
aTrsf.SetValues( S[0], 0, 0, thePoint.x * (1-S[0]),
0, S[1], 0, thePoint.y * (1-S[1]),
0, 0, S[2], thePoint.z * (1-S[2]), tol, tol);