# RouteToNorthAtMaxX¶

ipkiss3.pcell.routing.RouteToNorthAtMaxX(**kwargs)

Routes the input_port to a line pointing North at an X coordinate which is smaller or equal to the x_position specified. This means that the output port will be at, or westward of, the x_position.

Parameters: input_port : Port object port to be routed (starting point of the Route) bend_radius : positive number radius of the bends used in the route. Default is taken from TECH.WG.BEND_RADIUS min_straight : nonnegative number minimum length of a straight section between bends. Default is taken from TECH.WG.MIN_STRAIGHT start_straight : nonnegative number minimum length of the first straight section. Default is the same as min_straight end_straight : nonnegative number minimum length of the last straight section. Default is the same as min_straight rounding algorithm : ShapeModifier object algorithm which produces the bend shape given the coordinates of the waypoints. default is a circular bend x_position : number x-coordinate of the output port RouteToAngle or RouteToLine object

Examples

from technologies import silicon_photonics
import ipkiss3.all as i3
from ipkiss3.pcell.routing import RouteToNorthAtMaxX

input_port = i3.OpticalPort(name="in", position=(0.0, 0.0), angle_deg=45.0)

# create the route object
route = RouteToNorthAtMaxX(input_port=input_port,
start_straight=10.0,
end_straight=20.0,
x_position=0.0)

# a route is a Shape, so we can use it to draw a waveguide
wg = i3.RoundedWaveguide()
layout = wg.Layout(shape=route)
layout.visualize()

from technologies import silicon_photonics
import ipkiss3.all as i3
from ipkiss3.pcell.routing import RouteToNorthAtMaxX

input_port = i3.OpticalPort(name="in", position=(0.0, 0.0), angle_deg=45.0)

# create the route object
route = RouteToNorthAtMaxX(input_port=input_port,
start_straight=10.0,
end_straight=20.0,
x_position=40.0)

# a route is a Shape, so we can use it to draw a waveguide
wg = i3.RoundedWaveguide()
layout = wg.Layout(shape=route)
layout.visualize()