EDBPadstackInstance#

class pyedb.dotnet.database.edb_data.padstacks_data.EDBPadstackInstance(edb_padstackinstance, _pedb)#

Bases: pyedb.dotnet.database.cell.primitive.primitive.Connectable

Manages EDB functionalities for a padstack.

Parameters:
edb_padstackinstance
_pedb

Inherited AEDT object.

Examples

>>> from pyedb import Edb
>>> edb = Edb(myedb, edbversion="2021.2")
>>> edb_padstack_instance = edb.padstacks.instances[0]

Overview#

get_terminal

Get PadstackInstanceTerminal object.

create_terminal

Create a padstack instance terminal

create_coax_port

Create a coax port.

create_port

Create a port on the padstack.

in_polygon

Check if padstack Instance is in given polygon data.

set_backdrill_top

Set backdrill from top.

get_back_drill_by_layer

set_back_drill_by_layer

Method added to bring compatibility with grpc.

set_backdrill_bottom

Set backdrill from bottom.

parametrize_position

Parametrize the instance position.

in_voids

Check if this padstack instance is in any void.

create_rectangle_in_pad

Create a rectangle inscribed inside a padstack instance pad.

get_reference_pins

Search for reference pins using given criteria.

split

Split padstack instance into multiple instances. The new instances only connect adjacent layers.

convert_hole_to_conical_shape

Convert actual padstack instance to microvias 3D Objects with a given aspect ratio.

side_number

Return the number of sides meshed of the padstack instance.

terminal

Terminal.

object_instance

Return Ansys.Ansoft.Edb.LayoutInstance.LayoutObjInstance object.

bounding_box

Get bounding box of the padstack instance.

pin

EDB padstack object.

padstack_definition

Padstack definition Name.

definition

Padstack definition.

backdrill_top

Backdrill layer from top.

backdrill_type

Adding grpc compatibility. DotNet is supporting only layer drill type with adding stub length.

backdrill_bottom

Backdrill layer from bottom.

backdrill_parameters

start_layer

Starting layer.

stop_layer

Stopping layer.

layer_range_names

List of all layers to which the padstack instance belongs.

is_pin

Determines whether this padstack instance is a layout pin.

position

Padstack instance position.

rotation

Padstack instance rotation.

metal_volume

Metal volume of the via hole instance in cubic units (m3). Metal plating ratio is accounted.

pin_number

Get pin number.

component_pin

Get component pin.

aedt_name

Retrieve the pin name that is shown in AEDT.

pingroups

Pin groups that the pin belongs to.

placement_layer

Placement layer.

lower_elevation

Lower elevation of the placement layer.

upper_elevation

Upper elevation of the placement layer.

top_bottom_association

Top/bottom association of the placement layer.

Import detail#

from pyedb.dotnet.database.edb_data.padstacks_data import EDBPadstackInstance

Property detail#

property EDBPadstackInstance.side_number#

Return the number of sides meshed of the padstack instance. Returns ——- int

Number of sides meshed of the padstack instance.

property EDBPadstackInstance.terminal#

Terminal.

property EDBPadstackInstance.object_instance#

Return Ansys.Ansoft.Edb.LayoutInstance.LayoutObjInstance object.

property EDBPadstackInstance.bounding_box#

Get bounding box of the padstack instance. Because this method is slow, the bounding box is stored in a variable and reused.

Returns:
list of float
property EDBPadstackInstance.pin#

EDB padstack object.

property EDBPadstackInstance.padstack_definition#

Padstack definition Name.

Returns:
str

Name of the padstack definition.

property EDBPadstackInstance.definition#

Padstack definition.

Returns:
str

Name of the padstack definition.

property EDBPadstackInstance.backdrill_top#

Backdrill layer from top.

Returns:
tuple

Tuple of the layer name, drill diameter, and offset if it exists.

property EDBPadstackInstance.backdrill_type#

Adding grpc compatibility. DotNet is supporting only layer drill type with adding stub length.

property EDBPadstackInstance.backdrill_bottom#

Backdrill layer from bottom.

Returns:
tuple

Tuple of the layer name, drill diameter, and drill offset if it exists.

property EDBPadstackInstance.backdrill_parameters#
property EDBPadstackInstance.start_layer#

