pyedb 0.13.0__py3-none-any.whl → 0.14.0__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.

Potentially problematic release.


This version of pyedb might be problematic. Click here for more details.

Files changed (75) hide show
  1. pyedb/__init__.py +1 -1
  2. pyedb/configuration/cfg_common.py +0 -5
  3. pyedb/configuration/cfg_components.py +0 -2
  4. pyedb/configuration/cfg_operations.py +0 -2
  5. pyedb/configuration/cfg_package_definition.py +0 -2
  6. pyedb/configuration/cfg_ports_sources.py +14 -11
  7. pyedb/configuration/cfg_stackup.py +0 -7
  8. pyedb/configuration/configuration.py +0 -6
  9. pyedb/dotnet/application/Variables.py +4 -40
  10. pyedb/dotnet/edb.py +27 -82
  11. pyedb/dotnet/edb_core/{edb_data/components_data.py → cell/hierarchy/component.py} +13 -133
  12. pyedb/dotnet/edb_core/cell/hierarchy/model.py +0 -3
  13. pyedb/dotnet/edb_core/cell/hierarchy/netlist_model.py +30 -0
  14. pyedb/dotnet/edb_core/cell/hierarchy/pin_pair_model.py +105 -0
  15. pyedb/dotnet/edb_core/cell/hierarchy/s_parameter_model.py +34 -0
  16. pyedb/dotnet/edb_core/cell/hierarchy/spice_model.py +34 -0
  17. pyedb/dotnet/edb_core/cell/layout.py +137 -0
  18. pyedb/dotnet/edb_core/cell/layout_obj.py +2 -4
  19. pyedb/dotnet/edb_core/cell/primitive.py +199 -1
  20. pyedb/dotnet/edb_core/cell/terminal/bundle_terminal.py +52 -0
  21. pyedb/dotnet/edb_core/cell/terminal/edge_terminal.py +50 -0
  22. pyedb/dotnet/edb_core/cell/terminal/padstack_instance_terminal.py +88 -0
  23. pyedb/dotnet/edb_core/cell/terminal/pingroup_terminal.py +59 -0
  24. pyedb/dotnet/edb_core/cell/terminal/point_terminal.py +73 -0
  25. pyedb/dotnet/edb_core/{edb_data/terminals.py → cell/terminal/terminal.py} +33 -242
  26. pyedb/dotnet/edb_core/components.py +10 -56
  27. pyedb/dotnet/edb_core/definition/component_def.py +1 -8
  28. pyedb/dotnet/edb_core/definition/component_model.py +0 -2
  29. pyedb/dotnet/edb_core/definition/definitions.py +0 -2
  30. pyedb/dotnet/edb_core/definition/package_def.py +7 -5
  31. pyedb/dotnet/edb_core/edb_data/control_file.py +0 -3
  32. pyedb/dotnet/edb_core/edb_data/hfss_extent_info.py +0 -5
  33. pyedb/dotnet/edb_core/edb_data/hfss_pi_simulation_setup_data.py +4 -9
  34. pyedb/dotnet/edb_core/edb_data/layer_data.py +0 -7
  35. pyedb/dotnet/edb_core/edb_data/nets_data.py +2 -5
  36. pyedb/dotnet/edb_core/edb_data/padstacks_data.py +11 -29
  37. pyedb/dotnet/edb_core/edb_data/ports.py +4 -4
  38. pyedb/dotnet/edb_core/edb_data/primitives_data.py +3 -26
  39. pyedb/dotnet/edb_core/edb_data/raptor_x_simulation_setup_data.py +13 -20
  40. pyedb/dotnet/edb_core/edb_data/simulation_configuration.py +3 -11
  41. pyedb/dotnet/edb_core/edb_data/sources.py +12 -17
  42. pyedb/dotnet/edb_core/general.py +1 -6
  43. pyedb/dotnet/edb_core/geometry/polygon_data.py +0 -3
  44. pyedb/dotnet/edb_core/hfss.py +1 -33
  45. pyedb/dotnet/edb_core/layout.py +0 -35
  46. pyedb/dotnet/edb_core/layout_validation.py +1 -3
  47. pyedb/dotnet/edb_core/materials.py +1 -22
  48. pyedb/dotnet/edb_core/net_class.py +0 -8
  49. pyedb/dotnet/edb_core/nets.py +4 -29
  50. pyedb/dotnet/edb_core/padstack.py +76 -30
  51. pyedb/dotnet/edb_core/sim_setup_data/data/adaptive_frequency_data.py +72 -0
  52. pyedb/dotnet/edb_core/sim_setup_data/data/mesh_operation.py +287 -0
  53. pyedb/dotnet/edb_core/{edb_data/hfss_simulation_setup_data.py → sim_setup_data/data/settings.py} +174 -878
  54. pyedb/dotnet/edb_core/sim_setup_data/data/sweep_data.py +509 -0
  55. pyedb/dotnet/edb_core/sim_setup_data/io/__init__.py +0 -0
  56. pyedb/dotnet/edb_core/{edb_data/siwave_simulation_setup_data.py → sim_setup_data/io/siwave.py} +0 -341
  57. pyedb/dotnet/edb_core/siwave.py +5 -33
  58. pyedb/dotnet/edb_core/stackup.py +4 -51
  59. pyedb/dotnet/edb_core/utilities/simulation_setup.py +612 -366
  60. pyedb/generic/data_handlers.py +1 -9
  61. pyedb/generic/general_methods.py +3 -53
  62. pyedb/generic/plot.py +1 -2
  63. pyedb/ipc2581/ecad/cad_data/layer_feature.py +1 -7
  64. pyedb/ipc2581/ecad/cad_data/package.py +1 -4
  65. pyedb/ipc2581/ecad/cad_data/path.py +1 -3
  66. pyedb/ipc2581/ecad/cad_data/polygon.py +1 -6
  67. pyedb/ipc2581/ecad/cad_data/step.py +1 -10
  68. pyedb/ipc2581/ipc2581.py +8 -15
  69. pyedb/modeler/geometry_operators.py +164 -67
  70. pyedb/siwave.py +1 -16
  71. {pyedb-0.13.0.dist-info → pyedb-0.14.0.dist-info}/METADATA +2 -2
  72. {pyedb-0.13.0.dist-info → pyedb-0.14.0.dist-info}/RECORD +75 -61
  73. /pyedb/dotnet/edb_core/cell/{__init__.py → terminal/__init__.py} +0 -0
  74. {pyedb-0.13.0.dist-info → pyedb-0.14.0.dist-info}/LICENSE +0 -0
  75. {pyedb-0.13.0.dist-info → pyedb-0.14.0.dist-info}/WHEEL +0 -0
