经典图书
在零件中做一个长方体:长×宽×高=1000×1000×10000
结果如下
ModelDocExtension::GetMassProperties()
Status = 0
CenterOfMassX = .5
CenterOfMassY = .5
CenterOfMassZ = -.5
Volume = 1
Area = 6
Mass = 7800
MomXX = 1300
MomYY = 1300
MomZZ = 1300
MomXY = 0
MomZX = 0
MomYZ = 0
-------------------------------
Option Explicit
' A list of return status values for the ModelDocExtension::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
复制代码 |