How can i use lens surface profile type made by matlab in zemax?

  • 5 March 2021
  • 0 replies
  • 87 views

Hello, I'm a student studying optics. I want to measure the optical characteristics by bringing the lens surface file made of matlab to zemax. But I don't know how to use zos-api even if I watch YouTube. So I ask for help from the forum.

The solution I thought about is to extract 3D objects from Matlab and put them in zemax, and I wonder if anyone has actually done it.


my ultimate goal is to engrave the image of the attached file on the surface of the lens.


this is matlab chord


clc

clear all

clf


% line space

global mm um nm;

mm = 1e-3;

um = mm * mm;

nm = um * mm;


pp = 2 * um;  % pixel pitch

res = 1024;

wvl = 550 * nm;


% transmission function

T1 = @(F, angles) exp(1j * F .* angles);

T2 = @(F, angles) exp(-1j * F .* angles);


% equation 5

T_parab =@(theta) exp(1j * theta * round(a * R.^2));




%function y = moire(theta, pyi)

global mm um nm;


% moire coefficent

a = 3.12 * 1e+7;  


% grid setup

x = -pp * res/2 + pp/2 : pp : pp*res/2 -pp/2;

y = x;

[X, Y] = meshgrid(x, y);


r = sqrt(X.^2 + Y.^2);

phy_range = atan((X./Y))+0.5*pi;

phy_range(res/2+1:res, 🙂 = phy_range(res/2+1:res, 🙂 - pi;




Moire_1 = exp(1j * round(a *(X.^2 + Y.^2)) .* phy_range);

subplot(2,3,1);

imshow(angle(Moire_1), []);

axis on;

title('MOIRE 1st')


    

for rotate_theta=0: 10 : 100

    

    %2nd moire pattern

    Moire_2 = imrotate(conj(Moire_1), rotate_theta, 'crop');  

    subplot(2, 3, 2);

    imshow(angle(Moire_2), []);

    axis on;

    title('MOIRE 2nd',num2str(rotate_theta))


    %Result of total lens

    result=angle(Moire_1.*(Moire_2));

    subplot(2, 3, 3);

    imshow(angle(result), []);

    axis on;

    title('result', num2str(rotate_theta))  

    pause(0.2);

    

    subplot (2,3,4)

    mesh(angle(Moire_1))

    title ('Moire_1 mesh', [])

    

    subplot (2,3,5)

    mesh(angle(Moire_2))

    title ('Moire_2 mesh', num2str(rotate_theta))

    

    subplot (2,3,6)

    mesh(angle(result))

    title ('result mesh', num2str(rotate_theta))

%     print(sprintf('Moire %s.jpg',num2str(rotate_theta)))


end

 

targetsufimage.png

0 replies

Be the first to reply!

Reply