1 # Copyright (C) 2014-2023 CEA, EDF
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.
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.
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
17 # See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
20 from salome.shaper import model
22 from SketchAPI import *
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)
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]")])])
48 ResultExtrusion = Extrusion_1.result().subResult(0).resultSubShapePair()[0]
49 exp = GeomAPI_ShapeExplorer(ResultExtrusion.shape(), GeomAPI_Shape.EDGE)
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()
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()
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()
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()
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()
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())
83 ResultExtrusion = Extrusion_1.result().subResult(1).resultSubShapePair()[0]
84 exp = GeomAPI_ShapeExplorer(ResultExtrusion.shape(), GeomAPI_Shape.EDGE)
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()
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()
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()
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()
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())
111 ResultExtrusion = Extrusion_1.result().subResult(2).resultSubShapePair()[0]
112 exp = GeomAPI_ShapeExplorer(ResultExtrusion.shape(), GeomAPI_Shape.EDGE)
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()
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()
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()
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()
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())
139 ResultExtrusion = Extrusion_1.result().subResult(3).resultSubShapePair()[0]
140 exp = GeomAPI_ShapeExplorer(ResultExtrusion.shape(), GeomAPI_Shape.EDGE)
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()
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()
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()
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()
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())
166 model.checkFilter(Part_1_doc, model, Filters, Reference)