ansys / pyedb

pyedb is a Python library to use the EDB client library.
https://edb.docs.pyansys.com/
MIT License
7 stars 4 forks source link

Bug located in function import_gds_file() #815

Open amichel0205 opened 5 days ago

amichel0205 commented 5 days ago

Before submitting the issue

Description of the bug

Using command

edb.import_gds_file(inputGDS=gds_file, control_file=control_file)

with these lines for layers in xml file:

image

Will result in the below stackup where thickness and elevation are in mm instead in um

image

Using the same GDS file and xml in AEDT import GDS will result in the correct stackup.

image

Steps To Reproduce

Use script below with your oxn gds and xml file with unit specified as um for Layers section:

version = "2024.2"

edb = pyedb.Edb(edbversion=version) edb.import_gds_file(inputGDS=gds_file, control_file=control_file) edb.save_edb_as(edb_out)

Which Operating System are you using?

Windows

Which Python version are you using?

3.10

Installed packages

(PyEDB_venv) C:\ANSYSDEV\NoBackup\PyEDB>pip freeze aiohttp==3.7.4.post0 annotated-types==0.6.0 ansys-pythonnet==3.1.0rc3 appdirs==1.4.4 asttokens==2.4.1 async-timeout==3.0.1 attrs==23.2.0 autobahn==21.3.1 Automat==20.2.0 backcall==0.2.0 certifi==2024.2.2 cffi==1.16.0 chardet==4.0.0 charset-normalizer==3.3.2 click==8.1.7 click-plugins==1.1.1 cligj==0.7.2 clr-loader==0.2.6 colorama==0.4.4 constantly==15.1.0 contourpy==1.2.0 cryptography==3.4.8 cycler==0.12.1 decorator==5.0.9 defusedxml==0.7.1 et-xmlfile==1.1.0 executing==2.0.1 fiona==1.9.6 fonttools==4.50.0 fpdf2==2.7.8 geopandas==0.14.4 hyperlink==21.0.0 idna==3.7 imageio==2.9.0 incremental==21.3.0 ipython==8.6.0 jedi==0.18.1 jsonschema==4.21.1 jsonschema-specifications==2023.12.1 kiwisolver==1.4.5 markdown-it-py==3.0.0 matplotlib==3.8.2 matplotlib-inline==0.1.6 mdurl==0.1.2 meshio==5.3.4 msgpack==1.0.8 multidict==6.0.2 networkx==3.3 numpy==1.26.0 openpyxl==3.1.2 osmnx==1.9.3 packaging==24.0 pandas==2.1.1 parso==0.8.3 pickleshare==0.7.5 pillow==10.2.0 platformdirs==4.2.1 plumbum==1.8.2 pooch==1.8.1 prompt-toolkit==3.0.32 psutil==5.9.8 pure-eval==0.2.2 pyaedt==0.9.1 pycparser==2.21 pydantic==2.7.1 pydantic_core==2.18.2 pyedb==0.10.0 Pygments==2.10.0 pyparsing==3.1.2 pyproj==3.6.1 python-dateutil==2.9.0.post0 pythonnet==3.0.1 pytomlpp==1.0.13 pytz==2024.1 pyvista==0.43.6 pywin32==306 referencing==0.34.0 requests==2.31.0 rich==13.7.1 rpds-py==0.18.0 rpyc==6.0.0 Rtree==1.2.0 scikit-rf==1.0.0 scipy==1.13.0 scooby==0.9.2 shapely==2.0.4 six==1.16.0 SRTM.py==0.3.7 stack-data==0.6.3 toml==0.10.2 traitlets==5.5.0 transforms3d==0.4.1 Twisted==21.7.0 twisted-iocpsupport==1.0.2 txaio==22.2.1 typing_extensions==4.11.0 tzdata==2024.1 urllib3==2.2.1 utm==0.7.0 vtk==9.3.0 wcwidth==0.2.5 wslink==1.9.1 yarl==1.8.1 zope.interface==5.5.1

amichel0205 commented 5 days ago

Here is a workaround to this issue:

import pyedb

control_file = r"C:\Data\support\GDS_import_test\Spiral_Stackup_GPDK180_filtercell_20230908_1.xml"
gds_file = r"C:\Data\support\GDS_import_test\spiraldiff_16p5nH_Q11_1p7GHz_fullchip.gds"
edb_out = r"C:\Data\support\GDS_import_test\project"
anstranslator_full_path = r"C:\Program Files\AnsysEM\v242\Win64\anstranslator.exe"

version = "2024.2"
edb = pyedb.Edb(edbversion=version)
# edb.import_gds_file(inputGDS=gds_file, control_file=control_file)
edb.import_layout_pcb(input_file=gds_file,  working_dir=edb_out, anstranslator_full_path=anstranslator_full_path, control_file=control_file)
edb.save_edb_as(edb_out)
edb.close_edb()

The aed folder created from importing the GDS will be created in workingdir using GDS file name