masque/examples/ellip_grating.py

37 lines
872 B
Python
Raw Normal View History

2019-04-19 23:13:13 -07:00
# Quick script for testing arcs
import numpy
import masque
import masque.file.gdsii
2020-05-18 04:34:55 -07:00
import masque.file.dxf
2019-04-19 23:13:13 -07:00
from masque import shapes
def main():
pat = masque.Pattern(name='ellip_grating')
for rmin in numpy.arange(10, 15, 0.5):
pat.shapes.append(shapes.Arc(
radii=(rmin, rmin),
width=0.1,
2020-05-17 14:13:42 -07:00
angles=(-numpy.pi/4, numpy.pi/4),
layer=(0, 0),
2019-04-19 23:13:13 -07:00
))
2020-05-17 14:13:42 -07:00
pat.labels.append(masque.Label(string='grating centerline', offset=(1, 0), layer=(1, 2)))
2019-04-19 23:13:13 -07:00
pat.scale_by(1000)
# pat.visualize()
2017-11-04 12:18:58 -07:00
pat2 = pat.copy()
pat2.name = 'grating2'
2019-04-19 23:13:13 -07:00
masque.file.gdsii.writefile((pat, pat2), 'out.gds.gz', 1e-9, 1e-3)
2019-04-19 23:13:13 -07:00
2020-05-18 04:34:55 -07:00
masque.file.dxf.writefile(pat, 'out.dxf.gz')
dxf, info = masque.file.dxf.readfile('out.dxf.gz')
masque.file.dxf.writefile(dxf, 'reout.dxf.gz')
2019-04-19 23:13:13 -07:00
if __name__ == '__main__':
main()