In non-sequential mode, ZEMAX allows us to use different objects in the design such as lenses, aspheres, cylinders, blocks, and other objects.  A system feature also allows the user to create a custom object, if needed.

The “User Defined Object” in the object type list can be represented by a Dynamic Link Library (DLL) and written using C programming.  The advantages of these objects as described in [1] include:

•  DLL-defined objects generally ray trace much faster, and with much higher numerical precision than objects imported from CAD programs.
•  Unlike the polygon object which only has flat faces, any number of complex curved shapes may be combined in a single object.
•  Objects may have a mixture of reflective and refractive curved faces, with user-defined face names.
•  The DLL description is inherently parametric, which means the object is dynamically regenerated when any defining property is modified.  This allows interactive design modification and optimization.
•  User-defined coating data, including detailed control over the complex amplitude reflection and transmission coefficients is supported.  Coating data may be ray position-, cosine-, or object coordinate-dependent.

Most objects in optical design are rotationally symmetric.  We’ll explore below some user-defined objects with a surface of revolution of Bezier curve and a surface of revolution of cubic spline curve.  These curves were chosen because they can be nonstandard and free form.   Moreover, their description with a set of points allows the user to control the object shape more efficiently.  We will also give the mathematics for calculating the ray-surface intersection.  This type of free form object can be used for designing LED collimating optics, lightpipes, and other illumination applications.

Example of illumination optics using a free form surface

Example of illumination optics using a free form surface