| |
| Gut zu wissen: Hilfreiche Tipps und Tricks aus der Praxis prägnant, und auf den Punkt gebracht für Autodesk Produkte |
| |
| PNY präsentiert die neue NVIDIA RTX A400 und die A1000 Grafikkarte, eine Pressemitteilung
|
Autor
|
Thema: Werkstoffdatenbank auslesen (926 / mal gelesen)
|
Enric Mitglied Ingenieurbüro
Beiträge: 249 Registriert: 29.02.2008 Einsatz: Inventor 2018
|
erstellt am: 16. Mrz. 2023 15:42 <-- editieren / zitieren --> Unities abgeben:
Hallo liebe CAD Gemeinde, ich habe ein Code gefunden, der mir die Werkstoffdatenbank von Inventor auslesen und in Excel schreiben soll. Das über eine ILogic Regel! Leider läuft der nicht richtig! Kann mir da einer weiter helfen? Im Anhang der Code. Danke schon mal für eure Hilfe. VG Enric ------------------ Konstruktion Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
rkauskh Moderator Dipl.-Ing. (FH) Versorgungstechnik
Beiträge: 2630 Registriert: 15.11.2006 Windows 10 x64, AIP 2020-2025
|
erstellt am: 16. Mrz. 2023 15:54 <-- editieren / zitieren --> Unities abgeben: Nur für Enric
|
hermann Mitglied Konstrukteur
Beiträge: 257 Registriert: 11.04.2001
|
erstellt am: 17. Mrz. 2023 11:23 <-- editieren / zitieren --> Unities abgeben: Nur für Enric
Wurde das aktuelle Dokument vor dem Ausführen der Regel gespeichert? Dies ist mit diesem Code m.E. zwingend erforderlich, siehe folgender Abschnitt: Code: '[ Set Excel file path and name myPath = ThisDoc.Path myFileName = iProperties.Value("project", "Part Number") & ".xlsx" path_and_name = myPath & "\" & myFileName ']
Speicherort und Dateiname der Excel-Datei werden aus den hier deklarierten Variablen "myPath" und "myFileName" gebildet. Außerdem weiter unten das automatische speichern der Excel-Datei getriggert. Die Werte der Variablen werden erst nach dem Speichern des Inventor-Dokuments gesetzt und sind bei nicht gespeicherten Inventor-Dokument leer; -siehe iProperties Speicherort und Bauteilnummer. Folglich fehlen Excel diese Informationen und es kommt zu einer Fehlermeldung. Könnte man mit Prüfung des Speicherstatus und anschließendem Hinweis zum Speichern des Dokuments auffangen. [Diese Nachricht wurde von hermann am 17. Mrz. 2023 editiert.] Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Enric Mitglied Ingenieurbüro
Beiträge: 249 Registriert: 29.02.2008 Einsatz: Inventor 2018
|
erstellt am: 17. Mrz. 2023 15:24 <-- editieren / zitieren --> Unities abgeben:
Hallo, das Modell ist gespeichert und dann starte ich die iLogic Regel! Excel wir auf gemacht, und er liest ein Teil der Materialdatenbank auf, aber nicht alle. Der Fehler taucht aber weiter auf, sobald Excel auf gemacht worden ist. VG Enric ------------------ Konstruktion Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
rkauskh Moderator Dipl.-Ing. (FH) Versorgungstechnik
Beiträge: 2630 Registriert: 15.11.2006 Windows 10 x64, AIP 2020-2025
|
erstellt am: 17. Mrz. 2023 15:48 <-- editieren / zitieren --> Unities abgeben: Nur für Enric
|
Enric Mitglied Ingenieurbüro
Beiträge: 249 Registriert: 29.02.2008 Einsatz: Inventor 2018
|
erstellt am: 04. Apr. 2023 09:45 <-- editieren / zitieren --> Unities abgeben:
|
rkauskh Moderator Dipl.-Ing. (FH) Versorgungstechnik
Beiträge: 2630 Registriert: 15.11.2006 Windows 10 x64, AIP 2020-2025
|
erstellt am: 05. Apr. 2023 08:39 <-- editieren / zitieren --> Unities abgeben: Nur für Enric
Hallo Das ist leidser ein generischer Fehlercode ohne viel Aussagekraft. Aber ersetze in deinem Code bitte diesen Teil: Code:
'[ 'Write material library list to excel With excelApp 'Iterate through material categories For Each cat In AML.MaterialAssetCategories .Range("a" & j).value = cat.DisplayName j= j + 1 'Iterate through each material in the category For Each ma In cat.Assets .Range("b" & j).value = ma.DisplayName .Range("c" & j).value = ma.AppearanceAsset.DisplayName .Range("d" & j).value = ma.PhysicalPropertiesAsset.DisplayName j = j + 1 Next j = j + 1 Next End With ']
mit dem hier: Code:
'[ 'Write material library list to excel With excelApp 'Iterate through material categories For Each cat In AML.MaterialAssetCategories .Range("a" & j).value = cat.DisplayName j= j + 1 'Iterate through each material in the category For Each ma In cat.Assets Try .Range("b" & j).value = ma.DisplayName .Range("c" & j).value = ma.AppearanceAsset.DisplayName .Range("d" & j).value = ma.PhysicalPropertiesAsset.DisplayName Catch End Try j = j + 1 Next j = j + 1 Next End With ']
Der Code sollte dann durchlaufen und die fehlerhaften Einträge erzeugen Leerzeilen bzw. unvollständige Zeilen in der Tabelle. Vielleicht hilft das den Fehler zu finden. Ich vermute das der Name eines Materials ein Sonderzeichen enthält, mit dem der Export nicht zurecht kommt. ------------------ MfG Ralf RKW Solutions GmbH www.RKW-Solutions.com Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |