Prior to the May 4th, 2009 version, each Source had to be defined individually. This means that if one was trying to define say a 10 by 10 array of sources, each source, 100 sources would need to be defined in the Non-Sequential Component Editor. After the initial definitions, if a change needed to be made to adjust the array, once again each source would need to be edited, resulting in an extremely time consuming task. Setting pickup solves on the following sources would alleviate some of the lost time; however, setting pickups on each parameter of a 99 source array is redundant and inefficient. In addition, using an array of sources is far more efficient in terms of memory usage than multiple instances of the same source. This is particularly true of sources defined by datafiles, where the individual file size is large. For instance, with the Source array ZEMAX will read a single data file and replicate the definitions within the file for each source in the array. Whereas using the prior definitions ZEMAX would need to read each individual data file for each source in the array and allocate enough memory to support the ray trace.

There are several array types to choose from including the Rectangular, Circular, Hexapolar, and Hexagonal. The Array Type Parameter allows you to define the combined shape of the sources.

The rectangular array allows you to define 1D or a 2D array with a defined number of sources in the X and Y axis. This array type allows user defined source spacing separately in both x and y.


The circular array consists of a single circular ring centered on the parent source location. The user defined parameters include the number of sources and the radius. The array radius is the distance from the parent source coordinates to the center of the surrounding sources defining the array. The individual sources are equally spaced in angle, counter-clockwise around the parent source location. 

Hexapolar array allows up to 20 rings of increasing order of 6 equally spaced sources. For example, ring one contains the original source, ring two has 6 sources, ring 3 has 12 and so on. The available parameters include number of rings and radial spacing between rings. 

Hexagonal Array Type: A hexagon is a polygon with 6 edges and 6 sides,. The initial or first ring is a single source, your original source located at the original source coordinates. The second ring contains 6 sources placed at the appropriate vertices of the hexagon shape. The spacing parameter defines the vertical distance in lens units between sources in the same column.