From cf11f91f2dff653e723c68dc289cfac8355da756 Mon Sep 17 00:00:00 2001 From: Ethan Rooke Date: Tue, 12 Nov 2024 17:59:00 -0600 Subject: [PATCH] feat: add align.NONE --- src/build123d/build_enums.py | 1 + src/build123d/geometry.py | 2 ++ src/build123d/objects_sketch.py | 2 +- tests/test_build_sketch.py | 8 ++------ 4 files changed, 6 insertions(+), 7 deletions(-) diff --git a/src/build123d/build_enums.py b/src/build123d/build_enums.py index fe8ba0e..9802821 100644 --- a/src/build123d/build_enums.py +++ b/src/build123d/build_enums.py @@ -36,6 +36,7 @@ class Align(Enum): MIN = auto() CENTER = auto() MAX = auto() + NONE = None def __repr__(self): return f"<{self.__class__.__name__}.{self.name}>" diff --git a/src/build123d/geometry.py b/src/build123d/geometry.py index 9610f01..4b0c1fc 100644 --- a/src/build123d/geometry.py +++ b/src/build123d/geometry.py @@ -2541,4 +2541,6 @@ def to_align_offset( align_offset.append(-(min_coord + max_coord) / 2) elif alignment == Align.MAX: align_offset.append(-max_coord) + elif alignment == Align.NONE: + align_offset.append(0) return Vector(*align_offset) diff --git a/src/build123d/objects_sketch.py b/src/build123d/objects_sketch.py index 3d6b2a7..04c296b 100644 --- a/src/build123d/objects_sketch.py +++ b/src/build123d/objects_sketch.py @@ -311,7 +311,7 @@ class RegularPolygon(BaseSketchObject): side_count: int, major_radius: bool = True, rotation: float = 0, - align: tuple[Align, Align] = (Align.CENTER, Align.CENTER), + align: tuple[Align, Align] = (Align.NONE, Align.NONE), mode: Mode = Mode.ADD, ): # pylint: disable=too-many-locals diff --git a/tests/test_build_sketch.py b/tests/test_build_sketch.py index 23707c2..03fb388 100644 --- a/tests/test_build_sketch.py +++ b/tests/test_build_sketch.py @@ -29,8 +29,6 @@ license: import unittest from math import atan2, degrees, pi, sqrt -import pytest - from build123d import * @@ -260,7 +258,7 @@ class TestBuildSketchObjects(unittest.TestCase): self.assertEqual(r.radius, 2) self.assertEqual(r.side_count, 6) self.assertEqual(r.rotation, 0) - self.assertEqual(r.align, (Align.CENTER, Align.CENTER)) + self.assertEqual(r.align, (Align.NONE, Align.NONE)) self.assertEqual(r.mode, Mode.ADD) self.assertAlmostEqual(test.sketch.area, (3 * sqrt(3) / 2) * 2**2, 5) self.assertTupleAlmostEquals( @@ -274,14 +272,13 @@ class TestBuildSketchObjects(unittest.TestCase): self.assertAlmostEqual(r.radius, 1, 5) self.assertEqual(r.side_count, 3) self.assertEqual(r.rotation, 0) - self.assertEqual(r.align, (Align.CENTER, Align.CENTER)) + self.assertEqual(r.align, (Align.NONE, Align.NONE)) self.assertEqual(r.mode, Mode.ADD) self.assertAlmostEqual(test.sketch.area, (3 * sqrt(3) / 4) * (0.5 * 2) ** 2, 5) self.assertTupleAlmostEquals( test.sketch.faces()[0].normal_at().to_tuple(), (0, 0, 1), 5 ) - @pytest.mark.skip(reason="Conflicts with test_regular_polygon_matches_polar") def test_regular_polygon_align(self): with BuildSketch() as align: RegularPolygon(2, 5, align=(Align.MIN, Align.MAX)) @@ -297,7 +294,6 @@ class TestBuildSketchObjects(unittest.TestCase): Vector(align.vertices().sort_by_distance(other=(0, 0, 0))[-1]).length, 2 ) - @pytest.mark.skip(reason="Conflicts with test_regular_polygon_align") def test_regular_polygon_matches_polar(self): for side_count in range(3, 10): with BuildSketch():