| |
| Gut zu wissen: Hilfreiche Tipps und Tricks aus der Praxis prägnant, und auf den Punkt gebracht für NX |
Autor
|
Thema: Dynamische Variablenbeziehung zwischen Teilen per Ausdruck (2237 mal gelesen)
|
Schneizla Mitglied HIWI
Beiträge: 6 Registriert: 18.10.2012 NX 7.5
|
erstellt am: 18. Okt. 2012 17:55 <-- editieren / zitieren --> Unities abgeben:
Hallo, ich habe eine Baugruppe, die n Teile enthält, welche über Ausdrücke unterdrückt werden. Die Variable die diesen Ausdrücke steuert ist ein String (z.B. TESTSTRING, Unterdrückung über Befehl comparestring). Es ist immer nur eines dieser Teile aktiv (nicht unterdrückt). Ich möchte nun eine Variable (TESTVAR) anlegen, die den Wert einer Variablen aus den Unterdokumenen angibt (Wave-Verknüpfung). Diese hat in den Unterdokumenten immer den gleichen Namen (z.B. TESTINT). Über eine Wave-Beziehung normalerweise möglich. Ich möchte aber in dieser Beziehung immer nur das aktive Teil angeben. Also hier beispielsweise über einen Ausdruck mit der Variabeln TESTSTRING. Hätte mir (um das ganze zu verdeutlichen) dann etwas in der Art "TESTVAR= TESTSTRING::TESTINT" vorgestellt. TESTSTRING sollte hier nur der Platzhalter für den benötigten string sein. Alternative wäre über eine Summen aus den einzelnen festen Wave-Beziehungen und (theoretisch) n-vielen IF/ELSE Beziehungen, unschön. Kennt jemand eine elegante Lösung für das Problem? P.S. Die Namen der untergeordneten .prt´s kann ich beliebig anpassen, also theoretisch alle in TESTSTRING möglichen Werte. Und das System ist NX 7.5. Danke [Diese Nachricht wurde von Schneizla am 19. Okt. 2012 editiert.] Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Walter Hogger Moderator Maschinenbauingenieur
Beiträge: 3990 Registriert: 06.10.2000 UG V2 bis UG V18 NX1 bis NX2008 ("NX19")
|
erstellt am: 19. Okt. 2012 13:17 <-- editieren / zitieren --> Unities abgeben: Nur für Schneizla
Hallo Schneizla, ich hab deinen Beitrag nun zweimal gelesen und werde nicht ganz schlau daraus. Meinst du die Aufgabenstellung: IF "das Eine ist unterdrückt" THEN "das Andere ist nicht unterdrückt" ? Sowas geht. Kannst du's besser beschreiben? Gruß ------------------ Walter Hogger Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Rainer Schulze Ehrenmitglied V.I.P. h.c. Dipl.-Ing. im Ruhestand
Beiträge: 4419 Registriert: 24.09.2012
|
erstellt am: 19. Okt. 2012 13:32 <-- editieren / zitieren --> Unities abgeben: Nur für Schneizla
>>Kennt jemand eine elegante Lösung für das Problem? Deine Fragestellung liegt etwas ausserhalb meines Erfahrungshorizonts, aber da niemand eine Lösung anbietet, möchte ich Dich auf einen Punkt hinweisen: In einer Baugruppe mit einer Anzahl von N Teilen existiert eine Untermenge M, von denen M-1 Teile unterdrückt sind. Selbst wenn Du in Betracht ziehst, ein Programm zu schreiben: Anhand welches Identifikationsmerkmals willst Du denn aus N - (M-1) das eine Teil erkennen, dessen Attribut Du verwenden willst? >>... eine Summen aus den einzelnen festen Wave-Beziehungen ... Summe? Aber egal, was Du meinst: Das setzt voraus, dass es keine weiteren WAVE-Verknüpfungen in dieser Baugruppe gibt. Ist das verlässlich gegeben, auch hinsichtlich eventueller zukünftiger Änderungen? ------------------ Rainer Schulze Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Schneizla Mitglied HIWI
Beiträge: 6 Registriert: 18.10.2012 NX 7.5
|
erstellt am: 19. Okt. 2012 14:41 <-- editieren / zitieren --> Unities abgeben:
Danke erstmal für die Antworten. Ich denke ich hab noch nicht ganz klar Formuliert was ich machen will, deshalb ein .jpg zur Erklärung im Anhang Im Beispiel gibt es 3 Teile (A,B,C), die je die Variable X enthalten. Die Variable MERKMAL steuert die Unterdrückung. Es ist immer das Teil aktiv, dessen Kennbuchstabe in MERKMAL hinterlegt ist (im Vorliegenden Fall also "A"). Das funktioniert auch super. Es sind immer N-1 Elemente unterdrückt. Im gezeigten Beispiel ist Teil A aktiv. Ich möchte also in meiner Variable Y (in der Baugruppe) den Wert der Variablen X (aus Teil A) haben. Sollte nun TEIL B aktiv sein, so soll in Y der Wert der Variablen X (aus Teil B) stehen. Die Idee mit der Summe: Ich wollte diese Formel (für Y) N mal addieren, immer mit anderem Verweis. Ich hatte die Hoffnung, dass aber nur das Teil das nicht unterdrückt wird einen Wert für X zur Verfügung stellt. Es werden aber immer alle X´s addiert. Mit IFELSE könnte ich nun natürlich über einen Vergleich mit MERKMAL die Teile der Formel ausschalten, die ich nicht haben will. Wird dann aber ziemlich lang. Sollte das Vorhaben völlig utopisch sein bin ich natürlich für Alternativen offen. Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Rainer Schulze Ehrenmitglied V.I.P. h.c. Dipl.-Ing. im Ruhestand
Beiträge: 4419 Registriert: 24.09.2012
|
erstellt am: 19. Okt. 2012 16:11 <-- editieren / zitieren --> Unities abgeben: Nur für Schneizla
Ich habe das Problem im ersten Anlauf zwar zu allgemein betrachtet, aber ohne Programmierung sehe ich nur eine Lösung über verschachtelte if..then..else-Strukturen. Ich sehe keinen Weg, den Bezug von VAR zum unterdrückten Bauteil durch eine einfache Funktion zu ändern. ------------------ Rainer Schulze Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Schneizla Mitglied HIWI
Beiträge: 6 Registriert: 18.10.2012 NX 7.5
|
erstellt am: 19. Okt. 2012 16:26 <-- editieren / zitieren --> Unities abgeben:
|
master001 Mitglied Projektingenieur
Beiträge: 454 Registriert: 25.02.2005
|
erstellt am: 19. Okt. 2012 20:18 <-- editieren / zitieren --> Unities abgeben: Nur für Schneizla
Hmmm das was du da schilderst könnte man zumindest lösen wenn die Körper in einem Teil liegen würden ;o) Ich hab sowas mal erstellt um mittels ausdrücken körper in einer Baugruppe auszutauschen. Viele Grüße Patric Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Schneizla Mitglied HIWI
Beiträge: 6 Registriert: 18.10.2012 NX 7.5
|
erstellt am: 21. Okt. 2012 17:20 <-- editieren / zitieren --> Unities abgeben:
Hmm, hört sich interessant an. Ist ziemlich genau was ich brauche. Allerdings die Teile auszutauschen funktioniert schon. Nur die Geschichte mit der Variablen (siehe oben) geht noch nicht. Wie hast du´s denn gelöst? Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |