This article describes how to create sources of any geometrical size and shape. The Source Object provides the flexibility to convert any object into a source, including any imported CAD object.
Authored By: Michael Pate
IntroductionZemax 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 ;-) :
- Diode
- DLL
- Ellipse
- Filament
- File (allows import of Radiant Imaging and Opsira source models)
- IES File
- Point
- Radial
- Ray
- Profile
- Rectangle
- Tube
- Ray Angle
- Volume Cylinder
- Volume Ellipse
- Volume Rectangle
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.
The Source Filament ObjectThe Source Filament object gives a nice starting point to quite easily make an approximate tungsten filament light source model. You are required to give the inputs of length of the coil, radius of the coil, and the number of turns in the length of the coil, along with the other standard properties of position and orientation and the number of rays to launch.
 |  |
| FRONT VIEW | SIDE VIEW |
 |  |
| ROTATED VIEW with RAYS | SIDE VIEW with RAYS |
Using this Source Filament object is very quick and easy to set it up and launch your rays, but notice that they all emanate from a line source. This is probably OK for your initial system setup and design layout, but you may need to model the extended area of a typical tungsten filament source to fully characterize your illumination system.
To build a more detailed source is quick and easy using the Source Object.
Creating a Source ObjectZemax 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:
- In your CAD program, create a tungsten filament from the proper sized wire, with the correct length, diameter, number of turns, shape of the coil, etc. and save this 3D model in STEP, IGES, SAT or STL file format. |
- Save this CAD file into the Zemax > Objects directory
- Start Zemax and go into Non-Sequential Mode from the File > Non-Sequential Mode path.
- Choose the object type of Imported, then select the filament coil step file.
- Add a new object below the imported object and choose the Object Type: Source Object – This is the tool in Zemax to create sources out of any object you can think of creating. Pretty cool, huh?
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?