Catalogues

Edmund Optics Catalogue

Browse and import ready-to-buy commercial lenses into your system.

BeginnerLens Catalogue IntegrationNumPy backend10 min read

Introduction

This tutorial shows how to retrieve optical components from the Edmund Optics lens catalogue. In particular, we cover:

  • How to open Zemax files in Optiland
  • How to retrieve and analyze an aspheric lens from the Edmund Optics catalogue

Optiland uses the function load_zemax_file to load a Zemax (.zmx) files into the Optiland format. The function accepts either a file directly or a URL link to the file. If a URL is provided, Optiland downloads the file prior to extracting the lens data.

Core concepts used

load_zemax_file(filename)
Automatically parses industry-standard .zmx files and builds the equivalent Optiland surface stack, including materials and conics.
lens.draw()
Visualizes the imported component to ensure it matches the vendor's technical drawing.
analysis.RayFan(lens)
Generates aberration fans to visualize the 'fingerprint' of the commercial lens.

Step-by-step build

1

Import Analysis Tools

python
from optiland import analysis
from optiland.fileio import load_zemax_file
2

Load the Zemax File

File retrieval

For this example, we will use a 15 mm Dia., 0.33 Numerical Aperture Uncoated, Aspheric Lens. We pass the filename of the downloaded .zmx file to our load_zemax_file function:

python
filename = "zmax_47728.zmx"  # downloaded from link above
lens = load_zemax_file(filename)
3

Draw the Imported Lens

The function directly returns an instance of an Optiland Optic class. We can draw the lens as shown.

python
lens.draw()
Step
4

Inspect Lens Data

We also print an overview of the lens data. This currently excludes the aspheric coefficients.

python
lens.info()
5

Generate Spot Diagram

Lens Analysis

To assess performance, we generate a spot diagram and the ray aberration fans:

python
spot = analysis.SpotDiagram(lens)
spot.view()
Step
6

Plot Ray Aberration Fans

python
fan = analysis.RayFan(lens)
fan.view()
Step
Show full code listing
python
from optiland import analysis
from optiland.fileio import load_zemax_file

filename = "zmax_47728.zmx"  # downloaded from link above
lens = load_zemax_file(filename)

lens.draw()

lens.info()

spot = analysis.SpotDiagram(lens)
spot.view()

fan = analysis.RayFan(lens)
fan.view()

Conclusions

  • This tutorial showed how to retrieve and analyze an Edmund Optics catalogue lens.
  • The load_zemax_file function does not currently support all Zemax surface types and may fail to convert a lens into an Optiland Optic instance in some cases. Users are encouraged to create an issue on the GitHub page if an error occurs.

Next tutorials