From 09d0f450c70f64c0d940f7eeb2eca819927a98bd Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?S=C3=A9bastien=20Morais?= Date: Thu, 23 Oct 2025 15:44:24 +0200 Subject: [PATCH 1/4] FIX: Allow Object3d to be used as in method description --- src/ansys/aedt/core/modeler/cad/primitives.py | 22 +++++++++---------- 1 file changed, 11 insertions(+), 11 deletions(-) diff --git a/src/ansys/aedt/core/modeler/cad/primitives.py b/src/ansys/aedt/core/modeler/cad/primitives.py index 98a67936930..6b9013aa8c5 100644 --- a/src/ansys/aedt/core/modeler/cad/primitives.py +++ b/src/ansys/aedt/core/modeler/cad/primitives.py @@ -842,7 +842,7 @@ def model_consistency_report(self): return report @property - def objects_by_name(self): + def objects_by_name(self) -> dict[str, Object3d]: """Object dictionary organized by name. Returns @@ -6587,26 +6587,26 @@ def value_in_object_units(self, value): return numeric_list @pyaedt_function_handler(obj_to_check="assignment") - def does_object_exists(self, assignment): + def does_object_exists(self, assignment) -> bool: """Check to see if an object exists. Parameters ---------- - assignment : str, int - Object name or object ID. + assignment : str, int or :class:`ansys.aedt.core.modeler.cad.object_3d.Object3d` + Object name or object ID or Object3d to check. Returns ------- bool ``True`` when successful, ``False`` when failed. - """ - if isinstance(assignment, int) and assignment in self.objects: - return True - elif assignment in self.objects_by_name: - return True - else: - return False + if isinstance(assignment, int): + return assignment in self.objects + elif isinstance(assignment, str): + return assignment in self.objects_by_name + elif isinstance(assignment, Object3d): + return assignment.name in self.objects_by_name + return False @pyaedt_function_handler(parts="assignment", region_name="name") def create_subregion(self, padding_values, padding_types, assignment, name=None): From f6cb63df967570708788daa1732cd1a76987e3f8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?S=C3=A9bastien=20Morais?= Date: Thu, 23 Oct 2025 15:47:33 +0200 Subject: [PATCH 2/4] TEST: Extend testing to Object3D --- tests/system/general/test_20_HFSS.py | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/tests/system/general/test_20_HFSS.py b/tests/system/general/test_20_HFSS.py index 51d9486b487..539b8e1f514 100644 --- a/tests/system/general/test_20_HFSS.py +++ b/tests/system/general/test_20_HFSS.py @@ -787,13 +787,16 @@ def test_17B_update_assignment(self): def test_18_create_sources_on_objects(self): box1 = self.aedtapp.modeler.create_box([30, 0, 0], [40, 10, 5], "BoxVolt1", "Copper") - self.aedtapp.modeler.create_box([30, 0, 10], [40, 10, 5], "BoxVolt2", "Copper") + box2 = self.aedtapp.modeler.create_box([30, 0, 10], [40, 10, 5], "BoxVolt2", "Copper") port = self.aedtapp.create_voltage_source_from_objects( box1.name, "BoxVolt2", self.aedtapp.AxisDir.XNeg, "Volt1" ) assert port.name in self.aedtapp.excitation_names port = self.aedtapp.create_current_source_from_objects("BoxVolt1", "BoxVolt2", self.aedtapp.AxisDir.XPos) assert port.name in self.aedtapp.excitation_names + port2 = self.aedtapp.create_current_source_from_objects(box1, box2, name="Port2") + assert port2 + assert port2.name in self.aedtapp.excitation_names def test_19_create_lumped_on_sheet(self): rect = self.aedtapp.modeler.create_rectangle(Plane.XY, [0, 0, 0], [10, 2], name="lump_port", material="Copper") From 7ef9f8cb83a218bca85b5dc3f045a3fcd6f43f24 Mon Sep 17 00:00:00 2001 From: pyansys-ci-bot <92810346+pyansys-ci-bot@users.noreply.github.com> Date: Thu, 23 Oct 2025 13:51:57 +0000 Subject: [PATCH 3/4] chore: adding changelog file 6804.fixed.md [dependabot-skip] --- doc/changelog.d/6804.fixed.md | 1 + 1 file changed, 1 insertion(+) create mode 100644 doc/changelog.d/6804.fixed.md diff --git a/doc/changelog.d/6804.fixed.md b/doc/changelog.d/6804.fixed.md new file mode 100644 index 00000000000..59ade187115 --- /dev/null +++ b/doc/changelog.d/6804.fixed.md @@ -0,0 +1 @@ +Allow Object3d to be used in create_current_source_from_objects From 2cb9fcdd85f29356e932640cb7f9dcfefabcd81e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?S=C3=A9bastien=20Morais?= Date: Fri, 24 Oct 2025 10:22:24 +0200 Subject: [PATCH 4/4] TEST: Extend testing --- src/ansys/aedt/core/modeler/cad/primitives_3d.py | 6 +++++- tests/system/general/test_20_HFSS.py | 12 ++++++++++-- 2 files changed, 15 insertions(+), 3 deletions(-) diff --git a/src/ansys/aedt/core/modeler/cad/primitives_3d.py b/src/ansys/aedt/core/modeler/cad/primitives_3d.py index b969284facb..d7f117ca775 100644 --- a/src/ansys/aedt/core/modeler/cad/primitives_3d.py +++ b/src/ansys/aedt/core/modeler/cad/primitives_3d.py @@ -35,6 +35,7 @@ from math import tan import os from pathlib import Path +from typing import TYPE_CHECKING from ansys.aedt.core import Edb from ansys.aedt.core.base import PyAedtBase @@ -53,6 +54,9 @@ from ansys.aedt.core.modeler.cad.primitives import GeometryModeler from ansys.aedt.core.modeler.geometry_operators import GeometryOperators +if TYPE_CHECKING: + from ansys.aedt.core.modeler.cad.object_3d import Object3d + class Primitives3D(GeometryModeler, PyAedtBase): """Manages primitives in applications using the 3D modeler. @@ -111,7 +115,7 @@ def __init__(self, application): self.multiparts = [] @pyaedt_function_handler(position="origin", dimensions_list="sizes", matname="material") - def create_box(self, origin, sizes, name=None, material=None, **kwargs): + def create_box(self, origin, sizes, name=None, material=None, **kwargs) -> "Object3d": """Create a box. Parameters diff --git a/tests/system/general/test_20_HFSS.py b/tests/system/general/test_20_HFSS.py index 539b8e1f514..9db25c4e741 100644 --- a/tests/system/general/test_20_HFSS.py +++ b/tests/system/general/test_20_HFSS.py @@ -792,11 +792,19 @@ def test_18_create_sources_on_objects(self): box1.name, "BoxVolt2", self.aedtapp.AxisDir.XNeg, "Volt1" ) assert port.name in self.aedtapp.excitation_names - port = self.aedtapp.create_current_source_from_objects("BoxVolt1", "BoxVolt2", self.aedtapp.AxisDir.XPos) + + # Create with name + port = self.aedtapp.create_current_source_from_objects(box1.name, box2.name, self.aedtapp.AxisDir.XPos) + assert port assert port.name in self.aedtapp.excitation_names - port2 = self.aedtapp.create_current_source_from_objects(box1, box2, name="Port2") + # Create with id + port2 = self.aedtapp.create_current_source_from_objects(box1.id, box2.id) assert port2 assert port2.name in self.aedtapp.excitation_names + # Create with Object3d + port3 = self.aedtapp.create_current_source_from_objects(box1, box2) + assert port3 + assert port3.name in self.aedtapp.excitation_names def test_19_create_lumped_on_sheet(self): rect = self.aedtapp.modeler.create_rectangle(Plane.XY, [0, 0, 0], [10, 2], name="lump_port", material="Copper")