RouteSBend

class ipkiss3.all.RouteSBend

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

A clean SBend is produced when both ports are pointing in opposite directions (0-180 degrees). If they are not then an extra correction route is appended to the input and output port.

Parameters:
start_port: Port, required

The port to route from

end_port: Port, required

The port to route to

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

minimal spacing between parallel sections of the route

domain: __Domain__, optional

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

angle_out: float, optional

The angle of the end section of the route

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_pos: Coord2, locked
start_pos: Coord2, locked
size_info: SizeInfo, locked

get the size information on this Shape

Examples

import ipkiss3.all as i3

input_port = i3.OpticalPort(name="in", position=(0.0, 0.0))
output_port = i3.OpticalPort(name="out", position=(25.0, 5.0), angle_deg=180.0)

route = i3.RouteSBend(input_port=input_port, output_port=output_port, bend_radius=8.0, end_straight=8.0)

waveguide_layout = i3.RoundedWaveguide().Layout(shape=route)
waveguide_layout.visualize(annotate=True)
../../../../_images/ipkiss3-all-RouteSBend-1.png