In sequential mode I am trying to optimizing a lens with Geometric Image Analysis. The light has to pass several apertures. It seems that the optimization algorithm is not finding the optimal solution. I suspect the reason for this, are the hard edges of the apertures. This is also described in the manual in section “Optimizing with the IMAE Operand”. It is written there to use a dll. Now I am stuck. I could not figure out how to apply a dll to an aperture.
I am thankful for any advice
Best regards
Marcel
Page 1 / 1
@MRudolf
The DLLs that this section of the Help File is referring to are User-Defined Surfaces. It is not a DLL that you should apply to an aperture. Instead, it is a custom Surface that has parameters to define its aperture.
For example, US_FILT4.DLL, which is referenced into the Help File section you mention, can be setup by changing the Surface Type column of the Lens Data Editor (LDE) to User Defined. When you do so, you get prompted with an number of pre-installed DLLs and you can pick US_FILT4.DLL.
Alternatively, you can also open a User Defined Surface Properties in the LDE and under the Type tab you find the Surface Dll drop-down menu.
You will notice that the User Defined Surface with US_FILT4.DLL has two parameters: R filter and Delta, which control the aperture of the User Defined Surface.
Those are defined in the Help File at this section: The Setup Tab » Editors Group (Setup Tab) » Lens Data Editor » Sequential Surfaces (lens data editor) » User Defined. And for US_FILT4.DLL specifically you have the following excerpt:
This is a sort of smooth circular aperture where the radius is given by R filter and the “smoothness” is controlled by the Delta parameter (bigger Delta means larger transition from completely opaque to completely transmissive). There are other DLLs with different apertures (see Help File), and if need be, you can also program your own.
I hope this helps and take care,
EDIT: unless I’m mistaken, there’s probably a typo in the Help File I imagine one of the first two equations should be:
T(r) =0 if r > R- ΔR
Would you mind having a look @Allie or @Chris Normanshire?
David
Thank you very much David,
this was exactly what I was looking for. Do you know if I can use this dll also as an obscuration with smoot edge, when I choose Cirular Oscuration in the Aperture tab? Or do I need to write a personalized dll in this case?
Best regards
Marcel
@MRudolf
If you didn’t find such a DLL among the preinstalled files. Then, you’d have to program the obscuration yourself indeed. There’s no point in using the Aperture tab anymore. Luckily, you should also have the source code: US_FILT4.c. If you’ve never written your own User-Defined Surface it can be intimidating, but the transmission is programmed in lines 185-187:
If you change the transmission inside the radius (first IF statement) to 0.0, and the transmission outside the radius (ELSE-IF statement) to 1.0, and finally add a phase of pi to the cosine in the transition region (ELSE statement), it should be enough to make the obscuration DLL: