Soon, we will launch a new and updated customer portal, which is an important step toward providing our customers with one place to learn, interact, and get help.
Learn more.

How to Model a Scanning Mirror

This article explains:
  • How to set up the coordinate breaks needed to make a scanning mirror
  • How to use the Multiple Configuration Editor to sample multiple scan angles
  • How to set up a galvanometer-style scanning mirror, where the mirror tilts about its vertex
  • How to set up a polygon scanning mirror, where the mirror tilts about an offset point

The article is accompanied by a ZIP archive containing the sample Zemax OpticStudio files used. This can be downloaded from the final page of the article.


Mark Nicholson
3D Geometries

Setting Up the Scanning Mirror

In this article we will demonstrate how to set up a scanning mirror such that a mirror scans +5° about its nominal position of 90°. The file "starting point.zmx" is in the zip archive you can download from the last page of this article. It shows a simple focussing lens, with a dummy surface (drawn in orange) where the scanning mirror is to be located:

The lens was set up as follows:

  • 5 mm thickness of N-BK7
  • an f/5 solve defines the radius of the rear curve
  • The front radius and back focal distance are optimized for best RMS spot size.

We now want to make surface 2 a mirror, such that the lens is rotated through 90 degrees with respect to surface 1. Click on Add Fold Mirror on the toolbar of the LDE as follow:

And enter:

By using this tool, Zemax OpticStudio has:

  • Made the selected surface a MIRROR
  • Reversed the signs of the thicknesses of all surfaces after the mirror, because light now propagates in the opposite direction
  • Added a coordinate break with an x-tilt of -45 degrees prior to the mirror
  • Added a coordinate break with an x-tilt of -45 degrees after the mirror 

Remember that coordinate break surfaces have no power and do not bend rays: they just define a new coordinate system in terms of a decentration and tilt with respect to the previous surface. This is very useful, as it allows us to separate the coordinate geometry from the optical properties of the surfaces.

Now, to make the mirror a scanning mirror, we need to tilt it. Let's say we want to tilt it by ±5° about the nominal 45° position. It will be incorrect to simply change the tilt about x angles of the coordinate break surfaces to say -50 degrees: this will shift the location of the lens and image plane as well:

As can be seen, changing the fold mirror angle just gives us a -100° fold: this is not the same as a 90° degree fold with a scan angle of ±5°.Set the tilt about x back to -45° before continuing.

To make the mirror a scan mirror, we must tilt it using the Tilt/Decenter Elements tool. This is found on the toolbar menu of the LDE. The mirror is surface number 3, so enter: 

Note that this tool has inserted two more coordinate break surfaces, so that the mirror is now tilted by 5° around its nominal 45° position. The scan angle can be set to any value by setting the value of the Tilt About X of surface 3: the pickup solves automatically inserted by the two tools means that the total tilt seen between surfaces 1 and 7 must always be -90°.

So the correct way to set up a scanning mirror is to use two sets of Coordinate Break surfaces. The first, or outer set, is most easily added by  "Add Fold Mirror" tool to implement the geometry of the nominal position. The second, inner set, is implemented using  "Tilt/Decenter Elements" tool to define the perturbation about this point.

Using the Multi-Configuration Editor

So far, we have developed a geometry in which we have a nominal position and the ability to tilt the mirror about the nominal position. By simply entering data into the x-tilt of surface 3, or using Optimize > Manual Adjustement > Slider, we can produce any scan agle we want. But, for optimization and tolerancing purposes, it is useful to sample this continuous movement by defining a number of configurations. This technique allows us to define a number of fixed-scan angle systems, as a way of modelling any scan angle.

Let's say we want to model scan angles of ±5° about the nominal 45° position. Click on Setup > Configuration > Multi Configuration Editor, and from within the Multi-Configuration Editor click on "Insert Configuration" on the toolbar of the MCE twice, so that you have three configurations. Open the Operands Properties tab of the Editor, and tell Zemax OpticStudio to make Parameter 3 of surface 3 a multi-configuration parameter, then edit the values as follows:

In this way, only the parameter in the multi-configuration editor is different between configurations. All other parameters are the same, except where they pick-up from a parameter controlled by the multi-configuration editor.

Set the 3D layout controls as follows:

So you can see all three configurations superimposed. You can see that the mirror is now scanning about its front vertex, similar to a galvanometer mirror.

The configuration can also be changed by hand by pressing cntl-A from the keyboard. Note as you do so that the semi-diameter of the mirror, lens and image surfaces all change as the configuration is changed. This is because semi-diameters are computes as 2mm + whatever the illuminated region is. Zemax OpticStudio automatically set the semi-diameter of a surface to be the largest of whichever configutation is biggest. This is done by clicking on the semi-diameter of a surface and choosing the "Maximum" solve.

Now this lens was originally optimized for on-axis performance only. It is now being used effectively with ±5° field points, and so should be re-optimized. Open the Optimization Wizard, Optimize > Automatic Optimization > Optimization Wizard, configure it as follows:

Re-optimize the lens and Zemax OpticStudio quickly produces a new lens that minimizes the spot size in the scanning system. This file is saved in the attached zip archive as "galvanometer.zmx"

Scanning About an Offset Point

The previous example shows clearly that the mirror is tilting about its vertex, which would be fine if we are modelling a galvanometer or similar type mirror. But, if the mirror is part of a polygon scanner, for example, then it is being tilted about a point some distance behind the vertex. How do we model that?

We need to place the pivot point of the mirror at the center of the polygon scanner. Let's say the distance from the vertex of the mirror to the center of the polygon is 50 mm. Make the following changes to the galvanometer file:

This simply offsets the point about which the tilts are done by 50 mm. Then open the surface properties of the mirror, and in its Draw tab set it to draw the substrate of the mirror 50 mm away:

and the tilt about the offset point can be clearly seen: 

This file is saved as "Polygon.zmx" in the attached archive.

Summary and References

In order to model a scanning mirror:

  • Use Add Fold Mirror tool to place the mirror in its nominal position
  • Use Tilt/Decenter Elements tool to tilt the mirror
  • Make the tilt a multi-configuration parameter
  • Define as many configurations as are needed to sample the continuous motion of the mirror
  • Alternatively, model the continuous motion using Optimize > Manual Adjustment > Slider
  • If the pivot point of the tilt is about an offset point, use the thickness of the coordinate break surfaces to shift to this point



There are no external references for this article.