Field Type: Paraxial Image Height

[1]:
import optiland.backend as be
from optiland.optic import Optic
[2]:
class CookeTriplet(Optic):
    """A Cooke triplet lens design."""

    def __init__(self):
        super().__init__()

        self.surfaces.add(index=0, radius=be.inf, thickness=be.inf)
        self.surfaces.add(index=1, radius=22.01359, thickness=3.25896, material="SK16")
        self.surfaces.add(index=2, radius=-435.76044, thickness=6.00755)
        self.surfaces.add(index=3, radius=-22.21328, thickness=0.99997, material=("F2", "schott"))
        self.surfaces.add(index=4, radius=20.29192, thickness=4.75041, is_stop=True)
        self.surfaces.add(index=5, radius=79.68360, thickness=2.95208, material="SK16")
        self.surfaces.add(index=6, radius=-18.39533, thickness=42.20778)
        self.surfaces.add(index=7)

        self.set_aperture(aperture_type="EPD", value=10)

        self.fields.set_type(field_type="paraxial_image_height")
        self.fields.add(y=0)
        self.fields.add(y=12)
        self.fields.add(y=18)

        self.wavelengths.add(value=0.48)
        self.wavelengths.add(value=0.55, is_primary=True)
        self.wavelengths.add(value=0.65)
[3]:
lens = CookeTriplet()
_ = lens.draw()
../../_images/gallery_miscellaneous_paraxial_image_height_field_3_0.png