Triplet Telescope Objective

[1]:
import numpy as np

from optiland import optic
[2]:
class TripletTelescopeObjective(optic.Optic):
    def __init__(self):
        super().__init__()

        self.surfaces.add(index=0, radius=np.inf, thickness=np.inf)
        self.surfaces.add(
            index=1,
            radius=50.098,
            thickness=4.5,
            material="N-BK7",
            is_stop=True,
        )
        self.surfaces.add(index=2, radius=-983.42, thickness=0.1)
        self.surfaces.add(index=3, radius=56.671, thickness=4.5, material="N-BK7")
        self.surfaces.add(index=4, radius=-171.15, thickness=5.571)
        self.surfaces.add(
            index=5,
            radius=-97.339,
            thickness=3.5,
            material=("SF1", "schott"),
        )
        self.surfaces.add(index=6, radius=81.454, thickness=75.132)
        self.surfaces.add(index=7)

        self.set_aperture(aperture_type="imageFNO", value=2.8)

        self.fields.set_type(field_type="angle")
        self.fields.add(y=0.0)
        self.fields.add(y=0.7)
        self.fields.add(y=1.0)

        self.wavelengths.add(value=0.4861)
        self.wavelengths.add(value=0.5876, is_primary=True)
        self.wavelengths.add(value=0.6563)
[3]:
lens = TripletTelescopeObjective()
[4]:
lens.draw(num_rays=5)
../../_images/gallery_basic_lenses_triplet_4_0.png