0022108: EDF 2547 SMESH: Duplicate elements only

This commit is contained in:
eap 2013-05-28 16:39:28 +00:00
parent 1227aa421b
commit 13b8c96957
11 changed files with 115 additions and 41 deletions

View File

@ -1,13 +1,14 @@
# Duplicate nodes # Duplicate nodes or/and elements
import salome import salome
salome.salome_init() salome.salome_init()
import GEOM import GEOM
from salome.geom import geomBuilder from salome.geom import geomBuilder
geompy = geomBuilder.New(salome.myStudy) geompy = geomBuilder.New(salome.myStudy)
import SMESH, SALOMEDS import SMESH
from salome.smesh import smeshBuilder from salome.smesh import smeshBuilder
smesh = smeshBuilder.New(salome.myStudy) smesh = smeshBuilder.New(salome.myStudy)
@ -24,7 +25,7 @@ mesh.Hexahedron()
# Compute mesh # Compute mesh
mesh.Compute() mesh.Compute()
# Without the duplication of border elements # Duplicate nodes only
# Nodes to duplicate # Nodes to duplicate
nodes1 = mesh.CreateEmptyGroup( SMESH.NODE, 'nodes1' ) nodes1 = mesh.CreateEmptyGroup( SMESH.NODE, 'nodes1' )
@ -48,7 +49,7 @@ print "Nodes : ", mesh.NbNodes()
print "Edges : ", mesh.NbEdges() print "Edges : ", mesh.NbEdges()
print "Quadrangles : ", mesh.NbQuadrangles() print "Quadrangles : ", mesh.NbQuadrangles()
# With the duplication of border elements # Duplicate nodes and border elements
# Edges to duplicate # Edges to duplicate
edges = mesh.CreateEmptyGroup( SMESH.EDGE, 'edges' ) edges = mesh.CreateEmptyGroup( SMESH.EDGE, 'edges' )
@ -76,6 +77,19 @@ print "Nodes : ", mesh.NbNodes()
print "Edges : ", mesh.NbEdges() print "Edges : ", mesh.NbEdges()
print "Quadrangles : ", mesh.NbQuadrangles() print "Quadrangles : ", mesh.NbQuadrangles()
# Duplicate elements only
# Duplicate all faces and make a group of new faces.
# If a mesh is given to DoubleElements(), all elements of the greatest dimension are duplicated
newFacesGroup = mesh.DoubleElements( mesh, "newFacesGroup" )
# Duplicate edges contained in the group "edges" and add new edges to this group
mesh.DoubleElements( edges, edges.GetName() )
# Duplicate two first edges of the mesh
mesh.DoubleElements([ 1, 2 ])
# Update object browser # Update object browser
if salome.sg.hasDesktop(): if salome.sg.hasDesktop():
salome.sg.updateObjBrowser(0) salome.sg.updateObjBrowser(0)

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.9 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.7 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 22 KiB

After

Width:  |  Height:  |  Size: 22 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 27 KiB

After

Width:  |  Height:  |  Size: 27 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 19 KiB

View File

@ -1,36 +1,37 @@
/*! /*!
\page double_nodes_page Duplicate Nodes \page double_nodes_page Duplicate Nodes or/and Elements
\n This operation allows to duplicate nodes of your mesh, which can be \n This operation allows to duplicate nodes or/and elements of your mesh.
useful to emulate a crack in the model. Duplication of nodes can be useful to emulate a crack in the model.
Duplication consists in replacement of an existing mesh element by another one. Duplication consists in creation of mesh element "equal" to existing ones.
Lower level elements of the duplicated ones are cloned automatically.
<em>To duplicate nodes:</em> <em>To duplicate nodes or/and elements:</em>
<ol> <ol>
<li>From the \b Modification menu choose \b Transformation -> \b Duplicate <li>From the \b Modification menu choose \b Transformation -> <b> Duplicate
\b Nodes item or click <em>"Duplicate Nodes"</em> button in the toolbar. Nodes or/and Elements </b> item or click <em>"Duplicate Nodes or/and
Elements"</em> button in the toolbar.
<br> <br>
\image html duplicate_nodes.png "Duplicate Nodes button" \image html duplicate_nodes.png "Duplicate Nodes or/and Elements button"
</li> </li>
<li>Check in the dialog box one of two radio buttons corresponding to <li>Check in the dialog box one of three radio buttons corresponding to
the type of nodes duplication operation you would like to perform.</li> the type of duplication operation you would like to perform.</li>
<li>Fill the other fields available in the dialog box (depends on the chosen <li>Fill the other fields available in the dialog box (depending on
operation mode).</li> the chosen operation mode).</li>
<li>Click the \b Apply or <b>Apply and Close</b> button to perform the operation of nodes <li>Click the \b Apply or <b>Apply and Close</b> button to perform the
duplication.</li> operation of duplication.</li>
</ol> </ol>
\n "Duplicate Nodes" dialog has two working modes: \n "Duplicate Nodes or/and Elements" dialog has three working modes:
<ul> <ul>
<li>\ref mode_without_elem_anchor "Without the duplication of border elements"</li> <li>\ref mode_without_elem_anchor "Duplicate nodes only"</li>
<li>\ref mode_with_elem_anchor "With the duplication of border elements"</li> <li>\ref mode_with_elem_anchor "Duplicate nodes and border elements"</li>
<li>\ref mode_elem_only_anchor "Duplicate elements only"</li>
</ul> </ul>
<br> <br>
\anchor mode_without_elem_anchor \anchor mode_without_elem_anchor
<h2>Without duplication of border elements</h2> <h2>Duplicate nodes only</h2>
In this mode the dialog looks like: In this mode the dialog looks like:
@ -38,16 +39,29 @@ In this mode the dialog looks like:
Parameters to be defined in this mode: Parameters to be defined in this mode:
<ul> <ul>
<li><b>Group of nodes to duplicate</b> (<em>mandatory</em>): these nodes will be duplicated.</li> <li><b>Group of nodes to duplicate</b> (<em>mandatory</em>): these
<li><b>Group of elements to replace nodes with new ones</b> (<em>optional</em>): the duplicated nodes nodes will be duplicated.</li>
will be associated with these elements.</li> <li><b>Group of elements to replace nodes with new ones</b>
<li><b>Construct group with newly created nodes</b> option (<em>checked by default</em>): (<em>optional</em>): the new nodes will replace the nodes to
if checked - the group with just created nodes will be built.</li> duplicate within these elements.</li>
<li><b>Construct group with newly created nodes</b> option
(<em>checked by default</em>): if checked - the group with just
created nodes will be built.</li>
</ul> </ul>
A schema below explains the crack emulation using the node duplication.
\image html crack_emulation_double_nodes.png "Crack emulation"
This schema shows a virtual crack in a 2D mesh created using this duplication
mode. In this schema:
- Black balls are <b>nodes to duplicate</b>.
- Red balls are <b>new nodes</b>.
- <b>Elements to replace nodes with new ones</b> are marked with green.
Note that in reality <b>nodes to duplicate</b> coincide with <b>new nodes</b>.
<br> <br>
\anchor mode_with_elem_anchor \anchor mode_with_elem_anchor
<h2>With duplication of border elements</h2> <h2>Duplicate nodes and border elements</h2>
In this mode the dialog looks like: In this mode the dialog looks like:
@ -55,18 +69,62 @@ In this mode the dialog looks like:
Parameters to be defined in this mode: Parameters to be defined in this mode:
<ul> <ul>
<li><b>Group of elements to duplicate</b> (<em>mandatory</em>): these elements will be duplicated.</li> <li><b>Group of elements to duplicate</b> (<em>mandatory</em>): these
<li><b>Group of nodes at not to duplicate</b> (<em>optional</em>): group of nodes at crack bottom elements will be duplicated.</li>
which will not be duplicated.</li> <li><b>Group of nodes not to duplicate</b> (<em>optional</em>):
<li><b>Group of elements to replace nodes with new ones</b> (<em>mandatory</em>): the duplicated nodes group of nodes at crack bottom which will not be duplicated.</li>
will be associated with these elements.</li> <li><b>Group of elements to replace nodes with new ones</b>
<li><b>Construct group with newly created elements</b> option (<em>checked by default</em>): (<em>mandatory</em>): the new nodes will replace the nodes to
if checked - the group of just created elements will be built.</li> duplicate within these elements.</li>
<li><b>Construct group with newly created nodes</b> option (<em>checked by default</em>): <li><b>Construct group with newly created elements</b> option
if checked - the group of just created nodes will be built.</li> (<em>checked by default</em>): if checked - the group of just created
elements will be built.</li>
<li><b>Construct group with newly created nodes</b> option
(<em>checked by default</em>): if checked - the group of just
created nodes will be built.</li>
</ul>
A schema below explains the crack emulation using the node duplication
with border elements.
\image html crack_emulation_double_nodes_with_elems.png "Crack emulation"
This schema shows a virtual crack in a 2D mesh created using this duplication
mode. In this schema:
- Black segments are <b>elements to duplicate</b> (edges in 2D case).
- Black balls (except the lowest one) are nodes of <b>elements to
duplicate</b> that are duplicated.
- The lowest black ball is a <b>node not to duplicate</b>.
- Red balls are <b>creates nodes</b>.
- Red segments are <b>created elements</b> (edges).
- <b>Elements to replace nodes with new ones</b> are marked with green.
Note that in reality <b>nodes to duplicate</b> coincide with <b>new nodes</b>.
<br>
In a 3D case, where <b>elements to duplicate</b> are faces, the edges
located at the "crack" (if any) are cloned automatically.
<br>
\anchor mode_elem_only_anchor
<h2>Duplicate elements only</h2>
This mode just duplicates given elements, i.e. creates new elements on
the same nodes as the given elements.
<br>
In this mode the dialog looks like:
\image html duplicate03.png
Parameters to be defined in this mode:
<ul>
<li><b>Group of elements to duplicate</b> (<em>mandatory</em>): these
elements will be duplicated.</li>
<li><b>Construct group with newly created elements</b> option
(<em>checked by default</em>): if checked - the group of just created
elements will be built. A name of the created group starts from
"DoubleElements".</li>
</ul> </ul>
<br><b>See Also</b> a sample TUI Script of a \ref tui_duplicate_nodes "Duplicate nodes" operation. <br><b>See Also</b> a sample TUI Script of a
\ref tui_duplicate_nodes "Duplicate nodes or/and elements" operation.
*/ */

