Salome HOME
updated copyright message
[modules/shaper.git] / test.API / SHAPER / Primitives / TestCone.py
1 # Copyright (C) 2017-2023  CEA, EDF
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 from salome.shaper import model
20
21 model.begin()
22 partSet = model.moduleDocument()
23 Part_1 = model.addPart(partSet)
24 Part_1_doc = Part_1.document()
25
26 # Init
27 Point_1 = model.addPoint(Part_1_doc, 10, 10, 10).result()
28 Point_2 = model.selection("VERTEX", "pnt")
29 Axis_1 = model.addAxis(Part_1_doc, 0, 10, 0).result()
30 Axis_2 = model.selection("EDGE", "edge")
31
32 # Parameters
33 model.addParameter(Part_1_doc, "baseRadius", "10")
34 model.addParameter(Part_1_doc, "topRadius", "7")
35 model.addParameter(Part_1_doc, "h", "15")
36
37 # Tests
38 Cone_1 = model.addCone(Part_1_doc, model.selection("VERTEX", "PartSet/Origin"), model.selection("EDGE", "PartSet/OZ"), 10., 5., 10.)
39 Cone_2 = model.addCone(Part_1_doc, model.selection("VERTEX", "PartSet/Origin"), model.selection("EDGE", "PartSet/OZ"), 5., 10., 10.)
40 Cone_3 = model.addCone(Part_1_doc, model.selection("VERTEX", "PartSet/Origin"), model.selection("EDGE", "PartSet/OZ"), 0., 5., 10.)
41 Cone_4 = model.addCone(Part_1_doc, model.selection("VERTEX", "PartSet/Origin"), model.selection("EDGE", "PartSet/OZ"), -3., 5., 10.)
42 Cone_5 = model.addCone(Part_1_doc, model.selection("VERTEX", "PartSet/Origin"), model.selection("EDGE", "PartSet/OZ"), 10., 0., 10.)
43 Cone_6 = model.addCone(Part_1_doc, model.selection("VERTEX", "PartSet/Origin"), model.selection("EDGE", "PartSet/OZ"), 10., -5., 10.)
44 Cone_7 = model.addCone(Part_1_doc, model.selection("VERTEX", "PartSet/Origin"), model.selection("EDGE", "PartSet/OZ"), 10., 5., 0.)
45 Cone_8 = model.addCone(Part_1_doc, model.selection("VERTEX", "PartSet/Origin"), model.selection("EDGE", "PartSet/OZ"), 10., 5., -10.)
46 Cone_9 = model.addCone(Part_1_doc, Point_1, model.selection("EDGE", "PartSet/OZ"), 10., 7., 15.)
47 Cone_10 = model.addCone(Part_1_doc, Point_1, Axis_1, 10., 7., 15.)
48 Cone_11 = model.addCone(Part_1_doc, Point_2, model.selection("EDGE", "PartSet/OZ"), 10., 7., 15.)
49 Cone_12= model.addCone(Part_1_doc, Point_1, Axis_2, 10., 7., 15.)
50 Cone_13 = model.addCone(Part_1_doc, model.selection("VERTEX", "PartSet/Origin"), model.selection("EDGE", "PartSet/OZ"), 0., 0., 15.)
51 Cone_14 = model.addCone(Part_1_doc, model.selection("VERTEX", "PartSet/Origin"), model.selection("EDGE", "PartSet/OZ"), 10., 10., 15.)
52 Cone_15 = model.addCone(Part_1_doc, model.selection("VERTEX", "PartSet/Origin"), model.selection("EDGE", "PartSet/OZ"), "baseRadius", "topRadius", "h")
53
54 Cone_16 = model.addCone(Part_1_doc, 5., 10., 15.)
55 Cone_16.setRadius(10., 15.)
56
57 model.do()
58 model.end()
59
60 # Checks
61 from GeomAPI import GeomAPI_Shape
62
63 model.testNbResults(Cone_1, 1)
64 model.testNbSubResults(Cone_1, [0])
65 model.testNbSubShapes(Cone_1, GeomAPI_Shape.SOLID, [1])
66 model.testNbSubShapes(Cone_1, GeomAPI_Shape.FACE, [3])
67 model.testHaveNamingFaces(Cone_1, model, Part_1_doc)
68
69 model.testNbResults(Cone_2, 1)
70 model.testNbSubResults(Cone_2, [0])
71 model.testNbSubShapes(Cone_2, GeomAPI_Shape.SOLID, [1])
72 model.testNbSubShapes(Cone_2, GeomAPI_Shape.FACE, [3])
73 model.testHaveNamingFaces(Cone_2, model, Part_1_doc)
74
75 model.testNbResults(Cone_3, 1)
76 model.testNbSubResults(Cone_3, [0])
77 model.testNbSubShapes(Cone_3, GeomAPI_Shape.SOLID, [1])
78 model.testNbSubShapes(Cone_3, GeomAPI_Shape.FACE, [2])
79 model.testHaveNamingFaces(Cone_3, model, Part_1_doc)
80
81 model.testNbResults(Cone_5, 1)
82 model.testNbSubResults(Cone_5, [0])
83 model.testNbSubShapes(Cone_5, GeomAPI_Shape.SOLID, [1])
84 model.testNbSubShapes(Cone_5, GeomAPI_Shape.FACE, [2])
85 model.testHaveNamingFaces(Cone_5, model, Part_1_doc)
86
87 model.testNbResults(Cone_9, 1)
88 model.testNbSubResults(Cone_9, [0])
89 model.testNbSubShapes(Cone_9, GeomAPI_Shape.SOLID, [1])
90 model.testNbSubShapes(Cone_9, GeomAPI_Shape.FACE, [3])
91 model.testHaveNamingFaces(Cone_9, model, Part_1_doc)
92
93 model.testNbResults(Cone_10, 1)
94 model.testNbSubResults(Cone_10, [0])
95 model.testNbSubShapes(Cone_10, GeomAPI_Shape.SOLID, [1])
96 model.testNbSubShapes(Cone_10, GeomAPI_Shape.FACE, [3])
97 model.testHaveNamingFaces(Cone_10, model, Part_1_doc)
98
99 model.testNbResults(Cone_15, 1)
100 model.testNbSubResults(Cone_15, [0])
101 model.testNbSubShapes(Cone_15, GeomAPI_Shape.SOLID, [1])
102 model.testNbSubShapes(Cone_15, GeomAPI_Shape.FACE, [3])
103 model.testHaveNamingFaces(Cone_15, model, Part_1_doc)
104
105 model.testNbResults(Cone_16, 1)
106 model.testNbSubResults(Cone_16, [0])
107 model.testNbSubShapes(Cone_16, GeomAPI_Shape.SOLID, [1])
108 model.testNbSubShapes(Cone_16, GeomAPI_Shape.FACE, [3])
109 model.testHaveNamingFaces(Cone_16, model, Part_1_doc)
110
111 model.testNbResults(Cone_4, 0)
112 assert(Cone_4.feature().error() == "Cone builder :: base radius is negative.")
113
114 model.testNbResults(Cone_6, 0)
115 assert(Cone_6.feature().error() == "Cone builder :: top radius is negative.")
116
117 model.testNbResults(Cone_7, 0)
118 assert(Cone_7.feature().error() == "Cone builder :: height is negative or null.")
119
120 model.testNbResults(Cone_8, 0)
121 assert(Cone_8.feature().error() == "Cone builder :: height is negative or null.")
122
123 model.testNbResults(Cone_11, 0)
124 assert(Cone_11.feature().error() == "Attribute \"base_point\" is not initialized.")
125
126 model.testNbResults(Cone_12, 0)
127 assert(Cone_12.feature().error() == "Attribute \"axis\" is not initialized.")
128
129 model.testNbResults(Cone_13, 0)
130 assert(Cone_13.feature().error() == "Cone builder :: base radius and top radius are negative or null.")
131
132 model.testNbResults(Cone_14, 0)
133 assert(Cone_14.feature().error() == "Cone builder :: base radius and top radius are too close.")