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()
40 axis_object = Selection(axis_sketch.result()[0],
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)
70 base = base_sketch.selectFace()
71 axis_point1 = model.addPoint(self.part, 20, -10, 0)
72 axis_point2 = model.addPoint(self.part, 20, 10, 0)
73 axis_object = model.addAxis(self.part, axis_point1.result()[0], axis_point2.result()[0]).result()[0]
75 revolution = model.addRevolution(self.part, base, axis_object,
78 self.assertEqual(revolution.creationMethod().value(), "ByAngles")
79 self.assertEqual(revolution.toAngle().value(), 0)
80 self.assertEqual(revolution.fromAngle().value(), 180)
81 self.assertEqual(revolution.toObject().context(), None)
82 self.assertEqual(revolution.toOffset().value(), 0)
83 self.assertEqual(revolution.fromObject().context(), None)
84 self.assertEqual(revolution.fromOffset().value(), 0)
86 def test_add_revolution_by_face_and_planes(self):
88 base_sketch = model.addSketch(self.part, model.defaultPlane("XOY"))
89 base_circle = base_sketch.addCircle(0, 0, 10)
91 to_plane = model.defaultPlane("XOY")
92 to_plane.origin().setZ(10)
93 to_sketch = model.addSketch(self.part, to_plane)
94 to_circle = to_sketch.addCircle(0, 0, 10)
96 from_plane = model.defaultPlane("XOY")
97 from_plane.origin().setZ(-10)
98 from_sketch = model.addSketch(self.part, from_plane)
99 from_circle = from_sketch.addCircle(0, 0, 10)
103 base = base_sketch.selectFace()
104 axis_point1 = model.addPoint(self.part, 20, -10, 0)
105 axis_point2 = model.addPoint(self.part, 20, 10, 0)
106 axis_object = model.addAxis(self.part, axis_point1.result()[0], axis_point2.result()[0]).result()[0]
107 to_obejct = to_sketch.selectFace()[0]
108 from_object = from_sketch.selectFace()[0]
110 revolution = model.addRevolution(self.part, base, axis_object,
114 self.assertEqual(revolution.creationMethod().value(), "ByPlanesAndOffsets")
115 self.assertEqual(revolution.toAngle().value(), 0)
116 self.assertEqual(revolution.fromAngle().value(), 0)
117 # self.assertEqual(revolution.getToObject().context(),
118 # to_sketch.result())
119 self.assertEqual(revolution.toOffset().value(), 15)
120 # self.assertEqual(revolution.getFromObject().context(),
121 # from_sketch.result())
122 self.assertEqual(revolution.fromOffset().value(), 20)
125 class FeaturesRevolutionTestCase(FeaturesRevolutionFixture):
127 def test_revolution_feature_calls(self):
128 # call method of the feature
129 self.assertEqual(self.revolution.getKind(), "Revolution")
131 def test_revolution_get_attribute(self):
132 # call method of the feature
133 self.assertTrue(isinstance(self.revolution.base(),
134 ModelAPI.ModelAPI_AttributeSelectionList))
135 self.assertTrue(isinstance(self.revolution.axisObject(),
136 ModelAPI.ModelAPI_AttributeSelection))
137 self.assertTrue(isinstance(self.revolution.creationMethod(),
138 ModelAPI.ModelAPI_AttributeString))
139 self.assertTrue(isinstance(self.revolution.toAngle(),
140 ModelAPI.ModelAPI_AttributeDouble))
141 self.assertTrue(isinstance(self.revolution.fromAngle(),
142 ModelAPI.ModelAPI_AttributeDouble))
143 self.assertTrue(isinstance(self.revolution.toObject(),
144 ModelAPI.ModelAPI_AttributeSelection))
145 self.assertTrue(isinstance(self.revolution.toOffset(),
146 ModelAPI.ModelAPI_AttributeDouble))
147 self.assertTrue(isinstance(self.revolution.fromObject(),
148 ModelAPI.ModelAPI_AttributeSelection))
149 self.assertTrue(isinstance(self.revolution.fromOffset(),
150 ModelAPI.ModelAPI_AttributeDouble))
152 def test_revolution_set_angles(self):
153 self.revolution.setAngles(90, 270)
154 self.assertEqual(self.revolution.creationMethod().value(), "ByAngles")
155 self.assertEqual(self.revolution.toAngle().value(), 90)
156 self.assertEqual(self.revolution.fromAngle().value(), 270)
157 self.assertEqual(self.revolution.toObject().context(), None)
158 self.assertEqual(self.revolution.toOffset().value(), 0)
159 self.assertEqual(self.revolution.fromObject().context(), None)
160 self.assertEqual(self.revolution.fromOffset().value(), 0)
162 def test_revolution_set_planes_and_offsets(self):
164 base_sketch = model.addSketch(self.part, model.defaultPlane("XOY"))
165 base_circle = base_sketch.addCircle(0, 0, 10)
167 to_plane = model.defaultPlane("XOY")
168 to_plane.origin().setZ(10)
169 to_sketch = model.addSketch(self.part, to_plane)
170 to_circle = to_sketch.addCircle(0, 0, 10)
172 from_plane = model.defaultPlane("XOY")
173 from_plane.origin().setZ(-10)
174 from_sketch = model.addSketch(self.part, from_plane)
175 from_circle = from_sketch.addCircle(0, 0, 10)
179 base = base_sketch.selectFace()
180 axis_point1 = model.addPoint(self.part, 20, -10, 0)
181 axis_point2 = model.addPoint(self.part, 20, 10, 0)
182 axis_object = model.addAxis(self.part, axis_point1.result()[0], axis_point2.result()[0]).result()[0]
183 to_obejct = to_sketch.selectFace()[0]
184 from_object = from_sketch.selectFace()[0]
186 self.revolution.setPlanesAndOffsets(to_obejct, 15, from_object, 20)
188 self.assertEqual(self.revolution.creationMethod().value(), "ByPlanesAndOffsets")
189 self.assertEqual(self.revolution.toAngle().value(), 0)
190 self.assertEqual(self.revolution.fromAngle().value(), 0)
191 # self.assertEqual(self.revolution.getToObject().context(), None)
192 self.assertEqual(self.revolution.toOffset().value(), 15)
193 # self.assertEqual(self.revolution.getFromObject().context(), None)
194 self.assertEqual(self.revolution.fromOffset().value(), 20)
197 if __name__ == "__main__":