@@ -22,8 +22,6 @@
22
22
 
23
23
  from __future__ import absolute_import
24
24
 
25
- from pyedb.generic.general_methods import pyedb_function_handler
26
-
27
25
 
28
26
  class LayerEdbClass(object):
29
27
  """Manages Edb Layers. Replaces EDBLayer."""
@@ -40,7 +38,6 @@ class LayerEdbClass(object):
40
38
  self._create(layer_type)
41
39
  self.update(**kwargs)
42
40
 
43
- @pyedb_function_handler
44
41
  def _create(self, layer_type):
45
42
  layer_type = self._layer_name_mapping[layer_type]
46
43
  layer_type = self._doc_layer_mapping[layer_type]
@@ -50,7 +47,6 @@ class LayerEdbClass(object):
50
47
  layer_type,
51
48
  )
52
49
 
53
- @pyedb_function_handler
54
50
  def update(self, **kwargs):
55
51
  for k, v in kwargs.items():
56
52
  if k in dir(self):
@@ -539,7 +535,6 @@ class StackupLayerEdbClass(LayerEdbClass):
539
535
  def side_hallhuray_surface_ratio(self, value):
540
536
  self._side_hallhuray_surface_ratio = value
541
537
 
542
- @pyedb_function_handler()
543
538
  def get_roughness_model(self, surface="top"):
544
539
  """Get roughness model of the layer.
545
540
 
@@ -562,7 +557,6 @@ class StackupLayerEdbClass(LayerEdbClass):
562
557
  elif surface == "side":
563
558
  return self._edb_layer.GetRoughnessModel(self._pedb.edb_api.Cell.RoughnessModel.Region.Side)
564
559
 
565
- @pyedb_function_handler()
566
560
  def assign_roughness_model(
567
561
  self,
568
562
  model_type="huray",
@@ -627,7 +621,6 @@ class StackupLayerEdbClass(LayerEdbClass):
627
621
  layer_clone.SetRoughnessModel(r, model)
628
622
  return self._pedb.stackup._set_layout_stackup(layer_clone, "change_attribute")
629
623
 
630
- @pyedb_function_handler()
631
624
  def _json_format(self):
632
625
  dict_out = {}
633
626
  self._color = self.color
@@ -28,7 +28,6 @@ from pyedb.dotnet.edb_core.dotnet.database import (
28
28
  )
29
29
  from pyedb.dotnet.edb_core.edb_data.padstacks_data import EDBPadstackInstance
30
30
  from pyedb.dotnet.edb_core.edb_data.primitives_data import cast
31
- from pyedb.generic.general_methods import pyedb_function_handler
32
31
 
33
32
 
34
33
  class EDBNetsData(NetDotNet):
@@ -58,6 +57,7 @@ class EDBNetsData(NetDotNet):
58
57
  self._core_components = core_app.components
59
58
  self._core_primitive = core_app.modeler
60
59
  self.net_object = raw_net
60
+ self._edb_object = raw_net
61
61
  NetDotNet.__init__(self, self._app, raw_net)
62
62
 
63
63
  @property
@@ -88,7 +88,7 @@ class EDBNetsData(NetDotNet):
88
88
 
89
89
  Returns
90
90
  -------
91
- dict[str, :class:`pyedb.dotnet.edb_core.edb_data.components_data.EDBComponent`]
91
+ dict[str, :class:`pyedb.dotnet.edb_core.cell.hierarchy.component.EDBComponent`]
92
92
  """
