pyedb 0.2.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.
- pyedb/__init__.py +17 -0
- pyedb/dotnet/__init__.py +0 -0
- pyedb/dotnet/application/Variables.py +2261 -0
- pyedb/dotnet/application/__init__.py +0 -0
- pyedb/dotnet/clr_module.py +103 -0
- pyedb/dotnet/edb.py +4237 -0
- pyedb/dotnet/edb_core/__init__.py +1 -0
- pyedb/dotnet/edb_core/cell/__init__.py +0 -0
- pyedb/dotnet/edb_core/cell/hierarchy/__init__.py +0 -0
- pyedb/dotnet/edb_core/cell/hierarchy/model.py +66 -0
- pyedb/dotnet/edb_core/components.py +2669 -0
- pyedb/dotnet/edb_core/configuration.py +423 -0
- pyedb/dotnet/edb_core/definition/__init__.py +0 -0
- pyedb/dotnet/edb_core/definition/component_def.py +166 -0
- pyedb/dotnet/edb_core/definition/component_model.py +30 -0
- pyedb/dotnet/edb_core/definition/definition_obj.py +18 -0
- pyedb/dotnet/edb_core/definition/definitions.py +12 -0
- pyedb/dotnet/edb_core/dotnet/__init__.py +0 -0
- pyedb/dotnet/edb_core/dotnet/database.py +1218 -0
- pyedb/dotnet/edb_core/dotnet/layout.py +238 -0
- pyedb/dotnet/edb_core/dotnet/primitive.py +1517 -0
- pyedb/dotnet/edb_core/edb_data/__init__.py +0 -0
- pyedb/dotnet/edb_core/edb_data/components_data.py +938 -0
- pyedb/dotnet/edb_core/edb_data/connectable.py +113 -0
- pyedb/dotnet/edb_core/edb_data/control_file.py +1268 -0
- pyedb/dotnet/edb_core/edb_data/design_options.py +35 -0
- pyedb/dotnet/edb_core/edb_data/edbvalue.py +45 -0
- pyedb/dotnet/edb_core/edb_data/hfss_extent_info.py +330 -0
- pyedb/dotnet/edb_core/edb_data/hfss_simulation_setup_data.py +1607 -0
- pyedb/dotnet/edb_core/edb_data/layer_data.py +576 -0
- pyedb/dotnet/edb_core/edb_data/nets_data.py +281 -0
- pyedb/dotnet/edb_core/edb_data/obj_base.py +19 -0
- pyedb/dotnet/edb_core/edb_data/padstacks_data.py +2080 -0
- pyedb/dotnet/edb_core/edb_data/ports.py +287 -0
- pyedb/dotnet/edb_core/edb_data/primitives_data.py +1397 -0
- pyedb/dotnet/edb_core/edb_data/simulation_configuration.py +2914 -0
- pyedb/dotnet/edb_core/edb_data/simulation_setup.py +716 -0
- pyedb/dotnet/edb_core/edb_data/siwave_simulation_setup_data.py +1205 -0
- pyedb/dotnet/edb_core/edb_data/sources.py +514 -0
- pyedb/dotnet/edb_core/edb_data/terminals.py +632 -0
- pyedb/dotnet/edb_core/edb_data/utilities.py +148 -0
- pyedb/dotnet/edb_core/edb_data/variables.py +91 -0
- pyedb/dotnet/edb_core/general.py +181 -0
- pyedb/dotnet/edb_core/hfss.py +1646 -0
- pyedb/dotnet/edb_core/layout.py +1244 -0
- pyedb/dotnet/edb_core/layout_validation.py +272 -0
- pyedb/dotnet/edb_core/materials.py +939 -0
- pyedb/dotnet/edb_core/net_class.py +335 -0
- pyedb/dotnet/edb_core/nets.py +1215 -0
- pyedb/dotnet/edb_core/padstack.py +1389 -0
- pyedb/dotnet/edb_core/siwave.py +1427 -0
- pyedb/dotnet/edb_core/stackup.py +2703 -0
- pyedb/edb_logger.py +396 -0
- pyedb/generic/__init__.py +0 -0
- pyedb/generic/constants.py +1063 -0
- pyedb/generic/data_handlers.py +320 -0
- pyedb/generic/design_types.py +104 -0
- pyedb/generic/filesystem.py +150 -0
- pyedb/generic/general_methods.py +1535 -0
- pyedb/generic/plot.py +1840 -0
- pyedb/generic/process.py +285 -0
- pyedb/generic/settings.py +224 -0
- pyedb/ipc2581/__init__.py +0 -0
- pyedb/ipc2581/bom/__init__.py +0 -0
- pyedb/ipc2581/bom/bom.py +21 -0
- pyedb/ipc2581/bom/bom_item.py +32 -0
- pyedb/ipc2581/bom/characteristics.py +37 -0
- pyedb/ipc2581/bom/refdes.py +16 -0
- pyedb/ipc2581/content/__init__.py +0 -0
- pyedb/ipc2581/content/color.py +38 -0
- pyedb/ipc2581/content/content.py +55 -0
- pyedb/ipc2581/content/dictionary_color.py +29 -0
- pyedb/ipc2581/content/dictionary_fill.py +28 -0
- pyedb/ipc2581/content/dictionary_line.py +30 -0
- pyedb/ipc2581/content/entry_color.py +13 -0
- pyedb/ipc2581/content/entry_line.py +14 -0
- pyedb/ipc2581/content/fill.py +15 -0
- pyedb/ipc2581/content/layer_ref.py +10 -0
- pyedb/ipc2581/content/standard_geometries_dictionary.py +72 -0
- pyedb/ipc2581/ecad/__init__.py +0 -0
- pyedb/ipc2581/ecad/cad_data/__init__.py +0 -0
- pyedb/ipc2581/ecad/cad_data/assembly_drawing.py +26 -0
- pyedb/ipc2581/ecad/cad_data/cad_data.py +37 -0
- pyedb/ipc2581/ecad/cad_data/component.py +41 -0
- pyedb/ipc2581/ecad/cad_data/drill.py +30 -0
- pyedb/ipc2581/ecad/cad_data/feature.py +54 -0
- pyedb/ipc2581/ecad/cad_data/layer.py +41 -0
- pyedb/ipc2581/ecad/cad_data/layer_feature.py +151 -0
- pyedb/ipc2581/ecad/cad_data/logical_net.py +32 -0
- pyedb/ipc2581/ecad/cad_data/outline.py +25 -0
- pyedb/ipc2581/ecad/cad_data/package.py +104 -0
- pyedb/ipc2581/ecad/cad_data/padstack_def.py +38 -0
- pyedb/ipc2581/ecad/cad_data/padstack_hole_def.py +24 -0
- pyedb/ipc2581/ecad/cad_data/padstack_instance.py +62 -0
- pyedb/ipc2581/ecad/cad_data/padstack_pad_def.py +26 -0
- pyedb/ipc2581/ecad/cad_data/path.py +89 -0
- pyedb/ipc2581/ecad/cad_data/phy_net.py +80 -0
- pyedb/ipc2581/ecad/cad_data/pin.py +31 -0
- pyedb/ipc2581/ecad/cad_data/polygon.py +169 -0
- pyedb/ipc2581/ecad/cad_data/profile.py +40 -0
- pyedb/ipc2581/ecad/cad_data/stackup.py +31 -0
- pyedb/ipc2581/ecad/cad_data/stackup_group.py +42 -0
- pyedb/ipc2581/ecad/cad_data/stackup_layer.py +21 -0
- pyedb/ipc2581/ecad/cad_data/step.py +275 -0
- pyedb/ipc2581/ecad/cad_header.py +33 -0
- pyedb/ipc2581/ecad/ecad.py +19 -0
- pyedb/ipc2581/ecad/spec.py +46 -0
- pyedb/ipc2581/history_record.py +37 -0
- pyedb/ipc2581/ipc2581.py +387 -0
- pyedb/ipc2581/logistic_header.py +25 -0
- pyedb/misc/__init__.py +0 -0
- pyedb/misc/aedtlib_personalib_install.py +14 -0
- pyedb/misc/downloads.py +322 -0
- pyedb/misc/misc.py +67 -0
- pyedb/misc/pyedb.runtimeconfig.json +13 -0
- pyedb/misc/siw_feature_config/__init__.py +0 -0
- pyedb/misc/siw_feature_config/emc/__init__.py +0 -0
- pyedb/misc/siw_feature_config/emc/component_tags.py +46 -0
- pyedb/misc/siw_feature_config/emc/net_tags.py +37 -0
- pyedb/misc/siw_feature_config/emc/tag_library.py +62 -0
- pyedb/misc/siw_feature_config/emc/xml_generic.py +78 -0
- pyedb/misc/siw_feature_config/emc_rule_checker_settings.py +179 -0
- pyedb/misc/utilities.py +27 -0
- pyedb/modeler/geometry_operators.py +2082 -0
- pyedb-0.2.0.dist-info/LICENSE +21 -0
- pyedb-0.2.0.dist-info/METADATA +208 -0
- pyedb-0.2.0.dist-info/RECORD +128 -0
- pyedb-0.2.0.dist-info/WHEEL +4 -0
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
class EdbDesignOptions:
|
|
2
|
+
def __init__(self, active_cell):
|
|
3
|
+
self._active_cell = active_cell
|
|
4
|
+
|
|
5
|
+
@property
|
|
6
|
+
def suppress_pads(self):
|
|
7
|
+
"""Whether to suppress non-functional pads.
|
|
8
|
+
|
|
9
|
+
Returns
|
|
10
|
+
-------
|
|
11
|
+
bool
|
|
12
|
+
``True`` if suppress non-functional pads is on, ``False`` otherwise.
|
|
13
|
+
|
|
14
|
+
"""
|
|
15
|
+
return self._active_cell.GetSuppressPads()
|
|
16
|
+
|
|
17
|
+
@suppress_pads.setter
|
|
18
|
+
def suppress_pads(self, value):
|
|
19
|
+
self._active_cell.SetSuppressPads(value)
|
|
20
|
+
|
|
21
|
+
@property
|
|
22
|
+
def antipads_always_on(self):
|
|
23
|
+
"""Whether to always turn on antipad.
|
|
24
|
+
|
|
25
|
+
Returns
|
|
26
|
+
-------
|
|
27
|
+
bool
|
|
28
|
+
``True`` if antipad is always on, ``False`` otherwise.
|
|
29
|
+
|
|
30
|
+
"""
|
|
31
|
+
return self._active_cell.GetAntiPadsAlwaysOn()
|
|
32
|
+
|
|
33
|
+
@antipads_always_on.setter
|
|
34
|
+
def antipads_always_on(self, value):
|
|
35
|
+
self._active_cell.SetAntiPadsAlwaysOn(value)
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
class EdbValue:
|
|
2
|
+
"""Class defining Edb Value properties."""
|
|
3
|
+
|
|
4
|
+
def __init__(self, edb_obj):
|
|
5
|
+
self._edb_obj = edb_obj
|
|
6
|
+
|
|
7
|
+
@property
|
|
8
|
+
def value(self):
|
|
9
|
+
"""Variable Value Object.
|
|
10
|
+
|
|
11
|
+
Returns
|
|
12
|
+
-------
|
|
13
|
+
Edb Object
|
|
14
|
+
"""
|
|
15
|
+
return self._edb_obj
|
|
16
|
+
|
|
17
|
+
@property
|
|
18
|
+
def name(self):
|
|
19
|
+
"""Variable name.
|
|
20
|
+
|
|
21
|
+
Returns
|
|
22
|
+
-------
|
|
23
|
+
str
|
|
24
|
+
"""
|
|
25
|
+
return self._edb_obj.GetName()
|
|
26
|
+
|
|
27
|
+
@property
|
|
28
|
+
def tofloat(self):
|
|
29
|
+
"""Returns the float number of the variable.
|
|
30
|
+
|
|
31
|
+
Returns
|
|
32
|
+
-------
|
|
33
|
+
float
|
|
34
|
+
"""
|
|
35
|
+
return self._edb_obj.ToDouble()
|
|
36
|
+
|
|
37
|
+
@property
|
|
38
|
+
def tostring(self):
|
|
39
|
+
"""Returns the string of the variable.
|
|
40
|
+
|
|
41
|
+
Returns
|
|
42
|
+
-------
|
|
43
|
+
str
|
|
44
|
+
"""
|
|
45
|
+
return self._edb_obj.ToString()
|
|
@@ -0,0 +1,330 @@
|
|
|
1
|
+
from pyedb.dotnet.edb_core.edb_data.edbvalue import EdbValue
|
|
2
|
+
from pyedb.dotnet.edb_core.edb_data.primitives_data import cast
|
|
3
|
+
from pyedb.dotnet.edb_core.general import convert_pytuple_to_nettuple
|
|
4
|
+
from pyedb.generic.general_methods import pyedb_function_handler
|
|
5
|
+
|
|
6
|
+
|
|
7
|
+
class HfssExtentInfo:
|
|
8
|
+
"""Manages EDB functionalities for HFSS extent information.
|
|
9
|
+
|
|
10
|
+
Parameters
|
|
11
|
+
----------
|
|
12
|
+
pedb : :class:`pyedb.edb.Edb`
|
|
13
|
+
Inherited EDB object.
|
|
14
|
+
"""
|
|
15
|
+
|
|
16
|
+
def __init__(self, pedb):
|
|
17
|
+
self._pedb = pedb
|
|
18
|
+
|
|
19
|
+
self._hfss_extent_info_type = {
|
|
20
|
+
"BoundingBox": self._pedb.edb_api.utility.utility.HFSSExtentInfoType.BoundingBox,
|
|
21
|
+
"Conforming": self._pedb.edb_api.utility.utility.HFSSExtentInfoType.Conforming,
|
|
22
|
+
"ConvexHull": self._pedb.edb_api.utility.utility.HFSSExtentInfoType.ConvexHull,
|
|
23
|
+
"Polygon": self._pedb.edb_api.utility.utility.HFSSExtentInfoType.Polygon,
|
|
24
|
+
}
|
|
25
|
+
self._open_region_type = {
|
|
26
|
+
"Radiation": self._pedb.edb_api.utility.utility.OpenRegionType.Radiation,
|
|
27
|
+
"PML": self._pedb.edb_api.utility.utility.OpenRegionType.PML,
|
|
28
|
+
}
|
|
29
|
+
|
|
30
|
+
@pyedb_function_handler()
|
|
31
|
+
def _get_edb_value(self, value):
|
|
32
|
+
"""Get EDB value."""
|
|
33
|
+
return self._pedb.edb_value(value)
|
|
34
|
+
|
|
35
|
+
@pyedb_function_handler()
|
|
36
|
+
def _update_hfss_extent_info(self, hfss_extent_info):
|
|
37
|
+
return self._pedb.active_cell.SetHFSSExtentInfo(hfss_extent_info)
|
|
38
|
+
|
|
39
|
+
@property
|
|
40
|
+
def _edb_hfss_extent_info(self):
|
|
41
|
+
return self._pedb.active_cell.GetHFSSExtentInfo()
|
|
42
|
+
|
|
43
|
+
@property
|
|
44
|
+
def air_box_horizontal_extent_enabled(self):
|
|
45
|
+
"""Whether horizontal extent is enabled for the airbox."""
|
|
46
|
+
return self._edb_hfss_extent_info.AirBoxHorizontalExtent.Item2
|
|
47
|
+
|
|
48
|
+
@air_box_horizontal_extent_enabled.setter
|
|
49
|
+
def air_box_horizontal_extent_enabled(self, value):
|
|
50
|
+
info = self._edb_hfss_extent_info
|
|
51
|
+
info.AirBoxHorizontalExtent = convert_pytuple_to_nettuple((self.air_box_horizontal_extent, value))
|
|
52
|
+
self._update_hfss_extent_info(info)
|
|
53
|
+
|
|
54
|
+
@property
|
|
55
|
+
def air_box_horizontal_extent(self):
|
|
56
|
+
"""Size of horizontal extent for the air box.
|
|
57
|
+
|
|
58
|
+
Returns:
|
|
59
|
+
dotnet.edb_core.edb_data.edbvalue.EdbValue
|
|
60
|
+
"""
|
|
61
|
+
return self._edb_hfss_extent_info.AirBoxHorizontalExtent.Item1
|
|
62
|
+
|
|
63
|
+
@air_box_horizontal_extent.setter
|
|
64
|
+
def air_box_horizontal_extent(self, value):
|
|
65
|
+
info = self._edb_hfss_extent_info
|
|
66
|
+
info.AirBoxHorizontalExtent = convert_pytuple_to_nettuple((value, self.air_box_horizontal_extent_enabled))
|
|
67
|
+
self._update_hfss_extent_info(info)
|
|
68
|
+
|
|
69
|
+
@property
|
|
70
|
+
def air_box_positive_vertical_extent_enabled(self):
|
|
71
|
+
"""Whether positive vertical extent is enabled for the air box."""
|
|
72
|
+
return self._edb_hfss_extent_info.AirBoxPositiveVerticalExtent.Item2
|
|
73
|
+
|
|
74
|
+
@air_box_positive_vertical_extent_enabled.setter
|
|
75
|
+
def air_box_positive_vertical_extent_enabled(self, value):
|
|
76
|
+
info = self._edb_hfss_extent_info
|
|
77
|
+
info.AirBoxPositiveVerticalExtent = convert_pytuple_to_nettuple((self.air_box_positive_vertical_extent, value))
|
|
78
|
+
self._update_hfss_extent_info(info)
|
|
79
|
+
|
|
80
|
+
@property
|
|
81
|
+
def air_box_positive_vertical_extent(self):
|
|
82
|
+
"""Negative vertical extent for the air box."""
|
|
83
|
+
return self._edb_hfss_extent_info.AirBoxPositiveVerticalExtent.Item1
|
|
84
|
+
|
|
85
|
+
@air_box_positive_vertical_extent.setter
|
|
86
|
+
def air_box_positive_vertical_extent(self, value):
|
|
87
|
+
value = float(value)
|
|
88
|
+
info = self._edb_hfss_extent_info
|
|
89
|
+
info.AirBoxPositiveVerticalExtent = convert_pytuple_to_nettuple(
|
|
90
|
+
(value, self.air_box_positive_vertical_extent_enabled)
|
|
91
|
+
)
|
|
92
|
+
self._update_hfss_extent_info(info)
|
|
93
|
+
|
|
94
|
+
@property
|
|
95
|
+
def air_box_negative_vertical_extent_enabled(self):
|
|
96
|
+
"""Whether negative vertical extent is enabled for the air box."""
|
|
97
|
+
return self._edb_hfss_extent_info.AirBoxNegativeVerticalExtent.Item2
|
|
98
|
+
|
|
99
|
+
@air_box_negative_vertical_extent_enabled.setter
|
|
100
|
+
def air_box_negative_vertical_extent_enabled(self, value):
|
|
101
|
+
info = self._edb_hfss_extent_info
|
|
102
|
+
info.AirBoxNegativeVerticalExtent = convert_pytuple_to_nettuple((self.air_box_negative_vertical_extent, value))
|
|
103
|
+
self._update_hfss_extent_info(info)
|
|
104
|
+
|
|
105
|
+
@property
|
|
106
|
+
def air_box_negative_vertical_extent(self):
|
|
107
|
+
"""Negative vertical extent for the airbox."""
|
|
108
|
+
return self._edb_hfss_extent_info.AirBoxNegativeVerticalExtent.Item1
|
|
109
|
+
|
|
110
|
+
@air_box_negative_vertical_extent.setter
|
|
111
|
+
def air_box_negative_vertical_extent(self, value):
|
|
112
|
+
value = float(value)
|
|
113
|
+
info = self._edb_hfss_extent_info
|
|
114
|
+
info.AirBoxNegativeVerticalExtent = convert_pytuple_to_nettuple(
|
|
115
|
+
(value, self.air_box_negative_vertical_extent_enabled)
|
|
116
|
+
)
|
|
117
|
+
self._update_hfss_extent_info(info)
|
|
118
|
+
|
|
119
|
+
@property
|
|
120
|
+
def base_polygon(self):
|
|
121
|
+
"""Base polygon.
|
|
122
|
+
|
|
123
|
+
Returns
|
|
124
|
+
-------
|
|
125
|
+
:class:`dotnet.edb_core.edb_data.primitives_data.EDBPrimitive`
|
|
126
|
+
"""
|
|
127
|
+
return cast(self._edb_hfss_extent_info.BasePolygon, self._pedb)
|
|
128
|
+
|
|
129
|
+
@base_polygon.setter
|
|
130
|
+
def base_polygon(self, value):
|
|
131
|
+
info = self._edb_hfss_extent_info
|
|
132
|
+
info.BasePolygon = value.primitive_object
|
|
133
|
+
self._update_hfss_extent_info(info)
|
|
134
|
+
|
|
135
|
+
@property
|
|
136
|
+
def dielectric_base_polygon(self):
|
|
137
|
+
"""Dielectric base polygon.
|
|
138
|
+
|
|
139
|
+
Returns
|
|
140
|
+
-------
|
|
141
|
+
:class:`dotnet.edb_core.edb_data.primitives_data.EDBPrimitive`
|
|
142
|
+
"""
|
|
143
|
+
return cast(self._edb_hfss_extent_info.DielectricBasePolygon, self._pedb)
|
|
144
|
+
|
|
145
|
+
@dielectric_base_polygon.setter
|
|
146
|
+
def dielectric_base_polygon(self, value):
|
|
147
|
+
info = self._edb_hfss_extent_info
|
|
148
|
+
info.DielectricBasePolygon = value.primitive_object
|
|
149
|
+
self._update_hfss_extent_info(info)
|
|
150
|
+
|
|
151
|
+
@property
|
|
152
|
+
def dielectric_extent_size_enabled(self):
|
|
153
|
+
"""Whether dielectric extent size is enabled."""
|
|
154
|
+
return self._edb_hfss_extent_info.DielectricExtentSize.Item2
|
|
155
|
+
|
|
156
|
+
@dielectric_extent_size_enabled.setter
|
|
157
|
+
def dielectric_extent_size_enabled(self, value):
|
|
158
|
+
info = self._edb_hfss_extent_info
|
|
159
|
+
info.DielectricExtentSize = convert_pytuple_to_nettuple((self.dielectric_extent_size, value))
|
|
160
|
+
self._update_hfss_extent_info(info)
|
|
161
|
+
|
|
162
|
+
@property
|
|
163
|
+
def dielectric_extent_size(self):
|
|
164
|
+
"""Dielectric extent size."""
|
|
165
|
+
return self._edb_hfss_extent_info.DielectricExtentSize.Item1
|
|
166
|
+
|
|
167
|
+
@dielectric_extent_size.setter
|
|
168
|
+
def dielectric_extent_size(self, value):
|
|
169
|
+
info = self._edb_hfss_extent_info
|
|
170
|
+
info.DielectricExtentSize = convert_pytuple_to_nettuple((value, self.dielectric_extent_size_enabled))
|
|
171
|
+
self._update_hfss_extent_info(info)
|
|
172
|
+
|
|
173
|
+
@property
|
|
174
|
+
def dielectric_extent_type(self):
|
|
175
|
+
"""Dielectric extent type."""
|
|
176
|
+
return self._edb_hfss_extent_info.DielectricExtentType.ToString()
|
|
177
|
+
|
|
178
|
+
@dielectric_extent_type.setter
|
|
179
|
+
def dielectric_extent_type(self, value):
|
|
180
|
+
info = self._edb_hfss_extent_info
|
|
181
|
+
info.DielectricExtentType = self._hfss_extent_info_type[value]
|
|
182
|
+
self._update_hfss_extent_info(info)
|
|
183
|
+
|
|
184
|
+
@property
|
|
185
|
+
def extent_type(self):
|
|
186
|
+
"""Extent type."""
|
|
187
|
+
return self._edb_hfss_extent_info.ExtentType.ToString()
|
|
188
|
+
|
|
189
|
+
@extent_type.setter
|
|
190
|
+
def extent_type(self, value):
|
|
191
|
+
info = self._edb_hfss_extent_info
|
|
192
|
+
info.ExtentType = self._hfss_extent_info_type[value]
|
|
193
|
+
self._update_hfss_extent_info(info)
|
|
194
|
+
|
|
195
|
+
@property
|
|
196
|
+
def honor_user_dielectric(self):
|
|
197
|
+
"""Honor user dielectric."""
|
|
198
|
+
return self._edb_hfss_extent_info.HonorUserDielectric
|
|
199
|
+
|
|
200
|
+
@honor_user_dielectric.setter
|
|
201
|
+
def honor_user_dielectric(self, value):
|
|
202
|
+
info = self._edb_hfss_extent_info
|
|
203
|
+
info.HonorUserDielectric = value
|
|
204
|
+
self._update_hfss_extent_info(info)
|
|
205
|
+
|
|
206
|
+
@property
|
|
207
|
+
def is_pml_visible(self):
|
|
208
|
+
"""Whether visibility of the PML is enabled."""
|
|
209
|
+
return self._edb_hfss_extent_info.IsPMLVisible
|
|
210
|
+
|
|
211
|
+
@is_pml_visible.setter
|
|
212
|
+
def is_pml_visible(self, value):
|
|
213
|
+
info = self._edb_hfss_extent_info
|
|
214
|
+
info.IsPMLVisible = value
|
|
215
|
+
self._update_hfss_extent_info(info)
|
|
216
|
+
|
|
217
|
+
@property
|
|
218
|
+
def open_region_type(self):
|
|
219
|
+
"""Open region type."""
|
|
220
|
+
return self._edb_hfss_extent_info.OpenRegionType.ToString()
|
|
221
|
+
|
|
222
|
+
@open_region_type.setter
|
|
223
|
+
def open_region_type(self, value):
|
|
224
|
+
info = self._edb_hfss_extent_info
|
|
225
|
+
info.OpenRegionType = self._open_region_type[value]
|
|
226
|
+
self._update_hfss_extent_info(info)
|
|
227
|
+
|
|
228
|
+
@property
|
|
229
|
+
def operating_freq(self):
|
|
230
|
+
"""Operating frequency.
|
|
231
|
+
|
|
232
|
+
Returns
|
|
233
|
+
-------
|
|
234
|
+
pyedb.dotnet.edb_core.edb_data.edbvalue.EdbValue
|
|
235
|
+
"""
|
|
236
|
+
return EdbValue(self._edb_hfss_extent_info.OperatingFreq)
|
|
237
|
+
|
|
238
|
+
@operating_freq.setter
|
|
239
|
+
def operating_freq(self, value):
|
|
240
|
+
value = value._edb_obj if isinstance(value, EdbValue) else self._get_edb_value(value)
|
|
241
|
+
info = self._edb_hfss_extent_info
|
|
242
|
+
info.OperatingFreq = value
|
|
243
|
+
self._update_hfss_extent_info(info)
|
|
244
|
+
|
|
245
|
+
@property
|
|
246
|
+
def radiation_level(self):
|
|
247
|
+
"""Radiation level."""
|
|
248
|
+
return EdbValue(self._edb_hfss_extent_info.RadiationLevel)
|
|
249
|
+
|
|
250
|
+
@radiation_level.setter
|
|
251
|
+
def radiation_level(self, value):
|
|
252
|
+
value = value._edb_obj if isinstance(value, EdbValue) else self._get_edb_value(value)
|
|
253
|
+
info = self._edb_hfss_extent_info
|
|
254
|
+
info.RadiationLevel = value
|
|
255
|
+
self._update_hfss_extent_info(info)
|
|
256
|
+
|
|
257
|
+
@property
|
|
258
|
+
def sync_air_box_vertical_extent(self):
|
|
259
|
+
"""Vertical extent of the sync air box."""
|
|
260
|
+
return self._edb_hfss_extent_info.SyncAirBoxVerticalExtent
|
|
261
|
+
|
|
262
|
+
@sync_air_box_vertical_extent.setter
|
|
263
|
+
def sync_air_box_vertical_extent(self, value):
|
|
264
|
+
info = self._edb_hfss_extent_info
|
|
265
|
+
info.SyncAirBoxVerticalExtent = value
|
|
266
|
+
self._update_hfss_extent_info(info)
|
|
267
|
+
|
|
268
|
+
@property
|
|
269
|
+
def truncate_air_box_at_ground(self):
|
|
270
|
+
"""Truncate air box at ground."""
|
|
271
|
+
return self._edb_hfss_extent_info.TruncateAirBoxAtGround
|
|
272
|
+
|
|
273
|
+
@truncate_air_box_at_ground.setter
|
|
274
|
+
def truncate_air_box_at_ground(self, value):
|
|
275
|
+
info = self._edb_hfss_extent_info
|
|
276
|
+
info.TruncateAirBoxAtGround = value
|
|
277
|
+
self._update_hfss_extent_info(info)
|
|
278
|
+
|
|
279
|
+
@property
|
|
280
|
+
def use_open_region(self):
|
|
281
|
+
"""Whether using an open region is enabled."""
|
|
282
|
+
return self._edb_hfss_extent_info.UseOpenRegion
|
|
283
|
+
|
|
284
|
+
@use_open_region.setter
|
|
285
|
+
def use_open_region(self, value):
|
|
286
|
+
info = self._edb_hfss_extent_info
|
|
287
|
+
info.UseOpenRegion = value
|
|
288
|
+
self._update_hfss_extent_info(info)
|
|
289
|
+
|
|
290
|
+
@property
|
|
291
|
+
def use_xy_data_extent_for_vertical_expansion(self):
|
|
292
|
+
"""Whether using the xy data extent for vertical expansion is enabled."""
|
|
293
|
+
return self._edb_hfss_extent_info.UseXYDataExtentForVerticalExpansion
|
|
294
|
+
|
|
295
|
+
@use_xy_data_extent_for_vertical_expansion.setter
|
|
296
|
+
def use_xy_data_extent_for_vertical_expansion(self, value):
|
|
297
|
+
info = self._edb_hfss_extent_info
|
|
298
|
+
info.UseXYDataExtentForVerticalExpansion = value
|
|
299
|
+
self._update_hfss_extent_info(info)
|
|
300
|
+
|
|
301
|
+
@pyedb_function_handler()
|
|
302
|
+
def load_config(self, config):
|
|
303
|
+
"""Load HFSS extent configuration.
|
|
304
|
+
|
|
305
|
+
Parameters
|
|
306
|
+
----------
|
|
307
|
+
config: dict
|
|
308
|
+
Parameters of the HFSS extent information.
|
|
309
|
+
"""
|
|
310
|
+
for i, j in config.items():
|
|
311
|
+
if hasattr(self, i):
|
|
312
|
+
setattr(self, i, j)
|
|
313
|
+
|
|
314
|
+
@pyedb_function_handler()
|
|
315
|
+
def export_config(self):
|
|
316
|
+
"""Export HFSS extent information.
|
|
317
|
+
|
|
318
|
+
Returns:
|
|
319
|
+
dict
|
|
320
|
+
Parameters of the HFSS extent information.
|
|
321
|
+
"""
|
|
322
|
+
config = dict()
|
|
323
|
+
for i in dir(self):
|
|
324
|
+
if i.startswith("_"):
|
|
325
|
+
continue
|
|
326
|
+
elif i in ["load_config", "export_config"]:
|
|
327
|
+
continue
|
|
328
|
+
else:
|
|
329
|
+
config[i] = getattr(self, i)
|
|
330
|
+
return config
|