Skip to content

Commit

Permalink
create_region fix for 2d extractor (#4413)
Browse files Browse the repository at this point in the history
Co-authored-by: maxcapodi78 <Shark78>
Co-authored-by: gmalinve <[email protected]>
  • Loading branch information
maxcapodi78 and gmalinve authored Mar 27, 2024
1 parent 00f8bd6 commit 2b46970
Show file tree
Hide file tree
Showing 2 changed files with 33 additions and 10 deletions.
21 changes: 21 additions & 0 deletions _unittest/test_09_Primitives2D.py
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@
import pytest

from pyaedt import Maxwell2d
from pyaedt import Q2d
from pyaedt.modeler.cad.polylines import Polyline


Expand All @@ -17,6 +18,12 @@ def axisymmetrical(add_app):
return app


@pytest.fixture(scope="class")
def q2d_app(add_app):
app = add_app(design_name="2d_extr", application=Q2d)
return app


class TestClass:
@pytest.fixture(autouse=True)
def init(self, aedtapp, axisymmetrical, local_scratch):
Expand Down Expand Up @@ -108,3 +115,17 @@ def test_07_assign_material_ceramic(self, material="Ceramic_material"):
def test_07_assign_material(self, material="steel_stainless"):
self.aedtapp.assign_material(["Rectangle1"], material)
assert self.aedtapp.modeler["Rectangle1"].material_name == material

def test_08_region(self, q2d_app):
if q2d_app.modeler["Region"]:
q2d_app.modeler.delete("Region")
assert "Region" not in q2d_app.modeler.object_names
assert not q2d_app.modeler.create_region(["100%", "50%", "20%", "10%"])
assert q2d_app.modeler.create_region([100, 50, 20, 20])
q2d_app.modeler["Region"].delete()
assert q2d_app.modeler.create_region(100)
q2d_app.modeler["Region"].delete()
assert q2d_app.modeler.create_region("200")
q2d_app.modeler["Region"].delete()
assert q2d_app.modeler.create_region([100, "50mm", 20, 10], False)
q2d_app.modeler["Region"].delete()
22 changes: 12 additions & 10 deletions pyaedt/modeler/cad/Primitives2D.py
Original file line number Diff line number Diff line change
Expand Up @@ -304,16 +304,18 @@ def create_region(self, pad_percent=300, is_percentage=True):
>>> oEditor.CreateRegion
"""
if not isinstance(pad_percent, list):
if self._app.design_type == "2D Extractor" or self._app.design_type == "Maxwell 2D":
if self._app.odesign.GetGeometryMode() == "XY":
pad_percent = [pad_percent, pad_percent, pad_percent, pad_percent, 0, 0]
else:
pad_percent = [pad_percent, 0, 0, 0, pad_percent, pad_percent]
pad_percent = [pad_percent] * 4
if self._app.design_type == "2D Extractor" or (
self._app.design_type == "Maxwell 2D" and self._app.odesign.GetGeometryMode() == "XY"
):
if len(pad_percent) != 4:
self.logger.error("Wrong padding list provided. Four values have to be provided.")
return False
pad_percent = [pad_percent[0], pad_percent[2], pad_percent[1], pad_percent[3], 0, 0]
else:
if self._app.design_type == "2D Extractor" or self._app.design_type == "Maxwell 2D":
if self._app.odesign.GetGeometryMode() == "XY":
pad_percent = [pad_percent[0], pad_percent[2], pad_percent[1], pad_percent[3], 0, 0]
else:
pad_percent = [pad_percent[0], 0, 0, 0, pad_percent[1], pad_percent[2]]
if len(pad_percent) < 3:
self.logger.error("Wrong padding list provided. Three values have to be provided for RZ geometry.")
return False
pad_percent = [pad_percent[0], 0, 0, 0, pad_percent[1], pad_percent[2]]

return self._create_region(pad_percent, ["Absolute Offset", "Percentage Offset"][int(is_percentage)])

0 comments on commit 2b46970

Please sign in to comment.