Source code for gdsfactory.components.ramp

from __future__ import annotations

import gdsfactory as gf
from gdsfactory.component import Component
from gdsfactory.typings import LayerSpec


[docs] @gf.cell def ramp( length: float = 10.0, width1: float = 5.0, width2: float | None = 8.0, layer: LayerSpec = "WG", ) -> Component: """Return a ramp component. Based on phidl. Args: length: Length of the ramp section. width1: Width of the start of the ramp section. width2: Width of the end of the ramp section (defaults to width1). layer: Specific layer to put polygon geometry on. """ if width2 is None: width2 = width1 xpts = [0, length, length, 0] ypts = [width1, width2, 0, 0] c = Component() c.add_polygon([xpts, ypts], layer=layer) c.add_port( name="o1", center=[0, width1 / 2], width=width1, orientation=180, layer=layer ) c.add_port( name="o2", center=[length, width2 / 2], width=width2, orientation=0, layer=layer, ) return c
if __name__ == "__main__": c = ramp() c.show(show_ports=True)