Non-sequential ray tracing in Zemax is 3D volume object based. (Note that this is not true of all programs claiming to support non-sequential ray tracing.) Within Zemax, a non-sequential object consists of all the faces necessary to define it completely. A standard lens object, for example, consists of the front and rear faces, the cylinder connecting the two faces, and the bevels on the edges.
Most Zemax objects are parametric which means they are defined by an underlying equation. As a result, they are easy to create and change, and require very little memory space to hold. They can also be optimized and toleranced.
Some Zemax objects are not parametric, like CAD objects. These are simply held as data files. Because Zemax treats all objects as 3-D volumes, and not as a collection of surfaces, ray-tracing and managing large CAD files is simple. Surface-based codes may require many thousands of surfaces to describe a complex CAD object: within Zemax it is a single object. However, different surface finishes and coatings can be applied to any face of an object, no matter how many CAD entities are used to describe it.
Zemax supports more than 80 different types of object, including lenses, aspheric lenses, prisms, holograms, Zernike objects, diffraction gratings and more. A full list of the objects supported is given here. In addition, there are a range of 'operator' objects that allow you to produce complex geometries from existing objects. For example, you can perform Boolean operations of native Zemax objects, form arrays of any object, and sweep an existing object around an arbitrary axis to create a new object. This is described fully in the Geometry Creation section. There is also the capability to create your own object types for those rare cases where no suitable object exists or can be created from the available tools.
Objects are entered in the non-sequential component editor. Objects may be positioned relative to the global coordinate frame, or to any other object. This allows sub-assemblies to be easily defined. The object may be redefined into any other object's frame of reference to give total flexibility in defining location.
The editor is also used to provide the parametric data for the object. For example, if a lens object is used then radius of curvature for each surface, thickness and optical material are all defined in the editor. Parameter data can be 'picked up' by spreadsheet functions (called solves) so that properties can be locked. For example, in a cemented doublet lens, the first radius of curvature of the second lens must be equal to the last radius of curvature of the first lens. Pickup solves make this easy to do. More complex solves can be easily implemented so that calculations can be performed inside the spreadsheet editor directly. (See the Knowledge Base article How to Create a User-Defined Solve for more details).
Once created and positioned, detailed properties are set via the Object Properties dialog. This allows thin-film coating and surface scattering functions to be applied, as well as bulk scattering , gradient index, diffractive properties and others. Generally speaking the data controlled but the Properties dialog does not change often, while the more 'defining' data is entered via the spreadsheet editor.
Related Knowledge Base articles:
Exploring Non-Sequential Mode in Zemax
How to Create a User-Defined Solve
How to Add Coating and Scattering Functions to Non-Sequential Objects