跳到主要内容

修复在装配或绘图中使用轻量级组件的SOLIDWORKS宏问题

症状

SOLIDWORKS宏在处理装配中的组件(例如读取/写入属性、材料、处理特征等)时出现错误。 运行宏时显示错误运行时错误'91':对象变量或With块变量未设置

原因

组件可以以轻量级加载,这意味着它们的底层模型未加载到内存中。 在这种情况下,组件模型的所有API都不可用。

特征管理器树中的轻量级组件

解决方法

Dim swApp As SldWorks.SldWorks
Dim swAssy As SldWorks.AssemblyDoc

Sub main()

Set swApp = Application.SldWorks

Set swAssy = swApp.ActiveDoc

swAssy.ResolveAllLightWeightComponents True

Dim swComp As SldWorks.Component2
Set swComp = swAssy.SelectionManager.GetSelectedObject6(1, -1)

Dim swRefModel As SldWorks.ModelDoc2
Set swRefModel = swComp.GetModelDoc2

If Not swRefModel Is Nothing Then '检查指针是否不为空
MsgBox "材料:" & swComp.Name2 & " 的材料:" & swRefModel.MaterialIdName
Else
MsgBox "组件的模型未加载到内存中" '显示错误
End If

End Sub