| |
| Gut zu wissen: Hilfreiche Tipps und Tricks aus der Praxis prägnant, und auf den Punkt gebracht für NX |
Autor
|
Thema: Ausgabe einer Warnmeldung (968 mal gelesen)
|
en0038 Mitglied Ingenieur
Beiträge: 38 Registriert: 28.09.2004
|
erstellt am: 15. Jul. 2005 15:28 <-- editieren / zitieren --> Unities abgeben:
Hallo, habe ein Programm erstellt mit dem sich Nuten erstellen lassen. Die Mindestnutentiefe soll 7mm nicht unterschreiten. Eingabefeld "enter your chosen groove depth" in der .dlg jh_n8 in der .dfa. Wie kann man es machen dass eine Warnmeldung erscheint wenn ein Wert kleiner 7mm eingegeben wird? Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
älg Mitglied CADmin
Beiträge: 403 Registriert: 17.06.2003
|
erstellt am: 18. Jul. 2005 08:13 <-- editieren / zitieren --> Unities abgeben: Nur für en0038
Moin, die einfachste Variante ist diese: (Boolean Parameter Modifiable) jh_a1: # action button # jh_n7 is stored in jh_n8 @{ # and given out when the storeValue(round(jh_n7 ,self:,jh_n8); # button is pushed if (jh_n7: < 7) then ug_printMessage({"zu klein meint älg"}) else 0; true; }; Alternativ kann der Text auch in die Maske geschrieben werden. Da in KF alles "on demand" erfolgt, kannst Du Dir zudem aussuchen, welches Ereignis die Textausgabe erzwingt, also z.B. in einer prozeduralen Schleife wie hier, durch Verwenden des Wertes in einem anderen oder durch demandvalue. Ich rate Dir weiterhin, das "OK" und "Apply" nur zu gestatten, wenn der Nutzer bestimmte Eingaben gemacht hat. So ist z.B. das "Select" zwingend notwendig. Siehe dazu Stichwort "_sens" in der Syntax-Help. Praktisch sieht das so aus: (integer) OK_sens: if <bedingung> then 1 else 0;
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
en0038 Mitglied Ingenieur
Beiträge: 38 Registriert: 28.09.2004
|
erstellt am: 18. Jul. 2005 10:48 <-- editieren / zitieren --> Unities abgeben:
Hallo alg, vielen Dank fur Deine schnelle Antwort. Habe die Zeilen eingefugt. Ich wollte nur eigendlich was bischen anderes. Momentan ist es so das die Warnmeldung erscheint wenn ein Wert <7 uber den button "import proposed value" importiert wird. Es soll aber so sein das eine Warnmeldung erscheint wenn ein Wert <7 ins Eingabefeld: "enter your chosen groove depth" (jh_n8)eingegeben wird. Alternativ ware da naturlich die Moglichkeit das erst gar kein Wert unter 7 eingegeben werden kann. Habe da was geschrieben zu jh_m1. Die Syntax scheint zu stimmen aber es bringt nicht das gewunschte ergebnis. Gruss en Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
älg Mitglied CADmin
Beiträge: 403 Registriert: 17.06.2003
|
erstellt am: 18. Jul. 2005 11:06 <-- editieren / zitieren --> Unities abgeben: Nur für en0038
|
en0038 Mitglied Ingenieur
Beiträge: 38 Registriert: 28.09.2004
|
erstellt am: 18. Jul. 2005 11:19 <-- editieren / zitieren --> Unities abgeben:
Habe den Parameer jh_m1 eingefugt. Ganze .dfa steht wie auch schon zufor im zip Anhang. (Boolean Parameter Modifiable) jh_a1: @{ storeValue(round(jh_n7 ,self:,jh_n8); if (jh_n7: < 7) then ug_printMessage({"groove depth must be at least 7 mm !"}) else 0; true; }; # chosen wire groove depth
(Number Parameter Modifiable) jh_n8: 0; (Boolean Parameter Modifiable) jh_m1: @{ if ( jh_n8: < 7 ) then ug_printMessage({"groove depth must be at least 7 mm !"}) else 0; true; }; Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
älg Mitglied CADmin
Beiträge: 403 Registriert: 17.06.2003
|
erstellt am: 18. Jul. 2005 16:15 <-- editieren / zitieren --> Unities abgeben: Nur für en0038
Hallo en0038, nun zu Dir. Wie ich schon bemerkte: Zitat:
Da in KF alles "on demand" erfolgt, kannst Du Dir zudem aussuchen, welches Ereignis die Textausgabe erzwingt, also z.B. in einer prozeduralen Schleife wie hier, durch Verwenden des Wertes in einem anderen oder durch demandvalue.
Tja, und der Wert für jh_m1: wird nirgendwo eingefordert und steht daher auch nicht zur Verfügung. Du mußt also eine Werteermittlung erzwingen. Das kannst Du, indem Du - ähnlich wie bei storevalue in jh_a1: - den Wert in einer prozeduralen Anweisung voranstellst. Bsp. (quick & dirty): (integer) apply_sens: if jh_a1: & jh_m1: then 1 else 0; Eine andere Möglichkeit wäre, in die Maske einen Wert zu verstecken, d.h. hinter einen anderen zu legen, in welchem dann die Anforderung steht. Schließlich kannst Du einen weiteren Button "Wertecheck" in die Maske aufnehmen und auf diese Art die "Sauberkeit" der Werte erfragen. Von der Korrektheit dieses Checks kann man dann die _sens abhängig machen. Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
en0038 Mitglied Ingenieur
Beiträge: 38 Registriert: 28.09.2004
|
erstellt am: 19. Jul. 2005 10:46 <-- editieren / zitieren --> Unities abgeben:
Hallo alg, hat mal wieder geklappt. Was mir allerdings nicht so gefallt ist das die Message auch erscheint wenn der "import proposed value" button gedruckt wird. Zudem wird der apply button nicht deaktiviert? Habe die dfa wie folgt umgeschrieben( steht auch in der zip) (Boolean Parameter Modifiable) jh_a1: @{ storeValue(round(jh_n7 ,self:,jh_n8); true;}; (Boolean Parameter Modifiable) jh_m1: @{ if (jh_n8: < 7) then ug_printMessage({"groove depth must be at least 7 mm !"}) else 0; true;}; (integer) apply_sens: if ( jh_m1: ) then 1 else 0; Aber fur den Moment soll das reichen. Ich habe jetzt eine wichtere frage. Siehe Forum
Gruss en
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
älg Mitglied CADmin
Beiträge: 403 Registriert: 17.06.2003
|
erstellt am: 19. Jul. 2005 10:53 <-- editieren / zitieren --> Unities abgeben: Nur für en0038
Zitat: Was mir allerdings nicht so gefallt ist das die Message auch erscheint wenn der "import proposed value" button gedruckt wird. Zudem wird der apply button nicht deaktiviert?
Ja, ist mir bewußt. Daher der Hinweis Zitat: quick & dirty
. Zeit ist etwas knapp ... Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
älg Mitglied CADmin
Beiträge: 403 Registriert: 17.06.2003
|
erstellt am: 19. Jul. 2005 12:21 <-- editieren / zitieren --> Unities abgeben: Nur für en0038
|
en0038 Mitglied Ingenieur
Beiträge: 38 Registriert: 28.09.2004
|
erstellt am: 19. Jul. 2005 15:50 <-- editieren / zitieren --> Unities abgeben:
|
| Holzingenieur / Holztechniker (m/w/d) | KEMMLIT steht seit 1967 für Top Qualität made in Germany und ist ein marktführendes Unternehmen für sanitäre und individuelle Objektausstattung. Mit klarer Wachstumsstrategie bieten wir ausgezeichnete Entwicklungsmöglichkeiten für Berufseinsteiger sowie für Berufserfahrene, für Fachkräfte als auch für Führungs-Persönlichkeiten. Sie sind auf dem Karriere-Sprung? Dann starten Sie Ihre Karriere mit KEMMLIT.... | Anzeige ansehen | Feste Anstellung |
|
älg Mitglied CADmin
Beiträge: 403 Registriert: 17.06.2003
|
erstellt am: 19. Jul. 2005 15:56 <-- editieren / zitieren --> Unities abgeben: Nur für en0038
|