Solved

Annular source with collimated output

  • 29 July 2021
  • 2 replies
  • 290 views

I need an annular source with collimated output. In other words, it would be like a ‘source ellipse’ using the source distance. Except, all the rays coming from the annulus would be collimated at a single angle, either converging or diverging. Any ideas on how to accomplish this?

 

Thanks

icon

Best answer by David 30 July 2021, 00:14

View original

2 replies

Userlevel 6
Badge +4

Hi Keith,

There are three ways I can think of to do this, depending on what you want as an annular source. If what you want is an annulus with a defined width, then there are two ways that might work. In the attached zip there is a file “obscuration.zar.”  In that file a Source Ellipse with the source distance specification defines diverging rays which appear to come from a point source. An ellipse in front of it has material type absorb and blocks all rays except from an annular region. This works, but it is computationally wasteful in that the majority of the rays are unwanted.

A second method is employed in “source file.zar.”  In this case, a Source Ellipse also generates rays, An annulus object is placed in front of the source, and the ray trace control is used to save the rays striking the annulus (object 2) as a dat file. This is then used as a source in a Source File object. In this case the wasteful trace can be done once to save the dat file, which can be then used for further work.

In both of these cases, the rays appear to come from a point. The angle of each ray depends on its intercept on the annulus.

 

 

There is a third possibility. If what you want is a ring of rays, this is also something I have had needed at times. I wrote a dll for this purpose. (Also a dll for a fan of rays.) I posted this earlier on the old forum. The new forum has a sub-forum for sharing code, so I have posted this under the “Programming OpticStudio / DLLs” section. The post should be self-explanatory. The ring.dll can be used with the Source DLL object to produce rings of rays in non-sequential mode:

Rings made with ring.dll

Kind regards,

David

Hi David,

Thank you for the three answers! Your method #2 will be the ticket for my project. The Ring and Y .dll will be very useful as well.

 

Regards,

Keith

Reply