CalculatorTool¶
Mit dem CalculatorTool können Berechnungen bzw. logische Abfragen durchgeführt werden. Im Gegensatz zu C# oder VB-Skripten sind hier keine Programmierkenntnisse notwendig.
Inputs
Die Inputs können als Terminal per Drag&Drop auf das Tool hinzugefügt werden. Dabei werden folgende Datentypen unterstützt:
System.Int32
System.Double
System.Boolean
System.Int32[]
System.Double[]
System.VisionPro.CogToolResultConstant
Alternativ können Inputs im Tool Editor definiert werden:
Plus-Symbol: Manuelles Hinzufügen eines Input-Terminals
Minus-Symbol: Entfernen des ausgewählten Input-Terminals
Pfeil nach oben/unten: Ändern der Sortierreihenfolge
Name: Name des Input-Terminals
Abbreviation: Abkürzung des Namens, der bei den Ouput-Formeln alternativ zum Namen verwendet werden kann.
Value: Aktueller Wert des Terminals
Type: Datentyp des Terminals
Outputs
Unter „Outputs“ werden die Ergebnisse des Tools angelegt. Dabei können sowohl Zwischenergebnisse ohne Output-Terminal als auch Endergebnisse mit Output-Terminal definiert werden.
Plus-Symbol: Manuelles Hinzufügen eines Outputs
Minus-Symbol: Entfernen des ausgewählten Outputs
Pfeil nach oben/unten: Ändern der Sortierreihenfolge.
Name: Name des Outputs
Formula: Eingabe einer Formel zur Berechnung des Ausgabewertes (siehe weiter unten)
Type: Datentyp des Outputs
Value: Aktueller Wert des Outputs
IsTerminal: Für den Output soll ein Terminal erzeugt werden.
Warnung
Die Outputs werden in der Sortierreihenfolge berechnet. Bitte bei der Sortierung darauf achten, dass Zwischenergebnisse vor der ersten Verwendung ermittelt werden müssen.
Eingabe der Formel
Im Feld „Formula“ werden die Formeln zu Berechnung der Output-Werte angegeben. Über das Kontextmenü (Rechts-Klick auf das „Formula“-Feld) sind alle möglichen Operatoren, Konstanten und Funktionen aufgelistet und können ausgewählt werden:
Außerdem stehen alle Inputs (mit dem unter „Abbreviation“ eingegebenen Namen) zur Verfügung. Outputs, die vor dem aktuellen Wert berechnet werden, können ebenfalls verwendet werden.
Beispiel für Inputs
Beispiel für Outputs
Hinweis
Das Dezimaltrennzeichen ist in allen Feldern ein Punkt.
Übergabeparameter von Funktionen werden mit Kommas getrennt.
Leerzeichen zwischen den Operatoren werden ignoriert.
Es können mehrere Funktionen ineinander verschachtelt werden.
Es ist möglich zwischen Datentypen zu konvertieren, d.h. einem Ausgang einen anderen Datentypen als das zu erwartende Ergebnis zuweisen. Dabei ist zu beachten, dass z.B. bei der Konvertierung von Double nach Integer die Nachkommastellen abgeschnitten und nicht gerundet werden!
Bei einer If-Bedingung müssen drei Parameter übergeben werden. Der Erste stellt die Bedingung dar, der Zweite den Wert bei Zutreffen der Bedingung und der Dritte den Wert bei nicht Zutreffen der Bedingung.
Verfügbare Konstanten, Operatoren, Funktionen
Konstante |
Beschreibung |
|---|---|
e |
Eulersche Zahl |
pi |
Kreiszahl Pi |
Außerdem stehen alle Inputs (über die Abkürzung) und die Outputs oberhalb des aktuellen Eintrages zur Verfügung.
Operator |
Beschreibung |
|---|---|
+ |
Addieren, positives Vorzeichen |
- |
Subtraieren, negatives Vorzeichen |
( |
Geöffnete Klammer |
) |
Geschlossene Klammer |
* |
Multiplizieren |
/ |
Dividieren |
^ |
XOR-Operator |
!= |
Ungleich |
< |
Kleiner |
<= |
Kleiner gleich |
== |
Gleich |
> |
Größer |
>= |
Größer gleich |
if(,,) |
If-Bedingung -> if(<Bedingung>, <Wahr>, <Falsch>) |
Boolsche Funktionen
Funktion |
Beschreibung |
|---|---|
and(,) |
Logischer UND-Operator |
neg(,) |
Logisch negieren |
or(,) |
Logischer ODER-Operator |
xor(,) |
Logischer XOR-Operator |
Winkelfunktionen
Funktion |
Beschreibung |
|---|---|
DegreeToRad() |
Umwandeln von Winkeln in Grad nach Bogenmaß |
RadToDegree() |
Umwandeln von Winkeln in Bogenmaß nach Grad |
RadToMinus45Plus45() |
Umwandeln von Winkeln in Bogenmaß nach Grad und verschieben in den Wertebereich [-45°; 45°] |
RadToMinus180Plus180() |
Umwandeln von Winkeln in Bogenmaß nach Grad und verschieben in den Wertebereich [-180°; 180°] |
RadToZero360() |
Umwandeln von Winkeln in Bogenmaß nach Grad und verschieben in den Wertebereich [0°; 360°] |
RadToZeroAngle(,) |
Umwandeln von Winkeln in Bogenmaß nach Grad und verschieben in den Wertebereich [0°; <Vorgabe>°] |
RadToMinusAnglePlusAngle(,) |
Umwandeln von Winkeln in Bogenmaß nach Grad und verschieben in den Wertebereich [-<Vorgabe>°; <Vorgabe>°] |
Mathematische Funktionen
Funktion |
Beschreibung |
|---|---|
abs() |
Absolutwert einer Zahl, Betrag |
ceil() |
Aufrunden |
cos() |
Kosinus |
cosh() |
Kosinus-Hyperbolikus |
cot() |
Cotangens |
exp() |
Exponential-Funktion |
floor() |
Abrunden |
ln() |
Natürliche Logarithmus |
log(,) |
Logarithmus -> log(<Zahl>, <Basis>) |
max(,) |
Maximalwert zweier Zahlen -> max(<Zahl1>,<Zahl2>) |
min(,) |
Minimalwert zweier zahlen -> min(<Zahl1>,<Zahl2>) |
pow(,) |
Potenzrechnen -> pow(<Zahl>, <Potenz>) |
round(,) |
Runden einer Zahl -> round(<Zahl>, <Nachkommastellen>) |
sin() |
Sinus |
sinh() |
Sinus-Hyperbolikus |
sqrt() |
Wurzelberechnung |
tan() |
Tangens |
tanh() |
Tangens-Hyperbolikus |