Expressions/de

Übersicht
Es ist möglich, Eigenschaften unter Verwendung von mathematischen Ausdrücken festzulegen. In der GUI enthalten Drehfelder oder Eingabefelder, die an Eigenschaften gebunden sind, ein blaues Symbol. Klicken auf das Symbol oder Eingeben des Gleichheitszeichens ruft den Ausdruckseditor für diese bestimmte Eigenschaft auf.

Ein FreeCAD-Ausdruck ist ein mathematischer Ausdruck, der die mathematischen Standard- Operatoren, Funktionen und vorgegebene Konstanten verwendet, wie unten beschrieben. Zusätzlich können Ausdrücke auf Objekteigenschaften referenzieren und auch Bedingte Ausdrücke verwenden. Zahlen in Ausdrücken können optionale Einheiten angefügt werden.

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   und  ungültig, aber  und   sind gültig.

Operatoren und Funktionen beachten die Einheiten und erfordern gültige Kombinationen von Einheiten, falls verfügbar. Zum Beispiel ist ein gültiger Ausdruck, während  kein gültiger Ausdruck ist. Dies gilt auch für Referenzen auf Objekteigenschaften, die Einheiten beinhalten, wie z.B. Längeneigenschaften. Daher ist ungültig, da es einer Eigenschaft mit Längeneinheit nur eine Zahl ohne Einheit hinzufügt; gültig wäre.

Some unit related errors can seem unintuitive, with expressions either being rejected or producing results that do not match the units of the property being set. Here are some examples:

is not interpreted as half a millimeter but as, resulting in:.

is not valid because the function call is not a number. This has to be entered as.



Funktionsargumente
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.

Die Argumente können Verweise auf Zellen in einer Kalkulationstabelle enthalten. Ein Zellverweis besteht aus dem großen Zeilenbuchstaben der Zelle, gefolgt von ihrer Spaltennummer, zum Beispiel. Eine Zelle kann auch durch den Alias der Zelle referenziert werden, zum Beispiel.



Referenzierende Objekte
Du kannst auf ein Objekt über seinen oder über seine  verweisen. Im Falle einer muss es in doppelten  und  Symbolen eingeschlossen sein, wie z.B..

Es kann auf jede Eigenschaft eines Objekts referenziert werden. Um sich beispielsweise auf die Höhe eines Zylinders zu beziehen, können oder  verwendet werden. Um auf das Objekt selbst zu referenzieren, verwendet man die Pseudeo-Eigenschaft. Z.B. können oder  verwendet werden.

Um auf Listenobjekte zu verweisen, verwende oder. Wenn du beispielsweise auf eine Randdbedingung in einer Skizze verweisen möchtest, verwende. Wenn du dich in derselben Skizze befindest, kann man den Namen weglassen und einfach verwenden. Hinweis: Der Index beginnt mit 0, daher hat die Randbedingung 17 den Index 16.

Für weitere Informationen über das Referenzieren von Objekten siehe Referenz zu CAD Daten.



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



Unterstützte Operatoren
Die folgenden Operatoren werden untertstützt:



Unterstützte Funktionen


Allgemeine mathematische Funktionen
Die folgenden mathematischen Funktionen werden untertstützt:



Trigonometrische Funktionen
Trigonometrische Funktionen verwenden Grad als Standardeinheit. Für die Angabe im Bogenmaß wird nach dem ersten Wert in einem Ausdruck hinzugefügt. So ist z.B. das gleiche, wie. Ausdrücke in Grad können entweder oder  verwenden, z.B.  oder. Ein Ausdruck, der ohne Einheiten angegeben ist und aus Kompatibilitätsgründen in Grad oder Bogenmaß umgewandelt werden muss, wird mit, oder  multipliziert, gegebenenfalls, z.B. ; ;.



Exponential- und Logarithmusfunktionen


Rundung, Trunkierung und Modulo


Statistische / Aggregatfunktionen
Aggregatfunktion verwenden ein oder mehrere Argumente.

