Get Advanced Properties of Spot Light Example (VBA)
This method gets the attenuation-related, advanced properties of the
specified SOLIDWORKS spot light.
'--------------------------------------------
'
' Preconditions: Model document is open and has
' a
spot light whose SOLIDWORKS-internal light
' source
name is "SW#3".
'
' Postconditions: None
'
'-------------------------------------------
Option Explicit
Dim swApp As SldWorks.SldWorks
Dim swModel As SldWorks.ModelDoc2
Dim swModelDocExt As SldWorks.ModelDocExtension
Dim sLightName As String
Dim lLightCount As Long, i As Long
Dim dExponent As Double, dAttenuationConst As Double,
dAttenuationLinear As Double, dAttenuationQuad As Double
Sub main()
Set swApp = Application.SldWorks
Set swModel = swApp.ActiveDoc
Set swModelDocExt = swModel.Extension
lLightCount = swModel.GetLightSourceCount
Debug.Print "Number of lights: " & lLightCount
For i = 0 To lLightCount - 1
'
Get the SOLIDWORKS-internal light source name
sLightName
= swModel.GetLightSourceName(i)
Debug.Print
"SOLIDWORKS-internal light source name: " & sLightName
If
sLightName = "SW#3" Then
swModelDocExt.GetAdvancedSpotlightProperties sLightName,
dExponent, dAttenuationConst, dAttenuationLinear, dAttenuationQuad
Debug.Print
"Attenuation exponent: " & dExponent
Debug.Print
"Attenuation constant factor: " & dAttenuationConst
Debug.Print
"Attenuation linear factor: " & dAttenuationLinear
Debug.Print
"Attenuation quadratic factor: " & dAttenuationQuad
End
If
Next i
End Sub