93
93
  comps = {}
94
94
  for p in self.padstack_instances:
@@ -98,7 +98,6 @@ class EDBNetsData(NetDotNet):
98
98
  comps[comp.refdes] = comp
99
99
  return comps
100
100
 
101
- @pyedb_function_handler()
102
101
  def find_dc_short(self, fix=False):
103
102
  """Find DC-shorted nets.
104
103
 
@@ -115,7 +114,6 @@ class EDBNetsData(NetDotNet):
115
114
  """
116
115
  return self._app.layout_validation.dc_shorts(self.name, fix)
117
116
 
118
- @pyedb_function_handler()
119
117
  def plot(
120
118
  self,
121
119
  layers=None,
@@ -155,7 +153,6 @@ class EDBNetsData(NetDotNet):
155
153
  show=show,
156
154
  )
157
155
 
158
- @pyedb_function_handler()
159
156
  def get_smallest_trace_width(self):
160
157
  """Retrieve the smallest trace width from paths.
161
158
 
@@ -30,11 +30,7 @@ from pyedb.dotnet.edb_core.cell.primitive import Primitive
30
30
  from pyedb.dotnet.edb_core.dotnet.database import PolygonDataDotNet
31
31
  from pyedb.dotnet.edb_core.edb_data.edbvalue import EdbValue
32
32
  from pyedb.dotnet.edb_core.general import PadGeometryTpe, convert_py_list_to_net_list
33
- from pyedb.generic.general_methods import (
34
- generate_unique_name,
35
- is_ironpython,
36
- pyedb_function_handler,
37
- )
33
+ from pyedb.generic.general_methods import generate_unique_name, is_ironpython
38
34
  from pyedb.modeler.geometry_operators import GeometryOperators
39
35
 
40
36
 
@@ -300,7 +296,6 @@ class EDBPadProperties(object):
300
296
  def rotation(self, rotation_value):
301
297
  self._update_pad_parameters_parameters(rotation=rotation_value)
302
298
 
303
- @pyedb_function_handler()
304
299
  def int_to_pad_type(self, val=0):
305
300
  """Convert an integer to an EDB.PadGeometryType.
306
301
 
@@ -315,7 +310,6 @@ class EDBPadProperties(object):
315
310
  """
316
311
  return self._pedbpadstack._ppadstack.int_to_pad_type(val)
317
312
 
318
- @pyedb_function_handler()
319
313
  def int_to_geometry_type(self, val=0):
320
314
  """Convert an integer to an EDB.PadGeometryType.
321
315
 
@@ -330,7 +324,6 @@ class EDBPadProperties(object):
330
324
  """
331
325
  return self._pedbpadstack._ppadstack.int_to_geometry_type(val)
332
326
 
333
- @pyedb_function_handler()
334
327
  def _update_pad_parameters_parameters(
335
328
  self,
336
329
  layer_name=None,
@@ -521,7 +514,6 @@ class EDBPadstack(object):
521
514
  """Hole diameter in string format."""
522
515
  return list(self.hole_params[2])[0].ToString()
523
516
 
524
- @pyedb_function_handler()
525
517
  def _update_hole_parameters(self, hole_type=None, params=None, offsetx=None, offsety=None, rotation=None):
526
518
  """Update hole parameters.
527
519
 
@@ -777,7 +769,6 @@ class EDBPadstack(object):
777
769
  return
778
770
  self.edb_padstack.SetData(cloned_padstackdef_data)
779
771
 
780
- @pyedb_function_handler()
781
772
  def convert_to_3d_microvias(self, convert_only_signal_vias=True, hole_wall_angle=15, delete_padstack_def=True):
782
773
  """Convert actual padstack instance to microvias 3D Objects with a given aspect ratio.
783
774
 
@@ -905,7 +896,6 @@ class EDBPadstack(object):
905
896
  self._ppadstack._pedb.logger.info("{} Converted successfully to 3D Objects.".format(i))
906
897
  return True
907
898
 
908
- @pyedb_function_handler()
909
899
  def split_to_microvias(self):
910
900
  """Convert actual padstack definition to multiple microvias definitions.
911
901
 
@@ -1045,7 +1035,6 @@ class EDBPadstack(object):
1045
1035
  self._ppadstack._pedb.logger.info("Created {} new microvias.".format(i))
