Exact engine defaults to --grid-resolution 2

Resolution 2 reaches 0.5 mm pitch pins and cut unconnected items on both
rc4 boards; since lazy via checks it costs about 2x in time, not 4x.
The grid engine keeps 1, the old grid exactly.
This commit is contained in:
2026-09-27 12:00:19 -06:00
parent 19b17378fa
commit c49c79604d
+6 -5
View File
@@ -113,10 +113,10 @@ def build_parser() -> argparse.ArgumentParser:
parser.add_argument( parser.add_argument(
"--grid-resolution", "--grid-resolution",
type=int, type=int,
default=1, default=None,
metavar="K", metavar="K",
help="grid and exact engines: cells K times finer than trace + clearance " help="grid and exact engines: cells K times finer than trace + clearance; "
"(default 1); 2 or more reaches fine-pitch pins, at some cost in time", "default 2 for exact (reaches 0.5 mm pitch pins), 1 for grid",
) )
parser.add_argument( parser.add_argument(
"--heuristic-weight", "--heuristic-weight",
@@ -182,7 +182,7 @@ def main(argv: list[str] | None = None) -> int:
rip_up=rip_up, rip_up=rip_up,
max_passes=max_passes, max_passes=max_passes,
edge_clearance_mm=args.edge_clearance, edge_clearance_mm=args.edge_clearance,
resolution=args.grid_resolution, resolution=2 if args.grid_resolution is None else args.grid_resolution,
heuristic_weight=args.heuristic_weight, heuristic_weight=args.heuristic_weight,
) )
elif args.engine == "room": elif args.engine == "room":
@@ -193,7 +193,8 @@ def main(argv: list[str] | None = None) -> int:
else: else:
result = build_routing_result( result = build_routing_result(
dsn, layers=layers, rip_up=rip_up, max_passes=max_passes, dsn, layers=layers, rip_up=rip_up, max_passes=max_passes,
edge_clearance_mm=args.edge_clearance, resolution=args.grid_resolution, edge_clearance_mm=args.edge_clearance,
resolution=1 if args.grid_resolution is None else args.grid_resolution,
) )
ses_text = write_ses(dsn, result) ses_text = write_ses(dsn, result)