How to restore coordinate systems using the Coordinate Return

In the Sequential Mode of OpticStudio, the Coordinate Break (CB) surface is used to define a new coordinate system in terms of the current system. This article describes how to use the Coordinate Return capability within OpticStudio. The Coordinate Return solve makes it easy to automatically restore to the coordinate system of a desired surface.

Authored By Dan Hill


Article Attachments


In OpticStudio's Sequential mode, the Coordinate Break (CB) surface is used to define a new coordinate system in terms of the current system. Primarily, these surfaces are used to perform tilts and decenters of surfaces defined in a local coordinate system. Coordinate Breaks offer great flexibility in positioning and tilting surfaces/elements in your design.

However, it can be difficult to restore the coordinate system (return to the coordinate system of a prior surface) where many complex nested tilts/decenters are present. The Coordinate Break return capability of OpticStudio can simplify this problem tremendously. In this article, we will provide an example to show how to use the Coordinate Return feature.

The Coordinate Return feature

The Coordinate Return feature may only be used on Coordinate Break surfaces, and is found underneath the Tilt/Decenter tab of the Surface Properties dialog:

lens data

The Coordinate Return is very easy to use. You simply choose how you would like to restore the coordinate system, and the surface whose coordinate system you want to return to. Other than “None,” (which disables the Coordinate Return feature), there are three options available for how you want to restore the coordinate system:

Orientation Only: In this case, only the tilt about X, Y and Z axes are determined to return the orientation of the coordinate system to the previous surface. No adjustment is made to the position offset of the surface vertex. 

Orientation XY: The tilt about X, Y, and Z axes and the decenters in X and Y are determined to return the orientation of the coordinate system. This will offset the X and Y components of the vertex offset to the selected surface, but no adjustment in the Z position is made.

Orientation XYZ: This is identical to Orientation XY, except the Z offset is also accounted for. The Z decenter is placed on the thickness parameter of the Coordinate Break surface, and so it is the following surface whose orientation and position are identical to the “To Surf:.”

Restoring coordinate systems

Without the CB return, we can return to the coordinate system of a prior surface using “dummy” propagation. However, as the number of coordinate systems within the dummy propagation increase, it becomes more and more difficult to “back-track”, and it’s easy to make mistakes. The CB Return, on the other hand, works no matter how many coordinate rotations or decenters are involved, and no matter what their ordering is.

In the diagram below, a y-offset is created at S2 and S3, simply because we have propagated some non-zero Z distance in the coordinate system of S1 (which is tilted about the X-axis by 20 degrees).

lens data, 3d layout

If we would like to define the position of S3 in the OBJ space coordinate system we could do one of a few things:

  • Calculate by hand what the magnitude of the y-offset is due to the z propagation along the tilted coordinate system, and decenter the surface appropriately.
  • Use dummy propagation back to Surface 2 (the first CB), restore the tilt, and then specify the appropriate z thickness to the following surface.
  • Have OpticStudio automatically restore to the coordinate system of Surface 1 (the dummy surface prior to the first CB).

Any of the three options above would be relatively easy to do in this simple sample file, but what if we had several nested layers of Coordinate Breaks, and wanted to restore back to the OBJ space coordinate system? This is where the Coordinate Return comes in really handy.

Applying the Coordinate Return

Let’s use the third option on the previous page to demonstrate the effectiveness of Coordinate Return. As mentioned earlier, S2 (which is Surface 5 in the LDE) has been decentered in Y due to the Z propagation in the tilted coordinate system of S1. We wish to restore this offset so that S3 is in the same coordinate system as OBJ space. Surface 1 in the LDE is also in this coordinate system. Since our object is at INFINITY, we will use Surface 1 as our “To Surf.” 

Insert a surface just before the IMA plane, and change the surface type to "Coordinate Break". Select OK. Prior to applying the Coordinate Return, we must first make some adjustments to the thicknesses of Surfaces 5 & 6. We would like S3 to be 20 lens units away from S2. But we would first like to restore the offset created by the z propagation in the coordinate system of S1. Thus, place the thickness from Surface 5 to Surface 6, so that the thicknesses are as follows:

lens data, surface 6 properties

Open the Surface Properties dialog for Surface 6 and select the Tilt/Decenter tab. In this case, we want to restore the X, Y, Z rotations and the X and Y decenters (if any). We do NOT want OpticStudio to co-locate our new coordinate system with Surface 1 in the z axis. Therefore, change the “Coordinate Return” option to "Orientation XY" (which does not consider the Z offset) and change the “To Surf” to 1. 

Select OK to close the Surface Properties dialog, and note the changes made the CB parameters of Surface 6. The letter “R” indicates that the parameter is controlled by a Coordinate Return solve, and acts very similarly to a solve. Any time a Coordinate Return is used, it will overrule any other solve, variable or multi-configuration status on any data controlled by the Coordinate Return.

lens data surface 2

In this example, only the Decenter Y needed to be controlled to restore the coordinate system to match that of Surface 1. Note that this is effectively 20*sin(20) = 6.8404. You can find this in the Prescription Data Report:

prescription data





Was this article helpful?
0 out of 0 found this helpful



Please sign in to leave a comment.