Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Enhance docstring+fix backward compatiblity manipulation #4585

Merged
merged 8 commits into from
Apr 26, 2024
8 changes: 6 additions & 2 deletions _unittest/test_09_Primitives2D.py
Original file line number Diff line number Diff line change
Expand Up @@ -74,10 +74,14 @@ def test_06_create_region(self):
if self.aedtapp.modeler["Region"]:
self.aedtapp.modeler.delete("Region")
assert "Region" not in self.aedtapp.modeler.object_names
assert self.aedtapp.modeler.create_region([20, "50", "100mm", 20], False)
assert self.aedtapp.modeler.create_region([20, "50", "100mm", 20], "Absolute Offset")
self.aedtapp.modeler["Region"].delete()
region = self.aedtapp.modeler.create_region("100", True)
region = self.aedtapp.modeler.create_region("100", "Percentage Offset")
region.delete()
# test backward compatibility
region = self.aedtapp.modeler.create_region(pad_percent=[100, 10, 5, 2], pad_type=True)
region.delete()
#
region = self.aedtapp.modeler.create_region([100, 100, 100, 100])
assert region.solve_inside
assert region.model
Expand Down
15 changes: 9 additions & 6 deletions pyaedt/modeler/cad/Primitives2D.py
Original file line number Diff line number Diff line change
Expand Up @@ -287,7 +287,8 @@ def create_region(self, pad_value=300, pad_type="Percentage Offset", name="Regio
Padding values to apply. If a list is not provided, the same
value is applied to all padding directions. If a list of floats
or strings is provided, the values are
interpreted as padding for ``["+X", "-X", "+Y", "-Y", "+Z", "-Z"]``.
interpreted as padding for ``["+X", "-X", "+Y", "-Y"]`` for XY geometry mode,
and ``["+R", "+Z", "-Z"]`` for RZ geometry mode.
pad_type : str, optional
Padding definition. The default is ``"Percentage Offset"``.
Options are ``"Absolute Offset"``,
Expand Down Expand Up @@ -318,24 +319,26 @@ def create_region(self, pad_value=300, pad_type="Percentage Offset", name="Regio
if kwarg.get("pad_percent", False):
pad_percent = kwarg["pad_percent"]
pad_value = pad_percent
if isinstance(pad_value, list) and len(pad_value) < 6:
pad_value = [pad_value[i // 2 + 3 * (i % 2)] for i in range(6)]
if isinstance(pad_value, list) and len(pad_value) == 4:
pad_value = [pad_value[i // 2 + 2 * (i % 2)] for i in range(4)]
pad_type = ["Absolute Offset", "Percentage Offset"][int(is_percentage)]

if isinstance(pad_type, bool):
pad_type = ["Absolute Offset", "Percentage Offset"][int(pad_type)]

if not isinstance(pad_value, list):
pad_value = [pad_value] * 4
if self._app.design_type == "2D Extractor" or (
self._app.design_type == "Maxwell 2D" and self._app.odesign.GetGeometryMode() == "XY"
):
if not isinstance(pad_value, list):
pad_value = [pad_value] * 4
if len(pad_value) != 4:
self.logger.error("Wrong padding list provided. Four values have to be provided.")
return False
pad_value = [pad_value[0], pad_value[2], pad_value[1], pad_value[3], 0, 0]
else:
if len(pad_value) < 3:
if not isinstance(pad_value, list):
pad_value = [pad_value] * 3
if len(pad_value) != 3:
self.logger.error("Wrong padding list provided. Three values have to be provided for RZ geometry.")
return False
pad_value = [pad_value[0], 0, 0, 0, pad_value[1], pad_value[2]]
Expand Down
Loading