Expressions/de

Übersicht
Es ist möglich, Eigenschaften durch mathematische Formeln festzulegen. In der graphischen Oberfläche enthaltenen Rotationsboxen oder Eingabefelder, die an Eigenschaften gebunden sind, haben ein blaues Symbol. Durch Klicken auf das Symbol oder durch Eingabe des Gleichheitszeichens wird der Ausdruckseditor für diese bestimmte Eigenschaft aufgerufen.

Ein FreeCAD-Ausdruck ist ein mathematischer Ausdruck der der üblichen Schreibweise für die Operatoren und Funktionen entspricht (siehe unten). Zusätzlich können sich die Ausdrücke auf andere Eigenschaften bedingte Ausdrücke beziehen. Zahlen in Ausdrücken können mit einer optionalen Einheit versehen sein.

Zahlen können entweder ein Komma ',' oder einen Dezimalpunkt '.' zur Trennung der Ganzzahlen von Nachkommastellen verwenden. Wenn diese Trennung benutzt wird, muss danach mindestens eine Ziffer folgen. Daher sind die Ausdrücke 1.+2. und 1,+2, ungültig, aber 1.0+2.0 und 1,0+2,0 sind gültig.

Die Rechenarten und Funktionen verstehen sich auf Einheiten und erfordern deshalb bei deren Verwendung zulässige Einheitenkombinationen. 2mm+4mm ist zum Beispiel ein zulässiger Ausdruck, während 2mm+4 nicht zulässig ist. Der Grund dafür ist, dass ein Ausdruck, wie 1in + 4 von Menschen wohl als 1in + 4in interpretiert wird, das System jedoch alle Einheiten intern in das SI-System konvertiert. Aktuell werden diese Einheiten erkannt.

Unterstützte Konstanten und Unterstützte Funktionen können verwendet werden.

Bezugnehmende Objekte
Sie können auf ein Objekt über seinen oder über seine  verweisen. Im Falle eines muss es von doppelten  und  Symbolen umschlossen sein, wie z.B..

Es kann auf jede numerische Eigenschaft dieses Objekts verwiesen werden. Um sich beispielsweise auf die Höhe eines Zylinders zu beziehen, kann oder  verwendet werden. Umlaute, wie (ä, ö, ü etc.) dürfen nicht verwendet werden.

Um auf Listenobjekte zu verweisen, lautet die Syntax oder. Wenn beispielsweise auf eine Einschränkung in einer Skizze verwiesen werden soll, geht man wie folgt vor: <>.Constraints[16]. Wenn man sich in derselben Skizze befindet, kann man den Namen weglassen und einfach Constraints[16]'. verwenden. Hinweis: Der Index beginnt mit 0, daher hat die Einschränkung 17 den Index 16.

Mehr zu referenzierenden Objekten, siehe Referenzen auf CAD-Daten in diesem Beitrag.

Die folgenden Operatoren werden untertstützt:

Unterstützte Konstanten
Die folgenden Konstanten werden unterstützt:

Allgemeine mathematische Funktionen
Die nachfolgend aufgeführten mathematischen Funktionen sind verfügbar.

Mehrere Argumente zu einer Funktion können entweder durch ein Semikolon ';' oder ein Komma gefolgt von einem Leerzeichen ', ' getrennt werden. Im letzteren Fall wird das Komma nach der Eingabe in ein Semikolon umgewandelt. Wenn ein Semikolon verwendet wird, ist kein Leerzeichen am Ende des Semikolons erforderlich.

Trigonometrische Funktionen verwenden Grad als Standardeinheit. Für die Angabe im Bogenmaß wird rad nach dem ersten Wert in einem Ausdruck hinzugefügt. So ist z.B. cos(45) das gleiche, wie cos(pi rad / 4). Ausdrücke in Grad können entweder deg oder ° verwenden, z.B. 360deg - atan2(3; 4) or 360&deg; - atan2(3; 4). Ein Ausdruck, der ohne Einheiten angegeben ist und aus Kompatibilitätsgründen in Grad oder Bogenmaß umgewandelt werden muss, wird mit 1 deg, 1 ° oder 1 rad multipliziert, gegebenenfalls, z.B. (360 - X) * 1deg; (360 - X) * 1°; (0.5 + pi / 2) * 1rad. Folgende Trigonometrische Funktionen werden unterstützt:

Diese Exponential- oder Logarithmusfunktionen werden unterstützt:

These functions for rounding, truncation and remainder are supported:

Statistical / Aggregate Functions
Aggregate functions take one or more arguments, separated by a semicolon ';' or a comma and a space ', '. Arguments may include references to cells in a spreadsheet. Cell references consist of the (CAPITAL) row letter followed by the column number. Arguments may include ranges of cells (two cell references separated by a colon), for example average(B1:B8).

These aggregate functions are supported:

Bedingte Ausdrücke
Bedingte Ausdrücke haben die Form '''Bedingung ? ResultatWahr : ResultatFalsch''' bzw. '''condition ? resultTrue : resultFalse'''. Die Bedingung ist definiert als ein Ausdruck, der entweder zu '0' (falsch) oder ungleich Null (wahr) ausgewertet wird.

Die folgenden Vergleichsoperatoren sind definiert:

Einheiten
Units can directly be used in expressions. The parser connects them to the previous value. So '2mm' or '2 mm' is valid while ' mm' is invalid because there is no preceding value.