Starting layer.

Returns:
str

Name of the starting layer.

property EDBPadstackInstance.stop_layer#

Stopping layer.

Returns:
str

Name of the stopping layer.

property EDBPadstackInstance.layer_range_names#

List of all layers to which the padstack instance belongs.

property EDBPadstackInstance.is_pin#

Determines whether this padstack instance is a layout pin.

Returns:
bool

True if this padstack type is a layout pin, False otherwise.

property EDBPadstackInstance.position#

Padstack instance position.

Returns:
list

List of [x, y] coordinates for the padstack instance position.

property EDBPadstackInstance.rotation#

Padstack instance rotation.

Returns:
float

Rotatation value for the padstack instance.

property EDBPadstackInstance.metal_volume#

Metal volume of the via hole instance in cubic units (m3). Metal plating ratio is accounted.

Returns:
float

Metal volume of the via hole instance.

property EDBPadstackInstance.pin_number#

Get pin number.

property EDBPadstackInstance.component_pin#

Get component pin.

property EDBPadstackInstance.aedt_name#

Retrieve the pin name that is shown in AEDT.

Note

To obtain the EDB core pin name, use pin.GetName().

Returns:
str

Name of the pin in AEDT.

Examples

>>> from pyedb import Edb
>>> edbapp = Edb("myaedbfolder", "project name", "release version")
>>> edbapp.padstacks.instances[111].get_aedt_pin_name()
property EDBPadstackInstance.pingroups#

Pin groups that the pin belongs to.

Returns:
list

List of pin groups that the pin belongs to.

property EDBPadstackInstance.placement_layer#

Placement layer.

Returns:
str

Name of the placement layer.

property EDBPadstackInstance.lower_elevation#

Lower elevation of the placement layer.

Returns:
float

Lower elavation of the placement layer.

property EDBPadstackInstance.upper_elevation#

Upper elevation of the placement layer.

Returns:
float

Upper elevation of the placement layer.

property EDBPadstackInstance.top_bottom_association#

Top/bottom association of the placement layer.

Returns:
int

Top/bottom association of the placement layer.

  • 0 Top associated.

  • 1 No association.

  • 2 Bottom associated.

  • 4 Number of top/bottom association type.

  • -1 Undefined.

Method detail#

EDBPadstackInstance.get_terminal(name=None, create_new_terminal=False)#

Get PadstackInstanceTerminal object.

Parameters:
namestr, optional

Name of the terminal. Only applicable when create_new_terminal is True.

create_new_terminalbool, optional

Whether to create a new terminal.

Returns:
pyedb.dotnet.database.edb_data.terminals
EDBPadstackInstance.create_terminal(name=None)#

Create a padstack instance terminal

EDBPadstackInstance.create_coax_port(name=None, radial_extent_factor=0)#

Create a coax port.

EDBPadstackInstance.create_port(name=None, reference=None, is_circuit_port=False)#

Create a port on the padstack.

Parameters:
namestr, optional

Name of the port. The default is None, in which case a name is automatically assigned.

referenceclass:pyedb.dotnet.database.edb_data.nets_data.EDBNetsData, class:pyedb.dotnet.database.edb_data.padstacks_data.EDBPadstackInstance, class:pyedb.dotnet.database.edb_data.sources.PinGroup, optional

Negative terminal of the port.

is_circuit_portbool, optional

Whether it is a circuit port.

EDBPadstackInstance.in_polygon(polygon_data, include_partial=True, simple_check=False)#

Check if padstack Instance is in given polygon data.

Parameters:
polygon_dataPolygonData Object
include_partialbool, optional

Whether to include partial intersecting instances. The default is True.

simple_checkbool, optional

Whether to perform a single check based on the padstack center or check the padstack bounding box.

Returns:
bool

True when successful, False when failed.

EDBPadstackInstance.set_backdrill_top(drill_depth, drill_diameter, offset=0.0)#

Set backdrill from top.

Parameters:
drill_depthstr

Name of the drill to layer.

drill_diameterfloat, str

Diameter of backdrill size.

offsetfloat, str

Offset for the backdrill. The default is 0.0. If the value is other than the default, the stub does not stop at the layer. In AEDT, this parameter is called “Mfg stub length”.

