Get Mass Properties of Active Document Example (VBA)
This example shows how to retrieve the mass
properties from an active document.
'----------------------------------------------------------------------------
' Preconditions:
' 1. Open a document with mass properties.
' 2. Open an Immediate window.
'
' Postconditions: Inspect the Immediate window for the mass properties.
'----------------------------------------------------------------------------
Option Explicit
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 as defined in
swMassPropertiesStatus_e = " & 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
End Sub