]> SALOME platform Git repositories - modules/geom.git/blob - doc/salome/examples/shape_proximity.py
Salome HOME
bos #29468: Advanced geometry features: distance Edge-Edge & Face-Face
[modules/geom.git] / doc / salome / examples / shape_proximity.py
1 # Shape Proximity
2
3 import math
4 import salome
5 salome.salome_init_without_session()
6 import GEOM
7 from salome.geom import geomBuilder
8 geompy = geomBuilder.New()
9
10 # create conical and planar faces
11 O = geompy.MakeVertex(0, 0, 0)
12 OX = geompy.MakeVectorDXDYDZ(1, 0, 0)
13 OY = geompy.MakeVectorDXDYDZ(0, 1, 0)
14 OZ = geompy.MakeVectorDXDYDZ(0, 0, 1)
15 Cone_1 = geompy.MakeConeR1R2H(100, 0, 300)
16 Cone_1_face_3 = geompy.GetSubShape(Cone_1, [3])
17 Cone_1_wire_4 = geompy.GetSubShape(Cone_1, [4])
18 Face_1 = geompy.MakeFaceFromSurface(Cone_1_face_3, Cone_1_wire_4)
19 Face_1_edge_5 = geompy.GetSubShape(Face_1, [5])
20 Face_2 = geompy.MakeFaceObjHW(Face_1_edge_5, 200, 200)
21 geompy.Rotate(Face_2, OY, 90*math.pi/180.0)
22 Face_2_vertex_7 = geompy.GetSubShape(Face_2, [7])
23 Translation_1 = geompy.MakeTranslationTwoPoints(Face_2, Face_2_vertex_7, O)
24
25 shape1 = Face_1
26 shape2 = Translation_1
27
28 # perform proximity calculation with the default parameters
29 p1 = geompy.ShapeProximity()
30 proximity1 = p1.proximity(shape1, shape2)
31 print("Proximity with default parameters: ", proximity1)
32
33 # perform proximity calculation with custom parameters
34 p2 = geompy.ShapeProximity()
35 p2.setShapes(shape1, shape2)
36 p2.setSampling(shape1, 100) # number of sample points for the first shape
37 p2.setSampling(shape2, 40)  # number of sample points for the second shape
38 proximity2_coarse = p2.coarseProximity()
39 proximity2_fine = p2.preciseProximity()
40 print("Proximity with custom parameters: coarse = ", proximity2_coarse, "; precise = ", proximity2_fine)