Zum Ende der Metadaten springen
Zum Anfang der Metadaten
Syntax | ["CalcFormula",["$Eingang1","$Eingang2,"...","$Eingang_n"], "$Result", "$Formula"]
|
---|
Funktion | Eingangsvariablen-Array: $Eingang_n sind hier Platzthalter für beliebige Variablen-Namen, wobei diese automatisch der Reihenfolge nach und völlig unabhängig von Ihrem Namen den Formelvariabeln X1, X2,X3,... zugeordnet werden. Im Namen der Eingangs-Variabeln muss das X1 usw. nicht vorkommen. Ergebnis: $Result führt das Ergebnis der Rechnung und ist vom Typ float Formel: $Formula ist vom Typ string und beinhaltet die Formel, in die Variablen (X1, X2, X3,...) eingebettet werden, z.B. :"sin(X1+5*X4-X2)*X3". Hinweis: Die Formel muss ebenfalls im Abschnitt Level deklariert werden und kann nicht direkt im Modul als string eingetragen werden! Alle unterstützen Funktionen und Konstanten sind hier: Freie Formel (Logik-Modul) aufgelistet
|
---|
Eingänge | ["$In1", "$In2",... ,"$In_n"] : Array der Variablen, die in der Formel verwendet werden.
|
---|
Ausgänge | |
---|
Hinweise | Dezimalzahlen werden zwingend mit .(Punkt) und nicht mit ,(Komma) getrennt. Die Schreibweise der Variablen in der Formel ist case sensitiv, also X1 (und nicht x1) Ein Fehler in der Formel führt zu dem Ergebnis = 0 und dem Abbruch der gesamten weiteren Custom-Logik (siehe auch Error). Einige Konstanten wie z.B. PI werden unterstützt, Die Schreibweise _pi siehe hier. Zum Zeitpunkt des Verfassen dieses Artikels werden die erweiterten Konstanten wie z.b. _rad nicht unterstützt. Ein vorhandener Eingangsparameter muss nicht in der Formel genutzt werden (das ist beim Debugging von Formelfehlern hilfreich). Mathematische Zeichen müssen gesetzt werden, z.B. 2*X1 (und nicht 2X1) Zahlen zwischen 0 und 1 dürfen ohne die vorangehende 0 geschrieben werden (0.2 = .2), aber das ist eine sehr unschöne Schreibweise und sollte vermieden werden. Leerzeichen in Formeln sind erlaubt und haben keine Auswirkung. Die muparser-Funktionen if(,,) und pow(,) werden nicht unterstützt, siehe auch Besonderheiten weiter unten.
|
---|
Besonderheiten | Dieses Modul nutzt die MuParser Bibliothek. Dadurch können die meisten deschriebenen Funktionen genutzt werden. pow(,) wird nicht unterstützt, kann aber einfach durch ^ ersetzt werden zB: X1^X2 Statt if() kann innerhalb einer Formel eine Fallunterscheidung mittels folgender Schreibweise umgesetzt werden: (X1>0)?X1^X2:0' => if(X1>0) THEN X1X2 ELSE 0 pow(,) lässt sich bei ganzzahligen Exponenten mit einem Polynomial-Baustein ersetzen.
|
---|
Praktische Anwendungsbeispiele | |
---|
Entsprechendes Logik-Modul | Freie Formel (Logik-Modul) |
---|
0 Kommentare