Perfekt, ich habe es geschafft zu tun, was ich wollte, ich habe die Funktion entsprechend dem verallgemeinert, was ich tun möchte:
Dimmen swApp als Objekt
Teil als Objekt dimmen
Dim boolstatus als boolescher Wert
Dim longstatus As Long, longwarnings As Long
Sub main()
Legen Sie swApp = Application.SldWorks fest
Set Part = swApp.ActiveDoc
Wenn GetCompInAss("Teil2") = wahr, dann
Wenn das Dokument dann Folgendes enthält:
boolstatus = Part.Extension.SelectByID2("Part2-1@Assembly", "KOMPONENTE", 0, 0, 0, Falsch, 0, Nichts, 0)
Part.EditDelete 'Löschen
Ende, wenn
Ende Sub
Funktion GetCompInAss(DocCible als Variante)
Dim vDepend als Variante
Dim bRet als boolescher Wert
Sonne i So lang
Dim swModel As SldWorks.ModelDoc2
Festlegen von swModel = swApp.ActiveDoc
vDepend = swApp.GetDocumentDependencies2(swModel.GetPathName, Wahr, Wahr, Falsch)
Wenn IsEmpty(vDepend), dann Funktion beenden
Für i = 0 TB (UBound(vDepend) - 1) / 2
Wenn vDepend(2 * i) = DocTarget, dann
GetCompInAss = Wahr
Ende, wenn
Debug.Print " " + vDepend(2 * i) + " --> " + vDepend(2 * i + 1)
Weiter i
Ende-Funktion
Letzte Fragen, wozu dient das bRet? Ich bin gezwungen, das Dokument in der Funktion neu zu verweisen. Diese Art von Redundanz lässt sich nicht vermeiden?
Wenn Sie eine andere Möglichkeit haben, den Code zu vereinfachen, bin ich interessiert.
Auf jeden Fall vielen Dank für Ihre Hilfe.