Hallo allerseits,
ich bin neu im Forum und auch noch neu im Umgang mit Inventor, insbesondere der Makroprogrammierung.
Ich versuch gerade aus einer Excel Tabelle mittels VB Script die Masse aus einer Reihe von .ipt Dateien auszulesen. Das Script funktioniert im Prinzip, aber ich hab es aus Zeitdruck und mangelnder Erfahrung schlampig programmiert, so dass es sehr fehleranfällig ist. Deshalb würde ich gerne eine vernünftige error handling einfügen. Ich brauche dazu aber Hilfe. Ich habe schon in diesem Forum und im Netz allgemein gesucht, aber komme nicht wirklich voran.
Hier der relevante Code:
Dim iv As Inventor.Application
Set iv = CreateObject("Inventor.Application")
Dim myDoc As Inventor.Document
Dim path As String
Do While i <= o
path = Worksheets(1).Cells(i, SUCHSPALTE).Value 'liest ipt Dateiname aus Liste aus
On Error GoTo Err
Set myDoc = iv.Documents.Open(path, True)
m = myDoc.ComponentDefinition.MassProperties.Mass
Worksheets(1).Cells(i, AUSGABESPALTE).Value = m
myDoc.Close
Err:
i = i + 1
Application.Wait (Now + 0.000001)
Loop
Die Probleme sind:
1. Wenn Dateien zwar existieren, aber irgendwie beschädigt sind, sich nicht öffnen lassen, hängt das Script unendlich lange daran fest, wirft immer wieder OLE-Fehlermeldungen. Kann ich da ein Delay o.ä. einfügen, damit er nach x Sekunden zur nächsten Datei springt? Der OnError Block bringt leider nichts.
2. Wenn das Script durchgelaufen ist und ich die Excel Datei beende, gibt es manchmal Dutzende Inventorfehlermeldungen: Prozess nicht richtig beendet. Schließe ich die Inventordateien oder Instanzen nicht richtig?
3. Ich habe einen kleinen Delay am Ende jedes Schleifendurchlaufs eingeführt, da das Script dann runder lief. Ich habe aber keine Ahnung warum.
4. Eine Abfrage, ob die zu öffnende Datei existiert, gehört da natürlich auch noch hin. Das kann ich selbst ergänzen, war bis jetzt nicht nötig, da die Liste im gleichen Script erstellt wird und somit aktuell ist. Gut ist das natürlich nicht
Vielen Dank schonmal, falls jemand helfen mag. Insbesondere Punkt 1 krieg ich nicht in den Griff.
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP