0022108: EDF 2547 SMESH: Duplicate elements only
@ -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)
|
||||||
|
BIN
doc/salome/gui/SMESH/images/crack_emulation_double_nodes.png
Normal file
After Width: | Height: | Size: 2.9 KiB |
After Width: | Height: | Size: 2.7 KiB |
Before Width: | Height: | Size: 22 KiB After Width: | Height: | Size: 22 KiB |
Before Width: | Height: | Size: 27 KiB After Width: | Height: | Size: 27 KiB |
BIN
doc/salome/gui/SMESH/images/duplicate03.png
Normal file
After Width: | Height: | Size: 19 KiB |
@ -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.
|
||||||
|
|
||||||
*/
|
*/
|
||||||
|
@ -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
|
||||||
|
@ -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>
|
||||||
|
@ -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 \
|
||||||
|
BIN
resources/mesh_duplicate_elem_only.png
Normal file
After Width: | Height: | Size: 839 B |