Returns:
bool

True if success, False otherwise.

EDBPadstackInstance.get_back_drill_by_layer()#
EDBPadstackInstance.set_back_drill_by_layer(drill_to_layer, diameter, offset, from_bottom=True)#

Method added to bring compatibility with grpc.

EDBPadstackInstance.set_backdrill_bottom(drill_depth, drill_diameter, offset=0.0)#

Set backdrill from bottom.

Parameters:
drill_depthstr

Name of the drill to layer.

drill_diameterfloat, str

Diameter of the backdrill size.

offsetfloat, str, optional

Offset for the backdrill. The default is 0.0. If the value is other than the default, the stub does not stop at the layer. In AEDT, this parameter is called “Mfg stub length”.

Returns:
bool

True if success, False otherwise.

EDBPadstackInstance.parametrize_position(prefix=None)#

Parametrize the instance position.

Parameters:
prefixstr, optional

Prefix for the variable name. Default is None. Example “MyVariableName” will create 2 Project variables $MyVariableNamesX and $MyVariableNamesY.

Returns:
List

List of variables created.

EDBPadstackInstance.in_voids(net_name=None, layer_name=None)#

Check if this padstack instance is in any void.

Parameters:
net_namestr

Net name of the voids to be checked. Default is None.

layer_namestr

Layer name of the voids to be checked. Default is None.

Returns:
list

List of the voids that include this padstack instance.

EDBPadstackInstance.create_rectangle_in_pad(layer_name, return_points=False, partition_max_order=16)#

Create a rectangle inscribed inside a padstack instance pad.

The rectangle is fully inscribed in the pad and has the maximum area. It is necessary to specify the layer on which the rectangle will be created.

Parameters:
layer_namestr

Name of the layer on which to create the polygon.

return_pointsbool, optional

If True does not create the rectangle and just returns a list containing the rectangle vertices. Default is False.

partition_max_orderfloat, optional

Order of the lattice partition used to find the quasi-lattice polygon that approximates polygon. Default is 16.

Returns:
bool, List, pyedb.dotnet.database.edb_data.primitives.EDBPrimitives

Polygon when successful, False when failed, list of list if return_points=True.

Examples

>>> from pyedb import Edb
>>> edbapp = Edb("myaedbfolder", edbversion="2021.2")
>>> edb_layout = edbapp.modeler
>>> list_of_padstack_instances = list(edbapp.padstacks.instances.values())
>>> padstack_inst = list_of_padstack_instances[0]
>>> padstack_inst.create_rectangle_in_pad("TOP")
EDBPadstackInstance.get_reference_pins(reference_net='GND', search_radius=0.005, max_limit=0, component_only=True)#

Search for reference pins using given criteria.

Parameters:
reference_netstr, optional

Reference net. The default is "GND".

search_radiusfloat, optional

Search radius for finding padstack instances. The default is 5e-3.

max_limitint, optional

Maximum limit for the padstack instances found. The default is 0, in which case no limit is applied. The maximum limit value occurs on the nearest reference pins from the positive one that is found.

component_onlybool, optional

Whether to limit the search to component padstack instances only. The default is True. When False, the search is extended to the entire layout.

Returns:
list

List of dotnet.database.edb_data.padstacks_data.EDBPadstackInstance.

Examples

>>> edbapp = Edb("target_path")
>>> pin = edbapp.components.instances["J5"].pins["19"]
>>> reference_pins = pin.get_reference_pins(reference_net="GND", search_radius=5e-3, max_limit=0,
>>> component_only=True)
EDBPadstackInstance.split() list#

Split padstack instance into multiple instances. The new instances only connect adjacent layers.

EDBPadstackInstance.convert_hole_to_conical_shape(angle=75)#

Convert actual padstack instance to microvias 3D Objects with a given aspect ratio.

Parameters:
anglefloat, optional

Angle of laser penetration in degrees. The angle defines the lowest hole diameter with this formula: HoleDiameter -2*tan(laser_angle* Hole depth). Hole depth is the height of the via (dielectric thickness). The default is 75. The lowest hole is 0.75*HoleDepth/HoleDiam.

Returns: