| 4012 | self.assertEqual(len(solid.Faces()), 4) |
| 4013 | |
| 4014 | def testIsInsideSolid(self): |
| 4015 | # test solid |
| 4016 | model = Workplane("XY").box(10, 10, 10) |
| 4017 | solid = model.val() # get first object on stack |
| 4018 | |
| 4019 | self.assertTrue(solid.isInside((0, 0, 0))) |
| 4020 | self.assertFalse(solid.isInside((10, 10, 10))) |
| 4021 | self.assertTrue(solid.isInside((Vector(3, 3, 3)))) |
| 4022 | self.assertFalse(solid.isInside((Vector(30.0, 30.0, 30.0)))) |
| 4023 | |
| 4024 | self.assertTrue(solid.isInside((0, 0, 4.99), tolerance=0.1)) |
| 4025 | self.assertTrue(solid.isInside((0, 0, 5))) # check point on surface |
| 4026 | self.assertTrue(solid.isInside((0, 0, 5.01), tolerance=0.1)) |
| 4027 | self.assertFalse(solid.isInside((0, 0, 5.1), tolerance=0.1)) |
| 4028 | |
| 4029 | # test compound solid |
| 4030 | model = Workplane("XY").box(10, 10, 10) |
| 4031 | model = model.moveTo(50, 50).box(10, 10, 10) |
| 4032 | solid = model.val() |
| 4033 | |
| 4034 | self.assertTrue(solid.isInside((0, 0, 0))) |
| 4035 | self.assertTrue(solid.isInside((50, 50, 0))) |
| 4036 | self.assertFalse(solid.isInside((50, 56, 0))) |
| 4037 | |
| 4038 | # make sure raises on non solid |
| 4039 | model = Workplane("XY").rect(10, 10) |
| 4040 | solid = model.val() |
| 4041 | with self.assertRaises(AttributeError): |
| 4042 | solid.isInside((0, 0, 0)) |
| 4043 | |
| 4044 | # test solid with an internal void |
| 4045 | void = Workplane("XY").box(10, 10, 10) |
| 4046 | model = Workplane("XY").box(100, 100, 100).cut(void) |
| 4047 | solid = model.val() |
| 4048 | |
| 4049 | self.assertFalse(solid.isInside((0, 0, 0))) |
| 4050 | self.assertTrue(solid.isInside((40, 40, 40))) |
| 4051 | self.assertFalse(solid.isInside((55, 55, 55))) |
| 4052 | |
| 4053 | def testWorkplaneCenterOptions(self): |
| 4054 | """ |