Get Mass Properties of Active Document Example (VBA)
This example shows how to retrieve the mass
properties from an active document.
'--------------------------------------------------------
Option Explicit
' A
list of return status values for the IModelDocExtension::GetMassProperties
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()
Dim
swApp As
SldWorks.SldWorks
Dim
swModel As
SldWorks.ModelDoc2
Dim
swModelExt As
SldWorks.ModelDocExtension
Dim
swAssy As
SldWorks.AssemblyDoc
Dim
swSelMgr As
SldWorks.SelectionMgr
Dim
swComp As
SldWorks.Component2
Dim
nStatus As
Long
Dim
vMassProp As
Variant
Set
swApp = CreateObject("SldWorks.Application")
Set
swModel = swApp.ActiveDoc
Set
swModelExt = swModel.Extension
vMassProp
= swModelExt.Getmassproperties(1,
nStatus)
Debug.Print
"ModelDocExtension::GetMassProperties("
+ swModel.GetPathName + ")"
Debug.Print
" Status
= " & nStatus
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)
End
If
Debug.Print
"-------------------------------"
End Sub
'--------------------------------------------------------