LightTools中VBA宏的编写入门 杂散光分析 2

杂散光分析中不同路径光线数目和能量获取


前情提示

上一篇的案例介绍中只获取了第一个主光斑的光线数和能量的获取,本次实验主要获取其中包含杂散光路径的光线数目以及能量。

一、具体操作过程

依旧打开LightTools中strayLight的例子,如下
在这里插入图片描述
打开以后,需要跑一次程序,即光线追迹一次,当然也可以后续在代码中跑一次,为了节约时间,直接先跑一下。
在这里插入图片描述
我们感兴趣的依旧是探测器上的数据,因此我们要将上图中的所有光线数和所有的Power读出,代码在下一节,此次实验我们只读取0°时数据,其他不同角度只需要和上一节一样,做一次循环即可。

二、代码数据

代码如下(示例):

Sub GETPARM()


'循环将每次仿真的结果粘贴入excel
'****************************
'定义接口
Dim lt As LightTools.LTAPI
Set lt = New LightTools.LTAPI
Dim ObjectKey As String
K = 1

ObjectKey = "LENS_MANAGER[1].ILLUM_MANAGER[Illumination_Manager].RECEIVERS[Receiver_List].SURFACE_RECEIVER[receiver_9].FORWARD_SIM_FUNCTION[Forward_Simulation]"
'ObjectKey = "ILLUM_MANAGER[1].SIMULATIONS[forwardSim_1]"
NumPaths = lt.DbGet(ObjectKey, "NumberOfRayPaths")

For K = 1 To NumPaths Step 1

mainspotpower = lt.DbGet("LENS_MANAGER[1].ILLUM_MANAGER[Illumination_Manager].RECEIVERS[Receiver_List].SURFACE_RECEIVER[receiver_9].FORWARD_SIM_FUNCTION[Forward_Simulation]", "RayPathPowerAt", "1", K)
mainspotraynum = lt.DbGet("LENS_MANAGER[1].ILLUM_MANAGER[Illumination_Manager].RECEIVERS[Receiver_List].SURFACE_RECEIVER[receiver_9].FORWARD_SIM_FUNCTION[Forward_Simulation]", "RayPathNumRaysAt", "1", K)
Worksheets("Sheet1").Range(Cells(K, 1), Cells(K, 1)) = K
Worksheets("Sheet1").Range(Cells(K, 2), Cells(K, 2)) = mainspotpower
Worksheets("Sheet1").Range(Cells(K, 3), Cells(K, 3)) = mainspotraynum

Next K
End Sub

输出结果如下

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值