From c49c79604d9053ed48f10740b0ebc0710c193725 Mon Sep 17 00:00:00 2001 From: Ryan Malloy Date: Sun, 27 Sep 2026 12:00:19 -0600 Subject: [PATCH] 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. --- src/freeroute/cli.py | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/src/freeroute/cli.py b/src/freeroute/cli.py index bbfdc80..db2f5fd 100644 --- a/src/freeroute/cli.py +++ b/src/freeroute/cli.py @@ -113,10 +113,10 @@ def build_parser() -> argparse.ArgumentParser: parser.add_argument( "--grid-resolution", type=int, - default=1, + default=None, metavar="K", - 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", + help="grid and exact engines: cells K times finer than trace + clearance; " + "default 2 for exact (reaches 0.5 mm pitch pins), 1 for grid", ) parser.add_argument( "--heuristic-weight", @@ -182,7 +182,7 @@ def main(argv: list[str] | None = None) -> int: rip_up=rip_up, max_passes=max_passes, 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, ) elif args.engine == "room": @@ -193,7 +193,8 @@ def main(argv: list[str] | None = None) -> int: else: result = build_routing_result( 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)