How to tilt and decenter a sequential optical component

In many optical systems, elements are purposely tilted or decentered from the optical axis. This article explains how to model these types of systems in Sequential Mode.

Authored By Mark Nicholson, Updated by Natalie Pastuszka


Article Attachments


This article walks through the process of inserting Coordinate Break surfaces to allow the decentration and tilting of optical components. The first section describes what the Coordinate Break surface does, and the following sections include tutorials on proper use of the Coordinate Break. Finally, the simple built-in tool for tilting and decentering optical elements is introduced.

The Coordinate Break surface

In the sequential ray-tracing mode of OpticStudio, the order in which surfaces are entered matters enormously. The order specified in the Lens Data Editor (LDE) gives the exact order in which light interacts with the component surfaces of the optical system.
One surface is therefore placed a thickness (a distance along the local z-axis) away from the previous surface. This is known as a local coordinate system because the location of a surface is specified in terms of the previous surface.

A Coordinate Break (CB) surface allows you to specify the location of the next surface as being shifted in x and y, and tilted (rotated) in x, y and z as well as simply shifted in z. The Coordinate Break is a dummy surface: that is, it has no refractive or reflective power and cannot bend rays. Its sole purpose is to define a new coordinate system in terms of the current one. Using such a surface allows you to separate the geometric location of a surface from its optical properties.

In this article we will show how to tilt and decenter an optical component while leaving the position of all other components unchanged. After explaining precisely how to do this, we will show a tool that simplifies the whole process, but it is important you understand how the tool works, and so a careful reading of the whole article is advised. In the attached zip file, you will find a file, starting point.zmx, which shows three glass windows, the central one of which is two optical materials glued together.

Each of the windows has rectangular apertures applied (double-click on any surface and look at the Aperture tab to verify). Any ray that lands outside the aperture on a surface will be terminated.


In the above screenshot, positive z is in the left-to-right direction, positive y is going up the page and positive x is going into the page. This is a right-handed coordinate system, in which z is on your index finger, y on your thumb and x on your middle finger, and your index finger is pointing from left to right, as shown by the coordinate axes in the bottom left-hand corner or the 3D Layout.

Our task in this article is to tilt and center the central window while leaving the other two windows in exactly their original locations. How will we know when we have achieved this? OpticStudio has a report which is vital whenever you are working on a tilted or decentered system.

Open Analyze...Reports...Prescription Data, and look at the section headed Global Vertex:

The Global Vertex section of the Prescription Report

The Global Vertex report lists the position and orientation of the vertex of each surface with respect to the Global Coordinate Reference Surface (GCRS). In this design, surface 1 is the GCRS, but any surface may be set as the GCRS either from the Type tab of the Surface Properties (or from the Aperture tab in the System Explorer).

From the Global Vertex report it can be seen that all surfaces are on-axis with respect to the GCRS, as the rotation matrix is a unit matrix for all surfaces and the {x,y} coordinates of each surface is zero. Surface 7 (the front surface of window 3) has {x, y, z} coordinates {0,0,33} with respect to surface 1, the GCRS.
The Coordinate Break (CB) surface allows you to specify a decentration in x, decentration in y, tilt in {x, y, z} as well as shift in z (thickness) that affects all subsequent surfaces. It also has an Order Flag, the purpose of which we will discuss later.

Our first task is to decenter the middle window, without disturbing the location of any other surfaces.

Decentering a component

In order to decenter the middle window, click anywhere on surface 4 (it has the comment Front Window2) and press the INSERT key on the keyboard. A new surface will be inserted, and all surfaces from the old surface 4 onwards will have been renumbered (so that surface 5 now has the comment Front Window2). 
Now double-click on the new surface 4 and set it to a Coordinate Break surface:

Set the Surface Type to Coordinate Break

Then scroll along to the Decenter Y column and enter a value of -5 mm. The Layout Plot and Prescription Report show the consequence. All surfaces from the Coordinate Break (CB) onwards are decentered by -5 mm.

The y-decenter can be clearly seen  Note the y-coordinate of the surfaces

The effects of a CB last until another CB is encountered, therefore two Coordinate Breaks are usually required: one to implement the tilt/decenter and the other to restore the original axis.

To demonstrate this, click on Surface 8 (the front of window 3), press INSERT again and make the new surface a CB. Make the Thickness of this surface 10 mm, and make the Thickness of surface 7 zero, so that the second CB is co-located with the back of the middle window. Give this CB a decenter in y of +5. You should now have the following (open intermediate step.zmx from the zip if you got lost). Note that because of the rectangular apertures on the surfaces, rays that miss the middle window are terminated. This is an essential part of the Sequential Model. If you wish to model a system in which rays that miss the middle window carry on to hit the third window, you must use non-sequential ray tracing.

