Salome HOME
Upgrade to MeshGems 1.3-8: activate PreCad by default
[plugins/blsurfplugin.git] / tests / test_precad_intersections.py
1 # -*- coding: utf-8 -*-
2
3 import sys
4 import salome
5
6 salome.salome_init()
7 theStudy = salome.myStudy
8
9 ###
10 ### GEOM component
11 ###
12
13 import GEOM
14 from salome.geom import geomBuilder
15 geompy = geomBuilder.New(salome.myStudy)
16
17
18 geompy.init_geom(theStudy)
19
20 Face_1 = geompy.MakeFaceHW(10, 10, 1)
21 Translation_1 = geompy.MakeTranslation(Face_1, 10.0001, 0.0001, 0)
22 Translation_2 = geompy.MakeTranslation(Face_1, 5, -9.99995, 0)
23 Partition_1 = geompy.MakePartition([Face_1, Translation_1, Translation_2], [], [], [], geompy.ShapeType["FACE"], 0, [], 0)
24 geompy.addToStudy( Face_1, 'Face_1' )
25 geompy.addToStudy( Translation_1, 'Translation_1' )
26 geompy.addToStudy( Translation_2, 'Translation_2' )
27 geompy.addToStudy( Partition_1, 'Partition_1' )
28
29 p_axe = geompy.MakeVertex(5, -5, 0)
30 axe = geompy.MakePrismDXDYDZ(p_axe, 0, 0, 1)
31 vertices = geompy.GetShapesOnCylinder(Partition_1, geompy.ShapeType["VERTEX"], axe, 1e-3, GEOM.ST_IN)
32 gr_vertices = geompy.CreateGroup(Partition_1, geompy.ShapeType["VERTEX"])
33 geompy.UnionList(gr_vertices, vertices)
34 geompy.addToStudyInFather(Partition_1, gr_vertices, "vertices")
35
36 ###
37 ### SMESH component
38 ###
39
40 import SMESH
41 from salome.smesh import smeshBuilder
42 smesh = smeshBuilder.New(salome.myStudy)
43
44
45 Mesh_1 = smesh.Mesh(Partition_1)
46
47 BLSURF_1 = Mesh_1.Triangle(algo=smeshBuilder.BLSURF)
48 BLSURF_Parameters = BLSURF_1.Parameters()
49 BLSURF_Parameters.SetPhySize( 5 )
50 BLSURF_Parameters.SetPreCADMergeEdges( True )
51 BLSURF_Parameters.SetPreCADProcess3DTopology( True )
52
53 Mesh_1.Compute()
54
55 # Check that vertices are merged by preCAD preprocessing
56 nodes = []
57 for p in vertices:
58     x, y, z = geompy.PointCoordinates(p)
59     id_node = Mesh_1.FindNodeClosestTo(x, y, z)
60     nodes.append(id_node)
61
62 nodes = set(nodes)
63
64 assert(len(nodes) == 1)
65
66 if salome.sg.hasDesktop():
67   salome.sg.updateObjBrowser(1)