Added option to center workplane of projected origin.

Add 'ProjectedOrigin' option to centerOptions parameter of workplane method. Added test converge for all of the centerOption paramter choices.
This commit is contained in:
Michael Greminger
2019-05-22 15:57:30 -05:00
parent 10118e563a
commit 04bb8ff470
2 changed files with 80 additions and 4 deletions

View File

@ -1901,4 +1901,56 @@ class TestCadQuery(BaseTest):
self.assertEqual(len(solid.Vertices()),4)
self.assertEqual(len(solid.Faces()),4)
def testWorkplaneCenterOptions(self):
"""
Test options for specifiying origin of workplane
"""
decimal_places = 9
pts = [(90,0),(90,30),(30,30),(30,60),(0.0,60)]
r = Workplane("XY").polyline(pts).close().extrude(10.0)
origin = r.faces(">Z").workplane(centerOption='ProjectedOrigin') \
.plane.origin.toTuple()
self.assertTupleAlmostEquals(origin, (0.0, 0.0, 10.0), decimal_places)
origin = r.faces(">Z").workplane(centerOption='CenterOfMass') \
.plane.origin.toTuple()
self.assertTupleAlmostEquals(origin, (37.5, 22.5, 10.0), decimal_places)
origin = r.faces(">Z").workplane(centerOption='CenterOfBoundBox') \
.plane.origin.toTuple()
self.assertTupleAlmostEquals(origin, (45.0, 30.0, 10.0), decimal_places)
r = Workplane("YZ").polyline(pts).close().extrude(10.0)
origin = r.faces(">X").workplane(centerOption='ProjectedOrigin') \
.plane.origin.toTuple()
self.assertTupleAlmostEquals(origin, (10.0, 0.0, 0.0), decimal_places)
origin = r.faces(">X").workplane(centerOption='CenterOfMass') \
.plane.origin.toTuple()
self.assertTupleAlmostEquals(origin, (10.0, 37.5, 22.5), decimal_places)
origin = r.faces(">X").workplane(centerOption='CenterOfBoundBox') \
.plane.origin.toTuple()
self.assertTupleAlmostEquals(origin, (10.0, 45.0, 30.0), decimal_places)
r = Workplane("XZ").polyline(pts).close().extrude(10.0)
origin = r.faces("<Y").workplane(centerOption='ProjectedOrigin') \
.plane.origin.toTuple()
self.assertTupleAlmostEquals(origin, (0.0, -10.0, 0.0), decimal_places)
origin = r.faces("<Y").workplane(centerOption='CenterOfMass') \
.plane.origin.toTuple()
self.assertTupleAlmostEquals(origin, (37.5, -10.0, 22.5), decimal_places)
origin = r.faces("<Y").workplane(centerOption='CenterOfBoundBox') \
.plane.origin.toTuple()
self.assertTupleAlmostEquals(origin, (45.0, -10.0, 30.0), decimal_places)