masque/examples/ellip_grating.py

36 lines
711 B
Python
Raw Permalink Normal View History

# Quick script for testing arcs
import numpy
2023-07-17 20:22:04 -07:00
from masque.file import gdsii
2023-09-17 21:34:21 -07:00
from masque import Arc, Pattern
def main():
2023-09-17 21:34:21 -07:00
pat = Pattern()
2023-07-17 20:22:04 -07:00
layer = (0, 0)
pat.shapes[layer].extend([
2023-09-17 21:34:21 -07:00
Arc(
radii=(rmin, rmin),
width=0.1,
2020-05-17 14:13:42 -07:00
angles=(-numpy.pi/4, numpy.pi/4),
2023-07-17 20:22:04 -07:00
)
for rmin in numpy.arange(10, 15, 0.5)]
)
2023-07-17 20:22:04 -07:00
pat.label(string='grating centerline', offset=(1, 0), layer=(1, 2))
2020-05-17 14:13:42 -07:00
2017-11-04 12:18:58 -07:00
pat.scale_by(1000)
pat.visualize()
2017-11-04 12:18:58 -07:00
2023-07-17 20:22:04 -07:00
lib = {
'ellip_grating': pat,
'grating2': pat.copy(),
}
gdsii.writefile(lib, 'out.gds.gz', meters_per_unit=1e-9, logical_units_per_unit=1e-3)
if __name__ == '__main__':
main()