IMP19938
Before Width: | Height: | Size: 14 KiB After Width: | Height: | Size: 21 KiB |
Before Width: | Height: | Size: 14 KiB After Width: | Height: | Size: 21 KiB |
Before Width: | Height: | Size: 16 KiB After Width: | Height: | Size: 14 KiB |
Before Width: | Height: | Size: 16 KiB After Width: | Height: | Size: 14 KiB |
BIN
doc/salome/gui/SMESH/images/free_faces.png
Normal file
After Width: | Height: | Size: 16 KiB |
Before Width: | Height: | Size: 4.8 KiB After Width: | Height: | Size: 8.0 KiB |
Before Width: | Height: | Size: 4.6 KiB After Width: | Height: | Size: 7.8 KiB |
Before Width: | Height: | Size: 14 KiB After Width: | Height: | Size: 19 KiB |
Before Width: | Height: | Size: 14 KiB After Width: | Height: | Size: 19 KiB |
Before Width: | Height: | Size: 10 KiB After Width: | Height: | Size: 17 KiB |
Before Width: | Height: | Size: 10 KiB After Width: | Height: | Size: 14 KiB |
Before Width: | Height: | Size: 8.6 KiB After Width: | Height: | Size: 15 KiB |
Before Width: | Height: | Size: 9.8 KiB After Width: | Height: | Size: 17 KiB |
Before Width: | Height: | Size: 9.8 KiB After Width: | Height: | Size: 17 KiB |
Before Width: | Height: | Size: 9.0 KiB After Width: | Height: | Size: 16 KiB |
Before Width: | Height: | Size: 8.1 KiB After Width: | Height: | Size: 13 KiB |
@ -44,6 +44,7 @@ There are 0D, 1D, 2D and 3D quality controls.
|
||||
<ul>
|
||||
<li>\ref aspect_ratio_3d_page "Aspect ratio 3D"</li>
|
||||
<li>\ref volume_page "Volume"</li>
|
||||
<li>\ref free_faces_page "Free faces"</li>
|
||||
</ul>
|
||||
|
||||
*/
|
||||
*/
|
||||
|
17
doc/salome/gui/SMESH/input/free_faces.doc
Normal file
@ -0,0 +1,17 @@
|
||||
/*!
|
||||
|
||||
\page free_faces_page Free faces
|
||||
|
||||
\n This mesh quality control highlights faces which are connected
|
||||
less than to two mesh volume elements. Free faces are shown with a color differs from
|
||||
the color of shared faces.
|
||||
|
||||
\image html free_faces.png
|
||||
<center>In this picture some volume mesh element are removed as
|
||||
a result some faces become connected only to one
|
||||
volume. i.e. become free.
|
||||
|
||||
<br><b>See Also</b> a sample TUI Script of a
|
||||
\ref tui_free_faces "Free Faces quality control" operation.
|
||||
|
||||
*/
|
@ -13,4 +13,4 @@ a result of deleting elements and adding several isolated nodes.
|
||||
<br><b>See Also</b> a sample TUI Script of a
|
||||
\ref tui_free_nodes "Free Nodes quality control" operation.
|
||||
|
||||
*/
|
||||
*/
|
||||
|
@ -63,6 +63,7 @@
|
||||
<li>\ref skew_page</li>
|
||||
<li>\ref aspect_ratio_3d_page</li>
|
||||
<li>\ref volume_page</li>
|
||||
<li>\ref free_faces_page</li>
|
||||
</ul>
|
||||
<li>\subpage grouping_elements_page</li>
|
||||
<ul>
|
||||
|
@ -19,6 +19,7 @@
|
||||
<li>\subpage skew_page</li>
|
||||
<li>\subpage aspect_ratio_3d_page</li>
|
||||
<li>\subpage volume_page</li>
|
||||
<li>\subpage free_faces_page</li>
|
||||
</ul>
|
||||
|
||||
*/
|
||||
*/
|
||||
|
@ -242,6 +242,87 @@ print ""
|
||||
salome.sg.updateObjBrowser(1)
|
||||
\endcode
|
||||
|
||||
|
||||
<br>
|
||||
\anchor tui_free_faces
|
||||
<h2>Free Faces</h2>
|
||||
|
||||
\code
|
||||
import salome
|
||||
import geompy
|
||||
|
||||
####### GEOM part ########
|
||||
|
||||
Box_1 = geompy.MakeBoxDXDYDZ(200, 200, 200)
|
||||
Box_1_vertex_6 = geompy.GetSubShape(Box_1, [6])
|
||||
Box_1 = geompy.GetMainShape(Box_1_vertex_6)
|
||||
Box_1_vertex_16 = geompy.GetSubShape(Box_1, [16])
|
||||
Box_1 = geompy.GetMainShape(Box_1_vertex_16)
|
||||
Box_1_vertex_11 = geompy.GetSubShape(Box_1, [11])
|
||||
Box_1 = geompy.GetMainShape(Box_1_vertex_11)
|
||||
Plane_1 = geompy.MakePlaneThreePnt(Box_1_vertex_6, Box_1_vertex_16, Box_1_vertex_11, 2000)
|
||||
Partition_1 = geompy.MakePartition([Box_1], [Plane_1], [], [], geompy.ShapeType["SOLID"], 0, [], 0)
|
||||
|
||||
Box_1_vertex_19 = geompy.GetSubShape(Box_1, [19])
|
||||
Box_1_vertex_21 = geompy.GetSubShape(Box_1, [21])
|
||||
Plane_2 = geompy.MakePlaneThreePnt(Box_1_vertex_16, Box_1_vertex_19, Box_1_vertex_21, 2000)
|
||||
|
||||
geompy.addToStudy( Box_1, "Box_1" )
|
||||
geompy.addToStudyInFather( Box_1, Box_1_vertex_6, "Box_1:vertex_6" )
|
||||
geompy.addToStudyInFather( Box_1, Box_1_vertex_16, "Box_1:vertex_16" )
|
||||
geompy.addToStudyInFather( Box_1, Box_1_vertex_11, "Box_1:vertex_11" )
|
||||
geompy.addToStudy( Plane_1, "Plane_1" )
|
||||
geompy.addToStudy( Partition_1, "Partition_1" )
|
||||
geompy.addToStudyInFather( Box_1, Box_1_vertex_19, "Box_1:vertex_19" )
|
||||
geompy.addToStudyInFather( Box_1, Box_1_vertex_21, "Box_1:vertex_21" )
|
||||
geompy.addToStudy( Plane_2, "Plane_2" )
|
||||
|
||||
###### SMESH part ######
|
||||
import smesh
|
||||
|
||||
import StdMeshers
|
||||
import NETGENPlugin
|
||||
|
||||
Mesh_1 = smesh.Mesh(Partition_1)
|
||||
Regular_1D = Mesh_1.Segment()
|
||||
Max_Size_1 = Regular_1D.MaxSize(34.641)
|
||||
MEFISTO_2D = Mesh_1.Triangle()
|
||||
Tetrahedron_Netgen = Mesh_1.Tetrahedron(algo=smesh.NETGEN)
|
||||
isDone = Mesh_1.Compute()
|
||||
|
||||
# create a group of free faces
|
||||
aFilter = smesh.GetFilter(smesh.FACE, smesh.FT_FreeFaces )
|
||||
aFaceIds = Mesh_1.GetIdsFromFilter(aFilter)
|
||||
|
||||
aGroup = Mesh_1.CreateEmptyGroup(smesh.FACE, "Free_faces")
|
||||
aGroup.Add(aFaceIds)
|
||||
|
||||
# print the result
|
||||
print "Criterion: Free nodes Nb = ", len(anNodeIds)
|
||||
j = 1
|
||||
for i in range(len(aFaceIds)):
|
||||
if j > 20: j = 1; print ""
|
||||
print anNodeIds[i],
|
||||
j = j + 1
|
||||
pass
|
||||
print ""
|
||||
|
||||
#filter faces from plane 2
|
||||
aFilter = smesh.GetFilter(smesh.FACE, smesh.FT_BelongToPlane, Plane_2)
|
||||
aFaceIds = Mesh_1.GetIdsFromFilter(aFilter)
|
||||
aGroup.Remove(aFaceIds)
|
||||
|
||||
# create a group of shared faces (located on partition boundary inside box)
|
||||
aFilter = smesh.GetFilter(smesh.FACE, smesh.FT_BelongToPlane, Plane_1)
|
||||
aFaceIds = Mesh_1.GetIdsFromFilter(aFilter)
|
||||
|
||||
aGroup = Mesh_1.CreateEmptyGroup(smesh.FACE, "Shared_faces")
|
||||
aGroup.Add(aFaceIds)
|
||||
|
||||
salome.sg.updateObjBrowser(1)
|
||||
\endcode
|
||||
|
||||
|
||||
<br>
|
||||
\anchor tui_length_2d
|
||||
<h2>Length 2D</h2>
|
||||
@ -625,4 +706,4 @@ aGroup.Add(anIds)
|
||||
salome.sg.updateObjBrowser(1)
|
||||
\endcode
|
||||
|
||||
*/
|
||||
*/
|
||||
|