Salome HOME
Update incorrect units tests and add missing tests (issues #2838, #2839, #2840, ...
[modules/shaper.git] / src / SketchPlugin / Test / TestSignedDistancePointPoint.py
1 from salome.shaper import model
2 import math
3
4 TOLERANCE = 1.e-5
5
6 model.begin()
7 partSet = model.moduleDocument()
8 Part_1 = model.addPart(partSet)
9 Part_1_doc = Part_1.document()
10 model.addParameter(Part_1_doc, "clearance", "210")
11 model.addParameter(Part_1_doc, "wheel_R", "203")
12 model.addParameter(Part_1_doc, "arc_R", "wheel_R+70")
13 model.addParameter(Part_1_doc, "hood_height", "290")
14 HeightParam = model.addParameter(Part_1_doc, "height", "900")
15 LengthParam = model.addParameter(Part_1_doc, "length", "1460")
16 PosParam = model.addParameter(Part_1_doc, "position", "71.99905090248758")
17 Sketch_1 = model.addSketch(Part_1_doc, model.defaultPlane("XOY"))
18 SketchLine_1 = Sketch_1.addLine(-281.378739745974, 78.99909999999998, -98.87873974597397, 78.99909999999998)
19 SketchConstraintHorizontal_1 = Sketch_1.setHorizontal(SketchLine_1.result())
20 SketchArc_1 = Sketch_1.addArc(174.031501908677, 71.9991, -98.87873974597397, 78.99909999999998, 446.941743563328, 78.9991, True)
21 SketchConstraintCoincidence_1 = Sketch_1.setCoincident(SketchLine_1.endPoint(), SketchArc_1.startPoint())
22 SketchArc_2 = Sketch_1.addArc(-554.288981400625, 71.9991, -281.378739745974, 78.99909999999998, -827.1992230552759, 78.9991, False)
23 SketchConstraintCoincidence_2 = Sketch_1.setCoincident(SketchLine_1.startPoint(), SketchArc_2.startPoint())
24 SketchConstraintCoincidence_3 = Sketch_1.setCoincident(SketchArc_2.endPoint(), SketchLine_1.result())
25 SketchConstraintCoincidence_4 = Sketch_1.setCoincident(SketchArc_1.endPoint(), SketchLine_1.result())
26 SketchConstraintDistance_1 = Sketch_1.setDistance(SketchArc_2.center(), SketchLine_1.result(), "clearance-wheel_R", True)
27 SketchConstraintDistance_2 = Sketch_1.setDistance(SketchArc_1.center(), SketchLine_1.result(), "clearance-wheel_R", True)
28 SketchConstraintEqual_1 = Sketch_1.setEqual(SketchArc_2.results()[1], SketchArc_1.results()[1])
29 SketchCircle_1 = Sketch_1.addCircle(-554.288981400625, 71.9991, 203)
30 SketchConstraintCoincidence_5 = Sketch_1.setCoincident(SketchArc_2.center(), SketchCircle_1.center())
31 SketchCircle_2 = Sketch_1.addCircle(174.031501908677, 71.9991, 203)
32 SketchConstraintCoincidence_6 = Sketch_1.setCoincident(SketchArc_1.center(), SketchCircle_2.center())
33 SketchConstraintRadius_1 = Sketch_1.setRadius(SketchCircle_1.results()[1], "wheel_R")
34 SketchConstraintEqual_2 = Sketch_1.setEqual(SketchCircle_1.results()[1], SketchCircle_2.results()[1])
35 SketchLine_2 = Sketch_1.addLine(-827.1992230552759, 78.9991, -960.4001854579536, 78.9991)
36 SketchConstraintCoincidence_7 = Sketch_1.setCoincident(SketchArc_2.endPoint(), SketchLine_2.startPoint())
37 SketchLine_3 = Sketch_1.addLine(-960.4001854579536, 78.9991, -960.4001854579536, 368.9991)
38 SketchConstraintCoincidence_8 = Sketch_1.setCoincident(SketchLine_2.endPoint(), SketchLine_3.startPoint())
39 SketchLine_4 = Sketch_1.addLine(-891.6236641114499, 437.7756213465037, -540.5628729569305, 437.7756213465037)
40 SketchLine_5 = Sketch_1.addLine(-540.5628729569305, 437.7756213465037, -349.330908394406, 768.9991)
41 SketchConstraintCoincidence_9 = Sketch_1.setCoincident(SketchLine_4.endPoint(), SketchLine_5.startPoint())
42 SketchLine_6 = Sketch_1.addLine(-349.330908394406, 768.9991, 308.3678499795216, 768.9991)
43 SketchConstraintCoincidence_10 = Sketch_1.setCoincident(SketchLine_5.endPoint(), SketchLine_6.startPoint())
44 SketchLine_7 = Sketch_1.addLine(308.3678499795216, 768.9991, 499.5998145420464, 437.7756213465038)
45 SketchConstraintCoincidence_11 = Sketch_1.setCoincident(SketchLine_6.endPoint(), SketchLine_7.startPoint())
46 SketchLine_8 = Sketch_1.addLine(499.5998145420464, 437.7756213465038, 499.5998145420464, 78.9991)
47 SketchConstraintCoincidence_12 = Sketch_1.setCoincident(SketchLine_7.endPoint(), SketchLine_8.startPoint())
48 SketchLine_9 = Sketch_1.addLine(499.5998145420464, 78.9991, 446.941743563328, 78.9991)
49 SketchConstraintCoincidence_13 = Sketch_1.setCoincident(SketchLine_8.endPoint(), SketchLine_9.startPoint())
50 SketchConstraintCoincidence_14 = Sketch_1.setCoincident(SketchArc_1.endPoint(), SketchLine_9.endPoint())
51 SketchConstraintHorizontal_2 = Sketch_1.setHorizontal(SketchLine_2.result())
52 SketchConstraintHorizontal_3 = Sketch_1.setHorizontal(SketchLine_4.result())
53 SketchConstraintHorizontal_4 = Sketch_1.setHorizontal(SketchLine_6.result())
54 SketchConstraintHorizontal_5 = Sketch_1.setHorizontal(SketchLine_9.result())
55 SketchConstraintVertical_1 = Sketch_1.setVertical(SketchLine_3.result())
56 SketchConstraintVertical_2 = Sketch_1.setVertical(SketchLine_8.result())
57 SketchArc_3 = Sketch_1.addArc(-891.6236641114499, 368.9991, -891.6236641114499, 437.7756213465037, -960.4001854579536, 368.9991, False)
58 SketchConstraintCoincidence_15 = Sketch_1.setCoincident(SketchArc_3.startPoint(), SketchLine_4.startPoint())
59 SketchConstraintCoincidence_16 = Sketch_1.setCoincident(SketchArc_3.endPoint(), SketchLine_3.endPoint())
60 SketchConstraintTangent_1 = Sketch_1.setTangent(SketchArc_3.results()[1], SketchLine_3.result())
61 SketchConstraintTangent_2 = Sketch_1.setTangent(SketchArc_3.results()[1], SketchLine_4.result())
62 SketchConstraintAngle_1 = Sketch_1.setAngle(SketchLine_5.result(), SketchLine_4.result(), 120.0000000000006)
63 SketchConstraintCoincidence_17 = Sketch_1.setCoincident(SketchLine_8.startPoint(), SketchLine_4.result())
64 SketchConstraintAngle_2 = Sketch_1.setAngleBackward(SketchLine_7.result(), SketchLine_6.result(), 120.0000000000006)
65 SketchConstraintDistance_3 = Sketch_1.setDistance(SketchArc_2.center(), SketchLine_2.startPoint(), "arc_R", True)
66 SketchConstraintDistanceVertical_1 = Sketch_1.setVerticalDistance(SketchLine_2.endPoint(), SketchLine_5.endPoint(), "height-clearance")
67 SketchConstraintDistance_4 = Sketch_1.setDistance(SketchLine_2.endPoint(), SketchLine_9.startPoint(), "length", True)
68 SketchConstraintDistance_5 = Sketch_1.setDistance(SketchLine_3.endPoint(), SketchLine_2.result(), "hood_height", True)
69 SketchLine_10 = Sketch_1.addLine(model.selection("EDGE", "PartSet/OX"))
70 SketchConstraintDistance_6 = Sketch_1.setDistance(SketchCircle_2.center(), SketchLine_10.result(), "position", True)
71 SketchPoint_1 = Sketch_1.addPoint(-910.4001854579535, 347.7756213465037)
72 SketchPoint_2 = Sketch_1.addPoint(-910.9041532173604, 297.7781612460398)
73 SketchConstraintDistance_7 = Sketch_1.setDistance(SketchPoint_1.coordinates(), SketchLine_3.result(), 50, True)
74 SketchConstraintDistance_8 = Sketch_1.setDistance(SketchPoint_1.coordinates(), SketchLine_4.result(), 90, True)
75 SketchConstraintDistance_9 = Sketch_1.setDistance(SketchPoint_2.coordinates(), SketchPoint_1.coordinates(), 50, True)
76 SketchConstraintLength_1 = Sketch_1.setLength(SketchLine_1.result(), "length/8")
77 model.do()
78 Extrusion_1 = model.addExtrusion(Part_1_doc, [model.selection("FACE", "Sketch_1/Face-SketchLine_1r-SketchArc_1_2r-SketchLine_9r-SketchLine_8r-SketchLine_7r-SketchLine_6r-SketchLine_5r-SketchLine_4r-SketchArc_3_2f-SketchLine_3r-SketchLine_2r-SketchArc_2_2r")], model.selection(), 500, 0)
79 Extrusion_2 = model.addExtrusion(Part_1_doc, [model.selection("FACE", "Sketch_1/Face-SketchCircle_1_2f"), model.selection("FACE", "Sketch_1/Face-SketchCircle_2_2f")], model.selection(), 500, -400)
80 Extrusion_3 = model.addExtrusion(Part_1_doc, [model.selection("FACE", "Sketch_1/Face-SketchCircle_1_2f"), model.selection("FACE", "Sketch_1/Face-SketchCircle_2_2f")], model.selection(), 100, 0)
81 model.do()
82
83 # Verify point-point distance
84 dist1 = model.distancePointPoint(SketchArc_2.center(), SketchLine_2.startPoint())
85 dist2 = model.distancePointPoint(SketchPoint_1, SketchPoint_2)
86
87 PosParam.setValue(300)
88 model.do()
89 curDist1 = model.distancePointPoint(SketchArc_2.center(), SketchLine_2.startPoint())
90 curDist2 = model.distancePointPoint(SketchPoint_1, SketchPoint_2)
91 assert(math.fabs(dist1 - curDist1) < TOLERANCE), "Expected {}, actual {}".format(dist1, curDist1)
92 assert(math.fabs(dist2 - curDist2) < TOLERANCE), "Expected {}, actual {}".format(dist2, curDist2)
93
94 LengthParam.setValue(2000)
95 model.do()
96 curDist1 = model.distancePointPoint(SketchArc_2.center(), SketchLine_2.startPoint())
97 curDist2 = model.distancePointPoint(SketchPoint_1, SketchPoint_2)
98 assert(math.fabs(dist1 - curDist1) < TOLERANCE), "Expected {}, actual {}".format(dist1, curDist1)
99 assert(math.fabs(dist2 - curDist2) < TOLERANCE), "Expected {}, actual {}".format(dist2, curDist2)
100
101 HeightParam.setValue(1200)
102 model.do()
103 curDist1 = model.distancePointPoint(SketchArc_2.center(), SketchLine_2.startPoint())
104 curDist2 = model.distancePointPoint(SketchPoint_1, SketchPoint_2)
105 assert(math.fabs(dist1 - curDist1) < TOLERANCE), "Expected {}, actual {}".format(dist1, curDist1)
106 assert(math.fabs(dist2 - curDist2) < TOLERANCE), "Expected {}, actual {}".format(dist2, curDist2)
107
108 model.end()