Improve conformal polygon generation for clipping
- 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
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