| |  | Gut zu wissen: Hilfreiche Tipps und Tricks aus der Praxis prägnant, und auf den Punkt gebracht für NX | | |  | PATD-Methode [PATD-Methode = Program Aided Top-Down-Methode] , eine App
|
Autor
|
Thema: KF Überschreiben von default Werten (1318 mal gelesen)
|
DinnerForOne Mitglied

 Beiträge: 62 Registriert: 29.10.2004 UG NX3
|
erstellt am: 22. Dez. 2004 10:05 <-- editieren / zitieren --> Unities abgeben:         
Hallo KF Hackers, folgendes Problem: Ich habe einen Dialog mit drei REAL-Eingabefeldern. In diesen wird die X, Y und Z Position des Child Objektes (z.B. Origin eine ug_block) definiert. Diese Eingabefelder setze ich mit default values, aber nicht über die Definition im UI Styler sondern in einem ASCII Definitionsfile (Inhalt variabel, deshalb nicht default von UI Styler verwendbar), welches gelesen wird. Das setzen der default Werte funktioniert gut. Der Benutzer soll nun aber die Möglichkeit haben diese default values zu überschreiben. Das kann er auch, die Eingabe wird angenommen. Sobald dann aber "Apply" oder "OK" geklickt wird, zum erzeugen der ug_block Instanz an dem durch die Eingabe bestimmten Punkt, wird das ASCII Definitionsfile nochmals gelesen und der ug_block wird an diesen Positionen erzeugt. Meine Test-Klasse: DefClass: test_real (ug_base_part); #Button damit definitiosfile gelesen wird (Integer Modifiable Parameter) GET_DEF_VAL: 0; #definitionsfile lesen, Liste erstellen (List Modifiable Parameter) defualt_values: @{ $ri_file_open << openFile("C:\temp\test_default_values.def"; read); $ri_file_content << readSimpleDataFile($ri_file_open); closeFile($ri_file_open); $ri_file_content; };
#real Eingabefenster mit den default Werten setzen (Number Modifiable) REAL_X: nth(1, nth(1, defualt_values:)); (Number Modifiable) REAL_Y: nth(2, nth(1, defualt_values:)); (Number Modifiable) REAL_Z: nth(3, nth(1, defualt_values:));
-> Bemerkung: wenn nicht Modifiable, kann der User die Werte nicht überschreiben -> habe im UI Styler auch schon den "refresh" Callback entfernt, hat aber auch nichts genutzt #ug_block erzeugen (Child) inst_block: { Class, ug_block; Origin, point(REAL_X:, REAL_Y:, REAL_Z:); };
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
älg Mitglied CADmin
 
 Beiträge: 403 Registriert: 17.06.2003
|
erstellt am: 22. Dez. 2004 10:16 <-- editieren / zitieren --> Unities abgeben:          Nur für DinnerForOne
|
älg Mitglied CADmin
 
 Beiträge: 403 Registriert: 17.06.2003
|
erstellt am: 22. Dez. 2004 10:19 <-- editieren / zitieren --> Unities abgeben:          Nur für DinnerForOne
|
DinnerForOne Mitglied

 Beiträge: 62 Registriert: 29.10.2004 UG NX3
|
erstellt am: 22. Dez. 2004 10:22 <-- editieren / zitieren --> Unities abgeben:         
|
älg Mitglied CADmin
 
 Beiträge: 403 Registriert: 17.06.2003
|
erstellt am: 22. Dez. 2004 10:44 <-- editieren / zitieren --> Unities abgeben:          Nur für DinnerForOne
Gut, jetzt zum Inhalt: Dein child benötigt die Werte, ergo werden diese ständig aus der Datei gelesen, da die Zeilen (Number Modifiable) REAL... nichts anderes zulassen. Da sollte eine Verzweigung rein. Oder aber in Origin, point.... Der Button GET_DEF_VAL dürfte überflüssig sein. Eine Variante wäre, alte und neue Werte parallel zu halten, zu vergleichen und verzweigen. Oder Du setzt einen Wert, ob das File bereits eingelesen wurde und reagierst entsprechend. Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
DinnerForOne Mitglied

 Beiträge: 62 Registriert: 29.10.2004 UG NX3