All values must have a unit. Therefore you must in general use a unit for values in spreadsheets. In some cases it works even without a unit, for example if you have e.g. in spreadsheet cell B1 just the number 1.5 and refer to it for a pad height. This only works because the pad height predefines the unit mm that is used if no unit is given. It will nevertheless fail if you use for the pad height e.g. Sketch1.Constraints.Width - Spreadsheet.B1 because Sketch1.Constraints.Width has a unit and Spreadsheet.B1 has not.

Units with exponents can directly be entered. So e.g. mm^3 will be recognized as mm³ and m^3 will be recognized as m³.

Trigonometrische Funktionen verwenden Grad als Standardeinheit; durch Hinzufügen von rad nach dem ersten Wert kann auch die Einheit Radiant in einem Ausdruck verwendet werden. Beispiel: cos(45) ist das Gleiche wie cos(pi rad / 4).

The following units are recognized by the expression parser:

Amount of substance:

Angle:

Current:

Electrical Capacitance:

Electrical Conductance:

Electrical Inductance:

Electrical Resistance:

Electric Charge:

Electric Potential:

Energy / Work:

Force:

Length:

Luminous Intensity:

Magnetic Field Strength:

Magnetic Flux:

Magnetic Flux Density:

Mass:

Bedingte Ausdrücke
Pressure:

Temperature:

Time:

Torque:

Volume:

Special imperial units:

The following commonly used units are not yet supported:

Referenzen auf CAD-Daten
Größenangaben von anderen Elementen der Konstruktion können in Rechenausdrücken verwendet werden. Die Syntax für eine Referenz auf ein Eigenschaftenfeld sieht wie folgt aus: Objekt.Eigenschaft. Wenn sich die Eigenschaft aus einer Reihe von Feldern zusammensetzt, kann wie folgt darauf zugegriffen werden: Object.Eigenschaft.Feldname.

Die folgende Tabelle zeigt einige Beispiele:

Dokumentweit gültige globale Variablen
Es gibt aktuell keine Infrastruktur für globale Variablen in FreeCAD. Stattdessen können beliebige Variablen als Zellwerte innerhalb einer Tabelle des Arbeitsbereiches Tabellenkalkulation (Spreadsheet) definiert werden und ihnen ein Name mittels der Alias-Eigenschaft für Zellen zugeordnet werden(Rechtsklick auf die Zelle). Danach können die Zellwerte in allen Rechenausdrücken verwendet werden, sie wie andere Eigenschaften von Objekten auch.

Dokumentübergreifende Verlinkung
Es ist möglich, eine Tabelle in einem Dokument aus einem anderen Dokument zu referenzieren.

Wichtiger Hinweis: Der Name des Dokuments muss angegeben werden, um es von einem anderen Dokument aus referenzieren zu können. Wenn ein Dokument nun zum ersten Mal gespeichert wird, muss dem Dokument ein Name gegeben werden, der normalerweise nicht "Unbenannt1" (oder eine anderssprachige Version) ist, und dann sind die Links beim erneuten Öffnen verloren. Deshalb ist es empfehlenswert zuerst das Stammdokument mit der Tabelle zu erstellen, zu speichern und zu schließen. Nach dem erneuten Öffnen wird der interne Name auf den Dateinamen gesetzt. Danach kann das Dokument geändert und gespeichert werden, aber es darf nicht umbenannt werden.

Danach können weitere Dokumente erstellt werden in denen entsprechende Rechenausdrücke eingesetzt werden. Angenommen, dass das Stammdokument "Stammdaten" genannt wurde, können Referenzen auf das Stammdokument wie folgt eingesetzt werden: Stammdaten#Spreadsheet.Length

Note: that the master document must be loaded for the values in the master to be available to the dependent document.

Unglücklicherweise ist der eingebaute Formelprüfer mehr verwirrend als hilfreich, weil er immer wieder Interpretationsfehler meldet, dass dieses oder jenes nicht existiert. Daher einfach mit dem Eintippen fortfahren. Wenn man fertig ist und der Inhalt stimmt, dann wird plötzlich OK gemeldet.

Bei der Verwendung verknüpfter Dokumente ist der Benutzer dafür verantwortlich, dass alle Dokumente auch geöffnet sind, wenn irgendwelche Änderungen vorzunehmen sind.

Bekannte Probleme / Verbliebene Aufgaben

 * Der Abhängigkeitsgraph basiert auf der Beziehung zwischen Objekten des Dokuments und nicht auf Beziehungen zwischen Eigenschaften. Das bedeutet, dass man nicht Daten einem Objekt zur Verfügung stellen kann und gleichzeitig Daten von diesem Objekt abfragt, selbst wenn keine zyklische Verknüpfung auf Basis der Eigenschaften besteht. Zur Umgehung des Problems können mehrere Tabellen angelegt werden: Eine Tabelle, die die Objektdaten zur Verfügung stellt und eine andere zur Datenauswertung.
 * Es gibt keinen Manager für Rechenausdrücke, mit dem alle vorhandenen Rechenausdrücke aufgelistet werden können oder sonst wie erstellt, gelöscht oder gesucht werden können.
 * Offene Fehler/Tickets für die Rechenausdrücke (Expressions) können hier nachgeschlagen werden: FreeCAD Bugtracker Expressions category