From d64c9cac70573c5789a61c314f5ac5ffc3428f4a Mon Sep 17 00:00:00 2001 From: eap Date: Mon, 27 Apr 2015 16:21:01 +0300 Subject: [PATCH] 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 --- .../changing_orientation_of_elements.doc | 75 +++++++------------ .../gui/SMESH/input/constructing_meshes.doc | 4 + .../gui/SMESH/input/cutting_quadrangles.doc | 9 ++- .../input/diagonal_inversion_of_elements.doc | 6 +- .../gui/SMESH/input/merging_elements.doc | 37 +++++---- doc/salome/gui/SMESH/input/merging_nodes.doc | 42 +++++------ .../gui/SMESH/input/mesh_through_point.doc | 17 +++-- .../gui/SMESH/input/modifying_meshes.doc | 66 ++++++++-------- doc/salome/gui/SMESH/input/reorient_faces.doc | 39 +++++----- doc/salome/gui/SMESH/input/revolution.doc | 6 +- .../SMESH/input/selection_filter_library.doc | 44 ++++++----- doc/salome/gui/SMESH/input/sewing_meshes.doc | 6 +- doc/salome/gui/SMESH/input/symmetry.doc | 61 ++++++++------- .../SMESH/input/uniting_set_of_triangles.doc | 31 ++++---- .../gui/SMESH/input/uniting_two_triangles.doc | 7 +- src/SMESHGUI/SMESHGUI_MultiEditDlg.cxx | 3 + src/SMESHGUI/SMESHGUI_Utils.cxx | 6 +- src/SMESHGUI/SMESHGUI_Utils.h | 6 +- src/SMESH_I/SMESH_MeshEditor_i.cxx | 14 ++-- 19 files changed, 248 insertions(+), 231 deletions(-) mode change 100755 => 100644 doc/salome/gui/SMESH/input/modifying_meshes.doc diff --git a/doc/salome/gui/SMESH/input/changing_orientation_of_elements.doc b/doc/salome/gui/SMESH/input/changing_orientation_of_elements.doc index e7a37eecc..673e43fda 100644 --- a/doc/salome/gui/SMESH/input/changing_orientation_of_elements.doc +++ b/doc/salome/gui/SMESH/input/changing_orientation_of_elements.doc @@ -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. To change orientation of elements:
    -
  1. Select a mesh.
  2. -
  3. Display a mesh, a group or a sub-mesh if you plan to select - elements to reorient in the 3D viewer.
  4. -
  5. In the \b Modification menu select the \b Orientation item or click -Orientation button in the toolbar. +
  6. Select a mesh (and display it in the 3D Viewer if you are going to pick elements by mouse).
  7. +
  8. In the \b Modification menu select the \b Orientation item or click + Orientation button in the toolbar. -
    +
    \image html image79.png "Orientation" button -
    +
    -The following dialog box will appear: + The following dialog box will appear: -
    +
    \image html orientaation1.png -
    -
    -
      -
    • Select Element Type to reorient: either \b Face or \b - Volume
    • -
    • The main list 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 Set filter 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.
        -
      • 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 main list.
      • -
      • To the elements selected in the Viewer - for Initial - Selection source. As a result, elements rejected by the - filter will be deselected.
      • -
      • To the elemets present in the main list - - for Current Dialog source. As a result, elements rejected - by the filter will be remove from the list.
      -
    • -
    • Apply to all radio button allows to modify the orientation -of all elements of the mesh.
    • -
    • Select from set of fields allows to choose a sub-mesh or a -group whose elements can be added to the list.
    • -
    - -
  9. -
  10. Click the \b Apply or Apply and Close button to confirm the operation.
  11. + + + + +
  12. Click the \b Apply or Apply and Close button to confirm the operation.