A second CB restores the original coordinate system  Tilt-Decenter-Seq-005-presdata

The restoring CB restores the original coordinate axes so that subsequent surfaces are back in their original positions.

Setting the values of the restoring Coordinate Break surface by hand is not good practice, as it’s easy to forget that the second CB needs to be adjusted whenever the first one is. However, OpticStudio makes it easy to automate just click on the Solve cell of the Decenter Y of the second CB and choose a Pick-Up Solve to lock the value to the first CB, as follows:


Do this with the Decenter X, and for the tilt parameters also, but leave the order flag = 0 for both CBs at this time. (This is an error, but we will see why in the next page).

You should be able to set any value of Decenter X and Decenter Y, and OpticStudio will restore the original coordinate system at the second CB. If you got lost, open intermediate step2.zmx from the attached zip archive. We will now move onto tilts. 

Tilting a component

Reset all parameters on the first CB to zero. The parameters of the second CB should automatically set themselves to zero because of the Pick-Up Solves. Then set the Tilt About X of the first CB to 20 degrees. At first glance, this looks like all we need to do, but when the Global Vertex report is looked at carefully, it is obvious that something is wrong.

A 20 degree tilt has been applied  Note the decenter introduced by the tilt

A y-decentration of 0.68 mm has been introduced by the x-tilt. This is because the second coordinate break is implemented some distance along z of the new, x-tilted coordinate system. In order that we introduce a pure tilt with no decentration, there must be zero z-shift between the two CB surfaces. This is achieved by a dummy propagation before the second CB.

Insert a dummy surface immediately after the second Coordinate Break. The second CB currently has a Thickness of 10. Set this to 0, and make the Thickness of the new dummy surface 10. Now the z-shift between the two CBs is a total of 2 mm, so make the Thickness of the surface immediately before the second CB -2, and make the Thickness of the second CB +2. This dummy propagation places the two CBs at the same point in space, and so the untilting operation introduces no decentration.

Note the dummy surface  There is no y-decentration now

The dummy surface has no optical effect because we trace -2 mm in air followed by +2 mm in air, so no rays are bent, no optical path length is added. The dummy surface may be hidden using the "Do Not Draw This Surface" and "Skip Rays From this Surface" controls on the Draw tab of the Surface Properties.

However, the way in which the dummy propagation thickness has been set is unsatisfactory. What would happen if the thickness of one of the glass surfaces changed, either by hand or during optimization? The second CB would no longer be correctly placed. The key thing is that the second CB must be at the same position as the first, and OpticStudio has a simple, powerful way to ensure that this condition is always met: a Position Solve.

A Position Solve sets the surface after it to have a specified distance from another surface. Open the Solve options for the Thickness cell of the surface immediately before the second CB (this currently has a thickness of -2), and in the Solve dialog box choose:

The Position Solve  The Pick-up solve

Note that the Position Solve lets us go back through any number of surfaces until we get to the first coordinate break Then put a Pick-Up Solve on the thickness of the second CB, that picks up the value of the position solve and multiplies it by -1. Now change the Thickness of the glass surfaces between the two CB surfaces. No matter what thickness you enter, the second CB is always exactly co-located with the first, and so can undo it perfectly.

Finally, notice one more thing. Set a Tilt About Y of 30 degrees and a Tilt About X of 10 degrees. Note that the second CB no longer undoes the first one perfectly. This is because the order of the tilts matters. If we tilt about x, and then tilt about y in this new tilted position, then we must untilt about y and then untilt about x in order to restore the original coordinate system. This is what the Order Flag is for.

If the Order Flag is zero, the CB surface executes such that decenters are done first, and then tilts in order. If the Order flag is non-zero, the CB executes in reverse order. This means that a single CB can undo any compound tilt/decenter introduced by another other CB that it is co-located with.

The final system is included as final system.zmx in the attached ZIP archive. Here is the system, with any number of tilts and decenters, showing that the position of the third window is unaffected. Note the dummy surface has been hidden.

3D layout

The Tilt/Decenter Elements tool

But isn't there any easier way to do all this? There is! The Tilt/Decenter Elements Tool.

This is the easy way to tilt/decenter an optical element. Re-open starting point.zmx, then click on the Tilt/ Decenter Elements icon in the Lens Data Editor menu, and enter whatever tilt/decentration data you want, for example:


Note that this tool does everything we did by hand! Using the tool is highly recommended as the standard technique by which you should tilt or decenter optical components in your system.


Was this article helpful?
41 out of 46 found this helpful



Please sign in to leave a comment.