1046
1036
  return new_instances
1047
1037
 
1048
- @pyedb_function_handler()
1049
1038
  def _update_layer_names(self, old_name, updated_name):
1050
1039
  """Update padstack definition layer name when layer name is edited with the layer name setter.
1051
1040
  Parameters
@@ -1187,7 +1176,7 @@ class EDBPadstackInstance(Primitive):
1187
1176
  if create_new_terminal:
1188
1177
  term = self._create_terminal(name)
1189
1178
  else:
1190
- from pyedb.dotnet.edb_core.edb_data.terminals import (
1179
+ from pyedb.dotnet.edb_core.cell.terminal.padstack_instance_terminal import (
1191
1180
  PadstackInstanceTerminal,
1192
1181
  )
1193
1182
 
@@ -1198,33 +1187,33 @@ class EDBPadstackInstance(Primitive):
1198
1187
  @property
1199
1188
  def terminal(self):
1200
1189
  """Terminal."""
1201
- from pyedb.dotnet.edb_core.edb_data.terminals import PadstackInstanceTerminal
1190
+ from pyedb.dotnet.edb_core.cell.terminal.padstack_instance_terminal import (
1191
+ PadstackInstanceTerminal,
1192
+ )
1202
1193
 
1203
1194
  term = PadstackInstanceTerminal(self._pedb, self._edb_object.GetPadstackInstanceTerminal())
1204
1195
  return term if not term.is_null else None
1205
1196
 
1206
- @pyedb_function_handler()
1207
1197
  def _create_terminal(self, name=None):
1208
1198
  """Create a padstack instance terminal"""
1209
1199
  warnings.warn("`_create_terminal` is deprecated. Use `create_terminal` instead.", DeprecationWarning)
1210
1200
  return self.create_terminal(name)
1211
1201
 
1212
- @pyedb_function_handler
1213
1202
  def create_terminal(self, name=None):
1214
1203
  """Create a padstack instance terminal"""
1215
- from pyedb.dotnet.edb_core.edb_data.terminals import PadstackInstanceTerminal
1204
+ from pyedb.dotnet.edb_core.cell.terminal.padstack_instance_terminal import (
1205
+ PadstackInstanceTerminal,
1206
+ )
1216
1207
 
1217
1208
  term = PadstackInstanceTerminal(self._pedb, self._edb_object.GetPadstackInstanceTerminal())
1218
1209
  return term.create(self, name)
1219
1210
 
1220
- @pyedb_function_handler()
1221
1211
  def create_coax_port(self, name=None, radial_extent_factor=0):
1222
1212
  """Create a coax port."""
1223
1213
  port = self.create_port(name)
1224
1214
  port.radial_extent_factor = radial_extent_factor
1225
1215
  return port
1226
1216
 
1227
- @pyedb_function_handler
1228
1217
  def create_port(self, name=None, reference=None, is_circuit_port=False):
1229
1218
  """Create a port on the padstack.
1230
1219
 
@@ -1239,9 +1228,9 @@ class EDBPadstackInstance(Primitive):
1239
1228
  is_circuit_port : bool, optional
1240
1229
  Whether it is a circuit port.
1241
1230
  """
1242
- terminal = self._create_terminal(name)
1231
+ terminal = self.create_terminal(name)
1243
1232
  if reference:
1244
- ref_terminal = reference._create_terminal(terminal.name + "_ref")
1233
+ ref_terminal = reference.create_terminal(terminal.name + "_ref")
1245
1234
  if reference._edb_object.ToString() == "PinGroup":
1246
1235
  is_circuit_port = True
1247
1236
  else:
@@ -1341,7 +1330,6 @@ class EDBPadstackInstance(Primitive):
1341
1330
  ]
1342
1331
  return self._bounding_box
1343
1332
 
1344
- @pyedb_function_handler()
1345
1333
  def in_polygon(self, polygon_data, include_partial=True, simple_check=False):
1346
1334
  """Check if padstack Instance is in given polygon data.
1347
1335
 
@@ -1637,7 +1625,7 @@ class EDBPadstackInstance(Primitive):
1637
1625
  @property
1638
1626
  def component(self):
1639
1627
  """Component."""
1640
- from pyedb.dotnet.edb_core.edb_data.components_data import EDBComponent
1628
+ from pyedb.dotnet.edb_core.cell.hierarchy.component import EDBComponent
1641
1629
 
1642
1630
  comp = EDBComponent(self._pedb, self._edb_object.GetComponent())
1643
1631
  return comp if not comp.is_null else False
@@ -1768,7 +1756,6 @@ class EDBPadstackInstance(Primitive):
1768
1756
  name = str(name).strip("'")
1769
1757
  return name
1770
1758
 
