How do I create a surface with two focuses?

  • 23 November 2021
  • 1 reply

Hi everyone! My name is Leonid, I am new to zemax and I have a following task:

  1. To use a model of the eye in zemax in sequential mode (found in the internet) 
  2. To model a contact lense which I should “wear” on the eye and to see what our eye would see if I wore this contact lense. The lower surface should be fixed and have a radius of cornea. The higher surface is arbitrary. Contact lense should focus rays on two distances from the source of light - 20mm and infinity

How can I make an optimisation for the higher surface of the contact lense. So, it would both at the distance of 20 mm and at infinity? 

Now I can only do optimisation for one focus values. How to do optimisation for multifocus system is not clear for me :(


1 reply

Hello Leonid,

I am not sure to understand your issue entirely so let me rephrase and please correct me if I misunderstood.

You have a Zemax model of an eye and you want to add a contact lens in front of it to simulate what the eye would see. The contact lens should help the user (the eye) see object from 20mm to infinity. You now have to optimize the top surface of the lens (the surface located near the air space) to maximize image quality.

If the eye’s parameters do not change when looking at 20mm and infinity it is impossible for your contact lens to focus at both theses positions. You would need a dynamic optical component to adjust focus. This is the role of the crystalline lens in the eye. Does your zemax file of the eye you found on the internet has multiple configurations? Maybe close and far focus with different raidus values for the crystalline lens?

If that is the case then you can select the curvature of your contact lens as variable and optimize both configurations for far an close focus to find the optimal R value that maximizes image quality in both cases.


Best regards