-
See Also a sample TUI Script of a -\ref tui_orientation "Change Orientation" operation. +
See Also a sample TUI Script of a +\ref tui_orientation "Change Orientation" operation. */ diff --git a/doc/salome/gui/SMESH/input/constructing_meshes.doc b/doc/salome/gui/SMESH/input/constructing_meshes.doc index a1711c54a..66941609e 100644 --- a/doc/salome/gui/SMESH/input/constructing_meshes.doc +++ b/doc/salome/gui/SMESH/input/constructing_meshes.doc @@ -400,9 +400,11 @@ failure is provided in \b Errors table. After you select an error, Show Sub-shape button allows visualizing in magenta the geometrical entity that causes the error. +
\image html failed_computation.png 3D algorithm failed to compute mesh on a box shown using Show Sub-shape button +
Publish Sub-shape 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). Bad Mesh to Group button creates groups of bad mesh entities to facilitate their analysis. +
\image html show_bad_mesh.png Edges bounding a hole in the surface are shown in magenta using Show bad Mesh button +
\note Mesh Computation Information box does not appear if you set "Mesh computation/Show a computation result notification" preference diff --git a/doc/salome/gui/SMESH/input/cutting_quadrangles.doc b/doc/salome/gui/SMESH/input/cutting_quadrangles.doc index 222ea8379..34f26a67d 100644 --- a/doc/salome/gui/SMESH/input/cutting_quadrangles.doc +++ b/doc/salome/gui/SMESH/input/cutting_quadrangles.doc @@ -6,7 +6,7 @@ This operation allows cutting one or several quadrangle elements into two or fou To cut quadrangles: -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 Cutting of quadrangles item or click "Cutting of quadrangles" 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. - Sort list button allows sorting the list of IDs. - - \b Filter button allows applying a definite filter to the selection of quadrangles. -- Apply to all 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. +- Apply to all check box allows cutting all quadrangles of the selected mesh. - \b Preview provides a preview of cutting in the viewer. It is disabled for Cut into 4 triangles as this cutting way implies no ambiguity. - \b Criterion defines the way of cutting: - Cut into 4 triangles 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): - Aspect Ratio cuts by the diagonal splitting the quadrangle into triangles with \ref aspect_ratio_page "Aspect Ratio" closer to 1 - Minimum Angle cuts by the diagonal splitting the quadrangle into triangles with \ref minimum_angle_page "Minimum Angle" closer to 60 degrees. - Skew cuts by the diagonal splitting the quadrangle into triangles with \ref skew_page "Skew" closer to 0.0 degrees. -- Select from allows choosing a sub-mesh or an existing group, whose quadrangle elements will be automatically added to the main list. +- Select from 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 Apply and Close button to confirm the operation. diff --git a/doc/salome/gui/SMESH/input/diagonal_inversion_of_elements.doc b/doc/salome/gui/SMESH/input/diagonal_inversion_of_elements.doc index 8642ebfdb..1bc75ef20 100644 --- a/doc/salome/gui/SMESH/input/diagonal_inversion_of_elements.doc +++ b/doc/salome/gui/SMESH/input/diagonal_inversion_of_elements.doc @@ -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 -
  • Enter the ID of the required edge in the \b Edge field or select +
  • 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.
  • Click the \b Apply or Apply and Close button.
  • @@ -30,4 +30,4 @@ this edge in the 3D viewer.
    See Also a sample TUI Script of a \ref tui_diagonal_inversion "Diagonal Inversion of Elements" operation. -*/ \ No newline at end of file +*/ diff --git a/doc/salome/gui/SMESH/input/merging_elements.doc b/doc/salome/gui/SMESH/input/merging_elements.doc index bb65232d3..9cde2b0ce 100644 --- a/doc/salome/gui/SMESH/input/merging_elements.doc +++ b/doc/salome/gui/SMESH/input/merging_elements.doc @@ -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"
      -
    1. Choose in the main menu \b Modification -> \b Transformation -> Merge elements item. The following dialog box -shall appear:
    2. +
    3. Choose in the main menu \b Modification -> \b Transformation + -> Merge elements item. The following dialog box shall + appear:
    4. \image html mergeelems_auto.png
    5. Automatic mode:
        -
      • In the \b Automatic Mode the elements created on the same nodes will be merged.
      • +
      • In the \b Automatic Mode the elements created on the same nodes + will be merged.
    6. If the \b Manual Mode is selected, additional controls are -available: + available: \image html mergeelems.png
        -
      • \b Detect button generates the list of coincident elements for the given \b Tolerance.
      • +
      • \b Detect button generates the list of coincident elements found + in the selected object.
      • Coincident elements 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.
        • \b Remove button deletes the selected group from the list.
        • \b Add button adds to the list a group of elements selected in the -viewer with pressed "Shift" key.
        • + viewer with pressed "Shift" key.
        • Select all checkbox selects all groups.
        • Show double elements IDs checkbox shows/hides identifiers of -elements in the 3D viewer.
        • + elements of selected groups in the 3D viewer.
      • Edit selected group list allows editing the selected group:

        \image html add.png -
        adds to the group the element selected in the viewer.
        +
        adds to the group the elements selected in the viewer.

        \image html remove.png -
        removes from the group the selected element.
        +
        removes from the group the selected elements.

        \image html sort.png
        moves the selected element to the first position in the -group. This means that all other elements will be merged into this -one.
        + group. This means that all other elements of the group will be + replaced by this one.
      • To confirm your choice click \b Apply or Apply and Close button.
      • diff --git a/doc/salome/gui/SMESH/input/merging_nodes.doc b/doc/salome/gui/SMESH/input/merging_nodes.doc index 3efec0521..76692add1 100644 --- a/doc/salome/gui/SMESH/input/merging_nodes.doc +++ b/doc/salome/gui/SMESH/input/merging_nodes.doc @@ -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" To merge nodes of your mesh:
          -
        1. From the \b Modification choose \b Transformation and from its -sub-menu select the Merge nodes item. The following dialog box -shall appear:
        2. +
        3. Choose \b Modification -> \b Transformation -> Merge nodes + menu item. The following dialog box shall appear:

        4. \image html mergenodes_auto.png
          • \b Name is the name of the mesh whose nodes will be merged.
          • -
          • \b Automatic or \b Manual Mode allows choosing how the nodes are +
          • \b Automatic or \b Manual mode allows choosing how the nodes are processed.
          • \b Tolerance is a maximum distance between nodes sufficient for merging.
          • @@ -34,20 +33,21 @@ will be merged. The nodes which belong to the groups specified in the Exclude Groups will be not taken into account.

          -
        5. If the \b Manual Mode is selected, additional controls are available: +
        6. The \b Manual mode gives you full control of what the operation will do. +In this mode additional controls are available:
          • \b Detect button generates the list of coincident nodes for the given \b Tolerance.
          • Coincident nodes 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.
            • \b Remove button deletes the selected group from the list.
            • \b Add button adds to the list a group of nodes selected in the viewer with pressed "Shift" key.
            • Select all checkbox selects all groups.
            • Show double nodes IDs checkbox shows/hides identifiers of -nodes in the 3D viewer.
            • +nodes of selected groups in the 3D viewer.

            @@ -55,18 +55,18 @@ nodes in the 3D viewer.

          • Edit selected group list allows editing the selected -group: -

            -\image html add.png -
            adds to the group the node selected in the viewer.
            -
            -\image html remove.png -
            removes from the group the selected node.
            -
            -\image html sort.png -
            moves the selected node to the first position in the -group. This means that all other nodes will be merged into this -one.

            + group: +

            + \image html add.png +
            adds to the group the nodes selected in the viewer.
            +
            + \image html remove.png +
            removes from the group the selected nodes.
            +
            + \image html sort.png +
            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.

        7. diff --git a/doc/salome/gui/SMESH/input/mesh_through_point.doc b/doc/salome/gui/SMESH/input/mesh_through_point.doc index a86e6986b..1684404ab 100644 --- a/doc/salome/gui/SMESH/input/mesh_through_point.doc +++ b/doc/salome/gui/SMESH/input/mesh_through_point.doc @@ -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. To displace a node:
            @@ -17,19 +17,20 @@ click "Move Node" button in the toolbar. The following dialog will appear: \image html meshtopass1.png "Manual node selection" +
            \image html meshtopass2.png "Automatic node selection" +
          1. Specify the way of node selection: manually (the first radio button) or automatically (the second radio button).
          2. -
          3. 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 +
          4. 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.
          5. -
          6. Enter the coordinates of the destination point.
          7. -
          8. Click Update Destination button to set the coordinates - of the destination point equal to the coordinates of the node to - move.
          9. +
          10. Enter the coordinates of the destination point. You can + click Update Destination button to set the coordinates of the + destination point equal to the coordinates of the node to move.
          11. Activate \b Preview check-box to show the result of move in the viewer.
          12. Click the \b Apply or Apply and Close button to confirm the diff --git a/doc/salome/gui/SMESH/input/modifying_meshes.doc b/doc/salome/gui/SMESH/input/modifying_meshes.doc old mode 100755 new mode 100644 index e857a96c8..8aa6503ba --- a/doc/salome/gui/SMESH/input/modifying_meshes.doc +++ b/doc/salome/gui/SMESH/input/modifying_meshes.doc @@ -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:
            • \subpage adding_nodes_and_elements_page "Add" mesh elements from -nodes to polyhedrons at an arbitrary place in the mesh.
            • + nodes to polyhedrons at an arbitrary place in the mesh.
            • \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.
            • + elements from quadratic segments to quadratic hexahedrons at an + arbitrary place in the mesh.
            • \subpage removing_nodes_and_elements_page "Remove" any existing -mesh elements.
            • -
            • \subpage translation_page "Translate" in the indicated direction the mesh or some of -its elements.
            • + mesh elements and nodes. +
            • \subpage translation_page "Translate" in the indicated direction + the mesh or some of its elements.
            • \subpage rotation_page "Rotate" by the indicated axis and angle -the mesh or some of its elements.
            • -
            • \subpage scale_page "Scale" the mesh or some of its -elements.
            • -
            • \subpage symmetry_page "Mirror" the mesh -through a point or a vector of symmetry.
            • -
            • \subpage double_nodes_page "Duplicate nodes or/and Elements". Duplication of nodes can be useful to emulate a crack in the model.
            • + the mesh or some of its elements. +
            • \subpage scale_page "Scale" the mesh or some of its elements.
            • +
            • \subpage symmetry_page "Mirror" the mesh through a point, a vector + or a plane of symmetry.
            • +
            • \subpage double_nodes_page "Duplicate nodes or/and Elements". + Duplication of nodes can be useful to emulate a crack in the + model.
            • Unite meshes by \subpage sewing_meshes_page "sewing" free borders, -conform free borders, border to side or side elements.
            • -
            • \subpage merging_nodes_page "Merge Nodes", considered coincident -within the indicated tolerance.
            • -
            • \subpage merging_elements_page "Merge Elements", considered coincident -within the indicated tolerance.
            • -
            • \subpage mesh_through_point_page "Move Nodes" to an arbitrary location -with consequent transformation of all adjacent elements and edges.
            • -
            • \subpage diagonal_inversion_of_elements_page "Invert an edge" between neighboring triangles.
            • + border to side or side elements. +
            • \subpage merging_nodes_page "Merge Nodes", coincident within the + indicated tolerance.
            • +
            • \subpage merging_elements_page "Merge Elements" based on the same + nodes.
            • +
            • \subpage mesh_through_point_page "Move Nodes" to an arbitrary + location with consequent transformation of all adjacent + elements.
            • +
            • \subpage diagonal_inversion_of_elements_page "Invert an edge" + between neighboring triangles.
            • \subpage uniting_two_triangles_page "Unite two triangles".
            • \subpage uniting_set_of_triangles_page "Unite several adjacent triangles".
            • \subpage changing_orientation_of_elements_page "Change orientation" - of the selected elements.
            • -
            • \subpage reorient_faces_page "Reorient faces".
            • -
            • \subpage cutting_quadrangles_page "Cut a quadrangle" into two triangles.
            • -
            • \subpage split_to_tetra_page "Split" volumic elements into tetrahedra or prisms.
            • + of the selected elements. +
            • \subpage reorient_faces_page "Orient faces" by several means.
            • +
            • \subpage cutting_quadrangles_page "Cut a quadrangle" into two + triangles.
            • +
            • \subpage split_to_tetra_page "Split" volumic elements into + tetrahedra or prisms.
            • \subpage smoothing_page "Smooth" elements, reducung distortions in -them by adjusting the locations of element corners.
            • + them by adjusting the locations of nodes.
            • Create an \subpage extrusion_page "extrusion" along a vector or by -normal to a discretized surface.
            • + normal to a discretized surface.
            • Create an \subpage extrusion_along_path_page "extrusion along a path".
            • -
            • Create an edge or a surface by \subpage revolution_page "revolution" -of the selected node or edge.
            • +
            • Create elements by \subpage revolution_page "revolution" of the + selected nodes and elements.
            • Apply \subpage pattern_mapping_page "pattern mapping".
            • -
            • \subpage convert_to_from_quadratic_mesh_page "Convert regular mesh to quadratic", -or vice versa.
            • +
            • \subpage convert_to_from_quadratic_mesh_page "Convert linear mesh to quadratic", + or vice versa.
            • \subpage make_2dmesh_from_3d_page "Generate boundary elements".
            • \subpage generate_flat_elements_page "Generate flat elements on group boundaries or on faces".
            • \subpage cut_mesh_by_plane_page "Cut a tetrahedron mesh by a plane".
            • diff --git a/doc/salome/gui/SMESH/input/reorient_faces.doc b/doc/salome/gui/SMESH/input/reorient_faces.doc index 20346a9dc..f2581bb89 100644 --- a/doc/salome/gui/SMESH/input/reorient_faces.doc +++ b/doc/salome/gui/SMESH/input/reorient_faces.doc @@ -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:
                -
              • The new orientation of a set of neighboring faces can be defined - by a vector.
                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: +
              • 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.
                + 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:
                • found by proximity to a given point, or
                • specified explicitly.
                • @@ -19,7 +20,7 @@ The orientation of a face is changed by reverting the order of its nodes. -To change orientation of faces: +To set orientation of faces:
                  1. In the \b Modification menu select Reorient faces item or click Reorient faces 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.
                  2. -
                  3. To reorient according to vector: +
                  4. To reorient by direction of the face normal:
                    • 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.
                    • + 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.
                    • 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.
                    • + control face. There are following options:
                        +
                      • adjust vector components directly;
                      • +
                      • select a vertex in the Object Browser or a node in the 3D + Viewer; their coordinates will define vector components;
                      • +
                      • pick two nodes (holding Shift button), the \b Direction vector + will go from the first to the second node.
                      • +

                    @@ -58,7 +61,7 @@ The orientation of a face is changed by reverting the order of its nodes.
                  5. -
                  6. In the second mode it is possible to directly input the \b Face ID in the corresponding field. +
                  7. 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.
                    \image html reorient_2d_face.png "The orientation of adjacent faces is chosen according to a vector. The control face is explicitly given." diff --git a/doc/salome/gui/SMESH/input/revolution.doc b/doc/salome/gui/SMESH/input/revolution.doc index 69310e34f..fdc4f9544 100644 --- a/doc/salome/gui/SMESH/input/revolution.doc +++ b/doc/salome/gui/SMESH/input/revolution.doc @@ -16,7 +16,7 @@ a \ref extrusion_struct "structured mesh from scratch". \image html image92.png
                    "Revolution" button
                    -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:
              • -
              • Specify the \b Tolerance for the operation, which is used to - detect nodes lying on the axis of revolution. +
              • Specify the \b Tolerance, which is used to detect nodes lying + on the axis of revolution.
              • Activate Preview check-box to see the result mesh in the viewer. diff --git a/doc/salome/gui/SMESH/input/selection_filter_library.doc b/doc/salome/gui/SMESH/input/selection_filter_library.doc index 6ab408ee1..94ba01319 100644 --- a/doc/salome/gui/SMESH/input/selection_filter_library.doc +++ b/doc/salome/gui/SMESH/input/selection_filter_library.doc @@ -16,28 +16,24 @@ the current study. You can \b Add or \b Delete filters. \n In Filter name 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 Set Filters 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 Entity type.
                +When we use filters during a group creation or another operation (by +clicking Set Filter 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 Entity type has its specific list of criteria, however all filters have common syntax. For each criterion you should specify the -Threshold Value 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. -
                +Threshold Value 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.
                Switching on Insert filter in viewer checkbox limits selection of elements in the Viewer to the current filter.
                @@ -64,11 +60,10 @@ created. You have to select the mesh and the button will be enabled. Some criteria are applicable to all Entity types:
                • -Belong to Geom selects entities whose all nodes -lie on the shape defined by Threshold Value. -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. +Belong to Geom selects entities whose all nodes lie on the +shape defined by Threshold Value. 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.
                • Lying on Geom selects entities whose at least one node lies on the shape defined by the Threshold Value. @@ -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.
                • -Belong to Mesh Group selects entities included into a mesh group +Belong to Mesh Group selects entities included into the mesh group defined by Threshold Value.
                • Range of IDs allows selection of entities with the specified @@ -97,14 +92,17 @@ other parts. Threshold Value locating any element of the domain can be ei
                -Some criteria are applicable to all Entity types, except for -Nodes +Some criteria are applicable to all Entity types of dimension +more than zero, i.e. to \b Edges, \b Faces and \b Volumes:
                • Linear allows selection of Linear or Quadratic elements (if Unary is set to "Not")
                • Geometry type allows selection of elements by their geometric type defined by the Threshold Value. The list of available geometric -types depends on the element entity type defined by the Threshold Value. +types depends on the current entity type. +
                • +Entity type allows selection of elements by their type defined +as combination of geometry type + number of nodes.
                diff --git a/doc/salome/gui/SMESH/input/sewing_meshes.doc b/doc/salome/gui/SMESH/input/sewing_meshes.doc index c3afbf1e0..88edc1e62 100644 --- a/doc/salome/gui/SMESH/input/sewing_meshes.doc +++ b/doc/salome/gui/SMESH/input/sewing_meshes.doc @@ -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:
                • \ref free_borders_anchor "Free borders"
                • @@ -13,7 +13,7 @@ functionality allows you to sew: \image html sewing.png "Sewing button" -To sew elements of different meshes: +To sew elements of a mesh:
                  1. From the \b Modification menu choose the \b Transformation item and from its sub-menu select the \b Sewing item.
                  2. @@ -158,4 +158,4 @@ nodes in 3D viewer or define them by its id. See Also a sample TUI Script of a \ref tui_sew_side_elements "Sew Side Elements" operation. -*/ \ No newline at end of file +*/ diff --git a/doc/salome/gui/SMESH/input/symmetry.doc b/doc/salome/gui/SMESH/input/symmetry.doc index 924e4eeb0..9c0b43263 100644 --- a/doc/salome/gui/SMESH/input/symmetry.doc +++ b/doc/salome/gui/SMESH/input/symmetry.doc @@ -5,7 +5,7 @@ \n This geometrical operation allows to perform a symmetrical copy of your mesh or some of its elements. -To create a symmetrical copy of the mesh: +To create a symmetrical copy:
                    1. 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"
                      +\image html symmetry2.png "an axis"
                      \image html symmetry3.png "a plane (defined by a point and a normal to the plane)"
                    2. In the dialog:
                        -
                      • specify the IDs of the elements for the symmetry operation: +
                      • specify the elements for the symmetry operation:
                        • Select the whole mesh, submesh or group activating this checkbox; or
                        • choose mesh elements with the mouse in the 3D Viewer. It is possible to select a whole area with a mouse frame; or
                        • -
                        • input the element IDs directly in ID Elements field. The selected elements will be highlighted in the -viewer; or
                        • -
                        • apply Filters. Set filter 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.
                        • +
                        • input the element IDs directly in ID Elements field. The + selected elements will be highlighted in the viewer; or
                        • +
                        • apply Filters. Set Filter button allows to apply a + \ref filtering_elements "filter" to the selection of elements.
                      • depending on the nature of the mirror object:
                        • if the mesh is mirrored through a point, specify the coordinates -of the point
                        • + of the point, either directly or by picking a mesh node;
                        • if the mesh is mirrored through an axis:
                            -
                          • specify the cooordinates of the start \b Point of the axis vector;
                          • -
                          • specify the axis \b Vector through the coordinates of its -end point with respect to the coordinates of the start point;
                          • +
                          • specify the coordinates of the start \b Point of the axis, either + directly or by picking a mesh node;
                          • +
                          • 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;
                        • if the mesh is mirrored through a plane:
                            -
                          • specify the cooordinates of the \b Point lying on the plane;
                          • -
                          • specify the axis \b Vector through the coordinates of its -end point with respect to the coordinates of the start point.
                          • +
                          • specify the cooordinates of the \b Point lying on the plane, + either directly or by picking a mesh node;
                          • +
                          • 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.
                        • specify the conditions of symmetry operation:
                            -
                          • activate Move elements radio button to create the source -mesh (or elements) at the new location and erase it from the previous location;
                          • -
                          • activate Copy elements 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;
                          • -
                          • activate Create as new mesh 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);
                          • -
                          • activate Copy groups checkbox to copy the groups of elements of the source mesh to the newly created mesh.
                          • +
                          • activate Move elements radio button to change location of + the selected elements within the current mesh;
                          • +
                          • activate Copy elements radio button to duplicate the + selected elements at the new location within the current mesh;
                          • +
                          • activate Create as new mesh 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);
                          • +
                          • activate Copy groups checkbox to put new mesh enities + into new groups if source entities belongs to some groups. New + groups are named by pattern "_mirrored".
                        -
                      • activate Preview checkbox to show the result of transformation in the viewer
                      • +
                      • activate Preview checkbox to show the result of + transformation in the viewer;
                      • click \b Apply or Apply and Close button to confirm the -operation.
                      • + operation.
                    diff --git a/doc/salome/gui/SMESH/input/uniting_set_of_triangles.doc b/doc/salome/gui/SMESH/input/uniting_set_of_triangles.doc index 55843b222..6397bd401 100644 --- a/doc/salome/gui/SMESH/input/uniting_set_of_triangles.doc +++ b/doc/salome/gui/SMESH/input/uniting_set_of_triangles.doc @@ -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. To union several triangles:
                      -
                    1. Display a mesh or a sub-mesh in the 3D viewer.
                    2. +
                    3. Select a mesh (and display it in the 3D Viewer if you are going to + pick elements by mouse).
                    4. In the \b Modification menu select the Union of triangles -item or click "Union of triangles" button in the toolbar. + item or click "Union of triangles" button in the toolbar. \image html image80.png
                      "Union of triangles" button
                      @@ -20,20 +21,20 @@ The following dialog box will appear:
                      • The main list 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 Set filter button allows to apply a -definite filter to selection of triangles.
                      • -
                      • Apply to all radio button allows to modify connectivity and -type of all triangles of the currently displayed mesh or sub-mesh.
                      • + 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 Filter button allows to apply a + definite \ref filtering_elements "filter" to selection of triangles. +
                      • Apply to all radio button allows to apply the operation to + all triangles of the selected mesh.
                      • Preview provides a preview in the viewer.
                      • \b Criterion menu allows to choose a quality criterion, - which will be optimized to select triangles to unite.
                      • + which will be optimized to select triangles to unite.
                      • Select from set of fields allows to choose a sub-mesh or an -existing group whose triangle elements will be automatically added to -the list.
                      • + existing group whose triangle elements then can be added to the + list.
                    5. diff --git a/doc/salome/gui/SMESH/input/uniting_two_triangles.doc b/doc/salome/gui/SMESH/input/uniting_two_triangles.doc index 95b9fced6..39a61bbb2 100644 --- a/doc/salome/gui/SMESH/input/uniting_two_triangles.doc +++ b/doc/salome/gui/SMESH/input/uniting_two_triangles.doc @@ -19,8 +19,9 @@ The following dialog box shall appear: \image html unionoftwotriangles.png -
                    6. Enter the ID of the required edge in the \b Edge field or select -this edge in the 3D viewer.
                    7. +
                    8. 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.
                    9. Click the \b Apply or Apply and Close button.
                    @@ -31,4 +32,4 @@ this edge in the 3D viewer.
                    See Also a sample TUI Script of a \ref tui_uniting_two_triangles "Uniting Two Triangles" operation. -*/ \ No newline at end of file +*/ diff --git a/src/SMESHGUI/SMESHGUI_MultiEditDlg.cxx b/src/SMESHGUI/SMESHGUI_MultiEditDlg.cxx index 018006f27..7498047fe 100755 --- a/src/SMESHGUI/SMESHGUI_MultiEditDlg.cxx +++ b/src/SMESHGUI/SMESHGUI_MultiEditDlg.cxx @@ -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)); diff --git a/src/SMESHGUI/SMESHGUI_Utils.cxx b/src/SMESHGUI/SMESHGUI_Utils.cxx index 1ab0c6a70..e49c5e691 100644 --- a/src/SMESHGUI/SMESHGUI_Utils.cxx +++ b/src/SMESHGUI/SMESHGUI_Utils.cxx @@ -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 } diff --git a/src/SMESHGUI/SMESHGUI_Utils.h b/src/SMESHGUI/SMESHGUI_Utils.h index a15fada9f..51d763492 100644 --- a/src/SMESHGUI/SMESHGUI_Utils.h +++ b/src/SMESHGUI/SMESHGUI_Utils.h @@ -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 diff --git a/src/SMESH_I/SMESH_MeshEditor_i.cxx b/src/SMESH_I/SMESH_MeshEditor_i.cxx index 3ca7757c8..e469b7039 100644 --- a/src/SMESH_I/SMESH_MeshEditor_i.cxx +++ b/src/SMESH_I/SMESH_MeshEditor_i.cxx @@ -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::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::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); -- 2.39.2