# Layout changes 3.2.0¶

There are two small layout bugfixes in IPKISS 3.2, which can have an impact on your existing layouts. You can check out the two cases below:

## ShapeArc¶

In ShapeArc, the angle_step is adjusted a bit so the full arc is covered. However, if end_angle < start_angle, and the angle difference is not a multiple of angle_step, the angle_step was not adjusted properly, and this may cause the arc not to stop exactly at end_angle.

The following code would yield the wrong result in ipkiss 3.1.3, but this has been fixed in ipkiss 3.2.0:

import ipkiss3.all as i3

i3.LayoutCell().Layout(
elements=[
i3.SRef(
reference=i3.Waveguide().Layout(
end_angle=0, end_face_angle=90, angle_step=5)
).cell
),
i3.SRef(
reference=i3.Waveguide().Layout(shape=[(10, 0), (10, 5)]).cell
)
]
).visualize()


## route_to_parallel_line¶

The function route_to_parallel_line is used to route an S-shape bend between two parallel lines. The parameter max_s_bend_angle is used to define the maximum angle of the S-bend. It may be 90 degrees, in which case manhattan routing is performed.

In IPKISS 3.1.3 there was a small bug: if the maximum s-bend angle (max_s_bend_angle) could be used to route between two parallel lines, instead a slightly smaller value was used. The bugfix results in a slightly different calculation of S-bend routes.

The following code would yield slightly wrong result in ipkiss 3.1.3, but this has been fixed in ipkiss 3.2.0:

from technologies import silicon_photonics
from ipkiss3 import all as i3

wg = i3.Waveguide()
wg_lay = wg.Layout()

from picazzo3.container.fanout_ports import FanoutPorts

my_wg_fanout = FanoutPorts(contents=wg,
port_labels=["in"]
)

lay = my_wg_fanout.Layout(flatten_contents=False,
area_layer_on=False,          # if True, adds area layer on the bundle
output_direction=i3.WEST,
spacing=20.0,                # spacing between outputs
reference_coordinate=-12.5,  # y-coordinate (or x for NORTH and SOUTH) of first waveguide
target_coordinate=20.0,      # x-coordinate (or y for NORTH and SOUTH) of output port
max_s_bend_angle=90.0,       # maximum angle of S-bend