Solved

lens array

  • 16 October 2021
  • 5 replies
  • 1719 views

Hi Everyone! Help me please to model the lens array in sequential mode. I mean some lens (no microlens) in the same plane on the circle radius. 

icon

Best answer by Ray 19 October 2021, 09:12

View original

5 replies

Userlevel 4
Badge

Select “User Specified” as surface type

Then you can select a DLL such as US_ARRAY, US_ARRAYEVEN. See the “User Defined” surface documentation for details.

Userlevel 6
Badge +4

This could be implemented in sequential mode using a user defined DLL. However, I don’t know of any supplied DLLs for producing such an array in pure sequential mode. (Those available produce rectangular arrays.)  (Note that to be useful all of the lenses would need to be a single surface, otherwise different rays could not strike different lenses first.)

Such an array can be created in non-sequential mode using the Ring Array object. This could then be used in mixed mode. In mixed mode, a Nonsequential Component is inserted as a surface in the sequential lens data editor. Sequential rays can enter the nonsequential system through an entrance port, interact with nonsequential objects, and return to the sequential environment through an exit port. There is an excellent article on this here.

The attached file implements such a system. Collimated sequential rays from a single zero degree angle field enter the nonsequential system and encounter a radial array of lenses. The lenses each focus the rays that strike them. The rays then return to the sequential environment and proceed to the image plane. The entrance and exit ports are drawn. The reference object used to form the array is set so that rays ignore it, but I have left it drawn for illustration.

The usefulness of this model is limited. The six lenses form six spots on the image plane. Since they are from a single field, optimization will try to form one spot, which it will be unable to do.

 

Userlevel 4
Badge

The sequential DLL is quite easy to modify (non sequential are more complex). There are more array types available in this forum post:

 

Another simple option is to use multi configuration, with one configuration per lens.

Hi! Ray, I have not access to the page from your last message.  Don't know why. Can you save it in text format and send me? 

David, thanks. I know this method. I think there is the lens array as the sequential element. 

Userlevel 6
Badge +2

Hi @Maximizator - The solution Ray shared is part of the Code Exchange. This space is restricted to users who have an active, supported Zemax license. Ray will not be able to share the code from that space in a public forum. If you do have a supported license, send me a private message. I can sort out your account details on the forum if needed. 

As Ray mentioned, there are sequential array lens types which come with your installation of OpticStudio. They are found in the folder Zemax\DLL\Surfaces. We also provide the source code for the US_ARRAY and US_ARRAYEVEN so you can modify it as needed in order to represent whichever surface type you need. Please refer to the following Knowledgebase article for details on how to compile a DLL: How to compile a User-Defined DLL – Knowledgebase (zemax.com).

Reply