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
Enter your E-mail address. We'll send you an e-mail with instructions to reset your password.