skip to main content
Steuermöglichkeiten innerhalb der Maßformeln
Siehe hierzu:
Ausgabe individueller Fehlermeldungen
Über die Variable FEHLER können Sie individuelle, auf jedes einzelne Makro abgestimmte Fehlermeldungen ausgeben.
Diese Meldungen müssen vom Makroersteller in einer eigenen Datei mit dem Namen makroname.mfe eingetragen werden, die im selben Ordner wie die zugehörige Makrodatei makroname.mac stehen muss.
Die Fehlermeldungsdatei wird bei neu zu erstellenden Makros automatisch erzeugt, wenn die Variable FEHLER in den Maßformeln vorkommt. Diese können Sie aber auch mit Hilfe eines beliebigen Editors oder über Makro korrigieren > Fehlermeldung in der unteren Abfragezeile erstellen bzw. korrigieren.
Das Funktionsprinzip bei den individuellen Fehlermeldungen ist so, dass der Wert der Variablen FEHLER derjenigen Zeilennummer entspricht, in der die entsprechende Meldung in der Datei steht. Mit Hilfe von Variationen des Werts der Variablen FEHLER sind folgende drei Abläufe möglich:
In die Korrekturmaske springen
FEHLER hat einen Wert zwischen 1 und 999
Die Meldung in der Zeile FEHLER wird ausgegeben, anschließend springt das Programm automatisch in die Korrekturmaske, um eine Wertkorrektur vornehmen zu können.
Makroeinbau abbrechen
FEHLER hat einen Wert <0
Durch das negative Vorzeichen wird der weitere Ablauf gesteuert. Für die Ermittlung der Zeile in der Fehlermeldungsdatei bleibt das Vorzeichen unberücksichtigt. Die Meldung in der Zeile (-FEHLER) wird ausgegeben, anschließend bricht das Programm den Makroeinbau ab.
Dies ist geeignet für Anwendungen bei denen fertige Datensätze aus anderen Programmen (Statik o.ä.) übernommen werden und bei denen der Anwender nicht einfach einen Wert korrigieren darf, da sonst z.B. Unstimmigkeiten mit der Statik entstehen.
Warnmeldung ausgeben
FEHLER hat einen Wert >1000
Die Meldung in der Zeile (FEHLER-1000) wird ausgegeben.
Anschließend fahren Sie normal fort, als ob keine Fehlermeldung ausgegeben worden wäre.
Sie können selbst entscheiden, ob Änderungen aufgrund des Warnhinweises auszuführen sind.
Wird die Variable FEHLER mit einem Wert belegt, obwohl keine Fehlerdatei makroname.mfe vorhanden ist, erscheint die Standardfehlermeldung:
Fehler 308: Die individuelle Fehlermeldungsdatei ist nicht vorhanden
Ist der Wert der Variablen FEHLER größer als die Länge der Datei makroname.mfe, erscheint folgende Meldung:
Fehler 309: Die individuelle Fehlermeldungsdatei ist zu kurz.
In beiden Fällen fahren Sie danach fort, als wäre eine Fehlermeldung angezeigt worden (Fortsetzen des Einbaus, Abbruch oder Sprung in die Korrekturmaske).
Formeleingabeanweisung
Als zweite Steuerungsmöglichkeit innerhalb der Formeln existiert die Formeleingabeanweisung. Mit Hilfe des Kennworts EINGABE wird die Abfrage bestimmter Variablenwerte ermöglicht. Dabei ist die gleichzeitige Anzeige anderer Variablenwerte möglich, um dem Anwender eine Entscheidungshilfe für den neuen Eingabewert zu geben.
Die Formeleingabeanweisung hat folgendes Format:
WENN Bedingung EINGABE ein1;ein2;...:aus1;aus2; ...
Die Variablen ein1;ein2;... sind diejenigen Werte, die neu einzugeben sind, während die Variablen aus1;aus2;... nur zur Information in der Funktionszusatzleiste angezeigt werden. Die Anzahl der Variablen ist beliebig, lediglich die Gesamtlänge der Formeleingabeanweisung ist auf 70 Zeichen beschränkt. Im einfachsten Fall reduziert sich die Anweisung auf
WENN Bedingung EINGABE ein1
Ist die Bedingung erfüllt, wird die Eingabe in der Funktionszusatzleiste eingeleitet durch die Anzeige:
Wertneueingabe: aus1=0.00 aus2=0.00 ...
Die Anzeige der aktuellen Maßwerte der Variablen aus1;aus2;... erscheinen nur, wenn diese auch wirklich in der Formeleingabeanweisung angegeben sind.
Anschließend erscheint die Abfrage des neuen Variablenwerts für ein1 in der Funktionsleiste:
Maßwert für ein1 (ENTER = 12.5)
Über [Enter] wird der alte Wert beibehalten.
Anschließend werden die anderen Variablen ein2;ein3;..., falls vorhanden, abgefragt.
 
