我想在lighttools操作指南中模仿参考代码写一个能够建立自由曲面透镜的代码,实现通过matlab在lt软件中建立自由曲面的目的,但总是会报错提示ans =
'ltStatusDatakeyNotFound',一直找不到原因!
以下是我的代码:求大神解答,谢谢
clcclear
close all
actxserver('LightTools.LTAPI');
% 添加 .NET 程序集
asm = NET.addAssembly('D:\lighttools\Utilities.NET\LTCOM64.dll');
% 创建 并绑定API 对象
lt = LTCOM64.LTAPIx;%光线追迹
lt.LTPID = 24376;
lt.UpdateLTPointer;
js = LTCOM64.JSNET2;%几何建模
js.LTPID = lt.LTPID;
js.UpdateLTPointer;
lt.Message('hello')
%创建一个透镜
thickness = 0.5;
frontradius = 0;
rearradius = 0;
shape = 'C';%Optional. Aperture of lens can be "Circular/C" or "Rectangular/R".
WL = 1;HL = 0.1;
lensname = 'lens1';
MakeLens(js ,thickness ,frontradius ,rearradius ,shape ,WL ,HL ,lensname);
%创建一个自由曲面
surfaceKey = 'lens1.surface[1]';%定义曲面
numPointsU = 10;
numPointsV = 30;
focallength = 0.5;%归一化焦距
x = linspace(-1 ,1 ,numPointsU);
y = linspace(-1 ,1 ,numPointsV);
= meshgrid(x ,y);
Z =5*X .* exp(-X.^2 - Y.^2);
figure(1)
surf(X ,Y ,Z);
= lt.SetFreeformSurfacePoints(surfaceKey ,X ,Y ,Z ,numPointsV ,numPointsU);char(retVal2)