From: mzn Date: Wed, 10 Oct 2007 13:48:35 +0000 (+0000) Subject: Porting GUI documentation on Doxygen tool. X-Git-Tag: V4_1_0a2~3 X-Git-Url: http://git.salome-platform.org/gitweb/?p=modules%2Fsmesh.git;a=commitdiff_plain;h=4735affc4fb7395f6a41b44438ae84f490ae8fe3;ds=sidebyside Porting GUI documentation on Doxygen tool. --- diff --git a/doc/salome/gui/SMESH/about_viewing_meshes.htm b/doc/salome/gui/SMESH/about_viewing_meshes.htm deleted file mode 100755 index fcddab5db..000000000 --- a/doc/salome/gui/SMESH/about_viewing_meshes.htm +++ /dev/null @@ -1,174 +0,0 @@ - - - - - -About viewing meshes - - - - - - - - - - - - -

Viewing meshes

- -

After definition of algorithms and hypotheses a new mesh is listed in - the Object Browser. Right-click on it and select Compute - the mesh will be automatically - displayed in the VTK 3D Viewer. - Alternatively click Display only - to hide all other objects at the same time.

- -

 

- -

VTK 3D - Viewer is detailly described in the documentation on GUI - module.

- -

After the mesh has appeared in the Viewer, you can select it with left - mouse click and  get - information about it, change its presentation parameters and access to - other useful options by right-clicking on the selected mesh.

- -

  

- -

- -

 

- - - -

 

- - - - diff --git a/doc/salome/gui/SMESH/adding_quadratic_nodes_and_elements.htm b/doc/salome/gui/SMESH/adding_quadratic_nodes_and_elements.htm deleted file mode 100755 index b4d5067d2..000000000 --- a/doc/salome/gui/SMESH/adding_quadratic_nodes_and_elements.htm +++ /dev/null @@ -1,124 +0,0 @@ - - - - - -Adding Quadratic Nodes and Elements - - - - - - - - - - -

Adding Quadratic Elements

- -

MESH modules allows you to work with Quadratic - Elements.

- -

Quadratic Edge in not a straight but a broken line and can be defined - by three points: first, middle and last. All more complex Quadratic - Elements differ from ordinary ones in that they consist of Quadratic - Edges.

- -

To - add a quadratic element to your mesh:

- -

1. Select your mesh in the Object Browser - or in the 3D viewer.

- -

2. From the Modification - menu choose the Add item - and select one of the following:

- -

- -

To create any Quadratic - Element specify the nodes which will form your triangle by selecting - them in the 3D viewer with pressed Shift button. Their numbers will appear - in the dialog box as Corner Nodes - (alternatively you can just input numbers in this field without selection).The - edges formed by the corner nodes will appear in the table. To define the - middle nodes for each edge double-click on the respective field and input - the number of the node. All edges and the object formed by them will be - displayed in the Object browser. When all edges are defined you will be - able to click OK or Apply - button to add the element to the mesh.

- -

 

- -

Reverse - button for Quadratic Edges switches the first and the last nodes. For all other elements it reverses the element. -

- -

 

- - - - diff --git a/doc/salome/gui/SMESH/aspect_ratio_3d.htm b/doc/salome/gui/SMESH/aspect_ratio_3d.htm deleted file mode 100755 index bd1d7ddfc..000000000 --- a/doc/salome/gui/SMESH/aspect_ratio_3d.htm +++ /dev/null @@ -1,203 +0,0 @@ - - - - - -Aspect ratio 3D - - - - - - - - - - - - - -

Aspect ratio 3D

- -

- -

 

- -

The Aspect Ratio 3D mesh quality criterion calculates - the same parameter as the Aspect ratio - criterion, but it is applied to 3D mesh elements: tetrahedrons, pentahedrons, - hexahedrons, etc.  

- -

 

- - - -

 

- -

 

- -

,

- -

 

- -

where SK is the sum of surfaces of the faces - of К and VK is the volume of К :

- -

 

- -

T

- -

 

- - - -

, where Qi represents the value of Qk for all possible simplexes (of the - same dimension as the element) that compose the element.

- -

For example, a hexahedron is split in 6 tetrahedrons, the Aspect - ratio 3D is calculated for each of them, then the greatest Qk is considered to be the  Aspect ratio 3D - criterion for the whole  hexahedron.

- -

- -

 

- -

To apply the Aspect Ratio 3D quality criterion to your mesh:

- -

 

- -

1. Display your mesh in the viewer.

- -

 

- -

2. Choose Controls - > Aspect Ratio 3D or click button of the toolbar. - Your mesh will be displayed in the viewer with its elements colored according - to the applied mesh quality control criterion:

- -

 

- -

See Also - a sample TUI Script of an Aspect - Ratio 3D quality control operation.  

- -

 

- -

 

- -

 

- -

 

- - - - diff --git a/doc/salome/gui/SMESH/borders_at_multi-connection.htm b/doc/salome/gui/SMESH/borders_at_multi-connection.htm deleted file mode 100755 index 8ad86b523..000000000 --- a/doc/salome/gui/SMESH/borders_at_multi-connection.htm +++ /dev/null @@ -1,121 +0,0 @@ - - - - - -Borders at multi-connection - - - - - - - - - - - - - -

Borders at multi-connection

- -

This mesh quality control highlights borders of faces - consisting of edges belonging to several faces. The amount of faces is - specified by user.

- -

 

- -

- -

 

- -

In this picture the borders at multi-connection are displayed in blue.

- -

 

- -

See Also - a sample TUI Script of a Borders - at Multi-Connection quality control operation.  

- -

 

- - - - diff --git a/doc/salome/gui/SMESH/borders_at_multiconnection_2d.htm b/doc/salome/gui/SMESH/borders_at_multiconnection_2d.htm deleted file mode 100755 index 2e9e180c0..000000000 --- a/doc/salome/gui/SMESH/borders_at_multiconnection_2d.htm +++ /dev/null @@ -1,115 +0,0 @@ - - - - - -Borders at multiconnection 2D - - - - - - - - - - - - - -

Borders at multi-connection 2D

- -

This mesh quality control highlights borders of elements - of mesh, consisting of edges belonging to several elements of mesh.

- -

 

- -

        

- -

 

- -

See Also - a sample TUI Script of a Borders - at Multi-Connection quality control operation.  

- -

 

- - - - diff --git a/doc/salome/gui/SMESH/building_compounds.htm b/doc/salome/gui/SMESH/building_compounds.htm deleted file mode 100755 index 475759694..000000000 --- a/doc/salome/gui/SMESH/building_compounds.htm +++ /dev/null @@ -1,160 +0,0 @@ - - - - - -Building Compounds - - - - - - - - - - - -

Building Compounds

- -

Compound Mesh is a combination of several meshes.

- -

 To - Build a compound:

- -

From the Mesh - menu select Build Compound or - click button in the toolbar. The following dialog box will - appear:

- -

- - - -

Example:

- -

- -

 

- - - - diff --git a/doc/salome/gui/SMESH/clipping.htm b/doc/salome/gui/SMESH/clipping.htm deleted file mode 100755 index dec479c99..000000000 --- a/doc/salome/gui/SMESH/clipping.htm +++ /dev/null @@ -1,140 +0,0 @@ - - - - - -Clipping - - - - - - - - - - - - -

Clipping

- -

Using this menu you can create cross-section views (clipping planes) - of your mesh.

- -

 

- -

To start, click on the New button.

- -

 

- -

- -

 

- -

Now you can define the parameters of your cross-section: Orientation -  (X-Y, X-Z - or Y-Z); Distance between the - opposite extremities of the object, if - it is set to 0.5 the object is split in two halves; and Rotation - (in angle degrees) around X (Y to Z) - and around Y (X to Z). - If the Show preview button is - on, you can see the clipping plane in the Object - window.

- -

 

- -

- -

 

- -

If the - Auto Apply button is on, you can preview - the cross-section in the Object window

- -

 

- -

- -

 

- -

To get - a new object from Clipping, click - Ok.

- -

 

- -

 

- - - - diff --git a/doc/salome/gui/SMESH/constructing_meshes.htm b/doc/salome/gui/SMESH/constructing_meshes.htm deleted file mode 100755 index a643f436f..000000000 --- a/doc/salome/gui/SMESH/constructing_meshes.htm +++ /dev/null @@ -1,448 +0,0 @@ - - - - - -Constructing Meshes - - - - - - - - - - - -

Creating Meshes

- -

First of all see Example - of 3d mesh generation, which is an example of good python script style - for Mesh module.

- -

Other examples of python - scripts will be also updated soon to use smesh package instead of direct - usage of idl interface.

- -

Construction of a Mesh

- -

import - geompy

- -

import smesh

- -

 

- -

# create a box

- -

box = geompy.MakeBox(0., - 0., 0., 100., 200., 300.)

- -

idbox = geompy.addToStudy(box, - "box")

- -

 

- -

# create a mesh

- -

tetra = smesh.Mesh(box, - "MeshBox")

- -

 

- -

algo1D = tetra.Segment()

- -

algo1D.NumberOfSegments(7)

- -

 

- -

algo2D = tetra.Triangle()

- -

algo2D.MaxElementArea(800.)

- -

 

- -

algo3D = tetra.Tetrahedron(smesh.NETGEN)

- -

algo3D.MaxElementVolume(900.)

- -

 

- -

# compute the mesh

- -

ret = tetra.Compute()

- -

if ret == 0:

- -

    print - "problem when computing the mesh"

- -

else:

- -

    print - "mesh computed"

- -

    pass -

- -

 

- -

 

- -

Construction of a Submesh

- -

from - geompy import *

- -

import smesh

- -

 

- -

# create a box

- -

box = MakeBoxDXDYDZ(10., 10., 10.)

- -

addToStudy(box, "Box")

- -

 

- -

# select one edge of - the box for definition of a local hypothesis

- -

p5 = MakeVertex(5., 0., 0.)

- -

EdgeX = GetEdgeNearPoint(box, p5)

- -

addToStudyInFather(box, EdgeX, "Edge - [0,0,0 - 10,0,0]")

- -

 

- -

# create a hexahedral - mesh on the box

- -

quadra = smesh.Mesh(box, "Box : quadrangle - 2D mesh")

- -

 

- -

# create a regular - 1D algorithm for the faces

- -

algo1D = quadra.Segment()

- -

 

- -

# define "NumberOfSegments" - hypothesis to cut

- -

# all the edges in - a fixed number of segments

- -

algo1D.NumberOfSegments(4)

- -

 

- -

# create a quadrangle - 2D algorithm for the faces

- -

quadra.Quadrangle()

- -

 

- -

# construct a submesh - on the edge with a local hypothesis

- -

algo_local = quadra.Segment(EdgeX)

- -

 

- -

# define "Arithmetic1D" - hypothesis to cut the edge - in several segments with increasing arithmetic length

- -

algo_local.Arithmetic1D(1, 4)

- -

 

- -

# define "Propagation" - hypothesis that propagates all other hypotheses

- -

# on all edges of the - opposite side in case of quadrangular faces

- -

algo_local.Propagation()

- -

 

- -

# compute the mesh

- -

quadra.Compute()

- -

 

- -

Editing of a mesh

- -

import - geompy

- -

import smesh

- -

 

- -

def PrintMeshInfo(theMesh):

- -

    aMesh - = theMesh.GetMesh()

- -

    print - "Information about mesh:"

- -

    print - "Number of nodes       : - ", aMesh.NbNodes()

- -

    print - "Number of edges       : - ", aMesh.NbEdges()

- -

    print - "Number of faces       : - ", aMesh.NbFaces()

- -

    print - "Number of volumes     : - ", aMesh.NbVolumes()

- -

    pass

- -

 

- -

# create a box

- -

box = geompy.MakeBox(0., 0., 0., 20., - 20., 20.)

- -

geompy.addToStudy(box, "box")

- -

 

- -

# select one edge of - the box for definition of a local hypothesis

- -

subShapeList = geompy.SubShapeAll(box, - geompy.ShapeType["EDGE"])

- -

edge = subShapeList[0]

- -

name = geompy.SubShapeName(edge, box)

- -

geompy.addToStudyInFather(box, edge, name)

- -

 

- -

# create a mesh

- -

tria = smesh.Mesh(box, "Mesh 2D")

- -

algo1D = tria.Segment()

- -

hyp1 = algo1D.NumberOfSegments(3)

- -

algo2D = tria.Triangle()

- -

hyp2 = algo2D.MaxElementArea(10.)

- -

 

- -

# create a sub-mesh

- -

algo_local = tria.Segment(edge)

- -

hyp3 = algo_local.Arithmetic1D(1, 6)

- -

hyp4 = algo_local.Propagation()

- -

 

- -

# compute the mesh

- -

tria.Compute()

- -

PrintMeshInfo(tria)

- -

 

- -

# remove a local hypothesis

- -

mesh = tria.GetMesh()

- -

mesh.RemoveHypothesis(edge, hyp4)

- -

 

- -

# compute the mesh

- -

tria.Compute()

- -

PrintMeshInfo(tria)

- -

 

- -

# change the value - of the 2D hypothesis

- -

hyp2.SetMaxElementArea(2.)

- -

 

- -

# compute the mesh

- -

tria.Compute()

- -

PrintMeshInfo(tria)

- -

 

- -

Export of a Mesh

- -

import geompy

- -

import smesh

- -

 

- -

# create a box

- -

box = geompy.MakeBox(0., - 0., 0., 100., 200., 300.)

- -

idbox = geompy.addToStudy(box, - "box")

- -

 

- -

# create a mesh

- -

tetra = smesh.Mesh(box, - "MeshBox")

- -

 

- -

algo1D = tetra.Segment()

- -

algo1D.NumberOfSegments(7)

- -

 

- -

algo2D = tetra.Triangle()

- -

algo2D.MaxElementArea(800.)

- -

 

- -

algo3D = tetra.Tetrahedron(smesh.NETGEN)

- -

algo3D.MaxElementVolume(900.)

- -

 

- -

# compute the mesh

- -

tetra.Compute()

- -

 

- -

# export the mesh in a - MED file

- -

tetra.ExportMED("/tmp/meshMED.med", - 0)

- - - - diff --git a/doc/salome/gui/SMESH/cshdat_robohelp.htm b/doc/salome/gui/SMESH/cshdat_robohelp.htm deleted file mode 100755 index 4a4ee57e1..000000000 --- a/doc/salome/gui/SMESH/cshdat_robohelp.htm +++ /dev/null @@ -1,258 +0,0 @@ - - -Mesh Module Reference Manual - - - - - - - - - - - - - - - - - diff --git a/doc/salome/gui/SMESH/cshdat_webhelp.htm b/doc/salome/gui/SMESH/cshdat_webhelp.htm deleted file mode 100755 index db3b49a38..000000000 --- a/doc/salome/gui/SMESH/cshdat_webhelp.htm +++ /dev/null @@ -1,251 +0,0 @@ - - -Mesh Module Reference Manual - - - - - - - - - - - - - - - - - diff --git a/doc/salome/gui/SMESH/default.css b/doc/salome/gui/SMESH/default.css deleted file mode 100755 index 1f8d6d772..000000000 --- a/doc/salome/gui/SMESH/default.css +++ /dev/null @@ -1,101 +0,0 @@ -BODY { - background-color:#ffffff; - font-family:"Times New Roman" , serif; } -H1 { - font-weight:bold; - font-size:24.0pt; } -LI.kadov-H1 { - font-weight:bold; - font-size:24.0pt; } -H2 { - font-weight:bold; - font-size:18.0pt; } -LI.kadov-H2 { - font-weight:bold; - font-size:18.0pt; } -H3 { - font-weight:bold; - font-size:14.0pt; } -LI.kadov-H3 { - font-weight:bold; - font-size:14.0pt; } -H4 { - font-weight:bold; - font-size:12.0pt; } -LI.kadov-H4 { - font-weight:bold; - font-size:12.0pt; } -H5 { - font-weight:bold; - font-size:10.0pt; } -LI.kadov-H5 { - font-weight:bold; - font-size:10.0pt; } -H6 { - font-weight:bold; - font-size:8.0pt; } -LI.kadov-H6 { - font-weight:bold; - font-size:8.0pt; } -P { - font-size:12.0pt; - margin-top:0pt; - margin-bottom:0pt; } -LI.kadov-P { - font-size:12.0pt; } -A.expandspot { - color:#008000; - cursor:hand; - font-style:italic; - x-text-underline:off; - x-text-overline:off; - x-text-line-through:off; - text-decoration:none none none; } -SPAN.expandtext { - font-style:italic; - font-weight:normal; - color:#ff0000; } -A.dropspot { - cursor:hand; - color:#008000; - font-style:italic; - x-text-underline:off; - x-text-overline:off; - x-text-line-through:off; - text-decoration:none none none; } -A.glossterm { - color:#800000; - cursor:hand; - font-style:italic; - x-text-underline:off; - x-text-overline:off; - x-text-line-through:off; - text-decoration:none none none; } -SPAN.glosstext { - font-style:italic; - font-weight:normal; - color:#0000ff; } -OL { - margin-top:0px; - margin-bottom:0px; } -UL { - margin-top:0px; - margin-bottom:0px; } -A:active { } -A:hover { - x-text-underline:Off; - text-decoration:none; } -A:link { - x-text-underline:Off; - text-decoration:none; } -A:visited { - x-text-underline:Off; - text-decoration:none; } -P.TODO { - font-weight:normal; - font-style:italic; - font-family:"Arial Black" , sans-serif; } -LI.kadov-P-CTODO { - font-weight:normal; - font-style:italic; - font-family:"Arial Black" , sans-serif; } diff --git a/doc/salome/gui/SMESH/default_ns.css b/doc/salome/gui/SMESH/default_ns.css deleted file mode 100755 index 46e8b0018..000000000 --- a/doc/salome/gui/SMESH/default_ns.css +++ /dev/null @@ -1,118 +0,0 @@ -BODY { - background-color:#ffffff; - font-family:"Times New Roman" , serif; } -H1 { - font-weight:bold; - font-size:24.0pt; - font-family:"Times New Roman" , serif; } -LI.kadov-H1 { - font-weight:bold; - font-size:24.0pt; } -H2 { - font-weight:bold; - font-size:18.0pt; - font-family:"Times New Roman" , serif; } -LI.kadov-H2 { - font-weight:bold; - font-size:18.0pt; } -H3 { - font-weight:bold; - font-size:14.0pt; - font-family:"Times New Roman" , serif; } -LI.kadov-H3 { - font-weight:bold; - font-size:14.0pt; } -H4 { - font-weight:bold; - font-size:12.0pt; - font-family:"Times New Roman" , serif; } -LI.kadov-H4 { - font-weight:bold; - font-size:12.0pt; } -H5 { - font-weight:bold; - font-size:10.0pt; - font-family:"Times New Roman" , serif; } -LI.kadov-H5 { - font-weight:bold; - font-size:10.0pt; } -H6 { - font-weight:bold; - font-size:8.0pt; - font-family:"Times New Roman" , serif; } -LI.kadov-H6 { - font-weight:bold; - font-size:8.0pt; } -P { - font-size:12.0pt; - margin-top:1pt; - margin-bottom:1pt; - font-family:"Times New Roman" , serif; } -LI.kadov-P { - font-size:12.0pt; } -A.expandspot { - color:#008000; - cursor:hand; - font-style:italic; - x-text-underline:off; - x-text-overline:off; - x-text-line-through:off; - text-decoration:none none none; } -SPAN.expandtext { - font-style:italic; - font-weight:normal; - color:#ff0000; } -A.dropspot { - cursor:hand; - color:#008000; - font-style:italic; - x-text-underline:off; - x-text-overline:off; - x-text-line-through:off; - text-decoration:none none none; } -A.glossterm { - color:#800000; - cursor:hand; - font-style:italic; - x-text-underline:off; - x-text-overline:off; - x-text-line-through:off; - text-decoration:none none none; } -SPAN.glosstext { - font-style:italic; - font-weight:normal; - color:#0000ff; } -OL { - margin-top:0px; - margin-bottom:0px; - font-family:"Times New Roman" , serif; } -UL { - margin-top:0px; - margin-bottom:0px; - font-family:"Times New Roman" , serif; } -A:active { } -A:hover { - x-text-underline:Off; - text-decoration:none; } -A:link { - x-text-underline:Off; - text-decoration:none; } -A:visited { - x-text-underline:Off; - text-decoration:none; } -P.TODO { - font-weight:normal; - font-style:italic; - font-family:"Arial Black" , sans-serif; } -LI.kadov-P-CTODO { - font-weight:normal; - font-style:italic; - font-family:"Arial Black" , sans-serif; } -ol ol { - margin-top:1px; } -ol ul { - margin-top:1px; } -ul ul { - margin-top:1px; } -ul ol { - margin-top:1px; } diff --git a/doc/salome/gui/SMESH/defining_hypotheses_tui.htm b/doc/salome/gui/SMESH/defining_hypotheses_tui.htm deleted file mode 100755 index 420dc0a8b..000000000 --- a/doc/salome/gui/SMESH/defining_hypotheses_tui.htm +++ /dev/null @@ -1,883 +0,0 @@ - - - - - -Defining hypotheses TUI - - - - - - - - - - - -

Defining Hypotheses and Algorithms

- -

Defining 1D Hypotheses

- -

1D Arithmetic

- -

 

- -

import - geompy

- -

import smesh

- -

 

- -

# create a box

- -

box = geompy.MakeBoxDXDYDZ(10., - 10., 10.)

- -

geompy.addToStudy(box, - "Box")

- -

 

- -

# create a hexahedral - mesh on the box

- -

hexa = smesh.Mesh(box, - "Box : hexahedrical mesh")

- -

 

- -

# create a Regular 1D - algorithm for edges

- -

algo1D = hexa.Segment()

- -

 

- -

# define "Arithmetic1D" - hypothesis to cut all edges in several segments with increasing arithmetic - length

- -

algo1D.Arithmetic1D(1, - 4)

- -

 

- -

# create a quadrangle - 2D algorithm for faces

- -

hexa.Quadrangle()

- -

 

- -

# create a hexahedron - 3D algorithm for solids

- -

hexa.Hexahedron()

- -

 

- -

# compute the mesh

- -

hexa.Compute()

- -

 

- -

Deflection 1D and Number of Segments

- -

import - geompy

- -

import smesh

- -

 

- -

# create a face from - arc and straight segment

- -

px = geompy.MakeVertex(100., - 0.  , 0. -  )

- -

py = geompy.MakeVertex(0. -  , 100., - 0.  )

- -

pz = geompy.MakeVertex(0. -  , 0.  , - 100.)

- -

 

- -

exy = geompy.MakeEdge(px, - py)

- -

arc = geompy.MakeArc(py, - pz, px)

- -

 

- -

wire = geompy.MakeWire([exy, - arc])

- -

 

- -

isPlanarFace = 1

- -

face1 = geompy.MakeFace(wire, - isPlanarFace)

- -

geompy.addToStudy(face1,"Face1")

- -

 

- -

# get edges from the - face

- -

e_straight,e_arc = - geompy.SubShapeAll(face1, geompy.ShapeType["EDGE"])

- -

geompy.addToStudyInFather(face1, - e_arc, "Arc Edge")

- -

 

- -

# create hexahedral mesh

- -

hexa = smesh.Mesh(face1, - "Face : triangle mesh")

- -

 

- -

# define "NumberOfSegments" - hypothesis to cut a straight edge in a fixed number of segments

- -

algo1D = hexa.Segment()

- -

algo1D.NumberOfSegments(6)

- -

 

- -

# define "MaxElementArea" - hypothesis

- -

algo2D = hexa.Triangle()

- -

algo2D.MaxElementArea(70.0)

- -

 

- -

# define a local "Deflection1D" - hypothesis on the arc

- -

algo_local = hexa.Segment(e_arc)

- -

algo_local.Deflection1D(1.0)

- -

 

- -

# compute the mesh

- -

hexa.Compute()

- -

Start and End Length

- -

from - geompy import *

- -

import smesh

- -

 

- -

# create a box

- -

box = MakeBoxDXDYDZ(10., - 10., 10.)

- -

addToStudy(box, "Box")

- -

 

- -

# get one edge of the - box to put local hypothesis on

- -

p5 = MakeVertex(5., - 0., 0.)

- -

EdgeX = GetEdgeNearPoint(box, - p5)

- -

addToStudyInFather(box, - EdgeX, "Edge [0,0,0 - 10,0,0]")

- -

 

- -

# create a hexahedral - mesh on the box

- -

hexa = smesh.Mesh(box, - "Box : hexahedrical mesh")

- -

 

- -

# set algorithms

- -

algo1D = hexa.Segment()

- -

hexa.Quadrangle()

- -

hexa.Hexahedron()

- -

 

- -

# define "NumberOfSegments" - hypothesis to cut an edge in a fixed number of segments

- -

algo1D.NumberOfSegments(4)

- -

 

- -

# create a local hypothesis

- -

algo_local = hexa.Segment(EdgeX)

- -

 

- -

# define "StartEndLength" - hypothesis to cut an edge in several segments with increasing geometric - length

- -

algo_local.StartEndLength(1, - 6)

- -

 

- -

# define "Propagation" - hypothesis that propagates all other hypothesis

- -

# on all edges on the - opposite side in case of quadrangular faces

- -

algo_local.Propagation()

- -

 

- -

# compute the mesh

- -

hexa.Compute()

- -

Average Length

- -

from - geompy import *

- -

import smesh

- -

 

- -

# create a box

- -

box = MakeBoxDXDYDZ(10., - 10., 10.)

- -

addToStudy(box, "Box")

- -

 

- -

# get one edge of the - box to put local hypothesis on

- -

p5 = MakeVertex(5., - 0., 0.)

- -

EdgeX = GetEdgeNearPoint(box, - p5)

- -

addToStudyInFather(box, - EdgeX, "Edge [0,0,0 - 10,0,0]")

- -

 

- -

# create a hexahedral - mesh on the box

- -

hexa = smesh.Mesh(box, - "Box : hexahedrical mesh")

- -

 

- -

# set algorithms

- -

algo1D = hexa.Segment()

- -

hexa.Quadrangle()

- -

hexa.Hexahedron()

- -

 

- -

# define "NumberOfSegments" - hypothesis to cut all edges in a fixed number of segments

- -

algo1D.NumberOfSegments(4)

- -

 

- -

# create a sub-mesh

- -

algo_local = hexa.Segment(EdgeX)

- -

 

- -

# define "LocalLength" - hypothesis to cut an edge in several segments with the same length

- -

algo_local.LocalLength(2.)

- -

 

- -

# define "Propagation" - hypothesis that propagates all other hypothesis

- -

# on all edges on the - opposite side in case of quadrangular faces

- -

algo_local.Propagation()

- -

 

- -

# compute the mesh

- -

hexa.Compute()

- -

Defining 2D and 3D hypotheses

- -

Maximum Element Area

- -

import - geompy

- -

import smesh

- -

import salome

- -

 

- -

# create a face

- -

px   = - geompy.MakeVertex(100., 0.  , - 0.  )

- -

py   = - geompy.MakeVertex(0.  , - 100., 0.  )

- -

pz   = - geompy.MakeVertex(0.  , - 0.  , 100.)

- -

 

- -

vxy = geompy.MakeVector(px, - py)

- -

arc = geompy.MakeArc(py, - pz, px)

- -

wire = geompy.MakeWire([vxy, - arc])

- -

 

- -

isPlanarFace = 1

- -

face = geompy.MakeFace(wire, - isPlanarFace)

- -

 

- -

# add the face in the - study

- -

id_face = geompy.addToStudy(face, - "Face to be meshed")

- -

 

- -

# create a mesh

- -

tria_mesh = smesh.Mesh(face, - "Face : triangulation")

- -

 

- -

# define 1D meshing:

- -

algo = tria_mesh.Segment()

- -

algo.NumberOfSegments(20)

- -

 

- -

# define 2D meshing:

- -

 

- -

# assign triangulation - algorithm

- -

algo = tria_mesh.Triangle()

- -

 

- -

# apply "Max Element - Area" hypothesis to each triangle

- -

algo.MaxElementArea(100)

- -

 

- -

# compute the mesh

- -

tria_mesh.Compute() -  

- -

 

- -

Maximum Element Volume

- -

import - geompy

- -

import smesh

- -

 

- -

# create a cylinder

- -

cyl = geompy.MakeCylinderRH(30., - 50.)

- -

geompy.addToStudy(cyl, - "cyl")

- -

 

- -

# create a mesh on - the cylinder

- -

tetra = smesh.Mesh(cyl, - "Cylinder : tetrahedrical mesh")

- -

 

- -

# assign algorithms

- -

algo1D = tetra.Segment()

- -

algo2D = tetra.Triangle()

- -

algo3D = tetra.Tetrahedron(smesh.NETGEN)

- -

 

- -

# assign 1D and 2D - hypotheses

- -

algo1D.NumberOfSegments(7)

- -

algo2D.MaxElementArea(150.)

- -

 

- -

# assign Max Element - Volume hypothesis

- -

algo3D.MaxElementVolume(200.)

- -

 

- -

# compute the mesh

- -

ret = tetra.Compute()

- -

if ret == 0:

- -

    print - "probleme when computing the mesh"

- -

else:

- -

    print - "Computation succeded"

- -

Length from Edges

- -

import - geompy

- -

import smesh

- -

 

- -

# create sketchers

- -

sketcher1 = geompy.MakeSketcher("Sketcher:F - 0 0:TT 70 0:TT 70 70:TT 0 70:WW")

- -

sketcher2 = geompy.MakeSketcher("Sketcher:F - 20 20:TT 50 20:TT 50 50:TT 20 50:WW")

- -

 

- -

# create a face from - two wires

- -

isPlanarFace = 1

- -

face1 = geompy.MakeFaces([sketcher1, - sketcher2], isPlanarFace)

- -

geompy.addToStudy(face1, - "Face1")

- -

 

- -

# create a mesh

- -

tria = smesh.Mesh(face1, - "Face : triangle 2D mesh")

- -

 

- -

# Define 1D meshing

- -

algo1D = tria.Segment()

- -

algo1D.NumberOfSegments(2)

- -

 

- -

# create and assign the - algorithm for 2D meshing with triangles

- -

algo2D = tria.Triangle()

- -

 

- -

# create and assign "LengthFromEdges" - hypothesis to build triangles - based on the length of the edges taken from the wire

- -

algo2D.LengthFromEdges()

- -

 

- -

# compute the mesh

- -

tria.Compute()

- -

 

- -

Defining Additional Hypotheses

- -

Propagation

- -

from geompy import - *

- -

import smesh

- -

 

- -

# create a box

- -

box = MakeBoxDXDYDZ(10., - 10., 10.)

- -

addToStudy(box, "Box")

- -

 

- -

# get one edge of the - box to put local hypothesis on

- -

p5 = MakeVertex(5., - 0., 0.)

- -

EdgeX = GetEdgeNearPoint(box, - p5)

- -

addToStudyInFather(box, - EdgeX, "Edge [0,0,0 - 10,0,0]")

- -

 

- -

# create a hexahedral - mesh on the box

- -

hexa = smesh.Mesh(box, - "Box : hexahedrical mesh")

- -

 

- -

# set global algorithms - and hypotheses

- -

algo1D = hexa.Segment()

- -

hexa.Quadrangle()

- -

hexa.Hexahedron()

- -

algo1D.NumberOfSegments(4)

- -

 

- -

# create a sub-mesh with - local 1D hypothesis and propagation

- -

algo_local = hexa.Segment(EdgeX)

- -

 

- -

# define "Arithmetic1D" - hypothesis to cut an edge in several segments with increasing length

- -

algo_local.Arithmetic1D(1, - 4)

- -

 

- -

# define "Propagation" - hypothesis that propagates all other 1D hypotheses

- -

# from all edges on the - opposite side of a face in case of quadrangular faces

- -

algo_local.Propagation()

- -

 

- -

# compute the mesh

- -

hexa.Compute() -

- -

Defining Meshing Algorithms

- -

import geompy

- -

import smesh

- -

 

- -

# create a box

- -

box = geompy.MakeBoxDXDYDZ(10., - 10., 10.)

- -

geompy.addToStudy(box, - "Box")

- -

 

- -

# 1. Create a hexahedral - mesh on the box

- -

hexa = smesh.Mesh(box, - "Box : hexahedrical mesh")

- -

 

- -

# create a Regular 1D algorithm - for edges

- -

algo1D = hexa.Segment()

- -

 

- -

# create a quadrangle 2D - algorithm for faces

- -

algo2D = hexa.Quadrangle()

- -

 

- -

# create a hexahedron 3D - algorithm for solids

- -

algo3D = hexa.Hexahedron()

- -

 

- -

# define hypotheses

- -

algo1D.Arithmetic1D(1, - 4)

- -

 

- -

# compute the mesh

- -

hexa.Compute()

- -

 

- -

# 2. Create a tetrahedral - mesh on the box

- -

tetra = smesh.Mesh(box, - "Box : tetrahedrical mesh")

- -

 

- -

# create a Regular 1D algorithm - for edges

- -

algo1D = tetra.Segment()

- -

 

- -

# create a Mefisto 2D algorithm - for faces

- -

algo2D = tetra.Triangle()

- -

 

- -

# create a Netgen 3D algorithm - for solids

- -

algo3D = tetra.Tetrahedron(smesh.NETGEN)

- -

 

- -

# define hypotheses

- -

algo1D.Arithmetic1D(1, - 4)

- -

algo2D.LengthFromEdges()

- -

 

- -

# compute the mesh

- -

tetra.Compute()

- -

 

- -

# 3. Create a tetrahedral - mesh on the box with NETGEN_2D3D algorithm

- -

tetraN = smesh.Mesh(box, - "Box : tetrahedrical mesh by NETGEN_2D3D")

- -

 

- -

# create a Netgen_2D3D - algorithm for solids

- -

algo3D = tetraN.Tetrahedron(smesh.FULL_NETGEN) -

- -

 

- -

# define hypotheses

- -

n23_params = algo3D.Parameters()

- -

 

- -

# compute the mesh

- -

tetraN.Compute() -

- - - - diff --git a/doc/salome/gui/SMESH/deleting_groups.htm b/doc/salome/gui/SMESH/deleting_groups.htm deleted file mode 100755 index 02a7b47e2..000000000 --- a/doc/salome/gui/SMESH/deleting_groups.htm +++ /dev/null @@ -1,119 +0,0 @@ - - - - - -Deleting Groups - - - - - - - - - - - -

Deleting Groups

- -

To delete a group in the - Main Menu select Mesh - -> Delete Groups and select one or several - groups you wish to delete in the 3D viewer or in the Object Browser.

- -

The selected groups will - be listed in Delete groups with contents - menu. Then click Ok button to remove the selected groups and close the - menu or Apply button to remove them and proceed with the selection.

- -

 

- -

- -

    

- -

 

- -

Please, note that this - operation removes groups with their elements. - To delete a group and leave its elements intact, right-click on the group - in the Object Browser and select Delete - in the pop-up menu or select the group and choose Edit - -> Delete in the Main Menu. -   

- - - - diff --git a/doc/salome/gui/SMESH/display_entity.htm b/doc/salome/gui/SMESH/display_entity.htm deleted file mode 100755 index 51d7d6604..000000000 --- a/doc/salome/gui/SMESH/display_entity.htm +++ /dev/null @@ -1,101 +0,0 @@ - - - - - -Display Entity - - - - - - - - - - - - -

Display Entity

- -

In this submenu you can choose to display only volumes, faces or edges - or combine them.

- -

 

- -

Only Faces                                                  Only - Edges

- -

 

- -

 

- - - - diff --git a/doc/salome/gui/SMESH/doxyfile.in b/doc/salome/gui/SMESH/doxyfile.in new file mode 100755 index 000000000..53d07c117 --- /dev/null +++ b/doc/salome/gui/SMESH/doxyfile.in @@ -0,0 +1,49 @@ +#--------------------------------------------------------------------------- +# Project related configuration options +#--------------------------------------------------------------------------- +PROJECT_NAME = "Mesh Module Reference Manual v.@VERSION@" +OUTPUT_DIRECTORY = ./ +CREATE_SUBDIRS = NO +OUTPUT_LANGUAGE = English +TAB_SIZE = 5 + +#--------------------------------------------------------------------------- +# configuration options related to warning and progress messages +#--------------------------------------------------------------------------- +QUIET = NO +WARNINGS = YES + +#--------------------------------------------------------------------------- +#Input related options +#--------------------------------------------------------------------------- +INPUT = @srcdir@/input +FILE_PATTERNS = *.doc +IMAGE_PATH = @srcdir@/images + +#--------------------------------------------------------------------------- +#HTML related options +#--------------------------------------------------------------------------- +GENERATE_HTML = YES +HTML_OUTPUT = ./ +HTML_HEADER = @srcdir@/static/header.html +HTML_FOOTER = @srcdir@/static/footer.html +#HTML_STYLESHEET = @srcdir@/static/doxygen.css +TOC_EXPAND = YES +DISABLE_INDEX = NO +GENERATE_TREEVIEW = YES +TREEVIEW_WIDTH = 300 + +#--------------------------------------------------------------------------- +#LaTeX related option +#--------------------------------------------------------------------------- +GENERATE_LATEX = NO + +#--------------------------------------------------------------------------- +#RTF related options +#--------------------------------------------------------------------------- +GENERATE_RTF = NO + +#--------------------------------------------------------------------------- +#External reference options +#--------------------------------------------------------------------------- +TAGFILES = smeshpy_doc.tag=./smeshpy_doc diff --git a/doc/salome/gui/SMESH/doxyfile_py.in b/doc/salome/gui/SMESH/doxyfile_py.in new file mode 100755 index 000000000..ff847e50e --- /dev/null +++ b/doc/salome/gui/SMESH/doxyfile_py.in @@ -0,0 +1,137 @@ +#--------------------------------------------------------------------------- +# Project related configuration options +#--------------------------------------------------------------------------- +PROJECT_NAME = "Mesh Module Reference Manual v.@VERSION@" +OUTPUT_DIRECTORY = ./ +CREATE_SUBDIRS = NO +OUTPUT_LANGUAGE = English +USE_WINDOWS_ENCODING = NO +BRIEF_MEMBER_DESC = YES +REPEAT_BRIEF = NO +ALWAYS_DETAILED_SEC = YES +INLINE_INHERITED_MEMB = YES +FULL_PATH_NAMES = NO +SHORT_NAMES = NO +JAVADOC_AUTOBRIEF = YES +MULTILINE_CPP_IS_BRIEF = NO +DETAILS_AT_TOP = NO +INHERIT_DOCS = YES +SEPARATE_MEMBER_PAGES = NO +TAB_SIZE = 5 +OPTIMIZE_OUTPUT_FOR_C = YES +OPTIMIZE_OUTPUT_JAVA = YES +BUILTIN_STL_SUPPORT = NO +DISTRIBUTE_GROUP_DOC = NO +SUBGROUPING = YES + +#--------------------------------------------------------------------------- +# Build related options +#--------------------------------------------------------------------------- +EXTRACT_ALL = YES +EXTRACT_PRIVATE = YES +EXTRACT_STATIC = NO +EXTRACT_LOCAL_CLASSES = YES +EXTRACT_LOCAL_METHODS = NO +HIDE_UNDOC_MEMBERS = NO +HIDE_UNDOC_CLASSES = NO +HIDE_FRIEND_COMPOUNDS = NO +HIDE_IN_BODY_DOCS = NO +INTERNAL_DOCS = YES +CASE_SENSE_NAMES = YES +HIDE_SCOPE_NAMES = NO +SHOW_INCLUDE_FILES = YES +INLINE_INFO = YES +SORT_MEMBER_DOCS = NO +SORT_BRIEF_DOCS = NO +SORT_BY_SCOPE_NAME = NO +GENERATE_TODOLIST = YES +GENERATE_TESTLIST = YES +GENERATE_BUGLIST = YES +GENERATE_DEPRECATEDLIST= YES +MAX_INITIALIZER_LINES = 25 +SHOW_USED_FILES = NO +SHOW_DIRECTORIES = NO + +#--------------------------------------------------------------------------- +# configuration options related to source browsing +#--------------------------------------------------------------------------- +SOURCE_BROWSER = NO +INLINE_SOURCES = NO +STRIP_CODE_COMMENTS = YES +REFERENCED_BY_RELATION = NO +REFERENCES_RELATION = YES +USE_HTAGS = NO +VERBATIM_HEADERS = YES + +#--------------------------------------------------------------------------- +# configuration options related to warning and progress messages +#--------------------------------------------------------------------------- +QUIET = NO +WARNINGS = YES +WARN_IF_UNDOCUMENTED = YES +WARN_IF_DOC_ERROR = YES +WARN_NO_PARAMDOC = NO +EXCLUDE_SYMLINKS = NO +EXAMPLE_RECURSIVE = NO + +#--------------------------------------------------------------------------- +#Input related options +#--------------------------------------------------------------------------- +INPUT = @top_srcdir@/src/SMESH_SWIG +FILE_PATTERNS = smeshDC.py +IMAGE_PATH = @srcdir@/images +RECURSIVE = NO + +#--------------------------------------------------------------------------- +#HTML related options +#--------------------------------------------------------------------------- +GENERATE_HTML = YES +HTML_OUTPUT = ./smeshpy_doc +HTML_HEADER = @srcdir@/static/header.html +HTML_FOOTER = @srcdir@/static/footer.html +#HTML_STYLESHEET = @srcdir@/static/doxygen.css +TOC_EXPAND = YES +DISABLE_INDEX = YES +GENERATE_TREEVIEW = NO + +#--------------------------------------------------------------------------- +#LaTeX related option +#--------------------------------------------------------------------------- +GENERATE_LATEX = NO + +#--------------------------------------------------------------------------- +#RTF related options +#--------------------------------------------------------------------------- +GENERATE_RTF = NO + +#--------------------------------------------------------------------------- +# Configuration options related to the dot tool +#--------------------------------------------------------------------------- +CLASS_DIAGRAMS = YES +HIDE_UNDOC_RELATIONS = NO +HAVE_DOT = YES +CLASS_GRAPH = YES +COLLABORATION_GRAPH = NO +GROUP_GRAPHS = NO +UML_LOOK = NO +TEMPLATE_RELATIONS = YES +INCLUDE_GRAPH = YES +INCLUDED_BY_GRAPH = NO +CALL_GRAPH = NO +GRAPHICAL_HIERARCHY = YES +DIRECTORY_GRAPH = YES +DOT_IMAGE_FORMAT = jpg +DOT_PATH = +DOTFILE_DIRS = +MAX_DOT_GRAPH_WIDTH = 1024 +MAX_DOT_GRAPH_HEIGHT = 1200 +MAX_DOT_GRAPH_DEPTH = 0 +DOT_TRANSPARENT = NO +DOT_MULTI_TARGETS = NO +GENERATE_LEGEND = NO +DOT_CLEANUP = YES + +#--------------------------------------------------------------------------- +#External reference options +#--------------------------------------------------------------------------- +GENERATE_TAGFILE = smeshpy_doc.tag diff --git a/doc/salome/gui/SMESH/ehelp.xml b/doc/salome/gui/SMESH/ehelp.xml deleted file mode 100755 index 8d61adcdc..000000000 --- a/doc/salome/gui/SMESH/ehelp.xml +++ /dev/null @@ -1,10 +0,0 @@ - - - - - - - - WebSearch - - \ No newline at end of file diff --git a/doc/salome/gui/SMESH/ehlpdhtm.js b/doc/salome/gui/SMESH/ehlpdhtm.js deleted file mode 100755 index 7bcb24993..000000000 --- a/doc/salome/gui/SMESH/ehlpdhtm.js +++ /dev/null @@ -1,4239 +0,0 @@ -// eHelp® Corporation Dynamic HTML JavaScript -// Copyright© 1998-2003 eHelp® Corporation.All rights reserved. -// Version=4.82 - -// Warning:Do not modify this file.It is generated by RoboHELP® and changes will be overwritten. - -//// Segment Begin -- (JavaScript 1.0) - -/// Section Begin - General and relative topics(JavaScript 1.0) - -//{{HH_SYMBOL_SECTION -var HH_ChmFilename = ""; -var HH_WindowName = ""; -var HH_GlossaryFont = ""; -var HH_Glossary = ""; -var HH_Avenue = ""; -var HH_ActiveX = false; -//}}HH_SYMBOL_SECTION - -//Begin to support previous generic parameters -//Get the information about the browser. -var gstrBsAgent = navigator.userAgent.toLowerCase(); -var gnBsVer = parseInt(navigator.appVersion); - -var gbBsOpera = (gstrBsAgent.indexOf('opera') != -1); -var gbBsKonqueror = (gstrBsAgent.indexOf('konqueror') != -1); -var gbBsSafari = (gstrBsAgent.indexOf('safari') != -1); -var gbBsIE = (gstrBsAgent.indexOf('msie') != -1) && !gbBsOpera && !gbBsKonqueror && !gbBsSafari; -var gbBsNS = (gstrBsAgent.indexOf('mozilla') != -1) && ((gstrBsAgent.indexOf('spoofer') == -1) && (gstrBsAgent.indexOf('compatible') == -1)) && !gbBsOpera && !gbBsKonqueror && !gbBsSafari; - -var gbBsMac = (gstrBsAgent.indexOf('mac') != -1); -var gbBsWindows = ((gstrBsAgent.indexOf('win') != -1) || (gstrBsAgent.indexOf('16bit') != -1)); -var gbBsSunOS = (gstrBsAgent.indexOf("sunos") != -1); - -var gbBsIE3Before = ((gbBsIE) && (gnBsVer <= 2)); -var gbBsNS3Before = ((gbBsNS) && (gnBsVer <= 3)); - -var gbBsNS2 = ((gbBsNS) && (gnBsVer <= 2)); -var gbBsNS3 = ((gbBsNS) && (gnBsVer == 3)); -var gbBsIE300301 = ((gbBsIE) && (gnBsVer == 2) && ((gstrBsAgent.indexOf("3.00") != -1)||(gstrBsAgent.indexOf("3.0a") != -1)||(gstrBsAgent.indexOf("3.0b")!=-1)||(gstrBsAgent.indexOf("3.01")!=-1))); -var gbBsIE302 = ((gbBsIE) && (gnBsVer == 2) && (gstrBsAgent.indexOf("3.02") != -1)); - -var gbBsNS4 = ((gbBsNS) && (gnBsVer >= 4)); -var gbBsNS6 = ((gbBsNS) && (gnBsVer >= 5)); -var gbBsNS7 = false; - -var gbBsIE4 = ((gbBsIE) && (gnBsVer >= 4)); -var gbBsIE5 = false; -var gbBsIE55 = false; - -var gbBsOpera6 = false; -var gbBsOpera7 = false; - -var gbBsKonqueror3 = false; - - - -gbBsIE = (navigator.appName.indexOf("Microsoft") != -1) && !gbBsOpera && !gbBsKonqueror && !gbBsSafari;; -if (gbBsIE) -{ - if (parseInt(navigator.appVersion) >= 4) { - gbBsIE4 = true; - if (gbBsIE4) { - var nPos = gstrBsAgent.indexOf("msie"); - var strIEversion = gstrBsAgent.substring(nPos + 5); - var nVersion = parseFloat(strIEversion); - if (nVersion >= 5) - gbBsIE5 = true; - if (nVersion >= 5.5) - gbBsIE55 = true; - } - } -} -if (gbBsNS6) -{ - var nPos=gstrBsAgent.indexOf("gecko"); - if(nPos!=-1) - { - var nPos2=gstrBsAgent.indexOf("/", nPos); - if(nPos2!=-1) - { - var nVersion=parseFloat(gstrBsAgent.substring(nPos2+1)); - if (nVersion>=20020823) - gbBsNS7=true; - } - } -} -if (gbBsOpera) -{ - var nPos = gstrBsAgent.indexOf("opera"); - if(nPos!=-1) - { - var nVersion = parseFloat(gstrBsAgent.substring(nPos+6)); - if (nVersion >= 6) - { - gbBsOpera6=true; - if (nVersion >=7) - gbBsOpera7=true; - } - } -} -if (gbBsKonqueror) -{ - var nPos = gstrBsAgent.indexOf("konqueror"); - if(nPos!=-1) - { - var nVersion = parseFloat(gstrBsAgent.substring(nPos+10)); - if (nVersion >= 3) - { - gbBsKonqueror3=true; - } - } -} - -function insertAdjacentHTML(obj, where, htmlStr) -{ - if (gbBsIE || gbBsOpera7) - { - obj.insertAdjacentHTML(where, htmlStr); - } - else if (gbBsNS6 || gbBsSafari) - { - var r = obj.ownerDocument.createRange(); - r.setStartBefore(obj); - var parsedHTML = r.createContextualFragment(htmlStr); - - switch (where){ - case 'beforeBegin': - obj.parentNode.insertBefore(parsedHTML,obj); - break; - case 'afterBegin': - obj.insertBefore(parsedHTML,obj.firstChild); - break; - case 'beforeEnd': - obj.appendChild(parsedHTML); - break; - case 'afterEnd': - if (obj.nextSibling){ - obj.parentNode.insertBefore(parsedHTML,obj.nextSibling); - } else { - obj.parentNode.appendChild(parsedHTML); - } - break; - } - } -} - -// Utilities functions. -function BsscHasExtJs() -{ - if( gbBsIE3Before || gbBsNS3Before) - return false; - return true; -} - -// Register event handler -var gBsOnLoads = new Array(); // An array holds all the onload event handler. -var gBsOnClicks = new Array(); // An array holds all the onClick event handler. -var gBsOnUnLoads = new Array(); // An array holds all the OnUnLoad event handler. -var gBsOnMouseOvers = new Array(); // An array holds all the OnMouseOver event handler. -var gBsOnMouseOuts = new Array(); // An array holds all the OnMouseOut event handler. - -var gbOrignalOnMouseDown = null; - -function BsscRegisterOnLoad(funcHandler) -{ - var nLength = gBsOnLoads.length; - gBsOnLoads[nLength] = funcHandler; -} - -function BsscRegisterOnClick(funcHandler) -{ - var nLength = gBsOnClicks.length; - gBsOnClicks[nLength] = funcHandler; -} - -function BsscRegisterOnUnLoad(funcHandler) -{ - var nLength = gBsOnUnLoads.length; - gBsOnUnLoads[nLength] = funcHandler; -} - -function BsscRegisterOnMouseOver(funcHandler) -{ - var nLength = gBsOnMouseOvers.length; - gBsOnMouseOvers[nLength] = funcHandler; -} - -function BsscRegisterOnMouseOut(funcHandler) -{ - var nLength = gBsOnMouseOuts.length; - gBsOnMouseOuts[nLength] = funcHandler; -} - -function BsGeneralOnLoad() -{ - if (!gbBsIE4 && !gbBsNS4) - return; - - // Make everything visible in navigator - if (gbBsNS4 && !gbBsNS6) { - // Make some special effects items visible - for (var iLayer = 0; iLayer < document.layers.length; iLayer++) { - document.layers[iLayer].visibility = "show"; - document.layers[iLayer].left = 0; - } - } -} - -// If resize the netscape browser, need to reload it. -function BsReDo() -{ - if (innerWidth != origWidth || innerHeight != origHeight) - location.reload(); -} -// End of the local functions. - -// The following functions are used by the html files. -function BSSCOnLoad() -{ - if( !BsscHasExtJs() ) - return; - for (var nElement = gBsOnLoads.length - 1; nElement >= 0; nElement--) - gBsOnLoads[nElement](); -} - -function BSSCOnClick() -{ - if (!BsscHasExtJs()) return; - - for (var nElement = gBsOnClicks.length - 1; nElement >= 0; nElement--) - gBsOnClicks[nElement](); -} - -function BSSCOnUnload() -{ - if (!BsscHasExtJs()) return; - for (var nElement = gBsOnUnLoads.length - 1; nElement >= 0; nElement--) - gBsOnUnLoads[nElement](); -} - -function BSSCOnMouseOver() -{ - if (!BsscHasExtJs()) return; - for (var nElement = gBsOnMouseOvers.length - 1; nElement >= 0; nElement--) - gBsOnMouseOvers[nElement](); -} - -function BSSCOnMouseOut() -{ - if (!BsscHasExtJs()) return; - for (var nElement = gBsOnMouseOuts.length - 1; nElement >= 0; nElement--) - { - gBsOnMouseOuts[nElement](); - } -} -// End of invocation of the event handle functions. - -// Add the GereralOnLoad to the onload array. -if (typeof(BsscRegisterOnLoad) != "undefined") -{ - BsscRegisterOnLoad(BsGeneralOnLoad); -} -if (gbBsNS4&&!gbBsNS6) { - origWidth = innerWidth; - origHeight = innerHeight; - onresize = BsReDo; -} -//End to support previous generic parameters - -//Begin to support previous HHActiveX invoking -function BsHHActivateComponents() -{ - if( HH_ActiveX && (HH_ChmFilename != "") && ((self == top) || (self == top.frames[0]))) - { - var objBody = getElementsByTag(document,"BODY")[0]; - if( typeof(objBody) == "object" ) - { - insertAdjacentHTML(objBody, "beforeEnd", ''); - if (HHComponentActivator.object) - HHComponentActivator.Activate(HH_ChmFilename, HH_WindowName, HH_GlossaryFont, HH_Glossary, HH_Avenue); - } - } -} - -function BsHHActivXOnLoad() -{ - if( gbBsIE4 ) - BsHHActivateComponents(); -} - -if( typeof(BsscRegisterOnLoad) != "undefined" ) -{ - BsscRegisterOnLoad(BsHHActivXOnLoad); -} -//End to support previous HHActiveX invoking - -//Begin to support previous relative topics -//If webHelp needs Related Topics DHTMLcode, it's supposed to add it here -var gbPopupMenuTimeoutExpired = false; -var gbInPopupMenu = false; -var gbPopupMenuTopicList = null; -var gOlddocumentClick = null; - -////////////////////////////////////////////////////////////////////////////////////////// -// -// Popup Menu code -// -////////////////////////////////////////////////////////////////////////////////////////// - -var g_bIsPopupMenuInit = false; -function _WritePopupMenuLayer() -{ - if (!g_bIsPopupMenuInit) - { - if (gbBsNS4&&!gbBsNS6) { -//Do not try to write ininle styles for NS! NS can not handle it and will not stop downloading the html page... - document.write("
"); - } else{ - document.write(""); - if (!(gbBsNS4&&!gbBsNS6)) { - document.write(""); - } - } - g_bIsPopupMenuInit = true; - } -} - -//Seek for the bsscright frame -function _SeekFrameByName( cRoot, strName ) -{ - if( cRoot == null ) return null; - if( cRoot.frames == null ) return null; - if( cRoot.frames[strName] != null ) return cRoot.frames[strName]; - for (var i=0; i'; - } else { - strMenu += '' + gbPopupMenuTopicList[fn_arguments[i]].strTitle + ''; - } - strMenu += ''; - - if (isNaN(fn_arguments[i]) || (gbPopupMenuTopicList == null)) { - i += 2; - } else { - i += 1; - } - } - strMenu += ""; - - if (gbBsMac) { - // totally hack. because ie5 in mac need something. is one of them. mac is mad. - strMenu +="
"; - } - - var layerPopup = null; - var stylePopup = null; - var nEventX = 0; - var nEventY = 0; - var nWindowWidth = 0; - if (gbBsIE4 || gbBsOpera7) { - - layerPopup = getElement("PopupMenu"); - layerPopup.innerHTML = strMenu; - stylePopup = layerPopup.style; - - _BSPSGetClientSize(); - - // Get the position of the item causing the event (relative to its parent) - nEventX = window.event.clientX; - nEventY = window.event.clientY; - - if (nEventY + layerPopup.scrollHeight + 10 < gBsClientHeight) { - nEventY += document.body.scrollTop + 10; - } else { - nEventY = (document.body.scrollTop + gBsClientHeight) - layerPopup.scrollHeight - 20; - } - stylePopup.top = nEventY; - - var nPopupWidth = layerPopup.scrollWidth; - if (gbBsMac) { - nPopupWidth = 80; // we have no idea how to get the dynamic width of the popup. - } - if (nEventX + nPopupWidth + 20 > gBsClientWidth) { - if (gBsClientWidth - nPopupWidth < 5) { - stylePopup.left = 5; - } else { - stylePopup.left = gBsClientWidth - nPopupWidth - 5; - } - } else { - stylePopup.left = nEventX + document.body.scrollLeft + 20; - } - - stylePopup.visibility = "visible"; - if (!gOlddocumentClick && document.onclick) - gOlddocumentClick = document.onclick; - document.onclick = PopupMenu_HandleClick; - - } else if (gbBsNS6 || gbBsKonqueror3||gbBsSafari) { - layerPopup = getElement("PopupMenu"); - layerPopup.style.visibility = "hidden"; - - if (gbBsNS6) - { - var e = fn_arguments[0]; - nEventX = e.pageX; - nEventY = e.pageY; - } - else - { - nEventX = window.event.clientX; - nEventY = window.event.clientY; - } - _BSPSGetClientSize(); - layerPopup.innerHTML = strMenu; - - if (nEventY + layerPopup.offsetHeight + 20 < window.pageYOffset + gBsClientHeight) { - nEventY += 20; - } else { - nEventY = gBsClientHeight + window.pageYOffset - layerPopup.offsetHeight - 20; - } - - if (nEventX + layerPopup.offsetWidth + 20 > gBsClientWidth + window.pageXOffset) { - if (gBsClientWidth + window.pageXOffset - layerPopup.offsetWidth < 20) { - nEventX = 5; - } else { - nEventX = gBsClientWidth + window.pageXOffset - layerPopup.offsetWidth - 20; - } - } else { - nEventX += 20; - } - layerPopup.style.top = nEventY; - layerPopup.style.left = nEventX; - // set again to avoid the stupid frash in netscape 6. - layerPopup.innerHTML = strMenu; - layerPopup.style.visibility = "visible"; - //window.captureEvents(Event.MOUSEDOWN); - if (!gOlddocumentClick && document.onclick) - gOlddocumentClick = document.onclick; - window.onclick = PopupMenu_HandleClick; - } - else if (gbBsNS4) { - layerPopup = document.layers.PopupMenu; - layerPopup.visibility = "hide"; - stylePopup = layerPopup.document; - stylePopup.write(strMenu); - stylePopup.close(); - var e = fn_arguments[0]; - nEventX = e.pageX; - nEventY = e.pageY; - _BSPSGetClientSize(); - if (nEventY + layerPopup.clip.height + 20 < window.pageYOffset + gBsClientHeight) { - nEventY += 20; - } else { - nEventY = gBsClientHeight + window.pageYOffset- layerPopup.clip.height - 20; - } - layerPopup.top = nEventY; - - if (nEventX + layerPopup.clip.width + 20 > gBsClientWidth + window.pageXOffset) { - if (gBsClientWidth + window.pageXOffset - layerPopup.clip.width < 20) { - nEventX = 5; - } else { - nEventX = gBsClientWidth + window.pageXOffset - layerPopup.clip.width - 20; - } - } else { - nEventX += 20; - } - - layerPopup.left = nEventX; - - layerPopup.visibility = "show"; - - window.captureEvents(Event.MOUSEDOWN); - if (!gOlddocumentClick && document.onmousedown) - gOlddocumentClick = document.onmousedown; - window.onmousedown = PopupMenu_HandleClick; - } - - window.gbInPopupMenu = true; - window.gbPopupMenuTimeoutExpired = false; - setTimeout("PopupMenu_Timeout();", 100); - return false; -} - -function PopupMenu_Timeout() -{ - window.gbPopupMenuTimeoutExpired = true; -} - -function PopupMenu_Over(e) -{ - if (gbBsIE4||gbBsOpera7) - e.srcElement.className = "PopupOver"; - else if (gbBsNS6) - e.target.parentNode.className = "PopupOver"; - return; -} - -function PopupMenu_Out(e) -{ - if (gbBsIE4||gbBsOpera7) - e.srcElement.className = "PopupNotOver"; - else if (gbBsNS6) - e.target.parentNode.className = "PopupNotOver"; - return; -} - -function PopupMenu_HandleClick(e) -{ - if (window.gbPopupMenuTimeoutExpired) { - window.gbInPopupMenu = false; - if (gbBsNS4 && !gbBsNS6) { - window.releaseEvents(Event.MOUSEDOWN); - } - - var layerPopup = null; - if (gbBsNS4&&!gbBsNS6) { - layerPopup = document.layers.PopupMenu; - layerPopup.visibility = "hide"; - } else { - layerPopup = getElement("PopupMenu"); - layerPopup.style.visibility = "hidden"; - } - - if (gOlddocumentClick) - { - if (gbBsNS4 && !gbBsNS6) - document.onmousedown = gOlddocumentClick; - else - document.onclick = gOlddocumentClick; - } - } - return; -} - -function BSSCPopup_ClickMac() -{ - if ((!DHTMLPopupSupport()) && (gbBsIE4 || gbBsOpera7)) - { - var bClickOnAnchor = false; - var el; - if ((window.event != null) && - (window.event.srcElement != null)) - { - el = window.event.srcElement; - while (el != null) - { - if ((el.tagName == "A") || (el.tagName == "AREA")) { - bClickOnAnchor = true; - break; - } - if (el.tagName == "BODY") { - break; - } - el = getParentNode(el); - } - } - if (BSSCPopup_IsPopup()) - { - if (!bClickOnAnchor) { - parent.window.gPopupWindow = null; - self.close(); - } - } - else - { - bClosePopupWindow = true; - if ((bClickOnAnchor) && - (el.href) && - ((el.href.indexOf("javascript:BSSCPopup") != -1) || (el.href.indexOf("javascript:null") != -1) || (el.href.indexOf("javascript:void(0)") != -1))) - { - bClosePopupWindow = false; - } - if (bClosePopupWindow) - { - if (window.gPopupWindow != null && !window.gPopupWindow.closed ) - { - window.gPopupWindow.close(); - } - } - } - } -} - -function BsPopupOnClick() -{ - if (!gbBsIE4 && !gbBsOpera7) - return; - - BSSCPopup_ClickMac(); -} - -function _BSSCOnError(message) -{ - if(-1 != message.indexOf("denied") - || -1 != message.indexOf("Object required")) - return true; -} - -//End to support previous relative topics - -/// Section End - General and relative topics (JavaScript 1.0) - -/// Section Begin - Popup (JavaScript 1.0) -//Begin to support previous popup functions - -//variables used to isolate the browser type -var gBsStyVisShow = null; -var gBsStyVisHide = null; -var gBsClientWidth = 640; -var gBsClientHeight = 480; - -// here is the varible for judge popup windows size. these parameter is for IE5.0, it may need adjust for others. -var gBRateH_W = 0.618; // 1.618 Golden cut. -var gBMaxXOfParent = 0.8; -var gBMaxYOfParent = 0.8; -var gBscrollHeight = 16; -var gBscrollWidth = 16; -var gBpermitXDelta = 3; -var gBpermitYDelta = 3; - - -var arrayPopupURL = new Array(); -var arrayAbsPopupURL = new Array(); - -var arrayDirty = new Array(); - -function setAbsPopupURL(nIndex, strURL) -{ - arrayAbsPopupURL[nIndex] = strURL; -} - -function getAbsPopupURL(nIndex) -{ - if (nIndex == -1 || arrayAbsPopupURL.length <= nIndex) return null; - else - return arrayAbsPopupURL[nIndex]; -} - -function getPopupURL(nIndex) -{ - if (nIndex == -1 || arrayPopupURL.length <= nIndex) return null; - else - return arrayPopupURL[nIndex]; -} - -function getPopupID(nIndex) -{ - return gstrPopupID + nIndex; -} - -function getPopupShadowID(nIndex) -{ - return gstrPopupShadowID + nIndex; -} - -function getPopupTopicID(nIndex) -{ - return gstrPopupTopicID + nIndex; -} - -function getPopupIFrameID(nIndex) -{ - return gstrPopupIFrameID + nIndex; -} - -function getPopupIFrameName(nIndex) -{ - return gstrPopupIFrameName + nIndex; -} - - -function getPopupTopicStyle(nIndex) -{ - return getElement(getPopupTopicID(nIndex)).style; -} - -function getPopupShadowStyle(nIndex) -{ - return getElement(getPopupShadowID(nIndex)).style; -} - -function getPopupIFrame(nIndex) -{ - if (gbBsNS6) - return eval("window.frames['" + getPopupIFrameName(nIndex) + "']"); - else - return eval("document.frames['" + getPopupIFrameName(nIndex) + "']"); -} - -function getPopupDivStyle(nIndex) -{ - return getElement(getPopupID(nIndex)).style; -} - -function getPopupIFrameStyle(nIndex) -{ - return getElement(getPopupIFrameID(nIndex)).style; -} - - -function findDiv(strURL) -{ - for (var i = 0; i < arrayPopupURL.length; i ++ ) { - if (arrayPopupURL[i] == strURL) { - return i; - } - } - return -1; -} - -var gnToken = -1; -function takeToken() -{ - gnToken ++; - if (gnToken > 10000) gnToken = 0; - return gnToken; -} - -function IsValidToken(nToken) -{ - return (gnToken == nToken); -} - -function addDiv(strURL) -{ - for (var i = 0; i < arrayPopupURL.length; i ++) { - if (arrayPopupURL[i] == null) { - arrayPopupURL[i] = strURL; - return i; - } - } - arrayPopupURL[i] = strURL; - arrayDirty[i] = true; - return i; -} - -function setDirty() -{ - for (var i = 0; i < arrayPopupURL.length; i ++ ) - arrayDirty[i] = true; -} - -function IsDirty(nIndex) -{ - if (nIndex == -1) - return true; - else - if (arrayDirty.length > nIndex) - return arrayDirty[nIndex]; - else - return true; -} - -function hideAll() -{ - for (var i = 0; i < arrayPopupURL.length; i ++ ) - { - getPopupDivStyle(i).visibility = gBsStyVisHide; - getPopupIFrameStyle(i).visibility = gBsStyVisHide; - } -} - -function getCurrentPopupIFrame() -{ - for (var i = 0; i < arrayPopupURL.length; i ++) - if (getPopupDivStyle(i).visibility == gBsStyVisShow) - return getPopupIFrame(i); - return null; -} - -function setClear(nIndex) -{ - if (nIndex != -1) - arrayDirty[nIndex] = false; -} - -function _BSSCCreatePopupDiv(strURL) -{ - var nIndex = findDiv(strURL); - if (nIndex == -1 ) { - nIndex = addDiv(strURL); - BsPopup_CreateDiv(nIndex); - } - else { - if (IsDirty(nIndex)) { - if("object" == typeof(getPopupIFrame(nIndex).document)) - getPopupIFrame(nIndex).document.location.href = strURL; - } - } - return nIndex; -} - -//Here is the browser type -function _BSPSGetBrowserInfo() -{ - if (gbBsNS4&&!gbBsNS6) - { - gBsStyVisShow = "show"; - gBsStyVisHide = "hide"; - } - else - { - gBsStyVisShow = "visible"; - gBsStyVisHide = "hidden"; - } -} - -_BSPSGetBrowserInfo(); - -//Get client size info -function _BSPSGetClientSize() -{ - if (gbBsNS4||gbBsKonqueror3||gbBsSafari) - { - gBsClientWidth = innerWidth; - gBsClientHeight = innerHeight; - } - else if (gbBsIE4 || gbBsOpera7) - { - gBsClientWidth = document.body.clientWidth; - gBsClientHeight = document.body.clientHeight; - } -} - -var gstrPopupID = 'BSSCPopup'; -var gstrPopupShadowID = 'BSSCPopupShadow'; -var gstrPopupTopicID = 'BSSCPopupTopic'; -var gstrPopupIFrameID = 'BSSCPopupIFrame'; -var gstrPopupIFrameName = 'BSSCPopupIFrameName'; - -var gstrPopupSecondWindowName = 'BSSCPopup'; - -var gPopupWindow = null; -var gnPopupClickX = 0; -var gnPopupClickY = 0; - -var gnPopupScreenClickX = 0; -var gnPopupScreenClickY = 0; - -var gbPopupTimeoutExpired = false; - -function DHTMLPopupSupport() -{ - if (((gbBsIE4) && (!gbBsMac))||gbBsOpera7|| gbBsNS7) { - return true; - } - return false; -} - -function BSSCPopup_IsPopup() -{ - if (DHTMLPopupSupport() && (this.name.indexOf(gstrPopupIFrameName) != -1)) { - return true; - } else if ((gbBsNS4 || gbBsIE4 || gbBsOpera7) && (this.name.indexOf(gstrPopupID) != -1)) { - return true; - } else { - return false; - } -} - -// If there is a hyperlink in a popup window, display the hyperlink in -// the original window. (bsscright) -if (BSSCPopup_IsPopup() && !gbBsIE4 && !gbBsOpera7) { - document.write(""); -} - -// Local functions. -function BsPopup_CreateDiv(nIndex) -{ - if(!DHTMLPopupSupport()) - return; - // DO NOT SET Width and height for the div, otherwize it will make IE4 popup do not work when view the topic alone. - var strPopupDiv = ""; - - var objBody = getElementsByTag(document, "BODY")[0]; - if( typeof(objBody) != "object" ) - return; - - insertAdjacentHTML(objBody, "beforeEnd", strPopupDiv); -} - -function handleLoadNS() -{ - if (this.id) - { - var nIndex = parseInt(this.id.substring(gstrPopupIFrameID.length)); - BSSCPopup_PostWork(nIndex); - } -} - -function BSSCPopup_PostWork(nIndex) -{ - getPopupDivStyle(nIndex).visibility = gBsStyVisShow; - getPopupIFrameStyle(nIndex).visibility =gBsStyVisShow; - - setClear(nIndex); - window.gbPopupTimeoutExpired = true; - - BSSCPopup_ChangeTargettoParent(getPopupIFrame(nIndex).document); - if (gbBsNS6) - getPopupIFrame(nIndex).document.body.addEventListener("click",BSSCPopupClicked,false); - else - getPopupIFrame(nIndex).document.body.onclick = BSSCPopupClicked; - - if (!gbOrignalOnMouseDown && document.onmousedown) - gbOrignalOnMouseDown = document.onmousedown; - - if (gbBsNS6) - document.addEventListener("mousedown", BSSCPopupParentClicked,false); - else - document.onmousedown = BSSCPopupParentClicked; -} - -function BSSCPopup_Timeout(nIndex, nToken) -{ - if (!IsValidToken(nToken)) return; - - if (gbBsNS6||((getPopupIFrame(nIndex).document.readyState == "complete") && - (getPopupIFrame(nIndex).document.body != null))) { - BSSCPopup_PostWork(nIndex); - } else { - setTimeout("BSSCPopup_Timeout(" + nIndex + "," + nToken + ")", 100); - } -} - -// VH 08/10/00 -// do not change target to parent if the href is using javascript -function BSSCPopup_ChangeTargettoParent(tagsObject) -{ - var collA = getElementsByTag(tagsObject, "A"); - BSSCPopup_ChangeTargettoParent2(collA); - - var collIMG = getElementsByTag(tagsObject,"IMG"); - BSSCPopup_ChangeTargettoParent2(collIMG); -} - -function BSSCPopup_ChangeTargettoParent2(colls) -{ - if (colls != null) { - for (var j = 0; j < colls.length; j ++ ) - { - var strtemp = colls[j].href; - if (strtemp) - { - strtemp = strtemp.toLowerCase(); - if (strtemp.indexOf("javascript:") == -1) - if (colls[j].target == "") - colls[j].target = "_parent"; - } - } - } -} - -function BSPSPopupTopicWinHelp(strURL) -{ - _BSSCPopup(strURL); - return; -} - -function _BSSCPopup(strURL, width, height) -{ - var cuswidth = 0; - var cusheight = 0; - if ("undefined" != typeof(width) && "undefined" != typeof(height)) { - cuswidth = width; - cusheight= height; - } - - if (DHTMLPopupSupport()) { - var nToken = takeToken(); // take token first. - var nIndex = _BSSCCreatePopupDiv(strURL); - window.gbPopupTimeoutExpired = false; - var ntWidth = gBsClientWidth; - var ntHeight = gBsClientHeight; - _BSPSGetClientSize(); - if (ntWidth != gBsClientWidth || ntHeight != gBsClientHeight) { - setDirty(); - } - - if (IsDirty(nIndex)) { - if (gbBsMac) { - setTimeout("BSSCPopup_AfterLoad(" + nIndex + "," + nToken + "," + cuswidth + "," + cusheight +")", 400); - } else { - setTimeout("BSSCPopup_AfterLoad(" + nIndex + "," + nToken + "," + cuswidth + "," + cusheight + ")", 100); - } - } - else { - MoveDivAndShow(nIndex ,nToken, cuswidth, cusheight); - } - } else { - _BSSCPopup2(strURL, cuswidth, cusheight); - } - return; -} - -if (gbBsIE55) -{ - var ehlpdhtm_fOldBefureUnload = window.onbeforeunload; - var gnBsUnload=0; - window.onbeforeunload = window_BUnload; -} - -function window_BUnload() -{ - gnBsUnload++; - if (gnBsUnload>1) - return; - for (var i = 0; i < arrayPopupURL.length; i ++) - removeThis(document.all(getPopupID(i))); - arrayPopupURL.length = 0; - if (ehlpdhtm_fOldBefureUnload) - ehlpdhtm_fOldBefureUnload(); -} - -function _BSSCPopup2(strURL, width, height) -{ - if (gbBsOpera6&&gbBsMac) - { - var wmTemp = window.open(document.location.href, gstrPopupSecondWindowName); - wmTemp.close(); - setTimeout("_BSSCPopup3(\""+strURL+"\","+width+","+height+");",100); - } - else - _BSSCPopup3(strURL, width, height); -} - -function _BSSCPopup3(strURL, width, height) -{ - if (window.name == gstrPopupSecondWindowName) { - window.location = strURL; - } else { - if (!gbBsMac || !gbBsNS4) { - BSSCHidePopupWindow(); - } - var nX = 0; - var nY = 0; - var nHeight = 300; - var nWidth = 400; - if (width > 0 && height > 0) { - nHeight = height; - nWidth = width; - } - _BSPSGetClientSize(); - - nX = window.gnPopupScreenClickX; - nY = window.gnPopupScreenClickY; - - if (nY + nHeight + 40 > screen.availHeight) { - nY = screen.availHeight - nHeight - 40; - } - if (nX + nWidth + 40 > screen.availWidth) { - nX = screen.availWidth - nWidth - 40; - } - - // Launch a separate window - var strParam="titlebar=no,toolbar=no,status=no,location=no,menubar=no,resizable=yes,scrollbars=yes"; - if (gbBsNS) { - if (gbBsNS6) { - strParam += ",Height=" + nHeight + ",Width=" + nWidth; - strParam += ",screenX=" + nX + ",screenY=" + nY; - strParam += ",dependent=yes"; - } - else { - strParam += ",OuterHeight=" + nHeight + ",OuterWidth=" + nWidth; - strParam += ",screenX=" + nX + ",screenY=" + nY; - strParam += ",dependent=yes"; - } - } - else { - strParam += ",height=" + nHeight + ",width=" + nWidth; - strParam += ",left=" + nX + ",top=" + nY; - } - if (gbBsSafari) - { - if (window.gPopupWindow) - window.gPopupWindow.close(); - window.gPopupWindow = window.open(strURL, "", strParam); - window.gPopupWindow.name = gstrPopupSecondWindowName; - window.gPopupWindow.moveTo(nX, nY); - widnow.gPopupWindow.document.location.reload(); - } - else - { - var wmTemp=null; - if (gbBsKonqueror3) - { - if (window.gPopupWindow) - window.gPopupWindow.close(); - } - if (gbBsOpera&&gbBsMac) - { - wmTemp= window.open(document.location.href, "Temp", strParam); - } - window.gPopupWindow = window.open(strURL, gstrPopupSecondWindowName, strParam); - if (!gbBsIE) - window.gPopupWindow.focus(); - - if (wmTemp) - wmTemp.close(); - } - - if (gbBsNS4) - setEventHandle(); - else if (gbBsIE4 || gbBsOpera7||gbBsKonqueror3) - setTimeout("setPopupFocus();", 100); - } - return; -} - -function setEventHandle() -{ - window.gPopupWindow.captureEvents(Event.CLICK | Event.BLUR); - window.gPopupWindow.onclick = NonIEPopup_HandleClick; - window.gPopupWindow.onblur = NonIEPopup_HandleBlur; -} - -function setPopupFocus() -{ - window.gPopupWindow.focus(); -} - -function NonIEPopup_HandleBlur(e) -{ - window.gPopupWindow.focus(); -} - -function NonIEPopup_HandleClick(e) -{ - // Because navigator will give the event to the handler before the hyperlink, let's - // first route the event to see if we are clicking on a Popup menu in a popup. - document.routeEvent(e); - - // If a popup menu is active then don't do anything with the click - if (window.gPopupWindow.gbInPopupMenu) { - window.gPopupWindow.captureEvents(Event.CLICK); - window.gPopupWindow.onclick = NonIEPopup_HandleClick; - return false; - } - - // Close the popup window - if(e.target.href) - { - if(e.target.href.indexOf("javascript:")==-1) - { - if (e.target.target=="") - window.location.href = e.target.href; - else - window.open(e.target.href, e.target.target); - this.close(); - } - } - else - this.close(); - return false; -} - -function BSSCPopup_AfterLoad(nIndex, nToken, cuswidth, cusheight) -{ - if (!window.getPopupIFrame(nIndex).document) { - _BSSCPopup2(getPopupURL(nIndex), cuswidth, cusheight); - return; - } - - if (!IsValidToken(nToken)) return; - - if (gbBsNS6) - { - setAbsPopupURL(nIndex, window.getPopupIFrame(nIndex).document.location.href); // change URL to abs url. - BSSCPopup_ResizeAfterLoad(nIndex, nToken, cuswidth, cusheight); - return; - } - - if ((window.getPopupIFrame(nIndex).document.readyState == "complete") && - (window.getPopupIFrame(nIndex).document.body != null)) { - if (window.getPopupIFrame(nIndex).document.location.href.indexOf("about:blank") != -1) { // add this check. IE will use about:blank" as the default vaule for Iframe. - window.getPopupIFrame(nIndex).document.location = getPopupURL(nIndex); - setTimeout("BSSCPopup_AfterLoad(" + nIndex + "," + nToken + "," + cuswidth + "," + cusheight + ")", 200); - } - else - { - setAbsPopupURL(nIndex, window.getPopupIFrame(nIndex).document.location.href); // change URL to abs url. - BSSCPopup_ResizeAfterLoad(nIndex, nToken, cuswidth, cusheight); - } - } else { - setTimeout("BSSCPopup_AfterLoad(" + nIndex + "," + nToken + "," + cuswidth + "," + cusheight + ")", 200); - } -} - -function BSSCPopup_ResizeAfterLoad(nIndex, nToken, cuswidth, cusheight) -{ - if (window.gbPopupTimeoutExpired) return; - - if (!IsValidToken(nToken)) return; - - getPopupDivStyle(nIndex).visibility = gBsStyVisHide; - getPopupIFrameStyle(nIndex).visibility = gBsStyVisHide; - - // Determine the width and height for the window - _BSPSGetClientSize(); - - var size = new BSSCSize(0, 0); - - if (cuswidth <= 0 || cusheight <= 0) - BSSCGetContentSize(window.getPopupIFrame(nIndex), size); - else { - size.x = cuswidth; - size.y = cusheight; - } - - // Determine the width and height for the window - var nWidth = size.x; - var nHeight = size.y; - - // for small popup size, we should allow any size. - // The popup size should be ok if bigger than 0 - if (nWidth < 0 || nHeight < 0) return; // there must be something terribly wrong. - - getPopupDivStyle(nIndex).width = nWidth; - getPopupDivStyle(nIndex).height = nHeight; - - getPopupShadowStyle(nIndex).width = nWidth; - getPopupShadowStyle(nIndex).height = nHeight; - getPopupTopicStyle(nIndex).width = nWidth; - getPopupTopicStyle(nIndex).height = nHeight; - if (gbBsIE55) - { - getPopupShadowStyle(nIndex).width = nWidth + 2; - getPopupShadowStyle(nIndex).height = nHeight + 2; - getPopupTopicStyle(nIndex).width = nWidth + 2; - getPopupTopicStyle(nIndex).height = nHeight + 2; - } - - getPopupIFrameStyle(nIndex).width = nWidth; - getPopupIFrameStyle(nIndex).height = nHeight; - if (gbBsIE55 || gbBsNS6) - { - getPopupIFrameStyle(nIndex).top = 0; - getPopupIFrameStyle(nIndex).left = 0; - } - - var strURL = getPopupURL(nIndex); - if (strURL.indexOf("#") != -1&&gbBsNS6) - getPopupIFrame(nIndex).location.reload(); - else if (strURL.indexOf("#") != -1||gbBsNS6) - getPopupIFrame(nIndex).location.href = strURL; // reload again, this will fix the bookmark misunderstand in IE5. - - MoveDivAndShow(nIndex, nToken, cuswidth, cusheight); -} - -function getScrollLeft() -{ - if (document.body.scrollLeft) - return document.body.scrollLeft; - else if (window.pageXOffset) - return window.pageXOffset; - else - return 0; -} - -function getScrollTop() -{ - if (document.body.scrollTop) - return document.body.scrollTop; - else if (window.pageYOffset) - return window.pageYOffset; - else - return 0; -} - - -function MoveDivAndShow(nIndex, nToken, cuswidth, cusheight) -{ - if (window.getPopupIFrame(nIndex).document.location.href != getAbsPopupURL(nIndex)) { // if redirect, reload again. - window.getPopupIFrame(nIndex).document.location = getPopupURL(nIndex); - setTimeout("BSSCPopup_AfterLoad(" + nIndex + "," + nToken + "," + cuswidth + "," + cusheight + ")", 200); - return; - } - - // Determine the position of the window - var nClickX = window.gnPopupClickX; - var nClickY = window.gnPopupClickY; - var nTop = 0; - var nLeft = 0; - - var nWidth = parseInt(getPopupDivStyle(nIndex).width); - var nHeight = parseInt(getPopupDivStyle(nIndex).height); - - if (nClickY + nHeight + 20 < gBsClientHeight + getScrollTop()) { - nTop = nClickY + 10; - } else { - nTop = (getScrollTop() + gBsClientHeight) - nHeight - 20; - } - if (nClickX + nWidth < gBsClientWidth + getScrollLeft()) { - nLeft = nClickX; - } else { - nLeft = (getScrollLeft() + gBsClientWidth) - nWidth - 8; - } - - if (nTop < getScrollTop()) nTop = getScrollTop() + 1; - if (nLeft< getScrollLeft()) nLeft = getScrollLeft() + 1; - - getPopupDivStyle(nIndex).left = nLeft; - getPopupDivStyle(nIndex).top = nTop; - - // Set the location of the background blocks - getPopupShadowStyle(nIndex).left = 6; - getPopupShadowStyle(nIndex).top = 6; - if (gbBsIE55) - { - getPopupShadowStyle(nIndex).left = 4; - getPopupShadowStyle(nIndex).top = 4; - } - - if (gbBsMac&&gbBsIE4) { - // Total hack on the iMac to get the IFrame to position properly - getPopupIFrameStyle(nIndex).pixelLeft = 100; - getPopupIFrameStyle(nIndex).pixelLeft = 0; - // Explicitly call BSSCOnLoad because the Mac doesn't seem to do it - getPopupIFrame(nIndex).window.BSSCOnLoad(); - } - - if (gbBsNS6&&IsDirty(nIndex)) - getElement(getPopupIFrameID(nIndex)).addEventListener("load", handleLoadNS, false); - else - BSSCPopup_Timeout(nIndex , nToken ); - return; -} - -function BSSCSize(x, y) -{ - this.x = x; - this.y = y; -} - -function BSSCGetContentSize(thisWindow, size) -{ - if (!gbBsIE4 && !gbBsOpera7 && !gbBsNS4) - return; - - if ((gbBsMac&&gbBsIE4)||gbBsNS4||gbBsOpera7) { - size.x = 320; - size.y = 180; - return; - } - - // Resize the width until it is wide enough to handle the content - // The trick is to start wide and determine when the scrollHeight changes - // because then we know a scrollbar is necessary. We can then go back - // to the next widest size (for no scrollbar) - - var ClientRate = gBsClientHeight / gBsClientWidth; - - - var GoldenSize = new BSSCSize(0,0); - GoldenSize.x = gBsClientWidth * gBMaxXOfParent; - GoldenSize.y = gBsClientHeight *gBMaxYOfParent ; - - if (ClientRate > gBRateH_W) { - GoldenSize.y = GoldenSize.x * gBRateH_W; - } - else { - GoldenSize.x = GoldenSize.y / gBRateH_W; - } - - // Try to using parent specified max x. - var x = 0; - var maxgoldx = GoldenSize.x; - var maxx = gBsClientWidth * gBMaxXOfParent; - - // This double resize causes the document to re-render (and we need it to) - if (!gbBsIE5) - thisWindow.moveTo(10000,10000); // this is used to fix the flash on IE4. - - thisWindow.resizeTo(1, 1); - thisWindow.resizeTo(1, 1); - thisWindow.resizeTo(maxgoldx, thisWindow.document.body.scrollHeight + gBscrollHeight); - thisWindow.resizeTo(maxgoldx, thisWindow.document.body.scrollHeight + gBscrollHeight); - - var miny = thisWindow.document.body.scrollHeight + gBscrollHeight; - - if (miny > GoldenSize.y) // the popup does not fix in the parent wanted golden area. so try to expand itself as large as it can - { - thisWindow.resizeTo(maxx , thisWindow.document.body.scrollHeight + gBscrollHeight); - thisWindow.resizeTo(maxx , thisWindow.document.body.scrollHeight + gBscrollHeight); - - miny = thisWindow.document.body.scrollHeight + gBscrollHeight; - maxy = gBsClientHeight * gBMaxYOfParent; - - if (miny > maxy) { // the popup must have a scroll, OK let it be. - miny = maxy; - size.x = maxx; - size.y = maxy; - thisWindow.document.body.scroll = 'yes'; // At this time we do want to show scroll any more. so it will looks better a little. - } - else { // popup still can fit in the parent area by someway. now we choose the same h/w rate as parent. - size.y = miny; - - // downsize from maxx , now I try to using binary divide. - x = maxx; - deltax = -maxx/2; - //j = 0; - while (true) { - x = x + deltax; - thisWindow.resizeTo(x, miny); - thisWindow.resizeTo(x, miny); - diffy = thisWindow.document.body.scrollHeight + gBscrollHeight - x * ClientRate; - if (diffy > gBpermitYDelta ) // it is higher than wanted, so x need to be wide a little bitter - deltax = Math.abs(deltax) /2; - else if (diffy < -gBpermitYDelta) // it is shorter than wanted, so x need to be narrow a little bitter - deltax = -Math.abs(deltax) /2; - else - // the y is close enough to wanted. - break; - if (Math.abs(deltax) < gBpermitXDelta) // the next change is too slight and it can be ignore. - break; - } - size.x = thisWindow.document.body.scrollWidth; //+ gBscrollWidth; - size.y = thisWindow.document.body.scrollHeight;// + gBscrollHeight; - thisWindow.document.body.scroll = 'no'; - } - } - else { - if (thisWindow.document.body.scrollWidth > maxgoldx) { - size.x = maxx; - size.y = miny; - thisWindow.document.body.scroll = 'yes'; - } - else { - // downsize from maxgoldx , now I try to using binary divide. - x = maxgoldx; - deltax = -maxgoldx/2; - while (true) { - x = x + deltax; - thisWindow.resizeTo(x, miny); - thisWindow.resizeTo(x, miny); - diffy = thisWindow.document.body.scrollHeight + gBscrollHeight - x * gBRateH_W; - if (diffy > gBpermitYDelta ) // it is higher than wanted, so x need to be wide a little bitter - deltax = Math.abs(deltax) /2; - else if (diffy < -gBpermitYDelta) // it is shorter than wanted, so x need to be narrow a little bitter - deltax = -Math.abs(deltax) /2; - else - // the y is close enough to wanted. - break; - if (Math.abs(deltax) < gBpermitXDelta) // the next change is too slight and it can be ignore. - break; - } - size.x = thisWindow.document.body.scrollWidth; //+ gBscrollWidth; - size.y = thisWindow.document.body.scrollHeight ; - thisWindow.document.body.scroll = 'no'; // At this time we do not want to show scroll any more. so it will looks better a little. - thisWindow.resizeTo(size.x, size.y); - if (thisWindow.document.body.scrollWidth > size.x) - { - size.x = thisWindow.document.body.scrollWidth; - } - if (thisWindow.document.body.scrollHeight > size.y) - { - size.y = thisWindow.document.body.scrollHeight; - } - } - } - thisWindow.resizeTo(size.x, size.y); - thisWindow.resizeTo(size.x, size.y); - return; -} - -function BSSCPopupParentClicked() -{ - if (!window.gbPopupTimeoutExpired) { - return false; - } - - document.onmousedown = gbOrignalOnMouseDown; - - // Simply hide the popup - hideAll(); - - window.gbPopupTimeoutExpired = false; - - return true; -} - -function isInsideHyperLink(obj) -{ - if (obj&&obj!=getParentNode(obj)) - { - if (obj.tagName=="A"||obj.tagName=="IMG") - return true; - else - return isInsideHyperLink(getParentNode(obj)); - } - else - return false; -} - -function BSSCPopupClicked(e) -{ - if (!window.gbPopupTimeoutExpired) { - return false; - } - - var popupIFrame = getCurrentPopupIFrame(); - if (popupIFrame == null) { - return true; - } - - if (gbBsIE4 && (!((popupIFrame.window.event != null) && - (popupIFrame.window.event.srcElement != null) && - isInsideHyperLink(popupIFrame.window.event.srcElement)))) { - document.onmousedown = gbOrignalOnMouseDown; - - // Simply hide the popup - hideAll(); - window.gbPopupTimeoutExpired = false; - return true; - } - else if (gbBsNS6 && (!((e != null) && - (e.target!= null) && isInsideHyperLink(e.target)))) - { - document.addEventListener("mousedown", gbOrignalOnMouseDown,false); - // Simply hide the popup - hideAll(); - window.gbPopupTimeoutExpired = false; - return true; - } -} - -//trace the mouse over's position for hotspot -function BSPSPopupOnMouseOver(event) -{ - if (gbBsIE4 || gbBsOpera7||gbBsKonqueror3) { - window.gnPopupClickX = event.clientX + getScrollLeft(); - window.gnPopupClickY = event.clientY + getScrollTop(); - window.gnPopupScreenClickX = event.screenX; - window.gnPopupScreenClickY = event.screenY; - } else if (gbBsSafari) { - window.gnPopupClickX = event.clientX + getScrollLeft(); - window.gnPopupClickY = event.clientY + getScrollTop(); - window.gnPopupScreenClickX = event.screenX + window.screenX; - window.gnPopupScreenClickY = event.screenY + window.screenY; - } else if (gbBsNS4) { - window.gnPopupClickX = event.pageX - window.pageXOffset; - window.gnPopupClickY = event.pageY - window.pageYOffset; - window.gnPopupScreenClickX = event.screenX - window.pageXOffset; - window.gnPopupScreenClickY = event.screenY - window.pageYOffset; - } -} - -function BSSCHidePopupWindow() -{ - if (window.gPopupWindow != null) { - if (gbBsNS4) { - if ((typeof window.gPopupWindow != "undefined") && (!window.gPopupWindow.closed)) { - window.gPopupWindow.close(); - window.gPopupWindow = null; - } - } - } - return; -} - -// Add the PopupOnClick to the onclick array. -if (typeof(BsscRegisterOnClick) != "undefined") -{ - BsscRegisterOnClick(BsPopupOnClick); -} -//End to support previous popup functions - -/// Section End - Popup (JavaScript 1.0) - -/// Section Begin - Embedded Stub (JavaScript 1.0) - -function BSSCCreatePopupDiv() -{ - return; -} - -function WritePopupMenuLayer() -{ - if (BsscHasExtJs()) {_WritePopupMenuLayer();} -} - -function BSSCPopup(strURL, width, height) -{ - var re = new RegExp("'", 'g'); - strURL = strURL.replace(re, "%27"); - - if (BsscHasExtJs()) { - _BSSCPopup(strURL, width, height); - }else{ - //Create a temporary window first to ensure the real popup comes up on top - var wndTemp = null; - if (!gbBsNS3) { - wndTemp = window.open("", "temp", "titlebar=no,toolbar=no,status=no,location=no,menubar=no,resizable=yes,scrollbars=yes,height=3,width=4"); - } - // Create the real popup window - var wndPopup = window.open(strURL, "BSSCPopup", "titlebar=no,toolbar=no,status=no,location=no,menubar=no,resizable=yes,scrollbars=yes,height=300,width=400"); - // Close the temporary - if (!gbBsNS3) { - wndTemp.close(); - } else { - wndPopup.focus(); - } - } -} - -var gbWndTemp = null, gbWndPopupLinks = null; -var gbstrParaTotal = ""; - -function PopupMenu_Invoke() -{ - if (typeof(wfRelatedTopic) == 'function' && typeof(IsFlashSupported) == 'function') - { - if (Number(gsSkinVersion) > 2 && IsFlashSupported()) - { - return wfRelatedTopic(PopupMenu_Invoke.arguments); - } - } - if (BsscHasExtJs()) { - return _PopupMenu_Invoke(PopupMenu_Invoke.arguments); - } - if (gbBsNS3Before || gbBsIE3Before ) { - var argLen = PopupMenu_Invoke.arguments.length; - if (argLen < 5) { - window.document.location.href = PopupMenu_Invoke.arguments[3]; - return false; - } - gbWndTemp = null; - gbWndPopupLinks = null; - gbstrParaTotal = ""; - for (var i = 0; i < (argLen - 2) / 2; i++) { - var strParaLine = ""; - if (gbBsNS2){ - strParaLine += "" - strParaLine += PopupMenu_Invoke.arguments[2 * i + 2]; - strParaLine += ""; - } else { - strParaLine += ""); - if (gbBsNS2) { - gbWndPopupLinks.document.write(""); - } else { - //YJ: IE301,302 and NS3.x works fine - gbWndPopupLinks.document.write("<"); - gbWndPopupLinks.document.write("script>"); - gbWndPopupLinks.document.write("function gotoUrl(aUrl) {opener.window.location=aUrl; close();}"); - gbWndPopupLinks.document.write("<"); - gbWndPopupLinks.document.write("/script>"); - } - gbWndPopupLinks.document.write(""); - gbWndPopupLinks.document.write(gbstrParaTotal); - gbWndPopupLinks.document.write(""); - gbWndPopupLinks.document.close(); - - // Close the temporary - if (!gbBsNS3 && gbWndTemp != null) { - gbWndTemp.close(); - }else { - gbWndPopupLinks.focus(); - } - - return true; - } - return false; -} - -/// Section End - Embedded Stub (JavaScript 1.0) - -//// Segment End -- (JavaScript 1.0) - -//// Segment Begin -- (JavaScript 1.2) -/// Section Begin - kadov DHTM (JavaScript 1.2) - -//Begin to support extended and dropdown text effects. -function kadovIsParagraph(el) -{ - return( el.tagName == "P" || el.tagName.indexOf("H") == 0 ) ? true : false; -} - -function kadovInitEachChild(el) -{ - for(var i=0; i "") ) - child.style.setAttribute( "x-on-pageload", "" ); - } - - var href = child.getAttribute("href") - if( href != null && href > "" && href.indexOf( "BSSCPopup" ) >= 0 ) - kadovFilePopupInit(child.id); // Init for Popup - else if( child.className == "dropspot" || child.className == "expandspot" || - child.className == "glossterm" ) - kadovTextPopupInit(child.id);// Init for Expanding/Glossary or DropDown text - else if( child.className == "trigger") - kadovInitTrigger(child.id);// Init for Trigger - else - { - kadovInitEffects(child.id);// Init for DHTML effects - CEngine.SetOneTargetInitialState( child.id ); - } - } - - if( (child.tagName == "IMG") && (child.getAttribute("dynsrc") > "") ) - child.start = "mouseover";// to start a AVI file. fileopen doesn't work - - kadovInitEachChild(child); - } -} - -function kadovRetrieveTextInner(el) -{ - var x = ""; - if( (!el) || (el.tagName == "!") || (el.tagName == "SCRIPT" )) - return x; - - if( kadovIsParagraph(el) ) - { - var strNewID = " "; - if( el.id != "" ) - strNewID += "id=" + el.id + "_NewSpan "; - x = "" + el.innerHTML + ""; - } - else - { - for(var i=0; i 0 ) - if( (nTagClose - nTagOpen) != nDistance ) - return strRawHTML; - - var strCleanOnce = strRawHTML.substring(0, nTagOpen) + strRawHTML.substr(nTagClose + strTagClose.length) ; - return kadovRetrieveCleanHTML( strCleanOnce, strTagOpen, strTagClose ); -} - -function kadovAdjustObjectTag(strRawHTML, nStartPos) -{// adjust object tag for related topics HTML control, because innerHTML misses out the item settings - - //Is there any DTC? - var strDTCTagOpen = ''; - var nDTCTagOpen = strRawHTML.indexOf( strDTCTagOpen, nStartPos ); - if( nDTCTagOpen < 0 ) - return strRawHTML; - var nDTCTagClose = strRawHTML.indexOf( strDTCTagClose, nDTCTagOpen ); - if( nDTCTagClose < nDTCTagOpen) - return strRawHTML; // no Design Time Controls; - - //Is the DTC HTML Help Control? - var strRTObjTagOpen = 'classid=clsid:ADB880A6-D8FF-11CF-9377-00AA003B7A11'; - var strRTObjTagClose = ''; - var nRTObjTagOpen = strRawHTML.indexOf( strRTObjTagOpen, nDTCTagOpen ); - if( nRTObjTagOpen < nDTCTagOpen ) - return strRawHTML; - var nRTObjTagClose = strRawHTML.indexOf( strRTObjTagClose, nRTObjTagOpen ); - if( nRTObjTagClose < nRTObjTagOpen ) - return strRawHTML; // is not a HTML help control - - // Is it a related Topics html help control? - var strRTObjLabel = ''; - } - - // to insert the reconstructed item params into runtime object tag - var strAdjustedHTML = strRawHTML.substring(0,nRTObjTagClose) + strRunTimeItemParam + strRawHTML.substring(nRTObjTagClose, strRawHTML.length); - return kadovAdjustObjectTag(strAdjustedHTML, nDTCTagClose + strDTCTagClose.length); -} - -function kadovTextPopupOnLoad( el ) -{ - if( typeof(el) == "string" ) - el = getElement(el); - - var src = el.getAttribute( "x-use-popup" ); - var bNeedMove=true; - if(!src&&el.id) - { - for (var i=0;i"); - strCleanHTML = kadovRetrieveCleanHTML(strCleanHTML, ""); - - //work around the bug in HH.exe that highlight the phrases when use Search tab - //this approach is just removing the tag inserted by Microsoft in the runtime - strCleanHTML = kadovRetrieveCleanHTML(strCleanHTML, "", 52); - - var strStyle = " style='display:none; position:relative;"; - var newDiv = "
" + strCleanHTML + "
"; - - removeThis(srcDiv); // empty the original DIV tag - var elParentPra = kadovFindParentParagraph(el); - if( elParentPra ) - insertAdjacentHTML(elParentPra, "afterEnd", newDiv ); - } - else if( type == "expanding" ) - { - var inner = kadovRetrieveTextInner(srcDiv); - if( inner == "" ) - inner = srcDiv.innerHTML; - var strAdjust = kadovAdjustObjectTag(inner,0); - var strCleanHTML = kadovRetrieveCleanHTML(strAdjust, ""); - strCleanHTML = kadovRetrieveCleanHTML(strCleanHTML, ""); - var strClassName = (el.className == "glossterm") ? "glosstext" : "expandtext"; - var newSpan = ""; - removeThis(srcDiv); // empty the original DIV tag - insertAdjacentHTML(el, "afterEnd", newSpan ); - } - } - } - else - { - srcDiv.style.display = "none"; - } - return 0; -} - -function getElementsByTag(obj,sTagName) -{ - if(obj.getElementsByTagName) - return obj.getElementsByTagName(sTagName); - else if(obj.all) - return obj.all.tags(sTagName); - return null; -} - -function getElement(sID) -{ - if(document.getElementById) - return document.getElementById(sID); - else if(document.all) - return document.all(sID); - return null; -} - -function getParentNode(obj) -{ - if(obj.parentNode) - return obj.parentNode; - else if(obj.parentElement) - return obj.parentElement; - return null; -} - -function getChildNodes(obj) -{ - if(obj.childNodes) - { - var children = new Array(); - for (var i = 0; i < obj.childNodes.length; i++) - { - if (obj.childNodes[i].nodeType == 1) - children[children.length] = obj.childNodes[i]; - } - return children; - } - else if(obj.children) - return obj.children; - return null; -} - -function removeThis(obj) -{ - if(obj.parentNode) - obj.parentNode.removeChild(obj); - else - obj.outerHTML=""; -} - -function kadovTextPopup( el ) -{ - if (!gbBsIE4 && !gbBsOpera7 && !gbBsSafari && !gbBsNS6 && !gbBsKonqueror3 ) - return; - - var bNeedMove=true; - - if (window.event) - window.event.cancelBubble = true; - - if( typeof(el) == "string" ) - el = getElement(el); - - if (!el||el==window) - return; - - var src = el.getAttribute( "x-use-popup" ); - if(!src&&el.id) - { - for (var i=0;i= 0 && nNext < values.length ) - { - functions[nIdx] = values.substr( nStart, nNext-nStart+1); - nStart = nNext + 1; - nIdx++; - nNext = values.indexOf( "\)", nStart); - } - - for( var i=0; i= 0 ) - { - nPageClick = arrForClickCount[j].indexOf("="); - if( nPageClick > 0 ) - { - nClickTimes = arrForClickCount[j].substring( nPageClick + 1, arrForClickCount[j].length) * 1; - break; - } - } - } - var args = srcargs; - if( j < arrForClickCount.length ) - {// to strip out the "clicks=99" from the arguments string - args = ""; - for( var k = 0; k < arrForClickCount.length; k ++ ) - { - if( k != j ) - { - args += arrForClickCount[k]; - if( k < arrForClickCount.length - 1 ) - args += ","; - } - } - } - bsscFXInit( null, id, translatedProp, fnname, args, nClickTimes ); - } -} - -function kadovTranslateProp( prop ) -{ - switch( prop ) - { - case "x-on-hover" : return "bsschover"; - case "x-on-pageclick" : return "bsscpageclick"; - case "x-on-pageload" : return "bsscpageload"; - case "x-on-trigger-1" : return "bssctrigger1"; - case "x-on-trigger-2" : return "bssctrigger2"; - } - return null; -} -//End to convert iWrite format to RoboEditor Format for DHTML effects - -//Begin the definition of one entry to DHTML effects -function bsscFXInit( trigger_ID, target_ID, event_type, - action_type, action_setting, event_addional ) -{ - if( (!gbBsWindows && !gbBsSunOS && !(gbBsMac&&gbBsIE5)) || typeof(target_ID) != "string" )//MUST have a target_ID - return; // we don't support Navigator yet - - if( typeof(event_type) == "string" ) - event_type = event_type.toLowerCase(); - if( typeof(action_type) == "string" ) - action_type = action_type.toLowerCase(); - if( typeof(action_setting) == "string" ) - action_setting = action_setting.toLowerCase(); - - // to get the target element then add it to the target list - var eleTarget = CCSSP.GetObject( target_ID ); - if( (eleTarget != null) && (event_type != null) && (action_type != null) ) - { - CEngine.AddOneTarget( target_ID, eleTarget ); - CEngine.BuildTargetObject(target_ID, event_type, action_type, action_setting, event_addional); - } - - // to validate the trigger_ID parameter - if( typeof(trigger_ID) == "string" && trigger_ID != "" ) - CEngine.BuildTriggerObject( trigger_ID, target_ID ); -} -//End the definition of one entry to DHTML effects - -/// Section End - kadov DHTM (JavaScript 1.2) - -/// Section Begin - CCSSP DHTM (JavaScript 1.2) - -//Begin JavaScript libary for cross-platform positioning object. -function CCSSP(){} // constructor of CCSSP class - -CCSSP.GetObject = function( obj ) -{//convert object name string or reference into a valid object reference - if( typeof(obj) == "object" ) - return obj; - else if( typeof(obj) == "string" && obj != "") - { - if( gbBsNS4 ) - return eval("document." + obj); - else - return eval("document.all(\"" + obj + "\")"); - } - else - return null; -} - -CCSSP.MoveObjectTo = function(obj, x, y) -{//positioning an object at a specific pixel coordinate - if( gbBsNS4 ) - obj.moveTo(x,y); - else - { - obj.style.pixelLeft = x; - obj.style.pixelTop = y; - } -} - -CCSSP.MoveObjectBy = function(obj, dx, dy) -{//moveing a object by x and/or y pixel - if( gbBsNS4 ) - obj.moveBy(dx,dy); - else - { - obj.style.pixelLeft += dx; - obj.style.pixelTop += dy; - } -} - -CCSSP.SetObjectBGColor = function(obj, color) -{//set the background color of an object - if( gbBsNS4 ) - obj.bgColor = color; - else - obj.style.backgroundColor = color; -} - -CCSSP.ShowObject = function(obj, bShow) -{// set the object to be visible or invisible - if( gbBsNS4 ) - obj.visibility = (bShow == true) ? 'show' : 'hide'; - else - obj.style.visibility = (bShow == true) ? 'visible' : 'hidden';// when hidden, it still occupy some space. -} - -CCSSP.GetObjectLeft = function(obj) -{// retrieve the x coordinate of a posionable object - if( gbBsNS4 ) - return obj.left; - else - return obj.style.pixelLeft; -} - -CCSSP.GetObjectTop = function(obj) -{// retrieve the y coordinate of a posionable object - if( gbBsNS4 ) - return obj.top; - else - return obj.style.pixelTop; -} - -CCSSP.GetObjectContainLeft = function(obj) -{// retrieve the x coordinate of a posionable object relative to it's parent element - if( gbBsNS4 ) - return obj.pageX; - else - { - if( obj == document.body ) - return obj.clientLeft; - else - return obj.offsetLeft; - } -} - -CCSSP.GetObjectWindowLeft = function(obj) -{// retrieve the x coordinate of a posionable object relative to browser window - if( gbBsNS4 ) - return obj.pageX; - else - { - var nOffsetWindowLeft = 0; - for(var element = obj; element; element = element.offsetParent) - nOffsetWindowLeft += CCSSP.GetObjectContainLeft(element); - return nOffsetWindowLeft; - } -} - -CCSSP.GetObjectContainTop = function(obj) -{// retrieve the y coordinate of a posionable object relative to it's parent element - if( gbBsNS4 ) - return obj.pageY; - else - { - if( obj == document.body ) - return obj.clientTop; - else - return obj.offsetTop; - } -} - -CCSSP.GetObjectWindowTop = function(obj) -{// retrieve the y coordinate of a posionable object relative to browser window - if( gbBsNS4 ) - return obj.pageY; - else - { - var nOffsetWindowTop = 0; - for(var element = obj; element; element = element.offsetParent) - nOffsetWindowTop += CCSSP.GetObjectContainTop(element); - return nOffsetWindowTop; - } -} - -CCSSP.GetObjectHeight = function(obj) -{// retrieve the height of a posionable object - if( gbBsNS4 ) - return obj.clip.height; - else - return obj.offsetHeight; -} - -CCSSP.GetObjectWidth = function(obj) -{// retrieve the width of a posionable object - if( gbBsNS4 ) - return obj.clip.width; - else - return obj.offsetWidth; -} - -CCSSP.RegisterEventHandler = function( srcObj, rawEventName, funcHandler ) -{ // to add the "funcHandler" as the "rawEventName" 's handler to the "srcObj" object,the original event handler will be combined - if (gbBsNS4 && !gbBsNS6) - return ; - - var oldHandler = ""; - - if (gbBsMac &&gbBsIE4&&!gbBsIE5) - { - if (typeof(srcObj[rawEventName.toLowerCase()])=="unknown") - { //search for - - - - - - - - - -

Extrusion

- -

Extrusion is a type of surface meshing by generation from discretized - lines. It is used to build mesh elements of plus one dimension than the - swept ones. Each swept 1D element produces one or more quadrangles (or - triangles if one node of a rotated element lays on the revolution axis).

- -

 

- -

To use extrusion:

- -

 

- -

1. From the Modification - menu choose the Extrusion item - or click button in the toolbar. The following dialog box - will appear:

- -

 

- -

 

- -

 

- -

2. In this dialog box you should select

- -
    - -
  • the type of elements - which will be extruded (1D or 2D),

  • - -
  • specify the IDs of - the elements which will be extruded by selecting them in the 3D viewer - or select the whole mesh or submesh,

  • - -
  • specify the vector - along which the elements will be extruded,

  • - -
  • number of steps

  • -
- -

 

- -

3. Click the Apply - or OK button.

- -

 

- -

 

- - --- - - - -
-

-

- -

 

- -
- -

 

- - - - diff --git a/doc/salome/gui/SMESH/extrusion_along_a_path.htm b/doc/salome/gui/SMESH/extrusion_along_a_path.htm deleted file mode 100755 index 74b811ab6..000000000 --- a/doc/salome/gui/SMESH/extrusion_along_a_path.htm +++ /dev/null @@ -1,378 +0,0 @@ - - - - - -Extrusion along a path - - - - - - - - - - - - - -

Extrusion along a path

- -

In principle, Extrusion along a path - works in the same way as Extrusion, - the main difference is that we define not a vector, but a path of extrusion - which must be a meshed edge. To get an idea of how this algorithm works, - examine several examples, starting from the most simple case of extrusion - along a straight edge. In all examples the same mesh will be extruded - along different paths and with different parameters. This sample 2D mesh - has two quadrangle faces and seven edges. Look at the picture, where white - digits are the node numbers and green are the element numbers:

- -

.

- -

 

- -
    - -
  • Extrusion along - a straight edge (not using base point or angles)

  • -
- - --- - - - -
-

-

- -

   

- -

The left image shows a 1D path mesh, built - on a linear edge, and the initial 2D mesh. The right image shows the result - of extrusion of two edges (#1 and #2) of the initial mesh along the path. - Node #1 of path mesh has been selected as Start - node.

- -

 

- -
    - -
  • Extrusion along - a curvilinear edge (with and without angles)

  • -
- - ---- - - - - - - - - - -
-

-

-

-

The left image shows a 1D path mesh, built on curvilinear edge, and - the initial  2D - mesh.

-

The central image shows the result of extrusion of one edge (#2) of - the initial mesh along the path.  Node - #1 of path mesh has been selected as Start - node.

-

The same, but using angles {45, 45, 45, 0, -45, -45, -45}

- -

 

- -
    - -
  • Extrusion - along a sub-mesh.

  • -
- - --- - - - -
-

-

- -

 

- -

In this example the path mesh has been built - on a wire (polyline with six edges). The first edge of the wire was used - as Shape (edge), node #1 as Start node. The angles have been defined - as {10, 10, 10}. The middle edge (#4) of the initial mesh has been extruded.

- -

 

- -
    - -
  • Extrusion - of 2d elements along a sub-mesh.

  • -
- - --- - - - -
-

-

- -

 

- -

This extrusion bases on the same path mesh - as in the previous example but the third edge of the wire was set as Shape (edge) and node #4 as Start - node. Please note, that the extrusion has been done in direction - from node #4 to node #3, i.e. against the wire direction. In this example - both faces of the initial mesh have been extruded.

- -

 

- -
    - -
  • Extrusion of 2d elements - along a closed path.

  • -
- - ---- - - - - - - - - - -
-

-

-

-

The left image shows a path mesh built on a closed edge (circle).

-

The central image shows the result of extrusion of both faces of the - initial mesh. Note, that no sewing has been done, so, there are six coincident - nodes and two coincident faces in the resulting mesh.

-

The same, but using angles {45, -45, 45, -45, 45, -45, 45, -45}

- -

 

- -

 

- -

To use Extrusion along a path:

- -

1. From the Modification - menu choose the Extrusion along - a path item or click button in the toolbar. The - following dialog box will appear:

- -

 

- -

- -

 

- -

2. In the dialog box you should  

- -
    - -
  • select the type of - elements which will be extruded (1D or 2D),

  • - -
  • specify the IDs - of the elements which will be extruded by selecting them in the - 3D viewer or Select the whole mesh, submesh - or group,

  • - -
  • define the Path - along which the elements will be extruded,

  • -
- -

Path definition consists of several elements -

- -
    - -
  • Mesh - - containing a 1D sub-mesh on the edge, - along which proceeds the extrusion.

  • - -
  • Shape - (edge) - as the mesh can be complex, - the edge is used to define the sub-mesh for the path.

  • - -
  • Start - node -  the - first or the last node on the edge. It is used to define the direction - of extrusion.

  • -
- -

 

- -

3. There are two optional parameters, which - can be very useful.

- -
    - -
  • If the path of extrusion - is curvilinear, at each iteration the extruded shape is rotated to keep - its initial angularity to the curve. By default, the Base - Point around which the shape is rotated is the mass center of the - shape, however, you can specify any point as the Base - Point and the shape will be rotated with respect to this point.

  • - -
  • The shape can also - be rotated around the path to get the resulting mesh in a helical fashion. - You can set the values of angles at the right, add them to the list of - angles at the left by pressing the button and remove them - from the list by pressing the button.

  • -
- -

4. Click the Apply - or OK button. Mesh edges - will be extruded into faces, faces into volumes. The external surface - of the resulting 3d mesh (if faces have been extruded) is covered with - faces, and corners with edges. If the path is closed, the resulting mesh - can contain duplicated nodes and faces, because no sewing is done.

- -

 

- -

 See - Also a sample TUI Script of an Extrusion - along a Path operation.  

- -

 

- -

 

- - - - diff --git a/doc/salome/gui/SMESH/free_borders.htm b/doc/salome/gui/SMESH/free_borders.htm deleted file mode 100755 index b262c9cd3..000000000 --- a/doc/salome/gui/SMESH/free_borders.htm +++ /dev/null @@ -1,120 +0,0 @@ - - - - - -Free borders - - - - - - - - - - - - - -

Free borders

- -

This mesh quality control highlights borders of faces - consisting of edges belonging to one face only.

- -

 

- -

 

- -

 

- -

In this picture the free borders are displayed in white.

- -

 

- -

See Also - a sample TUI Script of a Free - Borders quality control operation.  

- -

 

- - - - diff --git a/doc/salome/gui/SMESH/free_edges.htm b/doc/salome/gui/SMESH/free_edges.htm deleted file mode 100755 index fe7146d12..000000000 --- a/doc/salome/gui/SMESH/free_edges.htm +++ /dev/null @@ -1,122 +0,0 @@ - - - - - -Free_edges - - - - - - - - - - - - - -

Free edges

- -

  This - mesh quality control highlights borders of  elements - of mesh consisting of edges belonging to one element of mesh only.

- -

 

- -

- -

 

- -

In this picture some elements of mesh have - been deleted and the "holes" are outlined in red.

- -

 

- -

See Also - a sample TUI Script of a Free - Edges quality control operation.  

- -

 

- - - - diff --git a/doc/salome/gui/SMESH/grouping_elements.htm b/doc/salome/gui/SMESH/grouping_elements.htm deleted file mode 100755 index 0231e5df7..000000000 --- a/doc/salome/gui/SMESH/grouping_elements.htm +++ /dev/null @@ -1,662 +0,0 @@ - - - - - -Grouping Elements - - - - - - - - - - - -

Grouping Elements

- -

Create a Standalone Group

- -

import SMESH_mechanic

- -

 

- -

smesh  = - SMESH_mechanic.smesh

- -

mesh   = - SMESH_mechanic.mesh

- -

salome = SMESH_mechanic.salome

- -

 

- -

# Get ids of all faces - with area > 100

- -

aFilter = smesh.GetFilter(smesh.FACE, - smesh.FT_Area, smesh.FT_MoreThan, 100.)

- -

 

- -

anIds = mesh.GetIdsFromFilter(aFilter) -

- -

 

- -

# create a group consisting - of faces with area > 100

- -

 

- -

aGroup = mesh.MakeGroupByIds("Area - > 100", smesh.FACE, anIds)

- -

 

- -

salome.sg.updateObjBrowser(1) -

- -

 

- -

- -

Create a Group on Geometry

- -

import salome

- -

import geompy

- -

import smesh

- -

 

- -

# create a box

- -

box = geompy.MakeBox(0., - 0., 0., 100., 100., 100.)

- -

geompy.addToStudy(box, - "box")

- -

 

- -

# add the first face - of the box to the study

- -

subShapeList - = geompy.SubShapeAll(box, geompy.ShapeType["FACE"])

- -

face = subShapeList[0]

- -

geompy.addToStudyInFather(box, - face, "face 1")

- -

 

- -

# create group of edges - on the face

- -

aGeomGroupE - = geompy.CreateGroup(face, geompy.ShapeType["EDGE"])

- -

geompy.AddObject(aGeomGroupE, - 3)

- -

geompy.AddObject(aGeomGroupE, - 6)

- -

geompy.AddObject(aGeomGroupE, - 8)

- -

geompy.AddObject(aGeomGroupE, - 10)

- -

geompy.addToStudyInFather(face, - aGeomGroupE, "Group of Edges")

- -

 

- -

# create quadrangle - 2D mesh on the box

- -

quadra - = smesh.Mesh(box, "Box : quadrangle 2D mesh")

- -

algo1D = quadra.Segment()

- -

quadra.Quadrangle()

- -

algo1D.NumberOfSegments(7) -

- -

 

- -

# compute the mesh

- -

quadra.Compute()

- -

 

- -

# create SMESH group - on the face with name "SMESHGroup1"

- -

aSmeshGroup1 - = quadra.GroupOnGeom(face, "SMESHGroup1")

- -

 

- -

# create SMESH group - on <aGeomGroupE> with default name

- -

aSmeshGroup2 = quadra.GroupOnGeom(aGeomGroupE) -

- -

 

- -

salome.sg.updateObjBrowser(1) -

- -

Edit a Group

- -

import SMESH_mechanic

- -

 

- -

smesh  = - SMESH_mechanic.smesh

- -

mesh   = - SMESH_mechanic.mesh

- -

salome = SMESH_mechanic.salome

- -

 

- -

# Get ids of all faces - with area > 35

- -

aFilter = smesh.GetFilter(smesh.FACE, - smesh.FT_Area, smesh.FT_MoreThan, 35.)

- -

 

- -

anIds = mesh.GetIdsFromFilter(aFilter) -

- -

 

- -

print "Criterion: - Area > 35, Nb = ", len(anIds)

- -

 

- -

# create a group by - adding elements with area > 35

- -

aGroup - = mesh.CreateEmptyGroup(smesh.FACE, "Area > 35")

- -

aGroup.Add(anIds) -

- -

 

- -

# Get ids of all faces - with area > 40

- -

aFilter = smesh.GetFilter(smesh.FACE, - smesh.FT_Area, smesh.FT_MoreThan, 40.)

- -

 

- -

anIds = mesh.GetIdsFromFilter(aFilter)

- -

 

- -

print "Criterion: - Area > 40, Nb = ", len(anIds)

- -

 

- -

# create a group of - elements with area [35; 40] by removing elements with area > 40 from - group aGroup

- -

aGroup.Remove(anIds) -

- -

 

- -

# print the result

- -

aGroupElemIDs = - aGroup.GetListOfID()

- -

 

- -

print "Criterion: - 35 < Area < 40, Nb = ", len(aGroupElemIDs)

- -

j = 1

- -

for i in range(len(aGroupElemIDs)):

- -

  if - j > 20: j = 1; print ""

- -

  print - aGroupElemIDs[i],

- -

  j - = j + 1

- -

  pass

- -

print ""

- -

 

- -

salome.sg.updateObjBrowser(1) -

- -

 

- -

 

- -

Union of two groups

- -

import SMESH_mechanic

- -

 

- -

smesh  = - SMESH_mechanic.smesh

- -

mesh   = - SMESH_mechanic.mesh

- -

salome = SMESH_mechanic.salome

- -

 

- -

# Criterion : AREA - > 20

- -

aFilter = smesh.GetFilter(smesh.FACE, - smesh.FT_Area, smesh.FT_MoreThan, 20.)

- -

 

- -

anIds = mesh.GetIdsFromFilter(aFilter)

- -

 

- -

print "Criterion: - Area > 20, Nb = ", len( anIds )

- -

 

- -

# create a group by - adding elements with area > 20

- -

aGroup1 = mesh.CreateEmptyGroup(SMESH.FACE, - "Area > 20")

- -

aGroup1.Add(anIds)

- -

 

- -

# Criterion : AREA - = 20

- -

aFilter - = smesh.GetFilter(smesh.FACE, smesh.FT_Area, smesh.FT_EqualTo, 20.)

- -

 

- -

anIds = mesh.GetIdsFromFilter(aFilter)

- -

 

- -

print "Criterion: - Area = 20, Nb = ", len( anIds )

- -

 

- -

# create a group by - adding elements with area = 20

- -

aGroup2 = mesh.CreateEmptyGroup( - smesh.FACE, "Area = 20" )

- -

 

- -

aGroup2.Add(anIds)

- -

 

- -

# create union group - : area >= 20

- -

aGroup3 - = mesh.UnionGroups(aGroup1, aGroup2, "Area >= 20")

- -

print "Criterion: - Area >= 20, Nb = ", len(aGroup3.GetListOfID())

- -

 

- -

# Criterion : AREA - < 20

- -

aFilter - = smesh.GetFilter(smesh.FACE, smesh.FT_Area, smesh.FT_LessThan, 20.)

- -

 

- -

anIds = mesh.GetIdsFromFilter(aFilter)

- -

 

- -

print "Criterion: - Area < 20, Nb = ", len(anIds)

- -

 

- -

# create a group by - adding elements with area < 20

- -

aGroup4 - = mesh.CreateEmptyGroup(smesh.FACE, "Area < 20")

- -

aGroup4.Add(anIds)

- -

 

- -

# create union group - : area >= 20 and area < 20

- -

aGroup5 - = mesh.UnionGroups(aGroup3, aGroup4, "Any Area")

- -

print "Criterion: - Any Area, Nb = ", len(aGroup5.GetListOfID())

- -

 

- -

salome.sg.updateObjBrowser(1) -

- -

 

- -

- -

 

- -

- -

 

- -

Intersection of two groups

- -

import SMESH_mechanic

- -

 

- -

smesh  = - SMESH_mechanic.smesh

- -

mesh   = - SMESH_mechanic.mesh

- -

salome = SMESH_mechanic.salome

- -

 

- -

# Criterion : AREA - > 20

- -

aFilter = smesh.GetFilter(smesh.FACE, - smesh.FT_Area, smesh.FT_MoreThan, 20.)

- -

 

- -

anIds = mesh.GetIdsFromFilter(aFilter)

- -

 

- -

print "Criterion: - Area > 20, Nb = ", len(anIds)

- -

 

- -

# create a group by - adding elements with area > 20

- -

aGroup1 = mesh.CreateEmptyGroup(SMESH.FACE, - "Area > 20")

- -

aGroup1.Add(anIds)

- -

 

- -

# Criterion : AREA - < 60

- -

aFilter = smesh.GetFilter(smesh.FACE, - smesh.FT_Area, smesh.FT_LessThan, 60.)

- -

 

- -

anIds = mesh.GetIdsFromFilter(aFilter)

- -

 

- -

print "Criterion: - Area < 60, Nb = ", len(anIds)

- -

 

- -

# create a group by - adding elements with area < 60

- -

aGroup2 = mesh.CreateEmptyGroup(SMESH.FACE, - "Area < 60")

- -

aGroup2.Add(anIds)

- -

 

- -

# create an intersection - of groups : 20 < area < 60

- -

aGroup3 - = mesh.IntersectGroups(aGroup1, aGroup2, "20 < Area < 60")

- -

print "Criterion: - 20 < Area < 60, Nb = ", len(aGroup3.GetListOfID())

- -

 

- -

salome.sg.updateObjBrowser(1) -

- -

 

- -

   

- -

Cut of two groups

- -

import SMESH_mechanic

- -

 

- -

smesh  = - SMESH_mechanic.smesh

- -

mesh   = - SMESH_mechanic.mesh

- -

salome = SMESH_mechanic.salome

- -

 

- -

# Criterion : AREA - > 20

- -

aFilter = smesh.GetFilter(smesh.FACE, - smesh.FT_Area, smesh.FT_MoreThan, 20.)

- -

 

- -

anIds = mesh.GetIdsFromFilter(aFilter)

- -

 

- -

print "Criterion: - Area > 20, Nb = ", len(anIds)

- -

 

- -

# create a group by - adding elements with area > 20

- -

aGroupMain - = mesh.MakeGroupByIds("Area > 20", smesh.FACE, anIds)

- -

 

- -

# Criterion : AREA - < 60

- -

aFilter = smesh.GetFilter(smesh.FACE, - smesh.FT_Area, smesh.FT_LessThan, 60.)

- -

 

- -

anIds = mesh.GetIdsFromFilter(aFilter)

- -

 

- -

print "Criterion: - Area < 60, Nb = ", len(anIds)

- -

 

- -

# create a group by - adding elements with area < 60

- -

aGroupTool - = mesh.MakeGroupByIds("Area < 60", smesh.FACE, anIds)

- -

 

- -

# create a cut of groups - : area >= 60

- -

aGroupRes - = mesh.CutGroups(aGroupMain, aGroupTool, "Area >= 60")

- -

print "Criterion: - Area >= 60, Nb = ", len(aGroupRes.GetListOfID())

- -

 

- -

salome.sg.updateObjBrowser(1) -

- -

 

- -

   

- - - - diff --git a/doc/salome/gui/SMESH/i_blue.jpg b/doc/salome/gui/SMESH/i_blue.jpg deleted file mode 100755 index ed3acfac2..000000000 Binary files a/doc/salome/gui/SMESH/i_blue.jpg and /dev/null differ diff --git a/doc/salome/gui/SMESH/image10.jpg b/doc/salome/gui/SMESH/image10.jpg deleted file mode 100755 index 14cea8618..000000000 Binary files a/doc/salome/gui/SMESH/image10.jpg and /dev/null differ diff --git a/doc/salome/gui/SMESH/image101.gif b/doc/salome/gui/SMESH/image101.gif deleted file mode 100755 index b761fec72..000000000 Binary files a/doc/salome/gui/SMESH/image101.gif and /dev/null differ diff --git a/doc/salome/gui/SMESH/image103.gif b/doc/salome/gui/SMESH/image103.gif deleted file mode 100755 index f3d6951da..000000000 Binary files a/doc/salome/gui/SMESH/image103.gif and /dev/null differ diff --git a/doc/salome/gui/SMESH/image105.gif b/doc/salome/gui/SMESH/image105.gif deleted file mode 100755 index 0f7454573..000000000 Binary files a/doc/salome/gui/SMESH/image105.gif and /dev/null differ diff --git a/doc/salome/gui/SMESH/image106.gif b/doc/salome/gui/SMESH/image106.gif deleted file mode 100755 index 71bda2e9a..000000000 Binary files a/doc/salome/gui/SMESH/image106.gif and /dev/null differ diff --git a/doc/salome/gui/SMESH/image108.gif b/doc/salome/gui/SMESH/image108.gif deleted file mode 100755 index 5f0ed45b4..000000000 Binary files a/doc/salome/gui/SMESH/image108.gif and /dev/null differ diff --git a/doc/salome/gui/SMESH/image119.gif b/doc/salome/gui/SMESH/image119.gif deleted file mode 100755 index 5294d844d..000000000 Binary files a/doc/salome/gui/SMESH/image119.gif and /dev/null differ diff --git a/doc/salome/gui/SMESH/image120.gif b/doc/salome/gui/SMESH/image120.gif deleted file mode 100755 index 18ddeca6d..000000000 Binary files a/doc/salome/gui/SMESH/image120.gif and /dev/null differ diff --git a/doc/salome/gui/SMESH/image121.gif b/doc/salome/gui/SMESH/image121.gif deleted file mode 100755 index 7a2ffd66c..000000000 Binary files a/doc/salome/gui/SMESH/image121.gif and /dev/null differ diff --git a/doc/salome/gui/SMESH/image122.gif b/doc/salome/gui/SMESH/image122.gif deleted file mode 100755 index 207d30b97..000000000 Binary files a/doc/salome/gui/SMESH/image122.gif and /dev/null differ diff --git a/doc/salome/gui/SMESH/image123.gif b/doc/salome/gui/SMESH/image123.gif deleted file mode 100755 index 2780e70d4..000000000 Binary files a/doc/salome/gui/SMESH/image123.gif and /dev/null differ diff --git a/doc/salome/gui/SMESH/image124.gif b/doc/salome/gui/SMESH/image124.gif deleted file mode 100755 index 98f0c40b6..000000000 Binary files a/doc/salome/gui/SMESH/image124.gif and /dev/null differ diff --git a/doc/salome/gui/SMESH/image125.gif b/doc/salome/gui/SMESH/image125.gif deleted file mode 100755 index 198351307..000000000 Binary files a/doc/salome/gui/SMESH/image125.gif and /dev/null differ diff --git a/doc/salome/gui/SMESH/image126.gif b/doc/salome/gui/SMESH/image126.gif deleted file mode 100755 index e2e695519..000000000 Binary files a/doc/salome/gui/SMESH/image126.gif and /dev/null differ diff --git a/doc/salome/gui/SMESH/image127.gif b/doc/salome/gui/SMESH/image127.gif deleted file mode 100755 index 79bccc66f..000000000 Binary files a/doc/salome/gui/SMESH/image127.gif and /dev/null differ diff --git a/doc/salome/gui/SMESH/image130.gif b/doc/salome/gui/SMESH/image130.gif deleted file mode 100755 index cc8c3a5e1..000000000 Binary files a/doc/salome/gui/SMESH/image130.gif and /dev/null differ diff --git a/doc/salome/gui/SMESH/image131.gif b/doc/salome/gui/SMESH/image131.gif deleted file mode 100755 index dc6433146..000000000 Binary files a/doc/salome/gui/SMESH/image131.gif and /dev/null differ diff --git a/doc/salome/gui/SMESH/image132.gif b/doc/salome/gui/SMESH/image132.gif deleted file mode 100755 index e7577ea7c..000000000 Binary files a/doc/salome/gui/SMESH/image132.gif and /dev/null differ diff --git a/doc/salome/gui/SMESH/image133.gif b/doc/salome/gui/SMESH/image133.gif deleted file mode 100755 index 60a4b9605..000000000 Binary files a/doc/salome/gui/SMESH/image133.gif and /dev/null differ diff --git a/doc/salome/gui/SMESH/image134.gif b/doc/salome/gui/SMESH/image134.gif deleted file mode 100755 index 60148bab7..000000000 Binary files a/doc/salome/gui/SMESH/image134.gif and /dev/null differ diff --git a/doc/salome/gui/SMESH/image135.gif b/doc/salome/gui/SMESH/image135.gif deleted file mode 100755 index 13b7b089b..000000000 Binary files a/doc/salome/gui/SMESH/image135.gif and /dev/null differ diff --git a/doc/salome/gui/SMESH/image136.gif b/doc/salome/gui/SMESH/image136.gif deleted file mode 100755 index 9b17450fc..000000000 Binary files a/doc/salome/gui/SMESH/image136.gif and /dev/null differ diff --git a/doc/salome/gui/SMESH/image137.gif b/doc/salome/gui/SMESH/image137.gif deleted file mode 100755 index 7f4cd13fe..000000000 Binary files a/doc/salome/gui/SMESH/image137.gif and /dev/null differ diff --git a/doc/salome/gui/SMESH/image142.gif b/doc/salome/gui/SMESH/image142.gif deleted file mode 100755 index 2f411e58d..000000000 Binary files a/doc/salome/gui/SMESH/image142.gif and /dev/null differ diff --git a/doc/salome/gui/SMESH/image143.gif b/doc/salome/gui/SMESH/image143.gif deleted file mode 100755 index de9df148f..000000000 Binary files a/doc/salome/gui/SMESH/image143.gif and /dev/null differ diff --git a/doc/salome/gui/SMESH/image144.gif b/doc/salome/gui/SMESH/image144.gif deleted file mode 100755 index 3dffd53ff..000000000 Binary files a/doc/salome/gui/SMESH/image144.gif and /dev/null differ diff --git a/doc/salome/gui/SMESH/image145.gif b/doc/salome/gui/SMESH/image145.gif deleted file mode 100755 index 8005557e1..000000000 Binary files a/doc/salome/gui/SMESH/image145.gif and /dev/null differ diff --git a/doc/salome/gui/SMESH/image146.gif b/doc/salome/gui/SMESH/image146.gif deleted file mode 100755 index 18f22241d..000000000 Binary files a/doc/salome/gui/SMESH/image146.gif and /dev/null differ diff --git a/doc/salome/gui/SMESH/image147.gif b/doc/salome/gui/SMESH/image147.gif deleted file mode 100755 index 7b9a354b9..000000000 Binary files a/doc/salome/gui/SMESH/image147.gif and /dev/null differ diff --git a/doc/salome/gui/SMESH/image148.gif b/doc/salome/gui/SMESH/image148.gif deleted file mode 100755 index 0ef414777..000000000 Binary files a/doc/salome/gui/SMESH/image148.gif and /dev/null differ diff --git a/doc/salome/gui/SMESH/image15.jpg b/doc/salome/gui/SMESH/image15.jpg deleted file mode 100755 index 15edee5b3..000000000 Binary files a/doc/salome/gui/SMESH/image15.jpg and /dev/null differ diff --git a/doc/salome/gui/SMESH/image151.gif b/doc/salome/gui/SMESH/image151.gif deleted file mode 100755 index 5c4a20e9a..000000000 Binary files a/doc/salome/gui/SMESH/image151.gif and /dev/null differ diff --git a/doc/salome/gui/SMESH/image152.gif b/doc/salome/gui/SMESH/image152.gif deleted file mode 100755 index 2005d3fff..000000000 Binary files a/doc/salome/gui/SMESH/image152.gif and /dev/null differ diff --git a/doc/salome/gui/SMESH/image157.gif b/doc/salome/gui/SMESH/image157.gif deleted file mode 100644 index 459215172..000000000 Binary files a/doc/salome/gui/SMESH/image157.gif and /dev/null differ diff --git a/doc/salome/gui/SMESH/image159.gif b/doc/salome/gui/SMESH/image159.gif deleted file mode 100755 index 45a024ec7..000000000 Binary files a/doc/salome/gui/SMESH/image159.gif and /dev/null differ diff --git a/doc/salome/gui/SMESH/image160.gif b/doc/salome/gui/SMESH/image160.gif deleted file mode 100755 index 6baffdb30..000000000 Binary files a/doc/salome/gui/SMESH/image160.gif and /dev/null differ diff --git a/doc/salome/gui/SMESH/image161.gif b/doc/salome/gui/SMESH/image161.gif deleted file mode 100755 index 54364d260..000000000 Binary files a/doc/salome/gui/SMESH/image161.gif and /dev/null differ diff --git a/doc/salome/gui/SMESH/image18.gif b/doc/salome/gui/SMESH/image18.gif deleted file mode 100755 index a5ae8d8fc..000000000 Binary files a/doc/salome/gui/SMESH/image18.gif and /dev/null differ diff --git a/doc/salome/gui/SMESH/image19.gif b/doc/salome/gui/SMESH/image19.gif deleted file mode 100755 index 3cf748a52..000000000 Binary files a/doc/salome/gui/SMESH/image19.gif and /dev/null differ diff --git a/doc/salome/gui/SMESH/image20.gif b/doc/salome/gui/SMESH/image20.gif deleted file mode 100755 index 5417f896b..000000000 Binary files a/doc/salome/gui/SMESH/image20.gif and /dev/null differ diff --git a/doc/salome/gui/SMESH/image22.jpg b/doc/salome/gui/SMESH/image22.jpg deleted file mode 100755 index b6a5e8db6..000000000 Binary files a/doc/salome/gui/SMESH/image22.jpg and /dev/null differ diff --git a/doc/salome/gui/SMESH/image23.jpg b/doc/salome/gui/SMESH/image23.jpg deleted file mode 100755 index 74f899b00..000000000 Binary files a/doc/salome/gui/SMESH/image23.jpg and /dev/null differ diff --git a/doc/salome/gui/SMESH/image24.gif b/doc/salome/gui/SMESH/image24.gif deleted file mode 100755 index 3d8032bf0..000000000 Binary files a/doc/salome/gui/SMESH/image24.gif and /dev/null differ diff --git a/doc/salome/gui/SMESH/image25.gif b/doc/salome/gui/SMESH/image25.gif deleted file mode 100755 index cd7c967bc..000000000 Binary files a/doc/salome/gui/SMESH/image25.gif and /dev/null differ diff --git a/doc/salome/gui/SMESH/image25.jpg b/doc/salome/gui/SMESH/image25.jpg deleted file mode 100755 index 4b2d4dfe4..000000000 Binary files a/doc/salome/gui/SMESH/image25.jpg and /dev/null differ diff --git a/doc/salome/gui/SMESH/image27.jpg b/doc/salome/gui/SMESH/image27.jpg deleted file mode 100755 index d2f32b184..000000000 Binary files a/doc/salome/gui/SMESH/image27.jpg and /dev/null differ diff --git a/doc/salome/gui/SMESH/image28.gif b/doc/salome/gui/SMESH/image28.gif deleted file mode 100755 index 21f54bf45..000000000 Binary files a/doc/salome/gui/SMESH/image28.gif and /dev/null differ diff --git a/doc/salome/gui/SMESH/image30.gif b/doc/salome/gui/SMESH/image30.gif deleted file mode 100755 index 55859c763..000000000 Binary files a/doc/salome/gui/SMESH/image30.gif and /dev/null differ diff --git a/doc/salome/gui/SMESH/image30.jpg b/doc/salome/gui/SMESH/image30.jpg deleted file mode 100755 index 997a36e35..000000000 Binary files a/doc/salome/gui/SMESH/image30.jpg and /dev/null differ diff --git a/doc/salome/gui/SMESH/image31.jpg b/doc/salome/gui/SMESH/image31.jpg deleted file mode 100755 index aa004031b..000000000 Binary files a/doc/salome/gui/SMESH/image31.jpg and /dev/null differ diff --git a/doc/salome/gui/SMESH/image32.gif b/doc/salome/gui/SMESH/image32.gif deleted file mode 100755 index a1ee2ee02..000000000 Binary files a/doc/salome/gui/SMESH/image32.gif and /dev/null differ diff --git a/doc/salome/gui/SMESH/image32.jpg b/doc/salome/gui/SMESH/image32.jpg deleted file mode 100755 index 77d595dce..000000000 Binary files a/doc/salome/gui/SMESH/image32.jpg and /dev/null differ diff --git a/doc/salome/gui/SMESH/image33.gif b/doc/salome/gui/SMESH/image33.gif deleted file mode 100755 index ecdd47b0b..000000000 Binary files a/doc/salome/gui/SMESH/image33.gif and /dev/null differ diff --git a/doc/salome/gui/SMESH/image34.gif b/doc/salome/gui/SMESH/image34.gif deleted file mode 100755 index 963095fe8..000000000 Binary files a/doc/salome/gui/SMESH/image34.gif and /dev/null differ diff --git a/doc/salome/gui/SMESH/image35.gif b/doc/salome/gui/SMESH/image35.gif deleted file mode 100755 index 0e3b30fd0..000000000 Binary files a/doc/salome/gui/SMESH/image35.gif and /dev/null differ diff --git a/doc/salome/gui/SMESH/image36.gif b/doc/salome/gui/SMESH/image36.gif deleted file mode 100755 index 7236ef8b9..000000000 Binary files a/doc/salome/gui/SMESH/image36.gif and /dev/null differ diff --git a/doc/salome/gui/SMESH/image36.jpg b/doc/salome/gui/SMESH/image36.jpg deleted file mode 100755 index 9b44dc727..000000000 Binary files a/doc/salome/gui/SMESH/image36.jpg and /dev/null differ diff --git a/doc/salome/gui/SMESH/image37.gif b/doc/salome/gui/SMESH/image37.gif deleted file mode 100755 index 43592da64..000000000 Binary files a/doc/salome/gui/SMESH/image37.gif and /dev/null differ diff --git a/doc/salome/gui/SMESH/image37.jpg b/doc/salome/gui/SMESH/image37.jpg deleted file mode 100755 index 5fba91a2f..000000000 Binary files a/doc/salome/gui/SMESH/image37.jpg and /dev/null differ diff --git a/doc/salome/gui/SMESH/image38.gif b/doc/salome/gui/SMESH/image38.gif deleted file mode 100755 index 087f6e2be..000000000 Binary files a/doc/salome/gui/SMESH/image38.gif and /dev/null differ diff --git a/doc/salome/gui/SMESH/image38.jpg b/doc/salome/gui/SMESH/image38.jpg deleted file mode 100755 index 29d5e716c..000000000 Binary files a/doc/salome/gui/SMESH/image38.jpg and /dev/null differ diff --git a/doc/salome/gui/SMESH/image39.gif b/doc/salome/gui/SMESH/image39.gif deleted file mode 100755 index b206af116..000000000 Binary files a/doc/salome/gui/SMESH/image39.gif and /dev/null differ diff --git a/doc/salome/gui/SMESH/image40.gif b/doc/salome/gui/SMESH/image40.gif deleted file mode 100755 index becc12a47..000000000 Binary files a/doc/salome/gui/SMESH/image40.gif and /dev/null differ diff --git a/doc/salome/gui/SMESH/image41.gif b/doc/salome/gui/SMESH/image41.gif deleted file mode 100755 index 2e132c239..000000000 Binary files a/doc/salome/gui/SMESH/image41.gif and /dev/null differ diff --git a/doc/salome/gui/SMESH/image46.gif b/doc/salome/gui/SMESH/image46.gif deleted file mode 100755 index 0f00ea7cf..000000000 Binary files a/doc/salome/gui/SMESH/image46.gif and /dev/null differ diff --git a/doc/salome/gui/SMESH/image49.gif b/doc/salome/gui/SMESH/image49.gif deleted file mode 100755 index d10d9c4df..000000000 Binary files a/doc/salome/gui/SMESH/image49.gif and /dev/null differ diff --git a/doc/salome/gui/SMESH/image5.jpg b/doc/salome/gui/SMESH/image5.jpg deleted file mode 100755 index f195ac88a..000000000 Binary files a/doc/salome/gui/SMESH/image5.jpg and /dev/null differ diff --git a/doc/salome/gui/SMESH/image50.gif b/doc/salome/gui/SMESH/image50.gif deleted file mode 100755 index 72d39545a..000000000 Binary files a/doc/salome/gui/SMESH/image50.gif and /dev/null differ diff --git a/doc/salome/gui/SMESH/image51.jpg b/doc/salome/gui/SMESH/image51.jpg deleted file mode 100755 index dfe3bc606..000000000 Binary files a/doc/salome/gui/SMESH/image51.jpg and /dev/null differ diff --git a/doc/salome/gui/SMESH/image52.jpg b/doc/salome/gui/SMESH/image52.jpg deleted file mode 100755 index 1c83b35f8..000000000 Binary files a/doc/salome/gui/SMESH/image52.jpg and /dev/null differ diff --git a/doc/salome/gui/SMESH/image53.gif b/doc/salome/gui/SMESH/image53.gif deleted file mode 100755 index 8f728207f..000000000 Binary files a/doc/salome/gui/SMESH/image53.gif and /dev/null differ diff --git a/doc/salome/gui/SMESH/image55.gif b/doc/salome/gui/SMESH/image55.gif deleted file mode 100755 index cc1b80e48..000000000 Binary files a/doc/salome/gui/SMESH/image55.gif and /dev/null differ diff --git a/doc/salome/gui/SMESH/image56.gif b/doc/salome/gui/SMESH/image56.gif deleted file mode 100755 index ffe1e9521..000000000 Binary files a/doc/salome/gui/SMESH/image56.gif and /dev/null differ diff --git a/doc/salome/gui/SMESH/image56.jpg b/doc/salome/gui/SMESH/image56.jpg deleted file mode 100755 index 5fba91a2f..000000000 Binary files a/doc/salome/gui/SMESH/image56.jpg and /dev/null differ diff --git a/doc/salome/gui/SMESH/image58.gif b/doc/salome/gui/SMESH/image58.gif deleted file mode 100755 index 45e28568e..000000000 Binary files a/doc/salome/gui/SMESH/image58.gif and /dev/null differ diff --git a/doc/salome/gui/SMESH/image63.gif b/doc/salome/gui/SMESH/image63.gif deleted file mode 100755 index 6a9c2c86d..000000000 Binary files a/doc/salome/gui/SMESH/image63.gif and /dev/null differ diff --git a/doc/salome/gui/SMESH/image64.gif b/doc/salome/gui/SMESH/image64.gif deleted file mode 100755 index 1d92c81f1..000000000 Binary files a/doc/salome/gui/SMESH/image64.gif and /dev/null differ diff --git a/doc/salome/gui/SMESH/image67.gif b/doc/salome/gui/SMESH/image67.gif deleted file mode 100755 index 68bd3e383..000000000 Binary files a/doc/salome/gui/SMESH/image67.gif and /dev/null differ diff --git a/doc/salome/gui/SMESH/image7.jpg b/doc/salome/gui/SMESH/image7.jpg deleted file mode 100755 index ded3ae99a..000000000 Binary files a/doc/salome/gui/SMESH/image7.jpg and /dev/null differ diff --git a/doc/salome/gui/SMESH/image70.gif b/doc/salome/gui/SMESH/image70.gif deleted file mode 100755 index 120b8e8ef..000000000 Binary files a/doc/salome/gui/SMESH/image70.gif and /dev/null differ diff --git a/doc/salome/gui/SMESH/image70.jpg b/doc/salome/gui/SMESH/image70.jpg deleted file mode 100755 index 0df360f68..000000000 Binary files a/doc/salome/gui/SMESH/image70.jpg and /dev/null differ diff --git a/doc/salome/gui/SMESH/image71.gif b/doc/salome/gui/SMESH/image71.gif deleted file mode 100755 index 0008354f6..000000000 Binary files a/doc/salome/gui/SMESH/image71.gif and /dev/null differ diff --git a/doc/salome/gui/SMESH/image71.jpg b/doc/salome/gui/SMESH/image71.jpg deleted file mode 100755 index bdb07ea6b..000000000 Binary files a/doc/salome/gui/SMESH/image71.jpg and /dev/null differ diff --git a/doc/salome/gui/SMESH/image74.gif b/doc/salome/gui/SMESH/image74.gif deleted file mode 100755 index db8a4c8cd..000000000 Binary files a/doc/salome/gui/SMESH/image74.gif and /dev/null differ diff --git a/doc/salome/gui/SMESH/image76.jpg b/doc/salome/gui/SMESH/image76.jpg deleted file mode 100755 index 88ec89ffe..000000000 Binary files a/doc/salome/gui/SMESH/image76.jpg and /dev/null differ diff --git a/doc/salome/gui/SMESH/image77.jpg b/doc/salome/gui/SMESH/image77.jpg deleted file mode 100755 index c253eacae..000000000 Binary files a/doc/salome/gui/SMESH/image77.jpg and /dev/null differ diff --git a/doc/salome/gui/SMESH/image78.jpg b/doc/salome/gui/SMESH/image78.jpg deleted file mode 100755 index 80c2a1633..000000000 Binary files a/doc/salome/gui/SMESH/image78.jpg and /dev/null differ diff --git a/doc/salome/gui/SMESH/image79.gif b/doc/salome/gui/SMESH/image79.gif deleted file mode 100755 index 9711ccbc9..000000000 Binary files a/doc/salome/gui/SMESH/image79.gif and /dev/null differ diff --git a/doc/salome/gui/SMESH/image79.jpg b/doc/salome/gui/SMESH/image79.jpg deleted file mode 100755 index 6d164167f..000000000 Binary files a/doc/salome/gui/SMESH/image79.jpg and /dev/null differ diff --git a/doc/salome/gui/SMESH/image80.gif b/doc/salome/gui/SMESH/image80.gif deleted file mode 100755 index 399af0a9a..000000000 Binary files a/doc/salome/gui/SMESH/image80.gif and /dev/null differ diff --git a/doc/salome/gui/SMESH/image82.gif b/doc/salome/gui/SMESH/image82.gif deleted file mode 100755 index 93c6c9b96..000000000 Binary files a/doc/salome/gui/SMESH/image82.gif and /dev/null differ diff --git a/doc/salome/gui/SMESH/image83.gif b/doc/salome/gui/SMESH/image83.gif deleted file mode 100755 index 331b64a10..000000000 Binary files a/doc/salome/gui/SMESH/image83.gif and /dev/null differ diff --git a/doc/salome/gui/SMESH/image84.gif b/doc/salome/gui/SMESH/image84.gif deleted file mode 100755 index ea8ec56bc..000000000 Binary files a/doc/salome/gui/SMESH/image84.gif and /dev/null differ diff --git a/doc/salome/gui/SMESH/image86.jpg b/doc/salome/gui/SMESH/image86.jpg deleted file mode 100755 index 168b43e2c..000000000 Binary files a/doc/salome/gui/SMESH/image86.jpg and /dev/null differ diff --git a/doc/salome/gui/SMESH/image88.gif b/doc/salome/gui/SMESH/image88.gif deleted file mode 100755 index b2d4b73fc..000000000 Binary files a/doc/salome/gui/SMESH/image88.gif and /dev/null differ diff --git a/doc/salome/gui/SMESH/image88.jpg b/doc/salome/gui/SMESH/image88.jpg deleted file mode 100755 index 3b2a9739c..000000000 Binary files a/doc/salome/gui/SMESH/image88.jpg and /dev/null differ diff --git a/doc/salome/gui/SMESH/image90.jpg b/doc/salome/gui/SMESH/image90.jpg deleted file mode 100755 index 4f4c301d4..000000000 Binary files a/doc/salome/gui/SMESH/image90.jpg and /dev/null differ diff --git a/doc/salome/gui/SMESH/image91.gif b/doc/salome/gui/SMESH/image91.gif deleted file mode 100755 index a09ab9e76..000000000 Binary files a/doc/salome/gui/SMESH/image91.gif and /dev/null differ diff --git a/doc/salome/gui/SMESH/image92.gif b/doc/salome/gui/SMESH/image92.gif deleted file mode 100755 index 9e0517f5d..000000000 Binary files a/doc/salome/gui/SMESH/image92.gif and /dev/null differ diff --git a/doc/salome/gui/SMESH/image92.jpg b/doc/salome/gui/SMESH/image92.jpg deleted file mode 100755 index bf6e61049..000000000 Binary files a/doc/salome/gui/SMESH/image92.jpg and /dev/null differ diff --git a/doc/salome/gui/SMESH/image93.jpg b/doc/salome/gui/SMESH/image93.jpg deleted file mode 100755 index f9780b4ba..000000000 Binary files a/doc/salome/gui/SMESH/image93.jpg and /dev/null differ diff --git a/doc/salome/gui/SMESH/image94.gif b/doc/salome/gui/SMESH/image94.gif deleted file mode 100755 index 7313f5deb..000000000 Binary files a/doc/salome/gui/SMESH/image94.gif and /dev/null differ diff --git a/doc/salome/gui/SMESH/image94.jpg b/doc/salome/gui/SMESH/image94.jpg deleted file mode 100755 index 789166734..000000000 Binary files a/doc/salome/gui/SMESH/image94.jpg and /dev/null differ diff --git a/doc/salome/gui/SMESH/image95.gif b/doc/salome/gui/SMESH/image95.gif deleted file mode 100755 index 6491f27d4..000000000 Binary files a/doc/salome/gui/SMESH/image95.gif and /dev/null differ diff --git a/doc/salome/gui/SMESH/image95.jpg b/doc/salome/gui/SMESH/image95.jpg deleted file mode 100755 index 047dccf64..000000000 Binary files a/doc/salome/gui/SMESH/image95.jpg and /dev/null differ diff --git a/doc/salome/gui/SMESH/image96.gif b/doc/salome/gui/SMESH/image96.gif deleted file mode 100755 index 1392ee705..000000000 Binary files a/doc/salome/gui/SMESH/image96.gif and /dev/null differ diff --git a/doc/salome/gui/SMESH/image96.jpg b/doc/salome/gui/SMESH/image96.jpg deleted file mode 100755 index 5f3128eb9..000000000 Binary files a/doc/salome/gui/SMESH/image96.jpg and /dev/null differ diff --git a/doc/salome/gui/SMESH/image97.gif b/doc/salome/gui/SMESH/image97.gif deleted file mode 100755 index 480b584ed..000000000 Binary files a/doc/salome/gui/SMESH/image97.gif and /dev/null differ diff --git a/doc/salome/gui/SMESH/image97.jpg b/doc/salome/gui/SMESH/image97.jpg deleted file mode 100755 index 275f2e396..000000000 Binary files a/doc/salome/gui/SMESH/image97.jpg and /dev/null differ diff --git a/doc/salome/gui/SMESH/image98.gif b/doc/salome/gui/SMESH/image98.gif deleted file mode 100755 index 5f375b774..000000000 Binary files a/doc/salome/gui/SMESH/image98.gif and /dev/null differ diff --git a/doc/salome/gui/SMESH/image99.gif b/doc/salome/gui/SMESH/image99.gif deleted file mode 100755 index 4959ed825..000000000 Binary files a/doc/salome/gui/SMESH/image99.gif and /dev/null differ diff --git a/doc/salome/gui/SMESH/images/a-arithmetic1d.png b/doc/salome/gui/SMESH/images/a-arithmetic1d.png new file mode 100755 index 000000000..d34a5e24c Binary files /dev/null and b/doc/salome/gui/SMESH/images/a-arithmetic1d.png differ diff --git a/doc/salome/gui/SMESH/images/a-averagelength.png b/doc/salome/gui/SMESH/images/a-averagelength.png new file mode 100755 index 000000000..dc007eb57 Binary files /dev/null and b/doc/salome/gui/SMESH/images/a-averagelength.png differ diff --git a/doc/salome/gui/SMESH/images/a-clipping2.png b/doc/salome/gui/SMESH/images/a-clipping2.png new file mode 100755 index 000000000..639792ca3 Binary files /dev/null and b/doc/salome/gui/SMESH/images/a-clipping2.png differ diff --git a/doc/salome/gui/SMESH/images/a-creategroup.png b/doc/salome/gui/SMESH/images/a-creategroup.png new file mode 100755 index 000000000..38ef5a856 Binary files /dev/null and b/doc/salome/gui/SMESH/images/a-creategroup.png differ diff --git a/doc/salome/gui/SMESH/images/a-createpolyhedralvolume.png b/doc/salome/gui/SMESH/images/a-createpolyhedralvolume.png new file mode 100755 index 000000000..532eac08f Binary files /dev/null and b/doc/salome/gui/SMESH/images/a-createpolyhedralvolume.png differ diff --git a/doc/salome/gui/SMESH/images/a-cuttingofquadrangles.png b/doc/salome/gui/SMESH/images/a-cuttingofquadrangles.png new file mode 100755 index 000000000..ff9ae68e1 Binary files /dev/null and b/doc/salome/gui/SMESH/images/a-cuttingofquadrangles.png differ diff --git a/doc/salome/gui/SMESH/images/a-deflection1d.png b/doc/salome/gui/SMESH/images/a-deflection1d.png new file mode 100755 index 000000000..57fd8597a Binary files /dev/null and b/doc/salome/gui/SMESH/images/a-deflection1d.png differ diff --git a/doc/salome/gui/SMESH/images/a-filteronedges.png b/doc/salome/gui/SMESH/images/a-filteronedges.png new file mode 100755 index 000000000..48b3ece01 Binary files /dev/null and b/doc/salome/gui/SMESH/images/a-filteronedges.png differ diff --git a/doc/salome/gui/SMESH/images/a-maxelarea.png b/doc/salome/gui/SMESH/images/a-maxelarea.png new file mode 100755 index 000000000..b4af4b23f Binary files /dev/null and b/doc/salome/gui/SMESH/images/a-maxelarea.png differ diff --git a/doc/salome/gui/SMESH/images/a-maxelvolume.png b/doc/salome/gui/SMESH/images/a-maxelvolume.png new file mode 100755 index 000000000..2611807fd Binary files /dev/null and b/doc/salome/gui/SMESH/images/a-maxelvolume.png differ diff --git a/doc/salome/gui/SMESH/images/a-nbsegments1.png b/doc/salome/gui/SMESH/images/a-nbsegments1.png new file mode 100755 index 000000000..35c09094d Binary files /dev/null and b/doc/salome/gui/SMESH/images/a-nbsegments1.png differ diff --git a/doc/salome/gui/SMESH/images/a-nbsegments2.png b/doc/salome/gui/SMESH/images/a-nbsegments2.png new file mode 100755 index 000000000..7f33c61ff Binary files /dev/null and b/doc/salome/gui/SMESH/images/a-nbsegments2.png differ diff --git a/doc/salome/gui/SMESH/images/a-patterntype.png b/doc/salome/gui/SMESH/images/a-patterntype.png new file mode 100755 index 000000000..3383cd75e Binary files /dev/null and b/doc/salome/gui/SMESH/images/a-patterntype.png differ diff --git a/doc/salome/gui/SMESH/images/a-patterntype1.png b/doc/salome/gui/SMESH/images/a-patterntype1.png new file mode 100755 index 000000000..38449225a Binary files /dev/null and b/doc/salome/gui/SMESH/images/a-patterntype1.png differ diff --git a/doc/salome/gui/SMESH/images/a-standmeshinfo.png b/doc/salome/gui/SMESH/images/a-standmeshinfo.png new file mode 100755 index 000000000..6b35f0a99 Binary files /dev/null and b/doc/salome/gui/SMESH/images/a-standmeshinfo.png differ diff --git a/doc/salome/gui/SMESH/images/a-startendlength.png b/doc/salome/gui/SMESH/images/a-startendlength.png new file mode 100755 index 000000000..e48f617d2 Binary files /dev/null and b/doc/salome/gui/SMESH/images/a-startendlength.png differ diff --git a/doc/salome/gui/SMESH/images/a-transparency.png b/doc/salome/gui/SMESH/images/a-transparency.png new file mode 100755 index 000000000..8e7498d58 Binary files /dev/null and b/doc/salome/gui/SMESH/images/a-transparency.png differ diff --git a/doc/salome/gui/SMESH/images/a-unionoftriangles.png b/doc/salome/gui/SMESH/images/a-unionoftriangles.png new file mode 100755 index 000000000..d9ef53c11 Binary files /dev/null and b/doc/salome/gui/SMESH/images/a-unionoftriangles.png differ diff --git a/doc/salome/gui/SMESH/images/a-viewgeneral.png b/doc/salome/gui/SMESH/images/a-viewgeneral.png new file mode 100755 index 000000000..09b7c2391 Binary files /dev/null and b/doc/salome/gui/SMESH/images/a-viewgeneral.png differ diff --git a/doc/salome/gui/SMESH/images/add.gif b/doc/salome/gui/SMESH/images/add.gif new file mode 100644 index 000000000..26350e420 Binary files /dev/null and b/doc/salome/gui/SMESH/images/add.gif differ diff --git a/doc/salome/gui/SMESH/images/add_edge.png b/doc/salome/gui/SMESH/images/add_edge.png new file mode 100755 index 000000000..8a532e1d9 Binary files /dev/null and b/doc/salome/gui/SMESH/images/add_edge.png differ diff --git a/doc/salome/gui/SMESH/images/add_node.png b/doc/salome/gui/SMESH/images/add_node.png new file mode 100755 index 000000000..cb50bf6e6 Binary files /dev/null and b/doc/salome/gui/SMESH/images/add_node.png differ diff --git a/doc/salome/gui/SMESH/images/add_polygone.png b/doc/salome/gui/SMESH/images/add_polygone.png new file mode 100755 index 000000000..a76baceae Binary files /dev/null and b/doc/salome/gui/SMESH/images/add_polygone.png differ diff --git a/doc/salome/gui/SMESH/images/add_polyhedron.png b/doc/salome/gui/SMESH/images/add_polyhedron.png new file mode 100755 index 000000000..2e23634c9 Binary files /dev/null and b/doc/salome/gui/SMESH/images/add_polyhedron.png differ diff --git a/doc/salome/gui/SMESH/images/add_quadrangle.png b/doc/salome/gui/SMESH/images/add_quadrangle.png new file mode 100755 index 000000000..f25b94d9f Binary files /dev/null and b/doc/salome/gui/SMESH/images/add_quadrangle.png differ diff --git a/doc/salome/gui/SMESH/images/add_triangle.png b/doc/salome/gui/SMESH/images/add_triangle.png new file mode 100755 index 000000000..41c335929 Binary files /dev/null and b/doc/salome/gui/SMESH/images/add_triangle.png differ diff --git a/doc/salome/gui/SMESH/images/addedge.png b/doc/salome/gui/SMESH/images/addedge.png new file mode 100755 index 000000000..c9eeaf970 Binary files /dev/null and b/doc/salome/gui/SMESH/images/addedge.png differ diff --git a/doc/salome/gui/SMESH/images/addhexahedron.png b/doc/salome/gui/SMESH/images/addhexahedron.png new file mode 100755 index 000000000..fd2ef245a Binary files /dev/null and b/doc/salome/gui/SMESH/images/addhexahedron.png differ diff --git a/doc/salome/gui/SMESH/images/addnode.png b/doc/salome/gui/SMESH/images/addnode.png new file mode 100755 index 000000000..167a966b8 Binary files /dev/null and b/doc/salome/gui/SMESH/images/addnode.png differ diff --git a/doc/salome/gui/SMESH/images/addpolygon.png b/doc/salome/gui/SMESH/images/addpolygon.png new file mode 100755 index 000000000..785a62341 Binary files /dev/null and b/doc/salome/gui/SMESH/images/addpolygon.png differ diff --git a/doc/salome/gui/SMESH/images/addquadrangle.png b/doc/salome/gui/SMESH/images/addquadrangle.png new file mode 100755 index 000000000..2bbddf158 Binary files /dev/null and b/doc/salome/gui/SMESH/images/addquadrangle.png differ diff --git a/doc/salome/gui/SMESH/images/addtetrahedron.png b/doc/salome/gui/SMESH/images/addtetrahedron.png new file mode 100755 index 000000000..0a415707a Binary files /dev/null and b/doc/salome/gui/SMESH/images/addtetrahedron.png differ diff --git a/doc/salome/gui/SMESH/images/addtriangle.png b/doc/salome/gui/SMESH/images/addtriangle.png new file mode 100755 index 000000000..405d6f57f Binary files /dev/null and b/doc/salome/gui/SMESH/images/addtriangle.png differ diff --git a/doc/salome/gui/SMESH/images/advanced_mesh_infos.png b/doc/salome/gui/SMESH/images/advanced_mesh_infos.png new file mode 100755 index 000000000..f8341e892 Binary files /dev/null and b/doc/salome/gui/SMESH/images/advanced_mesh_infos.png differ diff --git a/doc/salome/gui/SMESH/images/aqt.png b/doc/salome/gui/SMESH/images/aqt.png new file mode 100755 index 000000000..32e36bd0e Binary files /dev/null and b/doc/salome/gui/SMESH/images/aqt.png differ diff --git a/doc/salome/gui/SMESH/images/automaticlength.png b/doc/salome/gui/SMESH/images/automaticlength.png new file mode 100755 index 000000000..d96ffc82d Binary files /dev/null and b/doc/salome/gui/SMESH/images/automaticlength.png differ diff --git a/doc/salome/gui/SMESH/images/b-art_end_length.png b/doc/salome/gui/SMESH/images/b-art_end_length.png new file mode 100755 index 000000000..26da5fa73 Binary files /dev/null and b/doc/salome/gui/SMESH/images/b-art_end_length.png differ diff --git a/doc/salome/gui/SMESH/images/b-erage_length.png b/doc/salome/gui/SMESH/images/b-erage_length.png new file mode 100755 index 000000000..f64077c90 Binary files /dev/null and b/doc/salome/gui/SMESH/images/b-erage_length.png differ diff --git a/doc/salome/gui/SMESH/images/b-flection1d.png b/doc/salome/gui/SMESH/images/b-flection1d.png new file mode 100755 index 000000000..e160cf55d Binary files /dev/null and b/doc/salome/gui/SMESH/images/b-flection1d.png differ diff --git a/doc/salome/gui/SMESH/images/b-ithmetic1d.png b/doc/salome/gui/SMESH/images/b-ithmetic1d.png new file mode 100755 index 000000000..72f76b951 Binary files /dev/null and b/doc/salome/gui/SMESH/images/b-ithmetic1d.png differ diff --git a/doc/salome/gui/SMESH/images/b-mberofsegments.png b/doc/salome/gui/SMESH/images/b-mberofsegments.png new file mode 100755 index 000000000..27f68685e Binary files /dev/null and b/doc/salome/gui/SMESH/images/b-mberofsegments.png differ diff --git a/doc/salome/gui/SMESH/images/b-mesh_infos.png b/doc/salome/gui/SMESH/images/b-mesh_infos.png new file mode 100755 index 000000000..6abd3c184 Binary files /dev/null and b/doc/salome/gui/SMESH/images/b-mesh_infos.png differ diff --git a/doc/salome/gui/SMESH/images/buildcompound.png b/doc/salome/gui/SMESH/images/buildcompound.png new file mode 100755 index 000000000..79a6073f2 Binary files /dev/null and b/doc/salome/gui/SMESH/images/buildcompound.png differ diff --git a/doc/salome/gui/SMESH/images/circle_angles_after.png b/doc/salome/gui/SMESH/images/circle_angles_after.png new file mode 100644 index 000000000..f4c606bde Binary files /dev/null and b/doc/salome/gui/SMESH/images/circle_angles_after.png differ diff --git a/doc/salome/gui/SMESH/images/circle_simple_after.png b/doc/salome/gui/SMESH/images/circle_simple_after.png new file mode 100644 index 000000000..99f65b558 Binary files /dev/null and b/doc/salome/gui/SMESH/images/circle_simple_after.png differ diff --git a/doc/salome/gui/SMESH/images/circle_simple_before.png b/doc/salome/gui/SMESH/images/circle_simple_before.png new file mode 100644 index 000000000..95b90373f Binary files /dev/null and b/doc/salome/gui/SMESH/images/circle_simple_before.png differ diff --git a/doc/salome/gui/SMESH/images/convert.png b/doc/salome/gui/SMESH/images/convert.png new file mode 100644 index 000000000..5c0e64a05 Binary files /dev/null and b/doc/salome/gui/SMESH/images/convert.png differ diff --git a/doc/salome/gui/SMESH/images/create_group.png b/doc/salome/gui/SMESH/images/create_group.png new file mode 100755 index 000000000..6fc2367b3 Binary files /dev/null and b/doc/salome/gui/SMESH/images/create_group.png differ diff --git a/doc/salome/gui/SMESH/images/creategroup.png b/doc/salome/gui/SMESH/images/creategroup.png new file mode 100755 index 000000000..207e2099e Binary files /dev/null and b/doc/salome/gui/SMESH/images/creategroup.png differ diff --git a/doc/salome/gui/SMESH/images/createmesh-inv.png b/doc/salome/gui/SMESH/images/createmesh-inv.png new file mode 100755 index 000000000..8273aac45 Binary files /dev/null and b/doc/salome/gui/SMESH/images/createmesh-inv.png differ diff --git a/doc/salome/gui/SMESH/images/createmesh-inv2.png b/doc/salome/gui/SMESH/images/createmesh-inv2.png new file mode 100755 index 000000000..2bee11b7c Binary files /dev/null and b/doc/salome/gui/SMESH/images/createmesh-inv2.png differ diff --git a/doc/salome/gui/SMESH/images/createmesh-inv3.png b/doc/salome/gui/SMESH/images/createmesh-inv3.png new file mode 100755 index 000000000..6dfabaaa8 Binary files /dev/null and b/doc/salome/gui/SMESH/images/createmesh-inv3.png differ diff --git a/doc/salome/gui/SMESH/images/curvi_angles_after.png b/doc/salome/gui/SMESH/images/curvi_angles_after.png new file mode 100644 index 000000000..9d06262b0 Binary files /dev/null and b/doc/salome/gui/SMESH/images/curvi_angles_after.png differ diff --git a/doc/salome/gui/SMESH/images/curvi_simple_after.png b/doc/salome/gui/SMESH/images/curvi_simple_after.png new file mode 100644 index 000000000..ae1d98fdf Binary files /dev/null and b/doc/salome/gui/SMESH/images/curvi_simple_after.png differ diff --git a/doc/salome/gui/SMESH/images/curvi_simple_before.png b/doc/salome/gui/SMESH/images/curvi_simple_before.png new file mode 100644 index 000000000..a0bbf73bd Binary files /dev/null and b/doc/salome/gui/SMESH/images/curvi_simple_before.png differ diff --git a/doc/salome/gui/SMESH/images/cut_groups1.png b/doc/salome/gui/SMESH/images/cut_groups1.png new file mode 100755 index 000000000..f066a5541 Binary files /dev/null and b/doc/salome/gui/SMESH/images/cut_groups1.png differ diff --git a/doc/salome/gui/SMESH/images/cut_groups2.png b/doc/salome/gui/SMESH/images/cut_groups2.png new file mode 100755 index 000000000..3ec7a93d1 Binary files /dev/null and b/doc/salome/gui/SMESH/images/cut_groups2.png differ diff --git a/doc/salome/gui/SMESH/images/cut_groups3.png b/doc/salome/gui/SMESH/images/cut_groups3.png new file mode 100755 index 000000000..1c5ebed80 Binary files /dev/null and b/doc/salome/gui/SMESH/images/cut_groups3.png differ diff --git a/doc/salome/gui/SMESH/images/cutgroups.png b/doc/salome/gui/SMESH/images/cutgroups.png new file mode 100755 index 000000000..87e6da88b Binary files /dev/null and b/doc/salome/gui/SMESH/images/cutgroups.png differ diff --git a/doc/salome/gui/SMESH/images/deletegroups.png b/doc/salome/gui/SMESH/images/deletegroups.png new file mode 100755 index 000000000..383a79aa8 Binary files /dev/null and b/doc/salome/gui/SMESH/images/deletegroups.png differ diff --git a/doc/salome/gui/SMESH/images/diagonalinversion.png b/doc/salome/gui/SMESH/images/diagonalinversion.png new file mode 100755 index 000000000..967e7a12e Binary files /dev/null and b/doc/salome/gui/SMESH/images/diagonalinversion.png differ diff --git a/doc/salome/gui/SMESH/images/distribution_of_layers.png b/doc/salome/gui/SMESH/images/distribution_of_layers.png new file mode 100644 index 000000000..3d01d66f4 Binary files /dev/null and b/doc/salome/gui/SMESH/images/distribution_of_layers.png differ diff --git a/doc/salome/gui/SMESH/images/distributionwithanalyticdensity.png b/doc/salome/gui/SMESH/images/distributionwithanalyticdensity.png new file mode 100755 index 000000000..87ebc5ffe Binary files /dev/null and b/doc/salome/gui/SMESH/images/distributionwithanalyticdensity.png differ diff --git a/doc/salome/gui/SMESH/images/distributionwithtabledensity.png b/doc/salome/gui/SMESH/images/distributionwithtabledensity.png new file mode 100755 index 000000000..9ea6cab98 Binary files /dev/null and b/doc/salome/gui/SMESH/images/distributionwithtabledensity.png differ diff --git a/doc/salome/gui/SMESH/images/edge_wire_3d_after.png b/doc/salome/gui/SMESH/images/edge_wire_3d_after.png new file mode 100644 index 000000000..3fab59803 Binary files /dev/null and b/doc/salome/gui/SMESH/images/edge_wire_3d_after.png differ diff --git a/doc/salome/gui/SMESH/images/edge_wire_3d_before.png b/doc/salome/gui/SMESH/images/edge_wire_3d_before.png new file mode 100644 index 000000000..28f986830 Binary files /dev/null and b/doc/salome/gui/SMESH/images/edge_wire_3d_before.png differ diff --git a/doc/salome/gui/SMESH/images/edge_wire_after.png b/doc/salome/gui/SMESH/images/edge_wire_after.png new file mode 100644 index 000000000..408480ecd Binary files /dev/null and b/doc/salome/gui/SMESH/images/edge_wire_after.png differ diff --git a/doc/salome/gui/SMESH/images/edge_wire_before.png b/doc/salome/gui/SMESH/images/edge_wire_before.png new file mode 100644 index 000000000..186528ec7 Binary files /dev/null and b/doc/salome/gui/SMESH/images/edge_wire_before.png differ diff --git a/doc/salome/gui/SMESH/images/edit_mesh1.png b/doc/salome/gui/SMESH/images/edit_mesh1.png new file mode 100755 index 000000000..4369e51b4 Binary files /dev/null and b/doc/salome/gui/SMESH/images/edit_mesh1.png differ diff --git a/doc/salome/gui/SMESH/images/edit_mesh_change_value_hyp.png b/doc/salome/gui/SMESH/images/edit_mesh_change_value_hyp.png new file mode 100755 index 000000000..7dee01f7d Binary files /dev/null and b/doc/salome/gui/SMESH/images/edit_mesh_change_value_hyp.png differ diff --git a/doc/salome/gui/SMESH/images/edit_mesh_remove_hyp.png b/doc/salome/gui/SMESH/images/edit_mesh_remove_hyp.png new file mode 100755 index 000000000..0a45639aa Binary files /dev/null and b/doc/salome/gui/SMESH/images/edit_mesh_remove_hyp.png differ diff --git a/doc/salome/gui/SMESH/images/editgroup.png b/doc/salome/gui/SMESH/images/editgroup.png new file mode 100755 index 000000000..c0a50f36f Binary files /dev/null and b/doc/salome/gui/SMESH/images/editgroup.png differ diff --git a/doc/salome/gui/SMESH/images/editing_groups1.png b/doc/salome/gui/SMESH/images/editing_groups1.png new file mode 100755 index 000000000..beb946ab7 Binary files /dev/null and b/doc/salome/gui/SMESH/images/editing_groups1.png differ diff --git a/doc/salome/gui/SMESH/images/editing_groups2.png b/doc/salome/gui/SMESH/images/editing_groups2.png new file mode 100755 index 000000000..7cff1819c Binary files /dev/null and b/doc/salome/gui/SMESH/images/editing_groups2.png differ diff --git a/doc/salome/gui/SMESH/images/extrusion1.png b/doc/salome/gui/SMESH/images/extrusion1.png new file mode 100644 index 000000000..b7b155931 Binary files /dev/null and b/doc/salome/gui/SMESH/images/extrusion1.png differ diff --git a/doc/salome/gui/SMESH/images/extrusionalongaline1.png b/doc/salome/gui/SMESH/images/extrusionalongaline1.png new file mode 100755 index 000000000..86b2cba30 Binary files /dev/null and b/doc/salome/gui/SMESH/images/extrusionalongaline1.png differ diff --git a/doc/salome/gui/SMESH/images/extrusionalongaline2.png b/doc/salome/gui/SMESH/images/extrusionalongaline2.png new file mode 100755 index 000000000..b039cfce5 Binary files /dev/null and b/doc/salome/gui/SMESH/images/extrusionalongaline2.png differ diff --git a/doc/salome/gui/SMESH/images/failed_computation.png b/doc/salome/gui/SMESH/images/failed_computation.png new file mode 100644 index 000000000..e44a538f2 Binary files /dev/null and b/doc/salome/gui/SMESH/images/failed_computation.png differ diff --git a/doc/salome/gui/SMESH/images/formula1.png b/doc/salome/gui/SMESH/images/formula1.png new file mode 100644 index 000000000..2f8d2f518 Binary files /dev/null and b/doc/salome/gui/SMESH/images/formula1.png differ diff --git a/doc/salome/gui/SMESH/images/formula2.png b/doc/salome/gui/SMESH/images/formula2.png new file mode 100644 index 000000000..ff189aa8e Binary files /dev/null and b/doc/salome/gui/SMESH/images/formula2.png differ diff --git a/doc/salome/gui/SMESH/images/formula3.png b/doc/salome/gui/SMESH/images/formula3.png new file mode 100644 index 000000000..787b584ff Binary files /dev/null and b/doc/salome/gui/SMESH/images/formula3.png differ diff --git a/doc/salome/gui/SMESH/images/formula4.png b/doc/salome/gui/SMESH/images/formula4.png new file mode 100644 index 000000000..170f25558 Binary files /dev/null and b/doc/salome/gui/SMESH/images/formula4.png differ diff --git a/doc/salome/gui/SMESH/images/free_borders1.png b/doc/salome/gui/SMESH/images/free_borders1.png new file mode 100755 index 000000000..6e73c9329 Binary files /dev/null and b/doc/salome/gui/SMESH/images/free_borders1.png differ diff --git a/doc/salome/gui/SMESH/images/free_edges.png b/doc/salome/gui/SMESH/images/free_edges.png new file mode 100755 index 000000000..6f1100c87 Binary files /dev/null and b/doc/salome/gui/SMESH/images/free_edges.png differ diff --git a/doc/salome/gui/SMESH/images/image10.jpg b/doc/salome/gui/SMESH/images/image10.jpg new file mode 100755 index 000000000..5a15643bb Binary files /dev/null and b/doc/salome/gui/SMESH/images/image10.jpg differ diff --git a/doc/salome/gui/SMESH/images/image101.gif b/doc/salome/gui/SMESH/images/image101.gif new file mode 100755 index 000000000..b761fec72 Binary files /dev/null and b/doc/salome/gui/SMESH/images/image101.gif differ diff --git a/doc/salome/gui/SMESH/images/image105.gif b/doc/salome/gui/SMESH/images/image105.gif new file mode 100755 index 000000000..0f7454573 Binary files /dev/null and b/doc/salome/gui/SMESH/images/image105.gif differ diff --git a/doc/salome/gui/SMESH/images/image106.gif b/doc/salome/gui/SMESH/images/image106.gif new file mode 100755 index 000000000..71bda2e9a Binary files /dev/null and b/doc/salome/gui/SMESH/images/image106.gif differ diff --git a/doc/salome/gui/SMESH/images/image120.gif b/doc/salome/gui/SMESH/images/image120.gif new file mode 100755 index 000000000..18ddeca6d Binary files /dev/null and b/doc/salome/gui/SMESH/images/image120.gif differ diff --git a/doc/salome/gui/SMESH/images/image121.gif b/doc/salome/gui/SMESH/images/image121.gif new file mode 100755 index 000000000..7a2ffd66c Binary files /dev/null and b/doc/salome/gui/SMESH/images/image121.gif differ diff --git a/doc/salome/gui/SMESH/images/image122.gif b/doc/salome/gui/SMESH/images/image122.gif new file mode 100755 index 000000000..207d30b97 Binary files /dev/null and b/doc/salome/gui/SMESH/images/image122.gif differ diff --git a/doc/salome/gui/SMESH/images/image123.gif b/doc/salome/gui/SMESH/images/image123.gif new file mode 100755 index 000000000..2780e70d4 Binary files /dev/null and b/doc/salome/gui/SMESH/images/image123.gif differ diff --git a/doc/salome/gui/SMESH/images/image124.gif b/doc/salome/gui/SMESH/images/image124.gif new file mode 100755 index 000000000..98f0c40b6 Binary files /dev/null and b/doc/salome/gui/SMESH/images/image124.gif differ diff --git a/doc/salome/gui/SMESH/images/image125.gif b/doc/salome/gui/SMESH/images/image125.gif new file mode 100755 index 000000000..198351307 Binary files /dev/null and b/doc/salome/gui/SMESH/images/image125.gif differ diff --git a/doc/salome/gui/SMESH/images/image126.gif b/doc/salome/gui/SMESH/images/image126.gif new file mode 100755 index 000000000..e2e695519 Binary files /dev/null and b/doc/salome/gui/SMESH/images/image126.gif differ diff --git a/doc/salome/gui/SMESH/images/image127.gif b/doc/salome/gui/SMESH/images/image127.gif new file mode 100755 index 000000000..79bccc66f Binary files /dev/null and b/doc/salome/gui/SMESH/images/image127.gif differ diff --git a/doc/salome/gui/SMESH/images/image130.gif b/doc/salome/gui/SMESH/images/image130.gif new file mode 100755 index 000000000..cc8c3a5e1 Binary files /dev/null and b/doc/salome/gui/SMESH/images/image130.gif differ diff --git a/doc/salome/gui/SMESH/images/image131.gif b/doc/salome/gui/SMESH/images/image131.gif new file mode 100755 index 000000000..8ca3453fd Binary files /dev/null and b/doc/salome/gui/SMESH/images/image131.gif differ diff --git a/doc/salome/gui/SMESH/images/image132.gif b/doc/salome/gui/SMESH/images/image132.gif new file mode 100755 index 000000000..e7577ea7c Binary files /dev/null and b/doc/salome/gui/SMESH/images/image132.gif differ diff --git a/doc/salome/gui/SMESH/images/image133.gif b/doc/salome/gui/SMESH/images/image133.gif new file mode 100755 index 000000000..60a4b9605 Binary files /dev/null and b/doc/salome/gui/SMESH/images/image133.gif differ diff --git a/doc/salome/gui/SMESH/images/image134.gif b/doc/salome/gui/SMESH/images/image134.gif new file mode 100755 index 000000000..60148bab7 Binary files /dev/null and b/doc/salome/gui/SMESH/images/image134.gif differ diff --git a/doc/salome/gui/SMESH/images/image135.gif b/doc/salome/gui/SMESH/images/image135.gif new file mode 100755 index 000000000..13b7b089b Binary files /dev/null and b/doc/salome/gui/SMESH/images/image135.gif differ diff --git a/doc/salome/gui/SMESH/images/image136.gif b/doc/salome/gui/SMESH/images/image136.gif new file mode 100755 index 000000000..9b17450fc Binary files /dev/null and b/doc/salome/gui/SMESH/images/image136.gif differ diff --git a/doc/salome/gui/SMESH/images/image137.gif b/doc/salome/gui/SMESH/images/image137.gif new file mode 100755 index 000000000..7f4cd13fe Binary files /dev/null and b/doc/salome/gui/SMESH/images/image137.gif differ diff --git a/doc/salome/gui/SMESH/images/image138.gif b/doc/salome/gui/SMESH/images/image138.gif new file mode 100644 index 000000000..1659aab9f Binary files /dev/null and b/doc/salome/gui/SMESH/images/image138.gif differ diff --git a/doc/salome/gui/SMESH/images/image143.gif b/doc/salome/gui/SMESH/images/image143.gif new file mode 100755 index 000000000..de9df148f Binary files /dev/null and b/doc/salome/gui/SMESH/images/image143.gif differ diff --git a/doc/salome/gui/SMESH/images/image144.gif b/doc/salome/gui/SMESH/images/image144.gif new file mode 100644 index 000000000..3dffd53ff Binary files /dev/null and b/doc/salome/gui/SMESH/images/image144.gif differ diff --git a/doc/salome/gui/SMESH/images/image145.gif b/doc/salome/gui/SMESH/images/image145.gif new file mode 100755 index 000000000..8005557e1 Binary files /dev/null and b/doc/salome/gui/SMESH/images/image145.gif differ diff --git a/doc/salome/gui/SMESH/images/image146.gif b/doc/salome/gui/SMESH/images/image146.gif new file mode 100755 index 000000000..18f22241d Binary files /dev/null and b/doc/salome/gui/SMESH/images/image146.gif differ diff --git a/doc/salome/gui/SMESH/images/image147.gif b/doc/salome/gui/SMESH/images/image147.gif new file mode 100755 index 000000000..7b9a354b9 Binary files /dev/null and b/doc/salome/gui/SMESH/images/image147.gif differ diff --git a/doc/salome/gui/SMESH/images/image148.gif b/doc/salome/gui/SMESH/images/image148.gif new file mode 100755 index 000000000..0ef414777 Binary files /dev/null and b/doc/salome/gui/SMESH/images/image148.gif differ diff --git a/doc/salome/gui/SMESH/images/image15.jpg b/doc/salome/gui/SMESH/images/image15.jpg new file mode 100755 index 000000000..15edee5b3 Binary files /dev/null and b/doc/salome/gui/SMESH/images/image15.jpg differ diff --git a/doc/salome/gui/SMESH/images/image151.gif b/doc/salome/gui/SMESH/images/image151.gif new file mode 100755 index 000000000..5c4a20e9a Binary files /dev/null and b/doc/salome/gui/SMESH/images/image151.gif differ diff --git a/doc/salome/gui/SMESH/images/image152.gif b/doc/salome/gui/SMESH/images/image152.gif new file mode 100755 index 000000000..2005d3fff Binary files /dev/null and b/doc/salome/gui/SMESH/images/image152.gif differ diff --git a/doc/salome/gui/SMESH/images/image154.gif b/doc/salome/gui/SMESH/images/image154.gif new file mode 100644 index 000000000..2d527fbbb Binary files /dev/null and b/doc/salome/gui/SMESH/images/image154.gif differ diff --git a/doc/salome/gui/SMESH/images/image155.gif b/doc/salome/gui/SMESH/images/image155.gif new file mode 100644 index 000000000..fe03093b8 Binary files /dev/null and b/doc/salome/gui/SMESH/images/image155.gif differ diff --git a/doc/salome/gui/SMESH/images/image156.gif b/doc/salome/gui/SMESH/images/image156.gif new file mode 100644 index 000000000..36b37c8d1 Binary files /dev/null and b/doc/salome/gui/SMESH/images/image156.gif differ diff --git a/doc/salome/gui/SMESH/images/image157.gif b/doc/salome/gui/SMESH/images/image157.gif new file mode 100644 index 000000000..459215172 Binary files /dev/null and b/doc/salome/gui/SMESH/images/image157.gif differ diff --git a/doc/salome/gui/SMESH/images/image160.gif b/doc/salome/gui/SMESH/images/image160.gif new file mode 100755 index 000000000..6baffdb30 Binary files /dev/null and b/doc/salome/gui/SMESH/images/image160.gif differ diff --git a/doc/salome/gui/SMESH/images/image161.gif b/doc/salome/gui/SMESH/images/image161.gif new file mode 100755 index 000000000..54364d260 Binary files /dev/null and b/doc/salome/gui/SMESH/images/image161.gif differ diff --git a/doc/salome/gui/SMESH/images/image22.jpg b/doc/salome/gui/SMESH/images/image22.jpg new file mode 100755 index 000000000..b6a5e8db6 Binary files /dev/null and b/doc/salome/gui/SMESH/images/image22.jpg differ diff --git a/doc/salome/gui/SMESH/images/image23.jpg b/doc/salome/gui/SMESH/images/image23.jpg new file mode 100755 index 000000000..74f899b00 Binary files /dev/null and b/doc/salome/gui/SMESH/images/image23.jpg differ diff --git a/doc/salome/gui/SMESH/images/image24.gif b/doc/salome/gui/SMESH/images/image24.gif new file mode 100755 index 000000000..3d8032bf0 Binary files /dev/null and b/doc/salome/gui/SMESH/images/image24.gif differ diff --git a/doc/salome/gui/SMESH/images/image25.gif b/doc/salome/gui/SMESH/images/image25.gif new file mode 100755 index 000000000..cd7c967bc Binary files /dev/null and b/doc/salome/gui/SMESH/images/image25.gif differ diff --git a/doc/salome/gui/SMESH/images/image25.jpg b/doc/salome/gui/SMESH/images/image25.jpg new file mode 100755 index 000000000..4b2d4dfe4 Binary files /dev/null and b/doc/salome/gui/SMESH/images/image25.jpg differ diff --git a/doc/salome/gui/SMESH/images/image27.jpg b/doc/salome/gui/SMESH/images/image27.jpg new file mode 100755 index 000000000..d2f32b184 Binary files /dev/null and b/doc/salome/gui/SMESH/images/image27.jpg differ diff --git a/doc/salome/gui/SMESH/images/image28.gif b/doc/salome/gui/SMESH/images/image28.gif new file mode 100755 index 000000000..21f54bf45 Binary files /dev/null and b/doc/salome/gui/SMESH/images/image28.gif differ diff --git a/doc/salome/gui/SMESH/images/image30.jpg b/doc/salome/gui/SMESH/images/image30.jpg new file mode 100755 index 000000000..997a36e35 Binary files /dev/null and b/doc/salome/gui/SMESH/images/image30.jpg differ diff --git a/doc/salome/gui/SMESH/images/image31.jpg b/doc/salome/gui/SMESH/images/image31.jpg new file mode 100755 index 000000000..aa004031b Binary files /dev/null and b/doc/salome/gui/SMESH/images/image31.jpg differ diff --git a/doc/salome/gui/SMESH/images/image32.gif b/doc/salome/gui/SMESH/images/image32.gif new file mode 100755 index 000000000..a1ee2ee02 Binary files /dev/null and b/doc/salome/gui/SMESH/images/image32.gif differ diff --git a/doc/salome/gui/SMESH/images/image32.jpg b/doc/salome/gui/SMESH/images/image32.jpg new file mode 100755 index 000000000..77d595dce Binary files /dev/null and b/doc/salome/gui/SMESH/images/image32.jpg differ diff --git a/doc/salome/gui/SMESH/images/image33.gif b/doc/salome/gui/SMESH/images/image33.gif new file mode 100755 index 000000000..ecdd47b0b Binary files /dev/null and b/doc/salome/gui/SMESH/images/image33.gif differ diff --git a/doc/salome/gui/SMESH/images/image34.gif b/doc/salome/gui/SMESH/images/image34.gif new file mode 100755 index 000000000..963095fe8 Binary files /dev/null and b/doc/salome/gui/SMESH/images/image34.gif differ diff --git a/doc/salome/gui/SMESH/images/image35.gif b/doc/salome/gui/SMESH/images/image35.gif new file mode 100755 index 000000000..0e3b30fd0 Binary files /dev/null and b/doc/salome/gui/SMESH/images/image35.gif differ diff --git a/doc/salome/gui/SMESH/images/image36.gif b/doc/salome/gui/SMESH/images/image36.gif new file mode 100755 index 000000000..7236ef8b9 Binary files /dev/null and b/doc/salome/gui/SMESH/images/image36.gif differ diff --git a/doc/salome/gui/SMESH/images/image36.jpg b/doc/salome/gui/SMESH/images/image36.jpg new file mode 100755 index 000000000..9b44dc727 Binary files /dev/null and b/doc/salome/gui/SMESH/images/image36.jpg differ diff --git a/doc/salome/gui/SMESH/images/image37.gif b/doc/salome/gui/SMESH/images/image37.gif new file mode 100644 index 000000000..edd5263d8 Binary files /dev/null and b/doc/salome/gui/SMESH/images/image37.gif differ diff --git a/doc/salome/gui/SMESH/images/image37.jpg b/doc/salome/gui/SMESH/images/image37.jpg new file mode 100755 index 000000000..5fba91a2f Binary files /dev/null and b/doc/salome/gui/SMESH/images/image37.jpg differ diff --git a/doc/salome/gui/SMESH/images/image38.gif b/doc/salome/gui/SMESH/images/image38.gif new file mode 100755 index 000000000..087f6e2be Binary files /dev/null and b/doc/salome/gui/SMESH/images/image38.gif differ diff --git a/doc/salome/gui/SMESH/images/image38.jpg b/doc/salome/gui/SMESH/images/image38.jpg new file mode 100755 index 000000000..29d5e716c Binary files /dev/null and b/doc/salome/gui/SMESH/images/image38.jpg differ diff --git a/doc/salome/gui/SMESH/images/image39.gif b/doc/salome/gui/SMESH/images/image39.gif new file mode 100755 index 000000000..b206af116 Binary files /dev/null and b/doc/salome/gui/SMESH/images/image39.gif differ diff --git a/doc/salome/gui/SMESH/images/image40.gif b/doc/salome/gui/SMESH/images/image40.gif new file mode 100755 index 000000000..becc12a47 Binary files /dev/null and b/doc/salome/gui/SMESH/images/image40.gif differ diff --git a/doc/salome/gui/SMESH/images/image41.gif b/doc/salome/gui/SMESH/images/image41.gif new file mode 100755 index 000000000..2e132c239 Binary files /dev/null and b/doc/salome/gui/SMESH/images/image41.gif differ diff --git a/doc/salome/gui/SMESH/images/image46.gif b/doc/salome/gui/SMESH/images/image46.gif new file mode 100755 index 000000000..0f00ea7cf Binary files /dev/null and b/doc/salome/gui/SMESH/images/image46.gif differ diff --git a/doc/salome/gui/SMESH/images/image49.gif b/doc/salome/gui/SMESH/images/image49.gif new file mode 100755 index 000000000..d10d9c4df Binary files /dev/null and b/doc/salome/gui/SMESH/images/image49.gif differ diff --git a/doc/salome/gui/SMESH/images/image5.jpg b/doc/salome/gui/SMESH/images/image5.jpg new file mode 100755 index 000000000..f195ac88a Binary files /dev/null and b/doc/salome/gui/SMESH/images/image5.jpg differ diff --git a/doc/salome/gui/SMESH/images/image50.gif b/doc/salome/gui/SMESH/images/image50.gif new file mode 100755 index 000000000..72d39545a Binary files /dev/null and b/doc/salome/gui/SMESH/images/image50.gif differ diff --git a/doc/salome/gui/SMESH/images/image51.jpg b/doc/salome/gui/SMESH/images/image51.jpg new file mode 100755 index 000000000..dfe3bc606 Binary files /dev/null and b/doc/salome/gui/SMESH/images/image51.jpg differ diff --git a/doc/salome/gui/SMESH/images/image52.jpg b/doc/salome/gui/SMESH/images/image52.jpg new file mode 100755 index 000000000..1c83b35f8 Binary files /dev/null and b/doc/salome/gui/SMESH/images/image52.jpg differ diff --git a/doc/salome/gui/SMESH/images/image53.gif b/doc/salome/gui/SMESH/images/image53.gif new file mode 100755 index 000000000..8f728207f Binary files /dev/null and b/doc/salome/gui/SMESH/images/image53.gif differ diff --git a/doc/salome/gui/SMESH/images/image55.gif b/doc/salome/gui/SMESH/images/image55.gif new file mode 100755 index 000000000..cc1b80e48 Binary files /dev/null and b/doc/salome/gui/SMESH/images/image55.gif differ diff --git a/doc/salome/gui/SMESH/images/image56.gif b/doc/salome/gui/SMESH/images/image56.gif new file mode 100755 index 000000000..ffe1e9521 Binary files /dev/null and b/doc/salome/gui/SMESH/images/image56.gif differ diff --git a/doc/salome/gui/SMESH/images/image56.jpg b/doc/salome/gui/SMESH/images/image56.jpg new file mode 100755 index 000000000..5fba91a2f Binary files /dev/null and b/doc/salome/gui/SMESH/images/image56.jpg differ diff --git a/doc/salome/gui/SMESH/images/image58.gif b/doc/salome/gui/SMESH/images/image58.gif new file mode 100755 index 000000000..45e28568e Binary files /dev/null and b/doc/salome/gui/SMESH/images/image58.gif differ diff --git a/doc/salome/gui/SMESH/images/image63.gif b/doc/salome/gui/SMESH/images/image63.gif new file mode 100755 index 000000000..6a9c2c86d Binary files /dev/null and b/doc/salome/gui/SMESH/images/image63.gif differ diff --git a/doc/salome/gui/SMESH/images/image64.gif b/doc/salome/gui/SMESH/images/image64.gif new file mode 100755 index 000000000..1d92c81f1 Binary files /dev/null and b/doc/salome/gui/SMESH/images/image64.gif differ diff --git a/doc/salome/gui/SMESH/images/image67.gif b/doc/salome/gui/SMESH/images/image67.gif new file mode 100755 index 000000000..68bd3e383 Binary files /dev/null and b/doc/salome/gui/SMESH/images/image67.gif differ diff --git a/doc/salome/gui/SMESH/images/image7.jpg b/doc/salome/gui/SMESH/images/image7.jpg new file mode 100644 index 000000000..cbd6170ee Binary files /dev/null and b/doc/salome/gui/SMESH/images/image7.jpg differ diff --git a/doc/salome/gui/SMESH/images/image70.gif b/doc/salome/gui/SMESH/images/image70.gif new file mode 100755 index 000000000..120b8e8ef Binary files /dev/null and b/doc/salome/gui/SMESH/images/image70.gif differ diff --git a/doc/salome/gui/SMESH/images/image70.jpg b/doc/salome/gui/SMESH/images/image70.jpg new file mode 100755 index 000000000..0df360f68 Binary files /dev/null and b/doc/salome/gui/SMESH/images/image70.jpg differ diff --git a/doc/salome/gui/SMESH/images/image71.gif b/doc/salome/gui/SMESH/images/image71.gif new file mode 100755 index 000000000..0008354f6 Binary files /dev/null and b/doc/salome/gui/SMESH/images/image71.gif differ diff --git a/doc/salome/gui/SMESH/images/image71.jpg b/doc/salome/gui/SMESH/images/image71.jpg new file mode 100755 index 000000000..cb1223d38 Binary files /dev/null and b/doc/salome/gui/SMESH/images/image71.jpg differ diff --git a/doc/salome/gui/SMESH/images/image74.gif b/doc/salome/gui/SMESH/images/image74.gif new file mode 100755 index 000000000..c66029e74 Binary files /dev/null and b/doc/salome/gui/SMESH/images/image74.gif differ diff --git a/doc/salome/gui/SMESH/images/image76.jpg b/doc/salome/gui/SMESH/images/image76.jpg new file mode 100755 index 000000000..88ec89ffe Binary files /dev/null and b/doc/salome/gui/SMESH/images/image76.jpg differ diff --git a/doc/salome/gui/SMESH/images/image77.jpg b/doc/salome/gui/SMESH/images/image77.jpg new file mode 100755 index 000000000..c253eacae Binary files /dev/null and b/doc/salome/gui/SMESH/images/image77.jpg differ diff --git a/doc/salome/gui/SMESH/images/image78.jpg b/doc/salome/gui/SMESH/images/image78.jpg new file mode 100755 index 000000000..80c2a1633 Binary files /dev/null and b/doc/salome/gui/SMESH/images/image78.jpg differ diff --git a/doc/salome/gui/SMESH/images/image79.gif b/doc/salome/gui/SMESH/images/image79.gif new file mode 100755 index 000000000..9711ccbc9 Binary files /dev/null and b/doc/salome/gui/SMESH/images/image79.gif differ diff --git a/doc/salome/gui/SMESH/images/image79.jpg b/doc/salome/gui/SMESH/images/image79.jpg new file mode 100755 index 000000000..6d164167f Binary files /dev/null and b/doc/salome/gui/SMESH/images/image79.jpg differ diff --git a/doc/salome/gui/SMESH/images/image80.gif b/doc/salome/gui/SMESH/images/image80.gif new file mode 100755 index 000000000..399af0a9a Binary files /dev/null and b/doc/salome/gui/SMESH/images/image80.gif differ diff --git a/doc/salome/gui/SMESH/images/image82.gif b/doc/salome/gui/SMESH/images/image82.gif new file mode 100755 index 000000000..93c6c9b96 Binary files /dev/null and b/doc/salome/gui/SMESH/images/image82.gif differ diff --git a/doc/salome/gui/SMESH/images/image83.gif b/doc/salome/gui/SMESH/images/image83.gif new file mode 100755 index 000000000..331b64a10 Binary files /dev/null and b/doc/salome/gui/SMESH/images/image83.gif differ diff --git a/doc/salome/gui/SMESH/images/image84.gif b/doc/salome/gui/SMESH/images/image84.gif new file mode 100755 index 000000000..ea8ec56bc Binary files /dev/null and b/doc/salome/gui/SMESH/images/image84.gif differ diff --git a/doc/salome/gui/SMESH/images/image86.jpg b/doc/salome/gui/SMESH/images/image86.jpg new file mode 100644 index 000000000..168b43e2c Binary files /dev/null and b/doc/salome/gui/SMESH/images/image86.jpg differ diff --git a/doc/salome/gui/SMESH/images/image88.gif b/doc/salome/gui/SMESH/images/image88.gif new file mode 100755 index 000000000..b2d4b73fc Binary files /dev/null and b/doc/salome/gui/SMESH/images/image88.gif differ diff --git a/doc/salome/gui/SMESH/images/image88.jpg b/doc/salome/gui/SMESH/images/image88.jpg new file mode 100755 index 000000000..3b2a9739c Binary files /dev/null and b/doc/salome/gui/SMESH/images/image88.jpg differ diff --git a/doc/salome/gui/SMESH/images/image90.jpg b/doc/salome/gui/SMESH/images/image90.jpg new file mode 100755 index 000000000..4f4c301d4 Binary files /dev/null and b/doc/salome/gui/SMESH/images/image90.jpg differ diff --git a/doc/salome/gui/SMESH/images/image91.gif b/doc/salome/gui/SMESH/images/image91.gif new file mode 100755 index 000000000..a09ab9e76 Binary files /dev/null and b/doc/salome/gui/SMESH/images/image91.gif differ diff --git a/doc/salome/gui/SMESH/images/image92.gif b/doc/salome/gui/SMESH/images/image92.gif new file mode 100755 index 000000000..9e0517f5d Binary files /dev/null and b/doc/salome/gui/SMESH/images/image92.gif differ diff --git a/doc/salome/gui/SMESH/images/image92.jpg b/doc/salome/gui/SMESH/images/image92.jpg new file mode 100755 index 000000000..bf6e61049 Binary files /dev/null and b/doc/salome/gui/SMESH/images/image92.jpg differ diff --git a/doc/salome/gui/SMESH/images/image93.jpg b/doc/salome/gui/SMESH/images/image93.jpg new file mode 100755 index 000000000..f9780b4ba Binary files /dev/null and b/doc/salome/gui/SMESH/images/image93.jpg differ diff --git a/doc/salome/gui/SMESH/images/image94.gif b/doc/salome/gui/SMESH/images/image94.gif new file mode 100755 index 000000000..7313f5deb Binary files /dev/null and b/doc/salome/gui/SMESH/images/image94.gif differ diff --git a/doc/salome/gui/SMESH/images/image94.jpg b/doc/salome/gui/SMESH/images/image94.jpg new file mode 100644 index 000000000..789166734 Binary files /dev/null and b/doc/salome/gui/SMESH/images/image94.jpg differ diff --git a/doc/salome/gui/SMESH/images/image95.gif b/doc/salome/gui/SMESH/images/image95.gif new file mode 100755 index 000000000..6491f27d4 Binary files /dev/null and b/doc/salome/gui/SMESH/images/image95.gif differ diff --git a/doc/salome/gui/SMESH/images/image95.jpg b/doc/salome/gui/SMESH/images/image95.jpg new file mode 100755 index 000000000..047dccf64 Binary files /dev/null and b/doc/salome/gui/SMESH/images/image95.jpg differ diff --git a/doc/salome/gui/SMESH/images/image96.gif b/doc/salome/gui/SMESH/images/image96.gif new file mode 100755 index 000000000..1392ee705 Binary files /dev/null and b/doc/salome/gui/SMESH/images/image96.gif differ diff --git a/doc/salome/gui/SMESH/images/image96.jpg b/doc/salome/gui/SMESH/images/image96.jpg new file mode 100755 index 000000000..5f3128eb9 Binary files /dev/null and b/doc/salome/gui/SMESH/images/image96.jpg differ diff --git a/doc/salome/gui/SMESH/images/image97.gif b/doc/salome/gui/SMESH/images/image97.gif new file mode 100755 index 000000000..480b584ed Binary files /dev/null and b/doc/salome/gui/SMESH/images/image97.gif differ diff --git a/doc/salome/gui/SMESH/images/image97.jpg b/doc/salome/gui/SMESH/images/image97.jpg new file mode 100755 index 000000000..275f2e396 Binary files /dev/null and b/doc/salome/gui/SMESH/images/image97.jpg differ diff --git a/doc/salome/gui/SMESH/images/image98.gif b/doc/salome/gui/SMESH/images/image98.gif new file mode 100755 index 000000000..5f375b774 Binary files /dev/null and b/doc/salome/gui/SMESH/images/image98.gif differ diff --git a/doc/salome/gui/SMESH/images/image99.gif b/doc/salome/gui/SMESH/images/image99.gif new file mode 100755 index 000000000..4959ed825 Binary files /dev/null and b/doc/salome/gui/SMESH/images/image99.gif differ diff --git a/doc/salome/gui/SMESH/images/intersect_groups1.png b/doc/salome/gui/SMESH/images/intersect_groups1.png new file mode 100755 index 000000000..9251b0e7a Binary files /dev/null and b/doc/salome/gui/SMESH/images/intersect_groups1.png differ diff --git a/doc/salome/gui/SMESH/images/intersect_groups2.png b/doc/salome/gui/SMESH/images/intersect_groups2.png new file mode 100755 index 000000000..eeaed8da1 Binary files /dev/null and b/doc/salome/gui/SMESH/images/intersect_groups2.png differ diff --git a/doc/salome/gui/SMESH/images/intersect_groups3.png b/doc/salome/gui/SMESH/images/intersect_groups3.png new file mode 100755 index 000000000..74f5c2d76 Binary files /dev/null and b/doc/salome/gui/SMESH/images/intersect_groups3.png differ diff --git a/doc/salome/gui/SMESH/images/intersectgroups.png b/doc/salome/gui/SMESH/images/intersectgroups.png new file mode 100755 index 000000000..b28b4d4d6 Binary files /dev/null and b/doc/salome/gui/SMESH/images/intersectgroups.png differ diff --git a/doc/salome/gui/SMESH/images/length-crit.png b/doc/salome/gui/SMESH/images/length-crit.png new file mode 100755 index 000000000..96836cd87 Binary files /dev/null and b/doc/salome/gui/SMESH/images/length-crit.png differ diff --git a/doc/salome/gui/SMESH/images/length2d.png b/doc/salome/gui/SMESH/images/length2d.png new file mode 100755 index 000000000..9a5264a02 Binary files /dev/null and b/doc/salome/gui/SMESH/images/length2d.png differ diff --git a/doc/salome/gui/SMESH/images/lengthnearvertex.png b/doc/salome/gui/SMESH/images/lengthnearvertex.png new file mode 100755 index 000000000..008dcb16e Binary files /dev/null and b/doc/salome/gui/SMESH/images/lengthnearvertex.png differ diff --git a/doc/salome/gui/SMESH/images/max_el_area.png b/doc/salome/gui/SMESH/images/max_el_area.png new file mode 100755 index 000000000..88db3d6f8 Binary files /dev/null and b/doc/salome/gui/SMESH/images/max_el_area.png differ diff --git a/doc/salome/gui/SMESH/images/mergeelems.png b/doc/salome/gui/SMESH/images/mergeelems.png new file mode 100755 index 000000000..9314da8c3 Binary files /dev/null and b/doc/salome/gui/SMESH/images/mergeelems.png differ diff --git a/doc/salome/gui/SMESH/images/mergenodes.png b/doc/salome/gui/SMESH/images/mergenodes.png new file mode 100755 index 000000000..d7437e400 Binary files /dev/null and b/doc/salome/gui/SMESH/images/mergenodes.png differ diff --git a/doc/salome/gui/SMESH/images/merging_nodes1.png b/doc/salome/gui/SMESH/images/merging_nodes1.png new file mode 100755 index 000000000..f64bdcbe2 Binary files /dev/null and b/doc/salome/gui/SMESH/images/merging_nodes1.png differ diff --git a/doc/salome/gui/SMESH/images/merging_nodes2.png b/doc/salome/gui/SMESH/images/merging_nodes2.png new file mode 100755 index 000000000..8d7cfdd09 Binary files /dev/null and b/doc/salome/gui/SMESH/images/merging_nodes2.png differ diff --git a/doc/salome/gui/SMESH/images/mesh_for_extr_along_path.png b/doc/salome/gui/SMESH/images/mesh_for_extr_along_path.png new file mode 100644 index 000000000..4ee52ebfa Binary files /dev/null and b/doc/salome/gui/SMESH/images/mesh_for_extr_along_path.png differ diff --git a/doc/salome/gui/SMESH/images/mesh_node_to_point.png b/doc/salome/gui/SMESH/images/mesh_node_to_point.png new file mode 100644 index 000000000..5d534cb9d Binary files /dev/null and b/doc/salome/gui/SMESH/images/mesh_node_to_point.png differ diff --git a/doc/salome/gui/SMESH/images/meshcomputationfail.png b/doc/salome/gui/SMESH/images/meshcomputationfail.png new file mode 100644 index 000000000..9c26158e2 Binary files /dev/null and b/doc/salome/gui/SMESH/images/meshcomputationfail.png differ diff --git a/doc/salome/gui/SMESH/images/meshcomputationsucceed.png b/doc/salome/gui/SMESH/images/meshcomputationsucceed.png new file mode 100644 index 000000000..ab2357910 Binary files /dev/null and b/doc/salome/gui/SMESH/images/meshcomputationsucceed.png differ diff --git a/doc/salome/gui/SMESH/images/meshexportmesh.png b/doc/salome/gui/SMESH/images/meshexportmesh.png new file mode 100755 index 000000000..a84b25207 Binary files /dev/null and b/doc/salome/gui/SMESH/images/meshexportmesh.png differ diff --git a/doc/salome/gui/SMESH/images/meshimportmesh.png b/doc/salome/gui/SMESH/images/meshimportmesh.png new file mode 100755 index 000000000..f87250bf4 Binary files /dev/null and b/doc/salome/gui/SMESH/images/meshimportmesh.png differ diff --git a/doc/salome/gui/SMESH/images/meshtopass.png b/doc/salome/gui/SMESH/images/meshtopass.png new file mode 100755 index 000000000..044c0164b Binary files /dev/null and b/doc/salome/gui/SMESH/images/meshtopass.png differ diff --git a/doc/salome/gui/SMESH/images/meshtrianglemergeelem1.png b/doc/salome/gui/SMESH/images/meshtrianglemergeelem1.png new file mode 100755 index 000000000..0f9bd5215 Binary files /dev/null and b/doc/salome/gui/SMESH/images/meshtrianglemergeelem1.png differ diff --git a/doc/salome/gui/SMESH/images/movenodes.png b/doc/salome/gui/SMESH/images/movenodes.png new file mode 100755 index 000000000..16e9e6262 Binary files /dev/null and b/doc/salome/gui/SMESH/images/movenodes.png differ diff --git a/doc/salome/gui/SMESH/images/moving_nodes1.png b/doc/salome/gui/SMESH/images/moving_nodes1.png new file mode 100755 index 000000000..2bae38850 Binary files /dev/null and b/doc/salome/gui/SMESH/images/moving_nodes1.png differ diff --git a/doc/salome/gui/SMESH/images/moving_nodes2.png b/doc/salome/gui/SMESH/images/moving_nodes2.png new file mode 100755 index 000000000..b65e57ae9 Binary files /dev/null and b/doc/salome/gui/SMESH/images/moving_nodes2.png differ diff --git a/doc/salome/gui/SMESH/images/netgen2d.png b/doc/salome/gui/SMESH/images/netgen2d.png new file mode 100644 index 000000000..b2a9f25ed Binary files /dev/null and b/doc/salome/gui/SMESH/images/netgen2d.png differ diff --git a/doc/salome/gui/SMESH/images/number_of_layers.png b/doc/salome/gui/SMESH/images/number_of_layers.png new file mode 100644 index 000000000..846fa2c3e Binary files /dev/null and b/doc/salome/gui/SMESH/images/number_of_layers.png differ diff --git a/doc/salome/gui/SMESH/images/orientaation1.png b/doc/salome/gui/SMESH/images/orientaation1.png new file mode 100755 index 000000000..c23b0b8a8 Binary files /dev/null and b/doc/salome/gui/SMESH/images/orientaation1.png differ diff --git a/doc/salome/gui/SMESH/images/patternmapping1.png b/doc/salome/gui/SMESH/images/patternmapping1.png new file mode 100755 index 000000000..14daae187 Binary files /dev/null and b/doc/salome/gui/SMESH/images/patternmapping1.png differ diff --git a/doc/salome/gui/SMESH/images/patternmapping2.png b/doc/salome/gui/SMESH/images/patternmapping2.png new file mode 100755 index 000000000..fbcf35544 Binary files /dev/null and b/doc/salome/gui/SMESH/images/patternmapping2.png differ diff --git a/doc/salome/gui/SMESH/images/projection_1d.png b/doc/salome/gui/SMESH/images/projection_1d.png new file mode 100644 index 000000000..1560acaee Binary files /dev/null and b/doc/salome/gui/SMESH/images/projection_1d.png differ diff --git a/doc/salome/gui/SMESH/images/projection_2d.png b/doc/salome/gui/SMESH/images/projection_2d.png new file mode 100644 index 000000000..91d446b5c Binary files /dev/null and b/doc/salome/gui/SMESH/images/projection_2d.png differ diff --git a/doc/salome/gui/SMESH/images/projection_3d.png b/doc/salome/gui/SMESH/images/projection_3d.png new file mode 100644 index 000000000..aeffc7a48 Binary files /dev/null and b/doc/salome/gui/SMESH/images/projection_3d.png differ diff --git a/doc/salome/gui/SMESH/images/remove.gif b/doc/salome/gui/SMESH/images/remove.gif new file mode 100644 index 000000000..8b81cb25e Binary files /dev/null and b/doc/salome/gui/SMESH/images/remove.gif differ diff --git a/doc/salome/gui/SMESH/images/remove_elements1.png b/doc/salome/gui/SMESH/images/remove_elements1.png new file mode 100755 index 000000000..538460f43 Binary files /dev/null and b/doc/salome/gui/SMESH/images/remove_elements1.png differ diff --git a/doc/salome/gui/SMESH/images/remove_elements2.png b/doc/salome/gui/SMESH/images/remove_elements2.png new file mode 100755 index 000000000..888188cc7 Binary files /dev/null and b/doc/salome/gui/SMESH/images/remove_elements2.png differ diff --git a/doc/salome/gui/SMESH/images/remove_elements_icon.png b/doc/salome/gui/SMESH/images/remove_elements_icon.png new file mode 100644 index 000000000..a2bb0f12a Binary files /dev/null and b/doc/salome/gui/SMESH/images/remove_elements_icon.png differ diff --git a/doc/salome/gui/SMESH/images/remove_nodes1.png b/doc/salome/gui/SMESH/images/remove_nodes1.png new file mode 100755 index 000000000..94caae679 Binary files /dev/null and b/doc/salome/gui/SMESH/images/remove_nodes1.png differ diff --git a/doc/salome/gui/SMESH/images/remove_nodes2.png b/doc/salome/gui/SMESH/images/remove_nodes2.png new file mode 100755 index 000000000..e9f806402 Binary files /dev/null and b/doc/salome/gui/SMESH/images/remove_nodes2.png differ diff --git a/doc/salome/gui/SMESH/images/removeelements.png b/doc/salome/gui/SMESH/images/removeelements.png new file mode 100755 index 000000000..42a79b5b1 Binary files /dev/null and b/doc/salome/gui/SMESH/images/removeelements.png differ diff --git a/doc/salome/gui/SMESH/images/removenodes.png b/doc/salome/gui/SMESH/images/removenodes.png new file mode 100755 index 000000000..cfcb777c6 Binary files /dev/null and b/doc/salome/gui/SMESH/images/removenodes.png differ diff --git a/doc/salome/gui/SMESH/images/renumberelements.png b/doc/salome/gui/SMESH/images/renumberelements.png new file mode 100755 index 000000000..0812b5066 Binary files /dev/null and b/doc/salome/gui/SMESH/images/renumberelements.png differ diff --git a/doc/salome/gui/SMESH/images/renumbernodes.png b/doc/salome/gui/SMESH/images/renumbernodes.png new file mode 100755 index 000000000..90a0eda13 Binary files /dev/null and b/doc/salome/gui/SMESH/images/renumbernodes.png differ diff --git a/doc/salome/gui/SMESH/images/revolution1.png b/doc/salome/gui/SMESH/images/revolution1.png new file mode 100755 index 000000000..d459cf463 Binary files /dev/null and b/doc/salome/gui/SMESH/images/revolution1.png differ diff --git a/doc/salome/gui/SMESH/images/revolution2.png b/doc/salome/gui/SMESH/images/revolution2.png new file mode 100755 index 000000000..a3c005202 Binary files /dev/null and b/doc/salome/gui/SMESH/images/revolution2.png differ diff --git a/doc/salome/gui/SMESH/images/rotation.png b/doc/salome/gui/SMESH/images/rotation.png new file mode 100755 index 000000000..372b9b307 Binary files /dev/null and b/doc/salome/gui/SMESH/images/rotation.png differ diff --git a/doc/salome/gui/SMESH/images/rotation1.png b/doc/salome/gui/SMESH/images/rotation1.png new file mode 100755 index 000000000..5a4ad9901 Binary files /dev/null and b/doc/salome/gui/SMESH/images/rotation1.png differ diff --git a/doc/salome/gui/SMESH/images/rotation2.png b/doc/salome/gui/SMESH/images/rotation2.png new file mode 100755 index 000000000..366771a69 Binary files /dev/null and b/doc/salome/gui/SMESH/images/rotation2.png differ diff --git a/doc/salome/gui/SMESH/images/selectionfilterlibrary.png b/doc/salome/gui/SMESH/images/selectionfilterlibrary.png new file mode 100755 index 000000000..f07c09641 Binary files /dev/null and b/doc/salome/gui/SMESH/images/selectionfilterlibrary.png differ diff --git a/doc/salome/gui/SMESH/images/sewing1.png b/doc/salome/gui/SMESH/images/sewing1.png new file mode 100755 index 000000000..795d7a06b Binary files /dev/null and b/doc/salome/gui/SMESH/images/sewing1.png differ diff --git a/doc/salome/gui/SMESH/images/sewing2.png b/doc/salome/gui/SMESH/images/sewing2.png new file mode 100755 index 000000000..66a409973 Binary files /dev/null and b/doc/salome/gui/SMESH/images/sewing2.png differ diff --git a/doc/salome/gui/SMESH/images/sewing3.png b/doc/salome/gui/SMESH/images/sewing3.png new file mode 100755 index 000000000..6c74f1cbf Binary files /dev/null and b/doc/salome/gui/SMESH/images/sewing3.png differ diff --git a/doc/salome/gui/SMESH/images/sewing4.png b/doc/salome/gui/SMESH/images/sewing4.png new file mode 100755 index 000000000..cd9869a85 Binary files /dev/null and b/doc/salome/gui/SMESH/images/sewing4.png differ diff --git a/doc/salome/gui/SMESH/images/smoothing.png b/doc/salome/gui/SMESH/images/smoothing.png new file mode 100755 index 000000000..0fda00a22 Binary files /dev/null and b/doc/salome/gui/SMESH/images/smoothing.png differ diff --git a/doc/salome/gui/SMESH/images/smoothing1.png b/doc/salome/gui/SMESH/images/smoothing1.png new file mode 100755 index 000000000..763a5300b Binary files /dev/null and b/doc/salome/gui/SMESH/images/smoothing1.png differ diff --git a/doc/salome/gui/SMESH/images/smoothing2.png b/doc/salome/gui/SMESH/images/smoothing2.png new file mode 100755 index 000000000..bfce45739 Binary files /dev/null and b/doc/salome/gui/SMESH/images/smoothing2.png differ diff --git a/doc/salome/gui/SMESH/images/sort.gif b/doc/salome/gui/SMESH/images/sort.gif new file mode 100644 index 000000000..28a5dff29 Binary files /dev/null and b/doc/salome/gui/SMESH/images/sort.gif differ diff --git a/doc/salome/gui/SMESH/images/straight_after.png b/doc/salome/gui/SMESH/images/straight_after.png new file mode 100644 index 000000000..4572fea7b Binary files /dev/null and b/doc/salome/gui/SMESH/images/straight_after.png differ diff --git a/doc/salome/gui/SMESH/images/straight_before.png b/doc/salome/gui/SMESH/images/straight_before.png new file mode 100644 index 000000000..200aad85d Binary files /dev/null and b/doc/salome/gui/SMESH/images/straight_before.png differ diff --git a/doc/salome/gui/SMESH/images/symmetry1.png b/doc/salome/gui/SMESH/images/symmetry1.png new file mode 100755 index 000000000..0fe145964 Binary files /dev/null and b/doc/salome/gui/SMESH/images/symmetry1.png differ diff --git a/doc/salome/gui/SMESH/images/symmetry2.png b/doc/salome/gui/SMESH/images/symmetry2.png new file mode 100755 index 000000000..99c456463 Binary files /dev/null and b/doc/salome/gui/SMESH/images/symmetry2.png differ diff --git a/doc/salome/gui/SMESH/images/symmetry3.png b/doc/salome/gui/SMESH/images/symmetry3.png new file mode 100755 index 000000000..0ded9ce79 Binary files /dev/null and b/doc/salome/gui/SMESH/images/symmetry3.png differ diff --git a/doc/salome/gui/SMESH/images/translation1.png b/doc/salome/gui/SMESH/images/translation1.png new file mode 100755 index 000000000..745506149 Binary files /dev/null and b/doc/salome/gui/SMESH/images/translation1.png differ diff --git a/doc/salome/gui/SMESH/images/translation2.png b/doc/salome/gui/SMESH/images/translation2.png new file mode 100755 index 000000000..f321be118 Binary files /dev/null and b/doc/salome/gui/SMESH/images/translation2.png differ diff --git a/doc/salome/gui/SMESH/images/union_groups1.png b/doc/salome/gui/SMESH/images/union_groups1.png new file mode 100755 index 000000000..7b2fc7511 Binary files /dev/null and b/doc/salome/gui/SMESH/images/union_groups1.png differ diff --git a/doc/salome/gui/SMESH/images/union_groups2.png b/doc/salome/gui/SMESH/images/union_groups2.png new file mode 100755 index 000000000..980e48d41 Binary files /dev/null and b/doc/salome/gui/SMESH/images/union_groups2.png differ diff --git a/doc/salome/gui/SMESH/images/union_groups3.png b/doc/salome/gui/SMESH/images/union_groups3.png new file mode 100755 index 000000000..caf6bb42b Binary files /dev/null and b/doc/salome/gui/SMESH/images/union_groups3.png differ diff --git a/doc/salome/gui/SMESH/images/uniongroups.png b/doc/salome/gui/SMESH/images/uniongroups.png new file mode 100755 index 000000000..936c3b9f7 Binary files /dev/null and b/doc/salome/gui/SMESH/images/uniongroups.png differ diff --git a/doc/salome/gui/SMESH/images/unionoftwotriangles.png b/doc/salome/gui/SMESH/images/unionoftwotriangles.png new file mode 100755 index 000000000..b9d2bdbd7 Binary files /dev/null and b/doc/salome/gui/SMESH/images/unionoftwotriangles.png differ diff --git a/doc/salome/gui/SMESH/images/uniting_a_set_of_triangles1.png b/doc/salome/gui/SMESH/images/uniting_a_set_of_triangles1.png new file mode 100755 index 000000000..fb00167a5 Binary files /dev/null and b/doc/salome/gui/SMESH/images/uniting_a_set_of_triangles1.png differ diff --git a/doc/salome/gui/SMESH/images/uniting_a_set_of_triangles2.png b/doc/salome/gui/SMESH/images/uniting_a_set_of_triangles2.png new file mode 100755 index 000000000..16d135112 Binary files /dev/null and b/doc/salome/gui/SMESH/images/uniting_a_set_of_triangles2.png differ diff --git a/doc/salome/gui/SMESH/images/uniting_two_triangles1.png b/doc/salome/gui/SMESH/images/uniting_two_triangles1.png new file mode 100755 index 000000000..e94be3a0f Binary files /dev/null and b/doc/salome/gui/SMESH/images/uniting_two_triangles1.png differ diff --git a/doc/salome/gui/SMESH/images/uniting_two_triangles2.png b/doc/salome/gui/SMESH/images/uniting_two_triangles2.png new file mode 100755 index 000000000..5cac5f541 Binary files /dev/null and b/doc/salome/gui/SMESH/images/uniting_two_triangles2.png differ diff --git a/doc/salome/gui/SMESH/index.htm b/doc/salome/gui/SMESH/index.htm deleted file mode 100755 index 3163eee1b..000000000 --- a/doc/salome/gui/SMESH/index.htm +++ /dev/null @@ -1,180 +0,0 @@ - - -Mesh Module Reference Manual - - - - - - - - - - - - - diff --git a/doc/salome/gui/SMESH/index_csh.htm b/doc/salome/gui/SMESH/index_csh.htm deleted file mode 100755 index 867d877c9..000000000 --- a/doc/salome/gui/SMESH/index_csh.htm +++ /dev/null @@ -1,106 +0,0 @@ - - -Mesh Module Reference Manual - - - - - - - - - - - - - \ No newline at end of file diff --git a/doc/salome/gui/SMESH/index_rhc.htm b/doc/salome/gui/SMESH/index_rhc.htm deleted file mode 100755 index b751bd4c8..000000000 --- a/doc/salome/gui/SMESH/index_rhc.htm +++ /dev/null @@ -1,106 +0,0 @@ - - -Mesh Module Reference Manual - - - - - - - - - - - - - \ No newline at end of file diff --git a/doc/salome/gui/SMESH/input/1d_meshing_hypo.doc b/doc/salome/gui/SMESH/input/1d_meshing_hypo.doc new file mode 100644 index 000000000..6fd23f521 --- /dev/null +++ b/doc/salome/gui/SMESH/input/1d_meshing_hypo.doc @@ -0,0 +1,158 @@ +/*! + +\page a1d_meshing_hypo_page 1D Meshing Hypotheses + +
+
    +
  • \ref arithmetic_1d_anchor "Arithmetic 1D"
  • +
  • \ref average_length_anchor "Average Length"
  • +
  • \ref deflection_1d_anchor "Deflection 1D"
  • +
  • \ref number_of_segments_anchor "Number of segments"
  • +
  • \ref start_and_end_length_anchor "Start and end length"
  • +
  • \ref automatic_length_anchor "Automatic Length"
  • +
+ +
+\anchor arithmetic_1d_anchor +

Arithmetic 1D hypothesis

+ +Arithmetic 1D hypothesis allows to split edges into segments with a +length that changes in arithmetic progression (Lk = Lk-1 + d) +beginning from a given starting length and up to a given end length. + +\image html a-arithmetic1d.png + +\image html b-ithmetic1d.png + +See Also a sample TUI Script of a +\ref tui_1d_arithmetic "Defining Arithmetic 1D hypothesis" operation. + +
+\anchor deflection_1d_anchor +

Deflection 1D hypothesis

+ +Deflection 1D hypothesis can be applied for meshing curvilinear edges +composing your geometrical object. It uses only one parameter: the +value of deflection. +\n A geometrical edge is divided into equal segments. The maximum +distance between a point on the edge within a segment and the line +connecting the ends of the segment should not exceed the specified +value of deflection . Then mesh nodes are constructed at end segment +locations and 1D mesh elements are constructed on segments. + +\image html a-deflection1d.png + +\image html b-flection1d.png + +See Also a sample TUI Script of a +\ref tui_deflection_1d "Defining Deflection 1D hypothesis" operation. + +
+\anchor average_length_anchor +

Average Length hypothesis

+ +Average Length hypothesis can be applied for meshing of edges +composing your geometrical object. Definition of this hypothesis +consists of setting the \b length of segments, which will split these +edges. The points on the edges generated by these segments will +represent nodes of your mesh. Later these nodes will be used for +meshing of the faces abutting to these edges. + +\image html image41.gif + +\image html a-averagelength.png + +\image html b-erage_length.png + +See Also a sample TUI Script of a +\ref tui_average_length "Defining Average Length" hypothesis +operation. + +
+\anchor number_of_segments_anchor +

Number of segments hypothesis

+ +Number of segments hypothesis can be applied for meshing of edges +composing your geometrical object. Definition of this hypothesis +consists of setting the number of segments, which will split these +edges. In other words your edges will be split into a definite number +of segments with approximately the same length. The points on the +edges generated by these segments will represent nodes of your +mesh. Later these nodes will be used for meshing of the faces abutting +to these edges. + +\image html image46.gif + +You can set the type of distribution for this hypothesis in the +Hypothesis Construction dialog bog : + +\image html a-nbsegments1.png + +
Equidistant Distribution - all segments will have the same +length, you define only the Number of Segments. + +\image html b-mberofsegments.png + +
Scale Distribution - each next segment differs from the +previous according to the formula: Ai+1 = Ai * k, where \b k is a +Scale Factor. + +\image html a-nbsegments2.png + +
Distribution with Table Density - you input a number of +pairs t - F(t), where \b t ranges from 0 to 1, and the module computes the +formula, which will rule the change of length of segments and shows +the curve in the plot. You can select the Conversion mode from +\b Exponent and Cut negative. + +\image html distributionwithtabledensity.png + +
Distribution with Analytic Density - you input the formula, +which will rule the change of length of segments and the module shows +the curve in the plot. + +\image html distributionwithanalyticdensity.png + +See Also a sample TUI Script of a +\ref tui_deflection_1d "Defining Number of Segments" hypothesis +operation. + +
+\anchor start_and_end_length_anchor +

Start and End Length hypothesis

+ +Start and End Length hypothesis allows to divide a geometrical edge +into segments so that the first and the last segments have a specified +length. The length of each but the first segment differs from length +of the previous one by a constant factor. Then mesh nodes are +constructed at segment ends location and 1D mesh elements are +constructed on them. + +\image html a-startendlength.png + +\image html b-art_end_length.png + +See Also a sample TUI Script of a +\ref tui_start_and_end_length "Defining Start and End Length" +hypothesis operation. + +
+\anchor automatic_length_anchor +

Automatic Length

+ +This hypothesis is automatically applied when you select Assign a +set of hypotheses option in Create Mesh menu. + +\image html automaticlength.png + +The dialog box prompts you to define the quality of the future mesh by +only one parameter, which is \b Fineness, ranging from 0 (coarse mesh, +low number of elements) to 1 (extremely fine mesh, great number of +elements). Compare one and the same object (sphere) meshed with +minimum and maximum value of this parameter. + +\image html image147.gif + +\image html image148.gif + +*/ \ No newline at end of file diff --git a/doc/salome/gui/SMESH/input/2d_meshing_hypo.doc b/doc/salome/gui/SMESH/input/2d_meshing_hypo.doc new file mode 100644 index 000000000..103f9144c --- /dev/null +++ b/doc/salome/gui/SMESH/input/2d_meshing_hypo.doc @@ -0,0 +1,49 @@ +/*! + +\page a2d_meshing_hypo_page 2D Meshing Hypotheses + +
+
    +
  • \ref max_element_area_anchor "Max Element Area"
  • +
  • \ref length_from_edges_anchor "Length from Edges"
  • +
  • \ref quadrangle_preference_anchor "Quadrangle Preference"
  • +
+ +
+\anchor max_element_area_anchor +

Max Element Area

+ +Max Element Area hypothesis is applied for meshing of 2D faces +composing your geometrical object. Definition of this hypothesis +consists of setting the maximum area of meshing elements (depending on +the chosen meshing algorithm it can be triangles or quadrangles), +which will compose the mesh of these 2D faces. + +\image html a-maxelarea.png + +\image html max_el_area.png + +See Also a sample TUI Script of a +\ref tui_max_element_area "Maximum Element Area" hypothesis +operation. + +
+\anchor length_from_edges_anchor +

Length from Edges

+ +Length from edges hypothesis builds 2D mesh segments having a +length calculated as an average edge length for a given wire. + +See Also a sample TUI Script of a +\ref tui_length_from_edges "Length from Edges" hypothesis operation. + +
+\anchor quadrangle_preference_anchor +

Quadrangle Preference

+ +This algorithm can be used only together with Quadrangle (Mapping) +algorithm. It allows to build quadrangular meshes even if the number +of nodes at the opposite edges of a meshed face is not equal, +otherwise this mesh will contain some triangular elements. + +*/ \ No newline at end of file diff --git a/doc/salome/gui/SMESH/input/about_hypo.doc b/doc/salome/gui/SMESH/input/about_hypo.doc new file mode 100644 index 000000000..40b8ff590 --- /dev/null +++ b/doc/salome/gui/SMESH/input/about_hypo.doc @@ -0,0 +1,52 @@ +/*! + +\page about_hypo_page About Hypotheses + +\n \b Hypotheses represent boundary conditions which will be taken into +account at calculations of meshes or submeshes basing on geometrical +objects. These hypotheses allow you to manage the level of detail of +the resulting meshes or submeshes: when applying different hypotheses +with different parameters you can preset the quantity of meshing +elements which will compose your mesh. So, it will be possible to +generate a rough or a more refined mesh or submesh. + +In \b MESH there are the following Basic Hypotheses (to introduce +them, you operate numerical values): +
    +
  • \ref a1d_meshing_hypo_page "1D Hypotheses" (for meshing of +edges):
  • +
      +
    • \ref arithmetic_1d_anchor "Arithmetic 1D"
    • +
    • \ref average_length_anchor "Average Length"
    • +
    • \ref deflection_1d_anchor "Deflection 1D"
    • +
    • \ref number_of_segments_anchor "Number of segments"
    • +
    • \ref start_and_end_length_anchor "Start and end length"
    • +
    • \ref automatic_length_anchor "Automatic Length"
    • +
    +
  • \ref a2d_meshing_hypo_page "2D Hypotheses" (for meshing of faces):
  • +
      +
    • \ref max_element_area_anchor "Max Element Area"
    • +
    • \ref length_from_edges_anchor "Length from Edges"
    • +
    • \ref quadrangle_preference_anchor "Quadrangle Preference"
    • +
    +
  • 3D Hypothesis (for meshing of volumes):
  • +
      +
    • \ref max_element_volume_hypo_page "Max Element Volume"
    • +
    +
+ +There also exist some +\ref additional_hypo_page "Additional Hypotheses": +
    +
  • Propagation of 1D Hypothesis on opposite edges
  • +
  • Non conform mesh allowed
  • +
  • Quadratic mesh
  • +
+ +The choice of a hypothesis depends on: +
    +
  • the geometrical object (shape) which will be meshed
  • +
  • the algorithm, which will be selected for meshing of this geometrical object (shape)
  • +
+ +*/ \ No newline at end of file diff --git a/doc/salome/gui/SMESH/input/about_meshes.doc b/doc/salome/gui/SMESH/input/about_meshes.doc new file mode 100644 index 000000000..e1cbd84de --- /dev/null +++ b/doc/salome/gui/SMESH/input/about_meshes.doc @@ -0,0 +1,86 @@ +/*! + +\page about_meshes_page About meshes + +\n \b MESH represents a discretization of a geometrical CAD model into +a set of entities with a simple topology. In MESH there are two +options of creation of meshes, you can: + +
    +
  • generate meshes on the basis of geometrical shapes produced in the GEOM module,
  • +
  • create your own meshes using the MESH functions destined for modification of generated meshes.
  • +
+ +The topology of a mesh is described by the relationships between its +entities including: + +
    +
  • \b Node — 0D element of a mesh presented by a point with coordinates (x, y, z).
  • +
  • \b Edge — 1D element of a mesh defined by two nodes.
  • +
  • \b Face — 2D element of a mesh defined by three or four edges (closed contour).
  • +
  • \b Volume — 3D element of a mesh defined by several faces.
  • +
+ +        These entities are +considered as topological entities and they don't +imply any geometric representation. Only \b Nodes reference geometric +representations of points with definite coordinates. The node entity +will contain additional information about its position in the space +and its relations with the meshed CAD model. Its position could be +described in the following way: + +
    +
  • 2D position. It is a free position defined by only two coordinates x,y.
  • +
  • 3D position. It is a free position defined by three coordinates x,y and z.
  • +
  • Surface position. It characterizes the position of a node on a +geometric surface and is defined by the u,v position in the parametric +space of the corresponding surface.
  • +
  • Line position. It characterizes the position of a node on a +geometric curve and is defined by the u parameter and the +corresponding curve.
  • +
  • Vertex position. It characterizes the position of a node on a +geometric point of the meshed CAD model and is defined by the x,y,z +coordinates of the corresponding vertex.
  • +
+ +

Connections

+ +Each mesh entity bounds 0 or more mesh entities of higher +dimension. In the same way each mesh entity is bounded by 0 or more +mesh entities of lower dimension: + +
    +
  • A node bounds edges, faces and volumes
  • +
  • An edge bounds faces, and volumes
  • +
  • A face bounds volumes
  • +
  • A volume is bounded by faces, edges and nodes
  • +
  • A face is bounded by edges, and nodes
  • +
  • An edge is bounded by nodes
  • +
+ +You can notice that there are two types of connections: \b inverse and +\b direct connections. + +

Inverse connections

+ +This relationship has a particularity that the order of bounded +entities has not a direct meaning. Also the number of bounded entities +is not fixed. + +\b Example: The edges surrounding a node. The 3rd edge has no more +sense that the 5th one. + +

Direct connections

+ +This relationship has a particularity that the order of bounding +entities is meaningful. The number of bounding entities is fixed and +depends on the type of the entity (hexahedron, tetrahedron,?). + +\b Example: An edge is composed of two nodes. A face is composed of 3 +or 4 edges depending if we are dealing with triangles or quadrangles. + +The connections are not only restricted to entities of one dimension +higher or lower. For example some algorithms may be interested to +retrieve all the faces surrounding a node. + +*/ \ No newline at end of file diff --git a/doc/salome/gui/SMESH/input/about_quality_controls.doc b/doc/salome/gui/SMESH/input/about_quality_controls.doc new file mode 100644 index 000000000..f197bae0c --- /dev/null +++ b/doc/salome/gui/SMESH/input/about_quality_controls.doc @@ -0,0 +1,44 @@ +/*! + +\page about_quality_controls_page About quality controls + +\n Mesh quality control in MESH is destined for visual control of the generated mesh. + +Application of a definite quality control consists of usage of the +corresponding algorithm, which calculates a value of a definite +geometric characteristic (Area, Length of edges, etc) for all meshing +elements, composing your mesh. Then all meshing elements are colored +according the calculated values. The reference between the coloring of +the meshing elements and these calculated values is shown with the +help of a scalar bar, which is displayed near the presentation of your +mesh. + +There are 1D, 2D and 3D quality controls. + +1D mesh quality controls: +
    +
  • \ref free_borders_page "Free borders"
  • +
  • \ref borders_at_multi_connection_page "Borders at multi-connection"
  • +
  • \ref length_page "Length"
  • +
+ +2D mesh quality controls: +
    +
  • \ref free_edges_page "Free edges"
  • +
  • \ref length_2d_page "Length 2D"
  • +
  • \ref borders_at_multi_connection_2d_page "Borders at multi-connection 2D"
  • +
  • \ref area_page "Area"
  • +
  • \ref taper_page "Taper"
  • +
  • \ref aspect_ratio_page "Aspect ratio"
  • +
  • \ref minimum_angle_page "Minimum angle"
  • +
  • \ref warping_page "Warping"
  • +
  • \ref skew_page "Skew"
  • +
+ +3D mesh quality controls: +
    +
  • \ref aspect_ratio_3d_page "Aspect ratio 3D"
  • +
  • \ref volume_page "Volume"
  • +
+ +*/ \ No newline at end of file diff --git a/doc/salome/gui/SMESH/input/adding_nodes_and_elements.doc b/doc/salome/gui/SMESH/input/adding_nodes_and_elements.doc new file mode 100644 index 000000000..f55d75d8d --- /dev/null +++ b/doc/salome/gui/SMESH/input/adding_nodes_and_elements.doc @@ -0,0 +1,140 @@ +/*! + +\page adding_nodes_and_elements_page Adding nodes and elements + +\n In MESH you can add to your mesh different elements such as: + +
    +
  • \ref adding_nodes_anchor "Nodes"
  • +
  • \ref adding_edges_anchor "Edges"
  • +
  • \ref adding_triangles_anchor "Triangles"
  • +
  • \ref adding_quadrangles_anchor "Quadrangles"
  • +
  • \ref adding_polygons_anchor "Polygons"
  • +
  • \ref adding_tetrahedrons_anchor "Tetrahedrons"
  • +
  • \ref adding_hexahedrons_anchor "Hexahedrons"
  • +
  • \ref adding_polyhedrons_anchor "Polyhedrons"
  • +
+ +To add a node or an element to your mesh: +
    +
  1. Select your mesh in the Object Browser or in the 3D viewer.
  2. + +
  3. From the \b Modification menu choose the \b Add item, the +following associated submenu will appear:
  4. + +\image html image146.gif + +From this submenu select the type of element which you would like to add to your mesh. +
+ +See Also sample TUI Scripts of +\ref tui_adding_nodes_and_elements "Adding Nodes and Elements" +operations. + +
+\anchor adding_nodes_anchor +

Adding nodes

+ +\image html addnode.png + +In this dialog box set coordinates for your node in the \b Coordinates +set of fields and click the \b Apply or \b OK button. Your node will be +created: + +\image html add_node.png + +
+\anchor adding_edges_anchor +

Adding edges

+ +\image html addedge.png + +In this dialog box specify the nodes which will form your edge by +selecting them in the 3D viewer with pressed Shift button and click +the \b Apply or \b OK button. Your edge will be created: + +\image html add_edge.png + +
+\anchor adding_triangles_anchor +

Adding triangles

+ +\image html addtriangle.png + +In this dialog box specify the nodes which will form your triangle by +selecting them in the 3D viewer with pressed Shift button and click +the \b Apply or \b OK button. Your triangle will be created: + +\image html add_triangle.png + +
+\anchor adding_quadrangles_anchor +

Adding quadrangles

+ +\image html addquadrangle.png + +In this dialog box specify the nodes which will form your quadrangle +by selecting them in the 3D viewer with pressed Shift button and click +the \b Apply or \b OK button. Your quadrangle will be created: + +\image html add_quadrangle.png + +
+\anchor adding_polygons_anchor +

Adding polygons

+ +\image html addpolygon.png + +In this dialog box specify the nodes which will form your polygon by +selecting them in the 3D viewer with pressed Shift button and click +the \b Apply or \b OK button. + +\image html add_polygone.png + +
+\anchor adding_tetrahedrons_anchor +

Adding tetrahedrons

+ +\image html addtetrahedron.png + +In this dialog box specify the nodes which will form your tetrahedron +by selecting them in the 3D viewer with pressed Shift button and click +the \b Apply or \b OK button. Your tetrahedron will be created: + +\image html image70.jpg + +
+\anchor adding_hexahedrons_anchor +

Adding hexahedrons

+ +\image html addhexahedron.png + +In this dialog box specify the nodes which will form your hexahedron +by selecting them in the 3D viewer with pressed Shift button and click +the \b Apply or \b OK button. Your hexahedron will be created: + +\image html image71.jpg + +
+\anchor adding_polyhedrons_anchor +

Adding polyhedrons

+ +\image html a-createpolyhedralvolume.png + +There are two different ways to add polyhedral volumes. +\n If you select \b Node as Elements Type you will specify the +nodes which will form the faces of your polyhedron by selecting the +nodes in the 3D viewer with pressed Shift button and clicking the \b +Add button to add the face in the list of Faces by Nodes, which will +form your polyhedron. Note, that it could be very useful to toggle +Polyhedron Preview checkbox to see the results of your selection. +\n The second way is somewhat simpler, however, there are cases when +it does not provide you with the necessary level of precision. If you +select \b Face as Elements Type, you will be able to select the faces +which will form your polyhedron in the 3D viewer with pressed Shift +button. If you've managed to obtain the necessary result, click the +\b Apply or \b OK button. Your polyhedron will be created: + +\image html add_polyhedron.png + +*/ \ No newline at end of file diff --git a/doc/salome/gui/SMESH/input/adding_quadratic_elements.doc b/doc/salome/gui/SMESH/input/adding_quadratic_elements.doc new file mode 100644 index 000000000..c95f47bd2 --- /dev/null +++ b/doc/salome/gui/SMESH/input/adding_quadratic_elements.doc @@ -0,0 +1,41 @@ +/*! + +\page adding_quadratic_elements_page Adding Quadratic Elements + +\n MESH modules allows you to work with Quadratic Elements. + +Quadratic Edge in not a straight but a broken line and can be defined +by three points: first, middle and last. All more complex \b Quadratic +\b Elements differ from ordinary ones in that they consist of Quadratic +Edges. + +To add a quadratic element to your mesh: +
    +
  1. Select your mesh in the Object Browser or in the 3D viewer.
  2. + +
  3. From the \b Modification menu choose the \b Add item and select +one of the following: + +\image html image152.gif + +To create any Quadratic Element specify the nodes which will form your +triangle by selecting them in the 3D viewer with pressed Shift +button. Their numbers will appear in the dialog box as Corner Nodes +(alternatively you can just input numbers in this field without +selection).The edges formed by the corner nodes will appear in the +table. To define the middle nodes for each edge double-click on the +respective field and input the number of the node. All edges and the +object formed by them will be displayed in the Object browser. When +all edges are defined you will be able to click \b OK or \b Apply button to +add the element to the mesh. + +\image html aqt.png + +\b Reverse button for Quadratic Edges switches the first and the last +nodes. For all other elements it reverses the element. +
  4. +
+ + + +*/ \ No newline at end of file diff --git a/doc/salome/gui/SMESH/input/additional_hypo.doc b/doc/salome/gui/SMESH/input/additional_hypo.doc new file mode 100644 index 000000000..9687bdf2d --- /dev/null +++ b/doc/salome/gui/SMESH/input/additional_hypo.doc @@ -0,0 +1,35 @@ +/*! + +\page additional_hypo_page Additional Hypotheses + +\n Additional Hypotheses can be applied as a supplement to the +main hypotheses, introducing additional concepts to mesh creation. + +To define an Additional Hypothesis simply select it in +Create Mesh menu. These hypotheses are actually changes in the +rules of mesh creation and as such don't possess adjustable values. + +

Non Conform mesh allowed hypothesis

+ +Non Conform mesh allowed hypothesis allows to generate non-conform +meshes (that is, meshes having some edges ending on an edge or face of +adjacent elements). + +

Quadratic Mesh

+ +Quadratic Mesh hypothesis allows to build a quadratic mesh (whose +edges are not straight but broken lines and can be defined by three +points: first, middle and last) instead of an ordinary one. + +

Propagation of 1D Hypothesis on opposite edges

+ +Propagation of 1D Hypothesis on opposite edges allows to propagate a +hypothesis onto an opposite edge. If a local hypothesis and +propagation are defined on an edge of a quadrangular face, the +opposite edge will have the same hypothesis, unless another hypothesis +has been locally defined on the opposite edge. + +
See Also a sample TUI Script of a +\ref tui_propagation "Propagation hypothesis" operation. + +*/ \ No newline at end of file diff --git a/doc/salome/gui/SMESH/input/area.doc b/doc/salome/gui/SMESH/input/area.doc new file mode 100644 index 000000000..553b9e935 --- /dev/null +++ b/doc/salome/gui/SMESH/input/area.doc @@ -0,0 +1,29 @@ +/*! + +\page area_page Area + +\n \b Area mesh quality control is based on the algorithm of area +calculation of meshing elements. It can be applied to meshes +consisting of 2D meshing elements with 3 and 4 nodes (triangles and +quadrangles). + +To apply the Area quality control to your mesh: +
    +
  1. Display your mesh in the viewer.
  2. + +
  3. Choose Controls > Area or click "Area" button. + +\image html image35.gif +
    "Area" button
    + +Your mesh will be displayed in the viewer with its elements colored +according to the applied mesh quality control criterion: + +\image html image5.jpg +
  4. +
+ +
See Also a sample TUI Script of an +\ref tui_area "Area quality control" operation. + +*/ \ No newline at end of file diff --git a/doc/salome/gui/SMESH/input/aspect_ratio.doc b/doc/salome/gui/SMESH/input/aspect_ratio.doc new file mode 100644 index 000000000..9888d3423 --- /dev/null +++ b/doc/salome/gui/SMESH/input/aspect_ratio.doc @@ -0,0 +1,45 @@ +/*! + +\page aspect_ratio_page Aspect Ratio + +\n The Aspect Ratio quality criterion for mesh elements reveals +the degree of conformity of a mesh element to the regular element of +its type (with all edges having the same length). The criterion can +be defined as: + +\image html formula3.png + +- The Aspect Ratio of a \b triangle 2D element consisting of 3 +nodes is calculated by the formula: + +\image html formula4.png + +- The Aspect Ratio of a \b quadrangle 2D element consisting of + 4 nodes is the worst (i.e. the greatest) value from all triangles + which can be built taking three nodes of the quadrangle. There are + four triangles to consider: + +\image html image138.gif + +To apply the Aspect Ratio quality criterion to your mesh: +
    +
  1. Display your mesh in the viewer.
  2. + +
  3. Choose Controls > Aspect Ratio or click "Aspect +Ratio" button in the toolbar. + +\image html image37.gif +
    "Aspect Ratio" button
    + +Your mesh will be displayed in the viewer with its elements colored +according to the applied mesh quality control criterion: + +\image html image94.jpg +
  4. +
+ +
See Also a sample TUI Script of an +\ref tui_aspect_ratio "Aspect Ratio quality control" operation. + +*/ + diff --git a/doc/salome/gui/SMESH/input/aspect_ratio_3d.doc b/doc/salome/gui/SMESH/input/aspect_ratio_3d.doc new file mode 100644 index 000000000..f6965bdb6 --- /dev/null +++ b/doc/salome/gui/SMESH/input/aspect_ratio_3d.doc @@ -0,0 +1,40 @@ +/*! + +\page aspect_ratio_3d_page Aspect ratio 3D + +\n The Aspect Ratio 3D mesh quality criterion calculates the same +parameter as the \ref aspect_ratio_page "Aspect ratio" criterion, but +it is applied to 3D mesh elements: tetrahedrons, pentahedrons, +hexahedrons, etc. + +- The Aspect Ratio of a \b tetrahedron 3D element is calculated +by the formula: + +\image html formula1.png + +- Other element types like quadrangle, pentahedron and hexahedron use + the following formula: + +\image html formula2.png + +To apply the Aspect Ratio 3D quality criterion to your mesh: +
    +
  1. Display your mesh in the viewer.
  2. + +
  3. Choose Controls > Aspect Ratio 3D or click "Aspect Ratio 3D" +button of the toolbar. + +\image html image144.gif +
    "Aspect Ratio 3D" button
    + +Your mesh will be displayed in the viewer with its elements colored +according to the applied mesh quality control criterion: + +\image html image86.jpg +
  4. +
+ +
See Also a sample TUI Script of a +\ref tui_aspect_ratio_3d "Aspect Ratio 3D quality control" operation. + +*/ \ No newline at end of file diff --git a/doc/salome/gui/SMESH/input/basic_meshing_algos.doc b/doc/salome/gui/SMESH/input/basic_meshing_algos.doc new file mode 100644 index 000000000..fa1772524 --- /dev/null +++ b/doc/salome/gui/SMESH/input/basic_meshing_algos.doc @@ -0,0 +1,61 @@ +/*! + +\page basic_meshing_algos_page Basic meshing algorithms + +\n The MESH module contains a set of meshing algorithms, which are +used for meshing entities (1D, 2D, 3D) composing geometrical objects. + +
    +
  • For meshing of 1D entities (edges):
  • + +
      +
    • Wire Discretisation meshing algorithm - splits a wire into a +number of mesh segments following any 1D hypothesis.
    • +
    • Composite Side Discretisation algorithm - allows to apply any 1D +hypothesis to a whole side of a geometrical face even if it is +composed of several edges provided that they form C1 curve, have the +same hypotheses assigned and form one side in all faces of the main +shape of a mesh.
    • +
    + +
  • For meshing of 2D entities (faces):
  • + +
      +
    • Triangle meshing algorithms (Mefisto and Netgen 1D-2D ) - Faces +are split into triangular elements.
    • +
    • Quadrangle meshing algorithm (Mapping) - Faces are split into +quadrangular elements.
    • +
    + +\image html image123.gif + +\image html image124.gif + +
  • For meshing of 3D entities (volume objects):
  • + +
      +
    • Hexahedron meshing algorithm (i,j,k) - Volumes are split into +hexahedral (cubic) elements.
    • +
    • Tetrahedron (Netgen) meshing algorithm - Volumes are split into +tetrahedral (pyramidal) elements.
    • +
    + +\image html image125.gif + +\image html image126.gif +
+ +There also is a number of more specific algorithms: +
    +
  • \ref projection_algos_page "for meshing by projection of another mesh"
  • +
  • \ref radial_prism_algo_page "for meshing geometrical objects with cavities"
  • +
  • \ref prism_3d_algo_page "for meshing prismatic shapes"
  • +
+ +\ref constructing_meshes_page "Constructing meshes" page describes in +detail how to apply meshing algorithms. + +
See Also a sample TUI Script of a +\ref tui_defining_meshing_algos "Define Meshing Algorithm" operation. + +*/ \ No newline at end of file diff --git a/doc/salome/gui/SMESH/input/borders_at_multi_connection.doc b/doc/salome/gui/SMESH/input/borders_at_multi_connection.doc new file mode 100644 index 000000000..8f92d3995 --- /dev/null +++ b/doc/salome/gui/SMESH/input/borders_at_multi_connection.doc @@ -0,0 +1,16 @@ +/*! + +\page borders_at_multi_connection_page Borders at multi-connection + +\n This mesh quality control highlights borders of faces consisting of +edges belonging to several faces. The amount of faces is specified by +user. + +\image html image151.gif + +In this picture the borders at multi-connection are displayed in blue. + +
See Also a sample TUI Script of a +\ref tui_borders_at_multiconnection "Borders at Multi-Connection quality control" operation. + +*/ \ No newline at end of file diff --git a/doc/salome/gui/SMESH/input/borders_at_multi_connection_2d.doc b/doc/salome/gui/SMESH/input/borders_at_multi_connection_2d.doc new file mode 100644 index 000000000..a0fe04290 --- /dev/null +++ b/doc/salome/gui/SMESH/input/borders_at_multi_connection_2d.doc @@ -0,0 +1,13 @@ +/*! + +\page borders_at_multi_connection_2d_page Borders at multi-connection 2D + +\n This mesh quality control highlights borders of elements of mesh, +consisting of edges belonging to several elements of mesh. + +\image html image127.gif + +
See Also a sample TUI Script of a +\ref tui_borders_at_multiconnection_2d "Borders at Multi-Connection quality control" operation. + +*/ \ No newline at end of file diff --git a/doc/salome/gui/SMESH/input/building_compounds.doc b/doc/salome/gui/SMESH/input/building_compounds.doc new file mode 100644 index 000000000..5905565d5 --- /dev/null +++ b/doc/salome/gui/SMESH/input/building_compounds.doc @@ -0,0 +1,46 @@ +/*! + +\page building_compounds_page Building Compounds + +\n Compound Mesh is a combination of several meshes. + +To Build a compound: + +\par +From the \b Mesh menu select Build Compound or click "Build +Compound Mesh" button in the toolbar. + +\image html image161.gif +
"Build Compound Mesh" button
+ +\par +The following dialog box will appear: + +\image html buildcompound.png + +\par +
    +
  • \b Name - allows selecting the name of the resulting \b Compound.
  • +
  • \b Meshes - allows selecting the meshes which will be +concatenated. They can be chosen in the Object Browser while holding +\b Ctrl button.
  • +
  • Processing identical groups - allows selecting the method +of processing the namesake existing on the united meshes. +\n They can be either
  • +
      +
    • \b United - all elements of Group1 on Mesh_1 and Group1 on Mesh_2 +become the elements of Group1 on the Compound_Mesh, or
    • +
    • \b Renamed - Group1 on Mesh_1 becomes Group1_1 and Group1 on Mesh_2 +becomes Group1_2. See \ref grouping_elements_page "Creating Groups" +for more information about groups.
    • +
    +
  • You can simply unite meshes or choose to Merge coincident nodes +and elements, in which case it is possible to define the \b Tolerance +for this operation.
  • +
+ +\n Example: + +\image html image160.gif + +*/ \ No newline at end of file diff --git a/doc/salome/gui/SMESH/input/changing_orientation_of_elements.doc b/doc/salome/gui/SMESH/input/changing_orientation_of_elements.doc new file mode 100644 index 000000000..5cd4e48d9 --- /dev/null +++ b/doc/salome/gui/SMESH/input/changing_orientation_of_elements.doc @@ -0,0 +1,44 @@ +/*! + +\page changing_orientation_of_elements_page Changing orientation of elements + +\n Orientation of an element is changed by reverting the order of +nodes of the selected elements. + +To change orientation of elements: +
    +
  1. Display a mesh or a submesh in the 3D viewer.
  2. +
  3. In the \b Modification menu select the \b Orientation item or click +Orientation button in the toolbar. + +\image html image79.gif +
    "Orientation" button
    + +The following dialog box will appear: + +\image html orientaation1.png + +
      +
    • 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.
    • +
    • Apply to all radio button allows to modify the orientation +of all elements of the currently displayed mesh or submesh.
    • +
    • Select from set of fields allows to choose a submesh or an +existing group whose elements will be automatically added to the +list.
    • +
    + +
  4. +
  5. Click the \b Apply or \b OK button to confirm the operation.
  6. +
+ +
See Also a sample TUI Script of a +\ref tui_orientation "Change Orientation" operation. + +*/ diff --git a/doc/salome/gui/SMESH/input/clipping.doc b/doc/salome/gui/SMESH/input/clipping.doc new file mode 100644 index 000000000..5fa26b493 --- /dev/null +++ b/doc/salome/gui/SMESH/input/clipping.doc @@ -0,0 +1,28 @@ +/*! + +\page clipping_page Clipping + +\n Using this menu you can create cross-section views (clipping planes) +of your mesh. + +To start, click on the \em New button. + +\image html a-clipping2.png + +Now you can define the parameters of your cross-section: \b Orientation +(X-Y, X-Z or Y-Z); \b Distance between the opposite extremities of the +object, if it is set to 0.5 the object is split in two halves; and +\b Rotation (in angle degrees) around X (Y to Z) and around Y (X to +Z). If the Show preview button is on, you can see the clipping plane +in the Object window. + +\image html image79.jpg + +If the Auto Apply button is on, you can preview the +cross-section in the Object window. + +\image html image99.gif + +To get a new object from \b Clipping, click \b Ok. + +*/ \ No newline at end of file diff --git a/doc/salome/gui/SMESH/input/constructing_groups_of_specific_elements.doc b/doc/salome/gui/SMESH/input/constructing_groups_of_specific_elements.doc new file mode 100644 index 000000000..654b6aab8 --- /dev/null +++ b/doc/salome/gui/SMESH/input/constructing_groups_of_specific_elements.doc @@ -0,0 +1,17 @@ +/*! + +\page constructing_groups_of_specific_elements_page Constructing groups of specific elements + +\n In MESH you can easily construct groups of specific elements (nodes, +edges, faces or volumes) which will be taken from a definite submesh. + +To construct a group of specific elements: + +\par +Right-click on a submesh in the Object Browser and choose the +Construct Group item or select your submesh in the Object Browser and +in the \b Mesh menu choose the Construct Group item. MESH will construct +several groups consisting of elements of the definite type: nodes, +edges, faces or volumes. + +*/ \ No newline at end of file diff --git a/doc/salome/gui/SMESH/input/constructing_meshes.doc b/doc/salome/gui/SMESH/input/constructing_meshes.doc new file mode 100644 index 000000000..c86ab6ce0 --- /dev/null +++ b/doc/salome/gui/SMESH/input/constructing_meshes.doc @@ -0,0 +1,105 @@ +/*! + +\page constructing_meshes_page Constructing meshes + +\n Construction of a mesh consists of: +
    +
  • Selecting a geometrical object for meshing
  • +
  • Applying \ref basic_meshing_algos_page "meshing algorithms" and +\ref about_hypo_page "hypotheses" which will be used at computation of +this mesh.
  • +
+ +To construct a mesh: +
    +
  1. In the \b Mesh menu select Create Mesh or click "Create +Mesh" button in the toolbar. + +\image html image32.gif +
    "Create Mesh" button
    + +The following dialog box will appear: + +\image html createmesh-inv.png +
  2. +
  3. For example, you need to mesh a 3d object. +\n First, type the name for your mesh in the "Name" box, by default, +it is "Mesh_1". Then select the object you wish to mesh in the Object +Browser and click the "Add" button. + +\image html image120.gif +
    "Add" button
    + +Now you can define 1d Algorithm and 1d Hypotheses, which will be +applied to the edges of your object. (Note that any object has edges, +even if their existence is not apparent, for example, a sphere has 4 +edges). Click the "Add Hypothesis" button to add a hypothesis. + +\image html image121.gif +
    "Add Hypothesis" button
    + +Click the "Edit Hypothesis" button to define values for the +current hypothesis. + +\image html image122.gif +
    "Edit Hypothesis" button
    + +The use of additional hypotheses is optional (i.e. you may leave +"None" in this box). + +Proceed in the same way with 2d and 3d Algorithms and Hypotheses, note +that the choice of hypotheses depends on the algorithm. There must be +one Algorithm and one or several Hypotheses for each dimension of your +object, otherwise you will not get any mesh at all. Of course, if you +wish to mesh a face, which is a 2d object, you don't need to define 3d +Algorithm and Hypotheses. +\n In the Object Browser the structure of the new mesh will be +displayed as follows: + +\image html image88.jpg + +It contains: +
      +
    • a reference to the geometrical object on the basis of which the mesh has been constructed;
    • +
    • Applied hypotheses folder containing the references to the +hypotheses applied to the construction of the mesh;
    • +
    • Applied algorithms folder containing the references to the +algorithms applied to the construction of the mesh.
    • +
    + +There is an alternative way to create a mesh on an object simply by +clicking Assign a set of hypotheses button and selecting between +Automatic Tetrahedralization or Hexahedralization. The program will +automatically generate a 3D mesh with the most appropriate +settings. In the same way you can apply this functionality for meshing +2D objects, in which case 3D algorithms are not applied.
  4. +
  5. Now, when everything is ready, select your mesh in the Object +Browser. From the \b Mesh menu select \b Compute or click "Compute" button of the +toolbar. + +\image html image28.gif +
    "Compute" button
    + +The Mesh Computation information box appears. + +\image html meshcomputationsucceed.png + +If the mesh computation failed, the information about the cause of the +failure is provided. + +\image html meshcomputationfail.png + +After you select the error, Show Subshape button allows +visualizing the mesh elements that cause it. + +\image html failed_computation.png + +Publish Subshape button allows importing it in a separate MED +or UNV file. + +Consider trying a sample script for construction of a mesh from our +\ref tui_creating_meshes_page "TUI Scripts" section. +
  6. +
+ +*/ \ No newline at end of file diff --git a/doc/salome/gui/SMESH/input/constructing_submeshes.doc b/doc/salome/gui/SMESH/input/constructing_submeshes.doc new file mode 100644 index 000000000..ab158f2d5 --- /dev/null +++ b/doc/salome/gui/SMESH/input/constructing_submeshes.doc @@ -0,0 +1,53 @@ +/*! + +\page constructing_submeshes_page Constructing submeshes + +\n Construction of a submesh consists of: +
    +
  • Selecting a mesh which will encapsulate your submesh
  • +
  • Selecting a geometrical object for meshing
  • +
  • Applying one or several previously +\ref about_hypo_page "hypotheses" and +\ref basic_meshing_algos_page "meshing algorithms" which will be used +at computation of this submesh
  • +
+ +
To construct a submesh: +\par +From the \b Mesh menu select Local Hyp. or click "Create +Sum-mesh" button in the toolbar. + +\image html image33.gif +
"Create Sum-mesh" button
+ +\par +The following dialog box will appear: + +\image html createmesh-inv2.png + +\par +It allows to define the \b Name, the parent \b Mesh and the \b +Geometry (e.g. a face if the parent mesh has been built on box) of the +submesh. You can define algorithms and hypotheses in the same way as +in \ref constructing_meshes_page "Create mesh" menu. + +\par +In the Object Browser the structure of the new submesh will be +displayed as follows: + +\image html image10.jpg + +\par +It contains: +
    +
  • a reference to the geometrical object on the basis of which the submesh has been constructed;
  • +
  • Applied hypotheses folder containing the references to the +hypotheses applied to the construction of the submesh;
  • +
  • Applied algorithms folder containing the references to the +algorithms applied to the construction of the submesh.
  • +
+ +
See Also a sample TUI Script of a +\ref tui_construction_submesh "Construct Submesh" operation. + +*/ \ No newline at end of file diff --git a/doc/salome/gui/SMESH/input/convert_to_from_quadratic_mesh.doc b/doc/salome/gui/SMESH/input/convert_to_from_quadratic_mesh.doc new file mode 100644 index 000000000..84974a21c --- /dev/null +++ b/doc/salome/gui/SMESH/input/convert_to_from_quadratic_mesh.doc @@ -0,0 +1,40 @@ +/*! + +\page convert_to_from_quadratic_mesh_page Convert to/from Quadratic Mesh + +\n This functionality allows you to transtorm standard meshes to +quadratic and vice versa. See \ref adding_quadratic_elements_page "Adding quadratic elements" +for more information about quadratic meshes. + +To produce a conversion: +
    +
  1. From the Modification menu choose the Convert to/from Quadratic +Mesh item, or click "Convert to/from quadratic" button in the +toolbar. + +\image html image154.gif +
    "Convert to/from quadratic" button
    + +The following dialog box will appear: + +\image html convert.png + +
  2. +
  3. In this dialog box you should select: + +
      +
    • if you wish to convert standard mesh to quadratic or quadratic to standard;
    • +
    • if you wish to place medium nodes of the quadratic mesh on the geometry (meshed object).
    • +
    + +\image html image156.gif +
    Standard mesh (coarse mesh on a torus)
    + +\image html image155.gif +
    Quadratic mesh
    + +
  4. +
  5. Click the \b Apply or \b OK button.
  6. +
+ +*/ \ No newline at end of file diff --git a/doc/salome/gui/SMESH/input/creating_groups.doc b/doc/salome/gui/SMESH/input/creating_groups.doc new file mode 100644 index 000000000..bba92d58a --- /dev/null +++ b/doc/salome/gui/SMESH/input/creating_groups.doc @@ -0,0 +1,84 @@ +/*! + +\page creating_groups_page Creating groups + +\n In MESH you can create groups of elements of different types. To +create a group of elements in the \b Mesh menu select Create +Group. +\n To create any group you should define the following: +
    +
  • Mesh - the name of the mesh whose elements will form your +group. You can select your mesh in the Objet Browser or in the 3D +viewer.
  • +
  • Elements Type - set of radio buttons allows to select the type of +elements which will form your group:
  • +
      +
    • Nodes
    • +
    • Edges
    • +
    • Faces
    • +
    • Volumes
    • +
    +
  • Name field allows to enter the name of your new group.
  • +
+SALOME Platform distinguishes between the two Group types: +Standalone Group and Group on Geometry. + +

Standalone Group

+ +Standalone Group consists of mesh elements, which you can define in +two possible ways. +
    +
  • Choosing them manually with the mouse in the 3D Viewer. 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.
  • +
  • Applying Filters. The Set filter button allows to apply a +definite filter to selection of the elements of your group. See more +about filters on the +\ref selection_filter_library_page "Selection filter library" page.
  • +
+To remove a selected element or elements from the list click the +\b Remove button. The Sort List button allows to sort the list of IDs of +mesh elements. +\n Select from set of fields allows to choose a submesh or an existing +group whose elements of the previously defined type will be added to +the list of elements which will form your group. +\n Color Number (integer only, ranging from 0 to 9999) - allows to +assign to the group a certain index, for example, defining boundary +conditions. This feature introduces a useful element of preprocessing +in Mesh module. Note that Color number attribute has nothing to do +with the colors used for the display of the elements of the group. + +\image html creategroup.png + +\image html image130.gif +
In this picture the brown cells belong to a group defined manually.
+ +\image html image131.gif +
In this picture the brown cells belong to the group defined by the criterion +Taper > 0.
+ +See Also a sample TUI Script of a +\ref tui_create_standalone_group "Create a Standalone Group" +operation. + +

Group on Geometry

+ +To create a group on geometry check Group on geometry in the \b Group +\b type field. Group on geometry contains the elements of a certain type +belonging to the selected geometrical object. To define a group select +in the Objet Browser or in the 3D viewer a geometrical object from +which the elements will be taken. After confirmation of the operation +a new group of mesh elements will be created. + +\image html a-creategroup.png + +\image html image132.gif +
In this picture the cells which belong to a certain face are +selected in green.
+ +See Also a sample TUI Script of a +\ref tui_create_group_on_geometry "Create a Group on Geometry" +operation. + +*/ \ No newline at end of file diff --git a/doc/salome/gui/SMESH/input/creating_meshes.doc b/doc/salome/gui/SMESH/input/creating_meshes.doc new file mode 100644 index 000000000..3f392f2fc --- /dev/null +++ b/doc/salome/gui/SMESH/input/creating_meshes.doc @@ -0,0 +1,31 @@ +/*! + +\page creating_meshes_page Creating meshes + +
    +
  • \subpage about_meshes_page
  • +
  • \subpage importing_exporting_meshes_page
  • +
  • \subpage constructing_meshes_page
  • +
  • \subpage defining_algos_page
  • +
      +
    • \ref basic_meshing_algos_page
    • +
    • \ref projection_algos_page
    • +
    • \ref radial_prism_algo_page
    • +
    • \ref segments_around_vertex_algo_page
    • +
    • \ref prism_3d_algo_page
    • +
    +
  • \subpage defining_hypo_page
  • +
      +
    • \ref about_hypo_page
    • +
    • \ref a1d_meshing_hypo_page
    • +
    • \ref a2d_meshing_hypo_page
    • +
    • \ref max_element_volume_hypo_page
    • +
    • \ref netgen_2d_3d_hypo_page
    • +
    • \ref additional_hypo_page
    • +
    +
  • \subpage constructing_submeshes_page
  • +
  • \subpage building_compounds_page
  • +
  • \subpage editing_meshes_page
  • +
+ +*/ \ No newline at end of file diff --git a/doc/salome/gui/SMESH/input/cutting_quadrangles.doc b/doc/salome/gui/SMESH/input/cutting_quadrangles.doc new file mode 100644 index 000000000..d857165e1 --- /dev/null +++ b/doc/salome/gui/SMESH/input/cutting_quadrangles.doc @@ -0,0 +1,63 @@ +/*! + +\page cutting_quadrangles_page Cutting quadrangles + +\n This operation allows to cut one or several quadrangle elements by +addition of a supplementary edge which will connect two opposite +corners. + +To cut quadrangles: +
    +
  1. Display a mesh or a submesh in the 3D viewer.
  2. +
  3. In the \b Modification menu select the Cutting of quadrangles item or +click "Cutting of quadrangles" button in the toolbar. + +\image html image82.gif +
    "Cutting of quadrangles" button
    + +The following dialog box will appear: + +\image html a-cuttingofquadrangles.png + +\par +
      +
    • The main list contains the list of quadrangles. You can click on +an quadrangle in the 3D viewer and it will be highlighted (lock Shift +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 to sort the list of IDs. \b Filter button allows to +apply a definite filter to the selection of quadrangles.
    • +
    • Apply to all radio button allows to modify the orientation of all +quadrangles of the currently displayed mesh or submesh.
    • +
    • \b Preview - provides a preview of cutting in the viewer.
    • +
    + +
      +
    • \b Criterion +
        +
      • Use diagonal 1-3 and Use diagonal 2-4 allows to +specify the opposite corners which will be connected by the cutting +edge.
      • +
      • Use numeric factor - allows to apply the operation only to +those objects which meet the chosen criterion (from the list of +Quality Controls, i.e. Skew, Warping, Minimum Angle, etc.)
      • +
      +
    • +
    • Select from - allows to choose a submesh or an existing +group whose quadrangle elements will be automatically added to the +list.
    • +
    + +
  4. +
  5. Click the \b Apply or \b OK button to confirm the operation.
  6. +
+ +\image html image52.jpg + +\image html image51.jpg + +
See Also a sample TUI Script of a +\ref tui_cutting_quadrangles "Cutting Quadrangles" operation. + +*/ \ No newline at end of file diff --git a/doc/salome/gui/SMESH/input/defining_algos.doc b/doc/salome/gui/SMESH/input/defining_algos.doc new file mode 100644 index 000000000..1ddac9f37 --- /dev/null +++ b/doc/salome/gui/SMESH/input/defining_algos.doc @@ -0,0 +1,13 @@ +/*! + +\page defining_algos_page Defining Algorithms + +
    +
  • \subpage basic_meshing_algos_page
  • +
  • \subpage projection_algos_page
  • +
  • \subpage radial_prism_algo_page
  • +
  • \subpage segments_around_vertex_algo_page
  • +
  • \subpage prism_3d_algo_page
  • +
+ +*/ \ No newline at end of file diff --git a/doc/salome/gui/SMESH/input/defining_hypo.doc b/doc/salome/gui/SMESH/input/defining_hypo.doc new file mode 100644 index 000000000..5a4eb7503 --- /dev/null +++ b/doc/salome/gui/SMESH/input/defining_hypo.doc @@ -0,0 +1,14 @@ +/*! + +\page defining_hypo_page Defining hypotheses + +
    +
  • \subpage about_hypo_page
  • +
  • \subpage a1d_meshing_hypo_page
  • +
  • \subpage a2d_meshing_hypo_page
  • +
  • \subpage max_element_volume_hypo_page
  • +
  • \subpage netgen_2d_3d_hypo_page
  • +
  • \subpage additional_hypo_page
  • +
+ +*/ \ No newline at end of file diff --git a/doc/salome/gui/SMESH/input/deleting_groups.doc b/doc/salome/gui/SMESH/input/deleting_groups.doc new file mode 100644 index 000000000..02779cde6 --- /dev/null +++ b/doc/salome/gui/SMESH/input/deleting_groups.doc @@ -0,0 +1,19 @@ +/*! + +\page deleting_groups_page Deleting Groups + +\n To delete a group in the Main Menu select Mesh -> Delete Groups and +select one or several groups you wish to delete in the 3D viewer or in +the Object Browser. +\n The selected groups will be listed in Delete groups with contents +menu. Then click Ok button to remove the selected groups and close the +menu or Apply button to remove them and proceed with the selection. + +\image html deletegroups.png + +\n Please, note that this operation removes groups with their +elements. To delete a group and leave its elements intact, right-click +on the group in the Object Browser and select \b Delete in the pop-up +menu or select the group and choose Edit -> Delete in the Main Menu. + +*/ \ No newline at end of file diff --git a/doc/salome/gui/SMESH/input/diagonal_inversion_of_elements.doc b/doc/salome/gui/SMESH/input/diagonal_inversion_of_elements.doc new file mode 100644 index 000000000..871e110cc --- /dev/null +++ b/doc/salome/gui/SMESH/input/diagonal_inversion_of_elements.doc @@ -0,0 +1,33 @@ +/*! + +\page diagonal_inversion_of_elements_page Diagonal inversion of elements + +\n In MESH you can inverse the diagonal (edge) of a pseudo-quadrangle +formed by two neighboring triangles with one common edge. + +To inverse the diagonal: +
    +
  1. From the \b Modification menu choose the Diagonal inversion item or +click "Diagonal Inversion" button in the toolbar. + +\image html image70.gif +
    "Diagonal Inversion" button
    + +The following dialog box shall appear: + +\image html diagonalinversion.png + +
  2. +
  3. Enter the ID of the required edge in the \b Edge field or select +this edge in the 3D viewer.
  4. +
  5. Click the \b Apply or \b OK button.
  6. +
+ +\image html image38.jpg + +\image html image36.jpg + +
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/display_entity.doc b/doc/salome/gui/SMESH/input/display_entity.doc new file mode 100644 index 000000000..570674017 --- /dev/null +++ b/doc/salome/gui/SMESH/input/display_entity.doc @@ -0,0 +1,12 @@ +/*! + +\page display_entity_page Display Entity + +\n In this submenu you can choose to display only volumes, faces or +edges or combine them. + +\image html image56.jpg Only Faces + +\image html image58.gif Only Edges + +*/ \ No newline at end of file diff --git a/doc/salome/gui/SMESH/input/display_mode.doc b/doc/salome/gui/SMESH/input/display_mode.doc new file mode 100644 index 000000000..7ba8e54bf --- /dev/null +++ b/doc/salome/gui/SMESH/input/display_mode.doc @@ -0,0 +1,22 @@ +/*! + +\page display_mode_page Display Mode + +\n By default your objects are represented as set in \b Preferences. +\n However, right-clicking on the mesh in the Object Browser, +and selecting Display Mode, you can display your mesh as: + +\image html image53.gif Wireframe + +\image html image37.jpg Shading + +\image html image56.gif Nodes + +\b Wireframe can combine with \b Nodes and \b Shading. + +\b Shading and \b Wireframe modes can combine with \b Shrink, however +\b Nodes can't. + +\image html image55.gif + +*/ \ No newline at end of file diff --git a/doc/salome/gui/SMESH/input/editing_groups.doc b/doc/salome/gui/SMESH/input/editing_groups.doc new file mode 100644 index 000000000..5658f2f4e --- /dev/null +++ b/doc/salome/gui/SMESH/input/editing_groups.doc @@ -0,0 +1,27 @@ +/*! + +\page editing_groups_page Editing groups + +\n To edit an existing group of elements: +
    +
  1. Select your group in the Object Browser and in the \b Mesh menu click +the Edit Group item or "Edit Group" button in the toolbar.
  2. + +\image html image74.gif +
    "Edit Group" button
    + +The following dialog box will appear: + +\image html editgroup.png + +In this dialog box you can modify the name of your group and add or +remove the elements forming it. For more information see +\ref creating_groups_page "Creating Groups" page. +
  3. Click the \b OK or \b Apply button to confirm modification of the +group.
  4. +
+ +
See Also a sample TUI Script of an +\ref tui_edit_group "Edit Group" operation. + +*/ \ No newline at end of file diff --git a/doc/salome/gui/SMESH/input/editing_meshes.doc b/doc/salome/gui/SMESH/input/editing_meshes.doc new file mode 100644 index 000000000..b36f7849f --- /dev/null +++ b/doc/salome/gui/SMESH/input/editing_meshes.doc @@ -0,0 +1,31 @@ +/*! + +\page editing_meshes_page Editing Meshes + +\n After you have created a mesh or submesh with definite applied +hypotheses and algorithms you can edit your mesh by \b assigning new +hypotheses and algorithms or \b unassigning the applied hypotheses and +algorithms. The editing proceeds in the same way as Mesh +Creation. + +\image html createmesh-inv3.png + +You can also change values for the current hypothesis by clicking the +"Edit Hypothesis" button. + +\image html image122.gif +
"Edit Hypothesis" button
+ +See how a mesh constructed on one and the same geometrical object +changes if we apply different algorithms to it. + +\image html edit_mesh1.png + +\image html edit_mesh_remove_hyp.png + +\image html edit_mesh_change_value_hyp.png + +
See Also a sample TUI Script of an +\ref tui_editing_mesh "Edit Mesh" operation. + +*/ \ No newline at end of file diff --git a/doc/salome/gui/SMESH/input/extrusion.doc b/doc/salome/gui/SMESH/input/extrusion.doc new file mode 100644 index 000000000..370eff1e0 --- /dev/null +++ b/doc/salome/gui/SMESH/input/extrusion.doc @@ -0,0 +1,47 @@ +/*! + +\page extrusion_page Extrusion + +\n Extrusion is a type of surface meshing by generation from +discretized lines. It is used to build mesh elements of plus one +dimension than the swept ones. Each swept 1D element produces one or +more quadrangles (or triangles if one node of a rotated element lays +on the revolution axis). + +To use extrusion: +
    +
  1. From the \b Modification menu choose the \b Extrusion item or click +"Extrusion" button in the toolbar. + +\image html image91.gif +
    "Extrusion" button
    + +The following dialog box will appear: + +\image html extrusionalongaline1.png + +\image html extrusionalongaline2.png +
  2. + +
  3. In this dialog box you should select: +
      +
    • the type of elements which will be extruded (1D or 2D),
    • +
    • specify the IDs of the elements which will be extruded by +selecting them in the 3D viewer or select the whole mesh or +submesh,
    • +
    • specify the vector along which the elements will be extruded,
    • +
    • number of steps.
    • +
    +
  4. + +
  5. Click the \b Apply or \b OK button.
  6. +
+ +\image html image77.jpg + +\image html image76.jpg + +
See Also a sample TUI Script of an +\ref tui_extrusion "Extrusion" operation. + +*/ \ No newline at end of file diff --git a/doc/salome/gui/SMESH/input/extrusion_along_path.doc b/doc/salome/gui/SMESH/input/extrusion_along_path.doc new file mode 100644 index 000000000..721c027f7 --- /dev/null +++ b/doc/salome/gui/SMESH/input/extrusion_along_path.doc @@ -0,0 +1,149 @@ +/*! + +\page extrusion_along_path_page Extrusion along a path + +\n In principle, Extrusion along a path works in the same way +as \b Extrusion, the main difference is that we define not a vector, +but a path of extrusion which must be a meshed edge. To get an idea of +how this algorithm works, examine several examples, starting from the +most simple case of extrusion along a straight edge. In all examples +the same mesh will be extruded along different paths and with +different parameters. This sample 2D mesh has two quadrangle faces and +seven edges. Look at the picture, where white digits are the node +numbers and green are the element numbers: + +\image html mesh_for_extr_along_path.png + +

Extrusion along a straight edge

(not using base point +or angles)
+ +\image html straight_before.png +
The image shows a 1D path mesh, built on a linear edge, and the initial 2D mesh.
+ +\image html straight_after.png +
The image shows the result of extrusion of two edges +(#1 and #2) of the initial mesh along the path. \n Node #1 of path mesh +has been selected as Start node.
+ +

Extrusion along a curvilinear edge

(with and +without angles)
+ +\image html curvi_simple_before.png +
The image shows a 1D path mesh, built on curvilinear edge, and +the initial 2D mesh.
+ +\image html curvi_simple_after.png +
The central image shows the result of extrusion of one edge +(#2) of the initial mesh along the path. \n Node #1 of path mesh has +been selected as Start node.
+ +\image html curvi_angles_after.png +
The same, but using angles {45, 45, 45, 0, -45, -45, -45}
+ +

Extrusion along a sub-mesh

+ +In this example the path mesh has been built on a wire (polyline with +six edges). The first edge of the wire was used as Shape (edge), node +#1 as Start node. The angles have been defined as {10, 10, 10}. The +middle edge (#4) of the initial mesh has been extruded. + +\image html edge_wire_before.png + +\image html edge_wire_after.png + +

Extrusion of 2d elements along a sub-mesh

+ +This extrusion bases on the same path mesh as in the previous example +but the third edge of the wire was set as Shape (edge) and node +#4 as Start node. Please note, that the extrusion has been done +in direction from node #4 to node #3, i.e. against the wire +direction. In this example both faces of the initial mesh have been +extruded. + +\image html edge_wire_3d_before.png + +\image html edge_wire_3d_after.png + +

Extrusion of 2d elements along a closed path

+ +\image html circle_simple_before.png +
The image shows a path mesh built on a closed edge +(circle).
+ +\image html circle_simple_after.png +
The central image shows the result of extrusion of both faces +of the initial mesh. \n Note, that no sewing has been done, so, there are +six coincident nodes and two coincident faces in the resulting +mesh.
+ +\image html circle_angles_after.png +
The same, but using angles {45, -45, 45, -45, 45, -45, 45, +-45}
+ +
To use Extrusion along a path: +
    +
  1. From the \b Modification menu choose the Extrusion along a +path item or click "Extrusion along a path" button in the toolbar. + +\image html image101.gif +
    "Extrusion along a path" button
    + +The following dialog box will appear: + +\image html extrusion1.png +
  2. + +
  3. In the dialog box you should: +
      +
    • select the type of elements which will be extruded (1D or 2D),
    • +
    • specify the IDs of the elements which will be extruded by +selecting them in the 3D viewer or Select the whole mesh, submesh +or group, +
    • +
    • define the Path along which the elements will be extruded, +\n Path definition consists of several elements: +
        +
      • \b Mesh - containing a 1D sub-mesh on the edge, along which proceeds the extrusion
      • +
      • Shape (edge) - as the mesh can be complex, the edge is used to define the sub-mesh for the path
      • +
      • Start node - the first or the last node on the edge. It is used to define the direction of extrusion
      • +
      +
    • +
    +
  4. + +
  5. There are two optional parameters, which can be very useful: +
      +
    • If the path of extrusion is curvilinear, at each iteration the +extruded shape is rotated to keep its initial angularity to the +curve. By default, the Base Point around which the shape is rotated is +the mass center of the shape, however, you can specify any point as +the Base Point and the shape will be rotated with respect to this +point. +
    • +
    • The shape can also be rotated around the path to get the resulting +mesh in a helical fashion. You can set the values of angles at the +right, add them to the list of angles at the left by pressing the "Add" +button and remove them from the list by pressing the "Remove" button. + +\image html image105.gif +
      "Add" button
      + +\image html image106.gif +
      "Remove" button
      + +
    • +
    +
  6. + +
  7. Click the \b Apply or \b OK button. Mesh edges will be extruded into +faces, faces into volumes. The external surface of the resulting 3d +mesh (if faces have been extruded) is covered with faces, and corners +with edges. If the path is closed, the resulting mesh can contain +duplicated nodes and faces, because no sewing is done. +
  8. +
+ +
See Also a sample TUI Script of an +\ref tui_extrusion_along_path "Extrusion along a Path" operation. + +*/ \ No newline at end of file diff --git a/doc/salome/gui/SMESH/input/free_borders.doc b/doc/salome/gui/SMESH/input/free_borders.doc new file mode 100644 index 000000000..824fbd9e0 --- /dev/null +++ b/doc/salome/gui/SMESH/input/free_borders.doc @@ -0,0 +1,15 @@ +/*! + +\page free_borders_page Free borders + +\n This mesh quality control highlights borders of faces consisting of +edges belonging to one face only. + +\image html free_borders1.png + +In this picture the free borders are displayed in white. + +
See Also a sample TUI Script of a +\ref tui_free_borders "Free Borders quality control" operation. + +*/ \ No newline at end of file diff --git a/doc/salome/gui/SMESH/input/free_edges.doc b/doc/salome/gui/SMESH/input/free_edges.doc new file mode 100644 index 000000000..2d51733fc --- /dev/null +++ b/doc/salome/gui/SMESH/input/free_edges.doc @@ -0,0 +1,15 @@ +/*! + +\page free_edges_page Free edges + +\n This mesh quality control highlights borders of elements of mesh +consisting of edges belonging to one element of mesh only. + +\image html free_edges.png +
In this picture some elements of mesh have been deleted and +the "holes" are outlined in red.
+ +
See Also a sample TUI Script of a +\ref tui_free_edges "Free Edges quality control" operation. + +*/ \ No newline at end of file diff --git a/doc/salome/gui/SMESH/input/grouping_elements.doc b/doc/salome/gui/SMESH/input/grouping_elements.doc new file mode 100644 index 000000000..a9a636793 --- /dev/null +++ b/doc/salome/gui/SMESH/input/grouping_elements.doc @@ -0,0 +1,14 @@ +/*! + +\page grouping_elements_page Grouping elements + +
    +
  • \subpage creating_groups_page
  • +
  • \subpage editing_groups_page
  • +
  • \subpage using_operations_on_groups_page
  • +
  • \subpage constructing_groups_of_specific_elements_page
  • +
  • \subpage deleting_groups_page
  • +
  • \subpage selection_filter_library_page
  • +
+ +*/ diff --git a/doc/salome/gui/SMESH/input/importing_exporting_meshes.doc b/doc/salome/gui/SMESH/input/importing_exporting_meshes.doc new file mode 100644 index 000000000..a202eea82 --- /dev/null +++ b/doc/salome/gui/SMESH/input/importing_exporting_meshes.doc @@ -0,0 +1,37 @@ +/*! + +\page importing_exporting_meshes_page Importing and exporting meshes + +\n In MESH there is a functionality allowing importation/exportation +of meshes from \b MED and \b UNV (I-DEAS 10) format files. + +To import a mesh: + +
    +
  1. From the \b File menu choose the \b Import item, from its sub-menu +select the corresponding format (MED, UNV) of the file containing +your mesh.
  2. +
  3. In the standard Search File dialog box find the file for +importation.
  4. +
  5. Click the \b OK button.
  6. +
+ +\image html meshimportmesh.png + +To export a mesh: + +
    +
  1. Select the object you wish to export.
  2. +
  3. From the \b File menu choose the \b Export item, from its sub-menu +select the format (MED, UNV) of the file which will contain your +exported mesh.
  4. +
  5. In the standard Search File select a location for the +exported file and enter its name.
  6. +
  7. Click the \b OK button.
  8. +
+ +\image html meshexportmesh.png + +
See Also a sample TUI Script of an \ref tui_export_mesh "Export Mesh" operation. + +*/ \ No newline at end of file diff --git a/doc/salome/gui/SMESH/input/index.doc b/doc/salome/gui/SMESH/input/index.doc new file mode 100644 index 000000000..f09cdea83 --- /dev/null +++ b/doc/salome/gui/SMESH/input/index.doc @@ -0,0 +1,114 @@ +/*! + +\mainpage SMESH Module Reference Documentation + +
    +
  • \subpage introduction_to_mesh_page
  • +
  • \subpage running_mesh_module_page
  • +
  • \subpage introduction_to_mesh_python_page
  • +
  • \subpage creating_meshes_page
  • +
      +
    • \ref about_meshes_page
    • +
    • \ref importing_exporting_meshes_page
    • +
    • \ref constructing_meshes_page
    • +
    • \ref defining_algos_page
    • +
        +
      • \ref basic_meshing_algos_page
      • +
      • \ref projection_algos_page
      • +
      • \ref radial_prism_algo_page
      • +
      • \ref segments_around_vertex_algo_page
      • +
      • \ref prism_3d_algo_page
      • +
      +
    • \ref defining_hypo_page
    • +
        +
      • \ref about_hypo_page
      • +
      • \ref a1d_meshing_hypo_page
      • +
      • \ref a2d_meshing_hypo_page
      • +
      • \ref max_element_volume_hypo_page
      • +
      • \ref netgen_2d_3d_hypo_page
      • +
      • \ref additional_hypo_page
      • +
      +
    • \ref constructing_submeshes_page
    • +
    • \ref building_compounds_page
    • +
    • \ref editing_meshes_page
    • +
    +
  • \subpage viewing_meshes_page
  • +
      +
    • \ref viewing_meshes_overview_page
    • +
    • \ref mesh_infos_page
    • +
    • \ref numbering_page
    • +
    • \ref display_mode_page
    • +
    • \ref display_entity_page
    • +
    • \ref transparency_page
    • +
    • \ref clipping_page
    • +
    +
  • \subpage quality_controls_page
  • +
      +
    • \ref about_quality_controls_page
    • +
    • \ref free_borders_page
    • +
    • \ref borders_at_multi_connection_page
    • +
    • \ref length_page
    • +
    • \ref free_edges_page
    • +
    • \ref length_2d_page
    • +
    • \ref borders_at_multi_connection_2d_page
    • +
    • \ref area_page
    • +
    • \ref taper_page
    • +
    • \ref aspect_ratio_page
    • +
    • \ref minimum_angle_page
    • +
    • \ref warping_page
    • +
    • \ref skew_page
    • +
    • \ref aspect_ratio_3d_page
    • +
    • \ref volume_page
    • +
    +
  • \subpage grouping_elements_page
  • +
      +
    • \ref creating_groups_page
    • +
    • \ref editing_groups_page
    • +
    • \ref using_operations_on_groups_page
    • +
    • \ref constructing_groups_of_specific_elements_page
    • +
    • \ref deleting_groups_page
    • +
    • \ref selection_filter_library_page
    • +
    +
  • \subpage modifying_meshes_page
  • +
      +
    • \ref adding_nodes_and_elements_page
    • +
    • \ref adding_quadratic_elements_page
    • +
    • \ref removing_nodes_and_elements_page
    • +
    • \ref renumbering_nodes_and_elements_page
    • +
    • \ref transforming_meshes_page
    • +
        +
      • \ref translation_page
      • +
      • \ref rotation_page
      • +
      • \ref symmetry_page
      • +
      • \ref sewing_meshes_page
      • +
      • \ref merging_nodes_page
      • +
      • \ref merging_elements_page
      • +
      +
    • \ref moving_nodes_page
    • +
    • \ref mesh_through_point_page
    • +
    • \ref diagonal_inversion_of_elements_page
    • +
    • \ref uniting_two_triangles_page
    • +
    • \ref uniting_set_of_triangles_page
    • +
    • \ref changing_orientation_of_elements_page
    • +
    • \ref cutting_quadrangles_page
    • +
    • \ref smoothing_page
    • +
    • \ref extrusion_page
    • +
    • \ref extrusion_along_path_page
    • +
    • \ref revolution_page
    • +
    • \ref pattern_mapping_page
    • +
    • \ref convert_to_from_quadratic_mesh_page
    • +
    +
  • \subpage smeshpy_interface_page
  • +
  • \subpage tui_scripts_page
  • +
      +
    • \ref tui_creating_meshes_page
    • +
    • \ref tui_viewing_meshes_page
    • +
    • \ref tui_defining_hypotheses_page
    • +
    • \ref tui_quality_controls_page
    • +
    • \ref tui_grouping_elements_page
    • +
    • \ref tui_modifying_meshes_page
    • +
    • \ref tui_transforming_meshes_page
    • +
    +
+ +*/ diff --git a/doc/salome/gui/SMESH/input/introduction_to_mesh.doc b/doc/salome/gui/SMESH/input/introduction_to_mesh.doc new file mode 100644 index 000000000..5b80bb158 --- /dev/null +++ b/doc/salome/gui/SMESH/input/introduction_to_mesh.doc @@ -0,0 +1,64 @@ +/*! + +\page introduction_to_mesh_page Introduction to MESH + +\n \b MESH module of SALOME is destined for: +
    +
  • \ref importing_exporting_meshes_page "import and export of meshes in MED format",
  • +
  • \ref constructing_meshes_page "meshing geometrical models" +previously created or imported by the GEOM component. MESH module +allows to apply 1D, 2D, 3D meshing algorithms and a set of hypotheses: +
      +
    • \ref arithmetic_1d_anchor "Arithmetic 1D"
    • +
    • \ref average_length_anchor "Average Length"
    • +
    • \ref deflection_1d_anchor "Deflection 1D"
    • +
    • \ref number_of_segments_anchor "Number of segments"
    • +
    • \ref start_and_end_length_anchor "Start and end length"
    • +
    • \ref automatic_length_anchor "Automatic Length"
    • +
    • \ref max_element_area_anchor "Max Element Area"
    • +
    • \ref length_from_edges_anchor "Length from Edges"
    • +
    • \ref quadrangle_preference_anchor "Quadrangle Preference"
    • +
    • \ref max_element_volume_hypo_page "Max Element Volume"
    • +
    +
  • +
  • modification of locally generated meshes by +
      +
    • \ref adding_nodes_and_elements_page "Addition" of nodes and elements
    • +
    • \ref removing_nodes_and_elements_page "Removal" of nodes and elements
    • +
    +
  • +
  • \ref creating_groups_page "grouping mesh elements" and +\ref using_operations_on_groups_page "performing operations on these groups"
  • +
  • \ref about_quality_controls_page "quality control" of meshes basing on a set of definite criteria - + +for edges: +
      +
    • \ref length_page "Length of edges"
    • +
    • \ref borders_at_multi_connection_page "Borders at multi-connection"
    • +
    • \ref free_borders_page "Free borders"
    • +
    + +for faces: +
      +
    • \ref area_page "Area"
    • +
    • \ref free_edges_page "Free edges"
    • +
    • \ref borders_at_multi_connection_2d_page "Borders at multi-connection 2D"
    • +
    • \ref length_2d_page "Length 2D"
    • +
    • \ref minimum_angle_page "Minimum angle"
    • +
    • \ref taper_page "Taper"
    • +
    • \ref aspect_ratio_page "Aspect Ratio"
    • +
    • \ref warping_page "Warping"
    • +
    • \ref skew_page "Skew"
    • +
    + +for solids: +
      +
    • \ref aspect_ratio_3d_page "Aspect ratio 3D"
    • +
    • \ref volume_page "Volume"
    • +
    +
  • +
+ +\image html image7.jpg + +*/ \ No newline at end of file diff --git a/doc/salome/gui/SMESH/input/introduction_to_mesh_python.doc b/doc/salome/gui/SMESH/input/introduction_to_mesh_python.doc new file mode 100644 index 000000000..eb475e48a --- /dev/null +++ b/doc/salome/gui/SMESH/input/introduction_to_mesh_python.doc @@ -0,0 +1,77 @@ +/*! + +\page introduction_to_mesh_python_page Introduction to MESH module python interface + +\n Package smesh provides a standard API for creation and edition of meshes. +\n Below you can see an example of usage of the package smesh for 3d mesh generation. + +

Example of 3d mesh generation with NETGEN:

+ +\n from geompy import * +\n import smesh + +# Geometry +\n # an assembly of a box, a cylinder and a truncated cone meshed with tetrahedral. + +# Define values +\n name = "ex21_lamp" +\n cote = 60 +\n section = 20 +\n size = 200 +\n radius_1 = 80 +\n radius_2 = 40 +\n height = 100 + +# Build a box +\n box = MakeBox(-cote, -cote, -cote, +cote, +cote, +cote) + +# Build a cylinder +\n pt1 = MakeVertex(0, 0, cote/3) +\n di1 = MakeVectorDXDYDZ(0, 0, 1) +\n cyl = MakeCylinder(pt1, di1, section, size) + +# Build a truncated cone +\n pt2 = MakeVertex(0, 0, size) +\n cone = MakeCone(pt2, di1, radius_1, radius_2, height) + +# Fuse +\n box_cyl = MakeFuse(box, cyl) +\n piece = MakeFuse(box_cyl, cone) + +# Add in study +\n addToStudy(piece, name) + +# Create a group of faces +\n group = CreateGroup(piece, ShapeType["FACE"]) +\n group_name = name + "_grp" +\n addToStudy(group, group_name) +\n group.SetName(group_name) + +# Add faces in the group +\n faces = SubShapeAllIDs(piece, ShapeType["FACE"]) +\n UnionIDs(group, faces) + +# Create a mesh + +# Define a mesh on a geometry +\n tetra = smesh.Mesh(piece, name) + +# Define 1D hypothesis +\n algo1d = tetra.Segment() +\n algo1d.LocalLength(10) + +# Define 2D hypothesis +\n algo2d = tetra.Triangle() +\n algo2d.LengthFromEdges() + +# Define 3D hypothesis +\n algo3d = tetra.Tetrahedron(smesh.NETGEN) +\n algo3d.MaxElementVolume(100) + +# Compute the mesh +\n tetra.Compute() + +# Create a groupe of faces +\n tetra.Group(group) + +*/ \ No newline at end of file diff --git a/doc/salome/gui/SMESH/input/length.doc b/doc/salome/gui/SMESH/input/length.doc new file mode 100644 index 000000000..e8210294d --- /dev/null +++ b/doc/salome/gui/SMESH/input/length.doc @@ -0,0 +1,13 @@ +/*! + +\page length_page Length + +\n Length quality control criterion returns a value of length of +edge. + +\image html length-crit.png + +
See Also a sample TUI Script of a +\ref tui_length_1d "Length quality control" operation. + +*/ \ No newline at end of file diff --git a/doc/salome/gui/SMESH/input/length_2d.doc b/doc/salome/gui/SMESH/input/length_2d.doc new file mode 100644 index 000000000..50bab5574 --- /dev/null +++ b/doc/salome/gui/SMESH/input/length_2d.doc @@ -0,0 +1,28 @@ +/*! + +\page length_2d_page Length 2D + +\n This quality control criterion consists of calculation of length of +the edges combining the meshing elements (triangles and quadrangles) +of your mesh. + +To apply the Length 2D quality criterion to your mesh: +
    +
  1. Display your mesh in the viewer.
  2. + +
  3. Choose Controls > Length 2D or click "Length 2D" +button in the toolbar. + +\image html image34.gif +
    "Length 2D" button
    + +Your mesh will be displayed in the viewer with its elements colored according to the applied mesh quality control criterion: + +\image html length2d.png +
  4. +
+ +
See Also a sample TUI Script of a +\ref tui_length_2d "Length 2D quality control" operation. + +*/ \ No newline at end of file diff --git a/doc/salome/gui/SMESH/input/max_element_volume_hypo.doc b/doc/salome/gui/SMESH/input/max_element_volume_hypo.doc new file mode 100644 index 000000000..617591774 --- /dev/null +++ b/doc/salome/gui/SMESH/input/max_element_volume_hypo.doc @@ -0,0 +1,16 @@ +/*! + +\page max_element_volume_hypo_page Max Element Volume hypothesis + +\n Max Element Area hypothesis is applied for meshing of 3D objects +composing your geometrical object. Definition of this hypothesis +consists of setting the maximum volume of 3D meshing elements +(depending on the chosen meshing algorithm it can be \b hexahedrons or +\b tetrahedrons), which will compose the mesh of these 3D objects. + +\image html a-maxelvolume.png + +
See Also a sample TUI Script of a +\ref tui_max_element_volume "Maximum Element Volume hypothesis" 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 new file mode 100644 index 000000000..5433178e8 --- /dev/null +++ b/doc/salome/gui/SMESH/input/merging_elements.doc @@ -0,0 +1,19 @@ +/*! + +\page merging_elements_page Merging Elements + +\n This functionality allows to merge coincident elements of a mesh +selectable in the dialog box. + +\image html mergeelems.png + +In this picture you see a triangle which coincides with one of the +elements of the mesh. After we apply Merge Elements functionality, the +triangle will be completely merged with the mesh. + +\image html meshtrianglemergeelem1.png + +
See Also a sample TUI Script of a +\ref tui_merging_elements "Merge Elements" operation. + +*/ \ No newline at end of file diff --git a/doc/salome/gui/SMESH/input/merging_nodes.doc b/doc/salome/gui/SMESH/input/merging_nodes.doc new file mode 100644 index 000000000..7c5d62273 --- /dev/null +++ b/doc/salome/gui/SMESH/input/merging_nodes.doc @@ -0,0 +1,61 @@ +/*! + +\page merging_nodes_page Merging nodes + +\n This functionality allows user to detect groups of coincident nodes +with desirable tolerance, edit these groups and merge. + +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: + +\image html mergenodes.png + +
      +
    • \b Name is the name of the mesh whose nodes will be merged.
    • +
    • \b Tolerance is a maximum distance between nodes sufficient for +merging. +
        +
      • \b Detect button generates the list of coincident nodes for the given +\b Tolerance.
      • +
      +
    • +
    • Coincident nodes is a list of groupes of nodes for +merging. All nodes of each group will form one after the +operation. +
        +
      • \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.
      • +
      +
    • +
    • Edit selected group list allows editing the selected +group: +

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

      +
    • +
    +
  2. +
  3. To confirm your choice click \b OK or \b Apply button.
  4. +
+ +\image html merging_nodes1.png + +\image html merging_nodes2.png + +
See Also a sample TUI Script of a +\ref tui_merging_nodes "Merge Nodes" operation. + +*/ \ No newline at end of file diff --git a/doc/salome/gui/SMESH/input/mesh_infos.doc b/doc/salome/gui/SMESH/input/mesh_infos.doc new file mode 100644 index 000000000..9cf08565c --- /dev/null +++ b/doc/salome/gui/SMESH/input/mesh_infos.doc @@ -0,0 +1,56 @@ +/*! + +\page mesh_infos_page Mesh infos + +\n There are two types of information boxes: Standard Mesh +Infos and Advanced Mesh Infos. +
    +
  • \ref standard_mesh_infos_anchor "Standard"
  • +
  • \ref advanced_mesh_infos_anchor "Advanced"
  • +
+ +
+\anchor standard_mesh_infos_anchor +

Standard Mesh Infos

+ +The Standard Mesh Infos box gives only the information on the +number of elements of maximum dimension and the number of nodes in the +mesh. However, from this Info you can learn about groups selected on +this mesh. +\n To view the Standard Mesh Infos, select your mesh or submesh +in the Object Browser and select Standard Mesh Infos +from the \b Mesh menu or click "Standard Mesh Infos" button +in the toolbar. + +\image html image49.gif +
"Standard Mesh Infos" button
+ +The following information will be displayed: + +\image html a-standmeshinfo.png + +
+\anchor advanced_mesh_infos_anchor +

Advanced Mesh Infos

+ +The Advanced Mesh Infos gives more information about the mesh, +including the total number of faces and volumes and their geometrical +types. +\n To view the Advanced Mesh Infos, select your mesh or submesh +in the Object Browser and select Advanced Mesh Infos +from the \b Mesh menu or click "Advanced Mesh Infos" button +in the toolbar. + +\image html image50.gif +
"Advanced Mesh Infos" button
+ +The following information will be displayed: + +\image html advanced_mesh_infos.png + +In case you get Mesh Infos via a \ref tui_viewing_mesh_infos "TUI script", +the information is displayed in Python Console. + +\image html b-mesh_infos.png + +*/ \ No newline at end of file diff --git a/doc/salome/gui/SMESH/input/mesh_through_point.doc b/doc/salome/gui/SMESH/input/mesh_through_point.doc new file mode 100644 index 000000000..cd0d68ea9 --- /dev/null +++ b/doc/salome/gui/SMESH/input/mesh_through_point.doc @@ -0,0 +1,34 @@ +/*! + +\page mesh_through_point_page Mesh through point + +\n In mesh you can define a node at a certain point either by creation +of a new node, by movement of the node closest to the point or by +movement of any node to the point. + +To create a mesh passing through a point: +
    +
  1. From the \b Modification menu choose the Mesh through point item or +click "Mesh to pass through a point" button in the toolbar. + +\image html mesh_node_to_point.png +
    "Mesh to pass through a point" button
    + +The following dialog box shall appear: + +\image html meshtopass.png + +
  2. +
  3. Enter the coordinates of the point.
  4. +
  5. Choose one of several methods: you can either \b Create a new node at +the indicated point or Move the existing node to the point. In the +latter case you can check in Automatic search of the closest node or +select the necessary node manually. \b Preview check-box allows to see +the results of the operation.
  6. +
  7. Click the \b Apply or \b OK button.
  8. +
+ +
See Also a sample TUI Script of a +\ref tui_mesh_through_point "Mesh through point" operation. + +*/ \ No newline at end of file diff --git a/doc/salome/gui/SMESH/input/minimum_angle.doc b/doc/salome/gui/SMESH/input/minimum_angle.doc new file mode 100644 index 000000000..172374575 --- /dev/null +++ b/doc/salome/gui/SMESH/input/minimum_angle.doc @@ -0,0 +1,28 @@ +/*! + +\page minimum_angle_page Minimum angle + +\n Minimum angle mesh quality criterion consists of calculation of the +minimum value of angle between two adjacent sides of a 2D meshing +element (triangle or quadrangle). + +To apply the Minimum angle quality criterion to your mesh: +
    +
  1. Display your mesh in the viewer.
  2. + +
  3. Choose Controls > Minimum angle or click "Minimum Angle" button. + +\image html image38.gif +
    "Minimum Angle" button
    + +Your mesh will be displayed in the viewer with its elements colored +according to the applied mesh quality control criterion: + +\image html image92.jpg +
  4. +
+ +
See Also a sample TUI Script of a +\ref tui_minimum_angle "Minimum Angle quality control" operation. + +*/ \ No newline at end of file diff --git a/doc/salome/gui/SMESH/input/modifying_meshes.doc b/doc/salome/gui/SMESH/input/modifying_meshes.doc new file mode 100644 index 000000000..d7e1cdb62 --- /dev/null +++ b/doc/salome/gui/SMESH/input/modifying_meshes.doc @@ -0,0 +1,34 @@ +/*! + +\page modifying_meshes_page Modifying meshes + +
    +
  • \subpage adding_nodes_and_elements_page
  • +
  • \subpage adding_quadratic_elements_page
  • +
  • \subpage removing_nodes_and_elements_page
  • +
  • \subpage renumbering_nodes_and_elements_page
  • +
  • \subpage transforming_meshes_page
  • +
      +
    • \ref translation_page
    • +
    • \ref rotation_page
    • +
    • \ref symmetry_page
    • +
    • \ref sewing_meshes_page
    • +
    • \ref merging_nodes_page
    • +
    • \ref merging_elements_page
    • +
    +
  • \subpage moving_nodes_page
  • +
  • \subpage mesh_through_point_page
  • +
  • \subpage diagonal_inversion_of_elements_page
  • +
  • \subpage uniting_two_triangles_page
  • +
  • \subpage uniting_set_of_triangles_page
  • +
  • \subpage changing_orientation_of_elements_page
  • +
  • \subpage cutting_quadrangles_page
  • +
  • \subpage smoothing_page
  • +
  • \subpage extrusion_page
  • +
  • \subpage extrusion_along_path_page
  • +
  • \subpage revolution_page
  • +
  • \subpage pattern_mapping_page
  • +
  • \subpage convert_to_from_quadratic_mesh_page
  • +
+ +*/ \ No newline at end of file diff --git a/doc/salome/gui/SMESH/input/moving_nodes.doc b/doc/salome/gui/SMESH/input/moving_nodes.doc new file mode 100644 index 000000000..2c0cd795b --- /dev/null +++ b/doc/salome/gui/SMESH/input/moving_nodes.doc @@ -0,0 +1,36 @@ +/*! + +\page moving_nodes_page Moving nodes + +\n In MESH you can change the location of any node of your mesh. In +this case all adjacent elements (edges) will be also transformed right +after the displaced node. + +To displace a node: +
    +
  1. From the \b Modification menu choose the Move node item or +click "Move Node" button in the toolbar. + +\image html image67.gif +
    "Move Node" button
    + +The following dialog box shall appear: + +\image html movenodes.png + +
  2. +
  3. Enter the ID of the required node in the Node ID field or +select this node in the 3D viewer. The coordinates of your node will +be automatically displayed in the \b Coordinates set of fields.
  4. +
  5. Set new coordinates for your node in the \b Coordinates set of fields.
  6. +
  7. Click the \b Apply or \b OK button.
  8. +
+ +\image html moving_nodes1.png + +\image html moving_nodes2.png + +
See Also a sample TUI Script of a +\ref tui_moving_nodes "Moving Nodes" operation. + +*/ \ No newline at end of file diff --git a/doc/salome/gui/SMESH/input/netgen_2d_3d_hypo.doc b/doc/salome/gui/SMESH/input/netgen_2d_3d_hypo.doc new file mode 100644 index 000000000..395283ca1 --- /dev/null +++ b/doc/salome/gui/SMESH/input/netgen_2d_3d_hypo.doc @@ -0,0 +1,37 @@ +/*! + +\page netgen_2d_3d_hypo_page Netgen 2D and 3D hypotheses + +\n Netgen 2D and Netgen 3D hypotheses work only with Netgen 1D-2D and +Netgen 1D-2D-3D algorithms. These algorithms do not require +definition of lower-level hypotheses and algorithms (2D and 1D for +meshing 3D objects and 1D for meshing 2D objects). They prove to be +useful if lower-level meshing is homogeneous for all wires and faces +of the meshed object. + +\image html netgen2d.png + +
    +
  • Name - allows to define the name for the algorithm (Netgen +2D (or 3D) Parameters by default).
  • +
  • Max Size - maximum linear dimensions for mesh cells.
  • +
  • Second Order - if this box is checked in, the algorithm will +create second order nodes on the mesh, which actually will become +\ref adding_quadratic_elements_page "Quadratic".
  • +
  • Fineness - ranging from Very Coarse to Very Fine allows to set the +level of meshing detalization using the three parameters below. You +can select Custom to define them manually.
  • +
  • Growth rate - allows to define how much the linear dimensions of +two adjacent cells can differ (i.e. 0.3 means 30%).
  • +
  • Nb. Segs per Edge and Nb Segs per Radius - allows to define the +minimum number of mesh segments in which edges and radiuses will be +split.
  • +
  • Allow Quadrangles - allows to use quadrangle elements in a +triangle 2D mesh. This checkbox is not present in Netgen 3D parameters +because currently building a tetrahedral mesh with quadrangle faces is +not possible.
  • +
  • Optimize - if this box is checked in, the algorithm will try to +create regular (possessing even sides) elements.
  • +
+ +*/ \ No newline at end of file diff --git a/doc/salome/gui/SMESH/input/numbering.doc b/doc/salome/gui/SMESH/input/numbering.doc new file mode 100644 index 000000000..78d8fb414 --- /dev/null +++ b/doc/salome/gui/SMESH/input/numbering.doc @@ -0,0 +1,38 @@ +/*! + +\page numbering_page Numbering + +

Displaying nodes numbers

+ +In MESH you can display the ID numbers of all nodes of your mesh in +the viewer. + +To display ID numbers of nodes: +
    +
  1. Display your mesh in the viewer
  2. +
  3. Right-click on the mesh in the 3D viewer and from the associated +pop-up menu choose Numbering > Display Nodes #.
  4. +
+ +It will look like as follows: + +\image html image96.jpg + +

Displaying elements numbers

+ +In MESH you can display the ID numbers of all meshing elements +composing your mesh in the viewer. + +To display ID numbers of elements: +
    +
  1. Display your mesh in the viewer
  2. +
  3. Right-click on the mesh in the 3D viewer and from the associated +pop-up menu choose Numbering > Display Elements #.
  4. +
+ +It will look like as follows: + +\image html image95.jpg + +*/ + diff --git a/doc/salome/gui/SMESH/input/pattern_mapping.doc b/doc/salome/gui/SMESH/input/pattern_mapping.doc new file mode 100644 index 000000000..e9ce36172 --- /dev/null +++ b/doc/salome/gui/SMESH/input/pattern_mapping.doc @@ -0,0 +1,135 @@ +/*! + +\page pattern_mapping_page Pattern mapping + +

About patterns

+ +The pattern describes a mesh to generate: positions of nodes within a +geometrical domain and nodal connectivity of elements. As well, a +pattern specifies the so-called key-points, i.e. nodes that will be +located at geometrical vertices. Pattern description is stored in +\.smp file. + +The smp file contains 4 sections: +
    +
  1. The first line holds the number of nodes (N).
  2. + +
  3. The next N lines describe nodes coordinates. Each line holds 2 +coordinates of a node.
  4. + +
  5. A key-points line: indices of nodes to be mapped on geometrical +vertices. An index n refers to a node described on an n-th line of +section 2. The first node index is zero.
  6. + +
  7. The rest lines describe nodal connectivity of elements, one line +for an element. A line holds indices of nodes forming an element. An +index n refers to a node described on an n-th line of the section +2. The first node index is zero. There must be 3 or 4 indices on a +line: only 2d elements are allowed.
  8. +
+ +The 2D pattern must contain at least one element and at least one +key-point. All key-points must lay on boundaries. + +An example of a simple smp file and a preview of a pattern described +in this file: + +\image html image94.gif + +

Application of pattern mapping

+ +To apply pattern mapping to a geometrical object: + +From the \b Modification menu choose the Pattern Mapping item or click +"Pattern mapping" button in the toolbar. + +\image html image98.gif +
"Pattern mapping" button
+ +The following dialog box shall appear: + +\image html patternmapping1.png + +\image html patternmapping2.png + +To apply a pattern to a geometrical object, you should specify: +
    +
  • a face having the number of vertices equal to the number of +key-points in the pattern; the number of key-points on internal +boundaries of a pattern must also be equal to the number of vertices +on internal boundaries of a face;
  • +
  • a vertex to which the first key-point should be mapped;
  • +
  • reverse or not the order of key-points. (The order of vertices of +a face is counterclockwise looking from outside).
  • +
+ +Then you either load a .smp pattern file previously created manually +by clicking on the "Load pattern" button, or click on the \b +New button for automatic generation. +\n For an automatic generation you just specify a geometrical face +having a mesh built on it. Mesh nodes lying on face vertices become +key-points. Additionally, you may choose the way of getting nodes +coordinates by projecting nodes on the face instead of using +"positions on face" generated by mesher (if there is any). Faces +having a seam edge can?t be used for automatic pattern creation. + +When creating a pattern from an existing mesh, there are two possible +cases: +
    +
  1. A sub-mesh on face is selected. A pattern is created from the 2d +elements bound to a face by mesher. Node coordinates are either +"positions on face" computed by mesher, or coordinates got by node +projection on a geometrical surface, according to your choice.
  2. +
  3. A mesh where the main shape is a face, is selected. A pattern is +created from all the 2d elements in a mesh. If all mesh elements are +build by mesher, the user can select the way of getting nodes +coordinates, else all nodes are projected on a face surface.
  4. +
+ +\image html a-patterntype.png + +\image html a-patterntype1.png + +

Mapping algorithm

+ +The mapping algorithm is as follows: +
    +
  1. Key-points are set in the order that they are encountered when +walking along a pattern boundary so that elements are on the left. The +first key-point is preserved. +
  2. + +
  3. Find geometrical vertices corresponding to key-points by vertices +order in a face boundary; here, "Reverse order of key-points" flag is +taken into account. + +\image html image95.gif +
  4. + +
  5. Boundary nodes of a pattern are mapped onto edges of a face: a +node located between certain key-points on a pattern boundary is +mapped on a geometrical edge limited by corresponding geometrical +vertices. Node position on an edge reflects its distance from two +key-points. + +\image html image96.gif +
  6. + +
  7. Coordinates of a non-boundary node in a parametric space of a face +are defined as following. In a parametric space of a pattern, a node +lays at the intersection of two iso-lines, each of which intersects a +pattern boundary at least at two points. Knowing mapped positions of +boundary nodes, we find where isoline-boundary intersection points are +mapped to, and hence we can find mapped isolines direction and then, +two node positions on two mapped isolines. The eventual mapped +position of a node is found as an average of positions on mapped +isolines. + +\image html image97.gif +
  8. +
+ +
See Also a sample TUI Script of a +\ref tui_pattern_mapping "Pattern Mapping" operation. + +*/ \ No newline at end of file diff --git a/doc/salome/gui/SMESH/input/prism_3d_algo.doc b/doc/salome/gui/SMESH/input/prism_3d_algo.doc new file mode 100644 index 000000000..272bef236 --- /dev/null +++ b/doc/salome/gui/SMESH/input/prism_3d_algo.doc @@ -0,0 +1,20 @@ +/*! + +\page prism_3d_algo_page 3D extrusion meshing algorithm + +3D extrusion algorithm can be used for meshing prisms, i.e. 3D Shapes +defined by two opposing faces having the same number of vertices and +edges and meshed using the \ref projection_algos_page "2D Projection" +algorithm. These two faces should be connected by quadrangle "side" +faces. + +The opposing faces can be meshed with either quadrangles or triangles, +while the side faces should be meshed with quadrangles only. + +\image html image157.gif + +As you can see, the 3D extrusion algorithm permits to build and to +have in the same 3D mesh such elements as hexahedrons, prisms and +polyhedrons. + +*/ \ No newline at end of file diff --git a/doc/salome/gui/SMESH/input/projection_algos.doc b/doc/salome/gui/SMESH/input/projection_algos.doc new file mode 100644 index 000000000..5eb1e79b5 --- /dev/null +++ b/doc/salome/gui/SMESH/input/projection_algos.doc @@ -0,0 +1,67 @@ +/*! + +\page projection_algos_page Projection Algorithms + +\n Projection algorithms allow to define the mesh of a geometrical +object by the projection of another already meshed geometrical object. + +Projection 1D algorithm permits to define the mesh of an edge +by the projection of another already meshed edge. +\n To apply this algorithm select the edge to be meshed (indicated in +the field \b Geometry of Create mesh dialog box), +Projection1D in the list of 1D algorithms and click the +"Add Hypothesis" button. +The following dialog box will appear: + +\image html projection_1d.png + +In this menu you can define the \b Name of the algorithm, the algeady +meshed source \b Edge and the \b Mesh (optional, use it if there are several +different meshes on the same edge). It could also be necessary to +define the orientation of edges, which is done by indicating the +Source Vertex being the first point of the Source Edge and the +Target Vertex being the first point of the created \b Edge. + +\n Projection 2D algorithm permits to define the mesh of a face by the +projection of another already meshed face. This algorithm works only +if all edges of the target face have been meshed as 1D Projections of +the edges of the source face. + +To apply this algorithm select the face to be meshed (indicated in the +field \b Geometry of Create mesh dialog box), Projection 2D in the list +of 2D algorithms and click the "Add Hypothesis" button. The +following dialog box will appear: + +\image html projection_2d.png + +In this menu you can define the \b Name of the algorithm, the algeady +meshed source \b Face and the \b Mesh (optional, use it if there are several +different meshes on the same face). It could also be necessary to +define the orientation of mesh on the face, which is done by +indicating two Source Vertices, which belong to the same edge of the +source face, and two Target Vertices, which belong to the same edge of +the created \b Face. + +\n Projection 3D algorithm permits to define the mesh of a shape by +the projection of another already meshed shape. This algorithm works +only if all faces and edges of the target face have been meshed as 1D +Projections of the faces and edges of the source face. Another +limitation is that this algorithm currently works only on boxes. + +To apply this algorithm select the solid to be meshed (indicated in +the field \b Geometry of Create mesh dialog box), Projection +3D in the list of 3D algorithms and click the button. The +following dialog box will appear: + +\image html projection_3d.png + +In this menu you can define the \b Name of the algorithm, the algeady +meshed source 3D shape and the \b Mesh (optional, use it if there are +several different meshes on the same shape). It could also be +necessary to define the orientation of mesh on the shape, which is +done by indicating two Source Vertices, which belong to the same edge +of the source 3D Shape, and two Target Vertices, which belong to the +same edge of the source 3D Shape. + +*/ + diff --git a/doc/salome/gui/SMESH/input/quality_controls.doc b/doc/salome/gui/SMESH/input/quality_controls.doc new file mode 100644 index 000000000..5a36e7bdb --- /dev/null +++ b/doc/salome/gui/SMESH/input/quality_controls.doc @@ -0,0 +1,23 @@ +/*! + +\page quality_controls_page Quality controls + +
    +
  • \subpage about_quality_controls_page
  • +
  • \subpage free_borders_page
  • +
  • \subpage borders_at_multi_connection_page
  • +
  • \subpage length_page
  • +
  • \subpage free_edges_page
  • +
  • \subpage length_2d_page
  • +
  • \subpage borders_at_multi_connection_2d_page
  • +
  • \subpage area_page
  • +
  • \subpage taper_page
  • +
  • \subpage aspect_ratio_page
  • +
  • \subpage minimum_angle_page
  • +
  • \subpage warping_page
  • +
  • \subpage skew_page
  • +
  • \subpage aspect_ratio_3d_page
  • +
  • \subpage volume_page
  • +
+ +*/ \ No newline at end of file diff --git a/doc/salome/gui/SMESH/input/radial_prism_algo.doc b/doc/salome/gui/SMESH/input/radial_prism_algo.doc new file mode 100644 index 000000000..756e0329a --- /dev/null +++ b/doc/salome/gui/SMESH/input/radial_prism_algo.doc @@ -0,0 +1,24 @@ +/*! + +\page radial_prism_algo_page Radial Prism + +\n This algorithm applies to the meshing of a hollow 3D shape, +i.e. such shape should be composed of two meshed shells: an outer +shell and an internal shell without intersection with the outer +shell. One of the shells should be a 2D Projection of the other +shell. The meshes of the shells can consist both of triangles and +quadrangles. + +The Radial Prism algorithm would fill the space between the two shells +with meshes. + +This algorithm also needs the information concerning the number and +distribution of mesh layers between the inner and the outer shapes. + +\image html number_of_layers.png + +Distribution of layers can be set with any of 1D Hypotheses. + +\image html distribution_of_layers.png + +*/ \ No newline at end of file diff --git a/doc/salome/gui/SMESH/input/removing_nodes_and_elements.doc b/doc/salome/gui/SMESH/input/removing_nodes_and_elements.doc new file mode 100644 index 000000000..be1944a48 --- /dev/null +++ b/doc/salome/gui/SMESH/input/removing_nodes_and_elements.doc @@ -0,0 +1,76 @@ +/*! + +\page removing_nodes_and_elements_page Removing nodes and elements + +\n In MESH you can remove nodes and all types of cells of your mesh. + +
    +
  • \ref removing_nodes_anchor "Nodes"
  • +
  • \ref removing_elements_anchor "Elements"
  • +
+ +
+\anchor removing_nodes_anchor +

Removing nodes

+ +To remove a node: +
    +
  1. Select your mesh in the Object Browser or in the 3D viewer.
  2. + +
  3. From the Modification menu choose Remove and from the associated +submenu select the Remove nodes, or just click "Remove nodes" +button in the toolbar. + +\image html image88.gif +
    "Remove nodes" button
    + +The following dialog box will appear: + +\image html removenodes.png + +In this dialog box you can specify one or several nodes (with pressed +Shift button) by choosing them in the 3D viewer. +
  4. +
+ +\note Be careful while removing nodes because if you remove a definite +node of your mesh all adjacent elements will be also deleted. + +\image html remove_nodes1.png + +\image html remove_nodes2.png + +
+\anchor removing_elements_anchor +

Removing elements

+ +To remove an element: +
    +
  1. Select your mesh in the Object Browser or in the 3D viewer.
  2. + +
  3. From the \b Modification menu choose \b Remove and from the +associated submenu select the Remove elements, or just click +"Remove elements" button in the toolbar. + +\image html remove_elements_icon.png +
    "Remove elements" button
    + +The following dialog box will appear: + +\image html removeelements.png + +In this dialog box you can specify one or several elements of your +mesh (with pressed Shift button) by choosing them in the 3D viewer. +
  4. +
  5. Click OK or Apply to confirm deletion of the specified elements.
  6. +
+ +\image html remove_elements1.png + +\image html remove_elements2.png + +
See Also a sample TUI Script of a +\ref tui_removing_nodes_and_elements "Removing Nodes and Elements" operation. + +*/ + diff --git a/doc/salome/gui/SMESH/input/renumbering_nodes_and_elements.doc b/doc/salome/gui/SMESH/input/renumbering_nodes_and_elements.doc new file mode 100644 index 000000000..9ed74c377 --- /dev/null +++ b/doc/salome/gui/SMESH/input/renumbering_nodes_and_elements.doc @@ -0,0 +1,61 @@ +/*! + +\page renumbering_nodes_and_elements_page Renumbering nodes and elements + +\n In MESH you can renumber the nodes and elements of your mesh. + +
    +
  • \ref renumbering_nodes_anchor "Nodes"
  • +
  • \ref renumbering_elements_anchor "Elements"
  • +
+ +
+\anchor renumbering_nodes_anchor +

Renumbering nodes

+ +To renumber the nodes of your mesh: +
    +
  1. In the \b Modification menu select \b Renumbering submenu and +choose the \b Nodes item or click "Renumbering nodes" button +in the toolbar. + +\image html image63.gif +
    "Renumbering nodes" button
    + +The following dialog box will appear: + +\image html renumbernodes.png +
  2. + +
  3. Fill the \b Mesh field by selecting your mesh in the Object +Browser or in the 3D viewer.
  4. +
  5. Click the \b Apply or \b OK button to perform the operation.
  6. +
+ +
+\anchor renumbering_elements_anchor +

Renumbering elements

+ +To renumber the elements of your mesh: +
    +
  1. In the \b Modification menu select \b Renumbering submenu and +choose the \b Elements item or click "Renumbering elements" +button in the toolbar. + +\image html image64.gif +
    "Renumbering elements" button
    + +The following dialog box will appear: + +\image html renumberelements.png +
  2. + +
  3. Fill the \b Mesh field by selecting your mesh in the Object +Browser or in the 3D viewer.
  4. +
  5. Click the \b Apply or \b OK button to perform the operation.
  6. +
+ +
See Also a sample TUI Script of a +\ref tui_renumbering_nodes_and_elements "Renumbering Nodes and Elements" operation. + +*/ \ No newline at end of file diff --git a/doc/salome/gui/SMESH/input/revolution.doc b/doc/salome/gui/SMESH/input/revolution.doc new file mode 100644 index 000000000..06be6c175 --- /dev/null +++ b/doc/salome/gui/SMESH/input/revolution.doc @@ -0,0 +1,49 @@ +/*! + +\page revolution_page Revolution + +\n Revolution is a type of surface meshing by generation from +discretized lines. It is used to build mesh elements of plus one +dimension than the swept ones. Each swept 1D element produces one or +more quadrangles (or triangles if one node of a rotated element lays +on the revolution axis). + +To apply revolution: +
    +
  1. From the \b Modification menu choose the \b Revolution item or click +"Revolution" button in the toolbar. + +\image html image92.gif +
    "Revolution" button
    + +The following dialog box shall appear: + +\image html revolution1.png + +\image html revolution2.png +
  2. + +
  3. +In this dialog box you should specify: +
      +
    • the type of elements which will be extruded (1D or 2D),
    • +
    • specify the IDs of the elements which will be revolved by +selecting them in the 3D viewer or select the whole mesh or +submesh,
    • +
    • specify the axis (point and vector) around which the elements will +be revolved,
    • +
    • angle of rotation,
    • +
    • number of steps,
    • +
    • tolerance of rotation
    • +
    +
  4. + +
  5. Click the \b Apply or \b OK button.
  6. +
+ +\image html image78.jpg + +
See Also a sample TUI Script of a +\ref tui_revolution "Revolution" operation. + +*/ \ No newline at end of file diff --git a/doc/salome/gui/SMESH/input/rotation.doc b/doc/salome/gui/SMESH/input/rotation.doc new file mode 100644 index 000000000..7a6cf88fb --- /dev/null +++ b/doc/salome/gui/SMESH/input/rotation.doc @@ -0,0 +1,31 @@ +/*! + +\page rotation_page Rotation + +\n This geometrical operation allows to rotate in space your mesh or +some of its elements. + +To rotate your mesh: +\par +From the \b Modification choose \b Transformation and from its sub-menu +select the \b Rotation item. The following dialog box shall appear: + +\image html rotation.png +\par +In this dialog box you can specify the elements which should be +rotated and the rotation parameters: +
    +
  • \b Axis: point and vector
  • +
  • \b Angle of rotation
  • +
+\par +Create a copy radio button allows to copy the rotated object. + +\image html rotation1.png + +\image html rotation2.png + +
See Also a sample TUI Script of a +\ref tui_rotation "Rotation" operation. + +*/ \ No newline at end of file diff --git a/doc/salome/gui/SMESH/input/running_mesh_module.doc b/doc/salome/gui/SMESH/input/running_mesh_module.doc new file mode 100644 index 000000000..d7a794474 --- /dev/null +++ b/doc/salome/gui/SMESH/input/running_mesh_module.doc @@ -0,0 +1,16 @@ +/*! + +\page running_mesh_module_page Running MESH module + +\n To start MESH module in SALOME click "Mesh" icon in the "Modules" toolbar or +select \b Mesh from the Choose box. + +\image html image25.jpg +
"Mesh" icon
+ +The desktop of the SALOME platform will be updated with additional +toolbars and menus related to the \b MESH component . + +\image html a-viewgeneral.png + +*/ \ No newline at end of file diff --git a/doc/salome/gui/SMESH/input/segments_around_vertex_algo.doc b/doc/salome/gui/SMESH/input/segments_around_vertex_algo.doc new file mode 100644 index 000000000..f6250d2e5 --- /dev/null +++ b/doc/salome/gui/SMESH/input/segments_around_vertex_algo.doc @@ -0,0 +1,17 @@ +/*! + +\page segments_around_vertex_algo_page Segments around Vertex + +\n Segments around Vertex algorithm is considered to be a 0D meshing +algorithm, but, of course, it doesn't mesh nodes. It allows to define +the local size of the elements in the neighborhood of a certain +node. If we choose an object of higher dimension, it applies to all +its tops, i.e. corners of a box. The 0D algorithm combines with the +algorithms of higher dimensions, but it is not necessarily required +for their successful implementation. + +This algorithm allows only one hypothesis. + +\image html lengthnearvertex.png + +*/ \ No newline at end of file diff --git a/doc/salome/gui/SMESH/input/selection_filter_library.doc b/doc/salome/gui/SMESH/input/selection_filter_library.doc new file mode 100644 index 000000000..613febb9c --- /dev/null +++ b/doc/salome/gui/SMESH/input/selection_filter_library.doc @@ -0,0 +1,46 @@ +/*! + +\page selection_filter_library_page Selection filter library + +\n Selection filter library is a powerful tool enabling to create +filters to be used on meshes. You can access to it from the Main Menu +via Tools / Selection filter library. + +\image html selectionfilterlibrary.png + +Library file name shows the path and the file name where your +filters will be stored. By clicking the Browse button you can load an +existing filter library. +\n Names of filters lists the filters created or uploaded for +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. +\n 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. +\n 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 should also specify if the +criterion is \b Unary or \b Binary. +\n Some criteria should have the additional parameter of \b Tolerance. + +When we create a Standalone Group using filters (for this click +Set Filters button in the Create Group menu), the menu +for setting filters looks a bit differently. Toggling Insert filter +in viewer checkbox enables to preview the group selected with your +current filter in the viewer. +\n In the \b Source field you choose if the filter will be applied to +the whole \b Mesh, the Initial Selection or the Current Group. +\n Copy from... button gives you a possibility to load an +existing filter from Selection filter library and Add +to... button gives you a possibility to save your current filter +in the Library. + +\image html a-filteronedges.png + +*/ \ No newline at end of file diff --git a/doc/salome/gui/SMESH/input/sewing_meshes.doc b/doc/salome/gui/SMESH/input/sewing_meshes.doc new file mode 100644 index 000000000..e40f8fdc8 --- /dev/null +++ b/doc/salome/gui/SMESH/input/sewing_meshes.doc @@ -0,0 +1,159 @@ +/*! + +\page sewing_meshes_page Sewing meshes + +\n In SMESH you can sew elements of different meshes. The current +functionality allows you to sew: +
    +
  • \ref free_borders_anchor "Free borders"
  • +
  • \ref conform_free_borders_anchor "Conform free borders"
  • +
  • \ref border_to_side_anchor "Border to side"
  • +
  • \ref side_elements_anchor "Side elements"
  • +
+ +To sew elements of different meshes: +
    +
  1. From the \b Modification menu choose the \b Transformation item +and from its sub-menu select the \b Sewing item.
  2. +
  3. Check in the dialog box one of the radio buttons corresponding to +the type of sewing operation you would like to perform.
  4. +
  5. Fill the other fields available in the dialog box.
  6. +
  7. Click the \b OK or \b Apply button to perform the operation of sewing.
  8. +
+ +
+\anchor free_borders_anchor +

Sew free borders

+ +This functionality allows you to unite two free borders of a 2D mesh. + +\image html sewing1.png + +For sewing free borders you should define three points on each border: +first, second and the last node: +
    +
  • the first node specifies beginning of the border;
  • +
  • the second node specifies the part of the border which should be +considered (as far as the free border usually forms a closed +contour);
  • +
  • the last node specifies the end of the border.
  • +
+ +You can select these nodes in the 3D viewer or define by its id. + +The first and the second nodes should belong to the same link of a +face. The second and the last nodes of a border can be the same. The +first and the last nodes of two borders can be the same. The +corresponding end nodes of two borders will be merged. Intermediate +nodes of two borders will be either merged or inserted into faces of +the opposite border. + +The sewing algorithm is as follows: +
    +
  1. The parameter (U) of each node within a border is computed. So +that the first node has U=0.0, the last node has U=1.0, for the rest +nodes 0.0 < U < 1.0;
  2. +
  3. Compare node parameters of the two borders. If two nodes of the +opposite borders have close parameters, they are merged, i.e. a node +of the first border is replaced in all elements by a node of the +second border. If a node has no node with a close parameter in the +opposite border, it is inserted into an edge of element of the +opposite border, an element is split. Two nodes are considered close +enough to merge, if difference of their parameters is less than one +fifth of minimum length of adjacent face edges on the borders.
  4. +
+ +\image html image22.jpg + +See Also a sample TUI Script of a +\ref tui_sew_free_borders "Sew Free Borders" operation. + +
+\anchor conform_free_borders_anchor +

Sew conform free borders

+ +This functionality can be used to unite two free borders of a 2D mesh. + +\image html sewing2.png + +The borders of meshes for sewing are defined as for "Sew free borders" +except that the second free border is not limited and can be defined +by the first and the second nodes only. The first nodes of two borders +can be the same. + +The algorithm is following: counting nodes starting at the first ones, +the n-th node of the first border is merged with the n-th node of the +other border, until the end of either of borders. Nodes of the first +border are replaced in all elements with corresponding nodes of the +second border. +\n For sewing conform free borders you should define three points on +the first border and two points on the second one. User can select +these nodes in 3D viewer or define node by its id. + +\image html image22.jpg + +See Also a sample TUI Script of a +\ref tui_sew_conform_free_borders "Sew Conform Free Borders" +operation. + +
+\anchor border_to_side_anchor +

Sew border to side

+ +"Sew border to side" is intended to sew a free border to a mesh +surface. +\n The free border is defined as for "Sewing of free borders". The +place where to sew the border is defined by two nodes, between which +the border faces are placed, so that the first border node is merged +with the first node on the side and the last node of the border is +merged with the second specified node on the side. + +\image html sewing3.png + +The algorithm is following. +
    +
  1. Find a sequence of linked nodes on the side such that the found +links to be most co-directed with the links of the free border.
  2. +
  3. Sew two sequences of nodes using algorithm of "Sewing of free berders". +\n For sewing border to side you should define three points on the +border and two points on the side. User can select these nodes in 3D +viewer or define node by its id.
  4. +
+ +\image html image30.jpg + +See Also a sample TUI Script of a +\ref tui_sew_meshes_border_to_side "Sew Border to Side" operation. + +
+\anchor side_elements_anchor +

Sew side elements

+ +This operation is intended to unite two mesh surfaces. + +\image html sewing4.png + +Surfaces may be defined by either 2d or 3d elements. The number of +given elements of the sides must be the same. The sets of given +elements must be topologically equal, i.e. each node of one element +set must have a corresponding node in the other element set and +corresponding nodes must be equally linked. If there are 3d elements +in a set, only their free faces must obey to that rule. +\n Two corresponding nodes on each side must be specified. They must +belong to one element and must be located on an element set boundary. + +Sewing algorithm finds and merges the corresponding nodes starting +from the specified ones. + +\image html image31.jpg + +\image html image32.jpg + +For sewing side elements you should define elements for sewing and two +nodes for merging on the each side. User can select these elements and +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/skew.doc b/doc/salome/gui/SMESH/input/skew.doc new file mode 100644 index 000000000..e9a1364a2 --- /dev/null +++ b/doc/salome/gui/SMESH/input/skew.doc @@ -0,0 +1,31 @@ +/*! + +\page skew_page Skew + +\n \b Skew mesh quality criterion reflects the angle between the lines +that join opposite sides of the element. SKEW is a maximum value of +all skew angles. This mesh quality criterion can be applied to +elements composed of 4 and 3 nodes (quadrangles and triangles). + +\image html image27.jpg + +To apply the Skew quality criterion to your mesh: +
    +
  1. Display your mesh in the viewer.
  2. + +
  3. Choose Controls > Skew or click "Skew" button of the toolbar. + +\image html image40.gif +
    "Skew" button
    + +Your mesh will be displayed in the viewer with its elements colored +according to the applied mesh quality control criterion: + +\image html image93.jpg +
  4. +
+ +
See Also a sample TUI Script of a +\ref tui_skew "Skew quality control" operation. + +*/ \ No newline at end of file diff --git a/doc/salome/gui/SMESH/input/smeshpy_interface.doc b/doc/salome/gui/SMESH/input/smeshpy_interface.doc new file mode 100644 index 000000000..4fbf3d3b5 --- /dev/null +++ b/doc/salome/gui/SMESH/input/smeshpy_interface.doc @@ -0,0 +1,10 @@ +/*! + +\page smeshpy_interface_page Python interface smesh.py + +\n Python package smesh defines several classes, destined for easy and +clear mesh creation and edition (see the \ref introduction_to_mesh_python_page "example"). + +\n Also, please see \ref smeshDC "documentation for smesh.py" + +*/ \ No newline at end of file diff --git a/doc/salome/gui/SMESH/input/smoothing.doc b/doc/salome/gui/SMESH/input/smoothing.doc new file mode 100644 index 000000000..4106d65e4 --- /dev/null +++ b/doc/salome/gui/SMESH/input/smoothing.doc @@ -0,0 +1,63 @@ +/*! + +\page smoothing_page Smoothing + +\n Smoothing is used to adjust the locations of element corners +(nodes) to reduce distortions in these elements. + +To apply smoothing to the elements of your mesh: +
    +
  1. Display a mesh or a submesh in the 3D viewer.
  2. +
  3. In the \b Modification menu select the \b Smoothing item or click +"Smoothing" button in the toolbar. + +\image html image84.gif +
    "Smoothing" button
    + +The dialog box contains the following fields which should be +specified: + +\image html smoothing.png + +
      +
    • Id Elements field allows to specify the elements which +should be smoothed by selecting them in the 3D viewer (lock \b Shift +button to select several elements).
    • +
    • Select whole mesh, submesh or group - smoothing is applied +to the whole mesh or its part.
    • +
    • Fixed nodes ids: some nodes keep their location during +smoothing. If a mesh is built on a geometry shape, the nodes built on +geometrical edges are always fixed. If smoothing is applied to a part +of a mesh then the boundary nodes of an elements set are also +fixed. Any other nodes may be additionally fixed.
    • +
    • Smoothing Method: +
        +
      • \b Laplacian smoothing pulls a node toward the center of surrounding nodes directly connected to that node along an element edge. Centroidal smoothing pulls a node toward the element-area-weighted centroid of the surrounding elements. Typically, the Laplacian method will produce the mesh with the least element distortion. It is also the faster method.
      • +
      • \b Centroidal smoothing usually produces a mesh that has more uniform element sizes. Both methods produce good results with "free" meshes.
      • +
      + +\image html image83.gif + +
    • +
    • Iteration limit: both of the smoothing methods use an +iterative procedure to converge toward a smoothed mesh. All nodes are +smoothed according to one of the techniques shown above. Then the +smoothing is reevaluated with the updated nodal locations. This +process continues until the maximum number of iterations has been +exceeded, or all elements has aspect ratio less or equal than the +specified one.
    • +
    • Max. aspect ratio.
    • +
    + +
  4. +
  5. Click the \b Apply or \b OK button to confirm the operation.
  6. +
+ +\image html smoothing1.png + +\image html smoothing2.png + +
See Also a sample TUI Script of a +\ref tui_smoothing "Smoothing" 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 new file mode 100644 index 000000000..1eb3d16d2 --- /dev/null +++ b/doc/salome/gui/SMESH/input/symmetry.doc @@ -0,0 +1,35 @@ +/*! + +\page symmetry_page Symmetry + +\n This geometrical operation allows to perform a symmetrical copy of +your mesh or some of its elements. + +To apply symmetry to your mesh: +\par +From the \b Modification choose \b Transformation and from its +sub-menu select the \b Symmetry item. The following dialog box shall +appear: + +\image html symmetry1.png + +\image html symmetry2.png + +\image html symmetry3.png + +\par +This operation has three options, you can symmetrically copy your mesh +or some of its elements specifying: +
    +
  • one point
  • +
  • one axis (point and vector)
  • +
  • one plane (point and normal)
  • +
+\par +Create a copy radio button allows to keep the initial elements or +mesh. + +
See Also a sample TUI Script of a +\ref tui_symmetry "Symmetry" operation. + +*/ \ No newline at end of file diff --git a/doc/salome/gui/SMESH/input/taper.doc b/doc/salome/gui/SMESH/input/taper.doc new file mode 100644 index 000000000..a207990b7 --- /dev/null +++ b/doc/salome/gui/SMESH/input/taper.doc @@ -0,0 +1,32 @@ +/*! + +\page taper_page Taper + +\n \b Taper mesh quality criterion represents the ratio of the areas +of two triangles separated by a diagonal. So it can be calculated only +for elements consisting of 4 nodes. + +\image html image25.gif + +
To apply the Taper quality criterion to your mesh: + +
    +
  1. Display your mesh in the viewer.
  2. + +
  3. Choose Controls > Taper or click "Taper" button in +the toolbar. + +\image html image36.gif +
    "Taper" button
    + +Your mesh will be displayed in the viewer with its elements colored +according to the applied mesh quality control criterion: + +\image html image90.jpg +
  4. +
+ +
See Also a sample TUI Script of a +\ref tui_taper "Taper quality control" operation. + +*/ \ No newline at end of file diff --git a/doc/salome/gui/SMESH/input/transforming_meshes.doc b/doc/salome/gui/SMESH/input/transforming_meshes.doc new file mode 100644 index 000000000..206c6401c --- /dev/null +++ b/doc/salome/gui/SMESH/input/transforming_meshes.doc @@ -0,0 +1,14 @@ +/*! + +\page transforming_meshes_page Transforming meshes + +
    +
  • \subpage translation_page
  • +
  • \subpage rotation_page
  • +
  • \subpage symmetry_page
  • +
  • \subpage sewing_meshes_page
  • +
  • \subpage merging_nodes_page
  • +
  • \subpage merging_elements_page
  • +
+ +*/ \ No newline at end of file diff --git a/doc/salome/gui/SMESH/input/translation.doc b/doc/salome/gui/SMESH/input/translation.doc new file mode 100644 index 000000000..2708088c5 --- /dev/null +++ b/doc/salome/gui/SMESH/input/translation.doc @@ -0,0 +1,32 @@ +/*! + +\page translation_page Translation + +\n This geometrical operation allows to translate in space your mesh +or some of its elements. + +To translate your mesh: +\par +From the \b Modification choose \b Transformation and from its +sub-menu select the \b Translation item. The following dialog box +shall appear: + +\image html translation1.png + +\image html translation2.png + +\par +This operation has two options, you can translate in space your mesh +or some of its elements specifying: +
    +
  • two points (starting and ending)
  • +
  • one vector
  • +
+Toggle the corresponding checkbox to Select whole mesh, submesh or +group. +Create a copy button allows to copy the translated object. + +
See Also a sample TUI Script of a +\ref tui_translation "Translation" operation. + +*/ \ No newline at end of file diff --git a/doc/salome/gui/SMESH/input/transparency.doc b/doc/salome/gui/SMESH/input/transparency.doc new file mode 100644 index 000000000..91734abf8 --- /dev/null +++ b/doc/salome/gui/SMESH/input/transparency.doc @@ -0,0 +1,11 @@ +/*! + +\page transparency_page Transparency + +\image html a-transparency.png + +Using this slider you can set the transparency of shading. Absolutely +transparent shading will be invisible. By default it is absolutely +opaque. + +*/ \ No newline at end of file diff --git a/doc/salome/gui/SMESH/input/tui_creating_meshes.doc b/doc/salome/gui/SMESH/input/tui_creating_meshes.doc new file mode 100644 index 000000000..364a099f5 --- /dev/null +++ b/doc/salome/gui/SMESH/input/tui_creating_meshes.doc @@ -0,0 +1,177 @@ +/*! + +\page tui_creating_meshes_page Creating Meshes + +\n First of all see \ref tui_creating_meshes_page "Example of 3d mesh generation", + which is an example of good python script style for Mesh module. +\n Other examples of python scripts will be also updated soon to use + smesh package instead of direct usage of idl interface. + +
+

Construction of a Mesh

+ +\code +import geompy +import smesh + +# create a box +box = geompy.MakeBox(0., 0., 0., 100., 200., 300.) +idbox = geompy.addToStudy(box, "box") + +# create a mesh +tetra = smesh.Mesh(box, "MeshBox") + +algo1D = tetra.Segment() +algo1D.NumberOfSegments(7) + +algo2D = tetra.Triangle() +algo2D.MaxElementArea(800.) + +algo3D = tetra.Tetrahedron(smesh.NETGEN) +algo3D.MaxElementVolume(900.) + +# compute the mesh +ret = tetra.Compute() +if ret == 0: + print "problem when computing the mesh" +else: + print "mesh computed" + pass +\endcode + +
+\anchor tui_construction_submesh +

Construction of a Submesh

+ +\code +from geompy import * +import smesh + +# create a box +box = MakeBoxDXDYDZ(10., 10., 10.) +addToStudy(box, "Box") + +# select one edge of the box for definition of a local hypothesis +p5 = MakeVertex(5., 0., 0.) +EdgeX = GetEdgeNearPoint(box, p5) +addToStudyInFather(box, EdgeX, "Edge [0,0,0 - 10,0,0]") + +# create a hexahedral mesh on the box +quadra = smesh.Mesh(box, "Box : quadrangle 2D mesh") + +# create a regular 1D algorithm for the faces +algo1D = quadra.Segment() + +# define "NumberOfSegments" hypothesis to cut +# all the edges in a fixed number of segments +algo1D.NumberOfSegments(4) + +# create a quadrangle 2D algorithm for the faces +quadra.Quadrangle() + +# construct a submesh on the edge with a local hypothesis +algo_local = quadra.Segment(EdgeX) + +# define "Arithmetic1D" hypothesis to cut the edge in several segments with increasing arithmetic length +algo_local.Arithmetic1D(1, 4) + +# define "Propagation" hypothesis that propagates all other hypotheses +# on all edges of the opposite side in case of quadrangular faces +algo_local.Propagation() + +# compute the mesh +quadra.Compute() + +\endcode + +
+\anchor tui_editing_mesh +

Editing of a mesh

+ +\code +import geompy +import smesh + +def PrintMeshInfo(theMesh): + aMesh = theMesh.GetMesh() + print "Information about mesh:" + print "Number of nodes : ", aMesh.NbNodes() + print "Number of edges : ", aMesh.NbEdges() + print "Number of faces : ", aMesh.NbFaces() + print "Number of volumes : ", aMesh.NbVolumes() + pass + +# create a box +box = geompy.MakeBox(0., 0., 0., 20., 20., 20.) +geompy.addToStudy(box, "box") + +# select one edge of the box for definition of a local hypothesis +subShapeList = geompy.SubShapeAll(box, geompy.ShapeType["EDGE"]) +edge = subShapeList[0] +name = geompy.SubShapeName(edge, box) +geompy.addToStudyInFather(box, edge, name) + +# create a mesh +tria = smesh.Mesh(box, "Mesh 2D") +algo1D = tria.Segment() +hyp1 = algo1D.NumberOfSegments(3) +algo2D = tria.Triangle() +hyp2 = algo2D.MaxElementArea(10.) + +# create a sub-mesh +algo_local = tria.Segment(edge) +hyp3 = algo_local.Arithmetic1D(1, 6) +hyp4 = algo_local.Propagation() + +# compute the mesh +tria.Compute() +PrintMeshInfo(tria) + +# remove a local hypothesis +mesh = tria.GetMesh() +mesh.RemoveHypothesis(edge, hyp4) + +# compute the mesh +tria.Compute() +PrintMeshInfo(tria) + +# change the value of the 2D hypothesis +hyp2.SetMaxElementArea(2.) + +# compute the mesh +tria.Compute() +PrintMeshInfo(tria) +\endcode + +
+\anchor tui_export_mesh +

Export of a Mesh

+ +\code +import geompy +import smesh + +# create a box +box = geompy.MakeBox(0., 0., 0., 100., 200., 300.) +idbox = geompy.addToStudy(box, "box") + +# create a mesh +tetra = smesh.Mesh(box, "MeshBox") + +algo1D = tetra.Segment() +algo1D.NumberOfSegments(7) + +algo2D = tetra.Triangle() +algo2D.MaxElementArea(800.) + +algo3D = tetra.Tetrahedron(smesh.NETGEN) +algo3D.MaxElementVolume(900.) + +# compute the mesh +tetra.Compute() + +# export the mesh in a MED file +tetra.ExportMED("/tmp/meshMED.med", 0) +\endcode + +*/ \ No newline at end of file diff --git a/doc/salome/gui/SMESH/input/tui_defining_hypotheses.doc b/doc/salome/gui/SMESH/input/tui_defining_hypotheses.doc new file mode 100644 index 000000000..bd9fbbb10 --- /dev/null +++ b/doc/salome/gui/SMESH/input/tui_defining_hypotheses.doc @@ -0,0 +1,385 @@ +/*! + +\page tui_defining_hypotheses_page Defining Hypotheses and Algorithms + +

Defining 1D Hypotheses

+ +
+\anchor tui_1d_arithmetic +

1D Arithmetic

+ +\code +import geompy +import smesh + +# create a box +box = geompy.MakeBoxDXDYDZ(10., 10., 10.) +geompy.addToStudy(box, "Box") + +# create a hexahedral mesh on the box +hexa = smesh.Mesh(box, "Box : hexahedrical mesh") + +# create a Regular 1D algorithm for edges +algo1D = hexa.Segment() + +# define "Arithmetic1D" hypothesis to cut all edges in several segments with increasing arithmetic length +algo1D.Arithmetic1D(1, 4) + +# create a quadrangle 2D algorithm for faces +hexa.Quadrangle() + +# create a hexahedron 3D algorithm for solids +hexa.Hexahedron() + +# compute the mesh +hexa.Compute() +\endcode + +
+\anchor tui_deflection_1d +

Deflection 1D and Number of Segments

+ +\code +import geompy +import smesh + +# create a face from arc and straight segment +px = geompy.MakeVertex(100., 0. , 0. ) +py = geompy.MakeVertex(0. , 100., 0. ) +pz = geompy.MakeVertex(0. , 0. , 100.) + +exy = geompy.MakeEdge(px, py) +arc = geompy.MakeArc(py, pz, px) + +wire = geompy.MakeWire([exy, arc]) + +isPlanarFace = 1 +face1 = geompy.MakeFace(wire, isPlanarFace) +geompy.addToStudy(face1,"Face1") + +# get edges from the face +e_straight,e_arc = geompy.SubShapeAll(face1, geompy.ShapeType["EDGE"]) +geompy.addToStudyInFather(face1, e_arc, "Arc Edge") + +# create hexahedral mesh +hexa = smesh.Mesh(face1, "Face : triangle mesh") + +# define "NumberOfSegments" hypothesis to cut a straight edge in a fixed number of segments +algo1D = hexa.Segment() +algo1D.NumberOfSegments(6) + +# define "MaxElementArea" hypothesis +algo2D = hexa.Triangle() +algo2D.MaxElementArea(70.0) + +# define a local "Deflection1D" hypothesis on the arc +algo_local = hexa.Segment(e_arc) +algo_local.Deflection1D(1.0) + +# compute the mesh +hexa.Compute() +\endcode + +
+\anchor tui_start_and_end_length +

Start and End Length

+ +\code +from geompy import * +import smesh + +# create a box +box = MakeBoxDXDYDZ(10., 10., 10.) +addToStudy(box, "Box") + +# get one edge of the box to put local hypothesis on +p5 = MakeVertex(5., 0., 0.) +EdgeX = GetEdgeNearPoint(box, p5) +addToStudyInFather(box, EdgeX, "Edge [0,0,0 - 10,0,0]") + +# create a hexahedral mesh on the box +hexa = smesh.Mesh(box, "Box : hexahedrical mesh") + +# set algorithms +algo1D = hexa.Segment() +hexa.Quadrangle() +hexa.Hexahedron() + +# define "NumberOfSegments" hypothesis to cut an edge in a fixed number of segments +algo1D.NumberOfSegments(4) + +# create a local hypothesis +algo_local = hexa.Segment(EdgeX) + +# define "StartEndLength" hypothesis to cut an edge in several segments with increasing geometric length +algo_local.StartEndLength(1, 6) + +# define "Propagation" hypothesis that propagates all other hypothesis +# on all edges on the opposite side in case of quadrangular faces +algo_local.Propagation() + +# compute the mesh +hexa.Compute() +\endcode + +
+\anchor tui_average_length +

Average Length

+ +\code +from geompy import * +import smesh + +# create a box +box = MakeBoxDXDYDZ(10., 10., 10.) +addToStudy(box, "Box") + +# get one edge of the box to put local hypothesis on +p5 = MakeVertex(5., 0., 0.) +EdgeX = GetEdgeNearPoint(box, p5) +addToStudyInFather(box, EdgeX, "Edge [0,0,0 - 10,0,0]") + +# create a hexahedral mesh on the box +hexa = smesh.Mesh(box, "Box : hexahedrical mesh") + +# set algorithms +algo1D = hexa.Segment() +hexa.Quadrangle() +hexa.Hexahedron() + +# define "NumberOfSegments" hypothesis to cut all edges in a fixed number of segments +algo1D.NumberOfSegments(4) + +# create a sub-mesh +algo_local = hexa.Segment(EdgeX) + +# define "LocalLength" hypothesis to cut an edge in several segments with the same length +algo_local.LocalLength(2.) + +# define "Propagation" hypothesis that propagates all other hypothesis +# on all edges on the opposite side in case of quadrangular faces +algo_local.Propagation() + +# compute the mesh +hexa.Compute() +\endcode + +

Defining 2D and 3D hypotheses

+ +
+\anchor tui_max_element_area +

Maximum Element Area

+ +\code +import geompy +import smesh +import salome + +# create a face +px = geompy.MakeVertex(100., 0. , 0. ) +py = geompy.MakeVertex(0. , 100., 0. ) +pz = geompy.MakeVertex(0. , 0. , 100.) + +vxy = geompy.MakeVector(px, py) +arc = geompy.MakeArc(py, pz, px) +wire = geompy.MakeWire([vxy, arc]) + +isPlanarFace = 1 +face = geompy.MakeFace(wire, isPlanarFace) + +# add the face in the study +id_face = geompy.addToStudy(face, "Face to be meshed") + +# create a mesh +tria_mesh = smesh.Mesh(face, "Face : triangulation") + +# define 1D meshing: +algo = tria_mesh.Segment() +algo.NumberOfSegments(20) + +# define 2D meshing: + +# assign triangulation algorithm +algo = tria_mesh.Triangle() + +# apply "Max Element Area" hypothesis to each triangle +algo.MaxElementArea(100) + +# compute the mesh +tria_mesh.Compute() +\endcode + +
+\anchor tui_max_element_volume +

Maximum Element Volume

+ +\code +import geompy +import smesh + +# create a cylinder +cyl = geompy.MakeCylinderRH(30., 50.) +geompy.addToStudy(cyl, "cyl") + +# create a mesh on the cylinder +tetra = smesh.Mesh(cyl, "Cylinder : tetrahedrical mesh") + +# assign algorithms +algo1D = tetra.Segment() +algo2D = tetra.Triangle() +algo3D = tetra.Tetrahedron(smesh.NETGEN) + +# assign 1D and 2D hypotheses +algo1D.NumberOfSegments(7) +algo2D.MaxElementArea(150.) + +# assign Max Element Volume hypothesis +algo3D.MaxElementVolume(200.) + +# compute the mesh +ret = tetra.Compute() +if ret == 0: + print "probleme when computing the mesh" +else: + print "Computation succeded" +\endcode + +
+\anchor tui_length_from_edges +

Length from Edges

+ +\code +import geompy +import smesh + +# create sketchers +sketcher1 = geompy.MakeSketcher("Sketcher:F 0 0:TT 70 0:TT 70 70:TT 0 70:WW") +sketcher2 = geompy.MakeSketcher("Sketcher:F 20 20:TT 50 20:TT 50 50:TT 20 50:WW") + +# create a face from two wires +isPlanarFace = 1 +face1 = geompy.MakeFaces([sketcher1, sketcher2], isPlanarFace) +geompy.addToStudy(face1, "Face1") + +# create a mesh +tria = smesh.Mesh(face1, "Face : triangle 2D mesh") + +# Define 1D meshing +algo1D = tria.Segment() +algo1D.NumberOfSegments(2) + +# create and assign the algorithm for 2D meshing with triangles +algo2D = tria.Triangle() + +# create and assign "LengthFromEdges" hypothesis to build triangles based on the length of the edges taken from the wire +algo2D.LengthFromEdges() + +# compute the mesh +tria.Compute() +\endcode + +

Defining Additional Hypotheses

+ +
+\anchor tui_propagation +

Propagation

+ +\code +from geompy import * +import smesh + +# create a box +box = MakeBoxDXDYDZ(10., 10., 10.) +addToStudy(box, "Box") + +# get one edge of the box to put local hypothesis on +p5 = MakeVertex(5., 0., 0.) +EdgeX = GetEdgeNearPoint(box, p5) +addToStudyInFather(box, EdgeX, "Edge [0,0,0 - 10,0,0]") + +# create a hexahedral mesh on the box +hexa = smesh.Mesh(box, "Box : hexahedrical mesh") + +# set global algorithms and hypotheses +algo1D = hexa.Segment() +hexa.Quadrangle() +hexa.Hexahedron() +algo1D.NumberOfSegments(4) + +# create a sub-mesh with local 1D hypothesis and propagation +algo_local = hexa.Segment(EdgeX) + +# define "Arithmetic1D" hypothesis to cut an edge in several segments with increasing length +algo_local.Arithmetic1D(1, 4) + +# define "Propagation" hypothesis that propagates all other 1D hypotheses +# from all edges on the opposite side of a face in case of quadrangular faces +algo_local.Propagation() + +# compute the mesh +hexa.Compute() +\endcode + +
+\anchor tui_defining_meshing_algos +

Defining Meshing Algorithms

+ +\code +import geompy +import smesh + +# create a box +box = geompy.MakeBoxDXDYDZ(10., 10., 10.) +geompy.addToStudy(box, "Box") + +# 1. Create a hexahedral mesh on the box +hexa = smesh.Mesh(box, "Box : hexahedrical mesh") + +# create a Regular 1D algorithm for edges +algo1D = hexa.Segment() + +# create a quadrangle 2D algorithm for faces +algo2D = hexa.Quadrangle() + +# create a hexahedron 3D algorithm for solids +algo3D = hexa.Hexahedron() + +# define hypotheses +algo1D.Arithmetic1D(1, 4) + +# compute the mesh +hexa.Compute() + +# 2. Create a tetrahedral mesh on the box +tetra = smesh.Mesh(box, "Box : tetrahedrical mesh") + +# create a Regular 1D algorithm for edges +algo1D = tetra.Segment() + +# create a Mefisto 2D algorithm for faces +algo2D = tetra.Triangle() + +# create a Netgen 3D algorithm for solids +algo3D = tetra.Tetrahedron(smesh.NETGEN) + +# define hypotheses +algo1D.Arithmetic1D(1, 4) +algo2D.LengthFromEdges() + +# compute the mesh +tetra.Compute() + +# 3. Create a tetrahedral mesh on the box with NETGEN_2D3D algorithm +tetraN = smesh.Mesh(box, "Box : tetrahedrical mesh by NETGEN_2D3D") + +# create a Netgen_2D3D algorithm for solids +algo3D = tetraN.Tetrahedron(smesh.FULL_NETGEN) + +# define hypotheses +n23_params = algo3D.Parameters() + +# compute the mesh +tetraN.Compute() +\endcode + +*/ \ No newline at end of file diff --git a/doc/salome/gui/SMESH/input/tui_grouping_elements.doc b/doc/salome/gui/SMESH/input/tui_grouping_elements.doc new file mode 100644 index 000000000..8b9f6391c --- /dev/null +++ b/doc/salome/gui/SMESH/input/tui_grouping_elements.doc @@ -0,0 +1,277 @@ +/*! + +\page tui_grouping_elements_page Grouping Elements + +
+\anchor tui_create_standalone_group +

Create a Standalone Group

+ +\code +import SMESH_mechanic + +smesh = SMESH_mechanic.smesh +mesh = SMESH_mechanic.mesh +salome = SMESH_mechanic.salome + +# Get ids of all faces with area > 100 +aFilter = smesh.GetFilter(smesh.FACE, smesh.FT_Area, smesh.FT_MoreThan, 100.) + +anIds = mesh.GetIdsFromFilter(aFilter) + +# create a group consisting of faces with area > 100 +aGroup = mesh.MakeGroupByIds("Area > 100", smesh.FACE, anIds) + +salome.sg.updateObjBrowser(1) +\endcode + +\image html create_group.png + +
+\anchor tui_create_group_on_geometry +

Create a Group on Geometry

+ +\code +import salome +import geompy +import smesh + +# create a box +box = geompy.MakeBox(0., 0., 0., 100., 100., 100.) +geompy.addToStudy(box, "box") + +# add the first face of the box to the study +subShapeList = geompy.SubShapeAll(box, geompy.ShapeType["FACE"]) +face = subShapeList[0] +geompy.addToStudyInFather(box, face, "face 1") + +# create group of edges on the face +aGeomGroupE = geompy.CreateGroup(face, geompy.ShapeType["EDGE"]) +geompy.AddObject(aGeomGroupE, 3) +geompy.AddObject(aGeomGroupE, 6) +geompy.AddObject(aGeomGroupE, 8) +geompy.AddObject(aGeomGroupE, 10) +geompy.addToStudyInFather(face, aGeomGroupE, "Group of Edges") + +# create quadrangle 2D mesh on the box +quadra = smesh.Mesh(box, "Box : quadrangle 2D mesh") +algo1D = quadra.Segment() +quadra.Quadrangle() +algo1D.NumberOfSegments(7) + +# compute the mesh +quadra.Compute() + +# create SMESH group on the face with name "SMESHGroup1" +aSmeshGroup1 = quadra.GroupOnGeom(face, "SMESHGroup1") + +# create SMESH group on with default name +aSmeshGroup2 = quadra.GroupOnGeom(aGeomGroupE) + +salome.sg.updateObjBrowser(1) +\endcode + +
+\anchor tui_edit_group +

Edit a Group

+ +\code +import SMESH_mechanic + +smesh = SMESH_mechanic.smesh +mesh = SMESH_mechanic.mesh +salome = SMESH_mechanic.salome + +# Get ids of all faces with area > 35 +aFilter = smesh.GetFilter(smesh.FACE, smesh.FT_Area, smesh.FT_MoreThan, 35.) + +anIds = mesh.GetIdsFromFilter(aFilter) + +print "Criterion: Area > 35, Nb = ", len(anIds) + +# create a group by adding elements with area > 35 +aGroup = mesh.CreateEmptyGroup(smesh.FACE, "Area > 35") +aGroup.Add(anIds) + +# Get ids of all faces with area > 40 +aFilter = smesh.GetFilter(smesh.FACE, smesh.FT_Area, smesh.FT_MoreThan, 40.) + +anIds = mesh.GetIdsFromFilter(aFilter) + +print "Criterion: Area > 40, Nb = ", len(anIds) + +# create a group of elements with area [35; 40] by removing elements with area > 40 from group aGroup +aGroup.Remove(anIds) + +# print the result +aGroupElemIDs = aGroup.GetListOfID() + +print "Criterion: 35 < Area < 40, Nb = ", len(aGroupElemIDs) + +j = 1 +for i in range(len(aGroupElemIDs)): + if j > 20: j = 1; print "" + print aGroupElemIDs[i], + j = j + 1 + pass +print "" + +salome.sg.updateObjBrowser(1) +\endcode + +\image html editing_groups1.png + +\image html editing_groups2.png + +
+\anchor tui_union_of_two_groups +

Union of two groups

+ +\code +import SMESH_mechanic + +smesh = SMESH_mechanic.smesh +mesh = SMESH_mechanic.mesh +salome = SMESH_mechanic.salome + +# Criterion : AREA > 20 +aFilter = smesh.GetFilter(smesh.FACE, smesh.FT_Area, smesh.FT_MoreThan, 20.) + +anIds = mesh.GetIdsFromFilter(aFilter) + +print "Criterion: Area > 20, Nb = ", len( anIds ) + +# create a group by adding elements with area > 20 +aGroup1 = mesh.CreateEmptyGroup(SMESH.FACE, "Area > 20") +aGroup1.Add(anIds) + +# Criterion : AREA = 20 +aFilter = smesh.GetFilter(smesh.FACE, smesh.FT_Area, smesh.FT_EqualTo, 20.) + +anIds = mesh.GetIdsFromFilter(aFilter) + +print "Criterion: Area = 20, Nb = ", len( anIds ) + +# create a group by adding elements with area = 20 +aGroup2 = mesh.CreateEmptyGroup( smesh.FACE, "Area = 20" ) + +aGroup2.Add(anIds) + +# create union group : area >= 20 +aGroup3 = mesh.UnionGroups(aGroup1, aGroup2, "Area >= 20") +print "Criterion: Area >= 20, Nb = ", len(aGroup3.GetListOfID()) + +# Criterion : AREA < 20 +aFilter = smesh.GetFilter(smesh.FACE, smesh.FT_Area, smesh.FT_LessThan, 20.) + +anIds = mesh.GetIdsFromFilter(aFilter) + +print "Criterion: Area < 20, Nb = ", len(anIds) + +# create a group by adding elements with area < 20 +aGroup4 = mesh.CreateEmptyGroup(smesh.FACE, "Area < 20") +aGroup4.Add(anIds) + +# create union group : area >= 20 and area < 20 +aGroup5 = mesh.UnionGroups(aGroup3, aGroup4, "Any Area") +print "Criterion: Any Area, Nb = ", len(aGroup5.GetListOfID()) + +salome.sg.updateObjBrowser(1) +\endcode + +\image html union_groups1.png + +\image html union_groups2.png + +\image html union_groups3.png + +
+\anchor tui_intersection_of_two_groups +

Intersection of two groups

+ +\code +import SMESH_mechanic + +smesh = SMESH_mechanic.smesh +mesh = SMESH_mechanic.mesh +salome = SMESH_mechanic.salome + +# Criterion : AREA > 20 +aFilter = smesh.GetFilter(smesh.FACE, smesh.FT_Area, smesh.FT_MoreThan, 20.) + +anIds = mesh.GetIdsFromFilter(aFilter) + +print "Criterion: Area > 20, Nb = ", len(anIds) + +# create a group by adding elements with area > 20 +aGroup1 = mesh.CreateEmptyGroup(SMESH.FACE, "Area > 20") +aGroup1.Add(anIds) + +# Criterion : AREA < 60 +aFilter = smesh.GetFilter(smesh.FACE, smesh.FT_Area, smesh.FT_LessThan, 60.) + +anIds = mesh.GetIdsFromFilter(aFilter) + +print "Criterion: Area < 60, Nb = ", len(anIds) + +# create a group by adding elements with area < 60 +aGroup2 = mesh.CreateEmptyGroup(SMESH.FACE, "Area < 60") +aGroup2.Add(anIds) + +# create an intersection of groups : 20 < area < 60 +aGroup3 = mesh.IntersectGroups(aGroup1, aGroup2, "20 < Area < 60") +print "Criterion: 20 < Area < 60, Nb = ", len(aGroup3.GetListOfID()) + +salome.sg.updateObjBrowser(1) +\endcode + +\image html intersect_groups1.png + +\image html intersect_groups2.png + +\image html intersect_groups3.png + +
+\anchor tui_cut_of_two_groups +

Cut of two groups

+ +\code +import SMESH_mechanic + +smesh = SMESH_mechanic.smesh +mesh = SMESH_mechanic.mesh +salome = SMESH_mechanic.salome + +# Criterion : AREA > 20 +aFilter = smesh.GetFilter(smesh.FACE, smesh.FT_Area, smesh.FT_MoreThan, 20.) + +anIds = mesh.GetIdsFromFilter(aFilter) + +print "Criterion: Area > 20, Nb = ", len(anIds) + +# create a group by adding elements with area > 20 +aGroupMain = mesh.MakeGroupByIds("Area > 20", smesh.FACE, anIds) + +# Criterion : AREA < 60 +aFilter = smesh.GetFilter(smesh.FACE, smesh.FT_Area, smesh.FT_LessThan, 60.) + +anIds = mesh.GetIdsFromFilter(aFilter) + +print "Criterion: Area < 60, Nb = ", len(anIds) + +# create a group by adding elements with area < 60 +aGroupTool = mesh.MakeGroupByIds("Area < 60", smesh.FACE, anIds) + +# create a cut of groups : area >= 60 +aGroupRes = mesh.CutGroups(aGroupMain, aGroupTool, "Area >= 60") +print "Criterion: Area >= 60, Nb = ", len(aGroupRes.GetListOfID()) + +salome.sg.updateObjBrowser(1) +\endcode + +\image html cut_groups1.png + +\image html cut_groups2.png + +\image html cut_groups3.png + +*/ \ No newline at end of file diff --git a/doc/salome/gui/SMESH/input/tui_modifying_meshes.doc b/doc/salome/gui/SMESH/input/tui_modifying_meshes.doc new file mode 100644 index 000000000..342968ff7 --- /dev/null +++ b/doc/salome/gui/SMESH/input/tui_modifying_meshes.doc @@ -0,0 +1,817 @@ +/*! + +\page tui_modifying_meshes_page Modifying Meshes + +
+\anchor tui_adding_nodes_and_elements +

Adding Nodes and Elements

+ +
+\anchor tui_add_node +

Add Node

+ +\code +import SMESH_mechanic + +mesh = SMESH_mechanic.mesh + +# add node +new_id = mesh.AddNode(50, 10, 0) +print "" +if new_id == 0: print "KO node addition." +else: print "New Node has been added with ID ", new_id +\endcode + +
+\anchor tui_add_edge +

Add Edge

+ +\code +import SMESH_mechanic + +mesh = SMESH_mechanic.mesh +print "" + +# add node +n1 = mesh.AddNode(50, 10, 0) +if n1 == 0: print "KO node addition." + +# add edge +e1 = mesh.AddEdge([n1, 38]) +if e1 == 0: print "KO edge addition." +else: print "New Edge has been added with ID ", e1 +\endcode + +
+\anchor tui_add_triangle +

Add Triangle

+ +\code +import SMESH_mechanic + +mesh = SMESH_mechanic.mesh +print "" + +# add node +n1 = mesh.AddNode(50, 10, 0) +if n1 == 0: print "KO node addition." + +# add triangle +t1 = mesh.AddFace([n1, 38, 39]) +if t1 == 0: print "KO triangle addition." +else: print "New Triangle has been added with ID ", t1 +\endcode + +
+\anchor tui_add_quadrangle +

Add Quadrangle

+ +\code +import SMESH_mechanic + +mesh = SMESH_mechanic.mesh +print "" + +# add node +n1 = mesh.AddNode(50, 10, 0) +if n1 == 0: print "KO node addition." + +n2 = mesh.AddNode(40, 20, 0) +if n2 == 0: print "KO node addition." + +# add quadrangle +q1 = mesh.AddFace([n2, n1, 38, 39]) +if q1 == 0: print "KO quadrangle addition." +else: print "New Quadrangle has been added with ID ", q1 +\endcode + +
+\anchor tui_add_tetrahedron +

Add Tetrahedron

+ +\code +import SMESH_mechanic + +mesh = SMESH_mechanic.mesh +print "" + +# add node +n1 = mesh.AddNode(50, 10, 0) +if n1 == 0: print "KO node addition." + +# add tetrahedron +t1 = mesh.AddVolume([n1, 38, 39, 246]) +if t1 == 0: print "KO tetrahedron addition." +else: print "New Tetrahedron has been added with ID ", t1 +\endcode + +
+\anchor tui_add_hexahedron +

Add Hexahedron

+ +\code +import SMESH_mechanic + +mesh = SMESH_mechanic.mesh +print "" + +# add nodes +nId1 = mesh.AddNode(50, 10, 0) +nId2 = mesh.AddNode(47, 12, 0) +nId3 = mesh.AddNode(50, 10, 10) +nId4 = mesh.AddNode(47, 12, 10) + +if nId1 == 0 or nId2 == 0 or nId3 == 0 or nId4 == 0: print "KO node addition." + +# add hexahedron +vId = mesh.AddVolume([nId2, nId1, 38, 39, nId4, nId3, 245, 246]) +if vId == 0: print "KO Hexahedron addition." +else: print "New Hexahedron has been added with ID ", vId +\endcode + +
+\anchor tui_add_polygon +

Add Polygon

+ +\code +import math +import salome + +import smesh + +# create an empty mesh structure +mesh = smesh.Mesh() + +# a method to build a polygonal mesh element with angles: +def MakePolygon (a_mesh, x0, y0, z0, radius, nb_vert): + al = 2.0 * math.pi / nb_vert + node_ids = [] + + # Create nodes for a polygon + for ii in range(nb_vert): + nid = mesh.AddNode(x0 + radius * math.cos(ii*al), + y0 + radius * math.sin(ii*al), + z0) + node_ids.append(nid) + pass + + # Create a polygon + return mesh.AddPolygonalFace(node_ids) + +# Create three polygons +f1 = MakePolygon(mesh, 0, 0, 0, 30, 13) +f2 = MakePolygon(mesh, 0, 0, 10, 21, 9) +f3 = MakePolygon(mesh, 0, 0, 20, 13, 6) + +salome.sg.updateObjBrowser(1) +\endcode + +
+\anchor tui_add_polyhedron +

Add Polyhedron

+ +\code +import salome +import math + +# create an empty mesh structure +mesh = smesh.Mesh() + +# Create nodes for 12-hedron with pentagonal faces +al = 2 * math.pi / 5.0 +cosal = math.cos(al) +aa = 13 +rr = aa / (2.0 * math.sin(al/2.0)) +dr = 2.0 * rr * cosal +r1 = rr + dr +dh = rr * math.sqrt(2.0 * (1.0 - cosal * (1.0 + 2.0 * cosal))) +hh = 2.0 * dh - dr * (rr*(cosal - 1) + (rr + dr)*(math.cos(al/2) - 1)) / dh + +dd = [] # top +cc = [] # below top +bb = [] # above bottom +aa = [] # bottom + +for i in range(5): + cos_bot = math.cos(i*al) + sin_bot = math.sin(i*al) + + cos_top = math.cos(i*al + al/2.0) + sin_top = math.sin(i*al + al/2.0) + + nd = mesh.AddNode(rr * cos_top, rr * sin_top, hh ) # top + nc = mesh.AddNode(r1 * cos_top, r1 * sin_top, hh - dh) # below top + nb = mesh.AddNode(r1 * cos_bot, r1 * sin_bot, dh) # above bottom + na = mesh.AddNode(rr * cos_bot, rr * sin_bot, 0) # bottom + dd.append(nd) # top + cc.append(nc) # below top + bb.append(nb) # above bottom + aa.append(na) # bottom + pass + +# Create a polyhedral volume (12-hedron with pentagonal faces) +MeshEditor.AddPolyhedralVolume([dd[0], dd[1], dd[2], dd[3], dd[4], # top + dd[0], cc[0], bb[1], cc[1], dd[1], # - + dd[1], cc[1], bb[2], cc[2], dd[2], # - + dd[2], cc[2], bb[3], cc[3], dd[3], # - below top + dd[3], cc[3], bb[4], cc[4], dd[4], # - + dd[4], cc[4], bb[0], cc[0], dd[0], # - + aa[4], bb[4], cc[4], bb[0], aa[0], # . + aa[3], bb[3], cc[3], bb[4], aa[4], # . + aa[2], bb[2], cc[2], bb[3], aa[3], # . above bottom + aa[1], bb[1], cc[1], bb[2], aa[2], # . + aa[0], bb[0], cc[0], bb[1], aa[1], # . + aa[0], aa[1], aa[2], aa[3], aa[4]], # bottom + [5,5,5,5,5,5,5,5,5,5,5,5]) + +salome.sg.updateObjBrowser(1) +\endcode + +
+\anchor tui_removing_nodes_and_elements +

Removing Nodes and Elements

+ +
+\anchor tui_removing_nodes +

Removing Nodes

+ +\code +import SMESH_mechanic + +mesh = SMESH_mechanic.mesh + +# remove nodes #246 and #255 +res = mesh.RemoveNodes([246, 255]) +if res == 1: print "Nodes removing is OK!" +else: print "KO nodes removing." +\endcode + +
+\anchor tui_removing_elements +

Removing Elements

+ +\code +import SMESH_mechanic + +mesh = SMESH_mechanic.mesh + +# remove three elements: #850, #859 and #814 +res = mesh.RemoveElements([850, 859, 814]) +if res == 1: print "Elements removing is OK!" +else: print "KO Elements removing." +\endcode + +
+\anchor tui_renumbering_nodes_and_elements +

Renumbering Nodes and Elements

+ +\code +import SMESH_mechanic + +mesh = SMESH_mechanic.mesh + +mesh.RenumberNodes() + +mesh.RenumberElements() +\endcode + +
+\anchor tui_moving_nodes +

Moving Nodes

+ +\code +import SMESH_mechanic + +mesh = SMESH_mechanic.mesh + +# move node #38 +mesh.MoveNode(38, 20., 10., 0.) +\endcode + +
+\anchor tui_mesh_through_point +

Mesh through point

+ +\code +from geompy import * +from smesh import * + +box = MakeBoxDXDYDZ(200, 200, 200) + +mesh = Mesh( box ) +mesh.Segment().AutomaticLength(0.1) +mesh.Quadrangle() +mesh.Compute() + +# find node at (0,0,0) +node000 = None +for vId in SubShapeAllIDs( box, ShapeType["VERTEX"]): + if node000: break + nodeIds = mesh.GetSubMeshNodesId( vId, True ) + for node in nodeIds: + xyz = mesh.GetNodeXYZ( node ) + if xyz[0] == 0 and xyz[1] == 0 and xyz[2] == 0 : + node000 = node + pass + pass + pass + +if not node000: + raise "node000 not found" + +# find node000 using the tested function +n = mesh.FindNodeClosestTo( -1,-1,-1 ) +if not n == node000: + raise "FindNodeClosestTo() returns " + str( n ) + " != " + str( node000 ) + +# check if any node will be found for a point inside a box +n = mesh.FindNodeClosestTo( 100, 100, 100 ) +if not n > 0: + raise "FindNodeClosestTo( 100, 100, 100 ) fails" + +# move node000 to a new location +x,y,z = -10, -10, -10 +n = mesh.MeshToPassThroughAPoint( x,y,z ) +if not n == node000: + raise "FindNodeClosestTo() returns " + str( n ) + " != " + str( node000 ) + +# check the coordinates of the node000 +xyz = mesh.GetNodeXYZ( node000 ) +if not ( xyz[0] == x and xyz[1] == y and xyz[2] == z) : + raise "Wrong coordinates: " + str( xyz ) + " != " + str( [x,y,z] ) +\endcode + +
+\anchor tui_diagonal_inversion +

Diagonal Inversion

+ +\code +import salome +import smesh + +# create an empty mesh structure +mesh = smesh.Mesh() + +# create the following mesh: +# .----.----.----. +# | /| /| /| +# | / | / | / | +# | / | / | / | +# |/ |/ |/ | +# .----.----.----. + +bb = [0, 0, 0, 0] +tt = [0, 0, 0, 0] +ff = [0, 0, 0, 0, 0, 0] + +bb[0] = mesh.AddNode( 0., 0., 0.) +bb[1] = mesh.AddNode(10., 0., 0.) +bb[2] = mesh.AddNode(20., 0., 0.) +bb[3] = mesh.AddNode(30., 0., 0.) + +tt[0] = mesh.AddNode( 0., 15., 0.) +tt[1] = mesh.AddNode(10., 15., 0.) +tt[2] = mesh.AddNode(20., 15., 0.) +tt[3] = mesh.AddNode(30., 15., 0.) + +ff[0] = mesh.AddFace([bb[0], bb[1], tt[1]]) +ff[1] = mesh.AddFace([bb[0], tt[1], tt[0]]) +ff[2] = mesh.AddFace([bb[1], bb[2], tt[2]]) +ff[3] = mesh.AddFace([bb[1], tt[2], tt[1]]) +ff[4] = mesh.AddFace([bb[2], bb[3], tt[3]]) +ff[5] = mesh.AddFace([bb[2], tt[3], tt[2]]) + +# inverse the diagonal bb[1] - tt[2] +print "\nDiagonal inversion ... ", +res = mesh.InverseDiag(bb[1], tt[2]) +if not res: print "failed!" +else: print "done." + +salome.sg.updateObjBrowser(1) +\endcode + +
+\anchor tui_uniting_two_triangles +

Uniting two Triangles

+ +\code +import salome +import smesh + +# create an empty mesh structure +mesh = smesh.Mesh() + +# create the following mesh: +# .----.----.----. +# | /| /| /| +# | / | / | / | +# | / | / | / | +# |/ |/ |/ | +# .----.----.----. + +bb = [0, 0, 0, 0] +tt = [0, 0, 0, 0] +ff = [0, 0, 0, 0, 0, 0] + +bb[0] = mesh.AddNode( 0., 0., 0.) +bb[1] = mesh.AddNode(10., 0., 0.) +bb[2] = mesh.AddNode(20., 0., 0.) +bb[3] = mesh.AddNode(30., 0., 0.) + +tt[0] = mesh.AddNode( 0., 15., 0.) +tt[1] = mesh.AddNode(10., 15., 0.) +tt[2] = mesh.AddNode(20., 15., 0.) +tt[3] = mesh.AddNode(30., 15., 0.) + +ff[0] = mesh.AddFace([bb[0], bb[1], tt[1]]) +ff[1] = mesh.AddFace([bb[0], tt[1], tt[0]]) +ff[2] = mesh.AddFace([bb[1], bb[2], tt[2]]) +ff[3] = mesh.AddFace([bb[1], tt[2], tt[1]]) +ff[4] = mesh.AddFace([bb[2], bb[3], tt[3]]) +ff[5] = mesh.AddFace([bb[2], tt[3], tt[2]]) + +# delete the diagonal bb[1] - tt[2] +print "\nUnite two triangles ... ", +res = mesh.DeleteDiag(bb[1], tt[2]) +if not res: print "failed!" +else: print "done." + +salome.sg.updateObjBrowser(1) +\endcode + +
+\anchor tui_uniting_set_of_triangles +

Uniting a Set of Triangles

+ +\code +import salome +import smesh + +# create an empty mesh structure +mesh = smesh.Mesh() + +# create the following mesh: +# .----.----.----. +# | /| /| /| +# | / | / | / | +# | / | / | / | +# |/ |/ |/ | +# .----.----.----. + +bb = [0, 0, 0, 0] +tt = [0, 0, 0, 0] +ff = [0, 0, 0, 0, 0, 0] + +bb[0] = mesh.AddNode( 0., 0., 0.) +bb[1] = mesh.AddNode(10., 0., 0.) +bb[2] = mesh.AddNode(20., 0., 0.) +bb[3] = mesh.AddNode(30., 0., 0.) + +tt[0] = mesh.AddNode( 0., 15., 0.) +tt[1] = mesh.AddNode(10., 15., 0.) +tt[2] = mesh.AddNode(20., 15., 0.) +tt[3] = mesh.AddNode(30., 15., 0.) + +ff[0] = mesh.AddFace([bb[0], bb[1], tt[1]]) +ff[1] = mesh.AddFace([bb[0], tt[1], tt[0]]) +ff[2] = mesh.AddFace([bb[1], bb[2], tt[2]]) +ff[3] = mesh.AddFace([bb[1], tt[2], tt[1]]) +ff[4] = mesh.AddFace([bb[2], bb[3], tt[3]]) +ff[5] = mesh.AddFace([bb[2], tt[3], tt[2]]) + +# unite a set of triangles +print "\nUnite a set of triangles ... ", +res = mesh.TriToQuad([ff[2], ff[3], ff[4], ff[5]], smesh.FT_MinimumAngle, 60.) +if not res: print "failed!" +else: print "done." + +salome.sg.updateObjBrowser(1) +\endcode + +
+\anchor tui_orientation +

Orientation

+ +\code +import salome +import smesh + +# create an empty mesh structure +mesh = smesh.Mesh() + +# build five quadrangles: +dx = 10 +dy = 20 + +n1 = mesh.AddNode(0.0 * dx, 0, 0) +n2 = mesh.AddNode(1.0 * dx, 0, 0) +n3 = mesh.AddNode(2.0 * dx, 0, 0) +n4 = mesh.AddNode(3.0 * dx, 0, 0) +n5 = mesh.AddNode(4.0 * dx, 0, 0) +n6 = mesh.AddNode(5.0 * dx, 0, 0) +n7 = mesh.AddNode(0.0 * dx, dy, 0) +n8 = mesh.AddNode(1.0 * dx, dy, 0) +n9 = mesh.AddNode(2.0 * dx, dy, 0) +n10 = mesh.AddNode(3.0 * dx, dy, 0) +n11 = mesh.AddNode(4.0 * dx, dy, 0) +n12 = mesh.AddNode(5.0 * dx, dy, 0) + +f1 = mesh.AddFace([n1, n2, n8 , n7 ]) +f2 = mesh.AddFace([n2, n3, n9 , n8 ]) +f3 = mesh.AddFace([n3, n4, n10, n9 ]) +f4 = mesh.AddFace([n4, n5, n11, n10]) +f5 = mesh.AddFace([n5, n6, n12, n11]) + +# Change the orientation of the second and the fourth faces. +mesh.Reorient([2, 4]) + +salome.sg.updateObjBrowser(1) +\endcode + +
+\anchor tui_cutting_quadrangles +

Cutting Quadrangles

+ +\code +import SMESH_mechanic + +smesh = SMESH_mechanic.smesh +mesh = SMESH_mechanic.mesh + +# cut two quadrangles: 405 and 406 +mesh.QuadToTri([405, 406], smesh.FT_MinimumAngle) +\endcode + +
+\anchor tui_smoothing +

Smoothing

+ +\code +import salome +import geompy + +import SMESH_mechanic + +smesh = SMESH_mechanic.smesh +mesh = SMESH_mechanic.mesh + +# select the top face +faces = geompy.SubShapeAllSorted(SMESH_mechanic.shape_mesh, geompy.ShapeType["FACE"]) +face = faces[3] +geompy.addToStudyInFather(SMESH_mechanic.shape_mesh, face, "face planar with hole") + +# create a group of faces to be smoothed +GroupSmooth = mesh.GroupOnGeom(face, "Group of faces (smooth)", smesh.FACE) + +# perform smoothing + +# boolean SmoothObject(Object, IDsOfFixedNodes, MaxNbOfIterations, MaxAspectRatio, Method) +res = mesh.SmoothObject(GroupSmooth, [], 20, 2., smesh.CENTROIDAL_SMOOTH) +print "\nSmoothing ... ", +if not res: print "failed!" +else: print "done." + +salome.sg.updateObjBrowser(1) +\endcode + +
+\anchor tui_extrusion +

Extrusion

+ +\code +import salome +import geompy + +import SMESH_mechanic + +smesh = SMESH_mechanic.smesh +mesh = SMESH_mechanic.mesh + +# select the top face +faces = geompy.SubShapeAllSorted(SMESH_mechanic.shape_mesh, geompy.ShapeType["FACE"]) +face = faces[7] +geompy.addToStudyInFather(SMESH_mechanic.shape_mesh, face, "face circular top") + +# create a vector for extrusion +point = smesh.PointStruct(0., 0., 5.) +vector = smesh.DirStruct(point) + +# create a group to be extruded +GroupTri = mesh.GroupOnGeom(face, "Group of faces (extrusion)", smesh.FACE) + +# perform extrusion of the group +mesh.ExtrusionSweepObject(GroupTri, vector, 5) + +salome.sg.updateObjBrowser(1) +\endcode + +
+\anchor tui_extrusion_along_path +

Extrusion along a Path

+ +\code +import math +import salome + +# Geometry +import geompy + +# 1. Create points +points = [[0, 0], [50, 30], [50, 110], [0, 150], [-80, 150], [-130, 70], [-130, -20]] + +iv = 1 +vertices = [] +for point in points: + vert = geompy.MakeVertex(point[0], point[1], 0) + geompy.addToStudy(vert, "Vertex_" + `iv`) + vertices.append(vert) + iv += 1 + pass + +# 2. Create edges and wires +Edge_straight = geompy.MakeEdge(vertices[0], vertices[4]) +Edge_bezierrr = geompy.MakeBezier(vertices) +Wire_polyline = geompy.MakePolyline(vertices) +Edge_Circle = geompy.MakeCircleThreePnt(vertices[0], vertices[1], vertices[2]) + +geompy.addToStudy(Edge_straight, "Edge_straight") +geompy.addToStudy(Edge_bezierrr, "Edge_bezierrr") +geompy.addToStudy(Wire_polyline, "Wire_polyline") +geompy.addToStudy(Edge_Circle , "Edge_Circle") + +# 3. Explode wire on edges, as they will be used for mesh extrusion +Wire_polyline_edges = geompy.SubShapeAll(Wire_polyline, geompy.ShapeType["EDGE"]) +for ii in range(len(Wire_polyline_edges)): + geompy.addToStudyInFather(Wire_polyline, Wire_polyline_edges[ii], "Edge_" + `ii + 1`) + pass + +# Mesh +import smesh + +# Mesh the given shape with the given 1d hypothesis +def Mesh1D(shape1d, nbSeg, name): + mesh1d_tool = smesh.Mesh(shape1d, name) + algo = mesh1d_tool.Segment() + hyp = algo.NumberOfSegments(nbSeg) + isDone = mesh1d_tool.Compute() + if not isDone: print 'Mesh ', name, ': computation failed' + return mesh1d_tool + +# Create a mesh with six nodes, seven edges and two quadrangle faces +def MakeQuadMesh2(mesh_name): + quad_1 = smesh.Mesh(name = mesh_name) + + # six nodes + n1 = quad_1.AddNode(0, 20, 10) + n2 = quad_1.AddNode(0, 40, 10) + n3 = quad_1.AddNode(0, 40, 30) + n4 = quad_1.AddNode(0, 20, 30) + n5 = quad_1.AddNode(0, 0, 30) + n6 = quad_1.AddNode(0, 0, 10) + + # seven edges + quad_1.AddEdge([n1, n2]) # 1 + quad_1.AddEdge([n2, n3]) # 2 + quad_1.AddEdge([n3, n4]) # 3 + quad_1.AddEdge([n4, n1]) # 4 + quad_1.AddEdge([n4, n5]) # 5 + quad_1.AddEdge([n5, n6]) # 6 + quad_1.AddEdge([n6, n1]) # 7 + + # two quadrangle faces + quad_1.AddFace([n1, n2, n3, n4]) # 8 + quad_1.AddFace([n1, n4, n5, n6]) # 9 + return [quad_1, [1,2,3,4,5,6,7], [8,9]] + +# Path meshes +Edge_straight_mesh = Mesh1D(Edge_straight, 7, "Edge_straight") +Edge_bezierrr_mesh = Mesh1D(Edge_bezierrr, 7, "Edge_bezierrr") +Wire_polyline_mesh = Mesh1D(Wire_polyline, 3, "Wire_polyline") +Edge_Circle_mesh = Mesh1D(Edge_Circle , 8, "Edge_Circle") + +# Initial meshes (to be extruded) +[quad_1, ee_1, ff_1] = MakeQuadMesh2("quad_1") +[quad_2, ee_2, ff_2] = MakeQuadMesh2("quad_2") +[quad_3, ee_3, ff_3] = MakeQuadMesh2("quad_3") +[quad_4, ee_4, ff_4] = MakeQuadMesh2("quad_4") +[quad_5, ee_5, ff_5] = MakeQuadMesh2("quad_5") +[quad_6, ee_6, ff_6] = MakeQuadMesh2("quad_6") +[quad_7, ee_7, ff_7] = MakeQuadMesh2("quad_7") + +# ExtrusionAlongPath +# IDsOfElements, PathMesh, PathShape, NodeStart, +# HasAngles, Angles, HasRefPoint, RefPoint +refPoint = smesh.PointStruct(0, 0, 0) +a10 = 10.0*math.pi/180.0 +a45 = 45.0*math.pi/180.0 + +# 1. Extrusion of two mesh edges along a straight path +error = quad_1.ExtrusionAlongPath([1,2], Edge_straight_mesh, Edge_straight, 1, + 0, [], 0, refPoint) + +# 2. Extrusion of one mesh edge along a curved path +error = quad_2.ExtrusionAlongPath([2], Edge_bezierrr_mesh, Edge_bezierrr, 1, + 0, [], 0, refPoint) + +# 3. Extrusion of one mesh edge along a curved path with usage of angles +error = quad_3.ExtrusionAlongPath([2], Edge_bezierrr_mesh, Edge_bezierrr, 1, + 1, [a45, a45, a45, 0, -a45, -a45, -a45], 0, refPoint) + +# 4. Extrusion of one mesh edge along the path, which is a part of a meshed wire +error = quad_4.ExtrusionAlongPath([4], Wire_polyline_mesh, Wire_polyline_edges[0], 1, + 1, [a10, a10, a10], 0, refPoint) + +# 5. Extrusion of two mesh faces along the path, which is a part of a meshed wire +error = quad_5.ExtrusionAlongPath(ff_5 , Wire_polyline_mesh, Wire_polyline_edges[2], 4, + 0, [], 0, refPoint) + +# 6. Extrusion of two mesh faces along a closed path +error = quad_6.ExtrusionAlongPath(ff_6 , Edge_Circle_mesh, Edge_Circle, 1, + 0, [], 0, refPoint) + +# 7. Extrusion of two mesh faces along a closed path with usage of angles +error = quad_7.ExtrusionAlongPath(ff_7, Edge_Circle_mesh, Edge_Circle, 1, + 1, [a45, -a45, a45, -a45, a45, -a45, a45, -a45], 0, refPoint) + +salome.sg.updateObjBrowser(1) +\endcode + +
+\anchor tui_revolution +

Revolution

+ +\code +import math + +import SMESH_mechanic + +mesh = SMESH_mechanic.mesh +smesh = SMESH_mechanic.smesh + +# create a group of faces to be revolved +FacesRotate = [492, 493, 502, 503] +GroupRotate = mesh.CreateGroup(SMESH.FACE,"Group of faces (rotate)") +GroupRotate.Add(FacesRotate) + +# define revolution angle and axis +angle45 = 45 * math.pi / 180 +axisXYZ = SMESH.AxisStruct(-38.3128, -73.3658, -23.321, -13.3402, -13.3265, 6.66632) + +# perform revolution of an object +mesh.RotationSweepObject(GroupRotate, axisXYZ, angle45, 4, 1e-5) +\endcode + +
+\anchor tui_pattern_mapping +

Pattern Mapping

+ +\code +import geompy + +import smesh + +# define the geometry +Box_1 = geompy.MakeBoxDXDYDZ(200., 200., 200.) +geompy.addToStudy(Box_1, "Box_1") + +faces = geompy.SubShapeAll(Box_1, geompy.ShapeType["FACE"]) +Face_1 = faces[0] +Face_2 = faces[1] + +geompy.addToStudyInFather(Box_1, Face_1, "Face_1") +geompy.addToStudyInFather(Box_1, Face_2, "Face_2") + +# build a quadrangle mesh 3x3 on Face_1 +Mesh_1 = smesh.Mesh(Face_1) +algo1D = Mesh_1.Segment() +algo1D.NumberOfSegments(3) +Mesh_1.Quadrangle() + +isDone = Mesh_1.Compute() +if not isDone: print 'Mesh Mesh_1 : computation failed' + +# build a triangle mesh on Face_2 +Mesh_2 = smesh.Mesh(Face_2) + +algo1D = Mesh_2.Segment() +algo1D.NumberOfSegments(1) +algo2D = Mesh_2.Triangle() +algo2D.MaxElementArea(240) + +isDone = Mesh_2.Compute() +if not isDone: print 'Mesh Mesh_2 : computation failed' + +# create a pattern +pattern = smesh.GetPattern() + +isDone = pattern.LoadFromFace(Mesh_2.GetMesh(), Face_2, 0) +if (isDone != 1): print 'LoadFromFace :', pattern.GetErrorCode() + +# apply the pattern to a face of the first mesh +pattern.ApplyToMeshFaces(Mesh_1.GetMesh(), [17], 0, 0) + +isDone = pattern.MakeMesh(Mesh_1.GetMesh(), 0, 0) +if (isDone != 1): print 'MakeMesh :', pattern.GetErrorCode() +\endcode + +*/ \ No newline at end of file diff --git a/doc/salome/gui/SMESH/input/tui_quality_controls.doc b/doc/salome/gui/SMESH/input/tui_quality_controls.doc new file mode 100644 index 000000000..e1b8b700e --- /dev/null +++ b/doc/salome/gui/SMESH/input/tui_quality_controls.doc @@ -0,0 +1,575 @@ +/*! + +\page tui_quality_controls_page Quality Controls + +
+\anchor tui_free_borders +

Free Borders

+ +\code +import salome +import geompy + +import smesh + +# create open shell: a box without one plane +box = geompy.MakeBox(0., 0., 0., 20., 20., 15.) +FaceList = geompy.SubShapeAll(box, geompy.ShapeType["FACE"]) +FaceList.remove(FaceList[5]) +box = geompy.MakeShell(FaceList) +idbox = geompy.addToStudy(box, "box") + +# create a mesh +mesh = smesh.Mesh(box, "Mesh_free_borders") +algo = mesh.Segment() +algo.NumberOfSegments(5) +algo = mesh.Triangle() +algo.MaxElementArea(20.) +mesh.Compute() + +# criterion : free borders +aFilter = smesh.GetFilter(smesh.EDGE, smesh.FT_FreeBorders) +anIds = mesh.GetIdsFromFilter(aFilter) + +# print the result +print "Criterion: Free borders Nb = ", len(anIds) +j = 1 +for i in range(len(anIds)): + if j > 20: j = 1; print "" + print anIds[i], + j = j + 1 + pass +print "" + +# create a group +aGroup = mesh.CreateGroup(SMESH.EDGE, "Free borders") +aGroup.Add(anIds) + +salome.sg.updateObjBrowser(1) +\endcode + +
+\anchor tui_borders_at_multiconnection +

Borders at Multiconnection

+ +\code +import salome +import geompy + +import smesh +import SMESH + +# create open shell: a box without one plane +box = geompy.MakeBox(0., 0., 0., 20., 20., 15.) +FaceList = geompy.SubShapeAll(box, geompy.ShapeType["FACE"]) +FaceList.remove(FaceList[5]) +box = geompy.MakeShell(FaceList) +idbox = geompy.addToStudy(box, "box") + +# create a mesh +mesh = smesh.Mesh(box, "Mesh_borders_at_multi-connections") +algo = mesh.Segment() +algo.NumberOfSegments(5) +algo = mesh.Triangle() +algo.MaxElementArea(20.) +mesh.Compute() + +# Criterion : Borders at multi-connection +nb_conn = 2 + +aFilter = smesh.GetFilter(smesh.EDGE, smesh.FT_MultiConnection, smesh.FT_EqualTo, nb_conn) +anIds = mesh.GetIdsFromFilter(aFilter) + +# print the result +print "Criterion: Borders at multi-connections Nb = ", len(anIds) +j = 1 +for i in range(len(anIds)): + if j > 20: j = 1; print "" + print anIds[i], + j = j + 1 + pass +print "" + +# create a group +aGroup = mesh.CreateGroup(SMESH.EDGE, "Borders at multi-connections") +aGroup.Add(anIds) + +salome.sg.updateObjBrowser(1) +\endcode + +
+\anchor tui_length_1d +

Length 1D

+ +\code +import salome +import geompy + +import smesh + +# create open shell: a box without one plane +box = geompy.MakeBox(0., 0., 0., 20., 20., 15.) +FaceList = geompy.SubShapeAll(box, geompy.ShapeType["FACE"]) +FaceList.remove(FaceList[5]) +box = geompy.MakeShell(FaceList) +idbox = geompy.addToStudy(box, "box") + +# create a mesh +mesh = smesh.Mesh(box, "Mesh_Length_1D") +algo = mesh.Segment() +algo.NumberOfSegments(5) +algo = mesh.Triangle() +algo.MaxElementArea(20.) +mesh.Compute() + +# Criterion : Length > 3. +length_margin = 3. + +aFilter = smesh.GetFilter(smesh.EDGE, smesh.FT_Length, smesh.FT_MoreThan, length_margin) +anIds = mesh.GetIdsFromFilter(aFilter) + +# print the result +print "Criterion: Edges length > ", length_margin, " Nb = ", len(anIds) +j = 1 +for i in range(len(anIds)): + if j > 20: j = 1; print "" + print anIds[i], + j = j + 1 + pass +print "" + +# create a group +aGroup = mesh.CreateGroup(SMESH.EDGE, "Edges with length > " + `length_margin`) +aGroup.Add(anIds) + +salome.sg.updateObjBrowser(1) +\endcode + +
+\anchor tui_free_edges +

Free Edges

+ +\code +import SMESH_mechanic + +smesh = SMESH_mechanic.smesh +mesh = SMESH_mechanic.mesh +salome = SMESH_mechanic.salome + +aFilterMgr = smesh.CreateFilterManager() + +# Remove some elements to obtain free edges +# Criterion : AREA > 95. +area_margin = 95. + +aFilter = smesh.GetFilter(smesh.FACE, smesh.FT_Area, smesh.FT_MoreThan, area_margin) + +anIds = mesh.GetIdsFromFilter(aFilter) + +mesh.RemoveElements(anIds) + +# Criterion : Free Edges +aBorders = mesh.GetFreeBorders() + +# create groups +aGroupF = mesh.CreateGroup(SMESH.FACE, "Faces with free edges") +aGroupN = mesh.CreateGroup(SMESH.NODE, "Nodes on free edges") + +# fill groups with elements, corresponding to the criterion +print "" +print "Criterion: Free edges Nb = ", len(aBorders) +for i in range(len(aBorders)): + aBorder = aBorders[i] + print "Face # ", aBorder.myElemId, " : Edge between nodes (", + print aBorder.myPnt1, ", ", aBorder.myPnt2, ")" + + aGroupF.Add([aBorder.myElemId]) + aGroupN.Add([aBorder.myPnt1, aBorder.myPnt2]) + +salome.sg.updateObjBrowser(1) +\endcode + +
+\anchor tui_length_2d +

Length 2D

+ +\code +import salome +import geompy + +import smesh + +# create open shell: a box without one plane +box = geompy.MakeBox(0., 0., 0., 20., 20., 15.) +FaceList = geompy.SubShapeAll(box, geompy.ShapeType["FACE"]) +FaceList.remove(FaceList[5]) +box = geompy.MakeShell(FaceList) +idbox = geompy.addToStudy(box, "box") + +# create a mesh +mesh = smesh.Mesh(box, "Mesh_Length_2D") +algo = mesh.Segment() +algo.NumberOfSegments(5) +algo = mesh.Triangle() +algo.MaxElementArea(20.) +mesh.Compute() + +# Criterion : Length 2D > 5.7 +length_margin = 5.7 + +aFilter = smesh.GetFilter(smesh.FACE, smesh.FT_Length2D, smesh.FT_MoreThan, length_margin) + +anIds = mesh.GetIdsFromFilter(aFilter) + +# print the result +print "Criterion: Edges length 2D > ", length_margin, " Nb = ", len(anIds) +j = 1 +for i in range(len(anIds)): + if j > 20: j = 1; print "" + print anIds[i], + j = j + 1 + pass +print "" + +# create a group +aGroup = mesh.CreateEmptyGroup(smesh.FACE, "Faces with length 2D > " + `length_margin`) +aGroup.Add(anIds) + +salome.sg.updateObjBrowser(1) +\endcode + +
+\anchor tui_borders_at_multiconnection_2d +

Borders at Multiconnection 2D

+ +\code +import salome +import geompy + +import smesh + +# create a compound of two glued boxes +box1 = geompy.MakeBox(0., 0., 0., 20., 20., 15.) +box2 = geompy.MakeTranslation(box1, 0., 20., 0) +comp = geompy.MakeCompound([box1, box2]) +box = geompy.MakeGlueFaces(comp, 0.000001) +idbox = geompy.addToStudy(box, "box") + +# create a mesh +mesh = smesh.Mesh(box, "Box compound : 2D triangle mesh") +algo = mesh.Segment() +algo.NumberOfSegments(5) +algo = mesh.Triangle() +algo.MaxElementArea(20.) +mesh.Compute() + +# Criterion : MULTI-CONNECTION 2D = 3 +nb_conn = 3 + +aFilter = smesh.GetFilter(smesh.FACE, smesh.FT_MultiConnection2D, smesh.FT_EqualTo, nb_conn) + +anIds = mesh.GetIdsFromFilter(aFilter) + +# print the result +print "Criterion: Borders at multi-connection 2D = ", nb_conn, " Nb = ", len(anIds) +j = 1 +for i in range(len(anIds)): + if j > 20: j = 1; print "" + print anIds[i], + j = j + 1 + pass +print "" + +# create a group +aGroup = mesh.CreateEmptyGroup(smesh.FACE, "Borders at multi-connection 2D = " + `nb_conn`) +aGroup.Add(anIds) + +salome.sg.updateObjBrowser(1) +\endcode + +
+\anchor tui_area +

Area

+ +\code +import SMESH_mechanic + +smesh = SMESH_mechanic.smesh +mesh = SMESH_mechanic.mesh +salome = SMESH_mechanic.salome + +# Criterion : AREA > 100. +area_margin = 100. + +aFilter = smesh.GetFilter(smesh.FACE, smesh.FT_Area, smesh.FT_MoreThan, area_margin) + +anIds = mesh.GetIdsFromFilter(aFilter) + +# print the result +print "Criterion: Area > ", area_margin, " Nb = ", len(anIds) +j = 1 +for i in range(len(anIds)): + if j > 20: j = 1; print "" + print anIds[i], + j = j + 1 + pass +print "" + +# create a group +aGroup = mesh.CreateEmptyGroup(smesh.FACE, "Area > " + `area_margin`) +aGroup.Add(anIds) + +salome.sg.updateObjBrowser(1) +\endcode + +
+\anchor tui_taper +

Taper

+ +\code +import SMESH_mechanic + +smesh = SMESH_mechanic.smesh +mesh = SMESH_mechanic.mesh +salome = SMESH_mechanic.salome + +# Criterion : Taper > 3e-20 +taper_margin = 3e-20 + +aFilter = smesh.GetFilter(smesh.FACE, smesh.FT_Taper, smesh.FT_MoreThan, taper_margin) + +anIds = mesh.GetIdsFromFilter(aFilter) + +# print the result +print "Criterion: Taper > ", taper_margin, " Nb = ", len(anIds) +j = 1 +for i in range(len(anIds)): + if j > 20: j = 1; print "" + print anIds[i], + j = j + 1 + pass +print "" + +# create a group +aGroup = mesh.CreateEmptyGroup(smesh.FACE, "Taper > " + `taper_margin`) +aGroup.Add(anIds) + +salome.sg.updateObjBrowser(1) +\endcode + +
+\anchor tui_aspect_ratio +

Aspect Ratio

+ +\code +import SMESH_mechanic + +smesh = SMESH_mechanic.smesh +mesh = SMESH_mechanic.mesh +salome = SMESH_mechanic.salome + +# Criterion : ASPECT RATIO > 1.8 +ar_margin = 1.8 + +aFilter = smesh.GetFilter(smesh.FACE, smesh.FT_AspectRatio, smesh.FT_MoreThan, ar_margin) + +anIds = mesh.GetIdsFromFilter(aFilter) + +# print the result +print "Criterion: Aspect Ratio > ", ar_margin, " Nb = ", len(anIds) +j = 1 +for i in range(len(anIds)): + if j > 20: j = 1; print "" + print anIds[i], + j = j + 1 + pass +print "" + +# create a group +aGroup = mesh.CreateEmptyGroup(smesh.FACE, "Aspect Ratio > " + `ar_margin`) +aGroup.Add(anIds) + +salome.sg.updateObjBrowser(1) +\endcode + +
+\anchor tui_minimum_angle +

Minimum Angle

+ +\code +import SMESH_mechanic + +smesh = SMESH_mechanic.smesh +mesh = SMESH_mechanic.mesh +salome = SMESH_mechanic.salome + +# Criterion : MINIMUM ANGLE < 35. +min_angle = 35. + +aFilter = smesh.GetFilter(smesh.FACE, smesh.FT_MinimumAngle, smesh.FT_LessThan, min_angle) + +anIds = mesh.GetIdsFromFilter(aFilter) + +# print the result +print "Criterion: Minimum Angle < ", min_angle, " Nb = ", len(anIds) +j = 1 +for i in range(len(anIds)): + if j > 20: j = 1; print "" + print anIds[i], + j = j + 1 + pass +print "" + +# create a group +aGroup = mesh.CreateEmptyGroup(smesh.FACE, "Minimum Angle < " + `min_angle`) + +aGroup.Add(anIds) + +salome.sg.updateObjBrowser(1) +\endcode + +
+\anchor tui_warping +

Warping

+ +\code +import SMESH_mechanic + +smesh = SMESH_mechanic.smesh +mesh = SMESH_mechanic.mesh +salome = SMESH_mechanic.salome + +# Criterion : WARP ANGLE > 1e-15 +wa_margin = 1e-15 + +aFilter = smesh.GetFilter(smesh.FACE, smesh.FT_Warping, smesh.FT_MoreThan, wa_margin) + +anIds = mesh.GetIdsFromFilter(aFilter) + +# print the result +print "Criterion: Warp > ", wa_margin, " Nb = ", len(anIds) +j = 1 +for i in range(len(anIds)): + if j > 20: j = 1; print "" + print anIds[i], + j = j + 1 + pass +print "" + +# create a group +aGroup = mesh.CreateEmptyGroup(smesh.FACE, "Warp > " + `wa_margin`) + +aGroup.Add(anIds) + +salome.sg.updateObjBrowser(1) +\endcode + +
+\anchor tui_skew +

Skew

+ +\code +import SMESH_mechanic + +smesh = SMESH_mechanic.smesh +mesh = SMESH_mechanic.mesh +salome = SMESH_mechanic.salome + +# Criterion : Skew > 38. +skew_margin = 38. + +aFilter = smesh.GetFilter(smesh.FACE, smesh.FT_Skew, smesh.FT_MoreThan, skew_margin) + +anIds = mesh.GetIdsFromFilter(aFilter) + +# print the result +print "Criterion: Skew > ", skew_margin, " Nb = ", len(anIds) +j = 1 +for i in range(len(anIds)): + if j > 20: j = 1; print "" + print anIds[i], + j = j + 1 + pass +print "" + +# create a group +aGroup = mesh.CreateEmptyGroup(smesh.FACE, "Skew > " + `skew_margin`) +aGroup.Add(anIds) + +salome.sg.updateObjBrowser(1) +\endcode + +
+\anchor tui_aspect_ratio_3d +

Aspect Ratio 3D

+ +\code +import SMESH_mechanic_tetra + +smesh = SMESH_mechanic_tetra.smesh +mesh = SMESH_mechanic_tetra.mesh +salome = SMESH_mechanic_tetra.salome + +# Criterion : ASPECT RATIO 3D > 4.5 +ar_margin = 4.5 + +aFilter = smesh.GetFilter(smesh.VOLUME, smesh.FT_AspectRatio3D, smesh.FT_MoreThan, ar_margin) + +anIds = mesh.GetIdsFromFilter(aFilter) + +# print the result +print "Criterion: Aspect Ratio 3D > ", ar_margin, " Nb = ", len(anIds) +j = 1 +for i in range(len(anIds)): + if j > 20: j = 1; print "" + print anIds[i], + j = j + 1 + pass +print "" + +# create a group +aGroup = mesh.CreateEmptyGroup(smesh.VOLUME, "Aspect Ratio 3D > " + `ar_margin`) + +aGroup.Add(anIds) + +salome.sg.updateObjBrowser(1) +\endcode + +
+\anchor tui_volume +

Volume

+ +\code +import SMESH_mechanic_tetra + +smesh = SMESH_mechanic_tetra.smesh +mesh = SMESH_mechanic_tetra.mesh +salome = SMESH_mechanic_tetra.salome + +# Criterion : VOLUME < 7. +volume_margin = 7. + +aFilter = smesh.GetFilter(smesh.VOLUME, smesh.FT_Volume3D, smesh.FT_LessThan, volume_margin) + +anIds = mesh.GetIdsFromFilter(aFilter) + +# print the result +print "" +print "Criterion: Volume < ", volume_margin, " Nb = ", len(anIds) +j = 1 +for i in range(len(anIds)): + if j > 20: j = 1; print "" + print anIds[i], + j = j + 1 + pass +print "" + +# create a group +aGroup = mesh.CreateEmptyGroup(smesh.VOLUME, "Volume < " + `volume_margin`) + +aGroup.Add(anIds) + +salome.sg.updateObjBrowser(1) +\endcode + +*/ \ No newline at end of file diff --git a/doc/salome/gui/SMESH/input/tui_scripts.doc b/doc/salome/gui/SMESH/input/tui_scripts.doc new file mode 100644 index 000000000..4c19b9d7b --- /dev/null +++ b/doc/salome/gui/SMESH/input/tui_scripts.doc @@ -0,0 +1,15 @@ +/*! + +\page tui_scripts_page TUI Scripts + +
    +
  • \subpage tui_creating_meshes_page
  • +
  • \subpage tui_viewing_meshes_page
  • +
  • \subpage tui_defining_hypotheses_page
  • +
  • \subpage tui_quality_controls_page
  • +
  • \subpage tui_grouping_elements_page
  • +
  • \subpage tui_modifying_meshes_page
  • +
  • \subpage tui_transforming_meshes_page
  • +
+ +*/ \ No newline at end of file diff --git a/doc/salome/gui/SMESH/input/tui_transforming_meshes.doc b/doc/salome/gui/SMESH/input/tui_transforming_meshes.doc new file mode 100644 index 000000000..163afe0e4 --- /dev/null +++ b/doc/salome/gui/SMESH/input/tui_transforming_meshes.doc @@ -0,0 +1,322 @@ +/*! + +\page tui_transforming_meshes_page Transforming Meshes + +

Transforming Meshes

+ +
+\anchor tui_translation +

Translation

+ +\code +import SMESH_mechanic + +smesh = SMESH_mechanic.smesh +mesh = SMESH_mechanic.mesh + +# define translation vector +point = smesh.PointStruct(-150., -150., 0.) +vector =smesh.DirStruct(point) + +# translate a mesh +doCopy = 1 + +mesh.Translate([], vector, doCopy) +\endcode + +
+\anchor tui_rotation +

Rotation

+ +\code +import math + +import SMESH_mechanic + +smesh = SMESH_mechanic.smesh +mesh = SMESH_mechanic.mesh + +# define rotation axis and angle +axisXYZ = smesh.AxisStruct(0., 0., 0., 5., 5., 20.) +angle270 = 1.5 * math.pi + +# rotate a mesh +mesh.Rotate([], axisXYZ, angle270, 1) +\endcode + +
+\anchor tui_symmetry +

Symmetry

+ +\code +import math + +import SMESH_mechanic + +smesh = SMESH_mechanic.smesh +mesh = SMESH_mechanic.mesh + +# create a symmetrical copy of the mesh mirrored through a point +axis = SMESH.AxisStruct(0, 0, 0, 0, 0, 0) + +mesh.Mirror([], axis, smesh.POINT, 1) +\endcode + +
+\anchor tui_merging_nodes +

Merging Nodes

+ +\code +import SMESH_mechanic +mesh = SMESH_mechanic.mesh + +# merge nodes +Tolerance = 25.0 + +GroupsOfNodes = mesh.FindCoincidentNodes(Tolerance) +mesh.MergeNodes(GroupsOfNodes) +\endcode + +
+\anchor tui_merging_elements +

Merging Elements

+ +\code +import salome +import geompy +import smesh + +# create a face to be meshed +px = geompy.MakeVertex(100., 0. , 0. ) +py = geompy.MakeVertex(0. , 100., 0. ) +pz = geompy.MakeVertex(0. , 0. , 100.) + +vxy = geompy.MakeVector(px, py) +arc = geompy.MakeArc(py, pz, px) + +wire = geompy.MakeWire([vxy, arc]) +isPlanarFace = 1 + +face1 = geompy.MakeFace(wire, isPlanarFace) +id_face1 = geompy.addToStudy(face1, "Face1") + +# create a circle to be an extrusion path +px1 = geompy.MakeVertex( 100., 100., 0.) +py1 = geompy.MakeVertex(-100., -100., 0.) +pz1 = geompy.MakeVertex( 0., 0., 50.) + +circle = geompy.MakeCircleThreePnt(py1, pz1, px1) +id_circle = geompy.addToStudy(circle, "Path") + +# create a 2D mesh on the face +trias = smesh.Mesh(face1, "Face : 2D mesh") + +algo1D = trias.Segment() +algo1D.NumberOfSegments(6) +algo2D = trias.Triangle() +algo2D.LengthFromEdges() + +trias.Compute() + +# create a path mesh +circlemesh = smesh.Mesh(circle, "Path mesh") +algo = circlemesh.Segment() +algo.NumberOfSegments(10) +circlemesh.Compute() + +# extrusion of the mesh +trias.ExtrusionAlongPath([], circlemesh, circle, + 1, 0, [], 0, smesh.PointStruct(0, 0, 0)) + +# merge nodes +print "Number of nodes before MergeNodes:", +trias.NbNodes() +tolerance = 0.001 +array_of_nodes_groups = trias.FindCoincidentNodes(tolerance) + +trias.MergeNodes(array_of_nodes_groups) + +print "Number of nodes after MergeNodes:", trias.NbNodes() +print "" +print "Number of elements before MergeEqualElements:" +print "Edges : ", trias.NbEdges() +print "Triangles : ", trias.NbTriangles() +print "Quadrangles: ", trias.NbQuadrangles() +print "Volumes : ", trias.NbVolumes() + +# merge elements +trias.MergeEqualElements() +print "Number of elements after MergeEqualElements:" +print "Edges : ", trias.NbEdges() +print "Triangles : ", trias.NbTriangles() +print "Quadrangles: ", trias.NbQuadrangles() +print "Volumes : ", trias.NbVolumes() + +salome.sg.updateObjBrowser(1) +\endcode + +

Sewing Meshes

+ +
+\anchor tui_sew_meshes_border_to_side +

Sew Meshes Border to Side

+ +\code +import geompy +import smesh + +# create two faces of a box +box1 = geompy.MakeBox(0., 0., -10., 30., 20., 25.) +facesList1 = geompy.SubShapeAll(box1, geompy.ShapeType["FACE"]) +face1 = facesList1[2] + +box2 = geompy.MakeBox(0., 5., 0., 20., 20., 15.) +facesList2 = geompy.SubShapeAll(box2, geompy.ShapeType["FACE"]) +face2 = facesList2[1] + +edgesList = geompy.SubShapeAll(face2, geompy.ShapeType["EDGE"]) +edge1 = edgesList[2] + +aComp = geompy.MakeCompound([face1, face2]) +geompy.addToStudy(aComp, "Two faces") + +# create a mesh on two faces +mesh = smesh.Mesh(aComp, "Two faces : quadrangle mesh") + +algo1D = mesh.Segment() +algo1D.NumberOfSegments(9) +algo2D = mesh.Quadrangle() + +algo_local = mesh.Segment(edge1) +algo_local.Arithmetic1D(1, 4) +algo_local.Propagation() + +mesh.Compute() + +# sew border to side +# FirstNodeIDOnFreeBorder, SecondNodeIDOnFreeBorder, LastNodeIDOnFreeBorder, +# FirstNodeIDOnSide, LastNodeIDOnSide, +# CreatePolygons, CreatePolyedrs +mesh.SewBorderToSide(5, 45, 6, 113, 109, 0, 0) +\endcode + +
+\anchor tui_sew_conform_free_borders +

Sew Conform Free Borders

+ +\code +import geompy +import smesh + +# create two faces of the box +box1 = geompy.MakeBox(0., 0., -10., 20., 20., 15.) +facesList1 = geompy.SubShapeAll(box1, geompy.ShapeType["FACE"]) +face1 = facesList1[2] + +box2 = geompy.MakeBox(0., 5., 0., 20., 20., 15.) +facesList2 = geompy.SubShapeAll(box2, geompy.ShapeType["FACE"]) +face2 = facesList2[1] + +edgesList = geompy.SubShapeAll(face2, geompy.ShapeType["EDGE"]) +edge1 = edgesList[2] + +aComp = geompy.MakeCompound([face1, face2]) +geompy.addToStudy(aComp, "Two faces") + +# create a mesh on two faces +mesh = smesh.Mesh(aComp, "Two faces : quadrangle mesh") + +algo1D = mesh.Segment() +algo1D.NumberOfSegments(9) +algo2D = mesh.Quadrangle() + +algo_local = mesh.Segment(edge1) +algo_local.Arithmetic1D(1, 4) +algo_local.Propagation() + +mesh.Compute() + +# sew conform free borders +# FirstNodeID1, SecondNodeID1, LastNodeID1, FirstNodeID2, SecondNodeID2 +mesh.SewConformFreeBorders(5, 45, 6, 3, 24) +\endcode + +
+\anchor tui_sew_free_borders +

Sew Free Borders

+ +\code +import geompy +import smesh + +# create two faces of the box +box1 = geompy.MakeBox(0., 0., 0., 20., 20., 15.) +facesList1 = geompy.SubShapeAll(box1, geompy.ShapeType["FACE"]) +face1 = facesList1[2] + +box2 = geompy.MakeBox(0., 5., 0., 20., 20., 15.) +facesList2 = geompy.SubShapeAll(box2, geompy.ShapeType["FACE"]) +face2 = facesList2[1] + +edgesList = geompy.SubShapeAll(face2, geompy.ShapeType["EDGE"]) +edge1 = edgesList[2] + +aComp = geompy.MakeCompound([face1, face2]) +geompy.addToStudy(aComp, "Two faces") + +# create a mesh on two faces +mesh = smesh.Mesh(aComp, "Two faces : quadrangle mesh") + +algo1D = mesh.Segment() +algo1D.NumberOfSegments(4) +algo2D = mesh.Quadrangle() + +algo_local = mesh.Segment(edge1) +algo_local.Arithmetic1D(1, 4) +algo_local.Propagation() + +mesh.Compute() + +# sew free borders +# FirstNodeID1, SecondNodeID1, LastNodeID1, +# FirstNodeID2, SecondNodeID2, LastNodeID2, CreatePolygons, CreatePolyedrs +mesh.SewFreeBorders(6, 21, 5, 1, 12, 3, 0, 0) +\endcode + +
+\anchor tui_sew_side_elements +

Sew Side Elements

+ +\code +import geompy +import smesh + +# create two boxes +box1 = geompy.MakeBox(0., 0., 0., 10., 10., 10.) +box2 = geompy.MakeBox(0., 15., 0., 20., 25., 10.) + +EdgesList = geompy.SubShapeAll(box2, geompy.ShapeType["EDGE"]) + +aComp = geompy.MakeCompound([box1, box2]) +geompy.addToStudy(aComp, "Two boxes") + +# create a mesh on two boxes +mesh = smesh.Mesh(aComp, "Two faces : quadrangle mesh") + +algo1D = mesh.Segment() +algo1D.NumberOfSegments(2) +algo2D = mesh.Quadrangle() + +algo_local = mesh.Segment(EdgesList[8]) +algo_local.NumberOfSegments(4) +algo_local.Propagation() + +mesh.Compute() + +# sew side elements +# IDsOfSide1Elements, IDsOfSide2Elements, +# NodeID1OfSide1ToMerge, NodeID1OfSide2ToMerge, NodeID2OfSide1ToMerge, NodeID2OfSide2ToMerge +mesh.SewSideElements([69, 70, 71, 72], [91, 92, 89, 90], 8, 38, 23, 58) +\endcode + +*/ \ No newline at end of file diff --git a/doc/salome/gui/SMESH/input/tui_viewing_meshes.doc b/doc/salome/gui/SMESH/input/tui_viewing_meshes.doc new file mode 100644 index 000000000..59681c16b --- /dev/null +++ b/doc/salome/gui/SMESH/input/tui_viewing_meshes.doc @@ -0,0 +1,47 @@ +/*! + +\page tui_viewing_meshes_page Viewing Meshes + +
+\anchor tui_viewing_mesh_infos +

Viewing Mesh Infos

+ +\code +import geompy +import smesh + +# create a box +box = geompy.MakeBox(0., 0., 0., 20., 20., 20.) +geompy.addToStudy(box, "box") + +# create a mesh +tetra = smesh.Mesh(box, "MeshBox") + +algo1D = tetra.Segment() +algo1D.NumberOfSegments(3) + +algo2D = tetra.Triangle() +algo2D.MaxElementArea(10.) + +algo3D = tetra.Tetrahedron(smesh.NETGEN) +algo3D.MaxElementVolume(900.) + +# compute the mesh +tetra.Compute() + +# print information about the mesh +print "Information about mesh:" +print "Number of nodes : ", tetra.NbNodes() +print "Number of edges : ", tetra.NbEdges() +print "Number of faces : ", tetra.NbFaces() +print " triangles : ", tetra.NbTriangles() +print " quadrangles : ", tetra.NbQuadrangles() +print " polygons : ", tetra.NbPolygons() +print "Number of volumes : ", tetra.NbVolumes() +print " tetrahedrons: ", tetra.NbTetras() +print " hexahedrons : ", tetra.NbHexas() +print " prisms : ", tetra.NbPrisms() +print " pyramids : ", tetra.NbPyramids() +print " polyhedrons : ", tetra.NbPolyhedrons() +\endcode +*/ \ No newline at end of file diff --git a/doc/salome/gui/SMESH/input/uniting_set_of_triangles.doc b/doc/salome/gui/SMESH/input/uniting_set_of_triangles.doc new file mode 100644 index 000000000..0896cc1b8 --- /dev/null +++ b/doc/salome/gui/SMESH/input/uniting_set_of_triangles.doc @@ -0,0 +1,53 @@ +/*! + +\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. + +To union several triangles: +
    +
  1. Display a mesh or a submesh in the 3D viewer.
  2. +
  3. In the \b Modification menu select the Union of triangles +item or click "Union of triangles" button in the toolbar. + +\image html image80.gif +
    "Union of triangles" button
    + +The following dialog box will appear: + +\image html a-unionoftriangles.png + +
      +
    • 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 the orientation of all +triangles of the currently displayed mesh or submesh.
    • +
    • \b Criterion menu allows to apply the operation only to those +object which meet the chosen criterion (from the list of Quality +Controls, i.e. Skew, Warping, Minimum Angle, etc.)
    • +
    • Select from set of fields allows to choose a submesh or an +existing group whose triangle elements will be automatically added to +the list.
    • +
    + +
  4. +
  5. Click the \b Apply or \b OK button to confirm the operation.
  6. +
+ +If some selected triangle elements have no adjacent edges with one of +the others, the operation on these elements shall take no effect. + +\image html uniting_a_set_of_triangles1.png + +\image html uniting_a_set_of_triangles2.png + +
See Also a sample TUI Script of a +\ref tui_uniting_set_of_triangles "Uniting a Set of Triangles" operation. + +*/ \ No newline at end of file diff --git a/doc/salome/gui/SMESH/input/uniting_two_triangles.doc b/doc/salome/gui/SMESH/input/uniting_two_triangles.doc new file mode 100644 index 000000000..36d46f688 --- /dev/null +++ b/doc/salome/gui/SMESH/input/uniting_two_triangles.doc @@ -0,0 +1,34 @@ +/*! + +\page uniting_two_triangles_page Uniting two triangles + +\n In MESH you can union two neighboring triangles (cells) by deletion +of the common edge. + +To unite two triangles: +
    +
  1. From the \b Modification menu choose the Union of two +triangles item or click "Union of two triangles" button +in the toolbar. + +\image html image71.gif +
    "Union of two triangles" button
    + +The following dialog box shall appear: + +\image html unionoftwotriangles.png + +
  2. +
  3. Enter the ID of the required edge in the \b Edge field or select +this edge in the 3D viewer.
  4. +
  5. Click the \b Apply or \b OK button.
  6. +
+ +\image html uniting_two_triangles1.png + +\image html uniting_two_triangles2.png + +
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/doc/salome/gui/SMESH/input/using_operations_on_groups.doc b/doc/salome/gui/SMESH/input/using_operations_on_groups.doc new file mode 100644 index 000000000..c6d4d75a7 --- /dev/null +++ b/doc/salome/gui/SMESH/input/using_operations_on_groups.doc @@ -0,0 +1,123 @@ +/*! + +\page using_operations_on_groups_page Using operations on groups + +\n In MESH you can perform some Boolean operations on groups, which +belong to one and the same mesh. +
    +
  • \ref union_anchor "Union"
  • +
  • \ref intersection_anchor "Intersection"
  • +
  • \ref cut_anchor "Cut"
  • +
+ + +
+\anchor union_anchor +

Union of two groups

+ +This operation allows to create a new group in such a way that all +mesh elements that are present in the initial groups will be added to +the new one. + +To union two groups: +
    +
  1. In the \b Mesh menu select the Union Groups item. The following +dialog box will appear: + +\image html uniongroups.png + +In this dialog box you should specify the name of the resulting group +and two groups which will be united. + +For example, we have two groups Group1 and Group2. +\n The result of their \b Union will be Group12: + +\image html image133.gif +
    Group1
    + +\image html image134.gif +
    Group2
    + +\image html image135.gif +
    Group12
    +
  2. +
  3. Click the \b Ok or \b Apply button to confirm creation of the group.
  4. +
+ +See Also a sample TUI Script of a +\ref tui_union_of_two_groups "Union of two Groups" operation. + +
+\anchor intersection_anchor +

Intersection of two groups

+ +This operation allows to create a new group in such a way that all +mesh elements that are present in both initial groups are added to the +new one. + +To intersect two groups: +
    +
  1. In the \b Mesh menu select the Intersect Groups item. The +following dialog box will appear: + +\image html intersectgroups.png + +In this dialog box you should specify the name of the resulting group +and two groups which will be intersected. + +For example, we have two groups Group1 and Group2. +\n The result of their \b Intersection will be Group12a: + +\image html image133.gif +
    Group1
    + +\image html image134.gif +
    Group2
    + +\image html image136.gif +
    Group12a
    +
  2. +
  3. Click the \b Ok or \b Apply button to confirm creation of the group.
  4. +
+ +See Also a sample TUI Script of an +\ref tui_intersection_of_two_groups "Intersection of two Groups" operation. + +
+\anchor cut_anchor +

Cut of two groups

+ +This operation allows to create a new group in such a way that all +mesh elements that are present in the main group but are absent in the +tool group are added to the new one. + +To cut two groups: +
    +
  1. In the \b Mesh menu select the Cut Groups item. The +following dialog box will appear: + +\image html cutgroups.png + +In this dialog box you should specify the name of the resulting group +and two groups which will be cut. + +For example, we have two groups Group1 and Group2. +\n The result of their \b Cut will be Group12b: + +\image html image133.gif +
    Group1
    + +\image html image134.gif +
    Group2
    + +\image html image137.gif +
    Group12b
    +
  2. +
  3. Click the \b Ok or \b Apply button to confirm creation of the +group.
  4. +
+ +See Also a sample TUI Script of a +\ref tui_cut_of_two_groups "Cut of two Groups" operation. + +*/ \ No newline at end of file diff --git a/doc/salome/gui/SMESH/input/viewing_meshes.doc b/doc/salome/gui/SMESH/input/viewing_meshes.doc new file mode 100644 index 000000000..aac10da54 --- /dev/null +++ b/doc/salome/gui/SMESH/input/viewing_meshes.doc @@ -0,0 +1,15 @@ +/*! + +\page viewing_meshes_page Viewing meshes + +
    +
  • \subpage viewing_meshes_overview_page
  • +
  • \subpage mesh_infos_page
  • +
  • \subpage numbering_page
  • +
  • \subpage display_mode_page
  • +
  • \subpage display_entity_page
  • +
  • \subpage transparency_page
  • +
  • \subpage clipping_page
  • +
+ +*/ \ No newline at end of file diff --git a/doc/salome/gui/SMESH/input/viewing_meshes_overview.doc b/doc/salome/gui/SMESH/input/viewing_meshes_overview.doc new file mode 100644 index 000000000..59f8d4f53 --- /dev/null +++ b/doc/salome/gui/SMESH/input/viewing_meshes_overview.doc @@ -0,0 +1,48 @@ +/*! + +\page viewing_meshes_overview_page Overview + +\n After definition of algorithms and hypotheses a new mesh is listed +in the Object Browser. Right-click on it and select \b Compute - the +mesh will be automatically displayed in the VTK 3D Viewer. +Alternatively click Display only to hide all other objects at +the same time. + +VTK 3D Viewer is detailly described in the documentation on GUI module. +\n After the mesh has appeared in the Viewer, you can select it with +left mouse click and get information about it, change its +presentation parameters and access to other useful options by +right-clicking on the selected mesh. + +\image html image15.jpg + +
    +
  • Erase all - allows to hide all objects in the viewer.
  • +
  • Update - refreshes the presentation of your mesh in the +Object Browser, applying all recent changes.
  • +
  • \ref advanced_mesh_infos_anchor "Advanced Mesh Infos" - provides +more detailed information about the mesh.
  • +
  • \ref standard_mesh_infos_anchor "Standard Mesh Infos" - provides +basic information about the mesh.
  • +
  • \ref numbering_page "Numbering" - allows to display the ID +numbers of all meshing elements or nodes composing your mesh in the +viewer.
  • +
  • \ref display_mode_page "Display Mode" - allows to select between +Wireframe, Shading and Nodes presentation.
  • +
  • \ref display_entity_page "Display Entity" - allows to display +Faces, Edges or both.
  • +
  • Colors / Size - allows to select color and size of +meshes.
  • +
  • \ref transparency_page "Transparency" - allows to change the +transparency of mesh elements.
  • +
  • \ref clipping_page "Clipping" - allows to create cross-sections of the selected objects.
  • +
  • \ref about_quality_controls_page "Quality Controls" - graphically +presents various information about meshes.
  • +
  • Erase - allows to hide the selected mesh from the viewer.
  • +
  • Display Only -allows to display only the selected mesh, hiding all other from the viewer.
  • +
  • Dump view - exports an object from the viewer in bmp, png, jpg or jpeg image format.
  • +
  • Change background - allows to redefine the background color. By default it is black.
  • +
+ +*/ + diff --git a/doc/salome/gui/SMESH/input/volume.doc b/doc/salome/gui/SMESH/input/volume.doc new file mode 100644 index 000000000..391b09023 --- /dev/null +++ b/doc/salome/gui/SMESH/input/volume.doc @@ -0,0 +1,28 @@ +/*! + +\page volume_page Volume + +\n \b Volume mesh quality criterion reflects the volume of meshes of a +3D object. + +To apply the Volume quality criterion to your mesh: +
    +
  1. Display your mesh in the viewer.
  2. + +
  3. Choose Controls > Volume or click "Volume" button +in the toolbar. + +\image html image145.gif +
    "Volume" button
    + +Your mesh will be displayed in the viewer with its elements colored +according to the applied mesh quality control criterion: + +\image html image143.gif +
  4. +
+ +
See Also a sample TUI Script of a +\ref tui_volume "Volume quality control" operation. + +*/ \ No newline at end of file diff --git a/doc/salome/gui/SMESH/input/warping.doc b/doc/salome/gui/SMESH/input/warping.doc new file mode 100644 index 000000000..7ec2c2aaa --- /dev/null +++ b/doc/salome/gui/SMESH/input/warping.doc @@ -0,0 +1,43 @@ +/*! + +\page warping_page Warping + +\n \b Warping indicates that a face is not planar and is applied only to +2D elements with 4 nodes. This quality control criterion is based on a +projection plane created by: +
    +
  1. bisecting the four element edges,
  2. +
  3. creating a point on the plane at the vector average of the +corners, where the x-axis extends from the point to the bisector on +edge 2.
  4. +
+The plane normal is in the direction of the cross product of the +x-axis and the vector from the origin to the bisector of edge 3. Every +corner of the quad will then be a distance ?h? from the plane. The +length of each half edge is measured and the shortest length is +assigned ?l?. The warp angle is the arcsine of the ratio of the +projection height ?h? to the half edge length ?l?. + +\image html image24.gif + +To apply the Warping quality criterion to your mesh: +
    +
  1. Display your mesh in the viewer.
  2. + +
  3. Choose Controls > Warp or click "Warping angle" +button of the toolbar. + +\image html image39.gif +
    "Warping angle" button
    + +Your mesh will be displayed in the viewer with its elements colored +according to the applied mesh quality control criterion: + +\image html image97.jpg +
  4. +
+ +
See Also a sample TUI Script of a +\ref tui_warping "Warping quality control" operation. + +*/ \ No newline at end of file diff --git a/doc/salome/gui/SMESH/length.htm b/doc/salome/gui/SMESH/length.htm deleted file mode 100755 index db7b0ae0f..000000000 --- a/doc/salome/gui/SMESH/length.htm +++ /dev/null @@ -1,118 +0,0 @@ - - - - - -Length - - - - - - - - - - - - - -

Length

- -

The Length quality control criterion returns a value - of length of edge.

- -

 

- -

- -

 

- -

 

- -

See Also - a sample TUI Script of a  Length - quality control operation.  

- -

.

- - - - diff --git a/doc/salome/gui/SMESH/merge_elements.htm b/doc/salome/gui/SMESH/merge_elements.htm deleted file mode 100755 index f210b6af8..000000000 --- a/doc/salome/gui/SMESH/merge_elements.htm +++ /dev/null @@ -1,101 +0,0 @@ - - - - - -Merge Elements - - - - - - - - - - -

Merging Elements

- -

This functionality allows to merge coincident elements - of a mesh selectable in the dialog box.

- -

- -

In this picture you see a triangle which coincides with one of the elements - of the mesh. After we apply Merge Elements - functionality, the triangle will be completely merged with the mesh.

- -

- -

  See - Also a sample TUI Script of a Merge - Elements operation.  

- -

 

- -

 

- - - - diff --git a/doc/salome/gui/SMESH/mesh.htm b/doc/salome/gui/SMESH/mesh.htm deleted file mode 100755 index f849df81a..000000000 --- a/doc/salome/gui/SMESH/mesh.htm +++ /dev/null @@ -1,216 +0,0 @@ - - - - - -mesh - - - - - - - - - - - -

Introduction to MESH

- -

 

- -

MESH - module of SALOME is destined for:

- - - -

- -

for edges:

- -
    - - -
- -

for faces:

- -
    - - -
- -

for solids:

- -
    - - -
- -

.

- - - - diff --git a/doc/salome/gui/SMESH/mesh_through_point.htm b/doc/salome/gui/SMESH/mesh_through_point.htm deleted file mode 100755 index bf8e6f4ab..000000000 --- a/doc/salome/gui/SMESH/mesh_through_point.htm +++ /dev/null @@ -1,132 +0,0 @@ - - - - - -Mesh through point - - - - - - - - - - - -

Mesh through point

- -

In mesh you can define a node at a certain point either by creation - of a new node, by movement of the node closest to the point or by movement - of any node to the point.

- -

To create a mesh passing through a point:

- -

1. From the Modification - menu choose the Mesh through point - item or click button in the toolbar. The following - dialog box shall appear:

- -

- -

2. Enter the coordinates of the point

- -

3. Choose one of several methods: you can - either Create a new node at the - indicated point or Move the existing node to the point. In the latter - case you can check in Automatic search - of the closest node or select the necessary node manually. Preview - check-box allows to see the results of the operation.

- -

4. Click the Apply - or OK button.

- -

 See - Also a sample TUI Script of a Mesh - through point operation.  

- -

 

- -

 

- -

 

- -

 

- - - - diff --git a/doc/salome/gui/SMESH/modifying_meshes.htm b/doc/salome/gui/SMESH/modifying_meshes.htm deleted file mode 100755 index e33ea8c4b..000000000 --- a/doc/salome/gui/SMESH/modifying_meshes.htm +++ /dev/null @@ -1,1881 +0,0 @@ - - - - - -Modifying Meshes - - - - - - - - - - - -

Modifying Meshes

- -

Adding Nodes and Elements

- -

Add Node

- -

import SMESH_mechanic

- -

 

- -

mesh = SMESH_mechanic.mesh

- -

 

- -

# add node

- -

new_id - = mesh.AddNode(50, 10, 0)

- -

print ""

- -

if new_id == 0: - print "KO node addition."

- -

else:           print - "New Node has been added with ID ", new_id  

- -

 

- -

Add Edge

- -

import SMESH_mechanic

- -

 

- -

mesh = SMESH_mechanic.mesh

- -

print ""

- -

 

- -

# add node

- -

n1 - = mesh.AddNode(50, 10, 0)

- -

if n1 == 0: print - "KO node addition."

- -

 

- -

# add edge

- -

e1 - = mesh.AddEdge([n1, 38])

- -

if e1 == 0: print - "KO edge addition."

- -

else:       print - "New Edge has been added with ID ", e1

- -

Add Triangle

- -

import SMESH_mechanic

- -

 

- -

mesh = SMESH_mechanic.mesh

- -

print ""

- -

 

- -

# add node

- -

n1 = mesh.AddNode(50, - 10, 0)

- -

if n1 == 0: print - "KO node addition."

- -

 

- -

# add triangle

- -

t1 = mesh.AddFace([n1, - 38, 39])

- -

if t1 == 0: print - "KO triangle addition."

- -

else:       print - "New Triangle has been added with ID ", t1

- -

Add Quadrangle

- -

import SMESH_mechanic

- -

 

- -

mesh = SMESH_mechanic.mesh

- -

print ""

- -

 

- -

# add node

- -

n1 = mesh.AddNode(50, - 10, 0)

- -

if n1 == 0: print - "KO node addition."

- -

 

- -

n2 = mesh.AddNode(40, - 20, 0)

- -

if n2 == 0: print - "KO node addition."

- -

 

- -

# add quadrangle

- -

q1 = mesh.AddFace([n2, - n1, 38, 39])

- -

if q1 == 0: print - "KO quadrangle addition."

- -

else: -       print - "New Quadrangle has been added with ID ", q1

- -

Add Tetrahedron

- -

import SMESH_mechanic

- -

 

- -

mesh = SMESH_mechanic.mesh

- -

print ""

- -

 

- -

# add node

- -

n1 = mesh.AddNode(50, - 10, 0)

- -

if n1 == 0: print - "KO node addition."

- -

 

- -

# add tetrahedron

- -

t1 = mesh.AddVolume([n1, - 38, 39, 246])

- -

if t1 == 0: print - "KO tetrahedron addition."

- -

else: -       print - "New Tetrahedron has been added with ID ", t1

- -

Add Hexahedron

- -

import SMESH_mechanic

- -

 

- -

mesh = SMESH_mechanic.mesh

- -

print ""

- -

 

- -

# add nodes

- -

nId1 = mesh.AddNode(50, - 10, 0)

- -

nId2 = mesh.AddNode(47, - 12, 0)

- -

nId3 = mesh.AddNode(50, - 10, 10)

- -

nId4 = mesh.AddNode(47, - 12, 10)

- -

 

- -

if nId1 == 0 or - nId2 == 0 or nId3 == 0 or nId4 == 0: print "KO node addition."

- -

 

- -

# add hexahedron

- -

vId = mesh.AddVolume([nId2, - nId1, 38, 39, nId4, nId3, 245, 246])

- -

if vId == 0: print - "KO Hexahedron addition."

- -

else:        print - "New Hexahedron has been added with ID ", vId

- -

 

- -

Add Polygon

- -

import - math

- -

import salome

- -

 

- -

import smesh

- -

 

- -

# create an empty mesh - structure

- -

mesh = smesh.Mesh() -

- -

 

- -

# a method to build - a polygonal mesh element with <nb_vert> angles:

- -

def MakePolygon - (a_mesh, x0, y0, z0, radius, nb_vert):

- -

    al - = 2.0 * math.pi / nb_vert

- -

    node_ids - = []

- -

 

- -

          # - Create nodes for a polygon

- -

    for - ii in range(nb_vert):

- -

        nid - = mesh.AddNode(x0 + radius * math.cos(ii*al),

- -

                                 y0 - + radius * math.sin(ii*al),

- -

                                 z0)

- -

        node_ids.append(nid)

- -

        pass

- -

 

- -

          # - Create a polygon

- -

    return - mesh.AddPolygonalFace(node_ids)

- -

 

- -

# Create three polygons

- -

f1 = MakePolygon(mesh, - 0, 0,  0, - 30, 13)

- -

f2 = MakePolygon(mesh, - 0, 0, 10, 21,  9)

- -

f3 = MakePolygon(mesh, - 0, 0, 20, 13,  6)

- -

 

- -

salome.sg.updateObjBrowser(1) -

- -

Add Polyhedron

- -

import - salome

- -

import math

- -

 

- -

# create an empty mesh - structure

- -

mesh = smesh.Mesh() -  

- -

 

- -

# Create nodes for - 12-hedron with pentagonal faces

- -

al = 2 * math.pi - / 5.0

- -

cosal = math.cos(al)

- -

aa = 13

- -

rr = aa / (2.0 * - math.sin(al/2.0))

- -

dr = 2.0 * rr * - cosal

- -

r1 = rr + dr

- -

dh = rr * math.sqrt(2.0 - * (1.0 - cosal * (1.0 + 2.0 * cosal)))

- -

hh = 2.0 * dh - - dr * (rr*(cosal - 1) + (rr + dr)*(math.cos(al/2) - 1)) / dh

- -

 

- -

dd = [] # - top

- -

cc = [] # - below top

- -

bb = [] # - above bottom

- -

aa = [] # - bottom

- -

 

- -

for i in range(5):

- -

    cos_bot - = math.cos(i*al)

- -

    sin_bot - = math.sin(i*al)

- -

 

- -

    cos_top - = math.cos(i*al + al/2.0)

- -

    sin_top - = math.sin(i*al + al/2.0)

- -

 

- -

    nd - = mesh.AddNode(rr * cos_top, rr * sin_top, hh     ) - # top

- -

    nc - = mesh.AddNode(r1 * cos_top, r1 * sin_top, hh - dh) # - below top

- -

    nb - = mesh.AddNode(r1 * cos_bot, r1 * sin_bot,      dh) - # above bottom

- -

    na - = mesh.AddNode(rr * cos_bot, rr * sin_bot,       0) - # bottom

- -

    dd.append(nd) - # top

- -

    cc.append(nc) - # below top

- -

    bb.append(nb) - # above bottom

- -

    aa.append(na) - # bottom

- -

 

- -

    pass

- -

 

- -

# Create a polyhedral - volume (12-hedron with pentagonal faces)

- -

MeshEditor.AddPolyhedralVolume([dd[0], - dd[1], dd[2], dd[3], dd[4],  # - top

- -

                                dd[0], - cc[0], bb[1], cc[1], dd[1],  # - -

- -

                                dd[1], - cc[1], bb[2], cc[2], dd[2],  # - -

- -

                                dd[2], - cc[2], bb[3], cc[3], dd[3],  # - - below top

- -

                                dd[3], - cc[3], bb[4], cc[4], dd[4],  # - -

- -

                                dd[4], - cc[4], bb[0], cc[0], dd[0],  # - -

- -

                                aa[4], - bb[4], cc[4], bb[0], aa[0],  # - .

- -

                                aa[3], - bb[3], cc[3], bb[4], aa[4],  # - .

- -

                                aa[2], - bb[2], cc[2], bb[3], aa[3],  # - . above bottom

- -

                                aa[1], - bb[1], cc[1], bb[2], aa[2],  # - .

- -

                                aa[0], - bb[0], cc[0], bb[1], aa[1],  # - .

- -

                                aa[0], - aa[1], aa[2], aa[3], aa[4]], # - bottom

- -

                               [5,5,5,5,5,5,5,5,5,5,5,5])

- -

salome.sg.updateObjBrowser(1) -

- -

 

- -

Removing Nodes and Elements

- -

Removing Nodes

- -

 

- -

import - SMESH_mechanic

- -

 

- -

mesh = SMESH_mechanic.mesh

- -

 

- -

# remove nodes #246 - and #255

- -

res = mesh.RemoveNodes([246, - 255])

- -

if res == 1: print - "Nodes removing is OK!"

- -

else:        print - "KO nodes removing."

- -

 

- -

Removing Elements

- -

import SMESH_mechanic

- -

 

- -

mesh = SMESH_mechanic.mesh

- -

 

- -

# remove three elements: - #850, #859 and #814

- -

res = mesh.RemoveElements([850, - 859, 814])

- -

if res == 1: print - "Elements removing is OK!"

- -

else:        print - "KO Elements removing."  

- -

 

- -

Renumbering Nodes and Elements

- -

import SMESH_mechanic

- -

 

- -

mesh = SMESH_mechanic.mesh

- -

 

- -

mesh.RenumberNodes() -

- -

Moving Nodes

- -

import SMESH_mechanic

- -

 

- -

mesh = SMESH_mechanic.mesh

- -

 

- -

# move node #38

- -

mesh.MoveNode(38, - 20., 10., 0.)

- -

 

- -

 

- -

Mesh - through point

- -

 

- -

from geompy import - *

- -

from smesh import - *

- -

 

- -

box = MakeBoxDXDYDZ(200, - 200, 200)

- -

 

- -

mesh = Mesh( box - )

- -

mesh.Segment().AutomaticLength(0.1)

- -

mesh.Quadrangle()

- -

mesh.Compute()

- -

 

- -

# find node at (0,0,0)

- -

node000 = None

- -

for vId in SubShapeAllIDs( - box, ShapeType["VERTEX"]):

- -

    if - node000: break

- -

    nodeIds - = mesh.GetSubMeshNodesId( vId, True )

- -

    for - node in nodeIds:

- -

        xyz - = mesh.GetNodeXYZ( node )

- -

        if - xyz[0] == 0 and xyz[1] == 0 and xyz[2] == 0 :

- -

            node000 - = node

- -

            pass

- -

        pass

- -

    pass

- -

if not node000:

- -

    raise - "node000 not found"

- -

 

- -

# find node000 using the - tested function

- -

n = mesh.FindNodeClosestTo( - -1,-1,-1 )

- -

if not n == node000:

- -

    raise - "FindNodeClosestTo() returns " + str( n ) + " != " - + str( node000 )

- -

 

- -

# check if any node will - be found for a point inside a box

- -

n = mesh.FindNodeClosestTo( - 100, 100, 100 )

- -

if not n > 0:

- -

    raise - "FindNodeClosestTo( 100, 100, 100 ) fails"

- -

 

- -

# move node000 to a new - location

- -

x,y,z = -10, -10, - -10

- -

n = mesh.MeshToPassThroughAPoint( - x,y,z )

- -

if not n == node000:

- -

    raise - "FindNodeClosestTo() returns " + str( n ) + " != " - + str( node000 )

- -

 

- -

# check the coordinates - of the node000

- -

xyz = mesh.GetNodeXYZ( - node000 )

- -

if not ( xyz[0] - == x and xyz[1] == y and xyz[2] == z) :

- -

    raise - "Wrong coordinates: " + str( xyz ) + " != " + str( - [x,y,z] )

- -

Diagonal Inversion

- -

import salome

- -

import smesh

- -

 

- -

# create an empty mesh - structure

- -

mesh = smesh.Mesh() -

- -

 

- -

# create the following - mesh:

- -

# .----.----.----.

- -

# |   /| -   /| -   /|

- -

# |  / - |  / |  / - |

- -

# | /  | - /  | /  |

- -

# |/   |/ -   |/ -   |

- -

# .----.----.----.

- -

 

- -

bb = [0, 0, 0, 0]

- -

tt = [0, 0, 0, 0]

- -

ff = [0, 0, 0, 0, - 0, 0]

- -

 

- -

bb[0] = mesh.AddNode( - 0., 0., 0.)

- -

bb[1] = mesh.AddNode(10., - 0., 0.)

- -

bb[2] = mesh.AddNode(20., - 0., 0.)

- -

bb[3] = mesh.AddNode(30., - 0., 0.)

- -

 

- -

tt[0] = mesh.AddNode( - 0., 15., 0.)

- -

tt[1] = mesh.AddNode(10., - 15., 0.)

- -

tt[2] = mesh.AddNode(20., - 15., 0.)

- -

tt[3] = mesh.AddNode(30., - 15., 0.)

- -

 

- -

ff[0] = mesh.AddFace([bb[0], - bb[1], tt[1]])

- -

ff[1] = mesh.AddFace([bb[0], - tt[1], tt[0]])

- -

ff[2] = mesh.AddFace([bb[1], - bb[2], tt[2]])

- -

ff[3] = mesh.AddFace([bb[1], - tt[2], tt[1]])

- -

ff[4] = mesh.AddFace([bb[2], - bb[3], tt[3]])

- -

ff[5] = mesh.AddFace([bb[2], - tt[3], tt[2]])

- -

 

- -

# inverse the diagonal - bb[1] - tt[2]

- -

print "\nDiagonal - inversion ... ",

- -

res = mesh.InverseDiag(bb[1], - tt[2])

- -

if not res: print - "failed!"

- -

else:       print - "done."

- -

 

- -

salome.sg.updateObjBrowser(1) -

- -

Uniting two Triangles

- -

import salome

- -

import smesh

- -

 

- -

# create an empty mesh structure

- -

mesh = smesh.Mesh() -

- -

 

- -

# create the following mesh:

- -

# .----.----.----.

- -

# |   /| -   /| -   /|

- -

# |  / - |  / |  / - |

- -

# | /  | - /  | /  |

- -

# |/   |/ -   |/ -   |

- -

# .----.----.----.

- -

 

- -

bb = [0, 0, 0, 0]

- -

tt = [0, 0, 0, 0]

- -

ff = [0, 0, 0, 0, - 0, 0]

- -

 

- -

bb[0] - = mesh.AddNode( 0., 0., 0.)

- -

bb[1] = mesh.AddNode(10., - 0., 0.)

- -

bb[2] = mesh.AddNode(20., - 0., 0.)

- -

bb[3] = mesh.AddNode(30., - 0., 0.)

- -

 

- -

tt[0] = mesh.AddNode( - 0., 15., 0.)

- -

tt[1] = mesh.AddNode(10., - 15., 0.)

- -

tt[2] = mesh.AddNode(20., - 15., 0.)

- -

tt[3] = mesh.AddNode(30., - 15., 0.)

- -

 

- -

ff[0] = mesh.AddFace([bb[0], - bb[1], tt[1]])

- -

ff[1] = mesh.AddFace([bb[0], - tt[1], tt[0]])

- -

ff[2] = mesh.AddFace([bb[1], - bb[2], tt[2]])

- -

ff[3] = mesh.AddFace([bb[1], - tt[2], tt[1]])

- -

ff[4] = mesh.AddFace([bb[2], - bb[3], tt[3]])

- -

ff[5] = mesh.AddFace([bb[2], - tt[3], tt[2]])

- -

 

- -

# delete the diagonal bb[1] - tt[2]

- -

print "\nUnite - two triangles ... ",

- -

res = mesh.DeleteDiag(bb[1], - tt[2])

- -

if not res: print - "failed!"

- -

else:       print - "done."

- -

 

- -

salome.sg.updateObjBrowser(1) -

- -

Uniting a Set of Triangles

- -

import salome

- -

import smesh

- -

 

- -

# create an empty mesh - structure

- -

mesh = smesh.Mesh() -

- -

 

- -

# create the following - mesh:

- -

# .----.----.----.

- -

# |   /| -   /| -   /|

- -

# |  / - |  / |  / - |

- -

# | /  | - /  | /  |

- -

# |/   |/ -   |/ -   |

- -

# .----.----.----.

- -

 

- -

bb = [0, 0, 0, 0]

- -

tt = [0, 0, 0, 0]

- -

ff = [0, 0, 0, 0, - 0, 0]

- -

 

- -

bb[0] - = mesh.AddNode( 0., 0., 0.)

- -

bb[1] = mesh.AddNode(10., - 0., 0.)

- -

bb[2] = mesh.AddNode(20., - 0., 0.)

- -

bb[3] = mesh.AddNode(30., - 0., 0.)

- -

 

- -

tt[0] = mesh.AddNode( - 0., 15., 0.)

- -

tt[1] = mesh.AddNode(10., - 15., 0.)

- -

tt[2] = mesh.AddNode(20., - 15., 0.)

- -

tt[3] = mesh.AddNode(30., - 15., 0.)

- -

 

- -

ff[0] = mesh.AddFace([bb[0], - bb[1], tt[1]])

- -

ff[1] = mesh.AddFace([bb[0], - tt[1], tt[0]])

- -

ff[2] = mesh.AddFace([bb[1], - bb[2], tt[2]])

- -

ff[3] = mesh.AddFace([bb[1], - tt[2], tt[1]])

- -

ff[4] = mesh.AddFace([bb[2], - bb[3], tt[3]])

- -

ff[5] = mesh.AddFace([bb[2], - tt[3], tt[2]])

- -

 

- -

# unite a set of triangles

- -

print - "\nUnite a set of triangles ... ",

- -

res = mesh.TriToQuad([ff[2], - ff[3], ff[4], ff[5]], smesh.FT_MinimumAngle, 60.)

- -

if not res: print - "failed!"

- -

else:       print - "done."

- -

 

- -

salome.sg.updateObjBrowser(1) -  

- -

Orientation

- -

import salome

- -

import smesh

- -

 

- -

# create an empty mesh structure

- -

mesh = smesh.Mesh() -

- -

 

- -

# build five quadrangles:

- -

dx = 10

- -

dy = 20

- -

 

- -

n1 -  = mesh.AddNode(0.0 - * dx, 0, 0)

- -

n2  = - mesh.AddNode(1.0 * dx, 0, 0)

- -

n3  = - mesh.AddNode(2.0 * dx, 0, 0)

- -

n4  = - mesh.AddNode(3.0 * dx, 0, 0)

- -

n5  = - mesh.AddNode(4.0 * dx, 0, 0)

- -

n6  = - mesh.AddNode(5.0 * dx, 0, 0)

- -

n7  = - mesh.AddNode(0.0 * dx, dy, 0)

- -

n8  = - mesh.AddNode(1.0 * dx, dy, 0)

- -

n9  = - mesh.AddNode(2.0 * dx, dy, 0)

- -

n10 = mesh.AddNode(3.0 - * dx, dy, 0)

- -

n11 = mesh.AddNode(4.0 - * dx, dy, 0)

- -

n12 = mesh.AddNode(5.0 - * dx, dy, 0)

- -

 

- -

f1 = mesh.AddFace([n1, - n2, n8 , n7 ])

- -

f2 = mesh.AddFace([n2, - n3, n9 , n8 ])

- -

f3 = mesh.AddFace([n3, - n4, n10, n9 ])

- -

f4 = mesh.AddFace([n4, - n5, n11, n10])

- -

f5 = mesh.AddFace([n5, - n6, n12, n11])

- -

 

- -

# Change the orientation - of the second and the fourth faces.

- -

mesh.Reorient([2, - 4])

- -

 

- -

salome.sg.updateObjBrowser(1) -

- -

 

- -

Cutting Quadrangles

- -

import SMESH_mechanic

- -

 

- -

smesh = SMESH_mechanic.smesh

- -

mesh  = - SMESH_mechanic.mesh

- -

 

- -

# cut two quadrangles: - 405 and 406

- -

mesh.QuadToTri([405, - 406], smesh.FT_MinimumAngle)  

- -

 

- -

Smoothing

- -

import salome

- -

import geompy

- -

 

- -

import SMESH_mechanic

- -

 

- -

smesh - = SMESH_mechanic.smesh

- -

mesh = SMESH_mechanic.mesh

- -

 

- -

# select the top face

- -

faces - = geompy.SubShapeAllSorted(SMESH_mechanic.shape_mesh, geompy.ShapeType["FACE"])

- -

face = faces[3]

- -

geompy.addToStudyInFather(SMESH_mechanic.shape_mesh, - face, "face planar with hole")

- -

 

- -

# create a group of - faces to be smoothed

- -

GroupSmooth = mesh.GroupOnGeom(face, - "Group of faces (smooth)", smesh.FACE)

- -

 

- -

# perform smoothing

- -

 

- -

# boolean SmoothObject(Object, - IDsOfFixedNodes, MaxNbOfIterations, MaxAspectRatio, Method)

- -

res = mesh.SmoothObject(GroupSmooth, - [], 20, 2., smesh.CENTROIDAL_SMOOTH)

- -

print "\nSmoothing - ... ",

- -

if not res: print - "failed!"

- -

else:       print - "done."

- -

 

- -

salome.sg.updateObjBrowser(1) -

- -

 

- -

Extrusion

- -

import salome

- -

import geompy

- -

 

- -

import SMESH_mechanic

- -

 

- -

smesh - = SMESH_mechanic.smesh

- -

mesh = SMESH_mechanic.mesh -

- -

 

- -

# select the top face

- -

faces = geompy.SubShapeAllSorted(SMESH_mechanic.shape_mesh, - geompy.ShapeType["FACE"])

- -

face = faces[7]

- -

geompy.addToStudyInFather(SMESH_mechanic.shape_mesh, - face, "face circular top")

- -

 

- -

# create a vector - for extrusion

- -

point = smesh.PointStruct(0., - 0., 5.)

- -

vector = smesh.DirStruct(point)

- -

 

- -

# create a group to - be extruded

- -

GroupTri = mesh.GroupOnGeom(face, - "Group of faces (extrusion)", smesh.FACE)

- -

 

- -

# perform extrusion - of the group

- -

mesh.ExtrusionSweepObject(GroupTri, - vector, 5)

- -

 

- -

salome.sg.updateObjBrowser(1) -

- -

Extrusion along a Path

- -

import math

- -

import salome

- -

 

- -

# Geometry

- -

import geompy

- -

 

- -

# 1. Create points

- -

points = [[0, 0], - [50, 30], [50, 110], [0, 150], [-80, 150], [-130, 70], [-130, -20]]

- -

 

- -

iv = 1

- -

vertices = []

- -

for point in points:

- -

vert - = geompy.MakeVertex(point[0], point[1], 0)

- -

geompy.addToStudy(vert, - "Vertex_" + `iv`)

- -

vertices.append(vert)

- -

iv - += 1

- -

pass

- -

 

- -

# 2. Create edges and - wires

- -

Edge_straight = geompy.MakeEdge(vertices[0], - vertices[4])

- -

Edge_bezierrr = geompy.MakeBezier(vertices)

- -

Wire_polyline = geompy.MakePolyline(vertices)

- -

Edge_Circle   = - geompy.MakeCircleThreePnt(vertices[0], vertices[1], vertices[2])

- -

 

- -

geompy.addToStudy(Edge_straight, - "Edge_straight")

- -

geompy.addToStudy(Edge_bezierrr, - "Edge_bezierrr")

- -

geompy.addToStudy(Wire_polyline, - "Wire_polyline")

- -

geompy.addToStudy(Edge_Circle -  , "Edge_Circle")

- -

 

- -

# 3. Explode wire on - edges, as they will be used for mesh extrusion

- -

Wire_polyline_edges - = geompy.SubShapeAll(Wire_polyline, geompy.ShapeType["EDGE"])

- -

for ii in range(len(Wire_polyline_edges)):

- -

geompy.addToStudyInFather(Wire_polyline, - Wire_polyline_edges[ii], "Edge_" + `ii + 1`)

- -

pass

- -

 

- -

# Mesh

- -

import smesh

- -

 

- -

# Mesh - the given shape with the given 1d hypothesis

- -

def - Mesh1D(shape1d, nbSeg, name):

- -

  mesh1d_tool - = smesh.Mesh(shape1d, name)

- -

  algo - = mesh1d_tool.Segment()

- -

  hyp -  = algo.NumberOfSegments(nbSeg)

- -

  isDone - = mesh1d_tool.Compute()

- -

  if - not isDone: print 'Mesh ', name, ': computation failed'

- -

  return - mesh1d_tool

- -

# Create - a mesh with six nodes, seven edges and two quadrangle faces

- -

def - MakeQuadMesh2(mesh_name):

- -

  quad_1 - = smesh.Mesh(name = mesh_name)

- -

  

- -

  # - six nodes

- -

  n1 - = quad_1.AddNode(0, 20, 10)

- -

  n2 - = quad_1.AddNode(0, 40, 10)

- -

  n3 - = quad_1.AddNode(0, 40, 30)

- -

  n4 - = quad_1.AddNode(0, 20, 30)

- -

  n5 - = quad_1.AddNode(0,  0, - 30)

- -

  n6 - = quad_1.AddNode(0,  0, - 10)

- -

  

- -

  # - seven edges

- -

  quad_1.AddEdge([n1, - n2]) # 1

- -

  quad_1.AddEdge([n2, - n3]) # 2

- -

  quad_1.AddEdge([n3, - n4]) # 3

- -

  quad_1.AddEdge([n4, - n1]) # 4

- -

  quad_1.AddEdge([n4, - n5]) # 5

- -

  quad_1.AddEdge([n5, - n6]) # 6

- -

  quad_1.AddEdge([n6, - n1]) # 7

- -

 

- -

  # - two quadrangle faces

- -

  quad_1.AddFace([n1, - n2, n3, n4]) # 8

- -

  quad_1.AddFace([n1, - n4, n5, n6]) # 9

- -

  return - [quad_1, [1,2,3,4,5,6,7], [8,9]]

- -

 

- -

# Path - meshes

- -

Edge_straight_mesh - = Mesh1D(Edge_straight, 7, "Edge_straight")

- -

Edge_bezierrr_mesh - = Mesh1D(Edge_bezierrr, 7, "Edge_bezierrr")

- -

Wire_polyline_mesh - = Mesh1D(Wire_polyline, 3, "Wire_polyline")

- -

Edge_Circle_mesh -   = - Mesh1D(Edge_Circle  , - 8, "Edge_Circle")

- -

 

- -

# Initial - meshes (to be extruded)

- -

[quad_1, - ee_1, ff_1] = MakeQuadMesh2("quad_1")

- -

[quad_2, - ee_2, ff_2] = MakeQuadMesh2("quad_2")

- -

[quad_3, - ee_3, ff_3] = MakeQuadMesh2("quad_3")

- -

[quad_4, - ee_4, ff_4] = MakeQuadMesh2("quad_4")

- -

[quad_5, - ee_5, ff_5] = MakeQuadMesh2("quad_5")

- -

[quad_6, - ee_6, ff_6] = MakeQuadMesh2("quad_6")

- -

[quad_7, - ee_7, ff_7] = MakeQuadMesh2("quad_7")

- -

 

- -

# ExtrusionAlongPath

- -

# IDsOfElements, - PathMesh, PathShape, NodeStart,

- -

# HasAngles, - Angles, HasRefPoint, RefPoint

- -

refPoint - = smesh.PointStruct(0, 0, 0)

- -

a10 - = 10.0*math.pi/180.0

- -

a45 - = 45.0*math.pi/180.0

- -

 

- -

# 1. - Extrusion of two mesh edges along a straight path

- -

error - = quad_1.ExtrusionAlongPath([1,2], Edge_straight_mesh, Edge_straight, - 1,

- -

                                  0, - [], 0, refPoint)

- -

 

- -

# 2. - Extrusion of one mesh edge along a curved path

- -

error - = quad_2.ExtrusionAlongPath([2], Edge_bezierrr_mesh, Edge_bezierrr, 1,

- -

                                  0, - [], 0, refPoint)

- -

 

- -

# 3. - Extrusion of one mesh edge along a curved path with usage of angles

- -

error - = quad_3.ExtrusionAlongPath([2], Edge_bezierrr_mesh, Edge_bezierrr, 1,

- -

                                  1, - [a45, a45, a45, 0, -a45, -a45, -a45], 0, refPoint)

- -

 

- -

# 4. - Extrusion of one mesh edge along the path, which is a part of a meshed - wire

- -

error - = quad_4.ExtrusionAlongPath([4], Wire_polyline_mesh, Wire_polyline_edges[0], - 1,

- -

                                  1, - [a10, a10, a10], 0, refPoint)

- -

 

- -

# 5. - Extrusion of two mesh faces along the path, which is a part of a meshed - wire

- -

error - = quad_5.ExtrusionAlongPath(ff_5 , Wire_polyline_mesh, Wire_polyline_edges[2], - 4,

- -

                                  0, - [], 0, refPoint)

- -

 

- -

# 6. - Extrusion of two mesh faces along a closed path

- -

error - = quad_6.ExtrusionAlongPath(ff_6 , Edge_Circle_mesh, Edge_Circle, 1,

- -

                                  0, - [], 0, refPoint)

- -

 

- -

# 7. - Extrusion of two mesh faces along a closed path with usage of angles

- -

error - = quad_7.ExtrusionAlongPath(ff_7, Edge_Circle_mesh, Edge_Circle, 1,

- -

                                  1, - [a45, -a45, a45, -a45, a45, -a45, a45, -a45], 0, refPoint)

- -

 

- -

salome.sg.updateObjBrowser(1) -

- -

Revolution

- -

import math

- -

 

- -

import SMESH_mechanic

- -

 

- -

mesh -  = SMESH_mechanic.mesh

- -

smesh = SMESH_mechanic.smesh

- -

 

- -

# create a group of faces - to be revolved

- -

FacesRotate = [492, - 493, 502, 503]

- -

GroupRotate = mesh.CreateGroup(SMESH.FACE,"Group - of faces (rotate)")

- -

GroupRotate.Add(FacesRotate)

- -

 

- -

# define revolution angle - and axis

- -

angle45 = 45 * math.pi - / 180

- -

axisXYZ = SMESH.AxisStruct(-38.3128, - -73.3658, -23.321, -13.3402, -13.3265, 6.66632)

- -

 

- -

# perform revolution - of an object

- -

mesh.RotationSweepObject(GroupRotate, - axisXYZ, angle45, 4, 1e-5)

- -

 

- -

Pattern Mapping

- -

import geompy

- -

 

- -

import smesh

- -

 

- -

# define the geometry

- -

Box_1 = geompy.MakeBoxDXDYDZ(200., - 200., 200.)

- -

geompy.addToStudy(Box_1, - "Box_1")

- -

 

- -

faces = geompy.SubShapeAll(Box_1, - geompy.ShapeType["FACE"])

- -

Face_1 = faces[0]

- -

Face_2 = faces[1]

- -

 

- -

geompy.addToStudyInFather(Box_1, - Face_1, "Face_1")

- -

geompy.addToStudyInFather(Box_1, - Face_2, "Face_2")

- -

 

- -

# build a quadrangle - mesh 3x3 on Face_1

- -

Mesh_1 = smesh.Mesh(Face_1)

- -

algo1D = Mesh_1.Segment()

- -

algo1D.NumberOfSegments(3)

- -

Mesh_1.Quadrangle()

- -

 

- -

isDone = Mesh_1.Compute()

- -

if not isDone: print - 'Mesh Mesh_1 : computation failed'

- -

 

- -

# build a triangle - mesh on Face_2

- -

Mesh_2 = smesh.Mesh(Face_2)

- -

 

- -

algo1D = Mesh_2.Segment()

- -

algo1D.NumberOfSegments(1)

- -

algo2D = Mesh_2.Triangle()

- -

algo2D.MaxElementArea(240)

- -

 

- -

isDone = Mesh_2.Compute()

- -

if not isDone: print - 'Mesh Mesh_2 : computation failed'

- -

 

- -

# create a pattern

- -

pattern = smesh.GetPattern()

- -

 

- -

isDone = pattern.LoadFromFace(Mesh_2.GetMesh(), - Face_2, 0)

- -

if (isDone != 1): print - 'LoadFromFace :', pattern.GetErrorCode()

- -

 

- -

# apply the pattern - to a face of the first mesh

- -

pattern.ApplyToMeshFaces(Mesh_1.GetMesh(), - [17], 0, 0)

- -

 

- -

isDone = pattern.MakeMesh(Mesh_1.GetMesh(), - 0, 0)

- -

if (isDone != 1): print - 'MakeMesh :', pattern.GetErrorCode()  

- - - - diff --git a/doc/salome/gui/SMESH/netgen_2d_and_3d_hypotheses.htm b/doc/salome/gui/SMESH/netgen_2d_and_3d_hypotheses.htm deleted file mode 100644 index 1413f3baf..000000000 --- a/doc/salome/gui/SMESH/netgen_2d_and_3d_hypotheses.htm +++ /dev/null @@ -1,146 +0,0 @@ - - - - - -Netgen 2D and 3D hypotheses - - - - - - - - - - - -

Netgen 2D and 3D hypotheses

- -

Netgen 2D and Netgen - 3D hypotheses work only with Netgen 1D-2D and Netgen - 1D-2D-3D algorithms. These algorithms - do not require definition of lower-level  hypotheses - and algorithms (2D and 1D for meshing 3D objects and 1D for meshing 2D - objects). They prove to be useful if lower-level meshing is homogeneous - for all wires and faces of the meshed object.

- -

- -
    - -
  • Name - - allows to define the name for the algorithm (Netgen 2D (or 3D) Parameters - by default)

  • - -
  • Max - Size - maximum linear dimensions for mesh cells.

  • - -
  • Second - Order - if this box is checked in, the algorithm will create second - order nodes on the mesh, which actually will become Quadratic. -   

  • - -
  • Fineness - - ranging from Very Coarse to Very Fine allows to set the level of meshing - detalization using the three parameters below. You can select Custom to - define them manually.

  • - -
  • Growth - rate - allows to define how much the linear dimensions of two adjacent - cells can differ (i.e. 0.3 means 30%).

  • - -
  • Nb. - Segs per Edge and Nb Segs per - Radius - allows to define the minimum number of mesh segments in - which edges and radiuses will be split.

  • - -
  • Allow - Quadrangles - allows to use quadrangle elements in a triangle 2D - mesh. This checkbox is not present in Netgen 3D parameters because currently - building a tetrahedral mesh with quadrangle faces is not possible.

  • - -
  • Optimize - - if this box is checked in, the algorithm will try to create regular - (possessing even sides) elements.

  • -
- - - - diff --git a/doc/salome/gui/SMESH/note1.gif b/doc/salome/gui/SMESH/note1.gif deleted file mode 100755 index b53e21d0a..000000000 Binary files a/doc/salome/gui/SMESH/note1.gif and /dev/null differ diff --git a/doc/salome/gui/SMESH/pattern_mapping.htm b/doc/salome/gui/SMESH/pattern_mapping.htm deleted file mode 100755 index 87685f026..000000000 --- a/doc/salome/gui/SMESH/pattern_mapping.htm +++ /dev/null @@ -1,311 +0,0 @@ - - - - - -Pattern mapping - - - - - - - - - - - - - -

Pattern mapping

- -

About patterns

- -

The pattern describes a mesh to generate: positions of - nodes within a geometrical domain and nodal connectivity of elements. - As well, a pattern specifies the so-called key-points, i.e. nodes that - will be located at geometrical vertices. Pattern description is stored - in <pattern_name>.smp file.

- -

 

- -

The smp file contains 4 sections:

- -

 

- -

1. The first line holds the number of nodes - (N).

- -

 

- -

2. The next N lines describe nodes coordinates. - Each line holds 2 coordinates of a node.

- -

 

- -

3. A key-points line: indices of nodes to - be mapped on geometrical vertices. An index n refers to a node described - on an n-th line of section 2. The first node index is zero.

- -

 

- -

4. The rest lines describe nodal connectivity - of elements, one line for an element. A line holds indices of nodes forming - an element. An index n refers to a node described on an n-th line of the - section 2. The first node index is zero. There must be 3 or 4 indices - on a line: only 2d elements are allowed.

- -

 

- -

The 2D pattern must contain at least one element and at least one key-point. - All key-points must lay on boundaries.

- -

 

- -

An example of a simple smp file and a preview of a pattern described - in this file:

- -

 

- -

- -

 

- -

 

- -

Application of pattern mapping

- -

To apply pattern mapping to a geometrical object:

- -

 

- -

1. From the Modification - menu choose the Pattern Mapping - item or click button in the toolbar. The following - dialog box shall appear:

- -

 

- - --- - - - -
-

-

- -

 

- -

To apply a pattern to a geometrical object, you should specify:

- -

- a face having the number of vertices equal - to the number of key-points in the pattern; the number of key-points on - internal boundaries of a pattern must also be equal to the number of vertices - on internal boundaries of a face;

- -

- a vertex to which the first key-point should - be mapped,

- -

- reverse or not the order of key-points. - (The order of vertices of a face is counterclockwise looking from outside).

- -

 

- -

Then you either load a .smp pattern file previously created manually - by clicking on the button, or click on the New - button for automatic generation.

- -

For an automatic generation you just specify a geometrical face having - a mesh built on it. Mesh nodes lying on face vertices become key-points. - Additionally, you may choose the way of getting nodes coordinates by projecting nodes on the face instead - of using "positions on face" generated by mesher (if there is - any). Faces having a seam edge canÂ’t be used for automatic pattern creation.

- -

 

- -

When creating a pattern from an existing mesh, there are two possible - cases:

- -

 

- -

1. A sub-mesh on face is selected. A pattern is created from the 2d - elements bound to a face by mesher. Node coordinates are either "positions - on face" computed by mesher, or coordinates got by node projection - on a geometrical surface, according to your choice.

- -

2. A mesh where the main shape is a face, is selected. A pattern is - created from all the 2d elements in a mesh. If all mesh elements are build - by mesher, the user can select the way of getting nodes coordinates, else - all nodes are projected on a face surface.

- - --- - - - -
-

-

- -

 

- -

Mapping algorithm:

- -

The mapping algorithm is as follows:

- -

 

- -

1. Key-points are set in the order that they - are encountered when walking along a pattern boundary so that elements - are on the left. The first key-point is preserved.

- -

2. Find geometrical vertices corresponding - to key-points by vertices order in a face boundary; here, "Reverse - order of key-points" flag is taken into account.

- -

 

- -

- -

 

- -

3. Boundary nodes of a pattern are mapped - onto edges of a face: a node located between certain key-points on a pattern - boundary is mapped on a geometrical edge limited by corresponding geometrical - vertices. Node position on an edge reflects its distance from two key-points.

- -

 

- -

- -

 

- -

4. Coordinates of a non-boundary node in - a parametric space of a face are defined as following. In a parametric - space of a pattern, a node lays at the intersection of two iso-lines, - each of which intersects a pattern boundary at least at two points. Knowing - mapped positions of boundary nodes, we find where isoline-boundary intersection - points are mapped to, and hence we can find mapped isolines direction - and then, two node positions on two mapped isolines. The eventual mapped - position of a node is found as an average of positions on mapped isolines.

- -

 

- -

- -

 

- -

 See - Also a sample TUI Script of a Pattern - Mapping operation.  

- -

 

- - - - diff --git a/doc/salome/gui/SMESH/presentation.htm b/doc/salome/gui/SMESH/presentation.htm deleted file mode 100755 index 21c5ae4cc..000000000 --- a/doc/salome/gui/SMESH/presentation.htm +++ /dev/null @@ -1,138 +0,0 @@ - - - - - -Presentation - - - - - - - - - - - - -

Display Mode

- -

By default your objects are represented as set in Preferences.

- -

However, right-clicking on the mesh in the Object - Browser, and selecting Display - Mode, you can display your mesh as: -

- -

 

- -

Wireframe -

- -

- -

 

- -

Shading

- -

- -

 

- -

or - Nodes.

- -

- -

 

- -

Wireframe can - combine with Nodes and - Shading.

- -

 

- -

Shading - and Wireframe modes can combine - with Shrink, however - Nodes can't.

- -

- -

 

- - - - diff --git a/doc/salome/gui/SMESH/prism_3d_algorithm.htm b/doc/salome/gui/SMESH/prism_3d_algorithm.htm deleted file mode 100644 index 9bdf4a4ef..000000000 --- a/doc/salome/gui/SMESH/prism_3d_algorithm.htm +++ /dev/null @@ -1,114 +0,0 @@ - - - - - -3D extrusion meshing algorithm - - - - - - - - - - - -

3D extrusion meshing algorithm

- -

3D extrusion algorithm can be used for meshing prisms, i.e. -3D Shapes defined by - two opposing faces having the same number of vertices and edges and meshed using the - 2D Projection algorithm. These - two faces should be connected by quadrangle "side" faces.

- -

The opposing faces can be meshed with - either quadrangles or triangles, while the side faces should be meshed - with quadrangles only.

- -

- -

 

- -

As you can see, the 3D extrusion - algorithm permits to build and to have in the same 3D mesh such elements - as hexahedrons, prisms and polyhedrons.

- - - - diff --git a/doc/salome/gui/SMESH/projection_algorithms.htm b/doc/salome/gui/SMESH/projection_algorithms.htm deleted file mode 100644 index 3e1059b6b..000000000 --- a/doc/salome/gui/SMESH/projection_algorithms.htm +++ /dev/null @@ -1,179 +0,0 @@ - - - - - -Projection Algorithms - - - - - - - - - - - -

Projection Algorithms

- -

Projection algorithms allow - to define the mesh of a geometrical object by the projection of another - already meshed geometrical object.

- -

 

- -

Projection - 1D algorithm permits to define the mesh of an edge by the projection - of another already meshed edge.

- -

To apply this algorithm - select the edge to be meshed (indicated in the field Geometry - of Create mesh dialog box), Projection 1D in the list of 1D algorithms - and click the button. The following dialog box will appear: -

- -

- -

In this menu you can define the Name - of the algorithm, the algeady meshed source Edge - and the Mesh (optional, use it - if there are several different meshes on the same edge). It could also - be necessary to define the orientation of edges, which is done by indicating - the Source Vertex being the first - point of the Source Edge and the Target - Vertex being the first point of the created Edge.

- -

Projection 2D algorithm permits to define the mesh of a face - by the projection of another already meshed face. This algorithm works - only if all edges of the target - face have been meshed as 1D Projections of the edges of the source face.

- -

To apply this algorithm select the face to be meshed (indicated in the - field Geometry of - Create mesh dialog box), Projection - 2D in the list of 2D algorithms and click the button. - The following dialog box will appear:

- -

- -

In this menu you can define the Name - of the algorithm, the algeady meshed source Face - and the Mesh (optional, use it - if there are several different meshes on the same face). It could also - be necessary to define the orientation of mesh on the face, which is done - by indicating two Source Vertices, which - belong to the same edge of the source - face, and two Target Vertices, - which belong to the same edge of the created - Face.

- -

Projection 3D algorithm permits - to define the mesh of a shape by the projection of another already meshed - shape.  This - algorithm works only if all faces and edges of the - target face have been meshed as 1D Projections of the faces and - edges of the source face. Another limitation is that this algorithm currently - works only on boxes.

- -

To apply this algorithm select the solid to be meshed (indicated in - the field Geometry of - Create mesh dialog box), Projection - 3D in the list of 3D algorithms and click the button. - The following dialog box will appear:

- -

- -

In this menu you can define the Name - of the algorithm, the algeady meshed source 3D - shape and the Mesh (optional, - use it if there are several different meshes on the same shape). It could - also be necessary to define the orientation of mesh on the shape, which - is done by indicating two Source Vertices, - which belong to the same edge of the - source 3D Shape, and two Target Vertices, which belong to the - same edge of the source 3D Shape.

- - - - diff --git a/doc/salome/gui/SMESH/quality_controls.htm b/doc/salome/gui/SMESH/quality_controls.htm deleted file mode 100755 index 064d7b9eb..000000000 --- a/doc/salome/gui/SMESH/quality_controls.htm +++ /dev/null @@ -1,1270 +0,0 @@ - - - - - -Quality Controls - - - - - - - - - - - -

Quality Controls

- -

Free Borders

- -

import salome

- -

import geompy

- -

 

- -

import smesh

- -

 

- -

# create open shell: a - box without one plane

- -

box - = geompy.MakeBox(0., 0., 0., 20., 20., 15.)

- -

FaceList = geompy.SubShapeAll(box, - geompy.ShapeType["FACE"])

- -

FaceList.remove(FaceList[5])

- -

box = geompy.MakeShell(FaceList)

- -

idbox = geompy.addToStudy(box, - "box")

- -

 

- -

# create a mesh

- -

mesh - = smesh.Mesh(box, "Mesh_free_borders")

- -

algo = mesh.Segment()

- -

algo.NumberOfSegments(5)

- -

algo = mesh.Triangle()

- -

algo.MaxElementArea(20.)

- -

mesh.Compute()

- -

 

- -

# criterion : free borders

- -

aFilter - = smesh.GetFilter(smesh.EDGE, smesh.FT_FreeBorders)

- -

anIds = mesh.GetIdsFromFilter(aFilter)

- -

 

- -

 

- -

# print the result

- -

print "Criterion: - Free borders Nb = ", len(anIds)

- -

j = 1

- -

for i in range(len(anIds)):

- -

  if - j > 20: j = 1; print ""

- -

  print - anIds[i],

- -

  j - = j + 1

- -

  pass

- -

print ""

- -

 

- -

# create a group

- -

aGroup = mesh.CreateGroup(SMESH.EDGE, - "Free borders")

- -

aGroup.Add(anIds)

- -

 

- -

salome.sg.updateObjBrowser(1) -

- -

Borders at Multiconnection

- -

import salome

- -

import geompy

- -

 

- -

import smesh

- -

import SMESH

- -

 

- -

# create open shell: - a box without one plane

- -

box = geompy.MakeBox(0., - 0., 0., 20., 20., 15.)

- -

FaceList = geompy.SubShapeAll(box, - geompy.ShapeType["FACE"])

- -

FaceList.remove(FaceList[5])

- -

box = geompy.MakeShell(FaceList)

- -

idbox = geompy.addToStudy(box, - "box")

- -

 

- -

# create a mesh

- -

mesh - = smesh.Mesh(box, "Mesh_borders_at_multi-connections")

- -

algo = mesh.Segment()

- -

algo.NumberOfSegments(5)

- -

algo = mesh.Triangle()

- -

algo.MaxElementArea(20.)

- -

mesh.Compute()

- -

 

- -

# Criterion : Borders - at multi-connection

- -

nb_conn = 2

- -

 

- -

aFilter - = smesh.GetFilter(smesh.EDGE, smesh.FT_MultiConnection, smesh.FT_EqualTo, - nb_conn)

- -

anIds = mesh.GetIdsFromFilter(aFilter)

- -

 

- -

 

- -

# print the result

- -

print "Criterion: - Borders at multi-connections Nb = ", len(anIds)

- -

j = 1

- -

for i in range(len(anIds)):

- -

  if - j > 20: j = 1; print ""

- -

  print - anIds[i],

- -

  j - = j + 1

- -

  pass

- -

print ""

- -

 

- -

# create a group

- -

aGroup = mesh.CreateGroup(SMESH.EDGE, - "Borders at multi-connections")

- -

aGroup.Add(anIds)

- -

salome.sg.updateObjBrowser(1) -

- -

Length 1D

- -

import salome

- -

import geompy

- -

 

- -

import smesh

- -

 

- -

# create open shell: a - box without one plane

- -

box = geompy.MakeBox(0., - 0., 0., 20., 20., 15.)

- -

FaceList = geompy.SubShapeAll(box, - geompy.ShapeType["FACE"])

- -

FaceList.remove(FaceList[5])

- -

box = geompy.MakeShell(FaceList)

- -

idbox = geompy.addToStudy(box, - "box")

- -

 

- -

# create a mesh

- -

mesh - = smesh.Mesh(box, "Mesh_Length_1D")

- -

algo = mesh.Segment()

- -

algo.NumberOfSegments(5)

- -

algo = mesh.Triangle()

- -

algo.MaxElementArea(20.)

- -

mesh.Compute()

- -

 

- -

# Criterion : Length > - 3.

- -

length_margin = - 3.

- -

 

- -

aFilter - = smesh.GetFilter(smesh.EDGE, smesh.FT_Length, smesh.FT_MoreThan, length_margin)

- -

anIds = mesh.GetIdsFromFilter(aFilter) -

- -

 

- -

# print the result

- -

print "Criterion: - Edges length > ", length_margin, " Nb = ", len(anIds)

- -

j = 1

- -

for i in range(len(anIds)):

- -

  if - j > 20: j = 1; print ""

- -

  print - anIds[i],

- -

  j - = j + 1

- -

  pass

- -

print ""

- -

 

- -

# create a group

- -

aGroup = mesh.CreateGroup(SMESH.EDGE, - "Edges with length > " + `length_margin`)

- -

aGroup.Add(anIds)

- -

 

- -

salome.sg.updateObjBrowser(1) -

- -

Free Edges

- -

import SMESH_mechanic

- -

 

- -

smesh  = - SMESH_mechanic.smesh

- -

mesh   = - SMESH_mechanic.mesh

- -

salome = SMESH_mechanic.salome

- -

 

- -

aFilterMgr = smesh.CreateFilterManager()

- -

 

- -

# Remove some elements - to obtain free edges

- -

# Criterion : AREA - > 95.

- -

area_margin = 95.

- -

 

- -

aFilter - = smesh.GetFilter(smesh.FACE, smesh.FT_Area, smesh.FT_MoreThan, area_margin)

- -

 

- -

anIds = mesh.GetIdsFromFilter(aFilter)

- -

 

- -

mesh.RemoveElements(anIds)

- -

 

- -

# Criterion : Free - Edges

- -

aBorders = mesh.GetFreeBorders() -

- -

 

- -

# create groups

- -

aGroupF = mesh.CreateGroup(SMESH.FACE, - "Faces with free edges")

- -

aGroupN = mesh.CreateGroup(SMESH.NODE, - "Nodes on free edges")

- -

 

- -

# fill groups with - elements, corresponding to the criterion

- -

print ""

- -

print "Criterion: - Free edges Nb = ", len(aBorders)

- -

for i in range(len(aBorders)):

- -

  aBorder - = aBorders[i]

- -

  print - "Face # ", aBorder.myElemId, " : Edge between nodes (",

- -

  print - aBorder.myPnt1, ", ", aBorder.myPnt2, ")"

- -

 

- -

  aGroupF.Add([aBorder.myElemId])

- -

  aGroupN.Add([aBorder.myPnt1, - aBorder.myPnt2])

- -

 

- -

salome.sg.updateObjBrowser(1) -

- -

 

- -

Length 2D

- -

import salome

- -

import geompy

- -

 

- -

import smesh

- -

 

- -

# create open shell: - a box without one plane

- -

box = geompy.MakeBox(0., - 0., 0., 20., 20., 15.)

- -

FaceList = geompy.SubShapeAll(box, - geompy.ShapeType["FACE"])

- -

FaceList.remove(FaceList[5])

- -

box = geompy.MakeShell(FaceList)

- -

idbox = geompy.addToStudy(box, - "box")

- -

 

- -

# create a mesh

- -

mesh - = smesh.Mesh(box, "Mesh_Length_2D")

- -

algo = mesh.Segment()

- -

algo.NumberOfSegments(5)

- -

algo = mesh.Triangle()

- -

algo.MaxElementArea(20.)

- -

mesh.Compute()

- -

 

- -

# Criterion : Length - 2D > 5.7

- -

length_margin = - 5.7

- -

 

- -

aFilter - = smesh.GetFilter(smesh.FACE, smesh.FT_Length2D, smesh.FT_MoreThan, length_margin)

- -

 

- -

anIds = mesh.GetIdsFromFilter(aFilter)

- -

 

- -

# print the result

- -

print "Criterion: - Edges length 2D > ", length_margin, " Nb = ", len(anIds)

- -

j = 1

- -

for i in range(len(anIds)):

- -

  if - j > 20: j = 1; print ""

- -

  print - anIds[i],

- -

  j - = j + 1

- -

  pass

- -

print ""

- -

 

- -

# create a group

- -

aGroup - = mesh.CreateEmptyGroup(smesh.FACE, "Faces with length 2D > " - + `length_margin`)

- -

aGroup.Add(anIds)

- -

 

- -

salome.sg.updateObjBrowser(1) -

- -

 

- -

Borders at Multiconnection 2D

- -

import salome

- -

import geompy

- -

 

- -

import smesh

- -

 

- -

# create a compound - of two glued boxes

- -

box1 = geompy.MakeBox(0., - 0., 0., 20., 20., 15.)

- -

box2 = geompy.MakeTranslation(box1, - 0., 20., 0)

- -

comp = geompy.MakeCompound([box1, - box2])

- -

box = geompy.MakeGlueFaces(comp, - 0.000001)

- -

idbox = geompy.addToStudy(box, - "box")

- -

 

- -

# create a mesh

- -

mesh - = smesh.Mesh(box, "Box compound : 2D triangle mesh")

- -

algo = mesh.Segment()

- -

algo.NumberOfSegments(5)

- -

algo = mesh.Triangle()

- -

algo.MaxElementArea(20.)

- -

mesh.Compute()

- -

 

- -

# Criterion : MULTI-CONNECTION - 2D = 3

- -

nb_conn = 3

- -

 

- -

aFilter - = smesh.GetFilter(smesh.FACE, smesh.FT_MultiConnection2D, smesh.FT_EqualTo, - nb_conn)

- -

 

- -

anIds = mesh.GetIdsFromFilter(aFilter) -

- -

 

- -

# print the result

- -

print "Criterion: - Borders at multi-connection 2D = ", nb_conn, " Nb = ", - len(anIds)

- -

j = 1

- -

for i in range(len(anIds)):

- -

  if - j > 20: j = 1; print ""

- -

  print - anIds[i],

- -

  j - = j + 1

- -

  pass

- -

print ""

- -

 

- -

# create a group

- -

aGroup - = mesh.CreateEmptyGroup(smesh.FACE, "Borders at multi-connection - 2D = " + `nb_conn`)

- -

aGroup.Add(anIds)

- -

 

- -

salome.sg.updateObjBrowser(1) -

- -

 

- -

Area

- -

import SMESH_mechanic

- -

 

- -

smesh  = - SMESH_mechanic.smesh

- -

mesh   = - SMESH_mechanic.mesh

- -

salome = SMESH_mechanic.salome

- -

 

- -

# Criterion : AREA > - 100.

- -

area_margin = 100.

- -

 

- -

aFilter = smesh.GetFilter(smesh.FACE, - smesh.FT_Area, smesh.FT_MoreThan, area_margin)

- -

 

- -

anIds = mesh.GetIdsFromFilter(aFilter) -

- -

 

- -

# print the result

- -

print "Criterion: - Area > ", area_margin, " Nb = ", len(anIds)

- -

j = 1

- -

for i in range(len(anIds)):

- -

  if - j > 20: j = 1; print ""

- -

  print - anIds[i],

- -

  j - = j + 1

- -

  pass

- -

print ""

- -

 

- -

# create a group

- -

aGroup = mesh.CreateEmptyGroup(smesh.FACE, - "Area > " + `area_margin`)

- -

aGroup.Add(anIds)

- -

 

- -

salome.sg.updateObjBrowser(1) -  

- -

Taper

- -

import SMESH_mechanic

- -

 

- -

smesh  = - SMESH_mechanic.smesh

- -

mesh   = - SMESH_mechanic.mesh

- -

salome = SMESH_mechanic.salome

- -

 

- -

# Criterion : Taper - > 3e-20

- -

taper_margin = 3e-20

- -

 

- -

aFilter = smesh.GetFilter(smesh.FACE, - smesh.FT_Taper, smesh.FT_MoreThan, taper_margin)

- -

 

- -

anIds = mesh.GetIdsFromFilter(aFilter) -

- -

 

- -

# print the result

- -

print "Criterion: - Taper > ", taper_margin, " Nb = ", len(anIds)

- -

j = 1

- -

for i in range(len(anIds)):

- -

  if - j > 20: j = 1; print ""

- -

  print - anIds[i],

- -

  j - = j + 1

- -

  pass

- -

print ""

- -

 

- -

# create a group

- -

aGroup - = mesh.CreateEmptyGroup(smesh.FACE, "Taper > " + `taper_margin`)

- -

aGroup.Add(anIds)

- -

 

- -

salome.sg.updateObjBrowser(1) -  

- -

Aspect Ratio

- -

import SMESH_mechanic

- -

 

- -

smesh  = - SMESH_mechanic.smesh

- -

mesh   = - SMESH_mechanic.mesh

- -

salome = SMESH_mechanic.salome

- -

 

- -

# Criterion : ASPECT - RATIO > 1.8

- -

ar_margin = 1.8

- -

 

- -

aFilter - = smesh.GetFilter(smesh.FACE, smesh.FT_AspectRatio, smesh.FT_MoreThan, - ar_margin)

- -

 

- -

anIds = mesh.GetIdsFromFilter(aFilter) -

- -

 

- -

# print the result

- -

print "Criterion: - Aspect Ratio > ", ar_margin, " Nb = ", len(anIds)

- -

j = 1

- -

for i in range(len(anIds)):

- -

  if - j > 20: j = 1; print ""

- -

  print - anIds[i],

- -

  j - = j + 1

- -

  pass

- -

print ""

- -

 

- -

# create a group

- -

aGroup - = mesh.CreateEmptyGroup(smesh.FACE, "Aspect Ratio > " + `ar_margin`)

- -

aGroup.Add(anIds)

- -

 

- -

salome.sg.updateObjBrowser(1) -

- -

 

- -

Minimum Angle

- -

import SMESH_mechanic

- -

 

- -

smesh  = - SMESH_mechanic.smesh

- -

mesh   = - SMESH_mechanic.mesh

- -

salome = SMESH_mechanic.salome

- -

 

- -

# Criterion : MINIMUM - ANGLE < 35.

- -

min_angle = 35.

- -

 

- -

aFilter = smesh.GetFilter(smesh.FACE, - smesh.FT_MinimumAngle, smesh.FT_LessThan, min_angle)

- -

 

- -

anIds = mesh.GetIdsFromFilter(aFilter) -

- -

 

- -

# print the result

- -

print "Criterion: - Minimum Angle < ", min_angle, " Nb = ", len(anIds)

- -

j = 1

- -

for i in range(len(anIds)):

- -

  if - j > 20: j = 1; print ""

- -

  print - anIds[i],

- -

  j - = j + 1

- -

  pass

- -

print ""

- -

 

- -

# create a group

- -

aGroup - = mesh.CreateEmptyGroup(smesh.FACE, "Minimum Angle < " + - `min_angle`)

- -

 

- -

aGroup.Add(anIds)

- -

 

- -

salome.sg.updateObjBrowser(1) -

- -

 

- -

Warping

- -

import SMESH_mechanic

- -

 

- -

smesh  = - SMESH_mechanic.smesh

- -

mesh   = - SMESH_mechanic.mesh

- -

salome = SMESH_mechanic.salome

- -

 

- -

# Criterion : WARP - ANGLE > 1e-15

- -

wa_margin = 1e-15

- -

 

- -

aFilter = smesh.GetFilter(smesh.FACE, - smesh.FT_Warping, smesh.FT_MoreThan, wa_margin)

- -

 

- -

anIds = mesh.GetIdsFromFilter(aFilter) -

- -

 

- -

# print the result

- -

print "Criterion: - Warp > ", wa_margin, " Nb = ", len(anIds)

- -

j = 1

- -

for i in range(len(anIds)):

- -

  if - j > 20: j = 1; print ""

- -

  print - anIds[i],

- -

  j - = j + 1

- -

  pass

- -

print ""

- -

 

- -

# create a group

- -

aGroup = mesh.CreateEmptyGroup(smesh.FACE, - "Warp > " + `wa_margin`)

- -

 

- -

aGroup.Add(anIds)

- -

 

- -

salome.sg.updateObjBrowser(1) -

- -

 

- -

Skew

- -

import SMESH_mechanic

- -

 

- -

smesh  = - SMESH_mechanic.smesh

- -

mesh   = - SMESH_mechanic.mesh

- -

salome = SMESH_mechanic.salome

- -

 

- -

# Criterion : Skew - > 38.

- -

skew_margin = 38.

- -

 

- -

aFilter = smesh.GetFilter(smesh.FACE, - smesh.FT_Skew, smesh.FT_MoreThan, skew_margin)

- -

 

- -

anIds = mesh.GetIdsFromFilter(aFilter)

- -

 

- -

# print the result

- -

print "Criterion: - Skew > ", skew_margin, " Nb = ", len(anIds)

- -

j = 1

- -

for i in range(len(anIds)):

- -

  if - j > 20: j = 1; print ""

- -

  print - anIds[i],

- -

  j - = j + 1

- -

  pass

- -

print ""

- -

 

- -

# create a group

- -

aGroup - = mesh.CreateEmptyGroup(smesh.FACE, "Skew > " + `skew_margin`)

- -

aGroup.Add(anIds)

- -

 

- -

salome.sg.updateObjBrowser(1) -

- -

 

- -

Aspect Ratio 3D

- -

import SMESH_mechanic_tetra -

- -

 

- -

smesh  = - SMESH_mechanic_tetra.smesh

- -

mesh   = - SMESH_mechanic_tetra.mesh

- -

salome = SMESH_mechanic_tetra.salome

- -

 

- -

# Criterion : ASPECT - RATIO 3D > 4.5

- -

ar_margin = 4.5

- -

 

- -

aFilter = smesh.GetFilter(smesh.VOLUME, - smesh.FT_AspectRatio3D, smesh.FT_MoreThan, ar_margin)

- -

 

- -

anIds = mesh.GetIdsFromFilter(aFilter) -

- -

 

- -

# print the result

- -

print "Criterion: - Aspect Ratio 3D > ", ar_margin, " Nb = ", len(anIds)

- -

j = 1

- -

for i in range(len(anIds)):

- -

  if - j > 20: j = 1; print ""

- -

  print - anIds[i],

- -

  j - = j + 1

- -

  pass

- -

print ""

- -

 

- -

# create a group

- -

aGroup = mesh.CreateEmptyGroup(smesh.VOLUME, - "Aspect Ratio 3D > " + `ar_margin`)

- -

 

- -

aGroup.Add(anIds)

- -

 

- -

salome.sg.updateObjBrowser(1) -

- -

Volume

- -

import SMESH_mechanic_tetra

- -

 

- -

smesh  = - SMESH_mechanic_tetra.smesh

- -

mesh   = - SMESH_mechanic_tetra.mesh

- -

salome = SMESH_mechanic_tetra.salome

- -

 

- -

# Criterion : VOLUME < - 7.

- -

volume_margin = - 7.

- -

 

- -

aFilter = smesh.GetFilter(smesh.VOLUME, - smesh.FT_Volume3D, smesh.FT_LessThan, volume_margin)

- -

 

- -

anIds = mesh.GetIdsFromFilter(aFilter) -

- -

 

- -

# print the result

- -

print ""

- -

print "Criterion: - Volume < ", volume_margin, " Nb = ", len(anIds)

- -

j = 1

- -

for i in range(len(anIds)):

- -

  if - j > 20: j = 1; print ""

- -

  print - anIds[i],

- -

  j - = j + 1

- -

  pass

- -

print ""

- -

 

- -

# create a group

- -

aGroup = mesh.CreateEmptyGroup(smesh.VOLUME, - "Volume < " + `volume_margin`)

- -

 

- -

aGroup.Add(anIds)

- -

 

- -

salome.sg.updateObjBrowser(1) -  

- - - - diff --git a/doc/salome/gui/SMESH/radial_prism.htm b/doc/salome/gui/SMESH/radial_prism.htm deleted file mode 100644 index 3ca448560..000000000 --- a/doc/salome/gui/SMESH/radial_prism.htm +++ /dev/null @@ -1,124 +0,0 @@ - - - - - -Radial Prism - - - - - - - - - - - -

Radial Prism

- -

This algorithm applies to the meshing of a hollow 3D shape, i.e. such - shape should be composed of two meshed shells: an outer shell and an internal - shell without intersection with the outer shell. One of the shells should - be a 2D Projection of the other shell. The meshes of the shells can consist - both of triangles and quadrangles.

- -

The Radial Prism algorithm would fill the - space between the two shells with meshes.

- -

This algorithm also needs the information - concerning the number and distribution of mesh layers between the inner - and the outer shapes.

- -

 

- -

Distribution of layers can be set with any - of 1D Hypotheses.

- -

- -

 

- -

 

- -

 

- -

 

- -

 

- - - - diff --git a/doc/salome/gui/SMESH/revolution.htm b/doc/salome/gui/SMESH/revolution.htm deleted file mode 100755 index b5d7a667d..000000000 --- a/doc/salome/gui/SMESH/revolution.htm +++ /dev/null @@ -1,156 +0,0 @@ - - - - - -Revolution - - - - - - - - - - - - -

Revolution

- -

Revolution is a type of surface meshing by generation from discretized - lines. It is used to build mesh elements of plus one dimension than the - swept ones. Each swept 1D element produces one or more quadrangles (or - triangles if one node of a rotated element lays on the revolution axis).

- -

 

- -

To apply revolution:

- -

 

- -

1. From the Modification - menu choose the Revolution item - or click button in the toolbar. The following dialog box - shall appear:

- -

 

- -

- -

 

- -

- -

 

- -

2. In this dialog box you should specify:

- -
    - -
  • the type of elements - which will be extruded (1D or 2D),

  • - -
  • specify the IDs of - the elements which will be revolved by selecting them in the 3D viewer - or select the whole mesh or submesh,

  • - -
  • specify the axis (point - and vector) around which the elements will be revolved,

  • - -
  • angle of rotation,

  • - -
  • number of steps,

  • - -
  • tolerance of rotation

  • -
- -

 

- -

3. Click the Apply - or OK button.

- -

 

- -

- -

 

- -

 See - Also a sample TUI Script of a  Revolution - operation.  

- -

 

- - - - diff --git a/doc/salome/gui/SMESH/segments_around_vertex_algorithm.htm b/doc/salome/gui/SMESH/segments_around_vertex_algorithm.htm deleted file mode 100755 index 7e73af218..000000000 --- a/doc/salome/gui/SMESH/segments_around_vertex_algorithm.htm +++ /dev/null @@ -1,98 +0,0 @@ - - - - - -Segments around Vertex Algorithm - - - - - - - - - - -

Segments around Vertex

- -

Segments around Vertex algorithm - is considered to be a 0D - meshing algorithm, but, of course, it doesn't mesh nodes. It allows to - define the local size of the elements in the neighborhood of a certain - node. If we choose an object of higher dimension, it applies to all its - tops, i.e. corners of a box.  The - 0D algorithm combines with the algorithms of higher dimensions, but it - is not necessarily required for their successful implementation.

- -

This algorithm allows only one hypothesis.

- -

- -

 

- -

 

- - - - diff --git a/doc/salome/gui/SMESH/selection_filter_library.htm b/doc/salome/gui/SMESH/selection_filter_library.htm deleted file mode 100755 index 2a2cb8d78..000000000 --- a/doc/salome/gui/SMESH/selection_filter_library.htm +++ /dev/null @@ -1,159 +0,0 @@ - - - - - -Selection filter library - - - - - - - - - - - - -

Selection filter library

- -

Selection filter library is a powerful tool enabling to create filters - to be used on meshes. You can access to it from the Main Menu via Tools / Selection filter library.

- -

 

- -

- -

 

- -

Library file name shows - the path and the file name where your filters will be stored. By clicking - the browse button - you can load an existing filter library.

- -

Names of filters lists the filters - created or uploaded for the current study. You can Add - or Delete filters.  

- -

In Filter name box you can specify - the name for your filter. By default it is prefixed with the corresponding - entity type.

- -

Each filter can be applicable to Nodes, - Edges, Faces or Volumes. - You can combine many criteria in one filter, but they all must be of the - same Entity type.

- -

The Add button creates a new - criterion at the end of the list of criteria. The Insert - button creates a new criterion before the selected criterion. The Remove button deletes the selected criterion. - The Clear button deletes all criteria. -  

- -

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 More, - Less or Equal to this Value. - You should also specify if the criterion is Unary - or Binary.   

- -

Some criteria should have the additional parameter of Tolerance.

- -

 

- -

When we create a Standalone Group - using filters (for this click Set Filters - button in the Create Group menu), - the menu for setting filters looks a bit differently. Toggling Insert - filter in viewer checkbox enables to preview the group selected - with your current filter in the viewer.

- -

In the Source field you choose - if the filter will be applied to the whole Mesh, - the Initial Selection or the Current Group.

- -

Copy from... button gives you - a possibility to load an existing filter from Selection - filter library and Add to... - button gives you a possibility to save your current filter in the Library. -  

- -

 

- -

- - - - diff --git a/doc/salome/gui/SMESH/smesh.log b/doc/salome/gui/SMESH/smesh.log deleted file mode 100755 index 4222c00a5..000000000 --- a/doc/salome/gui/SMESH/smesh.log +++ /dev/null @@ -1,553 +0,0 @@ -|SourceProjectName:SMESH.hpr -|DestinationProjectName:index.htm -whhost.js -whmsg.js -whmozemu.js -whproxy.js -whstub.js -whutils.js -whver.js -whform.js -whphost.js -whstart.js -whtopic.js -whframes.js -whlang.js -whskin_info.htm -whskin_blank.htm -whskin_pickup.htm -whskin_homepage.htm -whskin_tw.htm -whnjs.htm -whthost.js -whtdhtml.htm -whihost.js -whibody.htm -whiform.htm -whfhost.js -whfbody.htm -whfform.htm -whghost.js -whgbody.htm -whgdhtml.htm -whgdef.htm -whproj.js -whproj.xml -whproj.htm -whxdata\whtoc.xml -whxdata\whidx.xml -whxdata\whfts.xml -whxdata\whglo.xml -whdata\whtoc.js -whdata\whtoc.htm -whdata\whtdata.js -whdata\whidx.js -whdata\whidx.htm -whdata\whidata.js -whdata\whfts.js -whdata\whfts.htm -whdata\whglo.js -whdata\whglo.htm -whdata\whgdata.js -whdata\whftdata.js -whdata\whfwdata.js -whres.xml -webhelp.jar -webhelp.cab -whgdata\whnvp30.htm -whgdata\whnvp31.htm -whgdata\whnvp32.htm -whgdata\whnvp33.htm -whgdata\whnvt30.htm -whgdata\whnvt31.htm -whgdata\whnvt32.htm -whgdata\whnvt33.htm -whgdata\whnvf30.htm -whgdata\whnvf31.htm -whgdata\whnvf32.htm -whgdata\whnvf33.htm -whgdata\whnvl31.htm -whgdata\whnvl32.htm -whgdata\whnvl33.htm -whgdata\whexpbar.gif -cshdat_webhelp.htm -whcsh_home.htm -whcshdata.htm -cshdat_robohelp.htm -whd_topic.xml -whd_nvp10.htm -whd_nvp20.htm -whd_tabs.htm -whd_dpns.htm -whd_tab0.gif -whd_tab1.gif -whd_tab2.gif -whd_tab3.gif -whd_tab4.gif -whd_tab5.gif -whd_tab6.gif -whd_tab7.gif -whd_tab8.gif -whd_toc1.gif -whd_toc2.gif -whd_toc3.gif -whd_toc4.gif -whd_show0.gif -whd_show1.gif -whd_show2.gif -whd_hide0.gif -whd_hide1.gif -whd_hide2.gif -whd_sync0.gif -whd_sync1.gif -whd_sync2.gif -whd_prev0.gif -whd_prev1.gif -whd_prev2.gif -whd_next0.gif -whd_next1.gif -whd_next2.gif -whd_wbsh0.gif -whd_wbsh1.gif -whd_wbsh2.gif -whidhtml.htm -whfdhtml.htm -index_hha.hhk -index.hhc -index.hhk -about_viewing_meshes.htm -adding_quadratic_nodes_and_elements.htm -aspect_ratio_3d.htm -borders_at_multi-connection.htm -borders_at_multiconnection_2d.htm -building_compounds.htm -clipping.htm -constructing_meshes.htm -convert_to_from_quadratic_mesh.htm -defining_hypotheses_tui.htm -deleting_groups.htm -display_entity.htm -extrusion.htm -extrusion_along_a_path.htm -files\about_hypotheses.htm -files\about_meshes.htm -files\about_meshing_algorithms.htm -files\about_quality_controls.htm -files\adding_nodes_and_elements.htm -files\area_of_elements.htm -files\arithmetic_1d.htm -files\aspect_ratio.htm -files\changing_orientation_of_elements.htm -files\constructing_groups_of_specific_elements.htm -files\constructing_meshes.htm -files\constructing_submeshes.htm -files\creating_groups.htm -files\cutting_quadrangles.htm -files\diagonal_iversion_of_elements.htm -files\displacing_nodes.htm -files\displaying_nodes_numbers.htm -files\editing_groups.htm -files\importing_and_exporting_meshes.htm -files\length_of_edges.htm -files\max._element_area_hypothesis.htm -files\max._element_volume_hypothsis.htm -files\merging_nodes.htm -files\minimum_angle.htm -files\non_conform_mesh_allowed_hypothesis.htm -files\reassigning_hypotheses_and_algorithms.htm -files\removing_nodes_and_elements.htm -files\renumbering_nodes_and_elements.htm -files\rotation.htm -files\running_smesh_module.htm -files\sewing_meshes.htm -files\skew.htm -files\smoothing.htm -files\symmetry.htm -files\taper.htm -files\translation.htm -files\uniting_a_set_of_triangles.htm -files\uniting_two_triangles.htm -files\using_operations_on_groups.htm -files\viewing_mesh_info.htm -files\vtk_3d_viewer.htm -files\warp.htm -free_borders.htm -free_edges.htm -grouping_elements.htm -length.htm -merge_elements.htm -mesh.htm -mesh_through_point.htm -modifying_meshes.htm -namespacesmesh.html -netgen_2d_and_3d_hypotheses.htm -pattern_mapping.htm -presentation.htm -prism_3d_algorithm.htm -projection_algorithms.htm -quality_controls.htm -radial_prism.htm -revolution.htm -segments_around_vertex_algorithm.htm -selection_filter_library.htm -smesh.py_introduction.htm -transforming_meshes.htm -transparency.htm -viewing_meshes.htm -volume.htm -ehelp.xml -texture_horiz_ltbluebubbles.jpg -index.glo -default.css -pics\curvi_simple_after.png -pics\image89.gif -pics\image100.gif -pics\image78.gif -pics\image23.gif -pics\b-mesh_infos.png -pics\remove_nodes2.png -pics\moving_nodes1.png -pics\smoothing2.png -pics\a-maxelarea.png -pics\patternmapping1.png -image94.jpg -image106.gif -image91.gif -image80.gif -pics\distributionwithtabledensity.png -pics\moving_nodes2.png -image7.jpg -pics\patternmapping2.png -pics\extrusionalongaline1.png -pics\addquadrangle.png -image95.jpg -pics\sewing1.png -image92.gif -image51.jpg -image70.gif -pics\meshtopass.png -pics\image157.gif -pics\extrusion1.png -pics\curvi_angles_after.png -pics\straight_before.png -pics\image102.gif -pics\length2d.png -pics\free_borders1.png -pics\a-creategroup.png -pics\a-startendlength.png -pics\a-patterntype.png -pics\extrusionalongaline2.png -pics\orientaation1.png -pics\unionoftwotriangles.png -image96.jpg -pics\sewing2.png -image119.gif -image108.gif -image52.jpg -image82.gif -image71.gif -image30.jpg -pics\lengthnearvertex.png -pics\straight_after.png -pics\cut_groups1.png -pics\uniting_a_set_of_triangles1.png -pics\b-erage_length.png -pics\removeelements.png -image97.jpg -pics\sewing3.png -image86.jpg -image50.gif -image94.gif -image83.gif -image31.jpg -pics\aqt.png -pics\distributionwithanalyticdensity.png -pics\meshexportmesh.png -pics\image27.gif -pics\cut_groups2.png -pics\edit_mesh_change_value_hyp.png -pics\add_node.png -pics\uniting_a_set_of_triangles2.png -pics\max_el_area.png -image10.jpg -pics\a-filteronedges.png -pics\revolution1.png -pics\addhexahedron.png -pics\addtriangle.png -pics\editgroup.png -pics\sewing4.png -image95.gif -image76.jpg -image84.gif -image32.jpg -image40.gif -i_blue.jpg -image160.gif -pics\number_of_layers.png -pics\netgen2d.png -pics\mesh_for_extr_along_path.png -pics\meshtrianglemergeelem1.png -pics\image138.gif -pics\cut_groups3.png -pics\revolution2.png -pics\renumberelements.png -pics\intersectgroups.png -image88.jpg -image30.gif -image96.gif -image77.jpg -image74.gif -image63.gif -image22.jpg -image41.gif -image161.gif -pics\createmesh-inv.png -pics\image139.gif -pics\b-art_end_length.png -pics\b-mberofsegments.png -pics\b-flection1d.png -pics\a-unionoftriangles.png -image56.jpg -image53.gif -image20.gif -image97.gif -image78.jpg -image64.gif -image23.jpg -pics\buildcompound.png -pics\projection_3d.png -image151.gif -pics\selectionfilterlibrary.png -pics\intersect_groups1.png -pics\create_group.png -pics\add_triangle.png -pics\add_edge.png -pics\rotation1.png -pics\merging_nodes1.png -pics\translation1.png -pics\cutgroups.png -image79.jpg -image98.gif -image32.gif -pics\projection_2d.png -pics\advanced_mesh_infos.png -pics\image108.gif -pics\image91.gif -image152.gif -pics\automaticlength.png -pics\intersect_groups2.png -image130.gif -pics\rotation2.png -pics\merging_nodes2.png -pics\a-cuttingofquadrangles.png -pics\a-transparency.png -pics\a-viewgeneral.png -pics\smoothing.png -pics\translation2.png -image99.gif -image55.gif -image88.gif -image36.jpg -image33.gif -image25.jpg -pics\projection_1d.png -pics\view_rotation_point.png -image153.gif -pics\image109.gif -image15.jpg -image142.gif -pics\intersect_groups3.png -image131.gif -pics\edit_mesh1.png -pics\b-ithmetic1d.png -pics\mergenodes.png -pics\rotation.png -pics\addnode.png -image120.gif -image56.gif -image37.jpg -image67.gif -image34.gif -pics\convert.png -image154.gif -pics\edge_wire_3d_after.png -pics\graduatedaxes1.png -pics\length-crit.png -image143.gif -pics\editing_groups1.png -image132.gif -pics\a-maxelvolume.png -pics\a-averagelength.png -pics\movenodes.png -pics\removenodes.png -pics\addtetrahedron.png -pics\uniongroups.png -image121.gif -image79.gif -image38.jpg -image46.gif -image35.gif -image27.jpg -image24.gif -note1.gif -pics\distribution_of_layers.png -image155.gif -pics\edge_wire_after.png -pics\edge_wire_before.png -image144.gif -pics\deletegroups.png -pics\editing_groups2.png -image133.gif -pics\add_polyhedron.png -pics\addedge.png -pics\creategroup.png -image122.gif -image58.gif -image36.gif -image25.gif -image156.gif -pics\circle_simple_after.png -image145.gif -image134.gif -pics\edit_mesh_remove_hyp.png -pics\a-patterntype1.png -image123.gif -image101.gif -image37.gif -image157.gif -pics\image96.gif -image146.gif -pics\meshimportmesh.png -image135.gif -pics\uniting_two_triangles1.png -pics\a-nbsegments1.png -pics\a-arithmetic1d.png -pics\symmetry1.png -image90.jpg -image124.gif -image49.gif -pics\exemple.gif -image38.gif -pics\set_rotation_point_dialog1.png -pics\image97.gif -image147.gif -pics\union_groups1.png -image136.gif -pics\free_edges.png -pics\uniting_two_triangles2.png -pics\a-nbsegments2.png -pics\symmetry2.png -image125.gif -image103.gif -image39.gif -image28.gif -image159.gif -pics\set_rotation_point_dialog2.png -pics\circle_angles_after.png -pics\createmesh-inv2.png -pics\image98.gif -pics\mergeelems.png -image148.gif -pics\image21.gif -pics\union_groups2.png -image137.gif -pics\add_quadrangle.png -pics\remove_elements1.png -pics\a-createpolyhedralvolume.png -pics\a-clipping2.png -pics\a-deflection1d.png -pics\diagonalinversion.png -pics\symmetry3.png -pics\renumbernodes.png -image92.jpg -image126.gif -image18.gif -image70.jpg -pics\circle_simple_before.png -pics\edge_wire_3d_before.png -pics\curvi_simple_before.png -pics\createmesh-inv3.png -pics\image99.gif -pics\image77.gif -pics\union_groups3.png -pics\add_polygone.png -pics\remove_elements2.png -pics\remove_nodes1.png -pics\smoothing1.png -pics\a-standmeshinfo.png -pics\addpolygon.png -image5.jpg -image127.gif -image93.jpg -image105.gif -image19.gif -image71.jpg -index.ppf -ehlpdhtm.js -default_ns.css -whxdata\whtdata0.xml -whxdata\whftdata0.xml -whxdata\whfwdata0.xml -whxdata\whgdata0.xml -whdata\whtdata0.htm -whdata\whftdata0.htm -whdata\whfwdata0.htm -whdata\whgdata0.htm -whgdata\whlstt0.htm -whgdata\whlstt1.htm -whgdata\whlstt2.htm -whgdata\whlstt3.htm -whgdata\whlstt4.htm -whgdata\whlstt5.htm -whgdata\whlstt6.htm -whgdata\whlstt7.htm -whgdata\whlstt8.htm -whgdata\whlstt9.htm -whgdata\whlstt10.htm -whgdata\whlsti0.htm -whgdata\whlstfl0.htm -whgdata\whlstfl1.htm -whgdata\whlstfl2.htm -whgdata\whlstfl3.htm -whgdata\whlstfl4.htm -whgdata\whlstfl5.htm -whgdata\whlstfl6.htm -whgdata\whlstfl7.htm -whgdata\whlstfl8.htm -whgdata\whlstfl9.htm -whgdata\whlstfl10.htm -whgdata\whlstfl11.htm -whgdata\whlstfl12.htm -whgdata\whlstfl13.htm -whgdata\whlstfl14.htm -whgdata\whlstfl15.htm -whgdata\whlstfl16.htm -whgdata\whlstfl17.htm -whgdata\whlstfl18.htm -whgdata\whlstfl19.htm -whgdata\whlstfl20.htm -whgdata\whlstfl21.htm -whgdata\whlstfl22.htm -whgdata\whlstfl23.htm -whgdata\whlstfl24.htm -whgdata\whlstfl25.htm -whgdata\whlstfl26.htm -whgdata\whlstf0.htm -whgdata\whlstf1.htm -whgdata\whlstf2.htm -whgdata\whlstf3.htm -whgdata\whlstf4.htm -whgdata\whlstf5.htm -whgdata\whlstf6.htm -whgdata\whlstf7.htm -whgdata\whlstf8.htm -whgdata\whlstf9.htm -whgdata\whlstf10.htm -whgdata\whlstf11.htm -whgdata\whlstf12.htm -whgdata\whlstf13.htm -whgdata\whlstf14.htm -whgdata\whlstg0.htm -index.htm -index_csh.htm -index_rhc.htm diff --git a/doc/salome/gui/SMESH/smesh.py_introduction.htm b/doc/salome/gui/SMESH/smesh.py_introduction.htm deleted file mode 100644 index fc3d04835..000000000 --- a/doc/salome/gui/SMESH/smesh.py_introduction.htm +++ /dev/null @@ -1,270 +0,0 @@ - - - - - -smesh.py_introduction - - - - - - - - - - - -

Introduction to MESH module python interface

- -

Package smesh provides - a standard API for creation and edition of meshes .

- -

Below you can see an example - of usage of the package smesh for 3d mesh generation.

- -

  

- -

Example of 3d mesh generation - with NETGEN

- -

from geompy import *

- -

import - smesh

- -

# Geometry

- -

# an assembly of a box, - a cylinder and a truncated cone meshed with tetrahedral.

- -

 

- -

# Define values

- -

name = "ex21_lamp" -

- -

cote = 60

- -

section = 20

- -

size = 200

- -

radius_1 = 80

- -

radius_2 = 40

- -

height - = 100

- -

 

- -

# Build a box

- -

box = MakeBox(-cote, - -cote, -cote, +cote, +cote, +cote)

- -

 

- -

# Build a cylinder

- -

pt1 = MakeVertex(0, - 0, cote/3)

- -

di1 = MakeVectorDXDYDZ(0, - 0, 1)

- -

cyl - = MakeCylinder(pt1, di1, section, size)

- -

 

- -

# Build a truncated cone -

- -

pt2 = MakeVertex(0, - 0, size)

- -

cone - = MakeCone(pt2, di1, radius_1, radius_2, height)

- -

 

- -

# Fuse

- -

box_cyl = MakeFuse(box, - cyl)

- -

piece - = MakeFuse(box_cyl, cone)

- -

 

- -

# Add in study

- -

addToStudy(piece, - name)

- -

 

- -

# Create a group of faces -

- -

group = CreateGroup(piece, - ShapeType["FACE"])

- -

group_name = name - + "_grp"

- -

addToStudy(group, - group_name)

- -

group.SetName(group_name) -

- -

 

- -

# Add faces in the group -

- -

faces = SubShapeAllIDs(piece, - ShapeType["FACE"])

- -

UnionIDs(group, - faces)

- -

 

- -

# Create a mesh

- -

 

- -

# Define a mesh on a geometry -

- -

tetra = smesh.Mesh(piece, - name)

- -

 

- -

# Define 1D hypothesis -

- -

algo1d = tetra.Segment() -

- -

algo1d.LocalLength(10) -

- -

 

- -

# Define 2D hypothesis -

- -

algo2d = tetra.Triangle() -

- -

algo2d.LengthFromEdges() -

- -

 

- -

# Define 3D hypothesis -

- -

algo3d = tetra.Tetrahedron(smesh.NETGEN) -

- -

algo3d.MaxElementVolume(100) -

- -

 

- -

# Compute the mesh

- -

tetra.Compute() -

- -

 

- -

# Create a groupe of faces -

- -

tetra.Group(group) -

- - - - diff --git a/doc/salome/gui/SMESH/static/doxygen.css b/doc/salome/gui/SMESH/static/doxygen.css new file mode 100755 index 000000000..88e613d23 --- /dev/null +++ b/doc/salome/gui/SMESH/static/doxygen.css @@ -0,0 +1,170 @@ +H1 { + text-align: center; +} + +CAPTION { + font-weight: bold +} + +/* Link in the top navbar */ +A.qindex {} + +A.qindexRef {} + +/* Link to any cross-referenced Doxygen element */ +A.el { + text-decoration: none; + font-weight: bold +} + +A.elRef { + font-weight: bold +} + +/* Link to any cross-referenced Doxygen element inside a code section + (ex: header) +*/ +A.code { + text-decoration: none; + font-weight: normal; + color: #4444ee +} + +A.codeRef { + font-weight: normal; + color: #4444ee +} + +A:hover { + text-decoration: none; + background-color: lightblue +} + +DL.el { + margin-left: -1cm +} + +/* A code fragment (ex: header) */ +DIV.fragment { + width: 100%; + border: none; + background-color: #CCCCCC +} + +/* In the alpha list (coumpound index), style of an alphabetical index letter */ +DIV.ah { + background-color: #CCCCCC; + font-weight: bold; + color: #ffffff; + margin-bottom: 3px; + margin-top: 3px +} + +/* Method name (+ type) */ +TD.md { + background-color: lightblue; + font-weight: bold; +} + +/* Method parameter (some of them) */ +TD.mdname1 { + background-color: lightblue; + font-weight: bold; color: #602020; +} + +/* Method parameter (some of them) */ +TD.mdname { + background-color: lightblue; + font-weight: bold; + color: #602020; + width: 600px; +} + +/* Separator between methods group (usually empty, seems not supported by IE) */ +DIV.groupHeader { + margin-left: 16px; + margin-top: 12px; + margin-bottom: 6px; + font-weight: bold +} + +DIV.groupText { + margin-left: 16px; + font-style: italic; + font-size: smaller +} + +BODY { + background: #FFFFFF; +} + +/*div.div-page { + background-color: #FFFFFF; + margin-left: 1em; + margin-right: 1em; + margin-top: 1em; + margin-bottom: 0.1em; + + padding-left: 1em; + padding-right: 1em; + padding-top: 0.5em; + padding-bottom: 0.5em; + + border: 2px solid #0D299A; + border-width: 2px; + border-color: #0D299A; +}*/ + +div.tabs { + text-align: justify; + margin-left : 2px; + margin-right : 2px; + margin-top : 2px; + margin-bottom : 2px + font-weight: bold; + color: #FFFFFF; +} + +DIV.div-footer { + margin-left: 1em; + margin-right: 1em; + margin-bottom: 0.2em; + text-align: right; + font-size: 9pt; +} + +/* In File List, Coumpound List, etc, 1st column of the index */ +TD.indexkey { + background-color: #CCCCCC; + font-weight: bold; + padding-right : 10px; + padding-top : 2px; + padding-left : 10px; + padding-bottom : 2px; + margin-left : 0px; + margin-right : 0px; + margin-top : 2px; + margin-bottom : 2px +} + +/* In File List, Coumpound List, etc, 2nd column of the index */ +TD.indexvalue { + background-color: #CCCCCC; + font-style: italic; + padding-right : 10px; + padding-top : 2px; + padding-left : 10px; + padding-bottom : 2px; + margin-left : 0px; + margin-right : 0px; + margin-top : 2px; + margin-bottom : 2px +} + +span.keyword { color: #008000 } +span.keywordtype { color: #604020 } +span.keywordflow { color: #e08000 } +span.comment { color: #800000 } +span.preprocessor { color: #806020 } +span.stringliteral { color: #002080 } +span.charliteral { color: #008080 } diff --git a/doc/salome/gui/SMESH/static/footer.html b/doc/salome/gui/SMESH/static/footer.html new file mode 100755 index 000000000..56d52a61a --- /dev/null +++ b/doc/salome/gui/SMESH/static/footer.html @@ -0,0 +1,10 @@ + + + + + +
+
Copyright © 2003-2007 CEA, EDF
+
+ + diff --git a/doc/salome/gui/SMESH/static/header.html b/doc/salome/gui/SMESH/static/header.html new file mode 100755 index 000000000..a70a95e30 --- /dev/null +++ b/doc/salome/gui/SMESH/static/header.html @@ -0,0 +1,12 @@ + + + + + $title + + +
+
+SALOME documentation central +
+
diff --git a/doc/salome/gui/SMESH/texture_horiz_ltbluebubbles.jpg b/doc/salome/gui/SMESH/texture_horiz_ltbluebubbles.jpg deleted file mode 100755 index a10d494a5..000000000 Binary files a/doc/salome/gui/SMESH/texture_horiz_ltbluebubbles.jpg and /dev/null differ diff --git a/doc/salome/gui/SMESH/transforming_meshes.htm b/doc/salome/gui/SMESH/transforming_meshes.htm deleted file mode 100755 index 4f740bb60..000000000 --- a/doc/salome/gui/SMESH/transforming_meshes.htm +++ /dev/null @@ -1,758 +0,0 @@ - - - - - -Transforming Meshes - - - - - - - - - - - -

Transforming Meshes

- -

Transforming Meshes

- -

 

- -

Translation

- -

 

- -

import SMESH_mechanic

- -

 

- -

smesh - = SMESH_mechanic.smesh

- -

mesh = SMESH_mechanic.mesh -

- -

 

- -

# define translation - vector

- -

point - = smesh.PointStruct(-150., -150., 0.)

- -

vector =smesh.DirStruct(point) -

- -

 

- -

# translate a mesh

- -

doCopy = 1

- -

 

- -

mesh.Translate([], - vector, doCopy)  

- -

 

- -

Rotation

- -

 

- -

import math

- -

import SMESH_mechanic

- -

 

- -

smesh - = SMESH_mechanic.smesh

- -

mesh = SMESH_mechanic.mesh

- -

 

- -

# define rotation axis - and angle

- -

axisXYZ = smesh.AxisStruct(0., 0., 0., - 5., 5., 20.)

- -

angle270 = 1.5 * math.pi

- -

 

- -

# rotate a mesh

- -

mesh.Rotate([], - axisXYZ, angle270, 1)  

- -

 

- -

Symmetry

- -

 

- -

import math

- -

 

- -

import SMESH_mechanic

- -

 

- -

smesh - = SMESH_mechanic.smesh

- -

mesh = SMESH_mechanic.mesh

- -

 

- -

# create a symmetrical - copy of the mesh mirrored through a point

- -

axis = SMESH.AxisStruct(0, 0, 0, 0, 0, - 0)

- -

 

- -

mesh.Mirror([], axis, smesh.POINT, 1) -

- -

 

- -

Merging - Nodes

- -

 

- -

import SMESH_mechanic

- -

mesh = SMESH_mechanic.mesh

- -

 

- -

# merge nodes

- -

Tolerance = 25.0

- -

 

- -

GroupsOfNodes = -  mesh.FindCoincidentNodes(Tolerance)

- -

mesh.MergeNodes(GroupsOfNodes) -  

- -

 

- -

Merging Elements

- -

import salome

- -

import geompy

- -

import smesh

- -

 

- -

# create a face to - be meshed

- -

px = geompy.MakeVertex(100., - 0.  , 0. -  )

- -

py = geompy.MakeVertex(0. -  , 100., - 0.  )

- -

pz = geompy.MakeVertex(0. -  , 0.  , - 100.)

- -

 

- -

vxy = geompy.MakeVector(px, - py)

- -

arc = geompy.MakeArc(py, - pz, px)

- -

 

- -

wire = geompy.MakeWire([vxy, - arc])

- -

isPlanarFace = 1

- -

 

- -

face1 = geompy.MakeFace(wire, - isPlanarFace)

- -

id_face1 = geompy.addToStudy(face1, - "Face1")

- -

 

- -

# create a circle to - be an extrusion path

- -

px1 = geompy.MakeVertex( - 100.,  100., -  0.)

- -

py1 = geompy.MakeVertex(-100., - -100.,  0.)

- -

pz1 = geompy.MakeVertex( -   0., -    0., - 50.)

- -

 

- -

circle = geompy.MakeCircleThreePnt(py1, - pz1, px1)

- -

id_circle = geompy.addToStudy(circle, - "Path")

- -

 

- -

# create a 2D mesh - on the face

- -

trias = smesh.Mesh(face1, - "Face : 2D mesh")

- -

 

- -

algo1D = trias.Segment()

- -

algo1D.NumberOfSegments(6)

- -

algo2D = trias.Triangle()

- -

algo2D.LengthFromEdges()

- -

 

- -

trias.Compute()

- -

 

- -

# create a path mesh

- -

circlemesh = smesh.Mesh(circle, - "Path mesh")

- -

algo = circlemesh.Segment()

- -

algo.NumberOfSegments(10)

- -

circlemesh.Compute()

- -

 

- -

# extrusion of the - mesh

- -

trias.ExtrusionAlongPath([], - circlemesh, circle,

- -

                         1, - 0, [], 0, smesh.PointStruct(0, 0, 0))

- -

 

- -

# merge nodes

- -

print "Number - of nodes before MergeNodes:",

- -

trias.NbNodes()

- -

tolerance = 0.001

- -

array_of_nodes_groups - = trias.FindCoincidentNodes(tolerance)

- -

 

- -

trias.MergeNodes(array_of_nodes_groups)

- -

 

- -

print "Number - of nodes after MergeNodes:", trias.NbNodes()

- -

print ""

- -

print "Number - of elements before MergeEqualElements:"

- -

print "Edges -      : - ", trias.NbEdges()

- -

print "Triangles -  : ", - trias.NbTriangles()

- -

print "Quadrangles: - ", trias.NbQuadrangles()

- -

print "Volumes -    : - ", trias.NbVolumes()

- -

 

- -

# merge elements

- -

trias.MergeEqualElements()

- -

print "Number - of elements after MergeEqualElements:"

- -

print "Edges -      : - ", trias.NbEdges()

- -

print "Triangles -  : ", - trias.NbTriangles()

- -

print "Quadrangles: - ", trias.NbQuadrangles()

- -

print "Volumes -    : - ", trias.NbVolumes()

- -

 

- -

salome.sg.updateObjBrowser(1) -

- -

 

- -

Sewing Meshes

- -

Sew Meshes Border to Border

- -

import geompy

- -

import smesh

- -

 

- -

# create two faces - of a box

- -

box1 = geompy.MakeBox(0., - 0., -10., 30., 20., 25.)

- -

facesList1 = geompy.SubShapeAll(box1, - geompy.ShapeType["FACE"])

- -

face1 = facesList1[2]

- -

 

- -

box2 = geompy.MakeBox(0., - 5., 0., 20., 20., 15.)

- -

facesList2 = geompy.SubShapeAll(box2, - geompy.ShapeType["FACE"])

- -

face2 = facesList2[1]

- -

 

- -

edgesList = geompy.SubShapeAll(face2, - geompy.ShapeType["EDGE"])

- -

edge1 = edgesList[2]

- -

 

- -

aComp = geompy.MakeCompound([face1, - face2])

- -

geompy.addToStudy(aComp, - "Two faces")

- -

 

- -

# create a mesh on - two faces

- -

mesh = smesh.Mesh(aComp, - "Two faces : quadrangle mesh")

- -

 

- -

algo1D = mesh.Segment()

- -

algo1D.NumberOfSegments(9)

- -

algo2D = mesh.Quadrangle()

- -

 

- -

algo_local = mesh.Segment(edge1)

- -

algo_local.Arithmetic1D(1, - 4)

- -

algo_local.Propagation()

- -

 

- -

mesh.Compute()

- -

 

- -

# sew border to side

- -

# FirstNodeIDOnFreeBorder, - SecondNodeIDOnFreeBorder, LastNodeIDOnFreeBorder,

- -

# FirstNodeIDOnSide, - LastNodeIDOnSide,

- -

# CreatePolygons, CreatePolyedrs

- -

mesh.SewBorderToSide(5, - 45, 6, 113, 109, 0, 0)

- -

Sew Conform Free Borders

- -

import geompy

- -

import smesh

- -

 

- -

# create two faces - of the box

- -

box1 = geompy.MakeBox(0., - 0., -10., 20., 20., 15.)

- -

facesList1 = geompy.SubShapeAll(box1, - geompy.ShapeType["FACE"])

- -

face1 = facesList1[2]

- -

 

- -

box2 = geompy.MakeBox(0., - 5., 0., 20., 20., 15.)

- -

facesList2 = geompy.SubShapeAll(box2, - geompy.ShapeType["FACE"])

- -

face2 = facesList2[1]

- -

 

- -

edgesList = geompy.SubShapeAll(face2, - geompy.ShapeType["EDGE"])

- -

edge1 = edgesList[2]

- -

 

- -

aComp = geompy.MakeCompound([face1, - face2])

- -

geompy.addToStudy(aComp, - "Two faces")

- -

 

- -

# create a mesh on - two faces

- -

mesh = smesh.Mesh(aComp, - "Two faces : quadrangle mesh")

- -

 

- -

algo1D = mesh.Segment()

- -

algo1D.NumberOfSegments(9)

- -

algo2D = mesh.Quadrangle()

- -

 

- -

algo_local = mesh.Segment(edge1)

- -

algo_local.Arithmetic1D(1, - 4)

- -

algo_local.Propagation()

- -

 

- -

mesh.Compute()

- -

 

- -

# sew conform free - borders

- -

# FirstNodeID1, SecondNodeID1, - LastNodeID1, FirstNodeID2, SecondNodeID2

- -

mesh.SewConformFreeBorders(5, - 45, 6, 3, 24)  

- -

Sew Free Borders

- -

import geompy

- -

import smesh

- -

 

- -

# create two faces - of the box

- -

box1 = geompy.MakeBox(0., - 0., 0., 20., 20., 15.)

- -

facesList1 = geompy.SubShapeAll(box1, - geompy.ShapeType["FACE"])

- -

face1 = facesList1[2]

- -

 

- -

box2 = geompy.MakeBox(0., - 5., 0., 20., 20., 15.)

- -

facesList2 = geompy.SubShapeAll(box2, - geompy.ShapeType["FACE"])

- -

face2 = facesList2[1]

- -

 

- -

edgesList = geompy.SubShapeAll(face2, - geompy.ShapeType["EDGE"])

- -

edge1 = edgesList[2]

- -

 

- -

aComp = geompy.MakeCompound([face1, - face2])

- -

geompy.addToStudy(aComp, - "Two faces")

- -

 

- -

# create a mesh on - two faces

- -

mesh = smesh.Mesh(aComp, - "Two faces : quadrangle mesh")

- -

 

- -

algo1D = mesh.Segment()

- -

algo1D.NumberOfSegments(4)

- -

algo2D = mesh.Quadrangle()

- -

 

- -

algo_local = mesh.Segment(edge1)

- -

algo_local.Arithmetic1D(1, - 4)

- -

algo_local.Propagation()

- -

 

- -

mesh.Compute()

- -

 

- -

# sew free borders

- -

# FirstNodeID1, SecondNodeID1, - LastNodeID1,

- -

# FirstNodeID2, SecondNodeID2, - LastNodeID2, CreatePolygons, CreatePolyedrs

- -

mesh.SewFreeBorders(6, - 21, 5, 1, 12, 3, 0, 0)

- -

Sew Side Elements

- -

import geompy

- -

import smesh

- -

 

- -

# create two boxes

- -

box1 = geompy.MakeBox(0., -  0., 0., - 10., 10., 10.)

- -

box2 = geompy.MakeBox(0., - 15., 0., 20., 25., 10.)

- -

 

- -

EdgesList = geompy.SubShapeAll(box2, - geompy.ShapeType["EDGE"])

- -

 

- -

aComp = geompy.MakeCompound([box1, - box2])

- -

geompy.addToStudy(aComp, - "Two boxes")

- -

 

- -

# create a mesh on - two boxes

- -

mesh = smesh.Mesh(aComp, - "Two faces : quadrangle mesh")

- -

 

- -

algo1D = mesh.Segment()

- -

algo1D.NumberOfSegments(2)

- -

algo2D = mesh.Quadrangle()

- -

 

- -

algo_local = mesh.Segment(EdgesList[8])

- -

algo_local.NumberOfSegments(4)

- -

algo_local.Propagation()

- -

 

- -

mesh.Compute()

- -

 

- -

# sew side elements

- -

# IDsOfSide1Elements, - IDsOfSide2Elements,

- -

# NodeID1OfSide1ToMerge, - NodeID1OfSide2ToMerge, NodeID2OfSide1ToMerge, NodeID2OfSide2ToMerge

- -

mesh.SewSideElements([69, - 70, 71, 72], [91, 92, 89, 90], 8, 38, 23, 58)

- - - - diff --git a/doc/salome/gui/SMESH/transparency.htm b/doc/salome/gui/SMESH/transparency.htm deleted file mode 100755 index ab7df8c56..000000000 --- a/doc/salome/gui/SMESH/transparency.htm +++ /dev/null @@ -1,98 +0,0 @@ - - - - - -Transparency - - - - - - - - - - - - -

Transparency

- -

- -

 

- -

Using this slider you can set the transparency of shading. Absolutely - transparent shading will be invisible. By default it is absolutely opaque. -  

- -

 

- - - - diff --git a/doc/salome/gui/SMESH/viewing_meshes.htm b/doc/salome/gui/SMESH/viewing_meshes.htm deleted file mode 100755 index f2eca5e99..000000000 --- a/doc/salome/gui/SMESH/viewing_meshes.htm +++ /dev/null @@ -1,187 +0,0 @@ - - - - - -Viewing Meshes - - - - - - - - - - - -

Viewing Meshes

- -

Viewing Mesh Infos

- -

import - geompy

- -

import smesh

- -

 

- -

# create a box

- -

box = geompy.MakeBox(0., 0., 0., 20., - 20., 20.)

- -

geompy.addToStudy(box, "box")

- -

 

- -

# create a mesh

- -

tetra = smesh.Mesh(box, "MeshBox")

- -

 

- -

algo1D = tetra.Segment()

- -

algo1D.NumberOfSegments(3)

- -

 

- -

algo2D = tetra.Triangle()

- -

algo2D.MaxElementArea(10.)

- -

 

- -

algo3D = tetra.Tetrahedron(smesh.NETGEN)

- -

algo3D.MaxElementVolume(900.)

- -

 

- -

# compute the mesh

- -

tetra.Compute()

- -

 

- -

# print information - about the mesh

- -

print "Information about mesh:" -

- -

print "Number of nodes       : - ", tetra.NbNodes()

- -

print "Number of edges       : - ", tetra.NbEdges()

- -

print "Number of faces       : - ", tetra.NbFaces()

- -

print "          triangles -   : - ", tetra.NbTriangles()

- -

print "          quadrangles - : ", tetra.NbQuadrangles()

- -

print "          polygons -    : - ", tetra.NbPolygons()

- -

print "Number of volumes     : - ", tetra.NbVolumes()

- -

print "          tetrahedrons: - ", tetra.NbTetras()

- -

print "          hexahedrons - : ", tetra.NbHexas()

- -

print "          prisms -      : - ", tetra.NbPrisms()

- -

print "          pyramids -    : - ", tetra.NbPyramids()

- -

print "          polyhedrons - : ", tetra.NbPolyhedrons()  

- - - - diff --git a/doc/salome/gui/SMESH/volume.htm b/doc/salome/gui/SMESH/volume.htm deleted file mode 100755 index bb675f1e0..000000000 --- a/doc/salome/gui/SMESH/volume.htm +++ /dev/null @@ -1,123 +0,0 @@ - - - - - -Volume - - - - - - - - - - - -

Volume

- -

Volume mesh quality - criterion reflects the volume of meshes of a 3D object.

- -

- -

To - apply the Volume quality criterion to your mesh:

- -

1. Display your mesh in the viewer.

- -

2. Choose Controls - > Volume or click button in the toolbar. Your - mesh will be displayed in the viewer with its elements colored according - to the applied mesh quality control criterion:

- -

See Also - a sample TUI Script of a Volume quality control operation. -  

- -

 

- -

 

- -

 

- - - - diff --git a/doc/salome/gui/SMESH/webhelp.cab b/doc/salome/gui/SMESH/webhelp.cab deleted file mode 100755 index b942f642f..000000000 Binary files a/doc/salome/gui/SMESH/webhelp.cab and /dev/null differ diff --git a/doc/salome/gui/SMESH/webhelp.jar b/doc/salome/gui/SMESH/webhelp.jar deleted file mode 100755 index 1d1697e76..000000000 Binary files a/doc/salome/gui/SMESH/webhelp.jar and /dev/null differ diff --git a/doc/salome/gui/SMESH/whcsh_home.htm b/doc/salome/gui/SMESH/whcsh_home.htm deleted file mode 100755 index bc99598c0..000000000 --- a/doc/salome/gui/SMESH/whcsh_home.htm +++ /dev/null @@ -1,600 +0,0 @@ - - - - - - diff --git a/doc/salome/gui/SMESH/whcshdata.htm b/doc/salome/gui/SMESH/whcshdata.htm deleted file mode 100755 index a21983910..000000000 --- a/doc/salome/gui/SMESH/whcshdata.htm +++ /dev/null @@ -1,87 +0,0 @@ - - -Mesh Module Reference Manual - - - - - - - - - - diff --git a/doc/salome/gui/SMESH/whd_dpns.htm b/doc/salome/gui/SMESH/whd_dpns.htm deleted file mode 100755 index 3983ccbdd..000000000 --- a/doc/salome/gui/SMESH/whd_dpns.htm +++ /dev/null @@ -1,43 +0,0 @@ - - -Navigator Pane - - - - - - - - - - - - - - \ No newline at end of file diff --git a/doc/salome/gui/SMESH/whd_hide0.gif b/doc/salome/gui/SMESH/whd_hide0.gif deleted file mode 100755 index 97ea0bb6d..000000000 Binary files a/doc/salome/gui/SMESH/whd_hide0.gif and /dev/null differ diff --git a/doc/salome/gui/SMESH/whd_hide1.gif b/doc/salome/gui/SMESH/whd_hide1.gif deleted file mode 100755 index 97ea0bb6d..000000000 Binary files a/doc/salome/gui/SMESH/whd_hide1.gif and /dev/null differ diff --git a/doc/salome/gui/SMESH/whd_hide2.gif b/doc/salome/gui/SMESH/whd_hide2.gif deleted file mode 100755 index 97ea0bb6d..000000000 Binary files a/doc/salome/gui/SMESH/whd_hide2.gif and /dev/null differ diff --git a/doc/salome/gui/SMESH/whd_next0.gif b/doc/salome/gui/SMESH/whd_next0.gif deleted file mode 100755 index d92dda522..000000000 Binary files a/doc/salome/gui/SMESH/whd_next0.gif and /dev/null differ diff --git a/doc/salome/gui/SMESH/whd_next1.gif b/doc/salome/gui/SMESH/whd_next1.gif deleted file mode 100755 index d92dda522..000000000 Binary files a/doc/salome/gui/SMESH/whd_next1.gif and /dev/null differ diff --git a/doc/salome/gui/SMESH/whd_next2.gif b/doc/salome/gui/SMESH/whd_next2.gif deleted file mode 100755 index d92dda522..000000000 Binary files a/doc/salome/gui/SMESH/whd_next2.gif and /dev/null differ diff --git a/doc/salome/gui/SMESH/whd_nvp10.htm b/doc/salome/gui/SMESH/whd_nvp10.htm deleted file mode 100755 index 05b5f908c..000000000 --- a/doc/salome/gui/SMESH/whd_nvp10.htm +++ /dev/null @@ -1,15 +0,0 @@ - - -Navigation Pane - - - - - - - - - - - - diff --git a/doc/salome/gui/SMESH/whd_nvp20.htm b/doc/salome/gui/SMESH/whd_nvp20.htm deleted file mode 100755 index 23c23dc4f..000000000 --- a/doc/salome/gui/SMESH/whd_nvp20.htm +++ /dev/null @@ -1,334 +0,0 @@ - - -navigation pane - - - - - - - - - - - - - - - - - diff --git a/doc/salome/gui/SMESH/whd_prev0.gif b/doc/salome/gui/SMESH/whd_prev0.gif deleted file mode 100755 index 518561a0d..000000000 Binary files a/doc/salome/gui/SMESH/whd_prev0.gif and /dev/null differ diff --git a/doc/salome/gui/SMESH/whd_prev1.gif b/doc/salome/gui/SMESH/whd_prev1.gif deleted file mode 100755 index 518561a0d..000000000 Binary files a/doc/salome/gui/SMESH/whd_prev1.gif and /dev/null differ diff --git a/doc/salome/gui/SMESH/whd_prev2.gif b/doc/salome/gui/SMESH/whd_prev2.gif deleted file mode 100755 index 518561a0d..000000000 Binary files a/doc/salome/gui/SMESH/whd_prev2.gif and /dev/null differ diff --git a/doc/salome/gui/SMESH/whd_show0.gif b/doc/salome/gui/SMESH/whd_show0.gif deleted file mode 100755 index 60e8e6897..000000000 Binary files a/doc/salome/gui/SMESH/whd_show0.gif and /dev/null differ diff --git a/doc/salome/gui/SMESH/whd_show1.gif b/doc/salome/gui/SMESH/whd_show1.gif deleted file mode 100755 index 60e8e6897..000000000 Binary files a/doc/salome/gui/SMESH/whd_show1.gif and /dev/null differ diff --git a/doc/salome/gui/SMESH/whd_show2.gif b/doc/salome/gui/SMESH/whd_show2.gif deleted file mode 100755 index 60e8e6897..000000000 Binary files a/doc/salome/gui/SMESH/whd_show2.gif and /dev/null differ diff --git a/doc/salome/gui/SMESH/whd_sync0.gif b/doc/salome/gui/SMESH/whd_sync0.gif deleted file mode 100755 index 1a9785ce6..000000000 Binary files a/doc/salome/gui/SMESH/whd_sync0.gif and /dev/null differ diff --git a/doc/salome/gui/SMESH/whd_sync1.gif b/doc/salome/gui/SMESH/whd_sync1.gif deleted file mode 100755 index 1a9785ce6..000000000 Binary files a/doc/salome/gui/SMESH/whd_sync1.gif and /dev/null differ diff --git a/doc/salome/gui/SMESH/whd_sync2.gif b/doc/salome/gui/SMESH/whd_sync2.gif deleted file mode 100755 index 1a9785ce6..000000000 Binary files a/doc/salome/gui/SMESH/whd_sync2.gif and /dev/null differ diff --git a/doc/salome/gui/SMESH/whd_tab0.gif b/doc/salome/gui/SMESH/whd_tab0.gif deleted file mode 100755 index 955c42f47..000000000 Binary files a/doc/salome/gui/SMESH/whd_tab0.gif and /dev/null differ diff --git a/doc/salome/gui/SMESH/whd_tab1.gif b/doc/salome/gui/SMESH/whd_tab1.gif deleted file mode 100755 index b3ec41d6d..000000000 Binary files a/doc/salome/gui/SMESH/whd_tab1.gif and /dev/null differ diff --git a/doc/salome/gui/SMESH/whd_tab2.gif b/doc/salome/gui/SMESH/whd_tab2.gif deleted file mode 100755 index 08fb0ce4f..000000000 Binary files a/doc/salome/gui/SMESH/whd_tab2.gif and /dev/null differ diff --git a/doc/salome/gui/SMESH/whd_tab3.gif b/doc/salome/gui/SMESH/whd_tab3.gif deleted file mode 100755 index 1819c8e8f..000000000 Binary files a/doc/salome/gui/SMESH/whd_tab3.gif and /dev/null differ diff --git a/doc/salome/gui/SMESH/whd_tab4.gif b/doc/salome/gui/SMESH/whd_tab4.gif deleted file mode 100755 index 1a6fc4f4a..000000000 Binary files a/doc/salome/gui/SMESH/whd_tab4.gif and /dev/null differ diff --git a/doc/salome/gui/SMESH/whd_tab5.gif b/doc/salome/gui/SMESH/whd_tab5.gif deleted file mode 100755 index 934019260..000000000 Binary files a/doc/salome/gui/SMESH/whd_tab5.gif and /dev/null differ diff --git a/doc/salome/gui/SMESH/whd_tab6.gif b/doc/salome/gui/SMESH/whd_tab6.gif deleted file mode 100755 index fe312d238..000000000 Binary files a/doc/salome/gui/SMESH/whd_tab6.gif and /dev/null differ diff --git a/doc/salome/gui/SMESH/whd_tab7.gif b/doc/salome/gui/SMESH/whd_tab7.gif deleted file mode 100755 index 3b95ae24e..000000000 Binary files a/doc/salome/gui/SMESH/whd_tab7.gif and /dev/null differ diff --git a/doc/salome/gui/SMESH/whd_tab8.gif b/doc/salome/gui/SMESH/whd_tab8.gif deleted file mode 100755 index c80acc8d5..000000000 Binary files a/doc/salome/gui/SMESH/whd_tab8.gif and /dev/null differ diff --git a/doc/salome/gui/SMESH/whd_tabs.htm b/doc/salome/gui/SMESH/whd_tabs.htm deleted file mode 100755 index e8c498c88..000000000 --- a/doc/salome/gui/SMESH/whd_tabs.htm +++ /dev/null @@ -1,533 +0,0 @@ - - -WebHelp Tabs Frame in Navigation Pane - - - - - - - - - - - \ No newline at end of file diff --git a/doc/salome/gui/SMESH/whd_toc1.gif b/doc/salome/gui/SMESH/whd_toc1.gif deleted file mode 100755 index 11017258c..000000000 Binary files a/doc/salome/gui/SMESH/whd_toc1.gif and /dev/null differ diff --git a/doc/salome/gui/SMESH/whd_toc2.gif b/doc/salome/gui/SMESH/whd_toc2.gif deleted file mode 100755 index 975e5f6f4..000000000 Binary files a/doc/salome/gui/SMESH/whd_toc2.gif and /dev/null differ diff --git a/doc/salome/gui/SMESH/whd_toc3.gif b/doc/salome/gui/SMESH/whd_toc3.gif deleted file mode 100755 index 4b8122f0f..000000000 Binary files a/doc/salome/gui/SMESH/whd_toc3.gif and /dev/null differ diff --git a/doc/salome/gui/SMESH/whd_toc4.gif b/doc/salome/gui/SMESH/whd_toc4.gif deleted file mode 100755 index 354aa6ece..000000000 Binary files a/doc/salome/gui/SMESH/whd_toc4.gif and /dev/null differ diff --git a/doc/salome/gui/SMESH/whd_topic.xml b/doc/salome/gui/SMESH/whd_topic.xml deleted file mode 100755 index b1946d757..000000000 --- a/doc/salome/gui/SMESH/whd_topic.xml +++ /dev/null @@ -1,85 +0,0 @@ - - - - - - - - - - -"]]> - - - - -"]]> - - - - -"; -OutputInTopicNavBarDataWebSearch.form();]]> - - - - - - - - - - -"]]> - - - diff --git a/doc/salome/gui/SMESH/whd_wbsh0.gif b/doc/salome/gui/SMESH/whd_wbsh0.gif deleted file mode 100755 index 383688e7c..000000000 Binary files a/doc/salome/gui/SMESH/whd_wbsh0.gif and /dev/null differ diff --git a/doc/salome/gui/SMESH/whd_wbsh1.gif b/doc/salome/gui/SMESH/whd_wbsh1.gif deleted file mode 100755 index 383688e7c..000000000 Binary files a/doc/salome/gui/SMESH/whd_wbsh1.gif and /dev/null differ diff --git a/doc/salome/gui/SMESH/whd_wbsh2.gif b/doc/salome/gui/SMESH/whd_wbsh2.gif deleted file mode 100755 index 383688e7c..000000000 Binary files a/doc/salome/gui/SMESH/whd_wbsh2.gif and /dev/null differ diff --git a/doc/salome/gui/SMESH/whfbody.htm b/doc/salome/gui/SMESH/whfbody.htm deleted file mode 100755 index ea648e4b3..000000000 --- a/doc/salome/gui/SMESH/whfbody.htm +++ /dev/null @@ -1,37 +0,0 @@ - - -Search Result - - - - - - - - - - - - - - - - - diff --git a/doc/salome/gui/SMESH/whfdhtml.htm b/doc/salome/gui/SMESH/whfdhtml.htm deleted file mode 100755 index c2e65bea1..000000000 --- a/doc/salome/gui/SMESH/whfdhtml.htm +++ /dev/null @@ -1,30 +0,0 @@ - - -Search Frame - - - - - - - - - diff --git a/doc/salome/gui/SMESH/whfform.htm b/doc/salome/gui/SMESH/whfform.htm deleted file mode 100755 index 0f8f90ab6..000000000 --- a/doc/salome/gui/SMESH/whfform.htm +++ /dev/null @@ -1,136 +0,0 @@ - - -Search Form - - - - - - - - - - - - - - diff --git a/doc/salome/gui/SMESH/whfhost.js b/doc/salome/gui/SMESH/whfhost.js deleted file mode 100755 index c3c7144fa..000000000 --- a/doc/salome/gui/SMESH/whfhost.js +++ /dev/null @@ -1,945 +0,0 @@ -// WebHelp 5.10.003 -var gsSK2=null; -var gsSK=null; -var gsFtsBreakChars="\t\r\n\"\\ .,!@#$%^&*()~'`:;<>?/{}[]|+-=\x85\x92\x93\x94\x95\x96\x97\x99\xA9\xAE\xB7"; -var gnCLF=0; -var gsHelpCannotSearch="Cannot search for that phrase."; -var gsNoTopics="No Topics Found."; -var gsLoadingDivID="LoadingDiv"; -var gsLoadingMsg="Loading data, please wait..."; -var gsSearchMsg="Searching..."; -var gsResultDivID="ResultDiv"; -var gaaFCD=new Array(); -var gaaFTCD=new Array(); -var goCF=null; -var goCTF=null; -var gaTI=null; -var gnCurrentOp=0; -var gbNot=false; -var gbReady=false; -var gnLoadFts=1; -var gnCacheLimits=5; -var gaCCD=new Array(); -var gbXML=false; -var gaData=new Array(); -var gsBgColor="#ffffff"; -var gsBgImage=""; -var gsMargin="0pt"; -var gsIndent="0pt"; -var gsCheckKey=null; -var gnIndexNum=0; -var gaFtsContentsCon=null; -var gaTopicCheckInfo=null; -var gnTopicCheck=0; -var goFont=null; -var goErrFont=null; -var goHoverFont=null; -var gsABgColor="#cccccc"; -var gbWhFHost=false; -var gbFirst=false; - -function setBackground(sBgImage) -{ - gsBgImage=sBgImage; -} - -function setBackgroundcolor(sBgColor) -{ - gsBgColor=sBgColor; -} - -function setFont(sType,sFontName,sFontSize,sFontColor,sFontStyle,sFontWeight,sFontDecoration) -{ - var vFont=new whFont(sFontName,sFontSize,sFontColor,sFontStyle,sFontWeight,sFontDecoration); - if(sType=="Normal") - goFont=vFont; - else if(sType=="Error") - goErrFont=vFont; - else if(sType=="Hover") - goHoverFont=vFont; -} - -function setActiveBgColor(sBgColor) -{ - gsABgColor=sBgColor; -} - -function setMargin(sMargin) -{ - gsMargin=sMargin; -} - -function setIndent(sIndent) -{ - gsIndent=sIndent; -} - -function updateCache(oCF) -{ - var len=gaCCD.length; - if(len0&&sURL) - { - var topic=new Object(); - topic.sTopicTitle=name; - topic.sTopicURL=sURL; - aTopics[aTopics.length]=topic; - } - } - oChild=oChild.nextSibling; - } - putFtsTData(aTopics); - } - } - else if(gnLoadFts==2) - { - var node=xmlDoc.lastChild; - if(node) - { - var oChild=node.firstChild; - var aFtsContents=new Array(); - while(oChild) - { - if(oChild.nodeName=="key") - { - var name=oChild.getAttribute("name"); - if(name&&name.length>0) - { - var item=new Object(); - item.sItemName=name; - aFtsContents[aFtsContents.length]=item; - var oChildChild=oChild.firstChild; - while(oChildChild) - { - if(oChildChild.nodeName=="#text") - { - var sIDs=oChildChild.nodeValue; - if(sIDs) - { - var nBPos=0; - do - { - var nPos=sIDs.indexOf(",",nBPos); - var sID=null; - if(nPos!=-1) - sID=sIDs.substring(nBPos,nPos); - else - sID=sIDs.substring(nBPos); - - if(sID) - { - var id=parseInt(sID); - if(!isNaN(id)) - { - if(!item.aTopics) - item.aTopics=new Array(); - item.aTopics[item.aTopics.length]=id; - } - } - nBPos=nPos+1; - }while(nBPos!=0&&nBPos0) - { - document.body.background=gsBgImage; - } - if(gsBgColor&&gsBgColor.length>0) - { - document.body.bgColor=gsBgColor; - } - writeResultDiv(); - loadFts(); - var oMsg=new whMessage(WH_MSG_SHOWFTS,this,1,null) - SendMessage(oMsg); -} - -function writeResultDiv() -{ - var sHTML="
"; - document.body.insertAdjacentHTML("beforeEnd",sHTML); -} - -function loadFts() -{ - if(!gbReady) - { - var oResMsg=new whMessage(WH_MSG_GETPROJINFO,this,1,null); - if(SendMessage(oResMsg)&&oResMsg.oParam) - { - gbReady=true; - var oProj=oResMsg.oParam; - var aProj=oProj.aProj; - gbXML=oProj.bXML; - if(aProj.length>0) - { - var sLangId=aProj[0].sLangId; - for(var i=0;i=0)&&(gsFtsBreakChars.charAt(nSep)=="|"))){ - gnCurrentOp=0; - gbNot=false; - }else if((sCW=="and")||((nSep>=0)&&(gsFtsBreakChars.charAt(nSep)=="&"))){ - gnCurrentOp=1; - gbNot=false; - }else if((sCW=="not")|| - ((nSep>=0)&&(gsFtsBreakChars.charAt(nSep)=="~"))){ - gbNot=!gbNot; - }else if(sCW!=""&&!IsStopWord(sCW,gaFtsStop)){ - var sCurrentStem=GetStem(sCW); - gsCW=sCurrentStem; - ftsFindKeyword(); - return; - } - findOneKey(); - } - else{ - displayTopics(); - checkAgain(); - } -} - -function checkAgain() -{ - gsCheckKey = ""; - gnIndexNum = 0; - gsSK=gsSK2; - gsSK2=null; - if(gsSK!=null) - setTimeout("findFTSKey();",1); -} - -function displayTopics() -{ - var sHTML=""; - var sLine=""; - for(var i=0;i"+_textToHtml(gaTI[i].sTopicTitle)+""; - if(i>>4<<4==i) - { - sHTML+=sLine; - sLine=""; - } - } - if(sLine.length>0) - sHTML+=sLine; - - if(sHTML.length==0) - sHTML="

"+gsNoTopics+"

" - else - sHTML="
"+sHTML+"
"; - - var resultDiv=getElement(gsResultDivID); - if(resultDiv) - resultDiv.innerHTML=sHTML; -} - -function displayMsg(sErrorMsg) -{ - var sHTML="

"+sErrorMsg+"

"; - - var resultDiv=getElement(gsResultDivID); - if(resultDiv) - resultDiv.innerHTML=sHTML; -} - -function ftsFindKeyword() -{ - var sKey=gsCW; - var bNeedLoad=false; - var aFtsContentsCon=null; - var s=0; - if(sKey==null) return; - if(!gsCheckKey||sKey!=gsCheckKey||gnIndexNum==0) - { - aFtsContentsCon=new Array(); - gnCheck=0; - gsCheckKey=sKey; - gnTopicCheck=0; - gaTopicCheckInfo=null; - } - else{ - s=gnIndexNum; - aFtsContentsCon=gaFtsContentsCon; - } - for(var i=gnCheck;i=aTI.length) - { - aLS=gaTI; - aSS=aTI; - } - else - { - aLS=aTI; - aSS=gaTI; - } - var s=0; - for(var i=0;i=0) - { - var nM; - var bFound=false; - do{ - nM=(nB+nE)>>1; - if(compare(aTI[nM].sTopicTitle,oTI.sTopicTitle)>0) - nE=nM-1; - else if(compare(aTI[nM].sTopicTitle,oTI.sTopicTitle)<0) - nB=nM+1; - else - { - bFound=true; - break; - } - }while(nB<=nE); - if(bFound) - insertItemIntoArray(aTI,nM,oTI); - else - { - if(compare(aTI[nM].sTopicTitle,oTI.sTopicTitle)<0) - insertItemIntoArray(aTI,nM+1,oTI); - else - insertItemIntoArray(aTI,nM,oTI); - } - } - else - aTI[0]=oTI; -} - -function mergeTopics(aTI1,aTI2) -{ - var i1=0; - var i2=0; - var len1=aTI1.length; - var len2=aTI2.length; - var aTopicNew=new Array(); - var i=0; - while(i1>1; - if(compare(keys[nM].sItemName,sKey)>0) - nE=nM-1; - else if(compare(keys[nM].sItemName,sKey)<0) - nB=nM+1; - else{ - bFound=true; - break; - } - }while(nB<=nE); - if(bFound) - { - if(keys[nM].aTopics) - { - for(var i=0;i>1; - if(aFTCD[nM].nBegin>nTopicId) - nE=nM-1; - else if(aFTCD[nM].nEnd

 See - Also a sample TUI Script of an Extrusion - operation.