Einzelne Argumente für Aggregatfunktionen können aus Zellbereichen bestehen. Ein Zellbereich wird durch zwei Zellbezüge ausgedrückt, die durch einen Doppelpunkt getrennt sind, zum Beispiel  oder. Die Zellbezüge können auch Zell Aliase verwenden, zum Beispiel.

Diese Aggregatfunktionen werden unterstützt:



Zeichenkettenhandhabung


Zeichenkettenerkennung
Zeichenketten werden in Ausdrücken erkannt, indem sie in doppelte öffnende/schließende Winkel eingeschlossen werden (so wie Beschriftungen).

Im folgenden Beispiel wird "TEXT" als eine Zeichenkette erkannt:



Zeichenkettenverkettung
Zeichenketten können durch das '+'-Zeichen aneinandergehängt werden.

Das folgende Beispiel wird verbunden zu "MYTEXT".



Umwandlung in Zeichenketten
Numerische Werte können mit der Funktion in Zeichenketten gewandelt werden:



Zeichenkettenformatierung
Zeichenkettenformatierung wird unterstützt durch die (alte) %-Form von Python.

Alle %-Spezifizierer wie in der (engl.) Python documentation definiert.

Hat man bspw. einen mit den Vorgabewerten erstellten Würfel namens 'Box' (FreeCAD-Standardbezeichnung) mit 10mm-Kantenlänge, wird der folgende Ausdruck erweitert zu "Würfellänge: 10.0 mm"

Für mehr als einen %-Spezifizierer verwendet man folgende Syntax:. Oder man verwendet die Verkettung:. Beide ergeben zusammen "Würfellänge ist 10.0 mm und Breite ist 10.0 mm".

Eine FreeCAD-Beispieldatei, die Zeichenkettenformatierung zeigt, ist unter im Forum verfügbar (engl.)



Funktionen zur Objekterstellung
Die folgenden Objekte können in Ausdrücken durch die folgenden Funktionen erstellt werden:

Vector functions
<span id="Matrix_functions">

Matrixfunktionen
and can each be represented by a. The following functions all take in a, , or as their first parameter denoted in the table below by. The type of the returned object is the same as the object supplied in the first argument except when using on a, in which case a  will be returned.

<span id="Conditional_expressions">

Bedingte Ausdrücke
Bedingte Ausdrücke haben die Form. Die Bedingung ist definiert als ein Ausdruck, der entweder zu (falsch/false) oder Nicht-Null (wahr/true) ausgewertet wird. Beachte, dass das Einschließen des bedingten Ausdrucks in Klammern derzeit als Fehler angesehen wird.

Die folgenden Vergleichsoperatoren sind definiert:

Einheiten
Einheiten können direkt in Ausdrücken verwendet werden. Der Analysator (parser) verbindet sie mit dem vorherigen Wert. So ist oder  gültig, während   ungültig ist, weil es keinen vorhergehenden Wert gibt.

Alle Werte müssen eine Einheit haben. Daher müssen Werte auch in Kalkulationstabellen im allgemeinen eine Einheit haben. In einigen Fällen funktioniert es auch ohne Einheit, z.B. wenn Sie in Zelle B1 der Kalkulationstabelle z.B. nur die Zahl haben und sich für eine Blockhöhe darauf beziehen. Dies funktioniert nur, weil die Blockhöhe die Einheit vordefiniert und die verwendet wird, wenn keine Einheit angegeben ist. Es schlägt jedoch fehl, wenn Sie für die Blockhöhe z.B. verwenden, weil  eine Einheit hat und  keine Einheit.

Einheiten mit Exponenten können direkt eingegeben werden. So wird z.B. als mm³ erkannt und  wird als m³ erkannt.

Wenn eine Variable mit dem Namen einer Einheit verwendet wird, muss die Variable in  gesetzt werden. Das verhindert, dass die Variable als Einheit erkannt wird. Das Maß  würde z.B. als Einheit Ampere erkannt werden. Daher muss der Ausdruck als geschrieben werden.