1771
- @pyedb_function_handler()
1772
1759
  def parametrize_position(self, prefix=None):
1773
1760
  """Parametrize the instance position.
1774
1761
 
@@ -1793,7 +1780,6 @@ class EDBPadstackInstance(Primitive):
1793
1780
  self.position = [var_name + "X", var_name + "Y"]
1794
1781
  return [var_name + "X", var_name + "Y"]
1795
1782
 
1796
- @pyedb_function_handler()
1797
1783
  def delete_padstack_instance(self):
1798
1784
  """Delete this padstack instance.
1799
1785
 
@@ -1804,7 +1790,6 @@ class EDBPadstackInstance(Primitive):
1804
1790
  self._edb_padstackinstance.Delete()
1805
1791
  return True
1806
1792
 
1807
- @pyedb_function_handler()
1808
1793
  def in_voids(self, net_name=None, layer_name=None):
1809
1794
  """Check if this padstack instance is in any void.
1810
1795
 
@@ -1897,7 +1882,6 @@ class EDBPadstackInstance(Primitive):
1897
1882
  """
1898
1883
  return int(self._edb_padstackinstance.GetGroup().GetPlacementLayer().GetTopBottomAssociation())
1899
1884
 
1900
- @pyedb_function_handler()
1901
1885
  def create_rectangle_in_pad(self, layer_name, return_points=False, partition_max_order=16):
1902
1886
  """Create a rectangle inscribed inside a padstack instance pad.
1903
1887
 
@@ -2095,7 +2079,6 @@ class EDBPadstackInstance(Primitive):
2095
2079
  created_polygon = self._pedb.modeler.create_polygon(path, layer_name)
2096
2080
  return created_polygon
2097
2081
 
2098
- @pyedb_function_handler()
2099
2082
  def get_connected_object_id_set(self):
2100
2083
  """Produce a list of all geometries physically connected to a given layout object.
2101
2084
 
@@ -2108,7 +2091,6 @@ class EDBPadstackInstance(Primitive):
2108
2091
  layoutObjInst = self.object_instance
2109
2092
  return [loi.GetLayoutObj().GetId() for loi in layoutInst.GetConnectedObjects(layoutObjInst).Items]
2110
2093
 
2111
- @pyedb_function_handler()
2112
2094
  def get_reference_pins(self, reference_net="GND", search_radius=5e-3, max_limit=0, component_only=True):
2113
2095
  """Search for reference pins using given criteria.
2114
2096
 
@@ -20,12 +20,12 @@
20
20
  # OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
21
  # SOFTWARE.
22
22
 
23
- from pyedb.dotnet.edb_core.edb_data.terminals import (
24
- BundleTerminal,
25
- EdgeTerminal,
23
+ from pyedb.dotnet.edb_core.cell.terminal.bundle_terminal import BundleTerminal
24
+ from pyedb.dotnet.edb_core.cell.terminal.edge_terminal import EdgeTerminal
25
+ from pyedb.dotnet.edb_core.cell.terminal.padstack_instance_terminal import (
26
26
  PadstackInstanceTerminal,
27
- Terminal,
28
27
  )
28
+ from pyedb.dotnet.edb_core.cell.terminal.terminal import Terminal
29
29
 
30
30
 
31
31
  class GapPort(EdgeTerminal):
@@ -33,7 +33,6 @@ from pyedb.dotnet.edb_core.dotnet.primitive import (
33
33
  TextDotNet,
34
34
  )
35
35
  from pyedb.dotnet.edb_core.general import convert_py_list_to_net_list
36
- from pyedb.generic.general_methods import pyedb_function_handler
37
36
  from pyedb.modeler.geometry_operators import GeometryOperators
38
37
 
39
38
 
@@ -93,7 +92,6 @@ class EDBPrimitives(Primitive):
93
92
  def __init__(self, raw_primitive, core_app):
94
93
  Primitive.__init__(self, core_app, raw_primitive)
95
94
 
96
- @pyedb_function_handler()
97
95
  def area(self, include_voids=True):
98
96
  """Return the total area.
99
97
 
@@ -254,7 +252,6 @@ class EDBPrimitives(Primitive):
254
252
  bbox = self.bbox
255
253
  return [(bbox[0] + bbox[2]) / 2, (bbox[1] + bbox[3]) / 2]
256
254
 
257
- @pyedb_function_handler()
258
255
  def is_arc(self, point):
259
256
  """Either if a point is an arc or not.
260
257
 
@@ -264,7 +261,6 @@ class EDBPrimitives(Primitive):
264
261
  """
265
262
  return point.IsArc()
266
263
 
267
- @pyedb_function_handler()
268
264
  def get_connected_object_id_set(self):
