| |
| Gut zu wissen: Hilfreiche Tipps und Tricks aus der Praxis prägnant, und auf den Punkt gebracht für NX |
Autor
|
Thema: Anzahl der Attribut indizes (821 mal gelesen)
|
tolo Mitglied Konstrukteur
Beiträge: 91 Registriert: 11.04.2007 NX 11.0
|
erstellt am: 13. Jul. 2016 09:14 <-- editieren / zitieren --> Unities abgeben:
|
Thomas-Z Mitglied PLM-Administration
Beiträge: 74 Registriert: 22.02.2011
|
erstellt am: 13. Jul. 2016 12:41 <-- editieren / zitieren --> Unities abgeben: Nur für tolo
|
tolo Mitglied Konstrukteur
Beiträge: 91 Registriert: 11.04.2007 NX 11.0
|
erstellt am: 13. Jul. 2016 14:08 <-- editieren / zitieren --> Unities abgeben:
Dazu müsste ich erst einmal das Attribut in ein Array umwandeln oder wie ist die Syntax um z.B. die Anzahl der Indizes des User-Attributs "ATR1" im Workpart zu bekommen? Herzliche Grüße
Thomas [Diese Nachricht wurde von tolo am 13. Jul. 2016 editiert.] [Diese Nachricht wurde von tolo am 13. Jul. 2016 editiert.] Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
mseufert Moderator Freiberuflicher CAD/CAM Ingenieur
Beiträge: 2624 Registriert: 18.10.2005 HP Z420 WIN7 64 Win 10 UG NX6-1980 3D Printer Prusa MK2 S
|
erstellt am: 14. Jul. 2016 17:30 <-- editieren / zitieren --> Unities abgeben: Nur für tolo
Keine Syntax, kein Array, simpler Denkfehler : Das Objekt vom Type AttributeInformation ist kein Array und enthält auch keines. Stattdessen gibt es mehrere AttributeInformation's mit dem selben Titel . Also einfach zählen, wie oft dieser Titel auftaucht. Gruß, Michael Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
tolo Mitglied Konstrukteur
Beiträge: 91 Registriert: 11.04.2007 NX 11.0
|
erstellt am: 15. Jul. 2016 09:48 <-- editieren / zitieren --> Unities abgeben:
Hallo Michael, so ähnlich mache ich es derzeit. Ist aber meines Erachtens mal wieder keine saubere Programmierung: Wenn das Attribut "AtrBsp" vorhanden ist und in diesem Beispiel 2 Instanzen hat, durchlaufe ich in einer Schleife dessen Instanzen (AtrBsp(0), AtrBsp(1), AtrBsp(2) usw.) und lese deren Werte mit GetUserAttribute("AtrBsp", NXObject.AttributeType.String, ii).StringValue aus. Komme ich nun zum ersten Instanz, die nicht mehr benutzt wird (in diesem Beispiel AtrBsp(2) ), wird aber weder ein Fehler noch ein leerer String "" ausgegeben, sondern der Wert der Instanz 0 (AtrBsp(0) ) Wenn also der Index > 0 und der Wert des AtrBsp(x) gleich dem Wert von AtrBsp(0) ist, so ist die Anzahl der Instanzen gleich x. Hört sich relativ komplex an und nicht wirklich professionell, deshalb hatte ich meine Hoffnung auf eine bessere Syntax gelegt. So etwa in die Richtung gesponnen: meinArray = UserAttribute("AtrBsp").toArray AnzahlIndizes = meinArray.length Herzliche Grüße
Thomas
[Diese Nachricht wurde von tolo am 15. Jul. 2016 editiert.] Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
| Technischer Zeichner (m/w/d) in Voll-/Teilzeit | Die KÖGL GmbH mit Sitz in Bubesheim bei Günzburg ist ein familiengeführtes Unternehmen, welches heute von drei Generationen geleitet wird. Wir zählen mit unseren über 185 Mitarbeitern zu den Marktführenden Spezialisten in der Herstellung u. Entwicklung von Betriebs-, Lager- u. Fahrzeugeinrichtungen. Seit der Unternehmensgründung im Jahre 1964 verzeichnet KÖGL kontinuierliches Wachstum. In all diesen Jahren hat das Unternehmen die Struktur eines typischen Familienbetriebs beibehalten.... | Anzeige ansehen | Technischer Zeichner, Bauzeichner |
|
mseufert Moderator Freiberuflicher CAD/CAM Ingenieur
Beiträge: 2624 Registriert: 18.10.2005 HP Z420 WIN7 64 Win 10 UG NX6-1980 3D Printer Prusa MK2 S
|
erstellt am: 15. Jul. 2016 14:02 <-- editieren / zitieren --> Unities abgeben: Nur für tolo
Hallo Thomas, mach' doch einfach 'mal 'ne Schleife über alle AttributeInfos eines Objekts (ermitteln über <obj>.GEtUserAttributes) und mach' eine Ausgabe, die den Namen und den, in AttributeInfo abgelegten Index enthält. Ergebnis z.B. Att1 -1 Att2 0 Att2 1 Att2 2 Att3 -1 Att4 -1 Das sogenannte Array wäre also das von Att2 mit drei Mitgliedern, der Rest sind einfache Attribute. Der Index, in dem Fall 0,1 oder 2 muss erst ermittelt werden. Mit GetUSerAttribute einafch einen Index anzugeben (zu raten ), geht zwangsläufig schief. Wenn man's so macht, ist das zwar, wie bei Attributen seit der ~NX8 üblich, etwas gewöhnungsbedürftig, aber m.E. doch sauber. Also erst den Index ermitteln, dann das Attribut mit Index n abfragen. Gruß, Michael Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |