LightTools中VBA宏的编写入门----NSRAYfan的获取(杂散光) 5

NSRAYFAN与各物体交点的获取



前言

有时候因为光线与面交点的位置没法获取,采用NSRAY获取反光点位置,具体例子如下
在这里插入图片描述

一、参数设置

参数如下,NSRAYFAN一般按照发生鬼像或者flare的一族光线设置位置,此处任意取的平行光。
在这里插入图片描述

二、代码如下

代码如下(示例):

Public Sub LTDBAccess_NSRAY()


'定义参数
Dim ObjectList As String, ObjectKey As String, _
ObjectName As String, SegmentList As String, SegmentKey As String, _
SegmentName As String

Dim Status As Integer, SegmentListSize As Integer, _
ObjectListSize As Integer

Dim i As Integer, j As Integer

Dim SegmentProperty1, SegmentProperty2, SegmentProperty3, _
SegmentProperty4, SegmentProperty5, SegmentProperty6, SegmentProperty7



'定义接口
Dim lt As LTAPI
Set lt = New LTAPI
'获取nsrayfan
ObjectList = lt.DbList("LENS_MANAGER[1]", "NS_FAN")
'获取size大小
ObjectListSize = lt.ListSize(ObjectList)

'循环获取存在物体的名字,并打印交点的各个属性
For i = 1 To ObjectListSize
ObjectKey = lt.ListNext(ObjectList)
ObjectName = lt.DbGet(ObjectKey, "NAME")


'打印名字
Debug.Print ObjectName
Debug.Print "------------------------------------------------"
SegmentList = lt.DbList(ObjectKey, "NS_SEGMENT")
'当前NSray的交点
SegmentListSize = lt.ListSize(SegmentList)
For j = 1 To SegmentListSize

SegmentKey = lt.ListNext(SegmentList)
SegmentName = lt.DbGet(SegmentKey, "NAME")
'获取交点名称
SegmentProperty1 = lt.DbGet(SegmentKey, "ELEMENT")
'获取交点元件
SegmentProperty2 = lt.DbGet(SegmentKey, "SURFACE")
'获取交点面
SegmentProperty3 = lt.DbGet(SegmentKey, "FOLLOWING INDEX")
'交点折射率
SegmentProperty4 = lt.DbGet(SegmentKey, "PATH TRANSMITTANCE")
'交点透过率

' 交点的XYZ坐标
SegmentProperty5 = lt.DbGet(SegmentKey, "Global_X")
SegmentProperty6 = lt.DbGet(SegmentKey, "Global_Y")
SegmentProperty7 = lt.DbGet(SegmentKey, "Global_Z")

'打印参数
Debug.Print SegmentName, SegmentProperty1, _
SegmentProperty2, SegmentProperty3, SegmentProperty4, _
SegmentProperty5, SegmentProperty6, SegmentProperty7

Next j
Next i
'删除物体列表
Status = lt.ListDelete(ObjectList) 'Delete the ObjectList
'删除交点列表
Status = lt.ListDelete(SegmentList) 'Delete the SegmentList
End Sub

结果

输出光线与各个面交点属性和交点XYZ坐标。
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值