Hot News:

Mit Unterstützung durch:

  Foren auf CAD.de (alle Foren)
  NX Programmierung
  VB.NET Journal Reference Attribute

Antwort erstellen  Neues Thema erstellen
CAD.de Login | Logout | Profil | Profil bearbeiten | Registrieren | Voreinstellungen | Hilfe | Suchen

Anzeige:

Darstellung des Themas zum Ausdrucken. Bitte dann die Druckfunktion des Browsers verwenden. | Suche nach Beiträgen nächster neuer Beitrag | nächster älterer Beitrag
  
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


Sehen Sie sich das Profil von freitaga an!   Senden Sie eine Private Message an freitaga  Schreiben Sie einen Gästebucheintrag für freitaga

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 oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities


2017-04-2011_43_13-Expressions.png

 
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


Sehen Sie sich das Profil von mseufert an!   Senden Sie eine Private Message an mseufert  Schreiben Sie einen Gästebucheintrag für mseufert

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 oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für freitaga 10 Unities + Antwort hilfreich

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


Sehen Sie sich das Profil von freitaga an!   Senden Sie eine Private Message an freitaga  Schreiben Sie einen Gästebucheintrag für freitaga

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 oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities

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


Sehen Sie sich das Profil von mseufert an!   Senden Sie eine Private Message an mseufert  Schreiben Sie einen Gästebucheintrag für mseufert

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 oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für freitaga 10 Unities + Antwort hilfreich

... 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


Sehen Sie sich das Profil von freitaga an!   Senden Sie eine Private Message an freitaga  Schreiben Sie einen Gästebucheintrag für freitaga

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 oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities

oh sorry, bin gerade in NX9 unterwegs

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

mseufert
Moderator
Freiberuflicher CAD/CAM Ingenieur


Sehen Sie sich das Profil von mseufert an!   Senden Sie eine Private Message an mseufert  Schreiben Sie einen Gästebucheintrag für mseufert

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 oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für freitaga 10 Unities + Antwort hilfreich

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


Sehen Sie sich das Profil von freitaga an!   Senden Sie eine Private Message an freitaga  Schreiben Sie einen Gästebucheintrag für freitaga

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 oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities

Danke, diese Lösung hatte ich bereits, jedoch würde ich gerne das Attribute verlinken, sodass es sich im Falle einer Geometrie/Dichteänderung updated.

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP



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 ansehenLeitung, Teamleitung
mseufert
Moderator
Freiberuflicher CAD/CAM Ingenieur


Sehen Sie sich das Profil von mseufert an!   Senden Sie eine Private Message an mseufert  Schreiben Sie einen Gästebucheintrag für mseufert

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 oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für freitaga 10 Unities + Antwort hilfreich

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 >>)

Darstellung des Themas zum Ausdrucken. Bitte dann die Druckfunktion des Browsers verwenden. | Suche nach Beiträgen

nächster neuerer Beitrag | nächster älterer Beitrag
Antwort erstellen


Diesen Beitrag mit Lesezeichen versehen ... | Nach anderen Beiträgen suchen | CAD.de-Newsletter

Administrative Optionen: Beitrag schliessen | Archivieren/Bewegen | Beitrag melden!

Fragen und Anregungen: Kritik-Forum | Neues aus der Community: Community-Forum

(c)2023 CAD.de | Impressum | Datenschutz