|
erstellt am: 22. Dez. 2004 13:34 <-- editieren / zitieren --> Unities abgeben:         
Hallo, habe mal ein flag gesetzt, welches steuert, ob der default(ab jetzt richtig geschrieben:-)) aus dem File gelesen werden soll oder ob alternativ der in der Klasse angegebene Wert genommen werden soll. Freundlicherweise ignoriert KF das setzen des Wertes sobald ich eine "If() else then" angebe. Die Werte kann KF lesen, mit "Show Value" im KF Navigator kommen die Werte, aber im dialog werden sie nicht dargestellt. Habt ihr damit Erfahrung? DefClass: test_real (ug_base_part);
#Button damit definitiosfile gelesen wird (Integer Modifiable Parameter) GET_DEF_VAL: 0; #definitionsfile lesen, Liste erstellen (List Modifiable Parameter) default_values: @{ $ri_file_open << openFile("C:\temp\test_default_values.def"; read); $ri_file_content << readSimpleDataFile($ri_file_open); closeFile($ri_file_open); $ri_file_content; };
#real Eingabefenster mit den default Werten setzen (Number Modifiable) REAL_X_def_list: nth(1, nth(1, default_values ); (Number Modifiable) REAL_Y_def_list: nth(2, nth(1, default_values ); (Number Modifiable) REAL_Z_def_list: nth(3, nth(1, default_values ); #flag steuert von wo der default Wert gelesen wird (Boolean Modifiable Parameter) ri_flag_read?: true; #default Wert zuweisen #Bemerkung, funktioniert nicht, wird von KF Ignoriert... (Number Modifiable Parameter)REAL_X: if (ri_flag_read?  then REAL_X_def_list: else 500; (Number Modifiable Parameter)REAL_Y: if (ri_flag_read?  then REAL_Y_def_list: else 600; (Number Modifiable Parameter)REAL_Z: if (ri_flag_read?  then REAL_Z_def_list: else 700; #Bemerkung: So funktioniert die Zuweisung #(Number Modifiable Parameter)REAL_X: 500; #(Number Modifiable Parameter)REAL_Y: 600; #(Number Modifiable Parameter)REAL_Z: 700; #ug_block erzeugen (Child) inst_block: { Class, ug_block; Origin, point(REAL_X:, REAL_Y:, REAL_Z ; }; Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
DinnerForOne Mitglied

 Beiträge: 62 Registriert: 29.10.2004 UG NX3
|
erstellt am: 22. Dez. 2004 13:37 <-- editieren / zitieren --> Unities abgeben:         
|
älg Mitglied CADmin
 
 Beiträge: 403 Registriert: 17.06.2003
|
erstellt am: 22. Dez. 2004 15:06 <-- editieren / zitieren --> Unities abgeben:          Nur für DinnerForOne
So lange Du ri_flag_read?: true; setzt, also keine Alternative zuläßt, rührt sich da nix. Du solltest z.B. in die (List Modifiable Parameter) default_values: @{...} - Prozedur ein storevalue(...) einbauen, um ein derartiges flag wirklich zu schalten und nicht statisch zu setzen. Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
DinnerForOne Mitglied

 Beiträge: 62 Registriert: 29.10.2004 UG NX3
|
erstellt am: 23. Dez. 2004 10:08 <-- editieren / zitieren --> Unities abgeben:         
Hallo hälg, habe die storeValue() probiert, finde aber keine Lösung für mein Problem. Habe das flag auch mal an einen Togglestatus gehängt, damit es nicht mehr statisch ist, hat aber nichts genutzt. Kannst du mir einen konkreten Tipp geben? Danke! Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Joerg.A Mitglied

 Beiträge: 86 Registriert: 12.12.2001
|
erstellt am: 23. Dez. 2004 23:21 <-- editieren / zitieren --> Unities abgeben:          Nur für DinnerForOne
Hi, wenn Du einen Button mit dem folgenden Code verknüpfst, werden die Default-Werte beim drücken in das Eingabefeld geschrieben. (Boolean) GET_DEF_VAL: @{ storeValue(nth(1, nth(1, default_values: )), self:, REAL_X); storeValue(nth(2, nth(1, default_values: )), self:, REAL_Y); storeValue(nth(3, nth(1, default_values: )), self:, REAL_Z); }; Schöne Grüße Joerg.A
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
| Anzeige.:
Anzeige: (Infos zum Werbeplatz >>)
 |