Routing

Routing allows you to create a path between two points. IPKISS implements a few routing algorithms. They’re mainly used to create connections/links between two components. Routes in IPKISS are regular shapes, this means that they can be easily used to create waveguides or other traces.

Routing types

The main types of routes are

RouteToLine

Routes an start_port to a line.

RouteToParallelLine

Routes the start_port to a parallel line through a given point This will be done through an S-bend.

RouteToAngle

A Route that directs the start_port towards a given angle

RouteManhattan

Routes the start_port to the end_port using a manhattan pattern (straight sections along EAST, WEST, NORTH, SOUTH directions).

RouteManhattanBasic

Routes the start_port to the end_port using a manhattan pattern (straight sections along EAST, WEST, NORTH, SOUTH directions).

RouteSBend

Routes the input_port to the output_port using an s-bend.

RouteArcBend

Routes the input_port to the output_port using a single arc bend.

RouteUBend

Routes the input_port to the output_port using a u-bend.

RouteToLine

RouteToNorthAtX

Routes the start_port to a line pointing North at a given X coordinate

RouteToSouthAtX

Routes the start_port to a line pointing South at a given X coordinate

RouteToVerticalAtX

Routes the start_port to a line pointing North or South (whichever is closest) at a given X coordinate

RouteToHorizontalAtY

Routes the start_port to a line pointing East or West (whichever is closest) at a given Y coordinate

RouteToWestAtY

Routes the start_port to a line pointing West at a given Y coordinate

RouteToEastAtY

Routes the start_port to a line pointing East at a given Y coordinate

RouteToAngle

RouteToHorizontal

A Route that directs the start_port towards a horizontal direction (East or West, whichever is closer)

RouteToVertical

A Route that directs the start_port towards a vertical direction (North or South, whichever is closer)

RouteToNorth

A Route that directs the start_port towards the North

RouteToSouth

A Route that directs the start_port towards the South

RouteToEast

A Route that directs the start_port towards the East

RouteToWest

A Route that directs the start_port towards the West

RouteToManhattan

A Route that directs the start_port towards the nearest manhattan direction (East or West, North or South)

Helper Functions

In addition to the classes described above, IPKISS provides a range of helper functions that combine a few of the classes above to implement more specific behavior. All these functions will return a Route object but the type of the Route will depend on the arguments you provided.

RouteToEastAtMaxY

Routes the start_port to a line pointing East at a Y coordinate which is larger or equal to the y_position specified.

RouteToEastAtMinY

Routes the start_port to a line pointing East at a Y coordinate which is larger or equal to the y_position specified.

RouteToNorthAtMaxX

Routes the start_port to a line pointing North at an X coordinate which is smaller or equal to the x_position specified.

RouteToNorthAtMinX

Routes the start_port to a line pointing North at an X coordinate which is larger or equal to the x_position specified.

RouteToSouthAtMaxX

Routes the start_port to a line pointing South at an X coordinate which is smaller or equal to the x_position specified.

RouteToSouthAtMinX

Routes the start_port to a line pointing South at an X coordinate which is larger or equal to the x_position specified.

RouteToWestAtMaxY

Routes the start_port to a line pointing West at a Y coordinate which is smaller or equal to the y_position specified.

RouteToWestAtMinY

Routes the start_port to a line pointing West at a Y coordinate which is larger or equal to the y_position specified.

RouteToManhattanRelativeToPosition

Route a port to a manhattan direction at a coordinate value relative to the given position (coordinate is x for EAST/WEST direction, and y for NORTH/SOUTH) relation is either '>' or '<'

route_to_line

Calculate a route that ends on a given line.

route_to_parallel_line

Calculate a route to a line that is parallel with input angle.