269
265
  """Produce a list of all geometries physically connected to a given layout object.
270
266
 
@@ -277,7 +273,6 @@ class EDBPrimitives(Primitive):
277
273
  layoutObjInst = layoutInst.GetLayoutObjInstance(self.primitive_object, None) # 2nd arg was []
278
274
  return [loi.GetLayoutObj().GetId() for loi in layoutInst.GetConnectedObjects(layoutObjInst).Items]
279
275
 
280
- @pyedb_function_handler()
281
276
  def convert_to_polygon(self):
282
277
  """Convert path to polygon.
283
278
 
@@ -295,7 +290,6 @@ class EDBPrimitives(Primitive):
295
290
  else:
296
291
  return False
297
292
 
298
- @pyedb_function_handler()
299
293
  def subtract(self, primitives):
300
294
  """Subtract active primitive with one or more primitives.
301
295
 
@@ -349,7 +343,6 @@ class EDBPrimitives(Primitive):
349
343
  continue
350
344
  return new_polys
351
345
 
352
- @pyedb_function_handler()
353
346
  def intersect(self, primitives):
354
347
  """Intersect active primitive with one or more primitives.
355
348
 
@@ -434,7 +427,6 @@ class EDBPrimitives(Primitive):
434
427
  continue
435
428
  return new_polys
436
429
 
437
- @pyedb_function_handler()
438
430
  def unite(self, primitives):
439
431
  """Unite active primitive with one or more primitives.
440
432
 
@@ -489,7 +481,6 @@ class EDBPrimitives(Primitive):
489
481
  continue
490
482
  return new_polys
491
483
 
492
- @pyedb_function_handler()
493
484
  def intersection_type(self, primitive):
494
485
  """Get intersection type between actual primitive and another primitive or polygon data.
495
486
 
@@ -514,7 +505,6 @@ class EDBPrimitives(Primitive):
514
505
  pass
515
506
  return int(self.polygon_data.edb_api.GetIntersectionType(poly.edb_api))
516
507
 
517
- @pyedb_function_handler()
518
508
  def is_intersecting(self, primitive):
519
509
  """Check if actual primitive and another primitive or polygon data intesects.
520
510
 
@@ -528,7 +518,6 @@ class EDBPrimitives(Primitive):
528
518
  """
529
519
  return True if self.intersection_type(primitive) >= 1 else False
530
520
 
531
- @pyedb_function_handler()
532
521
  def get_closest_point(self, point):
533
522
  """Get the closest point of the primitive to the input data.
534
523
 
@@ -546,7 +535,6 @@ class EDBPrimitives(Primitive):
546
535
  p0 = self.polygon_data.edb_api.GetClosestPoint(point)
547
536
  return [p0.X.ToDouble(), p0.Y.ToDouble()]
548
537
 
549
- @pyedb_function_handler()
550
538
  def get_closest_arc_midpoint(self, point):
551
539
  """Get the closest arc midpoint of the primitive to the input data.
552
540
 
@@ -645,7 +633,6 @@ class EdbPath(EDBPrimitives, PathDotNet):
645
633
  path_length += self.width / 2
646
634
  return path_length
647
635
 
648
- @pyedb_function_handler()
649
636
  def add_point(self, x, y, incremental=False):
650
637
  """Add a point at the end of the path.
651
638
 
@@ -667,7 +654,6 @@ class EdbPath(EDBPrimitives, PathDotNet):
667
654
  center_line.add_point(x, y, incremental)
668
655
  return self._edb_object.SetCenterLine(center_line.edb_api)
669
656
 
670
- @pyedb_function_handler()
671
657
  def get_center_line(self, to_string=False):
672
658
  """Get the center line of the trace.
673
659
 
@@ -686,7 +672,6 @@ class EdbPath(EDBPrimitives, PathDotNet):
686
672
  else:
687
673
  return [[p.X.ToDouble(), p.Y.ToDouble()] for p in list(self.primitive_object.GetCenterLine().Points)]
688
674
 
689
- @pyedb_function_handler()
690
675
  def clone(self):
691
676
  """Clone a primitive object with keeping same definition and location.
692
677
 
@@ -712,8 +697,8 @@ class EdbPath(EDBPrimitives, PathDotNet):
712
697
  if cloned_path:
713
698
  return cloned_path
714
699
 
715
- # @pyedb_function_handler()
716
- @pyedb_function_handler()
700
+ #
701
+
717
702
  def create_edge_port(
718
703
  self,
719
704
  name,
@@ -766,7 +751,6 @@ class EdbPath(EDBPrimitives, PathDotNet):
766
751
  else:
767
752
  return self._app.hfss.create_edge_port_vertical(self.id, pos, name, 50, reference_layer)
768
753
 
769
- @pyedb_function_handler()
770
754
  def create_via_fence(self, distance, gap, padstack_name, net_name="GND"):
771
755
  """Create via fences on both sides of the trace.
772
756
 
