7 #-----------------------------------------------------------------------------
10 class FeaturesAddExtrusionFixture(unittest.TestCase):
15 partset = model.moduleDocument()
16 self.part = model.addPart(partset).document()
24 class FeaturesExtrusionFixture(FeaturesAddExtrusionFixture):
27 FeaturesAddExtrusionFixture.setUp(self)
29 sketch = model.addSketch(self.part, model.defaultPlane("XOY"))
30 circle = sketch.addCircle(0, 0, 10)
33 base = sketch.selectFace(circle.result())
34 self.extrusion = model.addExtrusion(self.part, base, 10, 0)
38 FeaturesAddExtrusionFixture.tearDown(self)
40 #-----------------------------------------------------------------------------
43 class FeaturesAddExtrusionTestCase(FeaturesAddExtrusionFixture):
45 def test_add_extrusion_no_base(self):
47 extrusion = model.addExtrusion(self.part)
48 fail("addExtrusion should assert if base is not None")
49 except AssertionError:
52 def test_add_extrusion_by_face_and_size(self):
53 sketch = model.addSketch(self.part, model.defaultPlane("XOY"))
54 circle = sketch.addCircle(0, 0, 10)
57 base = sketch.selectFace(circle.result())
58 extrusion = model.addExtrusion(self.part, base, 10, 0)
61 self.assertEqual(extrusion.getCreationMethod().value(), "BySizes")
62 self.assertEqual(extrusion.getToSize().value(), 10)
63 self.assertEqual(extrusion.getFromSize().value(), 0)
64 self.assertEqual(extrusion.getToObject().context(), None)
65 self.assertEqual(extrusion.getToOffset().value(), 0)
66 self.assertEqual(extrusion.getFromObject().context(), None)
67 self.assertEqual(extrusion.getFromOffset().value(), 0)
69 def test_add_extrusion_by_face_and_planes(self):
71 base_sketch = model.addSketch(self.part, model.defaultPlane("XOY"))
72 base_circle = base_sketch.addCircle(0, 0, 10)
74 to_plane = model.defaultPlane("XOY")
75 to_plane.location().setZ(10)
76 to_sketch = model.addSketch(self.part, to_plane)
77 to_circle = to_sketch.addCircle(0, 0, 10)
79 from_plane = model.defaultPlane("XOY")
80 from_plane.location().setZ(-10)
81 from_sketch = model.addSketch(self.part, from_plane)
82 from_circle = from_sketch.addCircle(0, 0, 10)
86 base = base_sketch.selectFace(base_circle.result())
87 to_object = to_sketch.selectFace(to_circle.result())[0]
88 from_object = from_sketch.selectFace(from_circle.result())[0]
89 extrusion = model.addExtrusion(self.part, base,
93 self.assertEqual(extrusion.getCreationMethod().value(), "ByPlanesAndOffsets")
94 self.assertEqual(extrusion.getToSize().value(), 0)
95 self.assertEqual(extrusion.getFromSize().value(), 0)
96 # self.assertEqual(extrusion.getToObject().context(),
98 self.assertEqual(extrusion.getToOffset().value(), 15)
99 # self.assertEqual(extrusion.getFromObject().context(),
100 # from_sketch.result())
101 self.assertEqual(extrusion.getFromOffset().value(), 20)
104 class FeaturesExtrusionTestCase(FeaturesExtrusionFixture):
106 def test_extrusion_feature_calls(self):
107 # call method of the feature
108 self.assertEqual(self.extrusion.getKind(), "Extrusion")
110 def test_extrusion_get_attribute(self):
111 # call method of the feature
112 self.assertTrue(isinstance(self.extrusion.getBase(),
113 ModelAPI.ModelAPI_AttributeSelectionList))
114 self.assertTrue(isinstance(self.extrusion.getCreationMethod(),
115 ModelAPI.ModelAPI_AttributeString))
116 self.assertTrue(isinstance(self.extrusion.getToSize(),
117 ModelAPI.ModelAPI_AttributeDouble))
118 self.assertTrue(isinstance(self.extrusion.getFromSize(),
119 ModelAPI.ModelAPI_AttributeDouble))
120 self.assertTrue(isinstance(self.extrusion.getToObject(),
121 ModelAPI.ModelAPI_AttributeSelection))
122 self.assertTrue(isinstance(self.extrusion.getToOffset(),
123 ModelAPI.ModelAPI_AttributeDouble))
124 self.assertTrue(isinstance(self.extrusion.getFromObject(),
125 ModelAPI.ModelAPI_AttributeSelection))
126 self.assertTrue(isinstance(self.extrusion.getFromOffset(),
127 ModelAPI.ModelAPI_AttributeDouble))
129 def test_extrusion_set_sizes(self):
130 self.extrusion.setSizes(15, 20)
131 self.assertEqual(self.extrusion.getCreationMethod().value(), "BySizes")
132 self.assertEqual(self.extrusion.getToSize().value(), 15)
133 self.assertEqual(self.extrusion.getFromSize().value(), 20)
134 self.assertEqual(self.extrusion.getToObject().context(), None)
135 self.assertEqual(self.extrusion.getToOffset().value(), 0)
136 self.assertEqual(self.extrusion.getFromObject().context(), None)
137 self.assertEqual(self.extrusion.getFromOffset().value(), 0)
139 def test_extrusion_set_planes_and_offsets(self):
141 to_plane = model.defaultPlane("XOY")
142 to_plane.location().setZ(10)
143 to_sketch = model.addSketch(self.part, to_plane)
144 to_circle = to_sketch.addCircle(0, 0, 10)
146 from_plane = model.defaultPlane("XOY")
147 from_plane.location().setZ(-10)
148 from_sketch = model.addSketch(self.part, from_plane)
149 from_circle = from_sketch.addCircle(0, 0, 10)
153 to_object = to_sketch.selectFace(to_circle.result())[0]
154 from_object = from_sketch.selectFace(from_circle.result())[0]
155 self.extrusion.setPlanesAndOffsets(to_object, 15, from_object, 20)
158 if __name__ == "__main__":