Solved

Understanding OPDMode in ZOSAPI.Tools.Raytrace


Badge +1

Hi All,

I’m working on a Batch Ray Trace tool using the ZOS-API and need the optical path length of each ray I trace. When I look on the docs there appear to be three options
1) “None” : which returns optical path length of the ray
2) “Current” : which returns the path difference between the current ray and the previous ray
3) “CurrentAndChief”: which returns the path difference between the current ray and the chief ray

I was seeing results that were inconsistent with my expectations so I ran a test. If “None” returns the optical path length of the ray, and I subtract the mean value of all the computed OPL’s from each ray trace, then I should see a result that is similar to the Wavefront Map. 

 



What I found is that the shape is similar, but the amplitude greater by a factor of ~10
 


What causes this difference?
 

icon

Best answer by Jeff.Wilde 7 July 2022, 03:43

View original

2 replies

Userlevel 7
Badge +2

Hi Jaren,

 

Nice to see you here! Didn’t know you were looking to use Zemax for your project. I think we are working towards a similar goal, let’s have a chat one day (I’ll write you an email).

In the meantime, have a look at this reply from @MichaelH. Perhaps it can help you. From Michael’s answer, it seems None gives you the absolute path length, probably in lens unit (at least not in waves, that’s what he’s saying in his reply).

Take care,

 

David

Userlevel 7
Badge +3

Hi Jaren,

The wavefront map is a plot of the OPD (in waves) over the pupil.  The OPD for an arbitrary ray is simply the difference between the optical path length of the ray minus the optical path length of the chief ray (again, typically expressed in terms of waves).

To compute the wavefront map in ZOS-API, it seems that the best way would be to use either the “Current” mode if the chief ray does not change, or “CurrentAndChief” if the chief ray happens to change.  The predecessor to the NormUnpol batch raytrace in ZOS-API was the Mode 0 version in Extensions (which are now deprecated).  Here’s what the help documentation says about this older mode of doing the same thing:

 

 

Regards,

Jeff

 

Reply