Import Component Definitions#
This example shows how to import component definitions. It includes
Download an example board
Create a config file with component RLC and solder ball information
Apply the config file to the example board
Import the required packages#
[1]:
import json
from pathlib import Path
import tempfile
from IPython.display import display
from ansys.aedt.core.downloads import download_file
import pandas as pd
from pyedb import Edb
AEDT_VERSION = "2024.2"
Download the example PCB data.
[2]:
temp_folder = tempfile.TemporaryDirectory(suffix=".ansys").name
file_edb = download_file(source="edb/ANSYS-HSD_V1.aedb", destination=temp_folder)
Load example layout.#
[3]:
edbapp = Edb(file_edb, edbversion=AEDT_VERSION)
PyAEDT INFO: Logger is initialized in EDB.
PyAEDT INFO: legacy v0.34.3
PyAEDT INFO: Python version 3.10.11 (tags/v3.10.11:7d4cc5a, Apr 5 2023, 00:38:17) [MSC v.1929 64 bit (AMD64)]
PyAEDT INFO: Database ANSYS-HSD_V1.aedb Opened in 2024.2
PyAEDT INFO: Cell main Opened
PyAEDT INFO: Builder was initialized.
PyAEDT INFO: EDB initialized.
Create a config file with component information#
Keywords
reference_designator. Reference designator of the component.
part_type. Part type of the component. Supported types are ‘resistor’, ‘inductor’, ‘capacitor’, ‘ic’, ‘io’, ‘other’.
enabled. Only available for RLC components.
solder_ball_properties.
shape. Supported types are ‘cylinder’, ‘spheroid’, ‘none’.
diameter.
mid_diameter.
height.
port_properties.
reference_offset.
reference_size_auto.
reference_size_x.
reference_size_y.
pin_pair_model. RLC network. Multiple pin pairs are supported.
first_pin. First pin of the pin pair.
second_pin. Second pin of the pin pair.
is_parallel.
resistance.
resistance_enabled.
inductance.
inductance_enabled.
capacitance.
capacitance_enabled.
[4]:
cfg = dict()
cfg["components"] = [
{
"reference_designator": "U1",
"part_type": "io",
"solder_ball_properties": {
"shape": "spheroid",
"diameter": "244um",
"mid_diameter": "400um",
"height": "300um",
},
"port_properties": {
"reference_offset": "0.1mm",
"reference_size_auto": True,
"reference_size_x": 0,
"reference_size_y": 0,
},
},
{
"reference_designator": "C375",
"enabled": False,
"pin_pair_model": [
{
"first_pin": "1",
"second_pin": "2",
"is_parallel": False,
"resistance": "10ohm",
"resistance_enabled": True,
"inductance": "1nH",
"inductance_enabled": False,
"capacitance": "10nF",
"capacitance_enabled": True,
}
],
},
]
[5]:
display(pd.DataFrame(data=[cfg["components"][0]["solder_ball_properties"]]))
shape | diameter | mid_diameter | height | |
---|---|---|---|---|
0 | spheroid | 244um | 400um | 300um |
[6]:
display(pd.DataFrame(data=[cfg["components"][0]["port_properties"]]))
reference_offset | reference_size_auto | reference_size_x | reference_size_y | |
---|---|---|---|---|
0 | 0.1mm | True | 0 | 0 |
[7]:
display(pd.DataFrame(data=cfg["components"][1]["pin_pair_model"]))
first_pin | second_pin | is_parallel | resistance | resistance_enabled | inductance | inductance_enabled | capacitance | capacitance_enabled | |
---|---|---|---|---|---|---|---|---|---|
0 | 1 | 2 | False | 10ohm | True | 1nH | False | 10nF | True |
[8]:
cfg_file_path = Path(temp_folder) / "cfg.json"
with open(cfg_file_path, "w") as f:
json.dump(cfg, f, indent=4, ensure_ascii=False)
Load config file
[9]:
edbapp.configuration.load(cfg_file_path, apply_file=True)
[9]:
<pyedb.configuration.cfg_data.CfgData at 0x19f96516dd0>
Save and close Edb#
The temporary folder will be deleted once the execution of this script is finished. Replace edbapp.save() with edbapp.save_as(“C:/example.aedb”) to keep the example project.
[10]:
edbapp.save()
edbapp.close()
[10]:
True