Rules#
- class pyedb.workflows.drc.drc.Rules(/, **data: Any)#
Bases:
pydantic.BaseModelCentralised, serialisable container for all design-rule categories supported by the PyEDB DRC engine.
The class is a thin
pydanticmodel that provides:JSON/YAML round-trip via
parse_file,parse_obj,model_dump,model_dump_json.Type-safe, API to incrementally build rule decks without manipulating raw dictionaries.
Examples
>>> from pyedb.workflows.drc.drc import Rules >>> >>> rules = ( ... Rules() ... .add_min_line_width("pwr", "15 mil") ... .add_min_clearance("clk2data", "4 mil", "CLK*", "DATA*") ... .add_min_annular_ring("via5", "5 mil") ... .add_diff_pair_length_match("usb", tolerance="0.1 mm", pairs=[("USB_P", "USB_N")]) ... .add_copper_balance("top_bal", max_percent=10, layers=["TOP"]) ... ) >>> rules.model_dump_json(indent=2) >>> rules.write_json("my_rules.json")
- Attributes:
- min_line_width
List[MinLineWidth] Minimum acceptable trace width per layer or globally.
- min_clearance
List[MinClearance] Spacing requirements between nets (wild-cards allowed).
- min_annular_ring
List[MinAnnularRing] Minimum annular ring for drilled holes.
- diff_pair_length_match
List[DiffPairLengthMatch] Length-matching constraints for differential pairs.
- back_drill_stub_length
List[BackDrillStubLength] Maximum allowed back-drill stub length.
- copper_balance
List[CopperBalance] Copper-density balance limits per layer or zone.
- min_line_width
Overview#
Alias for |
Alias for |
|
Append a minimum-line-width rule. |
|
Append a minimum-clearance rule between two nets (wild-cards allowed). |
|
Append a minimum-annular-ring rule for drilled holes. |
|
Append a length-matching rule for differential pairs. |
|
Append a maximum-allowed back-drill stub-length rule. |
|
Append a copper-density balance rule. |
Import detail#
from pyedb.workflows.drc.drc import Rules
Attribute detail#
- Rules.min_line_width: List[MinLineWidth] = []#
- Rules.min_clearance: List[MinClearance] = []#
- Rules.min_annular_ring: List[MinAnnularRing] = []#
- Rules.diff_pair_length_match: List[DiffPairLengthMatch] = []#
- Rules.back_drill_stub_length: List[BackDrillStubLength] = []#
- Rules.copper_balance: List[CopperBalance] = []#
Method detail#
- classmethod Rules.from_dict(data: dict[str, Any]) Rules#
Alias for
model_validate.- Parameters:
- data
Dictionary produced by
json.load,yaml.safe_load, etc.
- Returns:
RulesValidated instance ready for
Drc.check().
- Rules.add_min_line_width(name: str, value: str, layers: list[str] | None = None) Rules#
Append a minimum-line-width rule.
- Rules.add_min_clearance(name: str, value: str, net1: str, net2: str) Rules#
Append a minimum-clearance rule between two nets (wild-cards allowed).
- Rules.add_min_annular_ring(name: str, value: str) Rules#
Append a minimum-annular-ring rule for drilled holes.
- Rules.add_diff_pair_length_match(name: str, tolerance: str, pairs: list[tuple[str, str]]) Rules#
Append a length-matching rule for differential pairs.
- Rules.add_back_drill_stub_length(name: str, value: str) Rules#
Append a maximum-allowed back-drill stub-length rule.