Wichtig!
Die EINGABE-Anweisung wird nur beim ersten Formellösungsdurchlauf angewendet. Um die Werte zu korrigieren, ist dies nur noch in der Maske möglich, wozu Sie gegebenenfalls die Anweisung EINGABEWERTE verwenden müssen.
Die Eingabeanweisung wird erst während der Formellösung ausgeführt, da erst die Bedingung kontrolliert werden kann. Beachten Sie abhängig von der sonstigen Verwendung der Eingabevariablen Folgendes:
Wird die Eingabevariable auch hinter der Anweisung WENNBELEGUNG aufgeführt, wird sie, wenn überhaupt, nur bei der EINGABE-Anweisung abgefragt. Sie erscheint in diesem Fall in keiner Maske. Damit hat die Eingabeanweisung eher die Funktion einer Eingabeunterdrückung.
1. Beispiel:
Eingabe einer Teillänge in Abhängigkeit von einem Querschnittstyp ohne spätere Korrektur.
WENNBELEGUNG L1
WENN TYP=1 L1=0
WENN TYP=2 EINGABE L1
LGES=L1+L2+L3
Für den besonderen Fall, dass die Eingabevariable trotzdem in der Maske erscheinen soll, wird die Anweisung EINGABEWERTE eingeführt:
WENN Bedingung EINGABEWERTE var1;var2;var3;...
Dadurch werden die aufgeführten Variablen in jeder Maske aufgeführt, wodurch diese noch korrigiert werden können.
Die Anweisung EINGABEWERTE muss vor allen anderen Anweisungen im Formelblock stehen. Sie wird nur in der Maskenkorrektur abgefragt, bei der Formellösung werden diese Zeilen ignoriert. Das bedeutet, dass Variablen in den Bedingungen auch erst später in den Formeln berechnet werden können.
2. Beispiel:
Eingabe einer Teillänge in Abhängigkeit vom Querschnittstyp mit der Möglichkeit, diese Länge auch in der Maske zu korrigieren.
WENNBELEGUNG L1
WENN TYP=2 EINGABEWERTE L1
WENN TYP=1 L1=0
WENN TYP=2 EINGABE L1
LGES=L1+L2+L3
Beachten Sie für den Erhalt eines korrekten Ergebnisses der Formeleingabeanweisung folgende Punkte:
*Alle EINGABE-Zeilen sind auch als EINGABEWERTE-Zeilen an den Anfang der Formeln zu setzen. Dadurch erscheinen alle Werte, die über EINGABE eingegeben wurden auch in den Korrekturmasken.
*Alle EINGABE-Anweisungen sind auch umgekehrt (WENN-Zeile mit entgegengesetzter Bedingung) zu definieren. Das führt zu korrekten Ergebnissen, wenn die EINGABE-Anweisung nicht ausgeführt wird.
*Alle Variablen, die durch EINGABE eingegeben bzw. im entgegengesetzten Fall anderweitig definiert werden, definieren Sie in einer WENNBELEGUNG-Zeile.
Korrektureingabeanweisung
Die Korrektureingabefunktion ist ähnlich aufgebaut wie die Formeleingabeanweisung. Im Unterschied zur zuvor erläuterten Funktion EINGABE, hat die Korrektureingabeanweisung die Aufgabe, während der Formelberechnung festgestellte, falsch belegte Variablen noch zu korrigieren. Das führt zu einer gezielten Fehlerkorrektur im Gegensatz zur eher allgemein gehaltenen Möglichkeit der „individuellen Fehlermeldung“.
Die Form der Korrektureingabeanweisung ist folgendermaßen:
WENN Bedingung KOREINGABE ein1;ein2;...:aus1;aus2;...
 
