修复在装配或绘图中使用轻量级组件的SOLIDWORKS宏问题
症状
SOLIDWORKS宏在处理装配中的组件(例如读取/写入属性、材料、处理特征等)时出现错误。 运行宏时显示错误运行时错误'91':对象变量或With块变量未设置。
原因
组件可以以轻量级加载,这意味着它们的底层模型未加载到内存中。 在这种情况下,组件模型的所有API都不可用。
解决方法
- 检查引用模型的指针是否不为空。向用户显示错误消息。
- 使用AssemblyDoc::ResolveAllLightWeightComponents或AssemblyDoc::ResolveAllLightWeight方法强制解析组件状态。
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