Autor
|
Thema: Material Item in Array schreiben (1021 / mal gelesen)
|
reimund Mitglied
Beiträge: 231 Registriert: 29.10.2004
|
erstellt am: 20. Mrz. 2018 16:35 <-- editieren / zitieren --> Unities abgeben:
Hallo, aktuell habe ich die Aufgabe die firmenspezifische Materialdatenbank in V5 zu analysieren. Das Ergebnis soll temporär in einem Array verwaltet werden. Im CATVBA habe ich als Basis das Beispiel aus der CATIA Dokumentation genommen. Die Materialfammilies habe ich in eine Collection und alle MaterialFamily in eine zweite Collection geschrieben. Da hat funktioniert. Das Materialdokument ist der Variablen oMaterial_Document zugeordnet. Siehe Bild. Nun will ich alle Informationen in einem Array sammeln. Den Namen der Materialfammilies und den Namen der MaterialFamily kann ich über .Item(x).name abfragen. Beim Versuch das Materialobjekt in ein array zu schreiben mit arry(1,1) = oMaterial_Document.Families.item(1).Materials.Item(1) kommt die Meldung, Object does’n support this property or method. Gibt es die Möglichkeit das Objekt .Item(x) in ein Array zu schreiben? Viele Grüße Reimund
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
bgrittmann Moderator Konstrukteur
Beiträge: 11780 Registriert: 30.11.2006 CATIA V5R19
|
erstellt am: 20. Mrz. 2018 18:55 <-- editieren / zitieren --> Unities abgeben: Nur für reimund
Servus Reimund Die Zeile sieht gut aus. Müsst es nicht Set Array(1,1) = sein? Bist du sicher dass der Array richtig dimensioniert ist? Wie ist dieser dimensioniert? Gruß Bernd
------------------ Warum einfach, wenn es auch kompliziert geht. Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
reimund Mitglied
Beiträge: 231 Registriert: 29.10.2004
|
erstellt am: 21. Mrz. 2018 10:20 <-- editieren / zitieren --> Unities abgeben:
|
reimund Mitglied
Beiträge: 231 Registriert: 29.10.2004 CATIA V5 / R26 NX 12
|
erstellt am: 23. Mrz. 2018 11:11 <-- editieren / zitieren --> Unities abgeben:
Hallo, ich habe ein Array definiert und will diese mit Redim mehrmals anpassen. Dim aMaterailFamilies() ReDim aMaterailFamilies(iNbMatFamilies, 1) ' Array definieren ReDim Preserve aMaterailFamilies(iNbMatFamilies, iNbMatFamily) Bei einem zweidimesionalen Array hat es funktioniert. Das Array habe ich erweitert Dim aMaterailFamilies() ReDim aMaterailFamilies(iNbMatFamilies, 1, 1) ' Array definieren Die erste Dimensionierung hat funktioniert Bei der zweiten Anpassung: ReDim Preserve aMaterailFamilies(iNbMatFamilies, iNbMatFamily, 1) kommt die Meldung: Subscript out of range Welche Möglichkeit gibt es ein mehrdimensionales Array zu erweitern? Viele Grüße Reimund
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
bgrittmann Moderator Konstrukteur
Beiträge: 11780 Registriert: 30.11.2006 CATIA V5R19
|
erstellt am: 23. Mrz. 2018 16:48 <-- editieren / zitieren --> Unities abgeben: Nur für reimund
|
reimund Mitglied
Beiträge: 231 Registriert: 29.10.2004
|
erstellt am: 27. Mrz. 2018 13:49 <-- editieren / zitieren --> Unities abgeben:
Hallo Bernd, in dem Array will ich die Informationen aus der Materialdatenbank sammeln. Da ich nicht weiß wieviel Mitgleider die einzelnen Materialgruppen haben, prüfe ich nach dem Durchlaufen einer Materialgruppe, ob die nächste Gruppe mehr Mitgleider hat. Falls ja, dann soll das Array vergrößert werden. Ich habe es jetzt mit einem zweideimensionalen Array gemacht. Das funktioniert soweit. Das Ergebnis ist, dass machen Felder in den Materialgruppen keinen Eintrag haben, weil das Array die Größe der Matrialgruppe hat, die am meisten Materialien hat. Die Informationen welches Materials in welcher Materilagruppe ist benötige ich für die spätere zuwesiung des Materials zu dem entsprechenden Body in einem neuen CATPart. Viele Grüße Reimund Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
bgrittmann Moderator Konstrukteur
Beiträge: 11780 Registriert: 30.11.2006 CATIA V5R19
|
erstellt am: 27. Mrz. 2018 16:37 <-- editieren / zitieren --> Unities abgeben: Nur für reimund
Servus Reimund Nur so eine Idee: Brauchst du wirklich den Array? Könntest du nicht den Materialkatalog per .Read öffnen und direkt die Familien/Materialien verwenden? IMHO sind die Methoden die Collections bieten oft besser als die von Arrays. Gruß Bernd ------------------ Warum einfach, wenn es auch kompliziert geht. Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
| Werkstudent (m/w/d) Instandhaltung und Gebäudemanagement | kennst du nicht? Und ob! Wenn du schon einmal mit der Bahn gefahren bist, in einem Parkhaus geparkt, an einer Tankstelle bezahlt oder einen Ticketautomaten benutzt hast, bist du mit hoher Wahrscheinlichkeit bereits mit unseren Produkten in Berührung gekommen. Weltweit entwickeln wir hochmoderne Produkte und Systeme und gestalten so die Mobilität der Zukunft. In unserer Firmenfamilie werden Werte ... | Anzeige ansehen | Maschinenbau |
|
reimund Mitglied
Beiträge: 231 Registriert: 29.10.2004
|
erstellt am: 27. Mrz. 2018 20:49 <-- editieren / zitieren --> Unities abgeben:
Hallo Bernd, danke für den Hinweis mit den Collections. Zuerst habe ich es auch mit Collections gemacht. Eines für die Materialgruppen und eines für alle Materialien. Mir war nicht klar wie ich die Zuordnung der Materialien zu den Materialgruppen mache. Von daher bin ich auf das Array gekommen. Aktuelle habe ich das Array und parallel dazu die zwei Collections. Eine Export nach Excel habe ich auch gemacht. Damit habe ich nun einen guten Überblick, welches Material in welcher Materialgruppe ist. Viele Grüße Reimund
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |