RouteUBend

class ipkiss3.all.RouteUBend

Routes the input_port to the output_port using a u-bend.

A clean UBend is produced when both ports are pointing in the same direction If they are not then an extra correction route is appended to the output and input 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.

points: optional

points of this shape

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

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

route = i3.RouteUBend(
    start_port=i3.OpticalPort(name="in", position=(0.0, 0.0), angle=0.0),
    end_port=i3.OpticalPort(name="out", position=(0.0, 30.0), angle=0.0),
    bend_radius=5.0,
    start_straight=0.0,
    end_straight=0.0,
    min_spacing=5.0,
)
waveguide_layout = i3.RoundedWaveguide().Layout(shape=route, bend_radius=5.0)
waveguide_layout.visualize()
../../../../_images/ipkiss3-all-RouteUBend-1.png
import ipkiss3.all as i3

route = i3.RouteUBend(
    start_port=i3.OpticalPort(name="in", position=(0.0, 0.0), angle=0.0),
    end_port=i3.OpticalPort(name="out", position=(0.0, 30.0), angle=0.0),
    bend_radius=5.0,
    start_straight=6.0,
    end_straight=0.0,
    min_spacing=5.0,
)
waveguide_layout = i3.RoundedWaveguide().Layout(shape=route, bend_radius=5.0)
waveguide_layout.visualize()
../../../../_images/ipkiss3-all-RouteUBend-2.png
import ipkiss3.all as i3

route = i3.RouteUBend(
    start_port=i3.OpticalPort(name="in", position=(0.0, 0.0), angle=50.0),
    end_port=i3.OpticalPort(name="out", position=(0.0, 30.0), angle=50.0),
    bend_radius=5.0,
    start_straight=0.0,
    end_straight=0.0,
    min_spacing=5.0,
)
waveguide_layout = i3.RoundedWaveguide().Layout(shape=route, bend_radius=5.0)
waveguide_layout.visualize()
../../../../_images/ipkiss3-all-RouteUBend-3.png
import ipkiss3.all as i3

route = i3.RouteUBend(
    start_port=i3.OpticalPort(name="in", position=(0.0, 0.0), angle=0.0),
    end_port=i3.OpticalPort(name="out", position=(0.0, 5.0), angle=0.0),
    bend_radius=5.0,
    start_straight=0.0,
    end_straight=0.0,
    min_spacing=5.0,
)

waveguide_layout = i3.RoundedWaveguide().Layout(shape=route, bend_radius=5.0)
waveguide_layout.visualize()
../../../../_images/ipkiss3-all-RouteUBend-4.png
import ipkiss3.all as i3

route = i3.RouteUBend(
    start_port=i3.OpticalPort(name="in", position=(0.0, 0.0), angle=10.0),
    end_port=i3.OpticalPort(name="out", position=(10.0, 30.0), angle=10.0),
    bend_radius=5.0,
    start_straight=0.0,
    end_straight=0.0,
    min_spacing=5.0,
)
waveguide_layout = i3.RoundedWaveguide().Layout(shape=route, bend_radius=5.0)
waveguide_layout.visualize()
../../../../_images/ipkiss3-all-RouteUBend-5.png
import ipkiss3.all as i3

route = i3.RouteUBend(
    start_port=i3.OpticalPort(name="in", position=(0.0, 0.0), angle=10.0),
    end_port=i3.OpticalPort(name="out", position=(10.0, 10.0), angle=10.0),
    bend_radius=5.0,
    start_straight=0.0,
    end_straight=0.0,
    min_spacing=5.0,
)
waveguide_layout = i3.RoundedWaveguide().Layout(shape=route, bend_radius=5.0)
waveguide_layout.visualize()
../../../../_images/ipkiss3-all-RouteUBend-6.png
import ipkiss3.all as i3

route = i3.RouteUBend(
    start_port=i3.OpticalPort(name="in", position=(0.0, 0.0), angle=170.0),
    end_port=i3.OpticalPort(name="out", position=(0.0, 5.0), angle=190.0),
    bend_radius=5.0,
    start_straight=0.0,
    end_straight=0.0,
    min_spacing=4.0,
)
waveguide_layout = i3.RoundedWaveguide().Layout(shape=route, bend_radius=5.0)
waveguide_layout.visualize()
../../../../_images/ipkiss3-all-RouteUBend-7.png