ZEMAX has many standard light source objects available in non-sequential operation that help us easily define and model many of the typical light source shapes and configurations. However, many times clients will ask me to model their new, high-tech, high-output light source, or maybe just an old standard tungsten filament. Let me share with you some methods and tricks on how to model just about anything your clients can think of with ZEMAX and some of the tools that you might not know about yet.
First let's review some of the standard light source objects available in ZEMAX, just in case you haven’t read the manual from cover to cover yet ;-) :
There are also some other excellent KB articles on how to use these sources or build your own, like the LED modeling article.
However, ZEMAX also allows you to take any geometrical object, and to use it like a source. This is ideal for self-luminous objects, like filaments, or for modeling the thermal emissions from objects. In this article I'll discuss some practical, real-world examples of this capability.
![]() |
![]() |
| FRONT VIEW | SIDE VIEW |
![]() |
![]() |
| ROTATED VIEW with RAYS | SIDE VIEW with RAYS |
ZEMAX has the capability to bring in 3D objects from a CAD program like SolidWorks and turn the 3D solid in to an emitting source. Let's take a look at an example.
Procedure:
The source object must be listed in the editor after the parent object. It does not need to come immediately after it: but it is usually tidier to keep the object and the source that depends on it together in one place.
You will need to tell the Source Object what the obejct number of its parent object is, and this is done through the parameter columns of the non-sequenrial component object. The manual tells you all that stuff. You can also give it maybe 500 layout rays and position the source wherever you like in the optical system.
To avoid geometry errors, and to prevent rays leaving the source from immediately striking the parent object, you can set the Rays Ignore This Object flag in the Object Properties dialog:
This means that rays will never interact with the parent object. However, that may be overly restrictive: after all, the parent object may have scattering properties, or be reflective, or have any optical property you wish. Its usually better to use the 'Ignore objects" list and to place the parent object's object number in this list. That way, when a ray is generated it fires straight out, and if it is re-imaged onto the parent it interacts with the parent object normally.
Now put a Detector Rectangle object into your design and position it properly down the z axis or where ever you choose, and give it some size in x and y. Then take a look at your tungsten filament source, by doing an Analysis > Layout > NSC Shaded Model. Trace rays!
![]() |
| NSC Shaded Model of the new Source Object method of creating an extended source filament to model a tungsten wire source |
Here is another example of a Socket Head Cap Screw from SolidWorks that I saved as a step file and used the above procedure to bring into NSC ZEMAX. I made the object radiate rays at 10.6 micron wavelength and then created a bi convex germanium lens to image this “source” onto a detector.
![]() |
| Socket Head Cap Screw as an Infrared “Source” in NSC ZEMAX |
Both these CAD files can be downloaded from the lists at the end of this article.
Now it is your turn. What you can you do with these fantastic tools in ZEMAX to create the light source/emitter in the shape of your dreams?