Mit den allgemeinen Berechnungsfunktionen, können beliebige numerische Werte von Netzelementen mit festen Werten oder mit anderen Datenbankeinträgen umgerechnet werden. Dazu können mehr oder weniger komplexe Formeln kreiert werden.
Es ist zunächst aus dem Listenfeld zu berechnende Netzelement auszuwählen.
Mit unten platzierter Optionsgruppe können die zu berechnenden Kanal- bzw. Leitungselemente auf markierte, gefilterte oder einen Bereich beschränkt werden.
Die Berechnung wird mit der Schaltfläche komplett oder mit der Schaltfläche für einzelne Elemente durchgeführt, die dann in der Grafik zu identifizieren sind.
Mit den Funktionen Datei / Speichern, Datei / Laden und Datei / Alle speichern können Formeln auf der Festplatte abgelegt und wieder geladen werden. Grundsätzlich sind die Formeln im Projekt abgelegt. Die Dateien für Formeln zur Berechnung von Attributen besitzen die Dateiextension RAL.
Vorbereitete Formeln zur Berechnung von numerischen Attributen sind im Vorlageverzeichnis Gemeinsame Dateien des jeweiligen Moduls (Kanal/Leitung) abgelegt und können über die Schaltfläche Datei/Laden ins Projekt aufgenommen werden.
Formeln sind vorbereitet z.B. für das Thema Kanal:
- Die Übernahme automatischer Schadensklassen auf die manuelle.
- Berechnung der Sohlhöhen am Schachtrand.
- Berechnung der Hausanschlusshöhe mit Gefälle 1:150.
Das Warnzeichen bedeutet, dass die Formel nicht berechenbar ist aufgrund eines Syntax-Fehlers, oder dass ein angegebenes Attribut nicht (mehr) existiert zu dem gewählten Netzelement.
Pro Formel ist ein Datenbankfeld anzugeben, „Ergebnis in DB-Feld“, in das die Werte geschrieben werden sollen. Dieses Datenbankfeld (wie auch die in der Formel selbst verwendeten) kann auch ein vom Anwender erzeugtes Attribut sein und kann bereits in der Formel vorkommen.
Mittels der Funktion wird eine neue Formel angelegt, welche zuerst mit einem eindeutigen Namen versehen wird. In der Spalte „Formel“ wird die Formel angezeigt und kann bearbeitet werden. Folgender Dialog steht dafür zur Verfügung:
Formel bearbeiten
(Beispieldialog)
Formel übernehmen | |
Abbrechen und den Formeleditor verlassen | |
Auswahl der Attribute | |
Hinzufügen eines numerischen Wertes durch Eingabe im Taschenrechner. | |
Auswahl der Formelzeichen | |
rückgängig |
Attribute erscheinen in der Schreibweise %Attribut% bzw. %Netzelement:Attribut%.
Verarbeitet werden können vom integrierten Funktions-Parser die vier Grundrechen-Arten (+,-,*,/) sowie Klammer-Ausdrücke. Des Weiteren können vorgegebene komplexe mathematische Funktionen sowie Konstanten eingefügt werden. Im Einzelnen sind dies derzeit die folgenden:
Funktionen:
- absoluter Wert ---- Abs(x : double) : double
- Und ---- And(a : integer[0;1]; b : integer[0;1]) : integer[0;1]
- arc cos ---- ArcCos(x : double) : double
- arc sin ---- ArcSin(x : double) : double
- arc tan ---- ArcTan(x : double) : double
- Wert aufrunden ---- Ceil(x : double) : double
- cos ---- Cos(x : double) : double
- div ---- Div(x : integer; y : integer) : integer
- Potenz von e ---- Exp(x : double) : double
- Wert abrunden ---- Floor(x : double) : double
- Nachkomma-Anteil ---- Frac(x : double) : double
- Gleichheit ---- Gleich(x : double; y : double) : integer[0;1]
- Gon zu Grad ---- GonToGrad(x : double) : double
- rad zu Grad ---- Grad(x : double) : double
- Grad zu Gon ---- GradToGon(x : double) : double
- Größer als ---- Groesser(x : double; y : double) : integer[0;1]
-
Größer gleich ---- GroesserGleich(x : double; y : double) :
integer[0;1]
-
Entscheidung ---- IfThenElse(b : integer[0;1]; x : double; y : double) :
double
- ganzzahliger Anteil ---- Int(x : double) : double
- Kleiner als ---- Kleiner(x : double; y : double) : integer[0;1]
- Kleiner gleich ---- KleinerGleich(x : double; y : double) : integer[0;1]
- natürlicher Logarithmus ---- Ln(x : double) : double
- Logarithmus zur Basis 2 ---- Log2(x : double) : double
- Logarithmus zur Basis 10 ---- Log10(x : double) : double
- Logarithmus ---- LogN(x : double; y : double) : double
- Min ganzzahlig ---- MinInt(a : integer; b : integer) : integer
- Max ganzzahlig ---- MaxInt(a : integer; b : integer) : integer
- Min ratioanl ---- MinReal(a : double; b : double) : double
- Max rational ---- MaxReal(a : double; b : double) : double
- Modulo ---- mod(x : integer; y : integer) : integer
- Winkel normieren ---- NormAngle(x : double) : double
- Negierung ---- Not(b : integer[0;1]) : integer[0;1]
- Oder …. Or(a : integer[0;1]; b : integer[0;1]) : integer[0;1]
- Potenz ---- Power(x : double; y : double) : double
- Radiant ---- Rad(x : double) : double
- Random ---- Random(x : integer) : integer
- Runden ---- Round(x : double) : double
- Vorzeichen ---- Sign(x : double) : double
- sin ---- Sin(x : double) : double
- Quadrat ---- Sqr(x : double) : double
- Quadratwurzel ---- Sqrt(x : double) : double
- Ungleichheit ---- Ungleich(x : double; y : double) : integer[0;1]
- Exklusiv-Oder ---- Xor(a : integer[0;1]; b : integer[0;1]) : integer[0;1]
Konstanten:
- PI (Kreis-Konstante)
- TRUE (1)
- FALSE (0)