Salome HOME
b1afa6e610e86693617bece4208efbea650a161b
[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
27 # Extrusion
28 Extrusion_1 = model.addExtrusion(Part_1_doc, [model.selection("FACE", "Sketch_1/Face-SketchLine_1f-SketchLine_2f-SketchLine_3f")], model.selection(), 100, 0)
29 Extrusion_2 = model.addExtrusion(Part_1_doc, [model.selection("WIRE", "Sketch_1/Wire-SketchLine_1f-SketchLine_2f-SketchLine_3f")], model.selection(), 100, 0)
30
31 # Edge
32 Edge_1 = model.addEdge(Part_1_doc, [model.selection("EDGE", "Sketch_1/Edge-SketchLine_2")])
33 Edge_2 = model.addEdge(Part_1_doc, [model.selection("EDGE", "Sketch_1/Edge-SketchLine_3")])
34
35 # Axis
36 Axis_1 = model.addAxis(Part_1_doc, 0, 10, 0)
37
38 # Parameters
39 model.addParameter(Part_1_doc, "r", "6")
40 model.addParameter(Part_1_doc, "h", "20")
41
42 model.addParameter(Part_1_doc, "r2", "6")
43 model.addParameter(Part_1_doc, "h2", "15")
44 model.addParameter(Part_1_doc, "angle", "270")
45
46 #Tests
47 Cylinder_1 = model.addCylinder(Part_1_doc, 5, 10)
48 Cylinder_2 = model.addCylinder(Part_1_doc, model.selection("VERTEX", "Point_1"), model.selection("EDGE", "PartSet/OX"), 5, 10)
49 Cylinder_3 = model.addCylinder(Part_1_doc, model.selection("VERTEX", "Point_1"), model.selection("EDGE", "Axis_1"), 7, 12)
50 Cylinder_4 = model.addCylinder(Part_1_doc, 0, 10)
51 Cylinder_5 = model.addCylinder(Part_1_doc, -5, 10)
52 Cylinder_6 = model.addCylinder(Part_1_doc, 5, 0)
53 Cylinder_7 = model.addCylinder(Part_1_doc, 5, -10)
54 Cylinder_8 = model.addCylinder(Part_1_doc, model.selection("VERTEX", "InvalidName"), model.selection("EDGE", "PartSet/OX"), 5, 10)
55 Cylinder_9 = model.addCylinder(Part_1_doc, model.selection("VERTEX", "PartSet/Origin"), model.selection("EDGE", "InvalidName"), 5, 10)
56 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)
57 Cylinder_11 = model.addCylinder(Part_1_doc, model.selection("VERTEX", "Vertex_1_1"), model.selection("EDGE", "Edge_1_1"), 60, 100)
58 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)
59 Cylinder_13 = model.addCylinder(Part_1_doc, "r", "h")
60 Cylinder_14 = model.addCylinder(Part_1_doc, 5, 10, 45)
61 Cylinder_15 = model.addCylinder(Part_1_doc, model.selection("VERTEX", "Point_1"), model.selection("EDGE", "PartSet/OX"), 5, 10, 90)
62 Cylinder_16 = model.addCylinder(Part_1_doc, model.selection("VERTEX", "Point_1"), model.selection("EDGE", "Axis_1"), 7, 12, 120)
63 Cylinder_17 = model.addCylinder(Part_1_doc, model.selection("VERTEX", "Point_1"), model.selection("EDGE", "PartSet/OY"), 5, 10, 360)
64 Cylinder_18 = model.addCylinder(Part_1_doc, 0, 10, 45)
65 Cylinder_19 = model.addCylinder(Part_1_doc, -5, 10, 45)
66 Cylinder_20 = model.addCylinder(Part_1_doc, 5, 0, 45)
67 Cylinder_21 = model.addCylinder(Part_1_doc, 5, -10, 45)
68 Cylinder_22 = model.addCylinder(Part_1_doc, 5, 10, 0)
69 Cylinder_23 = model.addCylinder(Part_1_doc, 5, 10, -45)
70 Cylinder_24 = model.addCylinder(Part_1_doc, 5, 10, 450)
71 Cylinder_25 = model.addCylinder(Part_1_doc, model.selection("VERTEX", "InvalidName"), model.selection("EDGE", "PartSet/OX"), 5, 10, 90)
72 Cylinder_26 = model.addCylinder(Part_1_doc, model.selection("VERTEX", "PartSet/Origin"), model.selection("EDGE", "InvalidName"), 5, 10, 90)
73 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)
74 Cylinder_28 = model.addCylinder(Part_1_doc, model.selection("VERTEX", "Vertex_1_1"), model.selection("EDGE", "Edge_2_1"), 60, 100, 180)
75 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)
76 Cylinder_30 = model.addCylinder(Part_1_doc, "r2", "h2", "angle")
77
78 model.do()
79 model.end()
80
81 # Checks
82 from GeomAPI import GeomAPI_Shape
83
84 model.testNbResults(Cylinder_1, 1)
85 model.testNbSubResults(Cylinder_1, [0])
86 model.testNbSubShapes(Cylinder_1, GeomAPI_Shape.SOLID, [1])
87 model.testNbSubShapes(Cylinder_1, GeomAPI_Shape.FACE, [3])
88 model.testHaveNamingFaces(Cylinder_1, model, Part_1_doc)
89
90 model.testNbResults(Cylinder_2, 1)
91 model.testNbSubResults(Cylinder_2, [0])
92 model.testNbSubShapes(Cylinder_2, GeomAPI_Shape.SOLID, [1])
93 model.testNbSubShapes(Cylinder_2, GeomAPI_Shape.FACE, [3])
94 model.testHaveNamingFaces(Cylinder_2, model, Part_1_doc)
95
96 model.testNbResults(Cylinder_3, 1)
97 model.testNbSubResults(Cylinder_3, [0])
98 model.testNbSubShapes(Cylinder_3, GeomAPI_Shape.SOLID, [1])
99 model.testNbSubShapes(Cylinder_3, GeomAPI_Shape.FACE, [3])
100 model.testHaveNamingFaces(Cylinder_3, model, Part_1_doc)
101
102 model.testNbResults(Cylinder_10, 1)
103 model.testNbSubResults(Cylinder_10, [0])
104 model.testNbSubShapes(Cylinder_10, GeomAPI_Shape.SOLID, [1])
105 model.testNbSubShapes(Cylinder_10, GeomAPI_Shape.FACE, [3])
106 model.testHaveNamingFaces(Cylinder_10, model, Part_1_doc)
107
108 model.testNbResults(Cylinder_11, 1)
109 model.testNbSubResults(Cylinder_11, [0])
110 model.testNbSubShapes(Cylinder_11, GeomAPI_Shape.SOLID, [1])
111 model.testNbSubShapes(Cylinder_11, GeomAPI_Shape.FACE, [3])
112 model.testHaveNamingFaces(Cylinder_11, model, Part_1_doc)
113
114 model.testNbResults(Cylinder_12, 1)
115 model.testNbSubResults(Cylinder_12, [0])
116 model.testNbSubShapes(Cylinder_12, GeomAPI_Shape.SOLID, [1])
117 model.testNbSubShapes(Cylinder_12, GeomAPI_Shape.FACE, [3])
118 model.testHaveNamingFaces(Cylinder_12, model, Part_1_doc)
119
120 model.testNbResults(Cylinder_13, 1)
121 model.testNbSubResults(Cylinder_13, [0])
122 model.testNbSubShapes(Cylinder_13, GeomAPI_Shape.SOLID, [1])
123 model.testNbSubShapes(Cylinder_13, GeomAPI_Shape.FACE, [3])
124 model.testHaveNamingFaces(Cylinder_13, model, Part_1_doc)
125
126 model.testNbResults(Cylinder_14, 1)
127 model.testNbSubResults(Cylinder_14, [0])
128 model.testNbSubShapes(Cylinder_14, GeomAPI_Shape.SOLID, [1])
129 model.testNbSubShapes(Cylinder_14, GeomAPI_Shape.FACE, [5])
130 model.testHaveNamingFaces(Cylinder_14, model, Part_1_doc)
131
132 model.testNbResults(Cylinder_15, 1)
133 model.testNbSubResults(Cylinder_15, [0])
134 model.testNbSubShapes(Cylinder_15, GeomAPI_Shape.SOLID, [1])
135 model.testNbSubShapes(Cylinder_15, GeomAPI_Shape.FACE, [5])
136 model.testHaveNamingFaces(Cylinder_15, model, Part_1_doc)
137
138 model.testNbResults(Cylinder_16, 1)
139 model.testNbSubResults(Cylinder_16, [0])
140 model.testNbSubShapes(Cylinder_16, GeomAPI_Shape.SOLID, [1])
141 model.testNbSubShapes(Cylinder_16, GeomAPI_Shape.FACE, [5])
142 model.testHaveNamingFaces(Cylinder_16, model, Part_1_doc)
143
144 model.testNbResults(Cylinder_17, 1)
145 model.testNbSubResults(Cylinder_17, [0])
146 model.testNbSubShapes(Cylinder_17, GeomAPI_Shape.SOLID, [1])
147 model.testNbSubShapes(Cylinder_17, GeomAPI_Shape.FACE, [3])
148 model.testHaveNamingFaces(Cylinder_17, model, Part_1_doc)
149
150 model.testNbResults(Cylinder_27, 1)
151 model.testNbSubResults(Cylinder_27, [0])
152 model.testNbSubShapes(Cylinder_27, GeomAPI_Shape.SOLID, [1])
153 model.testNbSubShapes(Cylinder_27, GeomAPI_Shape.FACE, [5])
154 model.testHaveNamingFaces(Cylinder_27, model, Part_1_doc)
155
156 model.testNbResults(Cylinder_28, 1)
157 model.testNbSubResults(Cylinder_28, [0])
158 model.testNbSubShapes(Cylinder_28, GeomAPI_Shape.SOLID, [1])
159 model.testNbSubShapes(Cylinder_28, GeomAPI_Shape.FACE, [5])
160 model.testHaveNamingFaces(Cylinder_28, model, Part_1_doc)
161
162 model.testNbResults(Cylinder_29, 1)
163 model.testNbSubResults(Cylinder_29, [0])
164 model.testNbSubShapes(Cylinder_29, GeomAPI_Shape.SOLID, [1])
165 model.testNbSubShapes(Cylinder_29, GeomAPI_Shape.FACE, [5])
166 model.testHaveNamingFaces(Cylinder_29, model, Part_1_doc)
167
168 model.testNbResults(Cylinder_30, 1)
169 model.testNbSubResults(Cylinder_30, [0])
170 model.testNbSubShapes(Cylinder_30, GeomAPI_Shape.SOLID, [1])
171 model.testNbSubShapes(Cylinder_30, GeomAPI_Shape.FACE, [5])
172 model.testHaveNamingFaces(Cylinder_30, model, Part_1_doc)
173
174 model.testNbResults(Cylinder_4, 0)
175 assert(Cylinder_4.feature().error() == "Cylinder builder :: radius is negative or null.")
176
177 model.testNbResults(Cylinder_5, 0)
178 assert(Cylinder_5.feature().error() == "Cylinder builder :: radius is negative or null.")
179
180 model.testNbResults(Cylinder_6, 0)
181 assert(Cylinder_6.feature().error() == "Cylinder builder :: height is negative or null.")
182
183 model.testNbResults(Cylinder_7, 0)
184 assert(Cylinder_7.feature().error() == "Cylinder builder :: height is negative or null.")
185
186 # To uncomment when #2044 will be performed.
187 #model.testNbResults(Cylinder_8, 0)
188 #assert(Cylinder_8.feature().error() == "Attribute \"base_point\" is not initialized")
189
190 # To uncomment when #2044 will be performed.
191 #model.testNbResults(Cylinder_9, 0)
192 #assert(Cylinder_9.feature().error() == "Attribute \"axis\" is not initialized")
193
194 model.testNbResults(Cylinder_18, 0)
195 assert(Cylinder_18.feature().error() == "Cylinder builder :: radius is negative or null.")
196
197 model.testNbResults(Cylinder_19, 0)
198 assert(Cylinder_19.feature().error() == "Cylinder builder :: radius is negative or null.")
199
200 model.testNbResults(Cylinder_20, 0)
201 assert(Cylinder_20.feature().error() == "Cylinder builder :: height is negative or null.")
202
203 model.testNbResults(Cylinder_21, 0)
204 assert(Cylinder_21.feature().error() == "Cylinder builder :: height is negative or null.")
205
206 model.testNbResults(Cylinder_22, 0)
207 assert(Cylinder_22.feature().error() == "Cylinder builder :: angle is negative or null.")
208
209 model.testNbResults(Cylinder_23, 0)
210 assert(Cylinder_23.feature().error() == "Cylinder builder :: angle is negative or null.")
211
212 model.testNbResults(Cylinder_24, 0)
213 assert(Cylinder_24.feature().error() == "Cylinder builder :: angle greater than 360 degrees.")
214
215 # To uncomment when #2044 will be performed.
216 #model.testNbResults(Cylinder_25, 0)
217 #assert(Cylinder_25.feature().error() == "Attribute \"base_point\" is not initialized")
218
219 # To uncomment when #2044 will be performed.
220 #model.testNbResults(Cylinder_26, 0)
221 #assert(Cylinder_26.feature().error() == "Attribute \"axis\" is not initialized")