@@ -891,7 +875,6 @@ class EdbPolygon(EDBPrimitives, PolygonDotNet):
891
875
  EDBPrimitives.__init__(self, raw_primitive, core_app)
892
876
  PolygonDotNet.__init__(self, self._app, raw_primitive)
893
877
 
894
- @pyedb_function_handler()
895
878
  def clone(self):
896
879
  """Clone a primitive object with keeping same definition and location.
897
880
 
@@ -913,7 +896,6 @@ class EdbPolygon(EDBPrimitives, PolygonDotNet):
913
896
  return cloned_poly
914
897
  return False
915
898
 
916
- @pyedb_function_handler()
917
899
  def duplicate_across_layers(self, layers):
918
900
  """Duplicate across layer a primitive object.
919
901
 
@@ -942,7 +924,6 @@ class EdbPolygon(EDBPrimitives, PolygonDotNet):
942
924
  return False
943
925
  return True
944
926
 
945
- @pyedb_function_handler
946
927
  def move(self, vector):
947
928
  """Move polygon along a vector.
948
929
 
@@ -971,7 +952,6 @@ class EdbPolygon(EDBPrimitives, PolygonDotNet):
971
952
  return self.api_object.SetPolygonData(polygon_data)
972
953
  return False
973
954
 
974
- @pyedb_function_handler
975
955
  def rotate(self, angle, center=None):
976
956
  """Rotate polygon around a center point by an angle.
977
957
 
@@ -1009,7 +989,6 @@ class EdbPolygon(EDBPrimitives, PolygonDotNet):
1009
989
  return self.api_object.SetPolygonData(polygon_data)
1010
990
  return False
1011
991
 
1012
- @pyedb_function_handler
1013
992
  def scale(self, factor, center=None):
1014
993
  """Scales the polygon relative to a center point by a factor.
1015
994
 
@@ -1048,7 +1027,6 @@ class EdbPolygon(EDBPrimitives, PolygonDotNet):
1048
1027
  return self.api_object.SetPolygonData(polygon_data)
1049
1028
  return False
1050
1029
 
1051
- @pyedb_function_handler
1052
1030
  def move_layer(self, layer):
1053
1031
  """Move polygon to given layer.
1054
1032
 
@@ -1072,7 +1050,6 @@ class EdbPolygon(EDBPrimitives, PolygonDotNet):
1072
1050
  return True
1073
1051
  return False
1074
1052
 
