We’re putting the final touches on our new badges platform. Badge issuance remains temporarily paused, but all completions are being recorded and will be fulfilled once the platform is live. Thank you for your patience.

Ansys Learning Forum Forums Discuss Simulation Optics Zemax: creating an array of tilted source Reply To: Zemax: creating an array of tilted source

Christophe Weisse
Ansys Employee

Hello,

To the best of my knowledge, you won’t find an object that readily does that.

However, you could use a macro or the ZOS-API to place and orient the array of sources to your will.

Here’s a (hopefully close enough) 1D example of what you could do with a ZPL macro. All sources aim at the same point, you use-case being simplier it is rather easy to edit the code to match your needs:

 

# "Focal" distance of the detectors
distance = 25

# Distance between detectors as a factor of the index value
factor = 4

FOR det_index, -5, 5, 1
    # Insert new object in first line of editor
    INSERTOBJECT 1, 1
    
    # Change object type to Detector Rectangle
    SETNSCPROPERTY 1, 1, 0, 0, "NSC_DETE"
    
    # Calculate Detector Y Position
    y_pos = factor * det_index
    
    # Change Detector Y Position
    SETNSCPOSITION 1, 1, 2, y_pos
    
    # Calculated required Tilt About X in deg
    IF (det_index == 0)
        tilt_x = 0
    ELSE
        tilt_x = 90 - ATAN( distance / y_pos ) / 3.14159265359 * 180
    ENDIF
    
    # Adjust Detector Tilt About X
    SETNSCPOSITION 1, 1, 4, tilt_x
NEXT

 

If you run this macro, this is what the 3D Layout will look like:

 


If you need the array to be parametric and/or if your array is very large, it could then be more convenient to program the source the way you need with the Source DLL option.