Die folgenden Einheiten werden vom Analysator für Ausdrücke erkannt:

<span id="Amount_of_substance">

Strom
<span id="Electric_capacitance">

Elektrische Kapazität
<span id="Electric_charge">

Elektrische Ladung
<span id="Electric_conductivity">

Elektrischer Leitwert
<span id="Electric_inductance">

Elektrische Induktivität
<span id="Electric_potential">

Elektrische Spannung
Elektrisches Spannung:

<span id="Electric_resistance">

Elektrischer Widerstand
Elektrischer Widerstand:

<span id="Energy/work">

Länge
<span id="Luminous_intensity">

Lichtstärke
<span id="Magnetic_flux">

Magnetischer Fluss
<span id="Magnetic_flux_density">

Volumen
<span id="Special_imperial_units">

Spezielle nichtmetrische Einheiten
<span id="Unsupported_units">

Nicht unterstützte Einheiten
Die folgenden häufig verwendeten Einheiten werden noch nicht unterstützt, für einige gibt es aber Alternativen:

<span id="Invalid_characters_and_names">

Ungültige Zeichen und Namen
Das Ausdrucks-Feature ist sehr leistungsfähig. Um das zu ermöglichen gibt es ein paar Einschränkungen bei ein paar Zeichen. Als Abhilfe gibt es in FreeCAD die Möglichkeit anstatt der Objektnamen sog. Bezeichner ('labels') zu verwenden und sich auf diese zu beziehen.

In Fällen, in denen du keine Beschriftung verwenden kannst, wie z. B. der Name einer Skizzenbeschränkung, musst du dir bewusst sein, welche Zeichen nicht erlaubt sind.

Bezeichner
Für Bezeichner gibt es keine ungültigen Zeichen, jedoch müssen einige Zeichen maskiert werden:

Zum Beispiel muss der Bezeichner als  referenziert werden.

Namen
Namen von Objekten wie Maße, Skizzen, usw. dürfen folgende Zeichen oder Zeichenfolgen nicht enthalten. Anderenfalls ist der Namen ungültig.

Beispielsweise ist folgender Name gültig:. Hingegen sind diese ungültige Namen: (\r bedeutet "Wagenrücklauf (carriage return)") oder<<Sketch>>.Constraints.mol (mol ist eine Einheit).

Da kürzere Namen (vor allem, wenn sie nur ein oder zwei Zeichen haben) leicht zu ungültigen Namen führen können, sollte die Verwendung längerer Namen in Betracht gezogen und/oder eine geeignete Namenskonvention festgelegt werden.

<span id="Cell_aliases">

Zell Aliasse
Siehe Spreadsheet Alias-Namen festlegen.

<span id="Reference_to_CAD_data">

Referenzen auf CAD Daten
Es ist möglich, Daten aus dem Modell selbst in einem Ausdruck zu verwenden. Um auf eine Eigenschaft zu verweisen, verwende. Wenn die Eigenschaft ein Verbund von Feldern ist, kann auf die einzelnen Felder mit  zugegriffen werden.

Die folgende Tabelle zeigt einige Beispiele:

<span id="Document-wide_global_variables">

Dokumentweit gültige globale Variablen
In FreeCAD gibt es zur Zeit kein Konzept für globale Variablen. Stattdessen können beliebige Variablen mit Hilfe der Arbeitsbereich Kalkulationstabelle als Zellen in einer Kalkulationstabelle definiert werden und dann mit Hilfe der Alias Eigenschaft für die Zelle (Rechtsklick auf die Zelle) einen Namen erhalten. Dann kann von jedem Ausdruck aus auf sie zugegriffen werden, wie auf jede andere Objekteigenschaft auch.

<span id="Cross-document_linking">