1075
- @pyedb_function_handler()
1076
1053
  def in_polygon(
1077
1054
  self,
1078
1055
  point_data,
@@ -1111,7 +1088,7 @@ class EdbPolygon(EDBPrimitives, PolygonDotNet):
1111
1088
  else:
1112
1089
  return False
1113
1090
 
1114
- # @pyedb_function_handler()
1091
+ #
1115
1092
  # def add_void(self, point_list):
1116
1093
  # """Add a void to current primitive.
1117
1094
  #
@@ -19,18 +19,13 @@
19
19
  # LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
20
  # OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
21
  # SOFTWARE.
22
-
23
- from pyedb.dotnet.edb_core.edb_data.edbvalue import EdbValue
24
22
  from pyedb.dotnet.edb_core.general import convert_py_list_to_net_list
25
- from pyedb.dotnet.edb_core.utilities.simulation_setup import (
26
- BaseSimulationSetup,
27
- EdbFrequencySweep,
28
- )
29
- from pyedb.generic.data_handlers import pyedb_function_handler
23
+ from pyedb.dotnet.edb_core.sim_setup_data.data.sweep_data import SweepData
24
+ from pyedb.dotnet.edb_core.utilities.simulation_setup import SimulationSetup
30
25
  from pyedb.generic.general_methods import generate_unique_name
31
26
 
32
27
 
33
- class RaptorXSimulationSetup(BaseSimulationSetup):
28
+ class RaptorXSimulationSetup(SimulationSetup):
34
29
  """Manages EDB methods for RaptorX simulation setup."""
35
30
 
36
31
  def __init__(self, pedb, edb_object=None):
@@ -40,7 +35,6 @@ class RaptorXSimulationSetup(BaseSimulationSetup):
40
35
  self._edb_setup_info = None
41
36
  self.logger = self._pedb.logger
42
37
 
43
- @pyedb_function_handler
44
38
  def create(self, name=None):
45
39
  """Create an HFSS setup."""
46
40
  self._name = name
@@ -74,7 +68,6 @@ class RaptorXSimulationSetup(BaseSimulationSetup):
74
68
  else:
75
69
  self.logger.error(f"RaptorX setup position input setter must be an integer. Provided value {value}")
76
70
 
77
- @pyedb_function_handler()
78
71
  def add_frequency_sweep(self, name=None, frequency_sweep=None):
79
72
  """Add frequency sweep.
80
73
 
@@ -87,7 +80,7 @@ class RaptorXSimulationSetup(BaseSimulationSetup):
87
80
 
88
81
  Returns
89
82
  -------
90
- :class:`pyedb.dotnet.edb_core.edb_data.hfss_simulation_setup_data.EdbFrequencySweep`
83
+ :class:`pyedb.dotnet.edb_core.edb_data.simulation_setup.EdbFrequencySweep`
91
84
 
92
85
  Examples
93
86
  --------
@@ -102,7 +95,7 @@ class RaptorXSimulationSetup(BaseSimulationSetup):
102
95
  return False
103
96
  if not name:
104
97
  name = generate_unique_name("sweep")
105
- return EdbFrequencySweep(self, frequency_sweep, name)
98
+ return SweepData(self, frequency_sweep, name)
106
99
 
107
100
 
108
101
  class RaptorXSimulationSettings(object):
@@ -148,7 +141,7 @@ class RaptorXGeneralSettings(object):
148
141
 
149
142
  @global_temperature.setter
150
143
  def global_temperature(self, value):
151
- self._general_settings.GlobalTemperature = EdbValue(value).tofloat
144
+ self._general_settings.GlobalTemperature = self._pedb.edb_value(value).ToDouble()
152
145
 
153
146
  @property
154
147
  def max_frequency(self):
@@ -160,7 +153,7 @@ class RaptorXGeneralSettings(object):
160
153
  mesh will be. User can override the default meshing frequency as defined by Max Frequency using the Advanced
161
154
  settings > MeshFrequency. Example: "10GHz".
162
155
  """
163
- self._general_settings.MaxFrequency = EdbValue(value).tostring
156
+ self._general_settings.MaxFrequency = self._pedb.edb_value(value).ToString()
164
157
 
165
158
 
166
159
  class RaptorXSimulationAdvancedSettings(object):
@@ -176,7 +169,7 @@ class RaptorXSimulationAdvancedSettings(object):
176
169
 
177
170
  @auto_removal_sliver_poly.setter
178
171
  def auto_removal_sliver_poly(self, value):
179
- self._advanced_settings.AutoRemovalSliverPoly = EdbValue(value).tofloat
172
+ self._advanced_settings.AutoRemovalSliverPoly = self._pedb.edb_value(value).ToDouble()
180
173
 
181
174
  @property
182
175
  def cell_per_wave_length(self):
@@ -205,7 +198,7 @@ class RaptorXSimulationAdvancedSettings(object):
205
198
 
206
199
  @edge_mesh.setter
207
200
  def edge_mesh(self, value):
208
- self._advanced_settings.EdgeMesh = EdbValue(value).tostring
201
+ self._advanced_settings.EdgeMesh = self._pedb.edb_value(value).ToString()
209
202
 
210
203
  @property
211
204
  def eliminate_slit_per_hole(self):
@@ -218,7 +211,7 @@ class RaptorXSimulationAdvancedSettings(object):
218
211
 
219
212
  @eliminate_slit_per_hole.setter
220
213
  def eliminate_slit_per_hole(self, value):
221
- self._advanced_settings.EliminateSlitPerHoles = EdbValue(value).tofloat
214
+ self._advanced_settings.EliminateSlitPerHoles = self._pedb.edb_value(value).ToDouble()
222
215
 
223
216
  @property
224
217
  def mesh_frequency(self):
@@ -229,7 +222,7 @@ class RaptorXSimulationAdvancedSettings(object):
229
222
 
230
223
  @mesh_frequency.setter
231
224
  def mesh_frequency(self, value):
232
- self._advanced_settings.MeshFrequency = EdbValue(value).tostring
225
+ self._advanced_settings.MeshFrequency = self._pedb.edb_value(value).ToString()
233
226
 
234
227
  @property
235
228
  def net_settings_options(self):
@@ -255,7 +248,7 @@ class RaptorXSimulationAdvancedSettings(object):
255
248
 
256
249
  @override_shrink_fac.setter
257
250
  def override_shrink_fac(self, value):
258
- self._advanced_settings.OverrideShrinkFac = EdbValue(value).tofloat
251
+ self._advanced_settings.OverrideShrinkFac = self._pedb.edb_value(value).ToDouble()
259
252
 
260
253
  @property
261
254
  def plane_projection_factor(self):
@@ -268,7 +261,7 @@ class RaptorXSimulationAdvancedSettings(object):
268
261
 
269
262
  @plane_projection_factor.setter
270
263
  def plane_projection_factor(self, value):
271
- self._advanced_settings.PlaneProjectionFactor = EdbValue(value).tofloat
264
+ self._advanced_settings.PlaneProjectionFactor = self._pedb.edb_value(value).ToDouble()
272
265
 
273
266
  @property
274
267
  def use_accelerate_via_extraction(self):