Skip to content

Commit 1e694c2

Browse files
authored
Props getitem and setitem (#1338)
* Improved props with getter and setters * Improved props with getter and setters for all classes supporting it * Improved props with getter and setters for all classes supporting it * Improved props with getter and setters for all classes supporting it * Fixed a bug in assign_material * increased the getimet matching percentage to 100% Co-authored-by: maxcapodi78 <Shark78>
1 parent 0d526b0 commit 1e694c2

25 files changed

+282
-216
lines changed

_unittest/test_02_3D_modeler.py

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -199,15 +199,17 @@ def test_27_create_region(self):
199199

200200
def test_28A_create_face_list(self):
201201
fl = self.aedtapp.modeler.get_object_faces("Second_airbox")
202-
assert self.aedtapp.modeler.create_face_list(fl, "my_face_list")
203-
assert not self.aedtapp.modeler.create_face_list(fl, "my_face_list")
202+
fl2 = self.aedtapp.modeler.create_face_list(fl, "my_face_list")
203+
assert fl2
204+
assert self.aedtapp.modeler.create_face_list(fl, "my_face_list") == fl2
204205
assert self.aedtapp.modeler.create_face_list(fl)
205206
assert self.aedtapp.modeler.create_face_list([str(fl[0])])
206207
assert not self.aedtapp.modeler.create_face_list(["outer2"])
207208

208209
def test_28B_create_object_list(self):
209-
assert self.aedtapp.modeler.create_object_list(["Second_airbox"], "my_object_list")
210-
assert not self.aedtapp.modeler.create_object_list(["Second_airbox"], "my_object_list")
210+
fl1 = self.aedtapp.modeler.create_object_list(["Second_airbox"], "my_object_list")
211+
assert fl1
212+
assert self.aedtapp.modeler.create_object_list(["Second_airbox"], "my_object_list") == fl1
211213
assert self.aedtapp.modeler.create_object_list(["Core", "outer"])
212214
self.aedtapp.modeler.user_lists[4].props["List"] = ["outer", "Core", "inner"]
213215
self.aedtapp.modeler.user_lists[4].auto_update = False

_unittest/test_05_Mesh.py

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -43,6 +43,8 @@ def test_assign_surface_mesh_manual(self):
4343
surface = self.aedtapp.mesh.assign_surface_mesh_manual(o.id, 1e-6, aspect_ratio=3, meshop_name="Surface_Manual")
4444
assert "Surface_Manual" in [i.name for i in self.aedtapp.mesh.meshoperations]
4545
assert surface.props["SurfDev"] == 1e-6
46+
surface["SurfDev"] = 1e-5
47+
assert surface.props["SurfDev"] == 1e-5
4648
assert surface.props["AspectRatioChoice"] == 2
4749

4850
cylinder_zx = self.aedtapp.modeler.create_cylinder(

_unittest/test_11_Setup.py

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,9 @@ def test_01_create_hfss_setup(self):
2020
setup1 = self.aedtapp.create_setup("My_HFSS_Setup", self.aedtapp.SETUPS.HFSSDrivenDefault)
2121
assert setup1.name == "My_HFSS_Setup"
2222
assert "SaveRadFieldsOnly" in setup1.props
23-
setup1.props["SaveRadFieldsOnly"] = True
23+
assert "SaveRadFieldsOnly" in setup1.available_properties
24+
setup1["SaveRadFieldsonly"] = True
25+
assert setup1.props["SaveRadFieldsOnly"] == setup1["SaveRadFieldsonly"]
2426
assert setup1.enable_adaptive_setup_multifrequency([1, 2, 3])
2527
assert setup1.props["MultipleAdaptiveFreqsSetup"]["1GHz"][0] == 0.02
2628
assert setup1.enable_adaptive_setup_broadband(1, 2.5, 10, 0.01)
@@ -51,6 +53,10 @@ def test_02_create_circuit_setup(self):
5153
setup1 = circuit.create_setup("circuit", self.aedtapp.SETUPS.NexximLNA)
5254
assert setup1.name == "circuit"
5355
setup1.props["SweepDefinition"]["Data"] = "LINC 0GHz 4GHz 501"
56+
setup1["SaveRadFieldsonly"] = True
57+
setup1["SweepDefinition/Data"] = "LINC 0GHz 4GHz 301"
58+
assert setup1.props["SweepDefinition"]["Data"] == "LINC 0GHz 4GHz 301"
59+
assert "SweepDefinition" in setup1.available_properties
5460
setup1.update()
5561
setup1.disable()
5662
setup1.enable()

_unittest/test_27_Maxwell2D.py

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -67,6 +67,8 @@ def test_05_create_vector_potential(self):
6767
bounds = self.aedtapp.assign_vector_potential(edge_object.id, 3)
6868
assert bounds
6969
assert bounds.props["Value"] == "3"
70+
bounds["Value"] = "2"
71+
assert bounds.props["Value"] == "2"
7072
line = self.aedtapp.modeler.create_polyline([[0, 0, 0], [1, 0, 1]], name="myline")
7173
bound2 = self.aedtapp.assign_vector_potential(line.id, 2)
7274
assert bound2

_unittest/test_41_3dlayout_modeler.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -194,7 +194,7 @@ def test_14_create_setup(self):
194194
setup_name = "RFBoardSetup"
195195
setup = self.aedtapp.create_setup(setupname=setup_name)
196196
assert setup.name == self.aedtapp.existing_analysis_setups[0]
197-
assert setup.setup_type == "HFSS"
197+
assert setup.solver_type == "HFSS"
198198

199199
def test_15_edit_setup(self):
200200
setup_name = "RFBoardSetup2"

examples/00-EDB/03_5G_antenna_example.py

Lines changed: 9 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -223,10 +223,16 @@ def points(self):
223223
###############################################################################
224224
# Create Setup and Sweeps
225225
# ~~~~~~~~~~~~~~~~~~~~~~~
226-
#
226+
# New getters and setter facilitate the settings on nested property dictionary.
227+
# Previously the following command had to be used
228+
# `setup.props["AdaptiveSettings"]["SingleFrequencyDataList"]["AdaptiveFrequencyData"]["AdaptiveFrequency"] = "20GHz"`
229+
# `setup.props["AdaptiveSettings"]["SingleFrequencyDataList"]["AdaptiveFrequencyData"]["MaxPasses"] = 4`
230+
# Now there are simpler approaches like showed below.
231+
227232
setup = h3d.create_setup()
228-
setup.props["AdaptiveSettings"]["SingleFrequencyDataList"]["AdaptiveFrequencyData"]["AdaptiveFrequency"] = "20GHz"
229-
setup.props["AdaptiveSettings"]["SingleFrequencyDataList"]["AdaptiveFrequencyData"]["MaxPasses"] = 4
233+
234+
setup["AdaptiveFrequency"] = "20GHz"
235+
setup["AdaptiveSettings/SingleFrequencyDataList/AdaptiveFrequencyData/MaxPasses"] = 4
230236
h3d.create_linear_count_sweep(
231237
setupname=setup.name,
232238
unit="GHz",

examples/01-Modeling-Setup/Configurations.py

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -84,12 +84,14 @@
8484
# Setup
8585
# ~~~~~
8686
# Create Setup
87+
# with new getters and setters, the properties can be setup from the setup object
88+
# and they don't to perfectly match the prop sintax.
8789

8890
setup1 = ipk.create_setup()
89-
setup1.props["Flow Regime"] = "Turbulent"
90-
setup1.props["Convergence Criteria - Max Iterations"] = 5
91-
setup1.props["Linear Solver Type - Pressure"] = "flex"
92-
setup1.props["Linear Solver Type - Temperature"] = "flex"
91+
setup1["FlowRegime"] = "Turbulent"
92+
setup1["Max Iterations"] = 5
93+
setup1["Solver Type Pressure"] = "flex"
94+
setup1["Solver Type Temperature"] = "flex"
9395
ipk.save_project(r"C:\temp\Graphic_card.aedt")
9496

9597
###############################################################################

examples/01-Modeling-Setup/HFSS_CoordinateSystem.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -54,7 +54,7 @@
5454
# The `cs1` object exposes properties and methods to manipulate the coordinate system.
5555
# The origin can be changed.
5656

57-
cs1.props["OriginX"] = 10
57+
cs1["OriginX"] = 10
5858
cs1.props["OriginY"] = 10
5959
cs1.props["OriginZ"] = 10
6060

examples/02-HFSS/Flex_CPWG.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -180,7 +180,7 @@ def create_bending(radius, extension=0):
180180
# ~~~~~~~~~~~~~~~
181181
# This part creates setup and sweep.
182182
setup = hfss.create_setup("setup1")
183-
setup.props["Frequency"] = "2GHz"
183+
setup["Frequency"] = "2GHz"
184184
setup.props["MaximumPasses"] = 10
185185
setup.props["MinimumConvergedPasses"] = 2
186186
hfss.create_linear_count_sweep(

examples/02-HFSS/HFSS_Choke.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -179,7 +179,7 @@
179179

180180
setup = hfss.create_setup("MySetup")
181181
setup.props["Frequency"] = "50MHz"
182-
setup.props["MaximumPasses"] = 10
182+
setup["MaximumPasses"] = 10
183183
hfss.create_linear_count_sweep(
184184
setupname=setup.name,
185185
unit="MHz",

0 commit comments

Comments
 (0)