在Inventor的部件中,由于某些非关键零部件丢失后,无法正常读取时。需要将这些零件批量删除,通过以下代码可以实现批量删除的功能。
使用方法:
1、打开Inventor VBA模块
2、复制代码进入VBA代码模块中,运行宏aa即可
Sub aa()
Dim oAssemDoc As AssemblyDocument
Set oAssemDoc = ThisApplication.ActiveDocument
Dim oCompDef As AssemblyComponentDefinition
Set oCompDef = oAssemDoc.ComponentDefinition
Call Delete(oAssemDoc)
End Sub
Sub Delete(ByRef oAssemDoc As AssemblyDocument)
Dim oO As ComponentOccurrence
For Each oO In oAssemDoc.ComponentDefinition.Occurrences
If oO.DefinitionDocumentType = kPartDocumentObject Then
If oO.ReferencedFileDescriptor.ReferenceStatus = kMissingReference Then
oO.Delete
End If
Else
Dim oSO As ComponentOccurrence
For Each oSO In oO.SubOccurrences
If oSO.DefinitionDocumentType = kPartDocumentObject Then
If oSO.ReferencedFileDescriptor.ReferenceStatus = kMissingReference Then
oSO.Delete
End If
Else
Delete(oSO)
End If
Next
End If
Next
End Sub