EDB Cutout#
Overview#
The Cutout class creates a clipped (cut-out) EDB cell from an existing layout.
All new features, performance improvements, and bug fixes are delivered only
through the gRPC back-end.
The legacy .NET back-end is still present for compatibility; it is deprecated
and scheduled for removal in a future release.
Quickstart#
from pyedb.workflows.utilities.cutout import Cutout
cut = Cutout(edb) # gRPC is selected automatically when edb.grpc == True
cut.signals = ["DDR4_DQ0", "DDR4_DQ1"]
cut.references = ["GND"]
cut.expansion_size = 0.001
polygon = cut.run()
Convenience entry point#
Existing scripts continue to work without modification:
edb.cutout(
signal_nets=["DDR4_DQ0", "DDR4_DQ1"],
reference_nets=["GND"],
expansion_size=0.001,
)
The edb.cutout method internally instantiates the Cutout class (gRPC-first)
and returns the same clipped cell as in previous releases.
Complete parameter reference#
The following table lists every public parameter accepted by both the class
constructor and the convenience method edb.cutout.
Defaults are shown in bold; physical values are in metres unless a
*_units parameter is supplied.
Name |
Type |
Purpose |
|---|---|---|
|
|
Net names to retain in the cut-out (required). |
|
|
Net names used as reference (required). |
|
|
Additional margin around computed extent. 0.002 |
|
|
Extent algorithm: “ConvexHull”, “Conforming”, “Bounding”. |
|
|
Apply rounded corners after expansion. False |
|
|
Closed polygon |
|
|
Length unit for custom_extent. “mm” |
|
|
Include voids ≥ 5 % of extent area while Building clip polygon. False |
|
|
Load the resulting .AEDB into the active |
|
|
Full path where the clipped .AEDB is saved. “” (in-place) |
|
|
Use PyAEDT-based clipping instead of native EDB API. True |
|
|
Auto-enlarge expansion_size until every port has a reference. False |
|
|
If > 0, compute initial expansion_size from trace-width/dielectric. 0 |
|
|
Max attempts for smart_cutout before giving up. 10 |
|
|
Worker threads for polygon clipping and padstack cleaning. 1 |
|
|
Delete RLC components with only one pin after cut-out. False |
|
|
Keep every pin of components that carry a Spice/S-parameter model. False |
|
|
Grow extent until all reference terminals are inside the cut-out. False |
|
|
Ensure complete pin-groups are included (requires check_terminals). False |
|
|
Use fast center-point padstack check instead of bounding-box. True |
|
|
Retain clipped traces as Path objects (3D Layout only). False |
|
|
Defeature tolerance for conformal extent. 0 |
|
|
Keep padstacks that only partially overlap the clip polygon. False |
|
|
Retain voids that intersect the clip polygon. True |
Extent strategies#
The cut-out boundary can be generated with three built-in algorithms:
ConvexHull(default)–convex hull of selected objects plus expansionConforming–tight follow of geometry contoursBounding–simple bounding box
Additional options control corner rounding, void inclusion, multi-threading, smart expansion, and user-supplied boundary polygons.
API reference#
- pyedb.workflows.utilities.cutout#
alias of <module ‘pyedb.workflows.utilities.cutout’ from ‘/home/runner/work/pyedb/pyedb/.venv/lib/python3.10/site-packages/pyedb/workflows/utilities/cutout.py’>
Legacy notice#
The DotNetCutout class is exposed solely for backward compatibility.
New code must use the gRPC-based Cutout class—or the edb.cutout convenience
method—to ensure future support.