Skip to main content
Solved

How to bound compensator surface property to certain range?

  • July 13, 2022
  • 1 reply
  • 388 views

  • Ultraviolet
  • 27 replies

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 ?

Best answer by David.Nguyen

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

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

1 reply

David.Nguyen
Luminary
Forum|alt.badge.img+2
  • Luminary
  • 1097 replies
  • Answer
  • July 13, 2022

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


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