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()
34 self.extrusion = model.addExtrusion(self.part, base, 10, 0)
38 FeaturesAddExtrusionFixture.tearDown(self)
40 #-----------------------------------------------------------------------------
43 class FeaturesAddExtrusionTestCase(FeaturesAddExtrusionFixture):
45 def test_add_extrusion_by_face_and_size(self):
46 sketch = model.addSketch(self.part, model.defaultPlane("XOY"))
47 circle = sketch.addCircle(0, 0, 10)
50 base = sketch.selectFace()
51 extrusion = model.addExtrusion(self.part, base, 10, 0)
54 self.assertEqual(extrusion.creationMethod().value(), "BySizes")
55 self.assertEqual(extrusion.toSize().value(), 10)
56 self.assertEqual(extrusion.fromSize().value(), 0)
57 self.assertEqual(extrusion.toObject().context(), None)
58 self.assertEqual(extrusion.toOffset().value(), 0)
59 self.assertEqual(extrusion.fromObject().context(), None)
60 self.assertEqual(extrusion.fromOffset().value(), 0)
62 def test_add_extrusion_by_face_and_planes(self):
64 base_sketch = model.addSketch(self.part, model.defaultPlane("XOY"))
65 base_circle = base_sketch.addCircle(0, 0, 10)
67 to_plane = model.defaultPlane("XOY")
68 to_plane.origin().setZ(10)
69 to_sketch = model.addSketch(self.part, to_plane)
70 to_circle = to_sketch.addCircle(0, 0, 10)
72 from_plane = model.defaultPlane("XOY")
73 from_plane.origin().setZ(-10)
74 from_sketch = model.addSketch(self.part, from_plane)
75 from_circle = from_sketch.addCircle(0, 0, 10)
79 base = base_sketch.selectFace()
80 to_object = to_sketch.selectFace()[0]
81 from_object = from_sketch.selectFace()[0]
82 extrusion = model.addExtrusion(self.part, base,
86 self.assertEqual(extrusion.creationMethod().value(), "ByPlanesAndOffsets")
87 self.assertEqual(extrusion.toSize().value(), 0)
88 self.assertEqual(extrusion.fromSize().value(), 0)
89 # self.assertEqual(extrusion.getToObject().context(),
91 self.assertEqual(extrusion.toOffset().value(), 15)
92 # self.assertEqual(extrusion.getFromObject().context(),
93 # from_sketch.result())
94 self.assertEqual(extrusion.fromOffset().value(), 20)
97 class FeaturesExtrusionTestCase(FeaturesExtrusionFixture):
99 def test_extrusion_feature_calls(self):
100 # call method of the feature
101 self.assertEqual(self.extrusion.getKind(), "Extrusion")
103 def test_extrusion_get_attribute(self):
104 # call method of the feature
105 self.assertTrue(isinstance(self.extrusion.baseObjects(),
106 ModelAPI.ModelAPI_AttributeSelectionList))
107 self.assertTrue(isinstance(self.extrusion.creationMethod(),
108 ModelAPI.ModelAPI_AttributeString))
109 self.assertTrue(isinstance(self.extrusion.toSize(),
110 ModelAPI.ModelAPI_AttributeDouble))
111 self.assertTrue(isinstance(self.extrusion.fromSize(),
112 ModelAPI.ModelAPI_AttributeDouble))
113 self.assertTrue(isinstance(self.extrusion.toObject(),
114 ModelAPI.ModelAPI_AttributeSelection))
115 self.assertTrue(isinstance(self.extrusion.toOffset(),
116 ModelAPI.ModelAPI_AttributeDouble))
117 self.assertTrue(isinstance(self.extrusion.fromObject(),
118 ModelAPI.ModelAPI_AttributeSelection))
119 self.assertTrue(isinstance(self.extrusion.fromOffset(),
120 ModelAPI.ModelAPI_AttributeDouble))
122 def test_extrusion_set_sizes(self):
123 self.extrusion.setSizes(15, 20)
124 self.assertEqual(self.extrusion.creationMethod().value(), "BySizes")
125 self.assertEqual(self.extrusion.toSize().value(), 15)
126 self.assertEqual(self.extrusion.fromSize().value(), 20)
127 self.assertEqual(self.extrusion.toObject().context(), None)
128 self.assertEqual(self.extrusion.toOffset().value(), 0)
129 self.assertEqual(self.extrusion.fromObject().context(), None)
130 self.assertEqual(self.extrusion.fromOffset().value(), 0)
132 def test_extrusion_set_planes_and_offsets(self):
134 to_plane = model.defaultPlane("XOY")
135 to_plane.origin().setZ(10)
136 to_sketch = model.addSketch(self.part, to_plane)
137 to_circle = to_sketch.addCircle(0, 0, 10)
139 from_plane = model.defaultPlane("XOY")
140 from_plane.origin().setZ(-10)
141 from_sketch = model.addSketch(self.part, from_plane)
142 from_circle = from_sketch.addCircle(0, 0, 10)
146 to_object = to_sketch.selectFace()[0]
147 from_object = from_sketch.selectFace()[0]
148 self.extrusion.setPlanesAndOffsets(to_object, 15, from_object, 20)
151 if __name__ == "__main__":