gdsfactory.routing.route_ports_to_side#
- gdsfactory.routing.route_ports_to_side(component: Component, ports: list[Port] | Component | list[Port] | None = None, side: Literal['north', 'east', 'south', 'west'] = 'north', x: float | None = None, y: float | None = None, **kwargs) tuple[list[ManhattanRoute], list[Port]] [source]#
Routes ports to a given side.
- Parameters:
component – component to route.
ports – list/dict/Component/ComponentReference to route to a side.
side – ‘north’, ‘south’, ‘east’ or ‘west’.
x – position to route ports for east/west. None, uses most east/west value.
y – position to route ports for south/north. None, uses most north/south value.
kwargs – additional arguments to pass to the routing function.
- Keyword Arguments:
radius – in um.
separation – in um.
routing. (extend_left, extend_right for south/north)
routing.
- Returns:
with routing elements. List of ports: of the new ports.
- Return type:
List of routes
import gdsfactory as gf c = gf.Component('sample_route_sides') dummy = gf.components.nxn(north=2, south=2, west=2, east=2) sides = ["north", "south", "east", "west"] d = 100 positions = [(0, 0), (d, 0), (d, d), (0, d)] for pos, side in zip(positions, sides): dummy_ref = dummy.ref(position=pos) c.add(dummy_ref) routes, ports = gf.routing.route_ports_to_side(dummy_ref, side, layer=(1, 0)) for route in routes: c.add(route.references) for i, p in enumerate(ports): c.add_port(name=f"{side[0]}{i}", port=p) c.plot()