class FTheta(optic.Optic):
"""F-theta lens
Milton Laikin, Lens Design, 4th ed., CRC Press, 2007, p. 251
"""
def __init__(self):
super().__init__()
self.surfaces.add(index=0, thickness=np.inf, radius=np.inf)
self.surfaces.add(index=1, thickness=5.0, is_stop=True)
self.surfaces.add(index=2, radius=-2.2136, thickness=0.3, material="SF57")
self.surfaces.add(index=3, radius=-2.6575, thickness=0.02)
self.surfaces.add(index=4, radius=-5.5022, thickness=0.5292, material="SF57")
self.surfaces.add(index=5, radius=-3.8129, thickness=4.2927)
self.surfaces.add(index=6, radius=7.9951, thickness=0.59, material="SF57")
self.surfaces.add(index=7, radius=8.3651, thickness=18.0014)
self.surfaces.add(index=8)
# add aperture
self.set_aperture(aperture_type="EPD", value=1.0)
# add field
self.fields.set_type(field_type="angle")
self.fields.add(y=0)
self.fields.add(y=5.0)
self.fields.add(y=10.0)
self.fields.add(y=15.0)
# add wavelength
self.wavelengths.add(value=0.633, is_primary=True)