Get Mass Properties of Inactive Document Example (VBA)
This example shows how to retrieve the mass properties from a closed
assembly document.
'--------------------------------------------------------
Option Explicit
' A
list of return status values for the SldWorks::GetMassProperties2 API
Public Enum swMassPropertiesStatus_e
swMassPropertiesStatus_OK
= 0
swMassPropertiesStatus_UnknownError
= 1
swMassPropertiesStatus_NoBody
= 2
End Enum
Public Enum swUserPreferenceToggle_e
swUpdateMassPropsDuringSave
= 30
End Enum
Sub main()
Const
sFileName As
String = "D:\am\samples\examples\claw\claw-mechanism.sldasm"
Const
sConfigName As
String = "Default"
Dim
swApp As
SldWorks.SldWorks
Dim
swAssy As
SldWorks.AssemblyDoc
Dim
swSelMgr As
SldWorks.SelectionMgr
Dim
vMassProp As
Variant
Set
swApp = CreateObject("SldWorks.Application")
vMassProp
= swApp.GetMassProperties2(sFileName,
sConfigName, 1)
Debug.Print
"SldWorks::GetMassProperties2("
+ sFileName + "[" + sConfigName + "])"
Debug.Print
" UpdateMassPropsDuringSave
= " & swApp.GetUserPreferenceToggle(swUpdateMassPropsDuringSave)
Debug.Print
""
If
Not IsEmpty(vMassProp) Then
Debug.Print
" CenterOfMassX
= " & vMassProp(0)
Debug.Print
" CenterOfMassY
= " & vMassProp(1)
Debug.Print
" CenterOfMassZ
= " & vMassProp(2)
Debug.Print
" Volume
= " & vMassProp(3)
Debug.Print
" Area
=
" & vMassProp(4)
Debug.Print
" Mass
=
" & vMassProp(5)
Debug.Print
" MomXX
= " & vMassProp(6)
Debug.Print
" MomYY
= " & vMassProp(7)
Debug.Print
" MomZZ
= " & vMassProp(8)
Debug.Print
" MomXY
= " & vMassProp(9)
Debug.Print
" MomZX
= " & vMassProp(10)
Debug.Print
" MomYZ
= " & vMassProp(11)
Debug.Print
"-------------------------------"
End
If
End Sub
'--------------------------------------------------------