How to work in global coordinates in a sequential optical system

When working with a Sequential optical system, it is usually most convenient to work in local coordinates. However, there are cases when working in global coordinates is easier: typically, when working with perturbation data produced by finite element analysis (FEA) in systems with complex 3-D tilts and decenters. This article describes how to switch between Sequential local and global data entry methods.

Authored By Mark Nicholson, Updated by Nicholas Herringer


Article Attachments


When in Sequential Mode, we usually work in local coordinates, meaning that one surface's location is defined by the Thickness of, or distance along the Z-axis from, the preceding surface. However, it is sometimes more convenient to work in a global coordinate system. A common example is when an optical system must undergo vibration analysis. This results in a set of vibration-induced perturbations being produced that must be imported into OpticStudio to evaluate the optical impact of the mechanical shifts.

In this case, it is convenient to shift between local and global coordinates in either direction easily and quickly. This article describes how the Global/Local and Local/Global tools in the above LDE toolbar work.

Coordinate Breaks

Coordinate Break Surfaces allow us to decenter and tilt other surfaces in sequential optical systems, subsequently allowing us to model more complex systems. Along these lines, a Coordinate Break adjusts the local coordinate system of the surface that follows it by decentering that coordinate system along the X- or Y-axis, tilting it about the X-, Y-, or Z-axis, or any combination of these. OpticStudio provides a set of tools in the Lens Data Editor toolbar that provides easy access to common commands such as tilting or decentering components or adding or removing folding mirrors.

Lens data editor

This article utilizes Coordinate Break Surfaces, and it is recommended that you become familiar with these prior to reading this article. You can learn more about Coordinate Breaks in the Knowledgebase article, "How to tilt and decenter a sequential optical component."

Defining a nominal prism design

To demonstrate the principles of working in global coordinates in Sequential Mode, we will model a chain of sequential prisms that slowly bend an incoming beam in an arc. We will then adjust the global position of one prism in the chain. The first step in this process will be to define one prism, shown below. You can download a sample file for this prism from the Article Attachments (single_prism.ZMX).

3D layout

Before proceeding, it is worth spending some time looking at how this file is set up.

Lens data editor2

Collimated light enters the system at Surface 1 (OBJECT). Surface 2 is the front face of the prism. It has a 10mm square Rectangular Aperture applied to it, and it is also tillted by 15 degrees about the nominal X-axis. After the surface, the surface is ultilted using the After Surface: Reverse This Surface setting so that subsequent surfaces lie in the original coordinate system. Surface 3 is tilted and untilted in the opposite direction. 

Surface 2 properties

Surface 2 properties 2

In order to better visualize the surface tilts on the front and back faces of the prism, we can navigate to Surface Properties...Draw...Draw Local Axis for both Surface 2 and Surface 3. This will display the local coordinate system for both surfaces on the 3D Layout Plot. 

Draw local axis

Looking at the 3D Layout below, we notice that Surface 1 (drawn in orange) is the Global Coordinate Reference Surface and defines the starting coordinate system in the file. The arrow protruding from the surface is its local Z-axis; the local Y-axis points up, and the local X-axis points into the screen. Surface 2 shows a +15 degree Tilt X, and Surface 3 shows a -15 degree Tilt X.

3D layout2

Looking beyond the prism, we notice that Surface 4 is a Coordinate Break Surface with parameters to define the Decenter X and Y and the Tilt About X, Y, and Z. In this file, each of these parameters (except the Tilt About Z) are controlled by Chief Ray Follow Solves. These ensure that the local coordinate system for Surface 5 is centered on, aligned along the chief ray. That is, the coordinate system's origin intersects the chief ray, and the Z-axis is parallel to the chief ray. Essentially, they ensure that the following surface is centered on the optical beam.

Chief Ray Follow Solves

3D layout3

This shows one of the key advantages of the local coordinate system. Because the local coordinate system follows the surfaces it is easy to change on a surface-by-surface basis as the light propagates through the system. OpticStudio contains many ray-based solves to enforce common requirements, and it allows for the definition of ZPL-macro based solves for more specific requirements.

However, we will now go on to extend this sample file in a way in which the local coordinate system is not as helpful, and we will see how to switch easily between local and global coordinate systems.

Creating a chain of prisms

Now that we have created a single sequential prism, we will create several copies of it to string together a chain of prisms. This chain of prisms will be the basis for our ultimate work in global coordinates. To create the chain of prisms, copy the existing prism by highlighting Surfaces 2-4 in the Lens Data Editor and pressing <Ctrl + C> on your keyboard. Alternatively, you can right-mouse-click the selected rows and select Copy Surfaces from the dropdown.

