Source code for gdsfactory.components.litho_ruler

from __future__ import annotations

import gdsfactory as gf
from gdsfactory.typings import LayerSpec


[docs] @gf.cell def litho_ruler( height: float = 2, width: float = 0.5, spacing: float = 2.0, scale: tuple[float, ...] = (3, 1, 1, 1, 1, 2, 1, 1, 1, 1), num_marks: int = 21, layer: LayerSpec = "WG", ) -> gf.Component: """Ruler structure for lithographic measurement. Includes marks of varying scales to allow for easy reading by eye. based on phidl.geometry Args: height: Height of the ruling marks in um. width: Width of the ruling marks in um. spacing: Center-to-center spacing of the ruling marks in um. scale: Height scale pattern of marks. num_marks: Total number of marks to generate. layer: Specific layer to put the ruler geometry on. """ D = gf.Component() for n in range(num_marks): h = height * scale[n % len(scale)] D << gf.components.rectangle(size=(width, h), layer=layer) D.distribute(direction="x", spacing=spacing, separation=False, edge="x") D.align(alignment="ymin") D.flatten() return D
if __name__ == "__main__": c = litho_ruler() c.show(show_ports=True)