Anmerkung:
Die Funktion KOREINGABE wird bei jedem Durchlauf durch den Formelblock berücksichtigt.
Wird die Variable in keiner anderen Formel berechnet, wird der Wert auf jeden Fall vor der Formellösung schon einmal abgefragt. In solchen Fällen dient die KOREINGABE-Anweisung der Korrekur von bestimmten Variablen. Auf jeden Fall erscheint die Variable aber in jeder Maske zur Variablenkorrektur.
1. Beispiel:
Eingabe einer neuen Länge, wenn die Maximallänge überschritten wird.
WENN L >1000 KOREINGABE L
Wird die Variable in einer anderen Formel berechnet, ist die KOREINGABE-Anweisung die einzige Möglichkeit den Wert zu korrigieren, da dieser in keiner Maske auftaucht.
2. Beispiel:
Ändern von Zwischenergebnissen, um vernünftige Endergebnisse zu bekommen, z.B. bei der Berechnung von Mattenlängen.
LREST=LGES-N*MATTL+(N-1)*UEBER+LUEBER
WENN LREST<25 KOREINGABE LREST
LUEBER=(LREST-LGES+N*MATTL)/N
Sprunganweisung
Mit Hilfe des Kennworts GEHE können Sie innerhalb der Formeln in eine beliebige Zeile springen. Die Sprungzielzeile ist in der Form :xxx zu kennzeichnen. Der Rest dieser Zeile können Sie als Kommentarzeile nutzen.
Die Form der Sprunganweisung ist
Diese Funktion können Sie eigenständig und auch in Verbindung mit einer WENN-Bedingung nutzen.
Wird hinter der Anweisung GEHE eine Marke angegeben, die im Formelblock nicht vorhanden ist, erscheint folgende Fehlermeldung:
Fehler 322: Sprungadresse nicht vorhanden.
Die Sprunganweisung wird ignoriert und die Formelauswertung in der nächsten Zeile fortgesetzt.
In jedem Fall wird die Formelauswertung so lange fortgesetzt, bis die letzte Formelzeile bearbeitet wurde!
Darum muss sichergestellt sein, dass die letzte Zeile auch erreicht wird.
1. Beispiel:
Die Funktionsweise soll an folgendem Beispiel erläutert werden. Es geht um die Belegung von Maßwerten in Abhängigkeit eines Typs.
$
WENN TYP< >1 GEHE T1
A=23.4*X
B=A*3
GEHE ENDE
Block für TYP=1
:T1
WENN TYP< >2 GEHE T2
A=16.7*X
B=A*3.2
GEHE ENDE
Block für TYP=2
:T2
WENN TYP< >3 GEHE ENDE
A=11.3*X
B=A*3,7
:ENDE
Block für TYP=3
 
2. Beispiel:
Das Bild einer Pi-Platte liegt dem folgenden Beispiel zugrunde:
In der Makrodatei pi.mwb stehen folgende Formeln:
1 BR=B2/4
2 BU=B2/2
3 B3=BGES-2*(B1+B2)
4 WENN BU<14 FEHLER=1001
5 WENN HP<12 FEHLER=2
6 WENN HB=0 FEHLER=-3
7 WENN B3<0 KOREINGABE B1:BGES;B2
Die Fehlermeldungsdatei pi.mfe hat folgendes Aussehen:
Warnung: Mindestdicke des Balkens unterschritten
Mindestdicke der Platte von 12 cm unterschritten
Fehler Nr. 3
Balkenhöhe = 0 > Makro PLATTE benutzen
Fehler Nr. 4
Folgende Abläufe sind möglich:
1. Ergibt sich für BU ein Wert < 14, wird die Meldung:
Warnung: Mindestdicke des Balkens unterschritten
ausgegeben. Nach Bestätigen mit [Enter] läuft das Programm normal weiter. Sie können, z.B. durch die Korrekturmaske, die entsprechenden Werte korrigieren.
2. Wurde für die Plattendicke (HP) ein Wert < 12 eingegeben, erscheint die Meldung:
Mindestdicke der Platte von 12 cm unterschritten.
und nach Bestätigen mit [Enter] erfolgt automatisch der Sprung in die Korrekturmaske.
3. Wurde für die Balkenhöhe (HB) der Wert 0 eingegeben, meldet sich das Programm mit:
Balkenhöhe = 0 Makro PLATTE benutzen
Nach Bestätigen mit [Enter] bricht das Programm ab und kehrt zur Eingabe einer Positionsnummer zurück, dass der Anwender direkt mit dem Einbau des richtigen Makros PLATTE fortfahren kann.
4. Wird für B3 ein Wert < 0 errechnet, wird die Formeleingabeanweisung aktiviert. In der oberen Zeile erscheint die Meldung:
Wertneueingabe: BGES=255.00 B2=50.00
Die Werte für BGES und B2 werden nur zur Information angezeigt.
In der unteren Zeile erscheint die Abfrage des Variablenwerts B1:
Maßwert für B1 (ENTER=70.5)
Mit [Enter] können Sie den alten Wert (hier 70.5 cm) übernehmen.
Anschließend wird das Makro mit dem neuen Wert für B1 neu generiert.
 
Wichtig!
Bei Übernahme der alten Werte bei allen einzugebenden Variablenwerten wird die WENN-Bedingung wieder gleich ausgewertet, dass es zu einer Endlosschleife kommt.