- Home
- Sequential Ray Tracing
- 3D Geometries
- How to Tilt and Decenter a Sequential Optical Component
- Home
- First Time Users
- How to Tilt and Decenter a Sequential Optical Component
How to Tilt and Decenter a Sequential Optical Component
- By Mark Nicholson
- Published 26 July 2005
- 3D Geometries , First Time Users
-
Rating:




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-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 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.
![]() | ![]() |
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 ZEMAX 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. Double-click on the thickness of the surface immediately before the second CB (this currently has a thickness of -2), and in the solve dialog box choose:
![]() | |
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 y-tilt of 30 degrees and an x-tilt 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 meas that a single CB can unstrip 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.

But isn't there any easier way to do all this? There is!