Dokumentenübergreifende Verweise
Es ist (mit Begrenzungen) möglich, eine Eigenschaft eines Objekts in deinem aktuellen Dokument (".FCstd" Datei) durch Verwendung eines Ausdrucks zu definieren, um auf eine Eigenschaft eines Objekts in einem anderen Dokument zu verweisen (".FCstd" file). Zum Beispiel kann eine Zelle in einer Kalkulationstabelle oder die eines Formteil Würfels usw. in einem Dokument durch einen Ausdruck definiert werden, der auf den X Platzierungswert oder eine andere Eigenschaft eines Objekts in einem anderen Dokument verweist.

Der Name des Dokuments wird verwendet, um von einem anderen Dokument aus darauf zu referenzieren. Wenn ein Dokument zum ersten Mal gespeichert wird, muss dem Dokument ein Name gegeben werden. Dies ist normalerweise ein anderer Name als die Vorgabe "Unbenannt1". Um zu verhindern, dass Verknüpfungen beim Speichern des Hauptdokumentes verloren gehen, wenn dieses dabei einen anderen Namen bekommt, sollte das Hauptdokument zuerst mit einer Kalkulationstabelle erstellt werden. Danach kann der Inhalt des Dokuments geändert und das Dokument gespeichert werden, aber es darf nicht umbenannt werden.

Sobald das Mutterdokument mit der Kalkulationstabelle erstellt und gespeichert (benannt) ist, können abhängige Dokumente erstellt werden. Angenommen, du nennst das Mutterdokument, die Kalkulationstabelle und gibst einer Zelle einen Alias-Namen , dann kannst du auf den Wert zugreifen als:

Hinweis: dass das Mutterdokument geladen sein muss, damit die Werte des Mutterdokuments für das abhängige Dokument verfügbar sind.

Leider meldet der integrierte Prüfer manchmal, dass ein gültiger Name nicht existiert. Tippe trotzdem weiter. Wenn du die vollständige Referenz eingegeben hast, wird die Schaltfläche aktiv.

Natürlich liegt es bei dir, die zugehörigen Dokumente später zu laden, wenn du etwas ändern willst.

<span id="Known_issues_/_remaining_tasks">

Bekannte Probleme / Verbleibende Aufgaben

 * Das Abhängigkeitsdiagramm basiert auf der Beziehung zwischen Dokumentobjekten, nicht auf Eigenschaften. Das bedeutet, dass man nicht Daten einem Objekt zur Verfügung stellen kann und gleichzeitig Daten von diesem Objekt abfragt. Auch wenn es beispielsweise keine zyklischen Abhängigkeiten gibt, wenn die Eigenschaften selbst berücksichtigt werden, kann es vorkommen, dass es kein Objekt gibt, das seine Abmessungen aus einer Kalkulationstabelle erhält und dann das Volumen dieses Objekts in derselben Kalkulationstabelle anzeigt. Zur Umgehung des Problems können mehrere Tabellen angelegt werden: Eine Tabelle, die die Objektdaten zur Verfügung stellt und eine andere zur Datenauswertung.
 * Der Analysator für Ausdrücke kann mit Klammern nicht gut umgehen und ist nicht in der Lage, einige Ausdrücke korrekt zu analysieren. Zum Beispiel führt zu einem Fehler, während  akzeptiert wird. Der Ausdruck  kann in keiner Form eingegeben werden.
 * Wie oben erwähnt, erkennt der eingebaute Formelprüfer einen gültigen Namen manchmal nicht. Daher einfach mit der Eingabe fortfahren. Wenn die vollständige Verknüpfung eingegeben ist, wird die Schaltfläche aktiv.
 * FreeCAD hat bisher keinen eingebauten Ausdrucksverwalter, mit dem alle Ausdrücke in einem Dokument aufgeführt und erstellt, gelöscht, abgefragt, etc. werden können. Aber es ist ein Addon verfügbar: fcxref expression manager.
 * Offene Fehler/Tickets für die Ausdrücke (Expressions) können hier nachgeschlagen werden: FreeCAD Bugtracker Expressions category