Hallo Hermann75,
vielen Dank für die zusätzliche Info, das hat geholfen. Du hast tatsächlich einen kleinen Knoten in deiner Logik, die nicht unbedingt auffällt, wenn alle Dokumente bei euch Standardisierte Konfigurationsnamen haben. Ich versuch das erst mal zu erläutern, die Lösung hängt auch dran, ist recht simpel, wenn man das Problem dingfest gemacht hat (wie meistens in der Programmierung ):
Ich geh anhand von dem ersten Bild vor: du holst dir das ModelDoc deiner Hauptbaugruppe (Punkt 1) in die Objektvariable swModel und holst dir von dieser Hauptbaugruppe später in deiner Komponentenschleife dann die Anzahl der Konfigurationen und die Konfigurationsnamen (Punkt 2).
In der Schleife klapperst du über die ganzen Komponenten und holst dir jeweils die ModelDocs der Komponenten nach swcompmodel und die Extension dafür nach swModelDocExt (Punkt 3).
Für die konfigurationsspezifischen Eigenschaften willst du dann logischerweise den Propertymanager der ModelDocs der Komponenten benutzen, aber das tust du nicht ganz, da du nacheinander die Konfigurationsnamen der Hauptbaugruppe durchläufst und mit diesen Namen in der Komponente den Propertymanager holst. (Punkt 4)
Das klappt alles, solange deine Komponenten durch Zufall genau dieselben Konfigurationsnamen haben wie deine Hauptbaugruppe. Wenn jetzt aber in der Hauptbaugruppe eine Konfiguration dran ist, deren Namen in der Komponente nicht existiert, versucht das Makro einen Propertymanager für eine Konfiguration zu holen, die gar nicht existerit, daraufhin ist das swCustProp Nothing und die nächste Zeile fliegt auf die Nase mit Runtime Error 91.
Die Lösung ist recht einfach, du willst ja die Dateieigenschaften deiner Komponenten schreiben und musst dafür die Konfigurationen der Komponente durchlaufen, also wie in Bild 2 zwei Zeilen ändern:
Code:
'Konfigurationen ausfindig machen
ConfigCount = swCompModel.GetConfigurationCount
ConfigNames = swCompModel.GetConfigurationNames
Ich hoffe, das war verständlich
Ciao,
Stefan
------------------
Inoffizielle deutsche SolidWorks Hilfeseite http://solidworks.cad.de
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP