| | | Gut zu wissen: Hilfreiche Tipps und Tricks aus der Praxis prägnant, und auf den Punkt gebracht für NX |
Autor
|
Thema: VB.NET Journal Reference Attribute (1266 mal gelesen)
|
freitaga Mitglied Development IT-Tools, PDM, CAx API
Beiträge: 19 Registriert: 05.04.2013 Win7 64bit Intel i7-4710MQ@2,8GHz 16GB RAM Quadro K2100M PTC WF4-Creo3 CATIA V5R18-V5R24 NX 7.5-9
|
erstellt am: 20. Apr. 2017 11:46 <-- editieren / zitieren --> Unities abgeben:
Hallo Zusammen! Ich müsste die Number des Attributes MassPropMass als String in ein String-Attribut verlinken. Hier das relevante Code-Snippet:
Code:
Dim exp As Expression exp = p.Expressions.GetAttributeExpression(p, "MassPropMass", NXObject.AttributeType.Any, -1) p.SetReferenceAttribute("WEIGHT_COMPONENT", "stringValue(" & exp.Name & ")", Update.Option.Later)
Nun stehe ich vor 2 Problemen: 1) Im Attribut WEIGHT_COMPONENT steht nur: stringValue(p7) Wobei p7 das MassPropMass Attribut von der Expression ist. Die p8 Expression (für die Verlinkung in das Attribut) steht die rechte Seite mit " -> d.h.: p8="stringValue(p7)" Da liegt auch das Problem. Er wertet die rechte Seite nicht aus, sondern schreibt es nur als String (ohne " funktioniert es). Siehe Bild. Hoffe die Erklärung ist verständlich. Wo liegt der Fehler? 2) Expressions.GetAttributeExpression ist als Deprecated gekennzeichnet. Wie kann ist die neue Vorgehensweise? Danke LG Andi
[Diese Nachricht wurde von freitaga am 21. Apr. 2017 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: 20. Apr. 2017 13:37 <-- editieren / zitieren --> Unities abgeben: Nur für freitaga
Hallo Andi, alles, was mit Attributen zu tun hat, ist (seit ~NX8) häufigen Änderungen unterworfen. Daraus ergibt sich zwangsläufig die erste Rückfrage. Die zweite: Setzt Du eine Entwicklerumgebung ein ? Gruß, Michael ------------------ Ein Mensch wird laut, wenn er was will; wenn er's erst hat, dann wird er still; Das "Danke" ist, nach alter Sitte, Weit seltner als das "Bitte, Bitte". Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
freitaga Mitglied Development IT-Tools, PDM, CAx API
Beiträge: 19 Registriert: 05.04.2013 Win7 64bit Intel i7-4710MQ@2,8GHz 16GB RAM Quadro K2100M PTC WF4-Creo3 CATIA V5R18-V5R24 NX 7.5-9
|
erstellt am: 20. Apr. 2017 13:43 <-- editieren / zitieren --> Unities abgeben:
Hallo, danke für die Antwort. Ja ich verwende Visual Studio Express 2013 (VB.NET) Und ja, ich habe die Notiz bezüglich SetUserAttribute gelesen, falls die Frage noch kommt. Jedoch weiß ich nicht wie ich damit ein Reference Attribut anlegen kann. LG
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: 20. Apr. 2017 16:55 <-- editieren / zitieren --> Unities abgeben: Nur für freitaga
... welche NX-Version ? ------------------ Ein Mensch wird laut, wenn er was will; wenn er's erst hat, dann wird er still; Das "Danke" ist, nach alter Sitte, Weit seltner als das "Bitte, Bitte". Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
freitaga Mitglied Development IT-Tools, PDM, CAx API
Beiträge: 19 Registriert: 05.04.2013 Win7 64bit Intel i7-4710MQ@2,8GHz 16GB RAM Quadro K2100M PTC WF4-Creo3 CATIA V5R18-V5R24 NX 7.5-9
|
erstellt am: 21. Apr. 2017 07:08 <-- editieren / zitieren --> Unities abgeben:
|
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: 22. Apr. 2017 13:35 <-- editieren / zitieren --> Unities abgeben: Nur für freitaga
Hallo Andi, Das Problem ist, daß Du Äpfel, Kraut und Rüben durcheinander wirfst, aber der Reihe nach: Die Funktion stringValue() dient zur Umwandlung von Zahlen in Strings bei Expressions, das hat in einem Attribut nichts verloren. Was in Anführungszeichen steht, wird als String weiterbearbeitet, egal ob eine Variable, eine Funktion oder sonstwas dazwischen steht. Wieso willst Du unbedingt ein ReferenceAttribute anlegen ? Der Typ Reference in Attributeinformation.Type ist schon länger als deprecated gekennzeichnet (Do not use in new Code ...). Ein Attribut vom Typ String wäre die Lösung. Zitat: Expressions.GetAttributeExpression ist als Deprecated gekennzeichnet.
GetAttributeExpression ist nicht als Deprecated gekennzeichnet. SetReferenceAttribute ist Deprecated, wie auch der entsprechende Attributeinformation.Type. Zum Code: Zitat: Dim exp As Expression exp = p.Expressions.GetAttributeExpression(p, "MassPropMass", NXObject.AttributeType.Any, -1)
kann also stehen bleiben. Zitat: p.SetReferenceAttribute("WEIGHT_COMPONENT", "stringValue(" & exp.Name & ")", Update.Option.Later)
würde ich ersetzen: p.SetUserAttribute("WEIGHT_COMPONENT",-1, exp.Value.Tostring, NXOpen.Update.Option.Later) Zusammenfassung: Unbedingt sorgfältiger arbeiten. Exakter ausdrücken wäre auch kein Fehler Gruß, Michael ------------------ Ein Mensch wird laut, wenn er was will; wenn er's erst hat, dann wird er still; Das "Danke" ist, nach alter Sitte, Weit seltner als das "Bitte, Bitte". Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
freitaga Mitglied Development IT-Tools, PDM, CAx API
Beiträge: 19 Registriert: 05.04.2013 Win7 64bit Intel i7-4710MQ@2,8GHz 16GB RAM Quadro K2100M PTC WF4-Creo3 CATIA V5R18-V5R24 NX 7.5-9
|
erstellt am: 24. Apr. 2017 08:22 <-- editieren / zitieren --> Unities abgeben:
|
| Teamleitung Elektrotechnik (m/w/d) | Als Teil der Zentralen Verwaltung der Technischen Universität München (TUM) sorgt die Zentralabteilung 4 ? Immobilien an allen Standorten der TUM dafür, den Wissenschaftler/ Wissenschaftlerinnen und Studierenden aus aller Welt die bestmögliche Infrastruktur für Forschung und Lehre bereitzustellen, zu erhalten und an sich verändernde Rahmenbedingungen anzupassen. Zur Ergänzung unseres ... | Anzeige ansehen | Leitung, Teamleitung |
|
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: 24. Apr. 2017 10:21 <-- editieren / zitieren --> Unities abgeben: Nur für freitaga
Woher kommt die Idee, daß sich der Wert eines Attributs durch verlinken mit Ausdrücken aktualisiert ??? Sorry, aber das ist nicht nachvollziehbar. Versuch' einfach mal, eine eindeutige kausale Kette Schritt für Schritt zu untersuchen. 1. Ausgangszustand z.B. Klotz, 100x100x100 mm, Dichte 7.8 g/cm³ ergibt 7.8 Kg 2. Klotz interaktiv oder programmatisch ändern. 3. Ändert sich jetzt schon der Wert des Attributs ? Das ist m.W. von den Einstellungen z. Weight Management (Properties/Weight) abhängig und geht nicht in jedem Fall automatisch. Ggfs. muss die Aktualisierung erst angestossen werden. Sobald der Wert des Attributs geändert ist, sollten sich auch alle, wie auch immer verlinkten Ausdrücke oder Attribute ändern. Gruß, Michael ------------------ Ein Mensch wird laut, wenn er was will; wenn er's erst hat, dann wird er still; Das "Danke" ist, nach alter Sitte, Weit seltner als das "Bitte, Bitte". Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
| Anzeige.:
Anzeige: (Infos zum Werbeplatz >>)
|