- Home
- Non Sequential Ray Tracing
- Objects
- How to Create Complex Non-Sequential Objects
How to Create Complex Non-Sequential Objects
- By Nam-Hyong Kim
- Published 9 September 2005
- Objects
-
Rating:




Parametric Objects Make Design Simpler
Most non-sequential objects in ZEMAX are parametric, that is, based on an underlying equation. For example, the Standard Lens object is defined by parameters like radius of curvature, conic constant, center thickness etc. Parametric objects can be easily modified just by entering new parameter data in the Non-Sequential Component Editor (NSCE). These objects can then be recreated on-the-fly, with data changes entered by hand, via the slider, by a macro or extension program, and -most importantly- by the optimizer.
ZEMAX also supports non-parametric objects, like the polygon object or imported CAD objects. These objects are ultimately represented by a string of data. There are some real advantages to using such objects in some applications. For example, in opto-mechanical stray light simulations, lens mounts and other mechanics can be simply and easily imported. But during the design stage, we need the flexibility to easily change objects in order to obtain the desired performance. Parametric objects are the ideal tool for this job.
There are many parametric objects already built-in to ZEMAX and new objects are constantly being added. The complete list of the objects is available in the current manual. Furthermore, there is an interface to allow you to write your own parametric objects: the user-defined object. This is very general and very powerful.
You also have the option to combine existing objects to make a compound object. This is a fast and flexible way to develop complex objects without programming. The keys to success are:
- to know what objects are already available in ZEMAX. This involves reading the manual ;-)
- to know how to place an object relative to other objects in such a way that shared volumes and surfaces have the correct properties. This is referred to as "nesting rules" in the manual
- to use pick-up solves to lock the sub-objects together, so that by changing just a few defining parameters, all other parameters in the compound object update automatically .
The goal of the this article is to create a rectangular acrylic lightpipe with a 90° bend, commonly used in printed circuit boards to relay light from an LED (light emitting diode) to an instrument panel, and analyze what happens to the irradiance distribution at the end of the pipe when the bend radius is changed. We will also create a hole in the pipe in which mounting hardware can be inserted and place a circular aperture at the end of the pipe so that the shape of the light as seem from the instrument panel is circular. After the complete lightpipe has been created, we will duplicate and place it at some distance from the original lightpipe.
Now if we wanted to analyze the effect of the bend using non-parametric objects,like CAD objects, we would have to create in advance several CAD files corresponding to each discrete bend radius. We will see shortly, that by combining built-in parametric objects, one parameter in the editor can control the shape of the entire object. Also, any changes made to the parameter will be immediately reflected in any analysis without limiting us to discrete values of the parameter.
The animated image below shows the lightpipe to be created. Notice how the irradiance at the end of the pipe changes as a function of the bend radius. As this model is completely parametric, any desired value of bend radius can be entered, and the object will be dynamically recreated

The appearance of multiple elliptical beam at the detector is due to rays going through different number of total internal reflection, as evident from the following layout.
