From f794b6bea76bf994dc415cf1ed81fca6871b06f3 Mon Sep 17 00:00:00 2001 From: DragosVMosteanu <138504998+DragosVMosteanu@users.noreply.github.com> Date: Tue, 12 Nov 2024 15:55:53 +0000 Subject: [PATCH 01/10] Feat/add pymotorcad methods for transient (#327) * added thermal option for save and load results * added version check and input check for save and load results * case sensitivity and message string changes * case sensitivity and message string changes * tests for thermal save and load * Apply suggestions from code review * improve test coverage --------- Co-authored-by: Jack Davies Co-authored-by: Jack Davies <80680946+jgsdavies@users.noreply.github.com> --- .../core/methods/rpc_methods_general.py | 31 +++++++++--- tests/test_general.py | 48 +++++++++++++------ 2 files changed, 59 insertions(+), 20 deletions(-) diff --git a/src/ansys/motorcad/core/methods/rpc_methods_general.py b/src/ansys/motorcad/core/methods/rpc_methods_general.py index 1e9b1d0d4..83dc1699b 100644 --- a/src/ansys/motorcad/core/methods/rpc_methods_general.py +++ b/src/ansys/motorcad/core/methods/rpc_methods_general.py @@ -21,6 +21,7 @@ # SOFTWARE. """RPC methods (general).""" +from ansys.motorcad.core.rpc_client_core import MotorCADError class _RpcMethodsGeneral: @@ -378,31 +379,49 @@ def save_to_file(self, mot_file): return self.connection.send_and_receive(method, params) def save_results(self, solution_type): - """Save the output results from an ``"EMagnetic"`` solution. + """Save the output results from an ``"EMagnetic"`` or ``"Thermal"`` solution. - This method supports only ``"EMagnetic"`` solutions. + This method supports only ``"EMagnetic"`` or ``"Thermal"`` solutions. Parameters ---------- solution_type : str - Soultion type, which must be ``"EMagnetic"``. + Solution type, which must be ``"EMagnetic"`` or ``"Thermal"``. """ method = "SaveResults" params = [solution_type] + + if solution_type.lower() == "thermal": + self.connection.ensure_version_at_least("2025.0") + elif solution_type.lower() != "emagnetic": + raise MotorCADError( + "Save results are not available for this solution type: " + + solution_type + + "\nAvailable solution types are: Thermal, EMagnetic" + ) return self.connection.send_and_receive(method, params) def load_results(self, solution_type): - """Load the output results from an ``"EMagnetic"`` solution. + """Load the output results from an ``"EMagnetic"`` or ``"Thermal"`` solution. - This method supports only ``"EMagnetic"`` solution. + This method supports only ``"EMagnetic"`` or ``"Thermal"`` solution. Parameters ---------- solution_type : str - Soultion type, which must be ``"EMagnetic"``. + Solution type, which must be ``"EMagnetic"`` or ``"Thermal"``. """ method = "LoadResults" params = [solution_type] + + if solution_type.lower() == "thermal": + self.connection.ensure_version_at_least("2025.0") + elif solution_type.lower() != "emagnetic": + raise MotorCADError( + "Load results are not available for this solution type: " + + solution_type + + "\nAvailable solution types are: Thermal, EMagnetic" + ) return self.connection.send_and_receive(method, params) def load_magnetisation_curves(self, file_path): diff --git a/tests/test_general.py b/tests/test_general.py index a0031b2c8..5753f957b 100644 --- a/tests/test_general.py +++ b/tests/test_general.py @@ -22,6 +22,8 @@ import os +import pytest + from RPC_Test_Common import ( almost_equal, get_base_test_file_path, @@ -31,7 +33,7 @@ reset_to_default_file, ) import ansys.motorcad.core -from ansys.motorcad.core import MotorCAD +from ansys.motorcad.core import MotorCAD, MotorCADError # Allows us to add a new api method to testing before the next Motor-CAD release is available # Dev release will have a lower version number than actual release so don't want to check this @@ -188,21 +190,39 @@ def test_save_load_magnetisation_curves(mc): reset_to_default_file(mc) -def test_save_load_results(): +def test_save_load_results(mc): # Currently not working as part of full tests # Works individually - need to look into this - pass - # mc.do_magnetic_calculation() - # mc.save_results("EMagnetic") - # assert os.path.exists(get_temp_files_dir_path() + r"\temp_test_file\EMag\outputResults.mot") - # assert os.path.exists(get_temp_files_dir_path() + r"\temp_test_file\EMag\GraphResults.ini") - # - # mc.load_from_file(get_temp_files_dir_path() + r"\temp_test_file.mot") - # - # mc.load_results("EMagnetic") - # assert mc.get_variable("MaxTorque") != 0 - # - # reset_to_default_file(mc) + + # EMag test + mc.do_magnetic_calculation() + mc.save_results("EMagnetic") + assert os.path.exists(get_temp_files_dir_path() + r"\temp_test_file\EMag\outputResults.mot") + assert os.path.exists(get_temp_files_dir_path() + r"\temp_test_file\EMag\GraphResults.ini") + + mc.load_from_file(get_temp_files_dir_path() + r"\temp_test_file.mot") + + mc.load_results("EMagnetic") + assert mc.get_variable("MaxTorque") != 0 + + reset_to_default_file(mc) + + # Thermal test - transient graphs only + mc.do_transient_analysis() + mc.save_results("Thermal") + assert os.path.exists(get_temp_files_dir_path() + r"\temp_test_file\Thermal\GraphResults.ini") + + mc.load_from_file(get_temp_files_dir_path() + r"\temp_test_file.mot") + + mc.load_results("TheRmal") + assert mc.get_power_graph_point("Armature Copper(Total)", 5) != 0 + + with pytest.raises(MotorCADError): + mc.load_results("wrong_type") + + with pytest.raises(MotorCADError): + mc.save_results("wrong_type") + reset_to_default_file(mc) def test_get_message(mc): From 4a85bae01130569b17df464c86a566f9d065227a Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Fri, 1 Nov 2024 08:47:15 +0000 Subject: [PATCH 02/10] Bump ansys-sphinx-theme from 1.1.6 to 1.2.0 Bumps [ansys-sphinx-theme](https://github.com/ansys/ansys-sphinx-theme) from 1.1.6 to 1.2.0. - [Release notes](https://github.com/ansys/ansys-sphinx-theme/releases) - [Commits](https://github.com/ansys/ansys-sphinx-theme/compare/v1.1.6...v1.2.0) --- updated-dependencies: - dependency-name: ansys-sphinx-theme dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] --- pyproject.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pyproject.toml b/pyproject.toml index 81ae583df..ef9276ede 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -43,7 +43,7 @@ tests = [ doc = [ "Sphinx==8.1.3", "numpydoc==1.8.0", - "ansys-sphinx-theme==1.1.6", + "ansys-sphinx-theme==1.2.0", "sphinx-copybutton==0.5.2", "sphinx-gallery==0.18.0", "matplotlib", From d5112d34316687632607291fb9a0a2d89a6a852e Mon Sep 17 00:00:00 2001 From: Shreya Gursal Date: Tue, 19 Nov 2024 14:59:49 +0000 Subject: [PATCH 03/10] [internal gen] Run Regression Tests from PyMotorCAD API (#398) * API Method and test. * Adjustments made to the test. * Tests for errors raised. Changed template use. * Draft API Method for running regression tests from pymotorcad. * Placed API method into its own class: _RpcMethodsTesting. * Update test_lab.py Revert accidental changes from another task. * Update rpc_methods_lab.py Revert accidental changes from another task. * ignore coverage for regression testing file * Documentation update in response to review comments * Update --------- Co-authored-by: ShreyaGursal Co-authored-by: Jack Davies <80680946+jgsdavies@users.noreply.github.com> Co-authored-by: Jack Davies --- codecov.yml | 1 + .../core/methods/rpc_methods_testing.py | 62 +++++++++++++++++++ src/ansys/motorcad/core/rpc_methods_core.py | 3 + 3 files changed, 66 insertions(+) create mode 100644 src/ansys/motorcad/core/methods/rpc_methods_testing.py diff --git a/codecov.yml b/codecov.yml index a4c5ae714..58f9a58d6 100644 --- a/codecov.yml +++ b/codecov.yml @@ -15,3 +15,4 @@ coverage: ignore: - "src/ansys/motorcad/core/rpc_methods_core_old.py" # Just contains layer to run old scripts - deprecated - "src/ansys/motorcad/core/methods/rpc_methods_internal.py" # Internal methods - users are warned that these are undocumented/untested/deprecated + - "src/ansys/motorcad/core/methods/rpc_methods_testing.py" # regression testing methods - not for users \ No newline at end of file diff --git a/src/ansys/motorcad/core/methods/rpc_methods_testing.py b/src/ansys/motorcad/core/methods/rpc_methods_testing.py new file mode 100644 index 000000000..0813512d6 --- /dev/null +++ b/src/ansys/motorcad/core/methods/rpc_methods_testing.py @@ -0,0 +1,62 @@ +# Copyright (C) 2022 - 2024 ANSYS, Inc. and/or its affiliates. +# SPDX-License-Identifier: MIT +# +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in all +# copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +# SOFTWARE. + +"""Contains JSON-RPC API methods that are only for internal use. + +DO NOT USE IN SCRIPTS. +""" + + +class _RpcMethodsTesting: + def __init__(self, mc_connection): + self.connection = mc_connection + + def run_regression_tests(self, test_categories, calculation_method, decimal_separator): + """Run regression tests. + + Parameters + ---------- + test_categories : str + If running specific sets of tests, the following format + is used: "Test_Category1|Test_Category2|etc" + Test category options are: "Regression_EMag_Full_Original", + "Regression_EMag_NoFEA_Original", "Regression_FEA_Emag", "Regression_FEA_Mech", + "Regression_FEA_Thermal", "Regression_Thermal_Steady", "Regression_Thermal_Transient", + "Regression_Lab_OperatingPoints", "Regression_Lab_ModelBuild", + "Regression_Lab_Emag", "Regression_Lab_Thermal", + "Regression_Lab_DutyCycle", "Regression_Lab_GenerationOrCalibration", + and "Regression_Geometry" + calculation_method : int + Type of calculation method. Options are "0" or "1" referring to "New Methods" or + "Compatibility Methods" consecutively. + decimal_separator : int + Type of decimal separator. Options are "0", "1" or "2" referring to "Standard", + "Alternate" or "Standard + Alternate" consecutively. + + Returns + ------- + dict + Test results including name, test case, diff type, and major and minor differences. + """ + method = "RunRegressionTests" + params = [test_categories, calculation_method, decimal_separator] + return self.connection.send_and_receive(method, params) diff --git a/src/ansys/motorcad/core/rpc_methods_core.py b/src/ansys/motorcad/core/rpc_methods_core.py index 546523651..a4720ec52 100644 --- a/src/ansys/motorcad/core/rpc_methods_core.py +++ b/src/ansys/motorcad/core/rpc_methods_core.py @@ -34,6 +34,7 @@ from ansys.motorcad.core.methods.rpc_methods_internal_scripting import _RpcMethodsInternalScripting from ansys.motorcad.core.methods.rpc_methods_lab import _RpcMethodsLab from ansys.motorcad.core.methods.rpc_methods_materials import _RpcMethodsMaterials +from ansys.motorcad.core.methods.rpc_methods_testing import _RpcMethodsTesting from ansys.motorcad.core.methods.rpc_methods_thermal import _RpcMethodsThermal from ansys.motorcad.core.methods.rpc_methods_ui import _RpcMethodsUI from ansys.motorcad.core.methods.rpc_methods_variables import _RpcMethodsVariables @@ -52,6 +53,7 @@ class _RpcMethodsCore( _RpcMethodsFEAGeometry, _RpcMethodsMaterials, _RpcMethodsAdaptiveGeometry, + _RpcMethodsTesting, ): def __init__(self, mc_connection): self.connection = mc_connection @@ -68,3 +70,4 @@ def __init__(self, mc_connection): _RpcMethodsFEAGeometry.__init__(self, self.connection) _RpcMethodsMaterials.__init__(self, self.connection) _RpcMethodsAdaptiveGeometry.__init__(self, self.connection) + _RpcMethodsTesting.__init__(self, self.connection) From e06a5e00fe612d9d615f8ade21853e80a4ca92d8 Mon Sep 17 00:00:00 2001 From: Jack <106958177+JackB-Ansys@users.noreply.github.com> Date: Tue, 26 Nov 2024 13:35:52 +0000 Subject: [PATCH 04/10] Add new class methods for returning intersection coordinates of entities (#422) * Add new class methods for returning intersection coordinates of entities * fixes and added tests for get_intersections * Corrected docstrings * Add special case handling for vertical line intersection with arc. * Correct typo * More tests. * added comments and removed unnecessary lines --------- Co-authored-by: Jack Davies <80680946+jgsdavies@users.noreply.github.com> Co-authored-by: James Packer --- src/ansys/motorcad/core/geometry.py | 169 ++++++++++++++++++++++++++++ tests/test_geometry.py | 124 ++++++++++++++++++++ 2 files changed, 293 insertions(+) diff --git a/src/ansys/motorcad/core/geometry.py b/src/ansys/motorcad/core/geometry.py index 0cd227a0e..64a9088df 100644 --- a/src/ansys/motorcad/core/geometry.py +++ b/src/ansys/motorcad/core/geometry.py @@ -900,6 +900,47 @@ def translate(self, x, y): self.start.translate(x, y) self.end.translate(x, y) + def get_intersection(self, entity): + """Get intersection Coordinate of entity with another entity. + + Returns None if intersection not found. + + Parameters + ---------- + entity : ansys.motorcad.core.geometry.Line or ansys.motorcad.core.geometry.Arc + + Returns + ------- + ansys.motorcad.core.geometry.Coordinate or list of Coordinate or None + """ + if isinstance(self, Line): + if isinstance(entity, Line): + points = self.get_line_intersection(entity) + elif isinstance(entity, Arc): + points = entity.get_line_intersection(self) + else: + raise Exception("Entity type is not Arc or Line") + else: + if isinstance(entity, Line): + points = self.get_line_intersection(entity) + elif isinstance(entity, Arc): + points = self.get_arc_intersection(entity) + if points: + intersections = [] + if type(points) == list: + for point in points: + if self.coordinate_on_entity(point): + intersections.append(point) + else: + if self.coordinate_on_entity(points): + intersections.append(points) + if intersections: + return intersections + else: + return None + else: + return None + class Line(Entity): """Python representation of Motor-CAD line entity based upon start and end coordinates. @@ -1129,6 +1170,21 @@ def get_line_intersection(self, line): # Lines don't intersect return None + def get_arc_intersection(self, arc): + """Get intersection Coordinates of line with an arc. + + Returns None if intersection not found. + + Parameters + ---------- + arc : ansys.motorcad.core.geometry.Arc + + Returns + ------- + ansys.motorcad.core.geometry.Coordinate or list of Coordinate or None + """ + return arc.get_line_intersection(self) + class _BaseArc(Entity): """Internal class to allow creation of Arcs.""" @@ -1287,6 +1343,119 @@ def coordinate_on_entity(self, coordinate): abs(radius), abs(self.radius), abs_tol=GEOM_TOLERANCE ) + def get_line_intersection(self, line): + """Get intersection Coordinates of arc with a line. + + Returns None if intersection not found. + + Parameters + ---------- + line : ansys.motorcad.core.geometry.Line + + Returns + ------- + ansys.motorcad.core.geometry.Coordinate or list of Coordinate or None + """ + # circle of the arc + a = self.centre.x + b = self.centre.y + r = self.radius + + if line.is_vertical: + # line x coordinate is constant + x = line.start.x + + A = 1 + B = -2 * b + C = x**2 - 2 * x * a + a**2 + b**2 - r**2 + D = B**2 - 4 * A * C + + if D < 0: + # line and circle do not intersect + return None + elif D == 0: + # line and circle intersect at 1 point + y = -B / (2 * A) + return Coordinate(x, y) + else: + # line and circle intersect at 2 points + y1 = (-B + sqrt(D)) / (2 * A) + y2 = (-B - sqrt(D)) / (2 * A) + return [Coordinate(x, y1), Coordinate(x, y2)] + else: + # Normal case, line y is a function of x + m = line.gradient + c = line.y_intercept + + A = 1 + m**2 + B = 2 * (m * (c - b) - a) + C = a**2 + (c - b) ** 2 - r**2 + + D = B**2 - 4 * A * C + if D < 0: + # line and circle do not intersect + return None + elif D == 0: + # line and circle intersect at 1 point + x = -B / (2 * A) + y = m * x + c + return Coordinate(x, y) + else: + # line and circle intersect at 2 points + x1 = (-B + sqrt(D)) / (2 * A) + x2 = (-B - sqrt(D)) / (2 * A) + y1 = m * x1 + c + y2 = m * x2 + c + return [Coordinate(x1, y1), Coordinate(x2, y2)] + + def get_arc_intersection(self, arc): + """Get intersection Coordinates of arc with another arc. + + Returns None if intersection not found. + + Parameters + ---------- + arc : ansys.motorcad.core.geometry.Arc + + Returns + ------- + list of Coordinate or None + """ + # circle of self + a1 = self.centre.x + b1 = self.centre.y + r1 = abs(self.radius) + + # circle of other arc + a2 = arc.centre.x + b2 = arc.centre.y + r2 = abs(arc.radius) + + d = sqrt((a2 - a1) ** 2 + (b2 - b1) ** 2) + + if d > (r1 + r2): + # if they don't intersect + return None + if d < abs(r1 - r2): + # if one circle is inside the other + return None + if d == 0 and r1 == r2: + # coincident circles + return None + else: + a = (r1**2 - r2**2 + d**2) / (2 * d) + h = sqrt(r1**2 - a**2) + + x = a1 + a * (a2 - a1) / d + y = b1 + a * (b2 - b1) / d + x1 = x + h * (b2 - b1) / d + y1 = y - h * (a2 - a1) / d + + x2 = x - h * (b2 - b1) / d + y2 = y + h * (a2 - a1) / d + + return [Coordinate(x1, y1), Coordinate(x2, y2)] + @property def start_angle(self): """Get angle of start point from centre point coordinates. diff --git a/tests/test_geometry.py b/tests/test_geometry.py index b05963e0c..3ef5c3e7d 100644 --- a/tests/test_geometry.py +++ b/tests/test_geometry.py @@ -1685,6 +1685,130 @@ def test_get_line_intersection(): assert l1.get_line_intersection(l2) is None +def test_get_intersection(): + arc_1 = Arc(Coordinate(0, 0), Coordinate(5, 5), radius=15) + arc_2 = Arc(Coordinate(0, 6), Coordinate(5, 1), radius=-21) + + coordinate = Coordinate(0, 0) + + # test get_intersection + + # 2 arcs, 1 intersection + intersection_1_2 = arc_1.get_intersection(arc_2) + intersection_2_1 = arc_2.get_intersection(arc_1) + assert len(intersection_1_2) == 1 + assert len(intersection_2_1) == 1 + assert intersection_1_2[0] == intersection_2_1[0] + assert arc_1.coordinate_on_entity(intersection_1_2[0]) + assert arc_2.coordinate_on_entity(intersection_1_2[0]) + # draw_objects_debug([arc_1, arc_2, intersection_1_2[0]]) + + # 2 arcs, 2 intersections + arc_3 = Arc(Coordinate(1, 0), Coordinate(5, 4), radius=-5) + intersection_1_3 = arc_1.get_arc_intersection(arc_3) + intersection_3_1 = arc_3.get_arc_intersection(arc_1) + assert len(intersection_1_3) == 2 + assert len(intersection_3_1) == 2 + for point in intersection_1_3: + assert arc_1.coordinate_on_entity(point) + assert arc_3.coordinate_on_entity(point) + assert point in intersection_3_1 + # draw_objects_debug([arc_1, arc_3, intersection_1_3[0], intersection_1_3[1]]) + + # 2 arcs, 0 intersection + arc_4 = Arc(Coordinate(0, -1), Coordinate(0, 1), radius=1) + arc_5 = Arc(Coordinate(0, -0.5), Coordinate(0, 0.5), radius=0.5) + intersection_4_5 = arc_4.get_intersection(arc_5) + intersection_5_4 = arc_5.get_intersection(arc_4) + assert intersection_4_5 is None + assert intersection_5_4 is None + # draw_objects_debug([arc_4, arc_5]) + + # 2 arcs, same radius, 0 intersection + intersection_4_4 = arc_4.get_intersection(arc_4) + assert intersection_4_4 is None + # draw_objects_debug([arc_4]) + + # 1 arc, 1 line, 1 intersection + line_4 = Line(Coordinate(0, 6), Coordinate(5, 1)) + intersection_1_4 = arc_1.get_intersection(line_4) + intersection_4_1 = line_4.get_intersection(arc_1) + intersection_4_1_alt = line_4.get_arc_intersection(arc_1) + assert len(intersection_1_4) == 1 + assert len(intersection_4_1) == 1 + assert len(intersection_4_1_alt) >= len(intersection_4_1) + assert intersection_1_4[0] == intersection_4_1[0] + assert intersection_4_1[0] in intersection_4_1_alt + assert arc_1.coordinate_on_entity(intersection_1_4[0]) + assert line_4.coordinate_on_entity(intersection_1_4[0]) + # draw_objects_debug([arc_1, line_4, intersection_1_4[0]]) + + # 1 arc, 1 line, 2 intersections + line_5 = Line(Coordinate(1, 0), Coordinate(5, 4)) + arc_6 = Arc(Coordinate(0, 0), Coordinate(5, 5), radius=8) + intersection_5_6 = line_5.get_intersection(arc_6) + intersection_6_5 = arc_6.get_intersection(line_5) + assert len(intersection_5_6) == 2 + assert len(intersection_6_5) == 2 + for point in intersection_5_6: + assert line_5.coordinate_on_entity(point) + assert arc_6.coordinate_on_entity(point) + assert point in intersection_6_5 + # draw_objects_debug([arc_6, line_5, intersection_5_6[0], intersection_5_6[1]]) + + # 1 arc, 1 line, 1 intersection (vertical tangent line) + arc_7 = Arc(Coordinate(0, 0), Coordinate(0, 2), radius=1) + line_6 = Line(Coordinate(1, 2), Coordinate(1, 0)) + intersection_7_6 = arc_7.get_intersection(line_6) + intersection_6_7 = line_6.get_intersection(arc_7) + assert len(intersection_7_6) == 1 + assert len(intersection_6_7) == 1 + assert intersection_7_6[0] == intersection_6_7[0] + assert arc_7.coordinate_on_entity(intersection_7_6[0]) + assert line_6.coordinate_on_entity(intersection_7_6[0]) + # draw_objects_debug([arc_7, line_6, intersection_7_6[0]]) + + # 1 arc, 1 line, 2 intersections (vertical line) + line_7 = Line(Coordinate(0.5, 2), Coordinate(0.5, 0)) + intersection_7a_7l = arc_7.get_intersection(line_7) + intersection_7l_7a = line_7.get_intersection(arc_7) + assert len(intersection_7a_7l) == 2 + assert len(intersection_7l_7a) == 2 + assert intersection_7a_7l[0] == intersection_7l_7a[0] + assert arc_7.coordinate_on_entity(intersection_7l_7a[0]) + assert line_7.coordinate_on_entity(intersection_7l_7a[0]) + # draw_objects_debug([arc_7, line_7, intersection_7a_7l[0], intersection_7a_7l[1]]) + + # 1 arc, 1 line, 1 intersection (horizontal tangent line) + line_8 = Line(Coordinate(-1, 2), Coordinate(1, 2)) + intersection_7_8 = arc_7.get_intersection(line_8) + intersection_8_7 = line_8.get_intersection(arc_7) + assert len(intersection_7_8) == 1 + assert len(intersection_8_7) == 1 + assert intersection_7_8[0] == intersection_8_7[0] + assert arc_7.coordinate_on_entity(intersection_7_8[0]) + assert line_8.coordinate_on_entity(intersection_7_8[0]) + # draw_objects_debug([arc_7, line_8, intersection_7_8[0]]) + + # 2 lines, 1 intersection + intersection_4_5 = line_4.get_intersection(line_5) + intersection_5_4 = line_5.get_intersection(line_4) + assert len(intersection_4_5) == 1 + assert len(intersection_5_4) == 1 + assert intersection_4_5[0] == intersection_5_4[0] + assert line_4.coordinate_on_entity(intersection_4_5[0]) + assert line_5.coordinate_on_entity(intersection_4_5[0]) + # draw_objects_debug([line_4, line_5, intersection_4_5[0]]) + + # Arc intersection with point, not valid, should raise exception + with pytest.raises(Exception) as e_info: + arc_1.get_intersection(coordinate) # noqa + + # Line intersection with point, not valid, should raise exception + with pytest.raises(Exception) as e_info: + line_1.get_intersection(coordinate) # noqa + + def test_arc_from_coordinates(): c1 = Coordinate(1, 0) c2 = Coordinate(sin(pi / 4), sin(pi / 4)) From eab6e22e0e7081e025fee2c296ca3c7999e38f17 Mon Sep 17 00:00:00 2001 From: Jack <106958177+JackB-Ansys@users.noreply.github.com> Date: Wed, 27 Nov 2024 10:35:17 +0000 Subject: [PATCH 05/10] Add Region class method for Corner Rounding (#335) * Fixed get_coordinate_from_distance() _BaseArc class method so that correct point on the arc is always returned. * Added corner rounding class method for Region * Added corner rounding class method for Region * Updated corner rounding class method for Region * Updated corner rounding class method for Region * Added test for corner rounding class method for Region * Fixed missing import for test * Add exception to round_corner() for when radius is too large. Added round_corners() for rounding of multiple corners in a region * Update src/ansys/motorcad/core/geometry.py Co-authored-by: Kathy Pippert <84872299+PipKat@users.noreply.github.com> * Update src/ansys/motorcad/core/geometry.py Co-authored-by: Kathy Pippert <84872299+PipKat@users.noreply.github.com> * Update src/ansys/motorcad/core/geometry.py Co-authored-by: Kathy Pippert <84872299+PipKat@users.noreply.github.com> * Update src/ansys/motorcad/core/geometry.py Co-authored-by: Kathy Pippert <84872299+PipKat@users.noreply.github.com> * Update src/ansys/motorcad/core/geometry.py Co-authored-by: Kathy Pippert <84872299+PipKat@users.noreply.github.com> * Update src/ansys/motorcad/core/geometry.py Co-authored-by: Kathy Pippert <84872299+PipKat@users.noreply.github.com> * Updated round_corner() method to work for regions with only 2 entities. Added tests for more scenarios * Added test for case when region has 2 arcs and corners are defined as start points (previously only checked end point case) * Added support for when a corner radius of 0 is provided * Added test for when a corner radius of 0 is provided * Added support for when a point between two parallel lines is given as a corner coordinate (arc angle will be zero). In this case round_corner does nothing. Test added as well * Simplified corner rounding method. Increased simplicity and robustness. * Added test for when corner internal angle is less than 0 * Added test for when corner internal angle is more than 180 degrees * Update src/ansys/motorcad/core/geometry.py Co-authored-by: Kathy Pippert <84872299+PipKat@users.noreply.github.com> * grammar * Update src/ansys/motorcad/core/geometry.py Co-authored-by: Kathy Pippert <84872299+PipKat@users.noreply.github.com> * Iterate if we have rounding to an arc, so we get the correct angle at the intersection point. * Fix tests --------- Co-authored-by: Jack Davies Co-authored-by: Kathy Pippert <84872299+PipKat@users.noreply.github.com> Co-authored-by: Jack Davies <80680946+jgsdavies@users.noreply.github.com> Co-authored-by: James Packer Co-authored-by: James Packer <106395938+james-packer@users.noreply.github.com> --- src/ansys/motorcad/core/geometry.py | 156 +++++++++++ tests/test_geometry.py | 396 ++++++++++++++++++++++++++++ 2 files changed, 552 insertions(+) diff --git a/src/ansys/motorcad/core/geometry.py b/src/ansys/motorcad/core/geometry.py index 64a9088df..4c20f82f3 100644 --- a/src/ansys/motorcad/core/geometry.py +++ b/src/ansys/motorcad/core/geometry.py @@ -570,6 +570,162 @@ def edit_point(self, old_coordinates, new_coordinates): # Check Arc is still valid _ = entity.centre + def round_corner(self, corner_coordinate, radius): + """Round the corner of a region. + + The corner coordinates must already exist on two entities belonging to the region. + The two entities adjacent to the corner are shortened, and an arc is created between + them. + + Parameters + ---------- + corner_coordinate : ansys.motorcad.core.geometry.Coordinate + Coordinate of the corner to round. + radius : float + Radius to round the corner by. + """ + # If radius is 0, do nothing + if radius == 0: + return + + # Find adjacent entities. There should be 2 entities adjacent to the corner. Going + # anti-clockwise around the region, the entities before and after the corner will be + # adj_entity[0] and adj_entity[1] respectively. + adj_entities = [] + adj_entity_indices = [] + for index in range(len(self.entities)): + entity = self.entities[index] + if entity.coordinate_on_entity(corner_coordinate): + adj_entities.append(entity) + adj_entity_indices.append(index) + # If no adjacent entities are found, the point provided is not a corner + if not adj_entities: + raise Exception( + "Failed to find point on entity in region. " + "You must specify a corner in this region." + ) + # If only one adjacent entity is found, the point provided is not a corner + if len(adj_entities) == 1: + raise Exception( + "Point found on only one entity in region. " + "You must specify a corner in this region." + ) + # If the adj_entities are the first and last entities of the region, then the entity after + # the corner will be found first (entity 0). In this case, swap the entities around so that + # adj_entity[0] is always the entity before the corner (corner is adj_entity[0].end). + if corner_coordinate == self.entities[len(self.entities) - 1].end: + adj_entities[0] = self.entities[len(self.entities) - 1] + adj_entities[1] = self.entities[0] + adj_entity_indices[0] = len(self.entities) - 1 + adj_entity_indices[1] = 0 + + # If we have arc rounding, we need to find the angle at the intersection of the arc and the + # rounding arc. We don't know this position in advance, so iterate up to 100 times to find + # the correct distance. + distance = 0 + converged = False + for iteration in range(100): + # get the angles of the adjacent entities. For a line, this is a property of the entity + # object. For an arc, approximate the arc by a straight line from the arc start or end + # (whichever is the corner coordinate) to a point 0.0001 mm along the arc. + adj_entity_angles = [] + for entity in adj_entities: + if isinstance(entity, Arc): + if corner_coordinate == entity.start: + point_on_arc1 = entity.get_coordinate_from_distance(entity.start, distance) + point_on_arc2 = entity.get_coordinate_from_distance( + entity.start, distance + 0.0001 + ) + else: + point_on_arc1 = entity.get_coordinate_from_distance( + entity.end, distance + 0.0001 + ) + point_on_arc2 = entity.get_coordinate_from_distance(entity.end, distance) + line_on_arc = Line(point_on_arc1, point_on_arc2) + adj_entity_angles.append(line_on_arc.angle) + else: + adj_entity_angles.append(entity.angle) + + # calculate the internal angle of the corner. + corner_internal_angle = 180 + (adj_entity_angles[0] - adj_entity_angles[1]) + # If this is more than 360, subtract 360. + if corner_internal_angle > 360: + corner_internal_angle = corner_internal_angle - 360 + # If it is less than zero, add 360. + elif corner_internal_angle < 0: + corner_internal_angle = corner_internal_angle + 360 + + # calculate the arc angle + corner_arc_angle = 180 - corner_internal_angle + + # If the arc angle is zero, the point provided is not a corner. + if ( + isclose(corner_arc_angle, 0, abs_tol=1e-3) + or isclose(corner_arc_angle, 360, abs_tol=1e-3) + or isclose(corner_arc_angle, -360, abs_tol=1e-3) + ): + return + + # Calculate distances by which the adjacent entities are shortened + previous_distance = distance + half_chord = radius * sin(radians(corner_arc_angle) / 2) + distance = abs(half_chord / (sin(radians(corner_internal_angle) / 2))) + + # Check if distance has converged, or if iterative convergence not needed + if (isinstance(adj_entities[0], Line) and isinstance(adj_entities[1], Line)) or isclose( + previous_distance, distance, abs_tol=1e-3 + ): + converged = True + break + + # Raise assertion if not converged, as radius probably not valid + if converged == False: + raise Exception("Cannot find intersection. Check if radius is too large") + + # check that the distances by which the adjacent entities are shortened are less than the + # lengths of the adjacent entities. + for index in range(len(adj_entities)): + j = adj_entities[index] + if j.length < distance: + raise Exception( + "Corner radius is too large for these entities. " + "You must specify a smaller radius." + ) + # get and set the new start and end coordinates for the adjacent entities + adj_entities[0].end = adj_entities[0].get_coordinate_from_distance( + corner_coordinate, distance + ) + adj_entities[1].start = adj_entities[1].get_coordinate_from_distance( + corner_coordinate, distance + ) + + # if the internal angle of the corner is more than 180, a negative radius must be applied + if corner_internal_angle > 180: + e = -1 + else: + e = 1 + + # create the round corner arc and insert at the index after the first adjacent entity. + corner_arc = Arc(adj_entities[0].end, adj_entities[1].start, radius=e * radius) + self.insert_entity(adj_entity_indices[0] + 1, corner_arc) + + def round_corners(self, corner_coordinates, radius): + """Round multiple corners of a region. + + Each corner coordinate must already exist on two entities belonging to the region. + The two entities adjacent to each corner are shortened, and an arc is created + between them. + + Parameters + ---------- + corner_coordinates : list of ansys.motorcad.core.geometry.Coordinate + List of coordinates of the corners to round. + radius : float + Radius to round the corners by. + """ + for corner in corner_coordinates: + self.round_corner(corner, radius) + def find_entity_from_coordinates(self, coordinate_1, coordinate_2): """Search through region to find an entity with start and end coordinates. diff --git a/tests/test_geometry.py b/tests/test_geometry.py index 3ef5c3e7d..e5b79e61c 100644 --- a/tests/test_geometry.py +++ b/tests/test_geometry.py @@ -42,6 +42,7 @@ _orientation_of_three_points, rt_to_xy, ) +from ansys.motorcad.core.geometry_shapes import eq_triangle_h, triangular_notch import ansys.motorcad.core.rpc_client_core as rpc_client_core from ansys.motorcad.core.rpc_client_core import DEFAULT_INSTANCE, set_default_instance @@ -1232,6 +1233,401 @@ def test_edit_point(): assert region.entities[2].start == ref_region.entities[2].start + translate +def test_round_corner(): + # test for rounding corners of a triangle (3 lines) + radius = 0.5 + triangle_1 = eq_triangle_h(5, 15, 45) + triangle_2 = eq_triangle_h(5, 15, 45) + for index in reversed(range(3)): + triangle_1.round_corner(triangle_1.entities[index].end, radius) + # draw_objects([triangle_1, triangle_2]) + + assert triangle_1.is_closed() + for i in range(3): + # check that the entities making up the rounded triangle are of the expected types + assert type(triangle_1.entities[2 * i]) == Line + assert type(triangle_1.entities[2 * i + 1]) == Arc + # check that the midpoints of the shortened lines are the same as the original lines + assert isclose( + triangle_1.entities[2 * i].midpoint.x, triangle_2.entities[i].midpoint.x, abs_tol=1e-6 + ) + assert isclose( + triangle_1.entities[2 * i].midpoint.y, triangle_2.entities[i].midpoint.y, abs_tol=1e-6 + ) + + # check that the original corner coordinates are not on any of the rounded triangle's entities + corners = [] + for i in range(3): + corners.append(triangle_2.entities[i].end) + for entity in triangle_1.entities: + for i in range(3): + assert not entity.coordinate_on_entity(corners[i]) + + # check exception is raised when a point that is not a corner is specified + with pytest.raises(Exception): + triangle_1.round_corner(corners[0], radius) + with pytest.raises(Exception): + triangle_1.round_corner(triangle_1.entities[0].midpoint, radius) + + # check exception is raised when the corner radius is too large + # this is the case when the distance by which an original entity is to be shortened is larger + # than the entity's original length + with pytest.raises(Exception): + triangle_2.round_corner(triangle_2.entities[0].end, 100 * radius) + + # check the case when corner internal angle is negative + corner_1 = Coordinate(0, 0) + corner_2 = Coordinate(-3, 2) + corner_3 = Coordinate(-3, 0) + line_1 = Line(corner_1, corner_3) + line_2 = Line(corner_3, corner_2) + line_3 = Line(corner_2, corner_1) + region = Region() + region.add_entity(line_1) + region.add_entity(line_2) + region.add_entity(line_3) + region_rounded = deepcopy(region) + region_rounded.round_corner(corner_1, 0.1) + # draw_objects_debug([region, region_rounded]) + assert corner_1 not in region_rounded.points + assert len(region_rounded.entities) == 4 + assert type(region_rounded.entities[3]) == Arc + print(region_rounded.entities[3].midpoint.x) + assert region_rounded.entities[3].midpoint.x < corner_1.x + + # test the case when corner internal angle is more than 180 degrees + radius = 5 + centre = Coordinate(0, 0) + start_angle = -15 + end_angle = 195 + coord_1 = Coordinate(*rt_to_xy(radius, start_angle)) + coord_2 = Coordinate(*rt_to_xy(radius, start_angle + 180)) + arc_1 = Arc(coord_1, coord_2, centre=centre) + arc_2 = Arc(arc_1.end, Coordinate(*rt_to_xy(radius, end_angle)), centre=centre) + line_1 = Line(arc_2.end, centre) + line_2 = Line(centre, arc_1.start) + region = Region() + region.add_entity(arc_1) + region.add_entity(arc_2) + region.add_entity(line_1) + region.add_entity(line_2) + region_rounded = deepcopy(region) + region_rounded.round_corner(centre, 2) + # draw_objects_debug([region, region_rounded]) + assert centre not in region_rounded.points + assert len(region_rounded.entities) == len(region.entities) + 1 + assert type(region_rounded.entities[3]) == Arc + # print(region_rounded.entities[3].midpoint.y) + assert region_rounded.entities[3].midpoint.y < centre.y + + +def test_round_corners(): + # test for rounding corners of a triangle (3 lines) + corner_radius = 0.5 + triangle_1 = eq_triangle_h(5, 15, 45) + triangle_2 = eq_triangle_h(5, 15, 45) + triangle_1.round_corners(triangle_1.points, corner_radius) + # draw_objects([triangle_1, triangle_2]) + + assert triangle_1.is_closed() + for i in range(3): + # check that the entities making up the rounded triangle are of the expected types + assert type(triangle_1.entities[2 * i]) == Line + assert type(triangle_1.entities[2 * i + 1]) == Arc + # check that the midpoints of the shortened lines are the same as the original lines + assert isclose( + triangle_1.entities[2 * i].midpoint.x, triangle_2.entities[i].midpoint.x, abs_tol=1e-6 + ) + assert isclose( + triangle_1.entities[2 * i].midpoint.y, triangle_2.entities[i].midpoint.y, abs_tol=1e-6 + ) + + # check that the original corner coordinates are not on any of the rounded triangle's entities + corners = [] + for i in range(3): + corners.append(triangle_2.entities[i].end) + for entity in triangle_1.entities: + for i in range(3): + assert not entity.coordinate_on_entity(corners[i]) + + # check exception is raised when a point that is not a corner is specified + with pytest.raises(Exception): + triangle_1.round_corner(corners[0], radius) + with pytest.raises(Exception): + triangle_1.round_corner(triangle_1.entities[0].midpoint, radius) + + # check exception is raised when the corner radius is too large + # this is the case when the distance by which an original entity is to be shortened is larger + # than the entity's original length + with pytest.raises(Exception): + triangle_2.round_corner(triangle_2.entities[0].end, 100 * radius) + + +def test_round_corner_2(): + # test for rounding corner between an arc and a line + + corner_radius = 0.5 + notch_radius = 50 + notch_sweep = 22.5 + notch_depth = 20 + notch_angle = 45 + notch_1 = triangular_notch(notch_radius, notch_sweep, notch_angle, notch_depth) + notch_2 = triangular_notch(notch_radius, notch_sweep, notch_angle, notch_depth) + + for index in reversed(range(3)): + notch_1.round_corner(notch_1.entities[index].end, corner_radius) + # draw_objects([notch_1, notch_2]) + + assert notch_1.is_closed() + # check that the entities making up the rounded notch are of the expected types + assert type(notch_1.entities[0]) == Line + assert type(notch_1.entities[1]) == Arc + assert type(notch_1.entities[2]) == Line + assert type(notch_1.entities[3]) == Arc + assert type(notch_1.entities[4]) == Arc + assert type(notch_1.entities[5]) == Arc + # check that the gradients of the shortened lines are the same as the original lines + assert isclose(notch_1.entities[0].gradient, notch_2.entities[0].gradient, abs_tol=1e-6) + assert isclose(notch_1.entities[2].gradient, notch_2.entities[1].gradient, abs_tol=1e-6) + # check that the centre of the shortened arc is the same as that of the original arc + assert isclose(notch_1.entities[4].centre.x, notch_2.entities[2].centre.x, abs_tol=1e-6) + assert isclose(notch_1.entities[4].centre.y, notch_2.entities[2].centre.y, abs_tol=1e-6) + + # check that the original corner coordinates are not on any of the rounded notch's entities + corners = [] + for i in range(3): + corners.append(notch_2.entities[i].end) + for entity in notch_1.entities: + for i in range(3): + assert not entity.coordinate_on_entity(corners[i]) + + # check exception is raised when a point that is not a corner is specified + with pytest.raises(Exception): + notch_1.round_corner(corners[0], corner_radius) + with pytest.raises(Exception): + notch_1.round_corner(notch_1.entities[0].midpoint, corner_radius) + + # check exception is raised when the corner radius is too large + # this is the case when the distance by which an original entity is to be shortened is larger + # than the entity's original length + with pytest.raises(Exception): + notch_2.round_corner(notch_2.entities[0].end, 100 * corner_radius) + + +def test_round_corners_2(): + # test for rounding corner between an arc and a line + + corner_radius = 0.5 + notch_radius = 50 + notch_sweep = 22.5 + notch_depth = 20 + notch_angle = 45 + notch_1 = triangular_notch(notch_radius, notch_sweep, notch_angle, notch_depth) + notch_2 = triangular_notch(notch_radius, notch_sweep, notch_angle, notch_depth) + + notch_1.round_corners(notch_1.points, corner_radius) + # draw_objects([notch_1, notch_2]) + + assert notch_1.is_closed() + # check that the entities making up the rounded notch are of the expected types + assert type(notch_1.entities[0]) == Line + assert type(notch_1.entities[1]) == Arc + assert type(notch_1.entities[2]) == Line + assert type(notch_1.entities[3]) == Arc + assert type(notch_1.entities[4]) == Arc + assert type(notch_1.entities[5]) == Arc + # check that the gradients of the shortened lines are the same as the original lines + assert isclose(notch_1.entities[0].gradient, notch_2.entities[0].gradient, abs_tol=1e-6) + assert isclose(notch_1.entities[2].gradient, notch_2.entities[1].gradient, abs_tol=1e-6) + # check that the centre of the shortened arc is the same as that of the original arc + assert isclose(notch_1.entities[4].centre.x, notch_2.entities[2].centre.x, abs_tol=1e-6) + assert isclose(notch_1.entities[4].centre.y, notch_2.entities[2].centre.y, abs_tol=1e-6) + + # check that the original corner coordinates are not on any of the rounded notch's entities + corners = [] + for i in range(3): + corners.append(notch_2.entities[i].end) + for entity in notch_1.entities: + for i in range(3): + assert not entity.coordinate_on_entity(corners[i]) + + # check exception is raised when a point that is not a corner is specified + with pytest.raises(Exception): + notch_1.round_corner(corners[0], corner_radius) + with pytest.raises(Exception): + notch_1.round_corner(notch_1.entities[0].midpoint, corner_radius) + + # check exception is raised when the corner radius is too large + # this is the case when the distance by which an original entity is to be shortened is larger + # than the entity's original length + with pytest.raises(Exception): + notch_2.round_corner(notch_2.entities[0].end, 100 * corner_radius) + + +def test_round_corner_3(): + # test for rounding corners between two arcs + + corner_radius = 0.5 + point_1 = Coordinate(0, 15) + point_2 = Coordinate(0, 0) + shape_radius = 10 + arc_1 = Arc(point_1, point_2, radius=shape_radius) + arc_2 = Arc(point_2, point_1, radius=shape_radius) + shape_1 = Region() + shape_1.add_entity(arc_1) + shape_1.add_entity(arc_2) + + shape_2 = deepcopy(shape_1) + + for index in reversed(range(2)): + shape_1.round_corner(shape_1.entities[index].end, corner_radius) + # draw_objects([shape_1, shape_2]) + + assert shape_1.is_closed() + # check that the entities making up the rounded shape are of the expected types + assert type(shape_1.entities[0]) == Arc + assert type(shape_1.entities[1]) == Arc + assert type(shape_1.entities[2]) == Arc + assert type(shape_1.entities[3]) == Arc + # check that the centres of the shortened arcs are the same as those of the original arcs + assert isclose(shape_1.entities[0].centre.x, shape_2.entities[0].centre.x, abs_tol=1e-6) + assert isclose(shape_1.entities[0].centre.y, shape_2.entities[0].centre.y, abs_tol=1e-6) + assert isclose(shape_1.entities[2].centre.x, shape_2.entities[1].centre.x, abs_tol=1e-6) + assert isclose(shape_1.entities[2].centre.y, shape_2.entities[1].centre.y, abs_tol=1e-6) + + # check that the arc radii are correct for each arc + assert isclose(shape_1.entities[0].radius, shape_radius, abs_tol=1e-6) + assert isclose(shape_1.entities[1].radius, corner_radius, abs_tol=1e-6) + assert isclose(shape_1.entities[2].radius, shape_radius, abs_tol=1e-6) + assert isclose(shape_1.entities[3].radius, corner_radius, abs_tol=1e-6) + + # check that the original corner coordinates are not on any of the rounded shape's entities + corners = [] + for i in range(2): + corners.append(shape_2.entities[i].end) + for entity in shape_1.entities: + for i in range(2): + assert not entity.coordinate_on_entity(corners[i]) + + # check exception is raised when a point that is not a corner is specified + with pytest.raises(Exception): + shape_1.round_corner(corners[0], corner_radius) + with pytest.raises(Exception): + shape_1.round_corner(shape_1.entities[0].midpoint, corner_radius) + + # check exception is raised when the corner radius is too large + # this is the case when the distance by which an original entity is to be shortened is larger + # than the entity's original length + with pytest.raises(Exception): + shape_2.round_corner(shape_2.entities[0].end, 100 * corner_radius) + + # check that the corners are rounded correctly when the original entity start coordinates are + # set as the corners, instead of the end coordinates + for index in reversed(range(2)): + shape_2.round_corner(shape_2.entities[index].start, corner_radius) + + assert shape_2.entities[0] == shape_1.entities[0] + assert shape_1.entities[1] == shape_2.entities[1] + assert shape_1.entities[2] == shape_2.entities[2] + assert shape_1.entities[3] == shape_2.entities[3] + + +def test_round_corners_3(): + # test for rounding corners between two arcs + + corner_radius = 0.5 + point_1 = Coordinate(0, 15) + point_2 = Coordinate(0, 0) + shape_radius = 10 + arc_1 = Arc(point_1, point_2, radius=shape_radius) + arc_2 = Arc(point_2, point_1, radius=shape_radius) + shape_1 = Region() + shape_1.add_entity(arc_1) + shape_1.add_entity(arc_2) + + shape_2 = deepcopy(shape_1) + + shape_1.round_corners(shape_1.points, corner_radius) + # draw_objects([shape_1, shape_2]) + + assert shape_1.is_closed() + # check that the entities making up the rounded shape are of the expected types + assert type(shape_1.entities[0]) == Arc + assert type(shape_1.entities[1]) == Arc + assert type(shape_1.entities[2]) == Arc + assert type(shape_1.entities[3]) == Arc + # check that the centres of the shortened arcs are the same as those of the original arcs + assert isclose(shape_1.entities[0].centre.x, shape_2.entities[0].centre.x, abs_tol=1e-6) + assert isclose(shape_1.entities[0].centre.y, shape_2.entities[0].centre.y, abs_tol=1e-6) + assert isclose(shape_1.entities[2].centre.x, shape_2.entities[1].centre.x, abs_tol=1e-6) + assert isclose(shape_1.entities[2].centre.y, shape_2.entities[1].centre.y, abs_tol=1e-6) + + # check that the arc radii are correct for each arc + assert isclose(shape_1.entities[0].radius, shape_radius, abs_tol=1e-6) + assert isclose(shape_1.entities[1].radius, corner_radius, abs_tol=1e-6) + assert isclose(shape_1.entities[2].radius, shape_radius, abs_tol=1e-6) + assert isclose(shape_1.entities[3].radius, corner_radius, abs_tol=1e-6) + + # check that the original corner coordinates are not on any of the rounded shape's entities + corners = [] + for i in range(2): + corners.append(shape_2.entities[i].end) + for entity in shape_1.entities: + for i in range(2): + assert not entity.coordinate_on_entity(corners[i]) + + # check exception is raised when a point that is not a corner is specified + with pytest.raises(Exception): + shape_1.round_corner(corners[0], corner_radius) + with pytest.raises(Exception): + shape_1.round_corner(shape_1.entities[0].midpoint, corner_radius) + + # check exception is raised when the corner radius is too large + # this is the case when the distance by which an original entity is to be shortened is larger + # than the entity's original length + with pytest.raises(Exception): + shape_2.round_corner(shape_2.entities[0].end, 100 * corner_radius) + + +def test_do_not_round_corner(): + # test for when round_corner method is given a radius of zero + radius = 0 + triangle_1 = eq_triangle_h(5, 15, 45) + triangle_2 = eq_triangle_h(5, 15, 45) + for index in reversed(range(3)): + triangle_1.round_corner(triangle_1.entities[index].end, radius) + # draw_objects([triangle_1, triangle_2]) + + assert triangle_1.is_closed() + for i in range(3): + # check that the entities making up the triangle are unchanged + assert triangle_1.entities[i] == triangle_2.entities[i] + + # draw a new triangle where the 3rd side is made up of 2 parallel lines. The region will have a + # point here, but it is not a corner because the two lines are parallel and have an angle of + # zero between them. + triangle_3 = deepcopy(triangle_2) + new_line_1 = Line(triangle_3.entities[2].start, triangle_3.entities[2].midpoint) + new_line_2 = Line(triangle_3.entities[2].midpoint, triangle_3.entities[2].end) + + triangle_3.remove_entity(triangle_3.entities[2]) + triangle_3.add_entity(new_line_1) + triangle_3.add_entity(new_line_2) + # draw_objects([triangle_3, triangle_3.points[3]]) + radius_2 = 0.5 + + triangle_3.round_corner(triangle_3.points[3], radius_2) + + # check that the entities making up the triangle are unchanged + assert triangle_3.is_closed() + for i in range(2): + assert triangle_3.entities[i] == triangle_2.entities[i] + assert triangle_3.entities[2].start == triangle_2.entities[2].start + assert triangle_3.entities[2].end == triangle_2.entities[2].midpoint + assert triangle_3.entities[3].start == triangle_2.entities[2].midpoint + assert triangle_3.entities[3].end == triangle_2.entities[2].end + + def test_subtract_regions(mc): """Test subtract rectangle from square to create cut out in square as shown below""" # Before After From 3061cb5579346ce1d0e14a7e0920c4870fa1019a Mon Sep 17 00:00:00 2001 From: Jack <106958177+JackB-Ansys@users.noreply.github.com> Date: Wed, 27 Nov 2024 10:37:44 +0000 Subject: [PATCH 06/10] Fix percentage distance methods (#339) * Corrected calculation of arc length * Corrected make percentage method use percentage not fraction * Deprecated get_coordinate_from_percentage_distance methods. Replaced by update to get_coordinate_from_distance methods. * update tests * Added deprecation warnings * Added more tests for updated get_coordinate_from_distance method (new tests for new optional arguments) * Added more tests for updated get_coordinate_from_distance method (tests for warnings when multiple arguments are given) * Added more tests for updated get_coordinate_from_distance method (test for arc drawn with negative radius) * Added test for arc with negative radius for deprecated get_coordinate_from_percentage_distance arc method * Added tests to check error is raised when no distance, percentage or fraction is provided * Update src/ansys/motorcad/core/geometry.py Co-authored-by: James Packer <106395938+james-packer@users.noreply.github.com> * Update src/ansys/motorcad/core/geometry.py Co-authored-by: James Packer <106395938+james-packer@users.noreply.github.com> * Update src/ansys/motorcad/core/geometry.py Co-authored-by: James Packer <106395938+james-packer@users.noreply.github.com> * Update src/ansys/motorcad/core/geometry.py Co-authored-by: James Packer <106395938+james-packer@users.noreply.github.com> * Update src/ansys/motorcad/core/geometry.py Co-authored-by: James Packer <106395938+james-packer@users.noreply.github.com> --------- Co-authored-by: Jack Davies <80680946+jgsdavies@users.noreply.github.com> Co-authored-by: James Packer <106395938+james-packer@users.noreply.github.com> --- src/ansys/motorcad/core/geometry.py | 114 +++++++++++++++++++------- tests/test_geometry.py | 122 ++++++++++++++++++++++++++-- 2 files changed, 199 insertions(+), 37 deletions(-) diff --git a/src/ansys/motorcad/core/geometry.py b/src/ansys/motorcad/core/geometry.py index 4c20f82f3..a2f547b8c 100644 --- a/src/ansys/motorcad/core/geometry.py +++ b/src/ansys/motorcad/core/geometry.py @@ -25,6 +25,7 @@ from copy import deepcopy from enum import Enum from math import atan2, cos, degrees, inf, isclose, radians, sin, sqrt +from warnings import warn GEOM_TOLERANCE = 1e-6 @@ -1195,36 +1196,37 @@ def mirror(self, mirror_line): else: raise Exception("Line can only be mirrored about Line()") - def get_coordinate_from_percentage_distance(self, ref_coordinate, percentage): - """Get the coordinate at the percentage distance along the line from the reference. + def get_coordinate_from_percentage_distance(self, ref_coordinate, fraction): + """Get the coordinate at a fractional distance along the line from the reference coord. + + .. note:: + This method is deprecated. Use the :func:`Line.get_coordinate_from_distance` + method with the `fraction = ` or `percentage =` argument. Parameters ---------- ref_coordinate : Coordinate Entity reference coordinate. - percentage : float - Percentage distance along Line. + fraction : float + Fractional distance along Line. Returns ------- Coordinate - Coordinate at percentage distance along Line. + Coordinate at fractional distance along Line. """ - if ref_coordinate == self.end: - coordinate_1 = self.end - coordinate_2 = self.start - else: - coordinate_1 = self.start - coordinate_2 = self.end - - t = (self.length * percentage) / self.length - x = ((1 - t) * coordinate_1.x) + (t * coordinate_2.x) - y = ((1 - t) * coordinate_1.y) + (t * coordinate_2.y) - - return Coordinate(x, y) + warn( + "get_coordinate_from_percentage_distance() WILL BE DEPRECATED SOON - " + "USE get_coordinate_from_distance instead with the `fraction = ` or `percentage = ` " + "optional argument", + DeprecationWarning, + ) + return self.get_coordinate_from_distance(ref_coordinate, fraction=fraction) - def get_coordinate_from_distance(self, ref_coordinate, distance): + def get_coordinate_from_distance( + self, ref_coordinate, distance=None, fraction=None, percentage=None + ): """Get the coordinate at the specified distance along the line from the reference. Parameters @@ -1232,14 +1234,36 @@ def get_coordinate_from_distance(self, ref_coordinate, distance): ref_coordinate : Coordinate Entity reference coordinate. - distance : float + distance : float, optional Distance along Line. + fraction : float, optional + Fractional distance along Line. + + percentage : float, optional + Percentage distance along Line. + Returns ------- Coordinate Coordinate at distance along Line. """ + if not distance and not fraction and not percentage: + raise Exception("You must provide either a distance, fraction or percentage.") + + if distance and fraction: + warn("Both distance and fraction provided. Using distance.", UserWarning) + if distance and percentage: + warn("Both distance and percentage provided. Using distance.", UserWarning) + + if not distance: + if fraction and percentage: + warn("Both fraction and percentage provided. Using fraction.", UserWarning) + if fraction: + distance = self.length * fraction + elif percentage: + distance = self.length * (percentage / 100) + if ref_coordinate == self.end: coordinate_1 = self.end coordinate_2 = self.start @@ -1374,27 +1398,37 @@ def midpoint(self): x_shift, y_shift = rt_to_xy(abs(self.radius), angle) return Coordinate(self.centre.x + x_shift, self.centre.y + y_shift) - def get_coordinate_from_percentage_distance(self, ref_coordinate, percentage): - """Get the coordinate at the percentage distance along the arc from the reference coord. + def get_coordinate_from_percentage_distance(self, ref_coordinate, fraction): + """Get the coordinate at a fractional distance along the arc from the reference coord. + + .. note:: + This method is deprecated. Use the :func:`Arc.get_coordinate_from_distance` + method with the `fraction = ` or `percentage =` argument. Parameters ---------- ref_coordinate : Coordinate Entity reference coordinate. - percentage : float - Percentage distance along Arc. + fraction : float + Fractional distance along Arc. Returns ------- Coordinate - Coordinate at percentage distance along Arc. + Coordinate at fractional distance along Arc. """ - length = self.length * percentage - - return self.get_coordinate_from_distance(ref_coordinate, length) + warn( + "get_coordinate_from_percentage_distance() WILL BE DEPRECATED SOON - " + "USE get_coordinate_from_distance instead with the `fraction = ` or `percentage = ` " + "optional argument", + DeprecationWarning, + ) + return self.get_coordinate_from_distance(ref_coordinate, fraction=fraction) - def get_coordinate_from_distance(self, ref_coordinate, distance): + def get_coordinate_from_distance( + self, ref_coordinate, distance=None, fraction=None, percentage=None + ): """Get the coordinate at the specified distance along the arc from the reference coordinate. Parameters @@ -1402,14 +1436,36 @@ def get_coordinate_from_distance(self, ref_coordinate, distance): ref_coordinate : Coordinate Entity reference coordinate. - distance : float + distance : float, optional Distance along arc. + fraction : float, optional + Fractional distance along Arc. + + percentage : float, optional + Percentage distance along Arc. + Returns ------- Coordinate Coordinate at distance along Arc. """ + if not distance and not fraction and not percentage: + raise Exception("You must provide either a distance, fraction or percentage.") + + if distance and fraction: + warn("Both distance and fraction provided. Using distance.", UserWarning) + if distance and percentage: + warn("Both distance and percentage provided. Using distance.", UserWarning) + + if not distance: + if fraction and percentage: + warn("Both fraction and percentage provided. Using fraction.", UserWarning) + if fraction: + distance = self.length * fraction + elif percentage: + distance = self.length * (percentage / 100) + ref_coordinate_angle = atan2( (ref_coordinate.y - self.centre.y), (ref_coordinate.x - self.centre.x) ) diff --git a/tests/test_geometry.py b/tests/test_geometry.py index e5b79e61c..815e1a01b 100644 --- a/tests/test_geometry.py +++ b/tests/test_geometry.py @@ -574,9 +574,56 @@ def test_line_get_coordinate_from_percentage_distance(): def test_line_get_coordinate_from_distance(): line = geometry.Line(geometry.Coordinate(0, 0), geometry.Coordinate(2, 0)) + # test using the 'distance' argument assert line.get_coordinate_from_distance(geometry.Coordinate(0, 0), 1) == geometry.Coordinate( 1, 0 ) + # test using the 'fraction' argument + assert line.get_coordinate_from_distance( + geometry.Coordinate(0, 0), fraction=0.5 + ) == geometry.Coordinate(1, 0) + # test using the 'percentage' argument + assert line.get_coordinate_from_distance( + geometry.Coordinate(0, 0), percentage=50 + ) == geometry.Coordinate(1, 0) + + # test that warnings are raised when multiple arguments are given + # distance and fraction + with pytest.warns(UserWarning) as record: + coord = line.get_coordinate_from_distance(geometry.Coordinate(0, 0), 1, fraction=0.6) + assert "Both distance and fraction provided" in record[0].message.args[0] + # check that distance is used + assert coord == line.get_coordinate_from_distance(geometry.Coordinate(0, 0), 1) + + # distance and percentage + with pytest.warns(UserWarning) as record: + coord = line.get_coordinate_from_distance(geometry.Coordinate(0, 0), 1, percentage=40) + assert "Both distance and percentage provided" in record[0].message.args[0] + # check that distance is used + assert coord == line.get_coordinate_from_distance(geometry.Coordinate(0, 0), 1) + + # fraction and percentage + with pytest.warns(UserWarning) as record: + coord = line.get_coordinate_from_distance( + geometry.Coordinate(0, 0), fraction=0.6, percentage=40 + ) + assert "Both fraction and percentage provided" in record[0].message.args[0] + # check that fraction is used + assert coord == line.get_coordinate_from_distance(geometry.Coordinate(0, 0), fraction=0.6) + + # distance, fraction and percentage + with pytest.warns(UserWarning) as record: + coord = line.get_coordinate_from_distance(geometry.Coordinate(0, 0), 1, 0.6, 40) + assert "Both distance and fraction provided" in record[0].message.args[0] + # check that both warnings are given + assert "Both distance and percentage provided" in record[1].message.args[0] + # check that distance is used + assert coord == line.get_coordinate_from_distance(geometry.Coordinate(0, 0), 1) + + # neither distance, fraction or percentage are provided + with pytest.raises(Exception) as e_info: + coord = line.get_coordinate_from_distance(line.start) + assert "provide either a distance, fraction or percentage" in str(e_info) def test_line_length(): @@ -585,14 +632,14 @@ def test_line_length(): assert line.length == sqrt(2) -def test_arc_get_coordinate_from_percentage_distance(): +def test_arc_get_coordinate_from_fractional_distance(): arc = geometry.Arc( geometry.Coordinate(-1, 0), geometry.Coordinate(1, 0), geometry.Coordinate(0, 0), 1 ) - coord = arc.get_coordinate_from_percentage_distance(geometry.Coordinate(-1, 0), 0.5) - assert isclose(coord.x, 0, abs_tol=1e-12) - assert isclose(coord.y, -1, abs_tol=1e-12) + coord_1 = arc.get_coordinate_from_percentage_distance(geometry.Coordinate(-1, 0), 0.5) + assert isclose(coord_1.x, 0, abs_tol=1e-12) + assert isclose(coord_1.y, -1, abs_tol=1e-12) # test an arc that failed with the old definition of get_coordinate_from_percentage_distance() arc_2 = geometry.Arc(geometry.Coordinate(62, 20), geometry.Coordinate(56, 33), radius=45) @@ -604,12 +651,19 @@ def test_arc_get_coordinate_from_percentage_distance(): assert math.isclose(arc_2.start.y, coord_3.y, abs_tol=1e-12) # test arc drawn clockwise arc_4 = geometry.Arc(geometry.Coordinate(56, 33), geometry.Coordinate(62, 20), radius=45) - coord_4 = arc_4.get_coordinate_from_distance(arc_4.end, 1e-13) + coord_4 = arc_4.get_coordinate_from_percentage_distance(arc_4.end, 1e-13) assert math.isclose(arc_4.end.x, coord_4.x, abs_tol=1e-12) assert math.isclose(arc_4.end.y, coord_4.y, abs_tol=1e-12) - coord_5 = arc_4.get_coordinate_from_distance(arc_4.start, 1e-13) + coord_5 = arc_4.get_coordinate_from_percentage_distance(arc_4.start, 1e-13) assert math.isclose(arc_4.start.x, coord_5.x, abs_tol=1e-12) assert math.isclose(arc_4.start.y, coord_5.y, abs_tol=1e-12) + # test arc with negative radius + arc_6 = geometry.Arc( + geometry.Coordinate(-1, 0), geometry.Coordinate(1, 0), geometry.Coordinate(0, 0), -1 + ) + coord_6 = arc_6.get_coordinate_from_percentage_distance(Coordinate(-1, 0), 0.5) + assert math.isclose(coord_6.x, 0, abs_tol=1e-12) + assert math.isclose(coord_6.y, 1, abs_tol=1e-12) def test_arc_get_coordinate_from_distance(): @@ -617,11 +671,21 @@ def test_arc_get_coordinate_from_distance(): geometry.Coordinate(-1, 0), geometry.Coordinate(1, 0), geometry.Coordinate(0, 0), 1 ) + # test using the 'distance' argument coord = arc.get_coordinate_from_distance(geometry.Coordinate(-1, 0), math.pi / 2) assert math.isclose(coord.x, 0, abs_tol=1e-12) assert math.isclose(coord.y, -1, abs_tol=1e-12) - # test an arc that failed with the old definition of get_coordinate_from_distance() + # test for an arc with negative radius using the 'distance' argument + arc_1 = geometry.Arc( + geometry.Coordinate(-1, 0), geometry.Coordinate(1, 0), geometry.Coordinate(0, 0), -1 + ) + coord_1 = arc_1.get_coordinate_from_distance(geometry.Coordinate(-1, 0), math.pi / 2) + assert math.isclose(coord_1.x, 0, abs_tol=1e-12) + assert math.isclose(coord_1.y, 1, abs_tol=1e-12) + + # test an arc that failed with the old definition of get_coordinate_from_distance() using the + # 'distance' argument arc_2 = geometry.Arc(geometry.Coordinate(62, 20), geometry.Coordinate(56, 33), radius=45) coord_2 = arc_2.get_coordinate_from_distance(arc_2.end, 1e-15) assert math.isclose(arc_2.end.x, coord_2.x, abs_tol=1e-12) @@ -629,7 +693,7 @@ def test_arc_get_coordinate_from_distance(): coord_3 = arc_2.get_coordinate_from_distance(arc_2.start, 1e-15) assert math.isclose(arc_2.start.x, coord_3.x, abs_tol=1e-12) assert math.isclose(arc_2.start.y, coord_3.y, abs_tol=1e-12) - # test arc drawn clockwise + # test arc drawn clockwise using the 'distance' argument arc_4 = geometry.Arc(geometry.Coordinate(56, 33), geometry.Coordinate(62, 20), radius=45) coord_4 = arc_4.get_coordinate_from_distance(arc_4.end, 1e-15) assert math.isclose(arc_4.end.x, coord_4.x, abs_tol=1e-12) @@ -641,6 +705,48 @@ def test_arc_get_coordinate_from_distance(): assert math.isclose(60.389142028418, coord_6.x, abs_tol=1e-12) assert math.isclose(24.730689908764, coord_6.y, abs_tol=1e-12) + # test using the 'fraction' argument + coord_7 = arc.get_coordinate_from_distance(geometry.Coordinate(-1, 0), fraction=0.5) + assert isclose(coord_7.x, 0, abs_tol=1e-12) + assert isclose(coord_7.y, -1, abs_tol=1e-12) + + # test using the 'percentage' argument + coord_8 = arc.get_coordinate_from_distance(geometry.Coordinate(-1, 0), percentage=50) + assert isclose(coord_8.x, 0, abs_tol=1e-12) + assert isclose(coord_8.y, -1, abs_tol=1e-12) + + # test that warnings are raised when multiple arguments are given + # distance and fraction + with pytest.warns(UserWarning) as record: + coord = arc.get_coordinate_from_distance(arc.start, 1, fraction=0.6) + assert "Both distance and fraction provided" in record[0].message.args[0] + # check that distance is used + assert coord == arc.get_coordinate_from_distance(arc.start, 1) + # distance and percentage + with pytest.warns(UserWarning) as record: + coord = arc.get_coordinate_from_distance(arc.start, 1, percentage=40) + assert "Both distance and percentage provided" in record[0].message.args[0] + # check that distance is used + assert coord == arc.get_coordinate_from_distance(arc.start, 1) + # fraction and percentage + with pytest.warns(UserWarning) as record: + coord = arc.get_coordinate_from_distance(arc.start, fraction=0.6, percentage=40) + assert "Both fraction and percentage provided" in record[0].message.args[0] + # check that fraction is used + assert coord == arc.get_coordinate_from_distance(arc.start, fraction=0.6) + # distance, fraction and percentage + with pytest.warns(UserWarning) as record: + coord = arc.get_coordinate_from_distance(arc.start, 1, 0.6, 40) + assert "Both distance and fraction provided" in record[0].message.args[0] + # check that both warnings are given + assert "Both distance and percentage provided" in record[1].message.args[0] + # check that distance is used + assert coord == arc.get_coordinate_from_distance(arc.start, 1) + # neither distance, fraction or percentage are provided + with pytest.raises(Exception) as e_info: + coord = arc.get_coordinate_from_distance(arc.start) + assert "provide either a distance, fraction or percentage" in str(e_info) + def test_arc_length(): arc = geometry.Arc( From a73cff3b832dee09478b355cf0c599085073cfd8 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 27 Nov 2024 10:38:01 +0000 Subject: [PATCH 07/10] Bump ansys-sphinx-theme from 1.2.0 to 1.2.2 (#435) Bumps [ansys-sphinx-theme](https://github.com/ansys/ansys-sphinx-theme) from 1.2.0 to 1.2.2. - [Release notes](https://github.com/ansys/ansys-sphinx-theme/releases) - [Commits](https://github.com/ansys/ansys-sphinx-theme/compare/v1.2.0...v1.2.2) --- updated-dependencies: - dependency-name: ansys-sphinx-theme dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: James Packer <106395938+james-packer@users.noreply.github.com> --- pyproject.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pyproject.toml b/pyproject.toml index ef9276ede..484f8611c 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -43,7 +43,7 @@ tests = [ doc = [ "Sphinx==8.1.3", "numpydoc==1.8.0", - "ansys-sphinx-theme==1.2.0", + "ansys-sphinx-theme==1.2.2", "sphinx-copybutton==0.5.2", "sphinx-gallery==0.18.0", "matplotlib", From 25a15123b07d97bb10253d8e9cb0f8f0cbc7f773 Mon Sep 17 00:00:00 2001 From: James Packer <106395938+james-packer@users.noreply.github.com> Date: Wed, 27 Nov 2024 13:44:35 +0000 Subject: [PATCH 08/10] Fix get_coordinate_from_distance where if a value of 0 was assigned to a named parameter, it is ignored. (#436) --- src/ansys/motorcad/core/geometry.py | 28 ++++++++++++++-------------- 1 file changed, 14 insertions(+), 14 deletions(-) diff --git a/src/ansys/motorcad/core/geometry.py b/src/ansys/motorcad/core/geometry.py index a2f547b8c..b78dca47f 100644 --- a/src/ansys/motorcad/core/geometry.py +++ b/src/ansys/motorcad/core/geometry.py @@ -1248,20 +1248,20 @@ def get_coordinate_from_distance( Coordinate Coordinate at distance along Line. """ - if not distance and not fraction and not percentage: + if (distance is None) and (fraction is None) and (percentage is None): raise Exception("You must provide either a distance, fraction or percentage.") - if distance and fraction: + if (distance is not None) and (fraction is not None): warn("Both distance and fraction provided. Using distance.", UserWarning) - if distance and percentage: + if (distance is not None) and (percentage is not None): warn("Both distance and percentage provided. Using distance.", UserWarning) - if not distance: - if fraction and percentage: + if distance is None: + if (fraction is not None) and (percentage is not None): warn("Both fraction and percentage provided. Using fraction.", UserWarning) - if fraction: + if fraction is not None: distance = self.length * fraction - elif percentage: + elif percentage is not None: distance = self.length * (percentage / 100) if ref_coordinate == self.end: @@ -1450,20 +1450,20 @@ def get_coordinate_from_distance( Coordinate Coordinate at distance along Arc. """ - if not distance and not fraction and not percentage: + if (distance is None) and (fraction is None) and (percentage is None): raise Exception("You must provide either a distance, fraction or percentage.") - if distance and fraction: + if (distance is not None) and (fraction is not None): warn("Both distance and fraction provided. Using distance.", UserWarning) - if distance and percentage: + if (distance is not None) and (percentage is not None): warn("Both distance and percentage provided. Using distance.", UserWarning) - if not distance: - if fraction and percentage: + if distance is None: + if (fraction is not None) and (percentage is not None): warn("Both fraction and percentage provided. Using fraction.", UserWarning) - if fraction: + if fraction is not None: distance = self.length * fraction - elif percentage: + elif percentage is not None: distance = self.length * (percentage / 100) ref_coordinate_angle = atan2( From c39734be4c19b00ae7d450f356cff1fea32dd5a2 Mon Sep 17 00:00:00 2001 From: Jack <106958177+JackB-Ansys@users.noreply.github.com> Date: Wed, 27 Nov 2024 14:35:04 +0000 Subject: [PATCH 09/10] New example using round_corners Region class method (#433) Co-authored-by: Jack Davies <80680946+jgsdavies@users.noreply.github.com> --- .../adaptive_templates/RoundParSlotBttm.png | Bin 0 -> 272431 bytes .../adaptive_library/RoundParallelSlotBttm.py | 182 ++++++++++++++++++ 2 files changed, 182 insertions(+) create mode 100644 doc/source/images/adaptive_templates/RoundParSlotBttm.png create mode 100644 examples/adaptive_library/RoundParallelSlotBttm.py diff --git a/doc/source/images/adaptive_templates/RoundParSlotBttm.png b/doc/source/images/adaptive_templates/RoundParSlotBttm.png new file mode 100644 index 0000000000000000000000000000000000000000..8bca1ee1b485835cb3fde9e3a1a126242fc4000f GIT binary patch literal 272431 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

mLucgw(B!1BDGbKBrEvPKF) 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�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 Radial** tab to run the Adaptive Templates script and display the new +# geometry. + +# %% +# .. note:: +# When running in a Jupyter Notebook, you must provide the path for the Adaptive Templates script +# (PY file) instead of ``sys.argv[0]`` when using the ``load_adaptive_script()`` method. +if not pymotorcad.is_running_in_internal_scripting(): + mc.set_variable("GeometryTemplateType", 1) + mc.load_adaptive_script(sys.argv[0]) + mc.display_screen("Geometry;Radial") From 69475d2da3470fcabe5928bffe90d0ecda1c9325 Mon Sep 17 00:00:00 2001 From: Jack Davies <80680946+jgsdavies@users.noreply.github.com> Date: Wed, 27 Nov 2024 14:37:23 +0000 Subject: [PATCH 10/10] Bump version 0.8.dev0 --- pyproject.toml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pyproject.toml b/pyproject.toml index 484f8611c..5204f8098 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -4,7 +4,7 @@ build-backend = "flit_core.buildapi" [project] name="ansys-motorcad-core" -version = "0.7.dev0" +version = "0.8.dev0" description = "Pythonic interface to Ansys Motor-CAD." readme = "README.rst" requires-python = ">=3.8" @@ -75,4 +75,4 @@ src_paths = ["doc", "src", "tests"] source = ["ansys.motorcad"] [tool.coverage.report] -show_missing = true \ No newline at end of file +show_missing = true