Get Model Material Property Values Example (VBA)
This example shows how to get the material property values of components in
lightweight mode.
'----------------------------------------------------------------------------
' Preconditions:
' 1. Open in lightweight mode:
' <SOLIDWORKS_install_dir>\samples\tutorial\api\TopAssembly1.SLDASM
' 2. Open an Immediate window.
'
' Postconditions: Inspect the Immediate window for the material property values
' of the lightweight components in the model.
' NOTE: Because the model is used elsewhere,
' do not save changes when closing it.
' ---------------------------------------------------------------------------
Dim swApp As SldWorks.SldWorks
Dim swDoc As SldWorks.ModelDoc2
Dim swADoc As SldWorks.AssemblyDoc
Dim varComp As Variant
Dim varMatProp As Variant
Option Explicit
Sub main()
Set swApp = Application.SldWorks
Set swDoc = swApp.ActiveDoc
Set swADoc = swDoc
varComp = swADoc.GetComponents(True)
Dim I As Long
For I = LBound(varComp) To UBound(varComp)
Dim swComp As SldWorks.Component2
Set swComp = varComp(I)
varMatProp = swComp.GetModelMaterialPropertyValues(swComp.ReferencedConfiguration)
If Not (IsEmpty(varMatProp)) Then
Debug.Print (swComp.Name2 & "(" & I &
")" & "ConfigName : " & swComp.ReferencedConfiguration & "MatProp : ")
Debug.Print "Red: " & (varMatProp(0))
* 255#
Debug.Print "Green: " &
(varMatProp(1)) * 255#
Debug.Print "Blue: " &
(varMatProp(2)) * 255#
Debug.Print "Ambient: " &
(varMatProp(3)) * 100# & "%"
Debug.Print "Diffuse: " &
(varMatProp(4)) * 100# & "%"
Debug.Print "Specularity: " &
(varMatProp(5)) * 100# & "%"
Debug.Print "Shininess: " &
(varMatProp(6)) * 100# & "%"
Debug.Print "Transparency: " &
(varMatProp(7)) * 100# & "%"
Debug.Print "Emission: " &
(varMatProp(8)) * 100# & "%"
End If
Debug.Print ""
Next I
varComp = Empty
End Sub