Lens data editor3

Then, highlight Surface 5 and press <Ctrl + V> on your keyboard to paste the copied rows into the Lens Data Editor. Similarly, alternatively, you can right-mouse-click on Surface 5 and select Paste Surfaces from the dropdown. Repeat this process a total of 10 times to paste 10 copies of the original prism into the Lens Data Editor. After updating the 3D Layout, you should see a chain of 11 prisms that redirect the input beam in an arc through approximately 180 degrees.

3D layout4

The Lens Data Editor now contains 35 surfaces. For the sake of this article, we will choose to perturb the global position of Surfaces 17 and 18, which represent the sixth prism in the chain. In the Lens Data Editor toolbar, select Go To Surface and go to Surface 17.

Lens data editor4

go to surface 17

For both Surface 17 and Surface 18, set the Comment parameter to "My Prism," and under Surface Properties...Type, set Surface Color: Color 4. These settings will allow us to more easily identify our prism in the Lens Date Editor and Shaded Model, respectively. 

Shaded Model layout

Shaded Model layout_1

Now, let us imagine that our task is to perturb the position of the target prism. If we work in local coordinates, that is easy. We simply use the Tilt/Decenter Element Tool selected from the Lens Data Editor Toolbar and choose the surfaces we want to perturb and then enter the perturbation values directly.

Tilt decenter element

However, if the perturbations are computed relative to some other position in the optical system, this is not so straightforward using the local coordinate system. In this case, entering data in global coordinates is preferable. Luckily, it is a simple matter to convert to global coordinates, and back to local coordinates, as required.

Converting to global coordinates

In the Lens Data Editor toolbar, there are two tools for converting back and forth between global and local coordinates. These are the Local to Global and Global to Local tools, respectively.

Lens Data Editor Toolbar1

Lens Data Editor Toolbar2

We will now convert the system from local to global coordinates. Before doing this, notice that Surface 1 is currently set as the Global Coordinate Reference Surface, so it makes sense to position all surfaces relative to this one. It is not required that we position all surfaces relative to the Global Coordinate Reference Surface, but doing so is a convenient method for maintaining a single global reference. Select Local to Global and set its properties as shown below. Press OK.

Convert local to global

After doing this, you'll notice that the Lens Data Editor now contains three Coordinate Break surfaces prior to each prism. 

Lens data editor5

The first Coordinate Break uses Coordinate Return solves to locate the following surface at the Reference Surface defined via the Local to Global Tool (Surface 1 in our case). The second Coordinate Break applies Decenters in X, Y, and Z (the Thickness parameter) to place the following surface at its original global position, and the third Coordinate Break applies Tilts About X, Y, and Z to align the following surface's local coordinate system to its original orientation. In our case, this means that the Coordinate Breaks prior to each prism define each prism's position and orientation. However, it is important to note that this conversion has not moved the prisms in space at all; they remain at their original positions. Along those lines, relative to Surface 1, Surface 27 (the front face of the target prism) is positioned as follows.

X Position 0.00
Y Position -162.03
Z Position 191.38
Tilt X 83.01
Tilt Y 0.00
Tilt Z 0.00

This data can be read directly from the second and third Coordinate Break parameters. If we want to change the position of the prism, we can simply adjust the parameters directly. Change the Parameters for Surfaces 25 and 26 as described below.

Surface 25 Surface 26
Decenter X 0.50 Tilt About X 84.00
Decenter Y -164.00 Tilt About Y -2.30
Thickness 198.00 Tilt About Z 4.70


Note that after doing this, the prisms following our target prism do not shift position. This is because we are positioning our target prism directly in global coordinates, and its position or orientation does not affect the position or orientation of any other surface or object.

Shaded Model layout_2

Additionally, should we want to convert the system back to local coordinates, we can easily do so using the Global to Local tool in the Lens Data Editor toolbar.

As a general note when using global coordinates in Sequential Mode, we must remember that the ray-tracing is still sequential. That is, if our target prism is moved away from the beam altogether, rays will not propagate past the target prism. In Sequential Mode, if rays cannot trace to the next surface the ray-trace terminates. To allow one prism to be taken out of the beam, and for the beam to just continue tracing to the next prism, we need to leverage non-sequential ray-tracing. In this case, the file should be converted to Non-Sequential Mode or Mixed Mode.

Shaded Model layout_3


Was this article helpful?
7 out of 8 found this helpful



Please sign in to leave a comment.