RouteToManhattan

class ipkiss3.all.RouteToManhattan

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

Parameters:
start_port: Port, required

The port to route from

domain: __Domain__, optional

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

angle_out: float, optional

The angle to route to

angle_in: float, optional

The angle of start section of the route

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

angle_step: float and number > 0, optional

Angle step for rounding.

rounding_algorithm: optional, *None allowed*

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

bend_radius: float and number > 0, optional

Bend radius for the auto-generated bends.

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

The length of the straight start section of the route

closed: optional
end_face_angle: ( float ), optional, *None allowed*

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

start_face_angle: ( float ), optional, *None allowed*

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

points: optional

points of this shape

Other Parameters:
end_port: locked
end_pos: Coord2, locked

The coordinate where the route ends

start_pos: Coord2, locked
size_info: SizeInfo, locked

get the size information on this Shape

Examples

import si_fab.all as pdk  # noqa: F401
import ipkiss3.all as i3

start_port = i3.OpticalPort(name="in", position=(0.0, 0.0), angle_deg=20.0)

# create the route object
route = i3.RouteToManhattan(start_port=start_port, start_straight=10.0, end_straight=20.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-all-RouteToManhattan-1.png
import si_fab.all as pdk  # noqa: F401
import ipkiss3.all as i3

start_port = i3.OpticalPort(name="in", position=(0.0, 0.0), angle_deg=100.0)

# create the route object
route = i3.RouteToManhattan(start_port=start_port, start_straight=10.0, end_straight=20.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-all-RouteToManhattan-2.png
import si_fab.all as pdk  # noqa: F401
import ipkiss3.all as i3

start_port = i3.OpticalPort(name="in", position=(0.0, 0.0), angle_deg=200.0)

# create the route object
route = i3.RouteToManhattan(start_port=start_port, start_straight=10.0, end_straight=20.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-all-RouteToManhattan-3.png