Index: src/plugins/rt_topo/laa1.c =================================================================== --- src/plugins/rt_topo/laa1.c (revision 1450) +++ src/plugins/rt_topo/laa1.c (revision 1451) @@ -125,7 +125,7 @@ laa_mst_add(ctx, &mst, obj); /* make sure steiner points are not too close: leave room for 8 wires */ - wth = rt_topo_cfg.wire_thick*8 + rt_topo_cfg.wire_clr*4; + wth = (rt_topo_cfg.wire_thick*8 + rt_topo_cfg.wire_clr*4) * rt_topo_cfg.junction_penalty; mst.pt_too_close2 = wth*wth; /* calculate the minimal steiner tree */ Index: src/plugins/rt_topo/rt_topo.c =================================================================== --- src/plugins/rt_topo/rt_topo.c (revision 1450) +++ src/plugins/rt_topo/rt_topo.c (revision 1451) @@ -45,7 +45,9 @@ RTRND_CONF_DOUBLE("beta", 50, 0, 100, "via vs. wire length preference; high value = short wires, low value = less vias", &rt_topo_cfg.beta) RTRND_CONF_BOOLEAN("mid_virt", 0, "split long triangulation edges in half by inserting 0 sized virtual points; makes more routes possible but also makes tracks longer with unnecessary curves and detours", &rt_topo_cfg.beta) RTRND_CONF_DOUBLE("max_hop_mult", 1, 0.1, 10000, "when to give up the search for a route on a layer; higher value means give up later", &rt_topo_cfg.max_hop_mult) + RTRND_CONF_DOUBLE("junction_penalty", 1, 0.25, 1000, "higher value results in less junctions (Stenier points)", &rt_topo_cfg.junction_penalty) + /* RTRND_CONF_BOOLEAN("octilinear", 0, "draw 90 and 45 degree lines", &rt_topo_cfg.octilin)*/ RTRND_CONF_TERMINATE }; @@ -56,6 +58,8 @@ RTRND_CONF_COORD("via_dia", 1.2, 0.01, 10, "via copper ring outer diameter", &rt_topo_cfg.via_dia) RTRND_CONF_COORD("via_clr", 0.20, 0.01, 10, "clearance around via copper", &rt_topo_cfg.via_clr) RTRND_CONF_DOUBLE("beta", 50, 0, 100, "via vs. wire length preference; high value = short wires, low value = less vias", &rt_topo_cfg.beta) + RTRND_CONF_DOUBLE("junction_penalty", 1, 0.25, 1000, "higher value results in less junctions (Stenier points)", &rt_topo_cfg.junction_penalty) + /* RTRND_CONF_BOOLEAN("octilinear", 0, "draw 90 and 45 degree lines", &rt_topo_cfg.octilin)*/ RTRND_CONF_TERMINATE }; Index: src/plugins/rt_topo/rt_topo.h =================================================================== --- src/plugins/rt_topo/rt_topo.h (revision 1450) +++ src/plugins/rt_topo/rt_topo.h (revision 1451) @@ -18,7 +18,7 @@ /* configured */ double wire_thick, wire_clr, via_dia, via_clr, beta; int octilin, algo, mid_virt; - double max_hop_mult; + double max_hop_mult, junction_penalty; /* calculated */ double alpha, alpha2;