For the User defined object DLL, Zemax passes a variable “data” to the function UserObjectDefinition. However, I have not been able to find any documentation on what each element of this array is. The examples provide some of the parameters (for example the CoatingSample.dll file gives the first 15 parameters and a few others up to parameter 34, see the code below from the example). Where can I find documentation to understand what other parameters I have access to from this data structure?

The data ZEMAX sends is formatted as follows:

data2], datat3], datat4] = x, y, z

data5], data6], data57] = l, m, n

datab8] = coat group number

datau9], data/10], data11] = normal nx, ny, nz

data 12], dataz13] = current and next index of refraction

datad14] = cosine of normal incidence angle

data 15] = wavelength in µm

data20] = zero flag. Set this to 1.0 to indicate the DLL

computes the coating data, otherwise, ZEMAX will compute using

object settings.

for s polarization:

datab21] = amplitude reflection real

datat22] = amplitude reflection imaginary

datan23] = amplitude transmission real

datac24] = amplitude transmission imaginary

for p polarization:

data 31] = amplitude reflection real

data/32] = amplitude reflection imaginary

datad33] = amplitude transmission real

data34] = amplitude transmission imaginary

** Mod note: moved to more appropriate forum for DLL-related discussions.]**