Code:
Option ExplicitPublic swApp As Object
Public swModel As SldWorks.ModelDoc2
Public swAssembly As SldWorks.AssemblyDoc
Public swComponent As SldWorks.Component2
Public vComponents As Variant
Public lCompCount As Long
Sub Test()
If InBaugruppe("C:\Baugruppe1.SLDASM", "C:\Teil1.SLDPRT") Then
MsgBox "Die Datei ist in der Baugruppe verbaut"
Else
MsgBox "Die Datei wird in der Baugruppe nicht verwendet"
End If
End Sub
Public Function InBaugruppe(PfadBaugruppe As String, PfadDatei As String) As Boolean
Dim i As Integer
Dim Zwischenspeicher As String
Dim Errors As Long
Set swApp = Application.SldWorks
swApp.DocumentVisible False, swDocASSEMBLY
Set swModel = swApp.OpenDoc3(PfadBaugruppe, swDocASSEMBLY, True, True, True, True, Errors)
Set swAssembly = swModel
InBaugruppe = False
lCompCount = swAssembly.GetComponentCount(True)
vComponents = swAssembly.GetComponents(True)
For i = 0 To lCompCount - 1
Set swComponent = vComponents(i)
Zwischenspeicher = swComponent.GetPathName
If Zwischenspeicher = PfadDatei Then
InBaugruppe = True
Exit For
End If
Next i
swApp.DocumentVisible True, swDocASSEMBLY
swApp.QuitDoc swModel.GetTitle
Set swModel = swApp.ActiveDoc
End Function