Hallo
Ich konnte Ihre Dateien wegen unterschiedlicher SW-Versionen nicht öffnen, aber ich denke, Ihre beiden Teile können von derselben Notepad-Datei bearbeitet werden. Eine Möglichkeit wäre, in Ihrer Baugruppe alle Teile zu überprüfen, von denen eine der Gleichungen diese Notepad-Datei erfordert.
Hier ist bereits der Anfang des Codes eines Makros, das es ermöglicht, die untergeordneten Elemente aufzulisten, wenn eine Baugruppe geladen wird, oder zu sehen, welche Datei eine Gleichung aufruft, wenn es sich um ein Teil handelt, das geladen wird:
Option Explizit
Dimmen swApp als Objekt
Teil als Objekt dimmen
Dim boolstatus als boolescher Wert
Dim longstatus As Long, longwarnings As Long
Dim swEqnMgr As SldWorks.EquationMgr
Dim eqnLinked As Boolean
Sonne i So lang
Dim nCount So lange
Sub main()
Legen Sie swApp = Application.SldWorks fest
Set Part = swApp.ActiveDoc
TraverseAssemly
Set swEqnMgr = Part.GetEquationMgr
nCount = swEqnMgr.GetCount
Für i = 0 bis nCount - 1
eqnLinked = swEqnMgr.LinkToFile
Wenn eqnLinked dann
swEqnMgr.UpdateValuesFromExternalEquationFile
MsgBox "Pfad der Gleichungsdatei: " & swEqnMgr.FilePath
Ende, wenn
Weiter i
Ende Sub
Sub TraverseComponent(swComp als SldWorks.Component2)
Dim vChildComp als Variante
Dim swChildComp als SldWorks.Component2
Sonne i So lang
vChildComp = swComp.GetChildren
Für i = 0 TB UBound(vChildComp)
Legen Sie swChildComp = vChildComp(i) fest.
MsgBox "Söhne:" & swChildComp.Name
Weiter i
Ende Sub
Öffentliche Funktion TraverseAssemly()
Dim swConfMgr As SldWorks.ConfigurationManager
Dim swConf als SldWorks.Configuration
Dim swRootComp als SldWorks.Component2
Set Part = swApp.ActiveDoc
Wenn Teil nichts ist, dann Funktion beenden
Wenn Part.GetType() swDocASSEMBLY <>, dann Funktion beenden
Legen Sie swConfMgr = Teil.ConfigurationManager fest
Legen Sie swConf = swConfMgr.ActiveConfiguration fest
Set swRootComp = swConf.GetRootComponent3(True)
Aufrufen von TraverseComponent(swRootComp)
Ende-Funktion
Herzliche Grüße