View File

@ -22,7 +22,8 @@ the mesh or some of its elements.</li>
elements.</li> elements.</li>
<li>\subpage symmetry_page "Mirror" the mesh <li>\subpage symmetry_page "Mirror" the mesh
through a point or a vector of symmetry.</li> through a point or a vector of symmetry.</li>
<li>\subpage double_nodes_page "Duplicate nodes" to emulate a crack in the model.</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, <li>Unite meshes by \subpage sewing_meshes_page "sewing" free borders,
conform free borders, border to side or side elements.</li> conform free borders, border to side or side elements.</li>
<li>\subpage merging_nodes_page "Merge Nodes", considered coincident <li>\subpage merging_nodes_page "Merge Nodes", considered coincident

View File

@ -58,7 +58,7 @@
<br> <br>
\anchor tui_duplicate_nodes \anchor tui_duplicate_nodes
<h3>Duplicate nodes</h3> <h3>Duplicate nodes or/and elements</h3>
\tui_script{transforming_meshes_ex11.py} \tui_script{transforming_meshes_ex11.py}
<br> <br>

View File

@ -200,6 +200,7 @@ dist_salomeres_DATA = \
split_into_tetra.png \ split_into_tetra.png \
mesh_duplicate_nodes.png \ mesh_duplicate_nodes.png \
mesh_duplicate_nodes_with_elem.png \ mesh_duplicate_nodes_with_elem.png \
mesh_duplicate_elem_only.png \
mesh_bounding_box.png \ mesh_bounding_box.png \
mesh_hypo_viscous_layers.png \ mesh_hypo_viscous_layers.png \
mesh_tree_hypo_viscous_layers.png \ mesh_tree_hypo_viscous_layers.png \

Binary file not shown.

After

Width:  |  Height:  |  Size: 839 B