Salome HOME
9b51c9164b48c109f405ecfff7ca4eee979b79ff
[modules/shaper.git] / test.API / SHAPER / Primitives / TestCylinder.py
1 """
2 Test case for Primitive Cylinder feature.
3 Written on High API.
4 """
5 #from ModelAPI import *
6
7 from salome.shaper import model
8
9 model.begin()
10 partSet = model.moduleDocument()
11 Part_1 = model.addPart(partSet)
12 Part_1_doc = Part_1.document()
13
14 # Init
15 Point_1 = model.addPoint(Part_1_doc, 10, 10, 10).result()
16 Vertex_1 = model.addVertex(Part_1_doc, [model.selection("VERTEX", "Point_1")])
17
18 # Sketch
19 Sketch_1 = model.addSketch(Part_1_doc, model.defaultPlane("XOY"))
20 SketchLine_1 = Sketch_1.addLine(40.1917811348149, 87.63526969661267, 92.63493386188256, 31.1341153558487)
21 SketchLine_2 = Sketch_1.addLine(92.63493386188256, 31.1341153558487, 44.70109718071649, 32.40093347950982)
22 SketchLine_3 = Sketch_1.addLine(44.70109718071649, 32.40093347950982, 40.1917811348149, 87.63526969661267)
23 SketchConstraintCoincidence_1 = Sketch_1.setCoincident(SketchLine_1.endPoint(), SketchLine_2.startPoint())
24 SketchConstraintCoincidence_2 = Sketch_1.setCoincident(SketchLine_2.endPoint(), SketchLine_3.startPoint())
25 SketchConstraintCoincidence_3 = Sketch_1.setCoincident(SketchLine_1.startPoint(), SketchLine_3.endPoint())
26 model.do()
27
28 # Extrusion
29 Extrusion_1 = model.addExtrusion(Part_1_doc, [model.selection("FACE", "Sketch_1/Face-SketchLine_1f-SketchLine_2f-SketchLine_3f")], model.selection(), 100, 0)
30 Extrusion_2 = model.addExtrusion(Part_1_doc, [model.selection("WIRE", "Sketch_1/Wire-SketchLine_1f-SketchLine_2f-SketchLine_3f")], model.selection(), 100, 0)
31
32 # Edge
33 Edge_1 = model.addEdge(Part_1_doc, [model.selection("EDGE", "Sketch_1/Edge-SketchLine_2")])
34 Edge_2 = model.addEdge(Part_1_doc, [model.selection("EDGE", "Sketch_1/Edge-SketchLine_3")])
35
36 # Axis
37 Axis_1 = model.addAxis(Part_1_doc, 0, 10, 0)
38
39 # Parameters
40 model.addParameter(Part_1_doc, "r", "6")
41 model.addParameter(Part_1_doc, "h", "20")
42
43 model.addParameter(Part_1_doc, "r2", "6")
44 model.addParameter(Part_1_doc, "h2", "15")
45 model.addParameter(Part_1_doc, "angle", "270")
46
47 #Tests
48 Cylinder_1 = model.addCylinder(Part_1_doc, 5, 10)
49 Cylinder_2 = model.addCylinder(Part_1_doc, model.selection("VERTEX", "Point_1"), model.selection("EDGE", "PartSet/OX"), 5, 10)
50 Cylinder_3 = model.addCylinder(Part_1_doc, model.selection("VERTEX", "Point_1"), model.selection("EDGE", "Axis_1"), 7, 12)
51 Cylinder_4 = model.addCylinder(Part_1_doc, 0, 10)
52 Cylinder_5 = model.addCylinder(Part_1_doc, -5, 10)
53 Cylinder_6 = model.addCylinder(Part_1_doc, 5, 0)
54 Cylinder_7 = model.addCylinder(Part_1_doc, 5, -10)
55 Cylinder_8 = model.addCylinder(Part_1_doc, model.selection("VERTEX", "InvalidName"), model.selection("EDGE", "PartSet/OX"), 5, 10)
56 Cylinder_9 = model.addCylinder(Part_1_doc, model.selection("VERTEX", "PartSet/Origin"), model.selection("EDGE", "InvalidName"), 5, 10)
57 Cylinder_10 = model.addCylinder(Part_1_doc, model.selection("VERTEX", "Sketch_1/Vertex-SketchLine_3s-SketchLine_2e"), model.selection("EDGE", "Sketch_1/Edge-SketchLine_3"), 50, 120)
58 Cylinder_11 = model.addCylinder(Part_1_doc, model.selection("VERTEX", "Vertex_1_1"), model.selection("EDGE", "Edge_1_1"), 60, 100)
59 Cylinder_12 = model.addCylinder(Part_1_doc, model.selection("VERTEX", "Extrusion_1_1/Generated_Face_5&Extrusion_1_1/Generated_Face_1&Extrusion_1_1/To_Face_1"), model.selection("EDGE", "Extrusion_1_1/Generated_Face_3&Extrusion_1_1/To_Face_1"), 5, 10)
60 Cylinder_13 = model.addCylinder(Part_1_doc, "r", "h")
61 Cylinder_14 = model.addCylinder(Part_1_doc, 5, 10, 45)
62 Cylinder_15 = model.addCylinder(Part_1_doc, model.selection("VERTEX", "Point_1"), model.selection("EDGE", "PartSet/OX"), 5, 10, 90)
63 Cylinder_16 = model.addCylinder(Part_1_doc, model.selection("VERTEX", "Point_1"), model.selection("EDGE", "Axis_1"), 7, 12, 120)
64 Cylinder_17 = model.addCylinder(Part_1_doc, model.selection("VERTEX", "Point_1"), model.selection("EDGE", "PartSet/OY"), 5, 10, 360)
65 Cylinder_18 = model.addCylinder(Part_1_doc, 0, 10, 45)
66 Cylinder_19 = model.addCylinder(Part_1_doc, -5, 10, 45)
67 Cylinder_20 = model.addCylinder(Part_1_doc, 5, 0, 45)
68 Cylinder_21 = model.addCylinder(Part_1_doc, 5, -10, 45)
69 Cylinder_22 = model.addCylinder(Part_1_doc, 5, 10, 0)
70 Cylinder_23 = model.addCylinder(Part_1_doc, 5, 10, -45)
71 Cylinder_24 = model.addCylinder(Part_1_doc, 5, 10, 450)
72 Cylinder_25 = model.addCylinder(Part_1_doc, model.selection("VERTEX", "InvalidName"), model.selection("EDGE", "PartSet/OX"), 5, 10, 90)
73 Cylinder_26 = model.addCylinder(Part_1_doc, model.selection("VERTEX", "PartSet/Origin"), model.selection("EDGE", "InvalidName"), 5, 10, 90)
74 Cylinder_27 = model.addCylinder(Part_1_doc, model.selection("VERTEX", "Sketch_1/Vertex-SketchLine_2s-SketchLine_1e"), model.selection("EDGE", "Sketch_1/Edge-SketchLine_3"), 50, 120, 90)
75 Cylinder_28 = model.addCylinder(Part_1_doc, model.selection("VERTEX", "Vertex_1_1"), model.selection("EDGE", "Edge_2_1"), 60, 100, 180)
76 Cylinder_29 = model.addCylinder(Part_1_doc, model.selection("VERTEX", "Extrusion_2_1/Generated_Face_5&Extrusion_1_1/Generated_Face_4&Extrusion_1_1/To_Face_1"), model.selection("EDGE", "Extrusion_2_1/Generated_Face_2&Extrusion_2_1/To_Face_1"), 5, 10, 120)
77 Cylinder_30 = model.addCylinder(Part_1_doc, "r2", "h2", "angle")
78
79 model.do()
80 model.end()
81
82 # Checks
83 from GeomAPI import GeomAPI_Shape
84
85 model.testNbResults(Cylinder_1, 1)
86 model.testNbSubResults(Cylinder_1, [0])
87 model.testNbSubShapes(Cylinder_1, GeomAPI_Shape.SOLID, [1])
88 model.testNbSubShapes(Cylinder_1, GeomAPI_Shape.FACE, [3])
89 model.testHaveNamingFaces(Cylinder_1, model, Part_1_doc)
90
91 model.testNbResults(Cylinder_2, 1)
92 model.testNbSubResults(Cylinder_2, [0])
93 model.testNbSubShapes(Cylinder_2, GeomAPI_Shape.SOLID, [1])
94 model.testNbSubShapes(Cylinder_2, GeomAPI_Shape.FACE, [3])
95 model.testHaveNamingFaces(Cylinder_2, model, Part_1_doc)
96
97 model.testNbResults(Cylinder_3, 1)
98 model.testNbSubResults(Cylinder_3, [0])
99 model.testNbSubShapes(Cylinder_3, GeomAPI_Shape.SOLID, [1])
100 model.testNbSubShapes(Cylinder_3, GeomAPI_Shape.FACE, [3])
101 model.testHaveNamingFaces(Cylinder_3, model, Part_1_doc)
102
103 model.testNbResults(Cylinder_10, 1)
104 model.testNbSubResults(Cylinder_10, [0])
105 model.testNbSubShapes(Cylinder_10, GeomAPI_Shape.SOLID, [1])
106 model.testNbSubShapes(Cylinder_10, GeomAPI_Shape.FACE, [3])
107 model.testHaveNamingFaces(Cylinder_10, model, Part_1_doc)
108
109 model.testNbResults(Cylinder_11, 1)
110 model.testNbSubResults(Cylinder_11, [0])
111 model.testNbSubShapes(Cylinder_11, GeomAPI_Shape.SOLID, [1])
112 model.testNbSubShapes(Cylinder_11, GeomAPI_Shape.FACE, [3])
113 model.testHaveNamingFaces(Cylinder_11, model, Part_1_doc)
114
115 model.testNbResults(Cylinder_12, 1)
116 model.testNbSubResults(Cylinder_12, [0])
117 model.testNbSubShapes(Cylinder_12, GeomAPI_Shape.SOLID, [1])
118 model.testNbSubShapes(Cylinder_12, GeomAPI_Shape.FACE, [3])
119 model.testHaveNamingFaces(Cylinder_12, model, Part_1_doc)
120
121 model.testNbResults(Cylinder_13, 1)
122 model.testNbSubResults(Cylinder_13, [0])
123 model.testNbSubShapes(Cylinder_13, GeomAPI_Shape.SOLID, [1])
124 model.testNbSubShapes(Cylinder_13, GeomAPI_Shape.FACE, [3])
125 model.testHaveNamingFaces(Cylinder_13, model, Part_1_doc)
126
127 model.testNbResults(Cylinder_14, 1)
128 model.testNbSubResults(Cylinder_14, [0])
129 model.testNbSubShapes(Cylinder_14, GeomAPI_Shape.SOLID, [1])
130 model.testNbSubShapes(Cylinder_14, GeomAPI_Shape.FACE, [5])
131 model.testHaveNamingFaces(Cylinder_14, model, Part_1_doc)
132
133 model.testNbResults(Cylinder_15, 1)
134 model.testNbSubResults(Cylinder_15, [0])
135 model.testNbSubShapes(Cylinder_15, GeomAPI_Shape.SOLID, [1])
136 model.testNbSubShapes(Cylinder_15, GeomAPI_Shape.FACE, [5])
137 model.testHaveNamingFaces(Cylinder_15, model, Part_1_doc)
138
139 model.testNbResults(Cylinder_16, 1)
140 model.testNbSubResults(Cylinder_16, [0])
141 model.testNbSubShapes(Cylinder_16, GeomAPI_Shape.SOLID, [1])
142 model.testNbSubShapes(Cylinder_16, GeomAPI_Shape.FACE, [5])
143 model.testHaveNamingFaces(Cylinder_16, model, Part_1_doc)
144
145 model.testNbResults(Cylinder_17, 1)
146 model.testNbSubResults(Cylinder_17, [0])
147 model.testNbSubShapes(Cylinder_17, GeomAPI_Shape.SOLID, [1])
148 model.testNbSubShapes(Cylinder_17, GeomAPI_Shape.FACE, [3])
149 model.testHaveNamingFaces(Cylinder_17, model, Part_1_doc)
150
151 model.testNbResults(Cylinder_27, 1)
152 model.testNbSubResults(Cylinder_27, [0])
153 model.testNbSubShapes(Cylinder_27, GeomAPI_Shape.SOLID, [1])
154 model.testNbSubShapes(Cylinder_27, GeomAPI_Shape.FACE, [5])
155 model.testHaveNamingFaces(Cylinder_27, model, Part_1_doc)
156
157 model.testNbResults(Cylinder_28, 1)
158 model.testNbSubResults(Cylinder_28, [0])
159 model.testNbSubShapes(Cylinder_28, GeomAPI_Shape.SOLID, [1])
160 model.testNbSubShapes(Cylinder_28, GeomAPI_Shape.FACE, [5])
161 model.testHaveNamingFaces(Cylinder_28, model, Part_1_doc)
162
163 model.testNbResults(Cylinder_29, 1)
164 model.testNbSubResults(Cylinder_29, [0])
165 model.testNbSubShapes(Cylinder_29, GeomAPI_Shape.SOLID, [1])
166 model.testNbSubShapes(Cylinder_29, GeomAPI_Shape.FACE, [5])
167 model.testHaveNamingFaces(Cylinder_29, model, Part_1_doc)
168
169 model.testNbResults(Cylinder_30, 1)
170 model.testNbSubResults(Cylinder_30, [0])
171 model.testNbSubShapes(Cylinder_30, GeomAPI_Shape.SOLID, [1])
172 model.testNbSubShapes(Cylinder_30, GeomAPI_Shape.FACE, [5])
173 model.testHaveNamingFaces(Cylinder_30, model, Part_1_doc)
174
175 model.testNbResults(Cylinder_4, 0)
176 assert(Cylinder_4.feature().error() == "Cylinder builder :: radius is negative or null.")
177
178 model.testNbResults(Cylinder_5, 0)
179 assert(Cylinder_5.feature().error() == "Cylinder builder :: radius is negative or null.")
180
181 model.testNbResults(Cylinder_6, 0)
182 assert(Cylinder_6.feature().error() == "Cylinder builder :: height is negative or null.")
183
184 model.testNbResults(Cylinder_7, 0)
185 assert(Cylinder_7.feature().error() == "Cylinder builder :: height is negative or null.")
186
187 # To uncomment when #2044 will be performed.
188 #model.testNbResults(Cylinder_8, 0)
189 #assert(Cylinder_8.feature().error() == "Attribute \"base_point\" is not initialized")
190
191 # To uncomment when #2044 will be performed.
192 #model.testNbResults(Cylinder_9, 0)
193 #assert(Cylinder_9.feature().error() == "Attribute \"axis\" is not initialized")
194
195 model.testNbResults(Cylinder_18, 0)
196 assert(Cylinder_18.feature().error() == "Cylinder builder :: radius is negative or null.")
197
198 model.testNbResults(Cylinder_19, 0)
199 assert(Cylinder_19.feature().error() == "Cylinder builder :: radius is negative or null.")
200
201 model.testNbResults(Cylinder_20, 0)
202 assert(Cylinder_20.feature().error() == "Cylinder builder :: height is negative or null.")
203
204 model.testNbResults(Cylinder_21, 0)
205 assert(Cylinder_21.feature().error() == "Cylinder builder :: height is negative or null.")
206
207 model.testNbResults(Cylinder_22, 0)
208 assert(Cylinder_22.feature().error() == "Cylinder builder :: angle is negative or null.")
209
210 model.testNbResults(Cylinder_23, 0)
211 assert(Cylinder_23.feature().error() == "Cylinder builder :: angle is negative or null.")
212
213 model.testNbResults(Cylinder_24, 0)
214 assert(Cylinder_24.feature().error() == "Cylinder builder :: angle greater than 360 degrees.")
215
216 # To uncomment when #2044 will be performed.
217 #model.testNbResults(Cylinder_25, 0)
218 #assert(Cylinder_25.feature().error() == "Attribute \"base_point\" is not initialized")
219
220 # To uncomment when #2044 will be performed.
221 #model.testNbResults(Cylinder_26, 0)
222 #assert(Cylinder_26.feature().error() == "Attribute \"axis\" is not initialized")