Solved

Find vignetting surface

  • 18 February 2022
  • 2 replies
  • 178 views

Userlevel 3
Badge

If you system has vignetting, is there a way to list surface(s) are doing the vignetting?

Thank you,

John

 

icon

Best answer by John.Hygelund 22 February 2022, 01:36

View original

2 replies

Userlevel 7
Badge +3

Hi John,

One option could be to write a short ZPL script to trace a set of rays that originates from one or more field points and spans the pupil, then use the RAYV function to get the surface number(s) at which vignetting occurs

and print those surface numbers (and of course once a given surface is found to be vignetting for any one ray, it doesn’t need to be printed again).  Something similar could also be done using ZOS-API.

Regards,

Jeff

Userlevel 3
Badge

Hi Jeff, thanks for pointing out this ZPL function.

Not very elegant, but this does the trick! Much more efficient than manually stepping through the surfaces

! Find vignetted surface

FOR I, 0,1,.1
RAYTRACE 0,1,0,I
V = RAYV()
FORMAT 1.1
PRINT "Hy=1.0, Py=",I," first surface to vignette: ",V
NEXT

Example output

Hy=1.0, Py=0.0 first surface to vignette: 0.0
Hy=1.0, Py=0.1 first surface to vignette: 0.0
Hy=1.0, Py=0.2 first surface to vignette: 0.0
Hy=1.0, Py=0.3 first surface to vignette: 11.0
Hy=1.0, Py=0.4 first surface to vignette: 11.0
Hy=1.0, Py=0.5 first surface to vignette: 11.0
Hy=1.0, Py=0.6 first surface to vignette: 11.0
Hy=1.0, Py=0.7 first surface to vignette: 8.0
Hy=1.0, Py=0.8 first surface to vignette: 8.0
Hy=1.0, Py=0.9 first surface to vignette: 8.0
Hy=1.0, Py=1.0 first surface to vignette: 8.0

Reply