6 from model.tools import Selection
8 #-----------------------------------------------------------------------------
11 class FeaturesAddRevolutionFixture(unittest.TestCase):
16 partset = model.moduleDocument()
17 self.part = model.addPart(partset).document()
25 class FeaturesRevolutionFixture(FeaturesAddRevolutionFixture):
28 FeaturesAddRevolutionFixture.setUp(self)
31 base_sketch = model.addSketch(self.part, model.defaultPlane("XOY"))
32 circle = base_sketch.addCircle(0, 0, 10)
34 axis_sketch = model.addSketch(self.part, model.defaultPlane("XOY"))
35 line = axis_sketch.addLine(20, -10, 20, 10)
39 base = [base_sketch.selectFace(circle.lastResult())]
40 axis_object = Selection(axis_sketch.firstResult(),
41 line.firstResult().shape())
43 self.revolution = model.addRevolution(self.part, base, axis_object,
49 FeaturesAddRevolutionFixture.tearDown(self)
51 #-----------------------------------------------------------------------------
54 class FeaturesAddRevolutionTestCase(FeaturesAddRevolutionFixture):
56 def test_add_revolution_no_base(self):
58 revolution = model.addRevolution(self.part)
59 fail("addRevolution should assert if base is not None")
60 except AssertionError:
63 def test_add_revolution_by_face_and_angles(self):
65 base_sketch = model.addSketch(self.part, model.defaultPlane("XOY"))
66 circle = base_sketch.addCircle(0, 0, 10)
68 axis_sketch = model.addSketch(self.part, model.defaultPlane("XOY"))
69 line = axis_sketch.addLine(20, -10, 20, 10)
73 base = [base_sketch.selectFace(circle.lastResult())]
74 axis_object = Selection(axis_sketch.firstResult(),
75 line.firstResult().shape())
77 revolution = model.addRevolution(self.part, base, axis_object,
80 self.assertEqual(revolution.getCreationMethod().value(), "ByAngles")
81 self.assertEqual(revolution.getToAngle().value(), 0)
82 self.assertEqual(revolution.getFromAngle().value(), 180)
83 self.assertEqual(revolution.getToObject().context(), None)
84 self.assertEqual(revolution.getToOffset().value(), 0)
85 self.assertEqual(revolution.getFromObject().context(), None)
86 self.assertEqual(revolution.getFromOffset().value(), 0)
88 def test_add_revolution_by_face_and_planes(self):
90 base_sketch = model.addSketch(self.part, model.defaultPlane("XOY"))
91 base_circle = base_sketch.addCircle(0, 0, 10)
93 axis_sketch = model.addSketch(self.part, model.defaultPlane("XOY"))
94 line = axis_sketch.addLine(20, -10, 20, 10)
96 to_plane = model.defaultPlane("XOY")
97 to_plane.location().setZ(10)
98 to_sketch = model.addSketch(self.part, to_plane)
99 to_circle = to_sketch.addCircle(0, 0, 10)
101 from_plane = model.defaultPlane("XOY")
102 from_plane.location().setZ(-10)
103 from_sketch = model.addSketch(self.part, from_plane)
104 from_circle = from_sketch.addCircle(0, 0, 10)
108 base = [base_sketch.selectFace(base_circle.result())]
109 axis_object = Selection(axis_sketch.firstResult(),
110 line.firstResult().shape())
111 to_obejct = to_sketch.selectFace(to_circle.result())
112 from_object = from_sketch.selectFace(from_circle.result())
114 revolution = model.addRevolution(self.part, base, axis_object,
118 self.assertEqual(revolution.getCreationMethod().value(), "ByPlanesAndOffsets")
119 self.assertEqual(revolution.getToAngle().value(), 0)
120 self.assertEqual(revolution.getFromAngle().value(), 0)
121 # self.assertEqual(revolution.getToObject().context(),
122 # to_sketch.result())
123 self.assertEqual(revolution.getToOffset().value(), 15)
124 # self.assertEqual(revolution.getFromObject().context(),
125 # from_sketch.result())
126 self.assertEqual(revolution.getFromOffset().value(), 20)
129 class FeaturesRevolutionTestCase(FeaturesRevolutionFixture):
131 def test_revolution_feature_calls(self):
132 # call method of the feature
133 self.assertEqual(self.revolution.getKind(), "Revolution")
135 def test_revolution_get_attribute(self):
136 # call method of the feature
137 self.assertTrue(isinstance(self.revolution.getBase(),
138 ModelAPI.ModelAPI_AttributeSelectionList))
139 self.assertTrue(isinstance(self.revolution.getAxisObject(),
140 ModelAPI.ModelAPI_AttributeSelection))
141 self.assertTrue(isinstance(self.revolution.getCreationMethod(),
142 ModelAPI.ModelAPI_AttributeString))
143 self.assertTrue(isinstance(self.revolution.getToAngle(),
144 ModelAPI.ModelAPI_AttributeDouble))
145 self.assertTrue(isinstance(self.revolution.getFromAngle(),
146 ModelAPI.ModelAPI_AttributeDouble))
147 self.assertTrue(isinstance(self.revolution.getToObject(),
148 ModelAPI.ModelAPI_AttributeSelection))
149 self.assertTrue(isinstance(self.revolution.getToOffset(),
150 ModelAPI.ModelAPI_AttributeDouble))
151 self.assertTrue(isinstance(self.revolution.getFromObject(),
152 ModelAPI.ModelAPI_AttributeSelection))
153 self.assertTrue(isinstance(self.revolution.getFromOffset(),
154 ModelAPI.ModelAPI_AttributeDouble))
156 def test_revolution_set_angles(self):
157 self.revolution.setAngles(90, 270)
158 self.assertEqual(self.revolution.getCreationMethod().value(), "ByAngles")
159 self.assertEqual(self.revolution.getToAngle().value(), 90)
160 self.assertEqual(self.revolution.getFromAngle().value(), 270)
161 self.assertEqual(self.revolution.getToObject().context(), None)
162 self.assertEqual(self.revolution.getToOffset().value(), 0)
163 self.assertEqual(self.revolution.getFromObject().context(), None)
164 self.assertEqual(self.revolution.getFromOffset().value(), 0)
166 def test_revolution_set_planes_and_offsets(self):
168 base_sketch = model.addSketch(self.part, model.defaultPlane("XOY"))
169 base_circle = base_sketch.addCircle(0, 0, 10)
171 axis_sketch = model.addSketch(self.part, model.defaultPlane("XOY"))
172 line = axis_sketch.addLine(20, -10, 20, 10)
174 to_plane = model.defaultPlane("XOY")
175 to_plane.location().setZ(10)
176 to_sketch = model.addSketch(self.part, to_plane)
177 to_circle = to_sketch.addCircle(0, 0, 10)
179 from_plane = model.defaultPlane("XOY")
180 from_plane.location().setZ(-10)
181 from_sketch = model.addSketch(self.part, from_plane)
182 from_circle = from_sketch.addCircle(0, 0, 10)
186 base = [base_sketch.selectFace(base_circle.result())]
187 axis_object = Selection(axis_sketch.firstResult(),
188 line.firstResult().shape())
189 to_obejct = to_sketch.selectFace(to_circle.result())
190 from_object = from_sketch.selectFace(from_circle.result())
192 self.revolution.setPlanesAndOffsets(to_obejct, 15, from_object, 20)
194 self.assertEqual(self.revolution.getCreationMethod().value(), "ByPlanesAndOffsets")
195 self.assertEqual(self.revolution.getToAngle().value(), 0)
196 self.assertEqual(self.revolution.getFromAngle().value(), 0)
197 # self.assertEqual(self.revolution.getToObject().context(), None)
198 self.assertEqual(self.revolution.getToOffset().value(), 15)
199 # self.assertEqual(self.revolution.getFromObject().context(), None)
200 self.assertEqual(self.revolution.getFromOffset().value(), 20)
203 if __name__ == "__main__":