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()
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()
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()