get_layer_elements

ipkiss3.pcell.layout.operations.get_layer_elements(layout, layers=[])

Returns all the elements in a layout on a layer that’s in a given list of layers.

Similar to flat_copy but you can specify the layers for which you want the elements to be returned.

Parameters:

layout: Layout data or LayoutView of a PCell or Elementlist

The Layout data or LayoutView of a PCell or ElementList.

layers: list[Layer]

List of layers that need to be inspected. If it is empty (default) then all layers are inspected.

Returns:

elements: ElementList()

The elements in a layout on a layer that’s in a given list of layers.

Examples

import ipkiss3.all as i3

class SharpShape(i3.PCell):
    class Layout(i3.LayoutView):
        def _generate_elements(self, elems):
            elems += i3.Rectangle(i3.Layer(0), box_size=(10, 40)).transform(i3.Rotation(rotation=150))
            elems += i3.Rectangle(i3.Layer(1), box_size=(10, 40)).transform(i3.Rotation(rotation=90))
            elems += i3.Rectangle(i3.Layer(2), box_size=(10, 40)).transform(i3.Rotation(rotation=30))
            return elems

cell = SharpShape()
cell_lay = cell.Layout()
cell_lay.visualize()

elements = i3.get_layer_elements(cell_lay, layers=[i3.Layer(0), i3.Layer(2)])

i3.LayoutCell().Layout(elements=elements).visualize()
../../../_images/ipkiss3-pcell-layout-operations-get_layer_elements-1_00.png
../../../_images/ipkiss3-pcell-layout-operations-get_layer_elements-1_01.png