ansys / pyaedt

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

Issues when merging two nets (edb.core_nets.merge_nets_polygons) on multi-layer PCB #3712

Closed Garpurinn closed 9 months ago

Garpurinn commented 11 months ago

Before submitting the issue

Description of the bug

The PCB design I am working on has four copper layers.

I am using the "edb.core_nets.merge_nets_polygons" function to merge two nets in this design (_edb.core_nets.merge_netspolygons([nets[0], nets[1]])). These two nets are present on all four layers and connected through vias.

When I look at the results after the merger, I can see that I still have both nets present in my design and I am now missing most of the traces on at least 3 of the 4 layers.

So it seems that the merger is failing and in the process I loose most of the traces connected to the two nets I am trying to merge.

Steps To Reproduce

Import an four layer PCB design, with at least 2 nets where at least one of the net is present on all four layers. Try to merge those two nets, using the "edb.core_nets.merge_nets_polygons" function.

The results should be missing traces on most of the layers

Which Operating System are you using?

Windows

Which Python version are you using?

3.10

Installed packages

accelerate==0.19.0 adodbapi==2.6.1.3 affine==2.3.1 aiofiles==22.1.0 aiohttp==3.8.3 aiosignal==1.2.0 aiosqlite==0.17.0 alabaster==0.7.12 alembic==1.8.0 algopy==0.5.7 altair==4.2.2 altair-data-server==0.4.1 altair-transform==0.2.0 aniso8601==9.0.1 ansiwrap==0.8.4 ansys-api-fluent==0.3.12 ansys-api-mapdl==0.5.1 ansys-api-mechanical==0.1.0 ansys-api-meshing-prime==0.1.1 ansys-api-platform-instancemanagement==1.0.0b3 ansys-api-sherlock==0.1.14 ansys-api-systemcoupling==0.1.0 ansys-dpf-composites==0.2.0 ansys-dpf-core==0.8.1 ansys-dpf-gate==0.3.1 ansys-dpf-gatebin==0.3.1 ansys-dpf-post==0.4.0 ansys-fluent-core==0.14.0 ansys-grantami-bomanalytics==1.1.3 ansys-grantami-bomanalytics-openapi==1.0.0 ansys-grantami-recordlists==1.0.0 ansys-grantami-serverapi-openapi==1.0.0 ansys-grpc-dpf==0.7.1 ansys-mapdl-core==0.64.1 ansys-mapdl-reader==0.52.17 ansys-math-core==0.1.1 ansys-mechanical-core==0.8.0 ansys-meshing-prime==0.3.2 ansys-motorcad-core==0.1.3 ansys-openapi-common==1.2.1 ansys-optislang-core==0.2.1 ansys-platform-instancemanagement==1.1.1 ansys-pythonnet==3.1.0rc1 ansys-seascape==0.2.0 ansys-sherlock-core==0.2.0 ansys-systemcoupling-core==0.1.3 anyio==3.6.2 appdirs==1.4.4 argon2-cffi==21.3.0 argon2-cffi-bindings==21.2.0 arrow==1.2.2 arviz==0.15.1 asciitree==0.3.3 asgi-csrf==0.9 asgiref==3.5.2 asn1crypto==1.4.0 asteval==0.9.27 astroid==2.12.12 astroML==1.0.2.post1 astropy==5.1.1 asttokens==2.1.0 async-generator==1.10 async-timeout==4.0.2 atomicwrites==1.4.0 attrs==22.1.0 autopep8==1.7.0 azure-core==1.25.1 azure-cosmos==4.3.1 azure-identity==1.12.0 Babel==2.10.3 backcall==0.2.0 backports-abc==0.5 baresql==0.8.0 bcrypt==3.2.0 beautifulsoup4==4.11.1 binaryornot==0.4.4 black==23.3.0 bleach==5.0.0 blinker==1.4 blis==0.7.9 blosc==1.10.6 bokeh==3.1.1 botorch==0.8.5 Bottleneck==1.3.4 bqplot==0.12.39 branca==0.5.0 brewer2mpl==1.4.1 Brotli==1.0.9 build==0.10.0 cachelib==0.9.0 cachetools==5.2.0 Cartopy==0.21.1 catalogue==2.0.8 certifi==2022.9.24 cffi==1.15.0 cftime==1.6.0 chardet==5.0.0 charset-normalizer==2.0.12 click==8.1.3 click-default-group-wheel==1.2.2 click-plugins==1.1.1 cligj==0.7.2 cloudpickle==2.1.0 clr-loader==0.2.6 clrmagic==0.0.1a2 colorama==0.4.6 colorcet==3.0.1 comm==0.1.3 commonmark==0.9.1 confection==0.0.3 cons==0.4.5 contourpy==1.0.7 cookiecutter==2.1.1 coverage==6.5.0 cramjam==2.6.2 cryptography==37.0.4 csvs-to-sqlite==1.3.1a0 cvxopt==1.3.0 cvxpy==1.3.1 cycler==0.11.0 cymem==2.0.7 Cython==0.29.34 cytoolz==0.12.1 dash==2.8.1 dash-core-components==2.0.0 dash-html-components==2.0.0 dash-table==5.0.0 dask==2023.5.0 dask-glm==0.2.0 dask-image==2023.3.0 dask-ml==2023.3.24 dask-searchcv==0.2.0 databases==0.5.5 datasette==0.64.3 datasette-graphql==2.1.1 datashader==0.14.5a1+g7a97e97.dirty datashape==0.5.2 dateparser==1.1.0 db.py==0.5.4b1 deap==1.3.1 debugpy==1.6.7 decorator==4.4.2 defusedxml==0.7.1 Deprecated==1.2.13 deprecation==2.1.0 diff-match-patch==20200713 dill==0.3.5 dirty-cat==0.4.1 distlib==0.3.6 distributed==2023.5.0 Django==4.1.2 dnspython==2.1.0 docopt==0.6.2 docrepr==0.1.1 docstring-to-markdown==0.10 docutils==0.18.1 duckdb==0.8.0 ecos==2.0.12 emcee==3.1.2 entrypoints==0.4 et-xmlfile==1.1.0 etuples==0.3.8 exceptiongroup==1.1.1 executing==1.2.0 fast-histogram==0.11 fastai==2.7.12 fastapi==0.95.1 fastcore==1.5.11 fastdownload==0.0.7 fasteners==0.17.3 fastjsonschema==2.16.2 fastparquet==2023.4.0 fastprogress==1.0.3 feather-format==0.4.1 filelock==3.8.0 filterpy==1.4.5 Fiona==1.8.21 flake8==5.0.4 Flask==2.2.2 flask-accepts==0.18.4 Flask-Mail==0.9.1 flask-restx==0.5.1 Flask-Session==0.4.0 Flask-SQLAlchemy==2.5.1 flaskerize==0.14.0 flit==3.8.0 flit_core==3.8.0 folium==0.13.0 fonttools==4.37.4 formlayout==1.2.1a1 fqdn==1.5.1 frozenlist==1.3.0 fs==2.4.15 fsspec==2023.5.0 future==0.18.2 fuzzywuzzy==0.18.0 gast==0.4.0 GDAL==3.4.3 geographiclib==1.52 geopandas==0.13.0 geopy==2.2.0 geoviews==1.10.0a2.post4+g65df916 gitdb==4.0.9 GitPython==3.1.29 gmpy2==2.1.5 google-api-core==2.11.1 google-api-python-client==2.91.0 google-auth==2.21.0 google-auth-httplib2==0.1.0 googleapis-common-protos==1.59.1 gpytorch==1.10 graphene==3.1.1 graphql-core==3.2.3 graphql-relay==3.2.0 greenlet==2.0.2 grpcio==1.56.0 grpcio-status==1.48.2 guidata==2.3.1 guiqwt==4.3.3 h11==0.12.0 h2==4.1.0 h5netcdf==1.1.0 h5py==3.9.0 HeapDict==1.0.1 holoviews==1.16.0 hpack==4.0.0 html5lib==1.1 httpcore==0.15.0 httpie==3.2.1 httplib2==0.22.0 httpx==0.23.0 huggingface-hub==0.14.1 hupper==1.10.3 husl==4.0.3 hvplot==0.8.3 hypercorn==0.14.3 hyperframe==6.0.1 hypothesis==6.56.2 idlex==1.22 idna==3.1 imageio==2.28.1 imageio-ffmpeg==0.4.2 imagesize==1.4.1 imbalanced-learn==0.10.1 importlib-metadata==5.0.0 inflection==0.5.1 iniconfig==1.1.1 intake==0.6.4 intervaltree==3.0.2 ipycanvas==0.13.1 ipydatagrid==1.1.15 ipykernel==6.22.0 ipyleaflet==0.17.2 ipympl==0.9.3 ipython==8.13.1 ipython-genutils==0.2.0 ipython-sql==0.4.1b1 ipywidgets==8.0.6 isoduration==20.11.0 isort==5.10.1 itsdangerous==2.1.2 janus==1.0.0 jaraco.classes==3.2.3 jedi==0.18.2 jellyfish==0.11.2 Jinja2==3.1.2 jinja2-time==0.2.0 joblib==1.2.0 json5==0.9.8 jsonpointer==2.3 jsonschema==4.17.3 julia==0.6.1 jupyter==1.0.0 jupyter-bokeh==3.0.7 jupyter-console==6.4.4 jupyter-events==0.6.3 jupyter-server-mathjax==0.2.6 jupyter-sphinx==0.4.0 jupyter-ydoc==0.2.4 jupyter_client==8.2.0 jupyter_core==5.3.0 jupyter_packaging==0.12.3 jupyter_server==2.5.0 jupyter_server_fileid==0.9.0 jupyter_server_terminals==0.4.4 jupyter_server_ydoc==0.8.0 jupyterlab==3.6.3 jupyterlab-launcher==0.13.1 jupyterlab-pygments==0.2.2 jupyterlab-widgets==3.0.7 jupyterlab_rise==0.2.0 jupyterlab_server==2.22.1 keyring==23.13.1 kiwisolver==1.4.3 langcodes==3.3.0 lazy-object-proxy==1.7.1 lazy_loader==0.2 linear-operator==0.4.0 linkify-it-py==2.0.0 llvmlite==0.40.0 lmfit==1.0.3 locket==1.0.0 logical-unification==0.4.5 loky==3.4.0 lxml==4.9.2 lz4==4.3.2 Mako==1.2.0 Markdown==3.3.7 markdown-it-py==2.2.0 MarkupSafe==2.1.1 marshmallow==3.12.1 matplotlib==3.7.1 matplotlib-inline==0.1.6 maturin==0.14.15 mccabe==0.7.0 mdit-py-plugins==0.3.5 mdurl==0.1.2 mercantile==1.2.1 mergedeep==1.3.4 metakernel==0.28.2 miniKanren==1.0.3 missingno==0.5.1 mistune==0.8.4 mizani==0.9.0 mlxtend==0.22.0 more-itertools==9.0.0 moviepy==1.0.3 mpl-scatter-density==0.7 mpld3==0.5.8 mpldatacursor==0.7.1 mpmath==1.2.1 msal==1.22.0 msal-extensions==1.0.0 msgpack==1.0.4 msvc-runtime==14.34.31931 multidict==6.0.2 multipledispatch==0.6.0 munch==2.5.0 murmurhash==1.0.9 mypy==1.3.0 mypy-extensions==1.0.0 mysql-connector-python==8.0.21 nbclassic==1.0.0 nbclient==0.7.4 nbconvert==6.5.0 nbconvert_reportlab==0.2 nbdime==3.1.1 nbformat==5.7.0 nbval==0.9.6 nest-asyncio==1.5.6 netCDF4==1.6.0 networkx==3.1 nlopt==2.7.1 nltk==3.7 notebook==6.5.4 notebook_shim==0.2.3 ntlm-auth==1.5.0 numba==0.57.0 numcodecs==0.10.0 numdifftools==0.9.40 numexpr==2.8.4 numpy==1.24.2 numpydoc==1.3 oct2py==5.4.3 octave-kernel==0.34.1 openai==0.27.5 openpyxl==3.0.10 opt-einsum==3.3.0 orjson==3.7.3 osqp==0.6.2.post9 outcome==1.2.0 packaging==22.0 pandas==1.5.2 pandas-datareader==0.10.0 pandocfilters==1.5.0 panel==1.0.2 papermill==2.4.0 param==1.13.0 parambokeh==0.2.3 paramiko==2.8.0 paramnb==2.0.4 parso==0.8.3 partd==1.2.0 pathspec==0.11.0 pathy==0.10.1 patsy==0.5.3 pdfrw==0.4.post2 pep8==1.7.1 pexpect==4.8.0 pg8000==1.23.0 pickleshare==0.7.5 Pillow==9.5.0 PIMS==0.6.1 Pint==0.19.2 pkginfo==1.8.3 platformdirs==2.5.4 plotly==5.13.1 plotnine==0.12.1 pluggy==1.0.0 plumbum==1.8.2 ply==3.11 pmdarima==2.0.2 polars==0.17.11 pooch==1.7.0 portalocker==2.7.0 portpicker==1.5.0 ppci==0.5.9 preshed==3.0.8 prettytable==3.3.0 priority==2.0.0 proglog==0.1.10 prometheus-client==0.15.0 prompt-toolkit==3.0.33 protobuf==3.20.3 protoc-gen-swagger==0.1.0 psutil==5.9.5 ptpython==3.0.20 ptyprocess==0.7.0 PuLP==2.6.0 pure-eval==0.2.2 py-lru-cache==0.1.4 py2vega==0.6.1 pyaedt==0.7.0 pyaml==20.4.0 pyansys==2023.2.5 pyansys-tools-versioning==0.4.0 pyarrow==12.0.0 pyasn1==0.5.0 pyasn1-modules==0.3.0 PyAudio==0.2.11 pybars3==0.9.7 pybind11==2.10.3 pycodestyle==2.9.1 pycosat==0.6.3 pycparser==2.21 pyct==0.4.8 pydantic==1.9.1 pydeck==0.8.0 pydocstyle==6.3.0 pyepsg==0.4.0 pyerfa==2.0.0.1 pyflakes==2.5.0 pyflux==0.4.17 pygad==2.17.0 pygame==2.1.2 pygbm==0.1.0 Pygments==2.15.1 pyhdf==0.10.5 pyiges==0.3.0 PyJWT==2.4.0 pylint==2.15.4 pylint-venv==2.3.0 pyls-spyder==0.4.0 pymc==5.3.0 PyMeta3==0.5.1 pymongo==4.3.3 Pympler==1.0.1 PyNaCl==1.5.0 pynndescent==0.5.7 pyodbc==4.0.35 PyOpenGL==3.1.6 pypandoc==1.5 pyparsing==3.0.9 pypiwin32==223 pyproj==3.4.1 pyproject_hooks==1.0.0 PyQt5==5.15.6 PyQt5-Qt5==5.15.2 PyQt5-sip==12.11.0 pyqtgraph==0.13.3 PyQtWebEngine==5.15.5 PyQtWebEngine-Qt5==5.15.2 pyro-api==0.1.2 pyro-ppl==1.8.4 pyrsistent==0.18.1 pyserial==3.5 pyshp==2.3.0 PySimpleGUI==4.60.5 PySocks==1.7.1 pystache==0.5.4 pytensor==2.11.2 pytest==7.2.1 python-dateutil==2.8.2 python-dotenv==0.19.2 python-hdf4==0.10.0+dummy python-json-logger==2.0.4 python-lsp-black==1.2.1 python-lsp-jsonrpc==1.0.0 python-lsp-server==1.7.2 python-multipart==0.0.5 python-picard==0.7 python-slugify==6.1.2 python-snappy==0.6.1 pythonnet==3.0.2 PythonQwt==0.10.2 pytoolconfig==1.2.4 pytwin==0.3.0 pytz==2022.4 pytz-deprecation-shim==0.1.0.post0 pyvista==0.40.0 pyviz-comms==2.2.1 PyWavelets==1.4.1 pywin32==305 pywin32-ctypes==0.2.0 pywinpty==2.0.9 pywinusb==0.4.2 PyYAML==6.0 pyzmq==25.0.2 pyzo==4.12.7 pyzstd==0.15.4 QDarkStyle==3.1 qdldl==0.1.7 qpsolvers==3.1.0 qstylizer==0.2.2 QtAwesome==1.2.3 qtconsole==5.4.3 QtPy==2.3.1 quadprog==0.1.11 quantecon==0.5.3 quart==0.18.3 rasterio==1.2.10 readme-renderer==35.0 redis==4.3.1 regex==2022.9.13 reportlab==3.6.12 requests==2.28.1 requests-negotiate-sspi==0.5.2 requests-ntlm==1.1.0 requests-toolbelt==0.10.1 retrying==1.3.4 rfc3339-validator==0.1.4 rfc3986==1.5.0 rfc3986-validator==0.1.1 rich==12.4.4 rope==1.6.0 rpyc==5.3.1 rsa==4.9 Rtree==1.0.0 ruamel.yaml==0.17.21 ruamel.yaml.clib==0.2.6 Rx==3.1.1 scikit-fuzzy==0.4.1 scikit-image==0.20.0 scikit-learn==1.2.2 scikit-optimize==0.9.0 scilab2py==0.6.2 scipy==1.10.1 scooby==0.7.2 scramp==1.4.1 scs==3.2.3 seaborn==0.13.0.dev0 Send2Trash==1.8.0 shapely==2.0.1 simplegeneric==0.8.1 simplejson==3.17.6 simpy==4.0.1 six==1.16.0 sklearn-contrib-lightning==0.6.2.post0 slicerator==1.1.0 smart-open==5.2.1 smmap==5.0.0 snakeviz==2.1.0 sniffio==1.2.0 snowballstemmer==2.2.0 snuggs==1.4.7 sortedcontainers==2.4.0 sounddevice==0.4.4 soupsieve==2.3.2.post1 spacy==3.5.2 spacy-legacy==3.0.12 spacy-loggers==1.0.3 spatialpandas==0.4.7 Sphinx==6.1.3 sphinx-rtd-theme==1.2.0 sphinxcontrib-applehelp==1.0.2 sphinxcontrib-devhelp==1.0.2 sphinxcontrib-htmlhelp==2.0.0 sphinxcontrib-jquery==4.1 sphinxcontrib-jsmath==1.0.1 sphinxcontrib-qthelp==1.0.3 sphinxcontrib-serializinghtml==1.1.5 spyder==5.4.3 spyder-kernels==2.4.3 SQLAlchemy==1.4.47 sqlite-bro==0.12.2 sqlite-fts4==1.0.3 sqlite-utils==3.31 sqlparse==0.4.3 srsly==2.4.5 sspyrs==0.3 stack-data==0.6.1 starlette==0.26.1 statsmodels==0.14.0 streamlit==1.22.0 streamz==0.6.3 supersmoother==0.4 swifter==1.3.4 sympy==1.12 tables==3.7.0 tabulate==0.9.0 tbats==1.1.0 tblib==1.7.0 tenacity==8.1.0 termcolor==1.1.0 terminado==0.17.0 text-unidecode==1.3 textdistance==4.5.0 textwrap3==0.9.2 thinc==8.1.9 threadpoolctl==3.1.0 three-merge==0.1.1 tifffile==2022.5.4 tinycss2==1.1.1 tokenizers==0.13.3 toml==0.10.2 tomli==2.0.1 tomli_w==1.0.0 tomlkit==0.11.6 toolz==0.12.0 torch==2.0.1 torchaudio==2.0.2 torchvision==0.15.2 tornado==6.3.1 tqdm==4.64.0 traitlets==5.7.1 traittypes==0.2.1 transformers==4.29.1 trio==0.22.0 trio-asyncio==0.12.0 twine==4.0.1 twitter==1.19.2 typer==0.7.0 typing_extensions==4.4.0 tzdata==2022.7 tzlocal==4.2 uc-micro-py==1.0.1 ujson==5.3.0 umap-learn==0.5.1 uncertainties==3.1.6 uri-template==1.2.0 uritemplate==4.1.1 urllib3==1.26.10 uvicorn==0.20.0 validators==0.18.2 vega-datasets==0.9.0 virtualenv==20.19.0 ViTables==3.0.2 vtk==9.2.6 waitress==2.1.2 wasabi==0.10.1 wasmer==1.1.0 wasmer_compiler_cranelift==1.1.0 wasmer_compiler_singlepass==1.1.0 watchdog==2.2.0 wcwidth==0.2.5 webcolors==1.12 webencodings==0.5.1 websocket-client==1.4.2 Werkzeug==2.2.2 whatthepatch==1.0.2 widgetsnbextension==4.0.7 winpython==6.1.20230527 wordcloud==1.8.1 wrapt==1.14.1 wsproto==1.2.0 xarray==2023.4.2 xarray-einstats==0.5.1 xgboost==1.6.1 XlsxWriter==3.0.3 xlwings==0.24.7 xmltodict==0.13.0 xyzservices==2022.6.0 y-py==0.5.5 yapf==0.32.0 yarl==1.7.2 ypy-websocket==0.8.2 zarr==2.11.3 zict==2.2.0 zipp==3.9.0 zstandard==0.20.0

svandenb-dev commented 11 months ago

Hi @Garpurinn, thanks for your feedback. We will have a look and will keep you posted.

svandenb-dev commented 9 months ago

@Garpurinn this bug has been fixed. Please grab latest release when available. Thanks for your feedback