Salome HOME
dd01dff37a65ceaf9913bf47e476d8fe117f0ff0
[modules/shaper.git] / src / FiltersPlugin / Test / TestFilter_OnGeometry_Exclude_Edge2.py
1 # Copyright (C) 2014-2023  CEA/DEN, EDF R&D
2 #
3 # This library is free software; you can redistribute it and/or
4 # modify it under the terms of the GNU Lesser General Public
5 # License as published by the Free Software Foundation; either
6 # version 2.1 of the License, or (at your option) any later version.
7 #
8 # This library is distributed in the hope that it will be useful,
9 # but WITHOUT ANY WARRANTY; without even the implied warranty of
10 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
11 # Lesser General Public License for more details.
12 #
13 # You should have received a copy of the GNU Lesser General Public
14 # License along with this library; if not, write to the Free Software
15 # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
16 #
17 # See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
18 #
19
20 from salome.shaper import model
21 from GeomAPI import *
22 from SketchAPI import *
23
24 model.begin()
25 partSet = model.moduleDocument()
26 Part_1 = model.addPart(partSet)
27 Part_1_doc = Part_1.document()
28 Extrusion_1 = model.addExtrusion(Part_1_doc, [], model.selection(), 100, 0)
29 Sketch_1 = model.addSketch(Part_1_doc, model.defaultPlane("XOY"))
30 SketchCircle_1 = Sketch_1.addCircle(0, 0, 80)
31 SketchLine_1 = Sketch_1.addLine(-70.03988514133886, -38.65765757761403, 65.03214823048954, -46.59205615260649)
32 SketchConstraintCoincidence_1 = Sketch_1.setCoincident(SketchLine_1.startPoint(), SketchCircle_1.results()[1])
33 SketchConstraintCoincidence_2 = Sketch_1.setCoincident(SketchLine_1.endPoint(), SketchCircle_1.results()[1])
34 SketchLine_2 = Sketch_1.addLine(6.89273184263731, -79.70251092497334, 48.24895637932232, 63.81252391424628)
35 SketchConstraintCoincidence_3 = Sketch_1.setCoincident(SketchLine_2.startPoint(), SketchCircle_1.results()[1])
36 SketchConstraintCoincidence_4 = Sketch_1.setCoincident(SketchLine_2.endPoint(), SketchCircle_1.results()[1])
37 SketchProjection_1 = Sketch_1.addProjection(model.selection("VERTEX", "PartSet/Origin"), False)
38 SketchPoint_1 = SketchProjection_1.createdFeature()
39 SketchConstraintCoincidence_5 = Sketch_1.setCoincident(SketchCircle_1.center(), SketchAPI_Point(SketchPoint_1).coordinates())
40 SketchConstraintRadius_1 = Sketch_1.setRadius(SketchCircle_1.results()[1], 80)
41 Extrusion_1.setNestedSketch(Sketch_1)
42 model.do()
43 Filters = model.filters(Part_1_doc, [model.addFilter(name = "OnGeometry", exclude = True, args = [model.selection("EDGE", "[Extrusion_1_1_3/Generated_Face&Sketch_1/SketchCircle_1_2][Extrusion_1_1_3/To_Face]")])])
44 model.end()
45
46 Reference = {}
47 # Extrusion Solid 1
48 ResultExtrusion = Extrusion_1.result().subResult(0).resultSubShapePair()[0]
49 exp = GeomAPI_ShapeExplorer(ResultExtrusion.shape(), GeomAPI_Shape.EDGE)
50 # edges of face 1
51 Reference[model.selection(ResultExtrusion, exp.current())] = True;  exp.next()
52 Reference[model.selection(ResultExtrusion, exp.current())] = True;  exp.next()
53 Reference[model.selection(ResultExtrusion, exp.current())] = True;  exp.next()
54 Reference[model.selection(ResultExtrusion, exp.current())] = False; exp.next()
55 # edges of face 2
56 Reference[model.selection(ResultExtrusion, exp.current())] = True;  exp.next()
57 Reference[model.selection(ResultExtrusion, exp.current())] = True;  exp.next()
58 Reference[model.selection(ResultExtrusion, exp.current())] = True;  exp.next()
59 Reference[model.selection(ResultExtrusion, exp.current())] = False; exp.next()
60 # edges of face 3
61 Reference[model.selection(ResultExtrusion, exp.current())] = True;  exp.next()
62 Reference[model.selection(ResultExtrusion, exp.current())] = True;  exp.next()
63 Reference[model.selection(ResultExtrusion, exp.current())] = True;  exp.next()
64 Reference[model.selection(ResultExtrusion, exp.current())] = True;  exp.next()
65 # edges of face 4
66 Reference[model.selection(ResultExtrusion, exp.current())] = True;  exp.next()
67 Reference[model.selection(ResultExtrusion, exp.current())] = True;  exp.next()
68 Reference[model.selection(ResultExtrusion, exp.current())] = True;  exp.next()
69 Reference[model.selection(ResultExtrusion, exp.current())] = True;  exp.next()
70 # edges of face 5
71 Reference[model.selection(ResultExtrusion, exp.current())] = True;  exp.next()
72 Reference[model.selection(ResultExtrusion, exp.current())] = True;  exp.next()
73 Reference[model.selection(ResultExtrusion, exp.current())] = True;  exp.next()
74 Reference[model.selection(ResultExtrusion, exp.current())] = True;  exp.next()
75 # edges of face 6
76 Reference[model.selection(ResultExtrusion, exp.current())] = False; exp.next()
77 Reference[model.selection(ResultExtrusion, exp.current())] = False; exp.next()
78 Reference[model.selection(ResultExtrusion, exp.current())] = True;  exp.next()
79 Reference[model.selection(ResultExtrusion, exp.current())] = True;  exp.next()
80 assert(not exp.more())
81
82 # Extrusion Solid 2
83 ResultExtrusion = Extrusion_1.result().subResult(1).resultSubShapePair()[0]
84 exp = GeomAPI_ShapeExplorer(ResultExtrusion.shape(), GeomAPI_Shape.EDGE)
85 # edges of face 1
86 Reference[model.selection(ResultExtrusion, exp.current())] = True;  exp.next()
87 Reference[model.selection(ResultExtrusion, exp.current())] = True;  exp.next()
88 Reference[model.selection(ResultExtrusion, exp.current())] = True;  exp.next()
89 Reference[model.selection(ResultExtrusion, exp.current())] = False; exp.next()
90 # edges of face 2
91 Reference[model.selection(ResultExtrusion, exp.current())] = True;  exp.next()
92 Reference[model.selection(ResultExtrusion, exp.current())] = True;  exp.next()
93 Reference[model.selection(ResultExtrusion, exp.current())] = True;  exp.next()
94 Reference[model.selection(ResultExtrusion, exp.current())] = True;  exp.next()
95 # edges of face 3
96 Reference[model.selection(ResultExtrusion, exp.current())] = True;  exp.next()
97 Reference[model.selection(ResultExtrusion, exp.current())] = True;  exp.next()
98 Reference[model.selection(ResultExtrusion, exp.current())] = True;  exp.next()
99 Reference[model.selection(ResultExtrusion, exp.current())] = True;  exp.next()
100 # edges of face 4
101 Reference[model.selection(ResultExtrusion, exp.current())] = True;  exp.next()
102 Reference[model.selection(ResultExtrusion, exp.current())] = True;  exp.next()
103 Reference[model.selection(ResultExtrusion, exp.current())] = True;  exp.next()
104 # edges of face 5
105 Reference[model.selection(ResultExtrusion, exp.current())] = False; exp.next()
106 Reference[model.selection(ResultExtrusion, exp.current())] = True;  exp.next()
107 Reference[model.selection(ResultExtrusion, exp.current())] = True;  exp.next()
108 assert(not exp.more())
109
110 # Extrusion Solid 3
111 ResultExtrusion = Extrusion_1.result().subResult(2).resultSubShapePair()[0]
112 exp = GeomAPI_ShapeExplorer(ResultExtrusion.shape(), GeomAPI_Shape.EDGE)
113 # edges of face 1
114 Reference[model.selection(ResultExtrusion, exp.current())] = True;  exp.next()
115 Reference[model.selection(ResultExtrusion, exp.current())] = True;  exp.next()
116 Reference[model.selection(ResultExtrusion, exp.current())] = True;  exp.next()
117 Reference[model.selection(ResultExtrusion, exp.current())] = False; exp.next()
118 # edges of face 2
119 Reference[model.selection(ResultExtrusion, exp.current())] = True;  exp.next()
120 Reference[model.selection(ResultExtrusion, exp.current())] = True;  exp.next()
121 Reference[model.selection(ResultExtrusion, exp.current())] = True;  exp.next()
122 Reference[model.selection(ResultExtrusion, exp.current())] = True;  exp.next()
123 # edges of face 3
124 Reference[model.selection(ResultExtrusion, exp.current())] = True;  exp.next()
125 Reference[model.selection(ResultExtrusion, exp.current())] = True;  exp.next()
126 Reference[model.selection(ResultExtrusion, exp.current())] = True;  exp.next()
127 Reference[model.selection(ResultExtrusion, exp.current())] = True;  exp.next()
128 # edges of face 4
129 Reference[model.selection(ResultExtrusion, exp.current())] = True;  exp.next()
130 Reference[model.selection(ResultExtrusion, exp.current())] = True;  exp.next()
131 Reference[model.selection(ResultExtrusion, exp.current())] = True;  exp.next()
132 # edges of face 5
133 Reference[model.selection(ResultExtrusion, exp.current())] = False; exp.next()
134 Reference[model.selection(ResultExtrusion, exp.current())] = True;  exp.next()
135 Reference[model.selection(ResultExtrusion, exp.current())] = True;  exp.next()
136 assert(not exp.more())
137
138 # Extrusion Solid 4
139 ResultExtrusion = Extrusion_1.result().subResult(3).resultSubShapePair()[0]
140 exp = GeomAPI_ShapeExplorer(ResultExtrusion.shape(), GeomAPI_Shape.EDGE)
141 # edges of face 1
142 Reference[model.selection(ResultExtrusion, exp.current())] = True;  exp.next()
143 Reference[model.selection(ResultExtrusion, exp.current())] = True;  exp.next()
144 Reference[model.selection(ResultExtrusion, exp.current())] = True;  exp.next()
145 Reference[model.selection(ResultExtrusion, exp.current())] = False; exp.next()
146 # edges of face 2
147 Reference[model.selection(ResultExtrusion, exp.current())] = True;  exp.next()
148 Reference[model.selection(ResultExtrusion, exp.current())] = True;  exp.next()
149 Reference[model.selection(ResultExtrusion, exp.current())] = True;  exp.next()
150 Reference[model.selection(ResultExtrusion, exp.current())] = True;  exp.next()
151 # edges of face 3
152 Reference[model.selection(ResultExtrusion, exp.current())] = True;  exp.next()
153 Reference[model.selection(ResultExtrusion, exp.current())] = True;  exp.next()
154 Reference[model.selection(ResultExtrusion, exp.current())] = True;  exp.next()
155 Reference[model.selection(ResultExtrusion, exp.current())] = True;  exp.next()
156 # edges of face 4
157 Reference[model.selection(ResultExtrusion, exp.current())] = True;  exp.next()
158 Reference[model.selection(ResultExtrusion, exp.current())] = True;  exp.next()
159 Reference[model.selection(ResultExtrusion, exp.current())] = True;  exp.next()
160 # edges of face 5
161 Reference[model.selection(ResultExtrusion, exp.current())] = False; exp.next()
162 Reference[model.selection(ResultExtrusion, exp.current())] = True;  exp.next()
163 Reference[model.selection(ResultExtrusion, exp.current())] = True;  exp.next()
164 assert(not exp.more())
165
166 model.checkFilter(Part_1_doc, model, Filters, Reference)