32 lines
993 B
Python
32 lines
993 B
Python
from inire import NetSpec, Port, RoutingOptions, RoutingProblem, SearchOptions, route
|
|
from inire.utils.visualization import plot_routing_results
|
|
|
|
|
|
def main() -> None:
|
|
print("Running Example 01: Simple Route...")
|
|
|
|
bounds = (0, 0, 100, 100)
|
|
netlist = {
|
|
"net1": (Port(10, 50, 0), Port(90, 50, 0)),
|
|
}
|
|
problem = RoutingProblem(
|
|
bounds=bounds,
|
|
nets=(NetSpec("net1", *netlist["net1"], width=2.0),),
|
|
)
|
|
options = RoutingOptions(search=SearchOptions(bend_radii=(10.0,)))
|
|
|
|
run = route(problem, options=options)
|
|
result = run.results_by_net["net1"]
|
|
if result.is_valid:
|
|
print("Success! Route found.")
|
|
print(f"Path collisions: {result.collisions}")
|
|
else:
|
|
print("Failed to find route.")
|
|
|
|
fig, _ax = plot_routing_results(run.results_by_net, [], bounds, netlist=netlist)
|
|
fig.savefig("examples/01_simple_route.png")
|
|
print("Saved plot to examples/01_simple_route.png")
|
|
|
|
|
|
if __name__ == "__main__":
|
|
main()
|