ipkiss3.pcell.routing.RouteToLine

class ipkiss3.pcell.routing.RouteToLine(points=[], closed=None, **kwargs)

Routes an input_port to a line.

Parameters:

angle_out: float, optional

The angle of the line route to

angle_step: float and number > 0, optional

angle step for rounding

bend_radius: float and number > 0, optional

bend radius for the auto-generated bends

end_face_angle: optional

Use this to overrule the ‘dangling’ angle at the end of an open shape

line_point: Coord2, optional

A point on the line you want to route to

max_s_bend_angle: float, optional

port_angle_decision: float, optional

input_port: Port, optional

The port to route from

angle_in: float, optional

The angle of start section of the route

closed: optional

domain: __Domain__, optional

The domain ( e.g. OpticalDomain, ElectricalDomain) of the route

points: optional

points of this shape

end_straight: float and Real, number and number >= 0, optional

The length of the straight end section of the route

min_straight: float and Real, number and number >= 0, optional

The minimum length of any straight sections in the route

rounding_algorithm: optional

rounding algorithm used to generate the bends. Can be circular, spline, …

start_straight: float and Real, number and number >= 0, optional

The length of the straight start section of the route

start_face_angle: optional

Use this to overrule the ‘dangling’ angle at the start of an open shape

size_info: SizeInfo, locked

get the size information on this Shape

start_pos: Coord2, locked

end_pos: Coord2, locked

The coordinate where the route ends

See also

RouteToAngle

Examples

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

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

# create the route object
route = RouteToLine(input_port=input_port,
                    line_point=(0.0, 0.0),
                    angle_out=45.0,
                    start_straight=10.0,
                    end_straight=10.0)

# a route is a Shape, so we can use it to draw a waveguide
wg = i3.RoundedWaveguide(trace_template=i3.TECH.PCELLS.WG.DEFAULT)
layout = wg.Layout(shape=route)
layout.visualize()
../../../_images/ipkiss3-pcell-routing-RouteToLine-1.png