Skip to main content

I have a macro for displacing a particular lens in my system and after each induced displacement error, I call OPTIMIZE on the compensator surface; say Surface 0 with Thickness as the compensator variable. Doing so blows up the thickness value based on the optimizer output. How do I apply bounds to the compensator surface property ?

Hi Asuku,

 

Based on your description of the problem, I understand that you are not using the Tolerancing features of OpticStudio. Basically, you are changing a thickness to move a lens of your system with a macro, and then calling the optimizer with a specific surface thickness (surface 0 in your example) as a variable.

If I understood your problem correctly, then, all you need to do is use boundary constrains in your Merit Function. If your “home-made compensator” is an air thickness, you should use: MNCA for minimum center thickness in air, MXCA for maximum center thickness in air, and MNEA for minimum edge thickness in air. The same operands exist for a glass thickness: MNCG, MXCG, and MNEG.

If you use the Merit Function Wizard, those can be automatically generated by using the fields in the Boundary Values box on the right:

By default OpticStudio generates those boundary operands for all thicknesses (except if the thickness is Infinity or the IMAGE surface). Some time ago, I made a custom user-extension to only set the boundaries on variable thicknesses that I uploaded there.

Let me know if this answers your question.

Take care,

 

David


Reply