Salome HOME
d86134499dd580171be47a8a31a1910e18b97af3
[modules/shaper.git] / src / ModelAPI / Test / Test26745.py
1 #!/usr/bin/env python
2
3 # Copyright (C) 2014-2022  CEA/DEN, EDF R&D
4 #
5 # This library is free software; you can redistribute it and/or
6 # modify it under the terms of the GNU Lesser General Public
7 # License as published by the Free Software Foundation; either
8 # version 2.1 of the License, or (at your option) any later version.
9 #
10 # This library is distributed in the hope that it will be useful,
11 # but WITHOUT ANY WARRANTY; without even the implied warranty of
12 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
13 # Lesser General Public License for more details.
14 #
15 # You should have received a copy of the GNU Lesser General Public
16 # License along with this library; if not, write to the Free Software
17 # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
18 #
19 # See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
20 #
21
22 from salome.shaper import model
23
24 model.begin()
25 partSet = model.moduleDocument()
26
27 ### Create Part
28 Part_1 = model.addPart(partSet)
29 Part_1_doc = Part_1.document()
30 model.addParameter(Part_1_doc, "EP_MIN", '0.001')
31 model.addParameter(Part_1_doc, "tube_r", '0.25')
32 model.addParameter(Part_1_doc, "tube_l", '1.0')
33 model.addParameter(Part_1_doc, "rugo_r_min", '0.005')
34 model.addParameter(Part_1_doc, "rugo_r_max", '0.1')
35
36 ### Create Sphere
37 Sphere_1 = model.addSphere(Part_1_doc, model.selection("VERTEX", "PartSet/Origin"), "rugo_r_max")
38 Sphere_1.setName("base")
39 Sphere_1.result().setName("Sphere_1_1")
40
41 ### Create Rotation
42 Rotation_1 = model.addRotation(Part_1_doc, [model.selection("COMPOUND", "all-in-base")], axis = model.selection("EDGE", "PartSet/OX"), angle = 90, keepSubResults = True)
43 Rotation_1.result().setName("Rotation_1_1")
44
45 ### Create Plane
46 Plane_4 = model.addPlane(Part_1_doc, model.selection("FACE", "PartSet/XOY"), "- 0.6*rugo_r_max", False)
47 Plane_4.result().setName("plan_partition")
48
49 ### Create Partition
50 Partition_1 = model.addPartition(Part_1_doc, [model.selection("COMPOUND", "all-in-Rotation_1"), model.selection("FACE", "plan_partition")], keepSubResults = True)
51
52 ### Create Partition
53 Partition_2_objects = [model.selection("SOLID", "Partition_1_1_1"),
54                        model.selection("FACE", "PartSet/YOZ"),
55                        model.selection("FACE", "PartSet/XOZ")]
56 Partition_2 = model.addPartition(Part_1_doc, Partition_2_objects, keepSubResults = True)
57 Partition_2.setName("PARTITION")
58 Partition_2.result().setName("PARTITION")
59 Partition_2.result().subResult(0).setName("Partition_2_1_1")
60 Partition_2.result().subResult(1).setName("Partition_2_1_2")
61 Partition_2.result().subResult(2).setName("Partition_2_1_3")
62 Partition_2.result().subResult(3).setName("Partition_2_1_4")
63 Partition_2.result().subResult(4).setName("Partition_2_1_5")
64
65 ### Create Translation
66 Translation_1 = model.addTranslation(Part_1_doc, [model.selection("COMPOUND", "all-in-PARTITION")], vector = ["tube_l*0.5", 0, "tube_r+EP_MIN"], keepSubResults = True)
67 Translation_1.setName("RUGO")
68 Translation_1.result().setName("RUGO")
69 Translation_1.result().subResult(0).setName("Translation_1_1_1")
70 Translation_1.result().subResult(0).subResult(0).setName("Translation_1_1_1_1")
71 Translation_1.result().subResult(0).subResult(1).setName("Translation_1_1_1_2")
72 Translation_1.result().subResult(0).subResult(2).setName("Translation_1_1_1_3")
73 Translation_1.result().subResult(0).subResult(3).setName("Translation_1_1_1_4")
74 Translation_1.result().subResult(0).subResult(4).setName("Translation_1_1_1_5")
75
76 ### Create Cylinder
77 Cylinder_1 = model.addCylinder(Part_1_doc, model.selection("VERTEX", "PartSet/Origin"), model.selection("EDGE", "PartSet/OX"), "tube_r", "tube_l")
78 Cylinder_1.setName("tube_sain")
79 Cylinder_1.result().setName("tube_sain")
80
81 ### Create Cut
82 Cut_1 = model.addCut(Part_1_doc, [model.selection("COMPOUND", "all-in-tube_sain")], [model.selection("COMPOUND", "all-in-RUGO")], keepSubResults = True)
83 Cut_1.result().setTransparency(0.7)
84
85 ### Create Extrusion
86 Extrusion_1_objects = [model.selection("EDGE", "Translation_1_1_1_5/ME:Translated&plan_partition/plan_partition&Sphere_1_1/Face_1&new_weak_name_1"),
87                        model.selection("EDGE", "Translation_1_1_1_5/ME:Translated&plan_partition/plan_partition&Sphere_1_1/Face_1&new_weak_name_2"),
88                        model.selection("EDGE", "Translation_1_1_1_5/ME:Translated&plan_partition/plan_partition&Sphere_1_1/Face_1&new_weak_name_4"),
89                        model.selection("EDGE", "Translation_1_1_1_5/ME:Translated&plan_partition/plan_partition&Sphere_1_1/Face_1&new_weak_name_3")]
90 Extrusion_1 = model.addExtrusion(Part_1_doc, Extrusion_1_objects, model.selection("EDGE", "PartSet/OZ"), 0, "2.*tube_r")
91
92 ### Create Recover
93 Recover_1 = model.addRecover(Part_1_doc, Extrusion_1, [Cut_1.result()])
94
95 ### Create Common
96 Common_1 = model.addCommon(Part_1_doc, [model.selection("COMPOUND", "all-in-Extrusion_1"), model.selection("COMPOUND", "all-in-Recover_1")], keepSubResults = True)
97 Common_1.result().subResult(0).setName("Common_1_1_1")
98 Common_1.result().subResult(1).setName("Common_1_1_2")
99 Common_1.result().subResult(2).setName("Common_1_1_3")
100 Common_1.result().subResult(3).setName("Common_1_1_4")
101
102 ### Create Recover
103 Recover_2 = model.addRecover(Part_1_doc, Common_1, [Recover_1.result()])
104
105 ### Create Partition
106 Partition_3 = model.addPartition(Part_1_doc, [model.selection("COMPOUND", "all-in-Common_1"), model.selection("COMPOUND", "all-in-Recover_2")], keepSubResults = True)
107 Partition_3.result().setTransparency(0.53)
108 Partition_3.result().subResult(0).setName("Partition_3_1_1")
109 Partition_3.result().subResult(1).setName("Partition_3_1_2")
110
111 ### Create Extrusion
112 Extrusion_2_objects = [model.selection("EDGE", "(Partition_3_1_1/Modified_Edge&plan_partition/plan_partition&Sphere_1_1/Face_1&__tube_sain/To_Edge)(Partition_3_1_1/Modified_Edge&plan_partition/plan_partition&Sphere_1_1/Face_1&tube_sain_4/To_Edge)(Common_1_1_4/Generated_Edge&____tube_sain/Face_1&plan_partition/plan_partition&Sphere_1_1/Face_1)2(Common_1_1_1/Generated_Edge&____tube_sain/Face_1&plan_partition/plan_partition&Sphere_1_1/Face_1)2(Partition_3_1_1/Modified_Edge&plan_partition/plan_partition&Sphere_1_1/Face_1&tube_sain_3/To_Edge)2(Partition_3_1_1/Modified_Edge&plan_partition/plan_partition&Sphere_1_1/Face_1&tube_sain_2/To_Edge)2"),
113                        model.selection("EDGE", "[Partition_3_1_2/Modified_Face&plan_partition/plan_partition&Sphere_1_1/Face_1&new_weak_name_1][Partition_3_1_2/Modified_Face&plan_partition/plan_partition&Sphere_1_1/Face_1&new_weak_name_3]"),
114                        model.selection("EDGE", "(Partition_3_1_1/Modified_Edge&plan_partition/plan_partition&Sphere_1_1/Face_1&tube_sain_3/To_Edge)(Partition_3_1_1/Modified_Edge&plan_partition/plan_partition&Sphere_1_1/Face_1&tube_sain_2/To_Edge)(Partition_3_1_1/Modified_Edge&PartSet/YOZ/YOZ&plan_partition/plan_partition&Sphere_1_1/Face_1)"),
115                        model.selection("EDGE", "Partition_3_1_2/Modified_Edge&PartSet/YOZ/YOZ&plan_partition/plan_partition&Sphere_1_1/Face_1")]
116 Extrusion_2 = model.addExtrusion(Part_1_doc, Extrusion_2_objects, model.selection("EDGE", "PartSet/OX"), "tube_l", "tube_l")
117
118 ### Create Recover
119 Recover_3 = model.addRecover(Part_1_doc, Extrusion_2, [Partition_3.result()], True)
120
121 ### Create Common
122 Common_2 = model.addCommon(Part_1_doc, [model.selection("COMPOUND", "all-in-Extrusion_2"), model.selection("COMPOUND", "all-in-Recover_3")], keepSubResults = True)
123 Common_2.result().subResult(0).setName("Common_2_1_1")
124 Common_2.result().subResult(1).setName("Common_2_1_2")
125 Common_2.result().subResult(2).setName("Common_2_1_3")
126 Common_2.result().subResult(3).setName("Common_2_1_4")
127 Common_2.result().subResult(4).setName("Common_2_1_5")
128 Common_2.result().subResult(5).setName("Common_2_1_6")
129 Common_2.result().subResult(6).setName("Common_2_1_7")
130 Common_2.result().subResult(7).setName("Common_2_1_8")
131
132 ### Create Recover
133 Recover_4 = model.addRecover(Part_1_doc, Common_2, [Recover_3.result()])
134
135 ### Create Partition
136 Partition_4 = model.addPartition(Part_1_doc, [model.selection("COMPOUND", "all-in-Common_2"), model.selection("COMPOUND", "all-in-Recover_4")], keepSubResults = True)
137 Partition_4.result().setTransparency(0.67)
138 Partition_4.result().subResult(0).setName("Partition_4_1_1")
139 Partition_4.result().subResult(1).setName("Partition_4_1_2")
140 Partition_4.result().subResult(2).setName("Partition_4_1_3")
141 Partition_4.result().subResult(3).setName("Partition_4_1_4")
142 Partition_4.result().subResult(4).setName("Partition_4_1_5")
143
144 ### Create Extrusion
145 Extrusion_3 = model.addExtrusion(Part_1_doc, [model.selection("EDGE", "(Partition_4_1_1/Modified_Edge&plan_partition/plan_partition&Sphere_1_1/Face_1&_tube_sain_3/To_Edge)(Partition_4_1_1/Modified_Edge&plan_partition/plan_partition&Sphere_1_1/Face_1&_tube_sain_4/To_Edge)(Common_2_1_6/Generated_Edge&_______tube_sain/Face_2&PartSet/YOZ/YOZ&Sphere_1_1/Face_1)3(Common_2_1_8/Generated_Edge&_______tube_sain/Face_2&PartSet/YOZ/YOZ&plan_partition/plan_partition&Sphere_1_1/Face_1)3(Common_2_1_4/Generated_Edge&_______tube_sain/Face_2&tube_sain_2/tube_sain_2)3(Common_2_1_2/Generated_Edge&_______tube_sain/Face_2&PartSet/YOZ/YOZ&Sphere_1_1/Face_1)3(Partition_4_1_1/Modified_Edge&_______tube_sain/Face_1&PartSet/YOZ/YOZ&plan_partition/plan_partition&Sphere_1_1/Face_1)3"), model.selection("EDGE", "(Partition_4_1_5/Modified_Edge&plan_partition/plan_partition&Sphere_1_1/Face_1&_tube_sain_4/To_Edge)(Partition_4_1_5/Modified_Edge&plan_partition/plan_partition&Sphere_1_1/Face_1&_tube_sain_3/To_Edge)")], model.selection("EDGE", "PartSet/OX"), "tube_l", 0)
146
147 ### Create Recover
148 Recover_5 = model.addRecover(Part_1_doc, Extrusion_3, [Partition_4.result()], True)
149
150 ### Create Common
151 Common_3 = model.addCommon(Part_1_doc, [model.selection("COMPOUND", "all-in-Extrusion_3"), model.selection("COMPOUND", "all-in-Recover_5")], keepSubResults = True)
152 Common_3.result().subResult(0).setName("Common_3_1_1")
153 Common_3.result().subResult(1).setName("Common_3_1_2")
154
155 ### Create Recover
156 Recover_6 = model.addRecover(Part_1_doc, Common_3, [Recover_5.result()], True)
157
158 ### Create Partition
159 Partition_5 = model.addPartition(Part_1_doc, [model.selection("COMPOUND", "all-in-Common_3"), model.selection("COMPOUND", "all-in-Recover_6")], keepSubResults = True)
160 Partition_5.result().setTransparency(0.72)
161 Partition_5.result().subResult(0).setName("Partition_5_1_1")
162 Partition_5.result().subResult(1).setName("Partition_5_1_2")
163 Partition_5.result().subResult(2).setName("Partition_5_1_3")
164 Partition_5.result().subResult(3).setName("Partition_5_1_4")
165 Partition_5.result().subResult(4).setName("Partition_5_1_5")
166 Partition_5.result().subResult(5).setName("Partition_5_1_6")
167
168 ### Create Extrusion
169 Extrusion_4 = model.addExtrusion(Part_1_doc, [model.selection("EDGE", "(Recover_6_1_3/Modified_Edge&plan_partition/plan_partition&Sphere_1_1/Face_1&__tube_sain_2/To_Edge)(Recover_6_1_3/Modified_Edge&plan_partition/plan_partition&Sphere_1_1/Face_1&________tube_sain/To_Edge)(Recover_6_1_3/Modified_Edge&PartSet/XOZ/XOZ&plan_partition/plan_partition&Sphere_1_1/Face_1)"), model.selection("EDGE", "Recover_6_1_3/Modified_Edge&PartSet/XOZ/XOZ&plan_partition/plan_partition&Sphere_1_1/Face_1")], model.selection("EDGE", "PartSet/OX"), 0, "tube_l")
170
171 ### Create Common
172 Common_4 = model.addCommon(Part_1_doc, [model.selection("COMPOUND", "all-in-Partition_5"), model.selection("COMPOUND", "all-in-Extrusion_4")], keepSubResults = True)
173 Common_4.result().subResult(0).setName("Common_4_1_1")
174 Common_4.result().subResult(1).setName("Common_4_1_2")
175
176 ### Create Recover
177 Recover_7 = model.addRecover(Part_1_doc, Common_4, [Partition_5.result()], True)
178
179 ### Create Partition
180 Partition_6 = model.addPartition(Part_1_doc, [model.selection("COMPOUND", "all-in-Common_4"), model.selection("COMPOUND", "all-in-Recover_7")], keepSubResults = True)
181 Partition_6.result().setTransparency(0.72)
182 Partition_6.result().subResult(0).setName("Partition_6_1_1")
183 Partition_6.result().subResult(1).setName("Partition_6_1_2")
184 Partition_6.result().subResult(2).setName("Partition_6_1_3")
185 Partition_6.result().subResult(3).setName("Partition_6_1_4")
186 Partition_6.result().subResult(4).setName("Partition_6_1_5")
187 Partition_6.result().subResult(5).setName("Partition_6_1_6")
188 Partition_6.result().subResult(6).setName("Partition_6_1_7")
189
190 ### Create Plane
191 Plane_5 = model.addPlane(Part_1_doc, model.selection("VERTEX", "Recover_7_1_5/Modified_Vertex&_____________tube_sain/Face_3"), model.selection("VERTEX", "Recover_7_1_3/Modified_Vertex&_____________tube_sain/Face_3"), model.selection("VERTEX", "Recover_7_1_1/Modified_Vertex&_____________tube_sain/Face_2&new_weak_name_1"))
192
193 ### Create Sketch
194 Sketch_1 = model.addSketch(Part_1_doc, model.selection("FACE", "Plane_2"))
195
196 ### Create SketchLine
197 SketchLine_1 = Sketch_1.addLine(0, -0.08, 1, -0.08)
198 Sketch_1.setHorizontal(SketchLine_1.result())
199
200 ### Create SketchProjection
201 SketchProjection_1 = Sketch_1.addProjection(model.selection("VERTEX", "Recover_7_1_1/Modified_Vertex&_____________tube_sain/Face_2&new_weak_name_2"), False)
202 SketchPoint_1 = SketchProjection_1.createdFeature()
203 Sketch_1.setCoincident(SketchLine_1.endPoint(), SketchPoint_1.result())
204
205 ### Create SketchLine
206 SketchLine_2 = Sketch_1.addLine(1, -0.08, 1, 0.08)
207 Sketch_1.setVertical(SketchLine_2.result())
208
209 ### Create SketchLine
210 SketchLine_3 = Sketch_1.addLine(1, 0.08, 0, 0.08)
211 Sketch_1.setHorizontal(SketchLine_3.result())
212
213 ### Create SketchProjection
214 SketchProjection_2 = Sketch_1.addProjection(model.selection("VERTEX", "Recover_7_1_5/Modified_Vertex&_____________tube_sain/Face_3"), False)
215 SketchPoint_2 = SketchProjection_2.createdFeature()
216 Sketch_1.setCoincident(SketchLine_3.endPoint(), SketchPoint_2.result())
217
218 ### Create SketchLine
219 SketchLine_4 = Sketch_1.addLine(0, 0.08, 0, -0.08)
220 Sketch_1.setVertical(SketchLine_4.result())
221 Sketch_1.setCoincident(SketchLine_4.endPoint(), SketchLine_1.startPoint())
222 Sketch_1.setCoincident(SketchLine_1.endPoint(), SketchLine_2.startPoint())
223 Sketch_1.setCoincident(SketchLine_2.endPoint(), SketchLine_3.startPoint())
224 Sketch_1.setCoincident(SketchLine_3.endPoint(), SketchLine_4.startPoint())
225 model.do()
226
227 ### Create Face
228 Face_1 = model.addFace(Part_1_doc, [model.selection("COMPOUND", "all-in-Sketch_1")])
229
230 ### Create Partition
231 Partition_7 = model.addPartition(Part_1_doc, [model.selection("COMPOUND", "all-in-Face_1"), model.selection("COMPOUND", "all-in-Partition_6")], keepSubResults = True)
232 Partition_7.setName("Tube_rugueux")
233 Partition_7.result().setName("Tube_rugueux")
234 Partition_7.result().setTransparency(0.7)
235 Partition_7.result().subResult(0).setName("Partition_7_1_1")
236 Partition_7.result().subResult(1).setName("Partition_7_1_2")
237 Partition_7.result().subResult(1).subResult(0).setName("Partition_7_1_2_1")
238 Partition_7.result().subResult(1).subResult(1).setName("Partition_7_1_2_2")
239 Partition_7.result().subResult(1).subResult(2).setName("Partition_7_1_2_3")
240 Partition_7.result().subResult(1).subResult(3).setName("Partition_7_1_2_4")
241 Partition_7.result().subResult(1).subResult(4).setName("Partition_7_1_2_5")
242 Partition_7.result().subResult(1).subResult(5).setName("Partition_7_1_2_6")
243 Partition_7.result().subResult(1).subResult(6).setName("Partition_7_1_2_7")
244 Partition_7.result().subResult(1).subResult(7).setName("Partition_7_1_2_8")
245 Partition_7.result().subResult(1).subResult(8).setName("Partition_7_1_2_9")
246 Partition_7.result().subResult(1).subResult(9).setName("Partition_7_1_2_10")
247 Partition_7.result().subResult(1).subResult(10).setName("Partition_7_1_2_11")
248
249 ### Create Extrusion
250 Extrusion_5 = model.addExtrusion(Part_1_doc, [model.selection("EDGE", "(Partition_6_1_7/Modified_Edge&plan_partition/plan_partition&Sphere_1_1/Face_1&___________tube_sain/To_Edge)(Partition_7_1_2_8/Modified_Edge&Sketch_1/SketchLine_3)"), model.selection("EDGE", "(Partition_6_1_7/Modified_Edge&plan_partition/plan_partition&Sphere_1_1/Face_1&___________tube_sain/To_Edge)(Partition_7_1_2_9/Modified_Edge&Sketch_1/SketchLine_3)")], model.selection("EDGE", "PartSet/OY"), 0, "tube_r")
251 Extrusion_5.result().setName("Extrusion_5_1")
252 Extrusion_5.results()[1].setName("Extrusion_5_2")
253
254 ### Create Recover
255 Recover_8 = model.addRecover(Part_1_doc, Extrusion_5, [Partition_7.result()], True)
256 Recover_8.result().subResult(1).setTransparency(0.67)
257
258 ### Create Common
259 Common_5 = model.addCommon(Part_1_doc, [model.selection("COMPOUND", "all-in-Extrusion_5"), model.selection("COMPOUND", "all-in-Recover_8")], keepSubResults = True)
260
261 ### Create Recover
262 Recover_9 = model.addRecover(Part_1_doc, Common_5, [Recover_8.result()], True)
263 Recover_9.setName("Recover_10")
264 Recover_9.result().setName("Recover_10_1")
265 Recover_9.result().subResult(0).setName("Recover_10_1_1")
266 Recover_9.result().subResult(0).setTransparency(0.72)
267 Recover_9.result().subResult(1).setName("Recover_10_1_2")
268 Recover_9.result().subResult(1).setTransparency(0.64)
269 Recover_9.result().subResult(1).subResult(0).setName("Recover_10_1_2_1")
270 Recover_9.result().subResult(1).subResult(0).setTransparency(0.64)
271 Recover_9.result().subResult(1).subResult(1).setName("Recover_10_1_2_2")
272 Recover_9.result().subResult(1).subResult(1).setTransparency(0.64)
273 Recover_9.result().subResult(1).subResult(2).setName("Recover_10_1_2_3")
274 Recover_9.result().subResult(1).subResult(2).setTransparency(0.64)
275 Recover_9.result().subResult(1).subResult(3).setName("Recover_10_1_2_4")
276 Recover_9.result().subResult(1).subResult(3).setTransparency(0.64)
277 Recover_9.result().subResult(1).subResult(4).setName("Recover_10_1_2_5")
278 Recover_9.result().subResult(1).subResult(4).setTransparency(0.64)
279 Recover_9.result().subResult(1).subResult(5).setName("Recover_10_1_2_6")
280 Recover_9.result().subResult(1).subResult(5).setTransparency(0.64)
281 Recover_9.result().subResult(1).subResult(6).setName("Recover_10_1_2_7")
282 Recover_9.result().subResult(1).subResult(6).setTransparency(0.64)
283 Recover_9.result().subResult(1).subResult(7).setName("Recover_10_1_2_8")
284 Recover_9.result().subResult(1).subResult(7).setTransparency(0.64)
285 Recover_9.result().subResult(1).subResult(8).setName("Recover_10_1_2_9")
286 Recover_9.result().subResult(1).subResult(8).setTransparency(0.64)
287 Recover_9.result().subResult(1).subResult(9).setName("Recover_10_1_2_10")
288 Recover_9.result().subResult(1).subResult(9).setTransparency(0.64)
289 Recover_9.result().subResult(1).subResult(10).setName("Recover_10_1_2_11")
290 Recover_9.result().subResult(1).subResult(10).setTransparency(0.64)
291
292 ### Create Extrusion
293 Extrusion_6 = model.addExtrusion(Part_1_doc, [model.selection("EDGE", "(Recover_10_1_2_6/Modified_Edge&PartSet/YOZ/YOZ&Sphere_1_1/Face_1&_____________tube_sain/Face_1)(Recover_10_1_2_6/Modified_Edge&plan_partition/plan_partition&Sphere_1_1/Face_1&___tube_sain_2/To_Edge)(Recover_10_1_2_6/Modified_Edge&Sketch_1/SketchLine_1)"), model.selection("EDGE", "(Recover_10_1_2_7/Modified_Edge&plan_partition/plan_partition&Sphere_1_1/Face_1&___tube_sain_2/To_Edge)(Recover_10_1_2_7/Modified_Edge&_____________tube_sain/Face_1&PartSet/YOZ/YOZ&plan_partition/plan_partition&Sphere_1_1/Face_1)(Recover_10_1_2_7/Modified_Edge&Sketch_1/SketchLine_1)")], model.selection("EDGE", "PartSet/OY"), "tube_r", 0)
294
295 ### Create Recover
296 Recover_10 = model.addRecover(Part_1_doc, Extrusion_6, [Recover_8.result()], True)
297 Recover_10.setName("Recover_9")
298 Recover_10.result().setName("Recover_9_1")
299 Recover_10.result().subResult(0).setName("Recover_9_1_1")
300 Recover_10.result().subResult(1).setName("Recover_9_1_2")
301 Recover_10.result().subResult(1).subResult(0).setName("Recover_9_1_2_1")
302 Recover_10.result().subResult(1).subResult(1).setName("Recover_9_1_2_2")
303 Recover_10.result().subResult(1).subResult(2).setName("Recover_9_1_2_3")
304 Recover_10.result().subResult(1).subResult(3).setName("Recover_9_1_2_4")
305 Recover_10.result().subResult(1).subResult(4).setName("Recover_9_1_2_5")
306 Recover_10.result().subResult(1).subResult(5).setName("Recover_9_1_2_6")
307 Recover_10.result().subResult(1).subResult(6).setName("Recover_9_1_2_7")
308 Recover_10.result().subResult(1).subResult(7).setName("Recover_9_1_2_8")
309 Recover_10.result().subResult(1).subResult(8).setName("Recover_9_1_2_9")
310 Recover_10.result().subResult(1).subResult(9).setName("Recover_9_1_2_10")
311 Recover_10.result().subResult(1).subResult(10).setName("Recover_9_1_2_11")
312
313 ### Create Common
314 Common_6 = model.addCommon(Part_1_doc, [model.selection("COMPOUND", "all-in-Extrusion_6"), model.selection("COMPOUND", "all-in-Recover_9")], keepSubResults = True)
315
316 ### Create Recover
317 Recover_11 = model.addRecover(Part_1_doc, Common_6, [Recover_10.result()], True)
318
319 model.do()
320
321 ### Create Group
322 Group_1 = model.addGroup(Part_1_doc, "Edges", [model.selection("EDGE", "Recover_11_1_2_10/Modified_Edge&_____________tube_sain/Face_2&__tube_sain_2/tube_sain_2")])
323 Group_1.setName("ValidEdge")
324 Group_1.result().setName("ValidEdge")
325
326 model.end()
327
328 # check that resulting group selection is valid
329 from ModelAPI import *
330 aFactory = ModelAPI_Session.get().validators()
331 assert(aFactory.validate(Group_1.feature()))
332 assert(Group_1.groupList().size() == 1)
333 for a in range(1):
334   assert(Group_1.groupList().value(a).value().shapeTypeStr() == "EDGE")
335   assert(len(Group_1.groupList().value(a).namingName()) > 0)
336 assert(model.checkPythonDump())