SolidWorks二次开发:在程序中获取质量特征里的信息

SolidWorks二次开发:在程序中获取质量特征里的信息,第1张

概述 问题描述:在SolidWorks中进行二次开发时,在程序中如何实现获得质量特性里的信息,如体积、表面积、重心等。 问题解决: 程序如下(语言类型是VB) Option Explicit Public Enum swMassPropertyMoment_e     swMassPropertyMomentAboutCenterOfMass = 0     swMassPropertyMomentA

问题描述:在SolIDWorks中进行二次开发时,在程序中如何实现获得质量特性里的信息,如体积、表面积、重心等。

问题解决:

程序如下(语言类型是VB)

Option Explicit

Public Enum swMasspropertyMoment_e

swMasspropertyMomentAboutCenterOfMass = 0

swMasspropertyMomentAboutCoordSys = 1

End Enum

Public Enum swMasspropertIEsstatus_e

swMasspropertIEsstatus_OK = 0

swMasspropertIEsstatus_UnkNownError = 1

swMasspropertIEsstatus_NoBody = 2

End Enum

Public Enum swBodyType_e

swSolIDBody = 0

swSheetbody = 1

swWireBody = 2

swMinimumBody = 3

swGeneralBody = 4

swEmptyBody = 5

End Enum

Public Enum swUserPreferenceDoubleValue_e

swMaterialPropertyDensity = 7

End Enum

Sub main()

Dim swApp As SlDWorks.SlDWorks

Dim swModel As SlDWorks.ModelDoc2

Dim swDocExt As SlDWorks.ModelDocExtension

Dim swMass As SlDWorks.Massproperty

Dim swSelMgr As SlDWorks.SelectionMgr

Dim swComp As SlDWorks.Component2

Dim vBodyArr As Variant

Dim vCoM As Variant

Dim vMoI As Variant

Dim vPrinAoIx As Variant

Dim vPrinAoIy As Variant

Dim vPrinAoIz As Variant

Dim vPrinMoI As Variant

Dim nDensity As Double

Dim bRet As Boolean

Set swApp = Application.SlDWorks

Set swModel = swApp.ActiveDoc

Set swDocExt = swModel.Extension

Set swMass = swDocExt.CreateMassproperty

Set swSelMgr = swModel.SelectionManager

Set swComp = swSelMgr.GetSelectedobjectsComponent2(1)

vBodyArr = swComp.GetBodIEs2(swSolIDBody): DeBUG.Assert Not IsEmpty(vBodyArr)

bRet = swMass.AddBodIEs((vBodyArr)): DeBUG.Assert bRet

vCoM = swMass.CenterOfMass

vMoI = swMass.GetMomentOfInertia(swMasspropertyMomentAboutCenterOfMass)

vPrinAoIx = swMass.PrincipleAxesOfInertia(0)

vPrinAoIy = swMass.PrincipleAxesOfInertia(1)

vPrinAoIz = swMass.PrincipleAxesOfInertia(2)

vPrinMoI = swMass.PrincipleMomentsOfInertia

DeBUG.Print "file = " & swModel.GetPathname

DeBUG.Print " Comp = " & swComp.name2

DeBUG.Print " Config = " & swComp.ReferencedConfiguration

DeBUG.Print " Density = " & swMass.Density & " kg/m^3"

DeBUG.Print ""

DeBUG.Print " CenterOfMass = (" & vCoM(0) * 1000# & "," & vCoM(1) * 1000# & "," & vCoM(2) * 1000# & ") mm"

DeBUG.Print " Volume = " & swMass.Volume * 1000000000# & " mm^3"

DeBUG.Print " Area = " & swMass.SurfaceArea * 1000000# & " mm^2"

DeBUG.Print " Mass = " & swMass.Mass & " kg"

DeBUG.Print ""

DeBUG.Print " Ix = (" & vPrinAoIx(0) & "," & vPrinAoIx(1) & "," & vPrinAoIx(2) & ")"

DeBUG.Print " Iy = (" & vPrinAoIy(0) & "," & vPrinAoIy(1) & "," & vPrinAoIy(2) & ")"

DeBUG.Print " Iz = (" & vPrinAoIz(0) & "," & vPrinAoIz(1) & "," & vPrinAoIz(2) & ")"

DeBUG.Print ""

DeBUG.Print " Px = " & vPrinMoI(0) & " kg*m^2"

DeBUG.Print " Py = " & vPrinMoI(1) & " kg*m^2"

DeBUG.Print " Pz = " & vPrinMoI(2) & " kg*m^2"

DeBUG.Print ""

DeBUG.Print " Lxx = " & vMoI(0) & " kg*m^2"

DeBUG.Print " Lxy = " & vMoI(1) & " kg*m^2"

DeBUG.Print " Lxz = " & vMoI(2) & " kg*m^2"

DeBUG.Print " Lyx = " & vMoI(3) & " kg*m^2"

DeBUG.Print " Lyy = " & vMoI(4) & " kg*m^2"

DeBUG.Print " Lyz = " & vMoI(5) & " kg*m^2"

DeBUG.Print " Lzx = " & vMoI(6) & " kg*m^2"

DeBUG.Print " Lzy = " & vMoI(7) & " kg*m^2"

DeBUG.Print " Lzz = " & vMoI(8) & " kg*m^2"

End Sub

总结

以上是内存溢出为你收集整理的SolidWorks二次开发:在程序中获取质量特征里的信息全部内容,希望文章能够帮你解决SolidWorks二次开发:在程序中获取质量特征里的信息所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/langs/1292525.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-10
下一篇 2022-06-10

发表评论

登录后才能评论

评论列表(0条)

保存