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,238 @@
|
|
|
1
|
+
from pyedb.dotnet.edb_core.dotnet.database import NetDotNet
|
|
2
|
+
from pyedb.dotnet.edb_core.dotnet.primitive import cast
|
|
3
|
+
from pyedb.dotnet.edb_core.general import convert_py_list_to_net_list
|
|
4
|
+
|
|
5
|
+
|
|
6
|
+
class LayoutDotNet:
|
|
7
|
+
"""Layout."""
|
|
8
|
+
|
|
9
|
+
def __init__(self, app):
|
|
10
|
+
"""Initialize a new layout.
|
|
11
|
+
|
|
12
|
+
Parameters
|
|
13
|
+
----------
|
|
14
|
+
msg : EDBObjMessage
|
|
15
|
+
"""
|
|
16
|
+
self._app = app
|
|
17
|
+
self._cell = app._active_cell
|
|
18
|
+
self._edb_api = app._edb
|
|
19
|
+
self._layout = self._cell.GetLayout()
|
|
20
|
+
self._layout_instance = None
|
|
21
|
+
|
|
22
|
+
@property
|
|
23
|
+
def cell(self):
|
|
24
|
+
""":class:`Cell <ansys.edb.layout.Cell>`: Owning cell for this layout.
|
|
25
|
+
|
|
26
|
+
Read-Only.
|
|
27
|
+
"""
|
|
28
|
+
return self._cell
|
|
29
|
+
|
|
30
|
+
@property
|
|
31
|
+
def layer_collection(self):
|
|
32
|
+
""":class:`LayerCollection <ansys.edb.layer.LayerCollection>` : Layer collection of this layout."""
|
|
33
|
+
return self._layout.GetLayerCollection()
|
|
34
|
+
|
|
35
|
+
@layer_collection.setter
|
|
36
|
+
def layer_collection(self, layer_collection):
|
|
37
|
+
"""Set layer collection."""
|
|
38
|
+
self._layout.SetLayerCollection(layer_collection)
|
|
39
|
+
|
|
40
|
+
@property
|
|
41
|
+
def primitives(self):
|
|
42
|
+
"""List of primitives.Read-Only.
|
|
43
|
+
|
|
44
|
+
Returns
|
|
45
|
+
-------
|
|
46
|
+
list of :class:`dotnet.edb_core.dotnet.primitive.PrimitiveDotNet` cast objects.
|
|
47
|
+
"""
|
|
48
|
+
return [cast(self._app, i) for i in list(self._layout.Primitives)]
|
|
49
|
+
|
|
50
|
+
@property
|
|
51
|
+
def padstack_instances(self):
|
|
52
|
+
""":obj:`list` of :class:`PadstackInstance <ansys.edb.primitive.PadstackInstance>` : List of all padstack \
|
|
53
|
+
instances in this layout.
|
|
54
|
+
|
|
55
|
+
Read-Only.
|
|
56
|
+
"""
|
|
57
|
+
return list(self._layout.PadstackInstances)
|
|
58
|
+
|
|
59
|
+
@property
|
|
60
|
+
def terminals(self):
|
|
61
|
+
""":obj:`list` of :class:`Terminal <ansys.edb.terminal.Terminal>` : List of all the terminals in this layout.
|
|
62
|
+
|
|
63
|
+
Read-Only.
|
|
64
|
+
"""
|
|
65
|
+
return list(self._layout.Terminals)
|
|
66
|
+
|
|
67
|
+
@property
|
|
68
|
+
def cell_instances(self):
|
|
69
|
+
""":obj:`list` of :class:`CellInstance <ansys.edb.hierarchy.CellInstances>` : List of the cell instances in \
|
|
70
|
+
this layout.
|
|
71
|
+
|
|
72
|
+
Read-Only.
|
|
73
|
+
"""
|
|
74
|
+
return list(self._layout.CellInstances)
|
|
75
|
+
|
|
76
|
+
@property
|
|
77
|
+
def nets(self):
|
|
78
|
+
""":obj:`list` of :class:`Net <ansys.edb.net.Net>` : List of all the nets in this layout.
|
|
79
|
+
|
|
80
|
+
Read-Only.
|
|
81
|
+
"""
|
|
82
|
+
return [NetDotNet(self._app, i) for i in self._layout.Nets]
|
|
83
|
+
|
|
84
|
+
@property
|
|
85
|
+
def groups(self):
|
|
86
|
+
""":obj:`list` of :class:`Group <ansys.edb.hierarchy.Group>` : List of all the groups in this layout.
|
|
87
|
+
|
|
88
|
+
Read-Only.
|
|
89
|
+
"""
|
|
90
|
+
return list(self._layout.Groups)
|
|
91
|
+
|
|
92
|
+
@property
|
|
93
|
+
def net_classes(self):
|
|
94
|
+
""":obj:`list` of :class:`NetClass <ansys.edb.net.NetClass>` : List of all the netclasses in this layout.
|
|
95
|
+
|
|
96
|
+
Read-Only.
|
|
97
|
+
"""
|
|
98
|
+
return list(self._layout.NetClasses)
|
|
99
|
+
|
|
100
|
+
@property
|
|
101
|
+
def differential_pairs(self):
|
|
102
|
+
""":obj:`list` of :class:`DifferentialPair <ansys.edb.net.DifferentialPair>` : List of all the differential \
|
|
103
|
+
pairs in this layout.
|
|
104
|
+
|
|
105
|
+
Read-Only.
|
|
106
|
+
"""
|
|
107
|
+
return list(self._layout.DifferentialPairs)
|
|
108
|
+
|
|
109
|
+
@property
|
|
110
|
+
def pin_groups(self):
|
|
111
|
+
""":obj:`list` of :class:`PinGroup <ansys.edb.hierarchy.PinGroup>` : List of all the pin groups in this \
|
|
112
|
+
layout.
|
|
113
|
+
|
|
114
|
+
Read-Only.
|
|
115
|
+
"""
|
|
116
|
+
return list(self._layout.PinGroups)
|
|
117
|
+
|
|
118
|
+
@property
|
|
119
|
+
def voltage_regulators(self):
|
|
120
|
+
""":obj:`list` of :class:`VoltageRegulator <ansys.edb.hierarchy.VoltageRegulator>` : List of all the voltage \
|
|
121
|
+
regulators in this layout.
|
|
122
|
+
|
|
123
|
+
Read-Only.
|
|
124
|
+
"""
|
|
125
|
+
return list(self._layout.VoltageRegulators)
|
|
126
|
+
|
|
127
|
+
@property
|
|
128
|
+
def extended_nets(self):
|
|
129
|
+
"""
|
|
130
|
+
Get the list of extended nets in the layout. Read-Only.
|
|
131
|
+
|
|
132
|
+
Returns
|
|
133
|
+
-------
|
|
134
|
+
List[:class:`ExtendedNet <ansys.edb.net.ExtendedNet>`]
|
|
135
|
+
A list of extended nets.
|
|
136
|
+
|
|
137
|
+
"""
|
|
138
|
+
return list(self._layout.ExtendedNets)
|
|
139
|
+
|
|
140
|
+
def expanded_extent(self, nets, extent, expansion_factor, expansion_unitless, use_round_corner, num_increments):
|
|
141
|
+
"""Get an expanded polygon for the Nets collection.
|
|
142
|
+
|
|
143
|
+
Parameters
|
|
144
|
+
----------
|
|
145
|
+
nets : list[:class:`Net <ansys.edb.net.Net>`]
|
|
146
|
+
A list of nets.
|
|
147
|
+
extent : :class:`ExtentType <ansys.edb.geometry.ExtentType>`
|
|
148
|
+
Geometry extent type for expansion.
|
|
149
|
+
expansion_factor : float
|
|
150
|
+
Expansion factor for the polygon union. No expansion occurs if the `expansion_factor` is less than or \
|
|
151
|
+
equal to 0.
|
|
152
|
+
expansion_unitless : bool
|
|
153
|
+
When unitless, the distance by which the extent expands is the factor multiplied by the longer dimension\
|
|
154
|
+
(X or Y distance) of the expanded object/net.
|
|
155
|
+
use_round_corner : bool
|
|
156
|
+
Whether to use round or sharp corners.
|
|
157
|
+
For round corners, this returns a bounding box if its area is within 10% of the rounded expansion's area.
|
|
158
|
+
num_increments : int
|
|
159
|
+
Number of iterations desired to reach the full expansion.
|
|
160
|
+
|
|
161
|
+
Returns
|
|
162
|
+
-------
|
|
163
|
+
:class:`PolygonData <ansys.edb.geometry.PolygonData>`
|
|
164
|
+
|
|
165
|
+
Notes
|
|
166
|
+
-----
|
|
167
|
+
Method returns the expansion of the contour, so any voids within expanded objects are ignored.
|
|
168
|
+
"""
|
|
169
|
+
return self._layout.GetExpandedExtentFromNets(
|
|
170
|
+
convert_py_list_to_net_list(nets),
|
|
171
|
+
extent,
|
|
172
|
+
expansion_factor,
|
|
173
|
+
expansion_unitless,
|
|
174
|
+
use_round_corner,
|
|
175
|
+
num_increments,
|
|
176
|
+
)
|
|
177
|
+
|
|
178
|
+
def convert_primitives_to_vias(self, primitives, is_pins=False):
|
|
179
|
+
"""Convert a list of primitives into vias or pins.
|
|
180
|
+
|
|
181
|
+
Parameters
|
|
182
|
+
----------
|
|
183
|
+
primitives : list[:class:`Primitive <ansys.edb.primitive.Primitive>`]
|
|
184
|
+
List of primitives to convert.
|
|
185
|
+
is_pins : bool, optional
|
|
186
|
+
True for pins, false for vias (default).
|
|
187
|
+
"""
|
|
188
|
+
self._layout.ConvertPrimitivesToVias(convert_py_list_to_net_list(primitives), is_pins)
|
|
189
|
+
|
|
190
|
+
@property
|
|
191
|
+
def port_reference_terminals_connected(self):
|
|
192
|
+
""":obj:`bool`: Determine if port reference terminals are connected, applies to lumped ports and circuit ports.
|
|
193
|
+
|
|
194
|
+
True if they are connected, False otherwise.
|
|
195
|
+
Read-Only.
|
|
196
|
+
"""
|
|
197
|
+
return self._layout.ArePortReferenceTerminalsConnected()
|
|
198
|
+
|
|
199
|
+
@property
|
|
200
|
+
def zone_primitives(self):
|
|
201
|
+
""":obj:`list` of :class:`Primitive <ansys.edb.primitive.Primitive>` : List of all the primitives in \
|
|
202
|
+
:term:`zones <Zone>`.
|
|
203
|
+
|
|
204
|
+
Read-Only.
|
|
205
|
+
"""
|
|
206
|
+
return list(self._layout.GetZonePrimitives())
|
|
207
|
+
|
|
208
|
+
@property
|
|
209
|
+
def fixed_zone_primitive(self):
|
|
210
|
+
""":class:`Primitive <ansys.edb.primitive.Primitive>` : Fixed :term:`zones <Zone>` primitive."""
|
|
211
|
+
return list(self._layout.GetFixedZonePrimitive())
|
|
212
|
+
|
|
213
|
+
@fixed_zone_primitive.setter
|
|
214
|
+
def fixed_zone_primitive(self, value):
|
|
215
|
+
self._layout.SetFixedZonePrimitives(value)
|
|
216
|
+
|
|
217
|
+
@property
|
|
218
|
+
def board_bend_defs(self):
|
|
219
|
+
""":obj:`list` of :class:`BoardBendDef <ansys.edb.primitive.BoardBendDef>` : List of all the board bend \
|
|
220
|
+
definitions in this layout.
|
|
221
|
+
|
|
222
|
+
Read-Only.
|
|
223
|
+
"""
|
|
224
|
+
return list(self._layout.GetBoardBendDefs())
|
|
225
|
+
|
|
226
|
+
def synchronize_bend_manager(self):
|
|
227
|
+
"""Synchronize bend manager."""
|
|
228
|
+
self._layout.SynchronizeBendManager()
|
|
229
|
+
|
|
230
|
+
@property
|
|
231
|
+
def layout_instance(self):
|
|
232
|
+
""":class:`LayoutInstance <ansys.edb.layout_instance.LayoutInstance>` : Layout instance of this layout.
|
|
233
|
+
|
|
234
|
+
Read-Only.
|
|
235
|
+
"""
|
|
236
|
+
if not self._layout_instance:
|
|
237
|
+
self._layout_instance = self._layout.GetLayoutInstance()
|
|
238
|
+
return self._layout_instance
|