Skip to content

Commit a434134

Browse files
committed
improved dynamic link method
1 parent 36dd34e commit a434134

File tree

2 files changed

+30
-32
lines changed

2 files changed

+30
-32
lines changed

_unittest/test_22_Circuit_DynamicLink.py

Lines changed: 17 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22
import os
33
from _unittest.conftest import local_path, scratch_path, config, desktop_version
44

5-
from pyaedt import Circuit, Q2d, Q3d, Hfss
5+
from pyaedt import Circuit
66
from pyaedt.generic.filesystem import Scratch
77
import gc
88

@@ -30,11 +30,10 @@ def setup_class(self):
3030
source_project = os.path.join(local_path, "example_models", src_project_name + ".aedt")
3131
linked_project = os.path.join(local_path, "example_models", linked_project_name + ".aedt")
3232

33-
q3d = os.path.join(local_path, "example_models", "q2d_q3d.aedt")
33+
self.q3d = os.path.join(local_path, "example_models", "q2d_q3d.aedt")
3434
self.test_project = self.local_scratch.copyfile(example_project)
3535
self.test_src_project = self.local_scratch.copyfile(source_project)
3636
self.test_lkd_project = self.local_scratch.copyfile(linked_project)
37-
self.q3d = self.local_scratch.copyfile(q3d)
3837

3938
self.local_scratch.copyfolder(
4039
os.path.join(local_path, "example_models", test_project_name + ".aedb"),
@@ -191,15 +190,19 @@ def test_09_setup(self):
191190

192191
def test_10_q3d_link(self):
193192
self.aedtapp.insert_design("test_link")
194-
app = Q2d(projectname=self.q3d, specified_version=desktop_version)
195-
assert self.aedtapp.modeler.schematic.add_subcircuit_dynamic_link(app, extrusion_length=25)
196-
self.aedtapp.close_project(app.project_name, False)
197-
app = Q3d(projectname=self.q3d, specified_version=desktop_version)
198-
assert self.aedtapp.modeler.schematic.add_subcircuit_dynamic_link(app)
199-
self.aedtapp.close_project(app.project_name, False)
200-
app = Hfss(projectname=self.q3d, specified_version=desktop_version)
201-
assert self.aedtapp.modeler.schematic.add_subcircuit_dynamic_link(app, solution_name="Setup1 : Sweep")
202-
assert self.aedtapp.modeler.schematic.add_subcircuit_dynamic_link(
203-
app, solution_name="Setup2 : Sweep", tline_port="1"
193+
assert self.aedtapp.modeler.schematic.add_subcircuit_dynamic_link("2DExtractorDesign1",
194+
self.q3d,
195+
solution_name="Setup1 : Sweep",
196+
extrusion_length=25)
197+
assert self.aedtapp.modeler.schematic.add_subcircuit_dynamic_link("Q3DDesign1",
198+
self.q3d,
199+
solution_name="Setup1 : LastAdaptive")
200+
assert self.aedtapp.modeler.schematic.add_subcircuit_dynamic_link("Terminal",
201+
self.q3d,
202+
solution_name="Setup1 : Sweep")
203+
assert self.aedtapp.modeler.schematic.add_subcircuit_dynamic_link("Terminal",
204+
self.q3d,
205+
solution_name="Setup2 : Sweep",
206+
tline_port="1"
204207
)
205-
self.aedtapp.close_project(app.project_name, False)
208+

pyaedt/modeler/PrimitivesNexxim.py

Lines changed: 13 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -1173,9 +1173,10 @@ def add_subcircuit_hfss_link(
11731173
@aedt_exception_handler
11741174
def add_subcircuit_dynamic_link(
11751175
self,
1176-
pyaedt_app,
1177-
solution_name=None,
1178-
extrusion_length=10,
1176+
source_design_name,
1177+
source_project_path,
1178+
solution_name,
1179+
extrusion_length=None,
11791180
enable_cable_modeling=True,
11801181
default_matrix="",
11811182
tline_port="",
@@ -1184,12 +1185,14 @@ def add_subcircuit_dynamic_link(
11841185
11851186
Parameters
11861187
----------
1187-
pyaedt_app : :class:`pyaedt.q3d.Q3d` or :class:`pyaedt.q3d.Q2d` or :class:`pyaedt.q3d.Hfss`
1188-
pyaedt application object to include. It could be an Hfss object, a Q3d object or a Q2d.
1188+
source_design_name : str
1189+
Source Project Design Name.
1190+
source_project_path : str
1191+
Source Project full path.
11891192
solution_name : str, optional
11901193
Name of the solution and sweep. The default is ``"Setup1 : Sweep"``.
11911194
extrusion_length : float, str, optional
1192-
Extrusion length for 2D Models. Default is 10 (in model units).
1195+
Extrusion length for 2D Models (q2d or Hfss). Default is `None`.
11931196
enable_cable_modeling : bool, optional
11941197
Either if the Hfss Cable modeling has to be enabled for 2D subcircuits.
11951198
default_matrix : str, optional
@@ -1210,16 +1213,8 @@ def add_subcircuit_dynamic_link(
12101213
>>> oDesign.AddCompInstance
12111214
>>> oDesign.AddDynamicLink
12121215
"""
1213-
comp_name = generate_unique_name(pyaedt_app.design_name)
1214-
source_project_path = pyaedt_app.project_file
1215-
source_design_name = pyaedt_app.design_name
1216-
if not solution_name:
1217-
solution_name = pyaedt_app.nominal_sweep
1218-
if pyaedt_app.design_type == "HFSS":
1219-
default_matrix = ""
1220-
enable_cable_modeling = False
1221-
else:
1222-
tline_port = ""
1216+
comp_name = generate_unique_name(source_design_name)
1217+
12231218
self._app.odesign.AddDynamicLink(
12241219
source_design_name,
12251220
source_project_path,
@@ -1233,9 +1228,9 @@ def add_subcircuit_dynamic_link(
12331228
self.refresh_all_ids()
12341229
for el in self.components:
12351230
if comp_name in self.components[el].composed_name:
1236-
if pyaedt_app.design_type == "2D Extractor":
1231+
if extrusion_length:
12371232
self.components[el].set_property("Length", extrusion_length)
1238-
elif pyaedt_app.design_type == "HFSS" and tline_port:
1233+
if tline_port and extrusion_length:
12391234
self.components[el].set_property("TLineLength", extrusion_length)
12401235
return self.components[el]
12411236
return False

0 commit comments

Comments
 (0)