As an example, we will measure the surface sag of a Compound Parabolic Concentrator (CPC). Open the file “
NSC_Sag_CPC.ZMX”, which is available via download on the last page of this article. You should observe that the Non-Sequential Component Editor contains two objects, with the following parameters:
Object 1 – Source Ray
(x,y,z) positions: (0,0,0)
# of Layout Rays: 1
# of Analysis Rays: 1
(It is necessary when using the NSRA operand to make sure that the # of Analysis Rays is set to 1)
Defaults are used for all other values
Object 2 – CPC
(x,y,z) positions: (0,0,0.5)
Tilt about X = 15.0
Tilt about Y = 15.0
Radial Aperture = 0.10
Angle (deg) = 10.0
Length = 5.0
Defaults are used for all other values
Go to
Analysis > Universal Plot > Universal Plot 2D > New Universal Plot 2D… Enter in the settings as shown here:

The x-axis will be the x-position of object 1 in the NSC editor – the source ray. This position will be varied from -1 to 2 in 50 steps. Similarly, the y-axis will be the y-position of the source ray, varied from -2 to 1 in 50 steps. The z-axis is defined by the NSRA operand. The inputs to this operand are:
• Surf: The surface number of the non-sequential group. For a system in pure non-sequential mode, this is always 1.
• Src#: The object number of the desired source (in our case the source ray – object 1).
• Splt?: Specifies if ray-splitting is on (0 means no ray-splitting).
• Pol?: Specifies if polarization effects are included in the analysis (0 means that they are not).
• Seg#: Specifies the segment number of the ray for which data is calculated. Segment 0 is the launched ray, Segment 1 is the ray after its first interaction, Segment 2 is the ray after its second interaction, etc. In our case, we are interested in the intersection point between the ray and the object. Since this object is the first surface that the ray interacts with, we specify Seg# = 1.
• Data: Specifies which data are to be calculated for the given ray segment. Data = 3 corresponds to the z-coordinate of the ray (see Chapter 14 of the ZEMAX manual for more details).
Hit OK. A false color map will appear which shows the z-coordinate of the CPC as a function of x and y:

To generate this plot, the x- and y-coordinates of the source ray were varied from -1 to 2 and -2 to 1, respectively, and the corresponding z-coordinate was determined from the intersection point of the ray with the surface of the CPC. By clicking on the Text button in the window, a listing of the various z values can be obtained:

For objects in which the sag needs to be determined for different orientations, the object may be tilted about the x, y, and z-axes and the procedure repeated.