Hot News:

Mit Unterstützung durch:

  Foren auf CAD.de (alle Foren)
  NX
  KF Überschreiben von default Werten

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
  
PATD-Methode [PATD-Methode = Program Aided Top-Down-Methode] , eine App
Autor Thema:  KF Überschreiben von default Werten (1318 mal gelesen)
DinnerForOne
Mitglied



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

Beiträge: 62
Registriert: 29.10.2004

UG NX3

erstellt am: 22. Dez. 2004 10:05    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


Problem_bsp.zip

 
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


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

Beiträge: 403
Registriert: 17.06.2003

erstellt am: 22. Dez. 2004 10:16    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 DinnerForOne 10 Unities + Antwort hilfreich

Korrigiere erst mal den Schreibfehler
... nth(1, defualt_values );

Dann schau mer ma weiter...

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

älg
Mitglied
CADmin


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

Beiträge: 403
Registriert: 17.06.2003

erstellt am: 22. Dez. 2004 10:19    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 DinnerForOne 10 Unities + Antwort hilfreich

(Smilies können auch nerven...)

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

DinnerForOne
Mitglied



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

Beiträge: 62
Registriert: 29.10.2004

UG NX3

erstellt am: 22. Dez. 2004 10: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

Hi älg,

mit dem Schreibfehler hast du recht, weil ich ihn aber konstant durchgezogen habe (also auch bei der Deklaration der Liste) macht er nix. Danke für deine Hilfe!

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

älg
Mitglied
CADmin


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

Beiträge: 403
Registriert: 17.06.2003

erstellt am: 22. Dez. 2004 10:44    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 DinnerForOne 10 Unities + Antwort hilfreich

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



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

Beiträge: 62
Registriert: 29.10.2004

UG NX3

erstellt am: 22. Dez. 2004 13:34    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,
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



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

Beiträge: 62
Registriert: 29.10.2004

UG NX3

erstellt am: 22. Dez. 2004 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

fu... smilies, können mit "Smilies in diesem Beitrag deaktivieren" eliminiert werden, aber man müsste halt noch drandenken

Gruss!

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

älg
Mitglied
CADmin


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

Beiträge: 403
Registriert: 17.06.2003

erstellt am: 22. Dez. 2004 15:06    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 DinnerForOne 10 Unities + Antwort hilfreich

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



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

Beiträge: 62
Registriert: 29.10.2004

UG NX3

erstellt am: 23. Dez. 2004 10: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

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



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

Beiträge: 86
Registriert: 12.12.2001

erstellt am: 23. Dez. 2004 23: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 DinnerForOne 10 Unities + Antwort hilfreich

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

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)2024 CAD.de | Impressum | Datenschutz