From 38910f574f715c181bb2b89d47e646e98451e1cc Mon Sep 17 00:00:00 2001 From: Sebastien Morais Date: Fri, 22 Dec 2023 17:37:03 +0100 Subject: [PATCH] MAINT: integrate pyaedt PR 4002 changes --- doc/source/_static/parametrized_design.png | Bin 0 -> 32957 bytes .../14_edb_create_parametrized_design.py | 71 +++++++ src/pyedb/legacy/edb.py | 196 ++++++++++++++++++ tests/legacy/system/test_edb_nets.py | 62 ++++++ 4 files changed, 329 insertions(+) create mode 100644 doc/source/_static/parametrized_design.png create mode 100644 examples/legacy/pyaedt_integration/14_edb_create_parametrized_design.py diff --git a/doc/source/_static/parametrized_design.png b/doc/source/_static/parametrized_design.png new file mode 100644 index 0000000000000000000000000000000000000000..80bcb84b1afabcdeff0defc0a5c07a12a6c31382 GIT binary patch literal 32957 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