Skip to main content
Solved

microlens array


I want to get information about how I can design a microlens array in sequetial and non sequential mode. 

Best answer by Thomas Magnac

Hi Ceren,


This will depend on the shape of the lenses and their size to ensure that ray tracing is applicable.


In sequential mode, I would suggest the sample .dll that is included in OpticStudio.




 


Lenslet arrays are modeled using the user defined surface. Basically, the ray trace determines which segment of the array is struck, then uses the local lens curvature to determine the refraction. The sample source code and DLL are provided as US_ARRAY.C and US_ARRAY.DLL, respectively.


In non-sequential mode, the easiest would be to define the parent lens and replicate it using boleans operations and the array object.



Best,

View original
Did this topic help you find an answer to your question?

3 replies

Thomas Magnac
Zemax Staff
Forum|alt.badge.img+2
  • Zemax Staff
  • 105 replies
  • Answer
  • May 21, 2020

Hi Ceren,


This will depend on the shape of the lenses and their size to ensure that ray tracing is applicable.


In sequential mode, I would suggest the sample .dll that is included in OpticStudio.




 


Lenslet arrays are modeled using the user defined surface. Basically, the ray trace determines which segment of the array is struck, then uses the local lens curvature to determine the refraction. The sample source code and DLL are provided as US_ARRAY.C and US_ARRAY.DLL, respectively.


In non-sequential mode, the easiest would be to define the parent lens and replicate it using boleans operations and the array object.



Best,


I am trying to design a microlens array (10*10) in sequential mode but after designing the array the results show the 9*9 array.


How it is possible?

Please check the attached file and suggest it to me.


Berta.Bernad
Zemax Staff
Forum|alt.badge.img+2
  • Zemax Staff
  • 112 replies
  • October 22, 2020

Hi Neha,


US_Array models an n x m array of lenses, but the number of lenses in each direction must be odd. If you want an even number, you have a few options:


1. You could just place an aperture before the US_ARRAY.DLL object so that the correct number of lenses is chosen. 



2. You could modify the C code of the DLL to create a new lenslet array that meets your specifications (You can find the code in the DLL\Surfaces folder).


3. You could modify your sequential system to include a nonsequential region that contains your lenslet array, using the Lenslet Array object.


Reply


Cookie policy

We use cookies to enhance and personalize your experience. If you accept you agree to our full cookie policy. Learn more about our cookies.

 
Cookie settings