Salome HOME
Merge changes from 'master' branch.
[plugins/blsurfplugin.git] / tests / attractor.py
1 # -*- coding: utf-8 -*-
2
3 import sys
4 import salome
5
6 salome.salome_init()
7
8 import  SMESH, SALOMEDS
9
10 ## Compute the minimum area of the faces of the mesh
11 def getMinArea(mesh):
12   faces = mesh.GetElementsByType(SMESH.FACE)
13   areas = [mesh.GetArea(face) for face in faces]
14   return min(areas)
15
16 ###
17 ### GEOM component
18 ###
19
20 import GEOM
21 from salome.geom import geomBuilder
22 import math
23 import SALOMEDS
24
25
26 geompy = geomBuilder.New()
27
28 O = geompy.MakeVertex(0, 0, 0)
29 OX = geompy.MakeVectorDXDYDZ(1, 0, 0)
30 OY = geompy.MakeVectorDXDYDZ(0, 1, 0)
31 OZ = geompy.MakeVectorDXDYDZ(0, 0, 1)
32 Face_1 = geompy.MakeFaceHW(100, 100, 1)
33 Circle_1 = geompy.MakeCircle(None, None, 20)
34 geompy.addToStudy( O, 'O' )
35 geompy.addToStudy( OX, 'OX' )
36 geompy.addToStudy( OY, 'OY' )
37 geompy.addToStudy( OZ, 'OZ' )
38 geompy.addToStudy( Face_1, 'Face_1' )
39 geompy.addToStudy( Circle_1, 'Circle_1' )
40
41 ###
42 ### SMESH component
43 ###
44
45 from salome.smesh import smeshBuilder
46
47 smesh = smeshBuilder.New()
48 Mesh_1 = smesh.Mesh(Face_1)
49 MG_CADSurf = Mesh_1.Triangle(algo=smeshBuilder.MG_CADSurf)
50 MG_CADSurf_Parameters_1 = MG_CADSurf.Parameters()
51 MG_CADSurf_Parameters_1.SetPhySize( 14.1421 )
52 MG_CADSurf_Parameters_1.SetMinSize( 0.141421 )
53 MG_CADSurf_Parameters_1.SetMaxSize( 28.2843 )
54 MG_CADSurf_Parameters_1.SetChordalError( 7.07107 )
55 #MG_CADSurf_Parameters_1.SetAttractorGeom( Face_1, Circle_1, 1, 14.1421, 5, 5 )
56
57 Mesh_1.Compute()
58
59 min_area_without_attractor = getMinArea(Mesh_1)
60
61 print("min_area_without_attractor: ", min_area_without_attractor)
62
63 MG_CADSurf_Parameters_1.SetAttractorGeom( Face_1, Circle_1, 1, 14.1421, 5, 5 )
64
65 Mesh_1.Compute()
66
67 min_area_with_attractor = getMinArea(Mesh_1)
68
69 print("min_area_with_attractor: ", min_area_with_attractor)
70
71 assert min_area_with_attractor < min_area_without_attractor
72
73 assert min_area_with_attractor < 1
74
75 if salome.sg.hasDesktop():
76   salome.sg.updateObjBrowser(True)