5 #-----------------------------------------------------------------------------
8 class FeaturesAddExtrusionFixture(unittest.TestCase):
13 partset = model.moduleDocument()
14 self.part = model.addPart(partset).document()
22 class FeaturesExtrusionFixture(FeaturesAddExtrusionFixture):
25 FeaturesAddExtrusionFixture.setUp(self)
27 sketch = model.addSketch(self.part, model.defaultPlane("XOY"))
28 circle = sketch.addCircle(0, 0, 10)
29 self.extrusion = model.addExtrusion(self.part,
30 sketch.selectFace(circle.result()),
35 FeaturesAddExtrusionFixture.tearDown(self)
37 #-----------------------------------------------------------------------------
40 class FeaturesAddExtrusionTestCase(FeaturesAddExtrusionFixture):
42 def test_add_extrusion_no_base(self):
44 extrusion = model.addExtrusion(self.part)
45 fail("addExtrusion should assert if base is not None")
46 except AssertionError:
49 def test_add_extrusion_by_face_and_size(self):
50 sketch = model.addSketch(self.part, model.defaultPlane("XOY"))
51 circle = sketch.addCircle(0, 0, 10)
52 extrusion = model.addExtrusion(self.part,
53 sketch.selectFace(circle.result()),
56 self.assertEqual(extrusion.getCreationMethod().value(), "BySizes")
57 self.assertEqual(extrusion.getToSize().value(), 10)
58 self.assertEqual(extrusion.getFromSize().value(), 0)
59 self.assertEqual(extrusion.getToObject().context(), None)
60 self.assertEqual(extrusion.getToOffset().value(), 0)
61 self.assertEqual(extrusion.getFromObject().context(), None)
62 self.assertEqual(extrusion.getFromOffset().value(), 0)
64 def test_add_extrusion_by_face_and_planes(self):
66 base_sketch = model.addSketch(self.part, model.defaultPlane("XOY"))
67 base_circle = base_sketch.addCircle(0, 0, 10)
68 base_sketch.selectFace(base_circle.result())
70 to_plane = model.defaultPlane("XOY")
71 to_plane.location().setZ(10)
72 to_sketch = model.addSketch(self.part, to_plane)
73 to_circle = to_sketch.addCircle(0, 0, 10)
74 to_sketch.selectFace(to_circle.result())
76 from_plane = model.defaultPlane("XOY")
77 from_plane.location().setZ(-10)
78 from_sketch = model.addSketch(self.part, from_plane)
79 from_circle = from_sketch.addCircle(0, 0, 10)
80 from_sketch.selectFace(from_circle.result())
82 extrusion = model.addExtrusion(self.part,
87 self.assertEqual(extrusion.getCreationMethod().value(), "ByPlanesAndOffsets")
88 self.assertEqual(extrusion.getToSize().value(), 0)
89 self.assertEqual(extrusion.getFromSize().value(), 0)
90 # self.assertEqual(extrusion.getToObject().context(),
92 self.assertEqual(extrusion.getToOffset().value(), 15)
93 # self.assertEqual(extrusion.getFromObject().context(),
94 # from_sketch.result())
95 self.assertEqual(extrusion.getFromOffset().value(), 20)
98 class FeaturesExtrusionTestCase(FeaturesExtrusionFixture):
100 def test_extrusion_feature_calls(self):
101 # call method of the feature
102 self.assertEqual(self.extrusion.getKind(), "Extrusion")
104 def test_extrusion_get_attribute(self):
105 # call method of the feature
106 self.assertTrue(isinstance(self.extrusion.getBase(),
107 ModelAPI.ModelAPI_AttributeSelectionList))
108 self.assertTrue(isinstance(self.extrusion.getCreationMethod(),
109 ModelAPI.ModelAPI_AttributeString))
110 self.assertTrue(isinstance(self.extrusion.getToSize(),
111 ModelAPI.ModelAPI_AttributeDouble))
112 self.assertTrue(isinstance(self.extrusion.getFromSize(),
113 ModelAPI.ModelAPI_AttributeDouble))
114 self.assertTrue(isinstance(self.extrusion.getToObject(),
115 ModelAPI.ModelAPI_AttributeSelection))
116 self.assertTrue(isinstance(self.extrusion.getToOffset(),
117 ModelAPI.ModelAPI_AttributeDouble))
118 self.assertTrue(isinstance(self.extrusion.getFromObject(),
119 ModelAPI.ModelAPI_AttributeSelection))
120 self.assertTrue(isinstance(self.extrusion.getFromOffset(),
121 ModelAPI.ModelAPI_AttributeDouble))
123 def test_extrusion_set_sizes(self):
124 self.extrusion.setSize(15, 20)
125 self.assertEqual(self.extrusion.getCreationMethod().value(), "BySizes")
126 self.assertEqual(self.extrusion.getToSize().value(), 15)
127 self.assertEqual(self.extrusion.getFromSize().value(), 20)
128 self.assertEqual(self.extrusion.getToObject().context(), None)
129 self.assertEqual(self.extrusion.getToOffset().value(), 0)
130 self.assertEqual(self.extrusion.getFromObject().context(), None)
131 self.assertEqual(self.extrusion.getFromOffset().value(), 0)
133 def test_extrusion_set_planes_and_offsets(self):
135 base_sketch = model.addSketch(self.part, model.defaultPlane("XOY"))
136 base_circle = base_sketch.addCircle(0, 0, 10)
137 base_sketch.selectFace(base_circle.result())
139 to_plane = model.defaultPlane("XOY")
140 to_plane.location().setZ(10)
141 to_sketch = model.addSketch(self.part, to_plane)
142 to_circle = to_sketch.addCircle(0, 0, 10)
143 to_sketch.selectFace(to_circle.result())
145 from_plane = model.defaultPlane("XOY")
146 from_plane.location().setZ(-10)
147 from_sketch = model.addSketch(self.part, from_plane)
148 from_circle = from_sketch.addCircle(0, 0, 10)
149 from_sketch.selectFace(from_circle.result())
151 self.extrusion.setPlanesAndOffsets(to_sketch, 15, from_sketch, 20)
154 if __name__ == "__main__":