Skip to main content

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

Thank you,

John

 

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


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