Kapitel 5 - Operatoren & Funktionen
Folgende Operatoren und Funktionen sind in Formelfeldern zulässig, wie zum Beispiel:
- im Dialog Berechnung|Konfiguration, Registerkarte „Zielgrößen“, Typ f(x),
- in Objektdialogen von PLF-Quellen in den Feldern „LwA“, „Dämmung“ und „Dämpfung“,
- alks Bedingung im Dialog Objekte verändern,
- im Feld „Unsicherheit“ auf Registerkarte „Allgemein“, Menü Konfiguration,
- in Formel für Aufsummierung und für Ergebnis im Dialog Objekt-Scan usw.
| == | gleich |
| != | ungleich |
| >= | größer gleich |
| > | größer |
| <= | kleiner gleich |
| < | kleiner |
| ++ | energetische Addition |
| -- | energetische Subtraktion |
| + | Addition |
| - | Subtraktion |
| * | Multiplikation |
| / | Division |
| ( | Klammer auf |
| ) | Klammer zu |
| max | Maximalwert, z.B.: max(1,2) = 2 |
| min | Minimalwert, z.B.: min(1,2) = 1 |
| pow | Potenz: pow(a, b) = a^b |
| abs | Absolutbetrag |
| log10 | Logarithmus zur Basis 10 |
| log | Logarithmus zur Basis e |
| exp10 | 10 hoch x |
| exp | e hoch x |
| sqrt | Quadratwurzel |
| sin | Sinus (Argument im Bogenmaß) |
| cos | Cosinus |
| tan | Tangens |
| ctg | Cotangens |
| deg2rad | Umwandlung Grad in Bogenmaß |
| rad2deg | Umwandlung Bogenmaß in Grad |
| arcsin | Arcussinus |
| arccos | Arcuscosinus |
| arctan | Arcustangens |
| iif | iif(x, a, b) ist a wenn x!=0, b wenn x==0 |
| rand(x,y) | erzeugt Zufallszahl im Intervall x bis y |
| round(x,y) | rundet die Zahl x auf die y-te Dezimale, z.B. round(1.23, 1) wird zu 1.2 gerundet. |
| floor(x) | Ganzzahl von x, d.h.: floor(x.5) = x floor(-x.5) = -x-1 |
| mod(x,y) | berechnet den Modulo (d.h. den „Rest“) der Division von x geteilt durch y, z.B. als Bedingung zur Anzeige der Höhenlinien mit ganzzahliger Höhe HA: mod(HA,2)==0 |
| del | löscht einen Werte bei Anwendung der „Beliebigen Transformation“, z.B.: x=x behält x-Koordinate bei y=y behält y-Koordinate bei z=iif(z!=0, z, del) wenn z-Koord.<>0, behalte Wert bei, ansonsten Löschen |
| int | interpoliert zwischen Werten bei Anwendung der „Beliebigen Transformation“, z.B.: x=x behält x-Koordinate bei y=y behält y-Koordinate bei z=iif(z<0.1, int, z) wenn z-Koord.<0.1, interpoliere, ansonsten Wert beibehalten |
Beispiele
Beispiele für die Felder „Dämpfung“, „LWA“ und „Dämmung“ im Editierfenster von Punkt-, Linien- und Flächenquellen.
| Ausdruck / Operatoren | |
| ((8+4+3.5+2)++17.5)-19) | Kette arithmetischer Operationen |
| 68++65+3 = 68++(65+3) = 71 | Operator + geht vor Operator ++ |
| SP_002++SP_005 | dabei ist SP_002 und SP_005 eine Referenz auf ein Spektrum in der lokalen Bibliothek |
| SP_002 - 3 | in jedem Frequenzband des Spektrums werden 3 dB von dem vorhandenen Wert abgezogen |
| x - 55 | vermindert den vorhandenen Zahlwert um 55 |
| x + 2 | erhöht den vorhandenen Zahlwert um 2 |
| x ++ 50 | Addition von 50 dB zum vorhandenen Pegel unter Berücksichtigung der Pegeladditionsgesetze |
| x -- 50 | Subtraktion von 50 dB vom vorhandenen Pegel |
| 40 ++ 40 | energetische Summe (40++40 = 43) |
| 43 -- 40 | energetische Subtraktion (43- -40 = 40) |
| 40 + 40 | arithmetische Summe (40 + 40 = 80) |
| 80 - 40 | arithmetische Subtraktion (80 - 40 =40) |
Es können alle arithmetischen Ausdrücke oder Schachtelungen verwendet werden.
Benutzerdefinierte Funktionen
In CadnaA können auch benutzerdefinierte Funktionen durch Einbindung einer DLL-Datei (dynamic-link library) realisiert werden. Bei den mitgelieferten Daten befindet sich im Verzeichnis Support\CNA_FUNC ein Beispielprojekt (CNA_FUNC) und eine README.TXT Datei, in der die Einbindung einer DLL im einzelnen beschrieben wird. In jedem Falle ist jeweils einen Eintrag für jede Funktion in der CADNAA.INI Datei erforderlich und der Funktionsname muss in einem CadnaA-Formelfeld (z.B. im Feld LW_LI im Editierfenster einer Punktschallquelle) eingetragen sein.