ansys / pyaedt

AEDT Python Client Package
https://aedt.docs.pyansys.com
MIT License
203 stars 122 forks source link

Bug located in import stackup from JSON #4077

Closed hui-zhou-a closed 9 months ago

hui-zhou-a commented 9 months ago

Before submitting the issue

Description of the bug

Each layer has its id handled internally. Primitives are tied to layer id. The current implementation resets layer id sequence which leads to mis-placement of primitives.

Steps To Reproduce

edb.stackup.load()

Which Operating System are you using?

Windows

Which Python version are you using?

3.7

Installed packages

anyio==4.0.0 argon2-cffi==23.1.0 argon2-cffi-bindings==21.2.0 arrow==1.2.3 asttokens==2.4.0 async-lru==2.0.4 attrs==23.1.0 Babel==2.12.1 backcall==0.2.0 beautifulsoup4==4.12.2 bleach==6.0.0 certifi==2023.7.22 cffi==1.15.1 charset-normalizer==3.2.0 click==8.1.7 click-plugins==1.1.1 cligj==0.7.2 clr-loader==0.2.6 colorama==0.4.6 comm==0.1.4 contourpy==1.1.0 cycler==0.11.0 debugpy==1.7.0 decorator==5.1.1 defusedxml==0.7.1 et-xmlfile==1.1.0 exceptiongroup==1.1.3 executing==1.2.0 fastjsonschema==2.18.0 Fiona==1.9.4.post1 fonttools==4.42.1 fqdn==1.5.1 geopandas==0.13.2 idna==3.4 imageio==2.31.3 ipycanvas==0.13.1 ipyevents==2.0.2 ipykernel==6.25.2 ipython==8.15.0 ipython-genutils==0.2.0 ipyvtklink==0.2.3 ipywidgets==7.8.0 isoduration==20.11.0 jedi==0.19.0 Jinja2==3.1.2 json5==0.9.14 jsonpointer==2.4 jsonschema==4.19.0 jsonschema-specifications==2023.7.1 jupyter-events==0.7.0 jupyter-lsp==2.2.0 jupyter_client==8.3.1 jupyter_core==5.3.1 jupyter_server==2.7.3 jupyter_server_terminals==0.4.4 jupyterlab==4.0.5 jupyterlab-pygments==0.2.2 jupyterlab-widgets==1.1.5 jupyterlab_server==2.24.0 kiwisolver==1.4.5 MarkupSafe==2.1.3 matplotlib==3.8.0 matplotlib-inline==0.1.6 mistune==3.0.1 nbclient==0.8.0 nbconvert==7.8.0 nbformat==5.9.2 nest-asyncio==1.5.7 networkx==3.1 notebook==7.0.3 notebook_shim==0.2.3 numpy==1.26.0 openpyxl==3.1.2 osmnx==1.6.0 overrides==7.4.0 packaging==23.1 pandas==2.1.1 pandocfilters==1.5.0 parso==0.8.3 pickleshare==0.7.5 Pillow==10.0.0 platformdirs==3.10.0 plumbum==1.8.2 pooch==1.7.0 prometheus-client==0.17.1 prompt-toolkit==3.0.39 psutil==5.9.5 pure-eval==0.2.2 pyaedt==0.7.0 pycparser==2.21 Pygments==2.16.1 pyparsing==3.0.9 pyproj==3.6.0 PySide6==6.5.2 PySide6-Addons==6.5.2 PySide6-Essentials==6.5.2 python-dateutil==2.8.2 python-json-logger==2.0.7 pythonnet==3.0.2 pytz==2023.3.post1 pyvista==0.42.2 pywin32==306 pywinpty==2.0.11 PyYAML==6.0.1 pyzmq==25.1.1 referencing==0.30.2 requests==2.31.0 rfc3339-validator==0.1.4 rfc3986-validator==0.1.1 rpds-py==0.10.2 rpyc==5.3.1 scikit-rf==0.29.0 scipy==1.11.2 scooby==0.7.2 Send2Trash==1.8.2 shapely==2.0.1 shiboken6==6.5.2 six==1.16.0 sniffio==1.3.0 soupsieve==2.5 SRTM.py==0.3.7 stack-data==0.6.2 terminado==0.17.1 tinycss2==1.2.1 toml==0.10.2 tomli==2.0.1 tornado==6.3.3 traitlets==5.9.0 typing_extensions==4.7.1 tzdata==2023.3 uri-template==1.3.0 urllib3==2.0.4 utm==0.7.0 vtk==9.2.6 wcwidth==0.2.6 webcolors==1.13 webencodings==0.5.1 websocket-client==1.6.2 widgetsnbextension==3.6.5 xmltodict==0.13.0

Acaptian commented 9 months ago

Hi ring630, Here's an instance of this bug.

import os import pyaedt import xml.etree.ElementTree as ET import openpyxl import random … tree = ET.ElementTree(root) tree.write("D:\pyaedt\xml\stackup.xml", encoding="utf-8", xml_declaration=True) edb = pyaedt.Edb(edbpath='D:\PCB\825501014_RDA_Layout003.aedb') edb.stackup._import_xml(file_path="D:\pyaedt\XML\stackup.xml") edb.save_edb edb.close_edb

XML.zip

erorr:

INFO: Builder was initialized.PyAEDT INFO: EDB initialized.Measures doesn't exist in xml