ansys / ansys/pyedb-core

Improve conformal polygon generation for clipping

Open
#183 1 comment 0 reactions 0 assignees View on GitHub
enhancement
Dominant language
Python
Stars
7
Forks
4
PR merge metrics
No merged PRs in 30d

Description

Hi,
as explained during a meeting, generating a conformal polygon based on net selection with EDB is very slow. Can go up to 30mn on very large board. During discussion if I understand correctly, this might come from the LayoutInstance manager which keeps refreshing primitives along the process. The idea would be to introduce a tag to speed this up and avoid refreshing during this process since geometries are not modified.

with launch_session(r"C:\Program Files\AnsysEM\v231\Win64", 50051):
edb = Database.open(r"C:\Data\E_Group\clean_edb_examples\Galileo_edb.aedb", False)
layout = edb.circuit_cells[0].layout
edb_components = [
cmp for cmp in edb.circuit_cells[0].layout.groups if cmp.name in ["U2A5", "U1B5"]
]
signal_nets = ["M_DQ<0>", "M_DQ<1>", "M_DQ<2>", "M_DQ<3>", "M_DQ<4>", "M_DQ<5>", "M_DQ<6>", "M_DQ<7>"]
reference_net = ["GND"]
included_nets = [net for net in layout.nets if net.name in signal_nets]
clipped_net = [net for net in layout.nets if net.name in reference_net]
expanded_extent = layout.expanded_extent(
nets=included_nets,
extent=ExtentType.CONFORMING,
expansion_factor=0.01,
expansion_unitless=False,
use_round_corner=True,
num_increments=1,
)

Contributor guide

Open the contributing guide

Research direction

Start at the layout.expanded_extent entry point in the example and trace the LayoutInstance manager behavior during conformal polygon generation. Confirm the large-board case, then verify that geometry output is unchanged while unnecessary primitive refreshes are avoided and runtime improves.

Written by the indexing model from the issue text.

Assessment

Tech stack
python
Domain
backend, performance
Issue type
Bug
Difficulty
4/5
Estimated time
3-5 days
Activity status
Stale
Clarity
Needs clarification
Newbie friendliness
32/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.