| 2595 | self.assertTupleAlmostEquals(s.val().Center().toTuple(), (0, 0, 0), 3) |
| 2596 | |
| 2597 | def testCylinderCentering(self): |
| 2598 | radius = 10 |
| 2599 | height = 40 |
| 2600 | b = (True, False) |
| 2601 | expected_x = (0, radius) |
| 2602 | expected_y = (0, radius) |
| 2603 | expected_z = (0, height / 2) |
| 2604 | for (xopt, xval), (yopt, yval), (zopt, zval) in product( |
| 2605 | zip(b, expected_x), zip(b, expected_y), zip(b, expected_z) |
| 2606 | ): |
| 2607 | s = Workplane("XY").cylinder(height, radius, centered=(xopt, yopt, zopt)) |
| 2608 | self.assertEqual(1, s.size()) |
| 2609 | self.assertTupleAlmostEquals( |
| 2610 | s.val().Center().toTuple(), (xval, yval, zval), 3 |
| 2611 | ) |
| 2612 | # check centered=True produces the same result as centered=(True, True, True) |
| 2613 | for val in b: |
| 2614 | s0 = Workplane("XY").cylinder(height, radius, centered=val) |
| 2615 | self.assertEqual(s0.size(), 1) |
| 2616 | s1 = Workplane("XY").cylinder(height, radius, centered=(val, val, val)) |
| 2617 | self.assertEqual(s1.size(), 1) |
| 2618 | self.assertTupleAlmostEquals( |
| 2619 | s0.val().Center().toTuple(), s1.val().Center().toTuple(), 3 |
| 2620 | ) |
| 2621 | |
| 2622 | def testCylinderCenteringAndDirection(self): |
| 2623 | radius = 10 |