Rechenausdrücke

From FreeCAD Documentation
Jump to: navigation, search
This page is a translated version of the page Expressions and the translation is 31% complete.

Outdated translations are marked like this.
Other languages:
Deutsch • ‎English • ‎español • ‎français • ‎italiano • ‎русский

verfügbar in Version 0.16


Seit der Version 0.16 ist es möglich, Modelleigenschaften durch Rechenformeln festzulegen und mit anderen Eigenschaften von der Benutzeroberfläche aus zu verknüpfen. Eingabefelder von Eigenschaften für Zahlen oder Größenangaben enthalten einen blauen Knopf Sketcher Expressions.png. Wenn man auf dieses Symbol klickt oder das Gleichheitszeichen (=) eingibt, öffnet sich der Formeleditor für die entsprechende Eigenschaft.

Ein Rechenausdruck in FreeCAD ist ein mathematischer Ausdruck in der üblichen Schreibweise für die Standardrechenarten (+, -, * und /) und mathematische Funktionen. (Siehe unten.) Zusätzlich können referenzierte Eigenschaften anderer Objekte und bedingte Ausdrücke verwendet werden. Zahlen in Rechenausdrücken können mit Einheiten verwendet werden.

Numbers may use either a comma ',' or a decimal point '.' separating whole digits from decimals. When the decimal marker is used, it must be followed by at least one digit. Thus, the expressions 1.+2. and 1,+2, are invalid, but 1.0+2.0 and 1,0+2,0 are valid.

The constants pi and e are predefined, and must be written in lowercase.

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

Unterstützte Funktionen

General Mathematical Functions

Trigonometrische Funktionen verwenden Grad als Standardeinheit. Durch Hinzufügen von "rad" kann auch die Einheit Radiant verwendet werden.

Multiple arguments to a function may be separated by either a semicolon (';') or a comma followed by a space (", "). In the latter case, the comma is converted to a semicolon after entry. When a semicolon is used, no trailing space is necessary.

Trigonometric functions use degrees as their default unit; for radian measure, add rad following the first value in an expression. Example: cos(45) is the same as cos(pi rad / 4).

Method.png abs(x)

Description: Absolute value

Returns: value >= 0

Method.png acos(x)

Description: Arc cosine; -1 <= x <= 1

Returns: acos(x)

Method.png asin(x)

Description: Arc sine; -1 <= x <= 1

Returns: asin(x)

Method.png atan(x)

Description: Arc tangent

Returns: atan(x)

Method.png atan2(y, x)

Description: Arc tangent of y / x;

Returns: atan2(y,x)

Method.png ceil(x)

Description: Ceiling

Returns: The smallest integer value greater than or equal to x introduced in version 0.16

Method.png cos(angle)

Description: Cosine; angle is in degrees (any value)

Returns: -1 <= cos(x) <= 1

Method.png cosh(x)

Description: Hyperbolic cosine of x

Returns: cosh(x)

Method.png exp(y)

Description: Natural exponent

Returns: e y

Method.png floor(x)

Description: Floor

Returns: The largest integer value less than or equal to x introduced in version 0.16

Method.png log(x)

Description: Natural logarithm

Returns: loge x

Method.png log10(x)

Description: Logarithm base 10

Returns: log10 x

Method.png mod(x, y)

Description: Remainder x/y

Returns: Remainder after dividing x by y

Method.png pow(x, y)

Description: Power function

Returns: x y

Method.png round(x)

Description:

Returns: x rounded to the nearest integer introduced in version 0.16

Method.png sin(angle)

Description: Cosine; angle in degrees (any value)

Returns: -1 <= sin(x) <= 1

Method.png sinh(x)

Description: Hyperbolic sine of x

Returns: sinh(x)

Method.png sqrt(x)

Description: Square root; x >= 0

Returns: Square root of x

Method.png tan(angle)

Description: Tangent; angle in degrees (any value)

Returns: tan(angle)

Method.png tanh(x)

Description: Hyperbolic tangent of x

Returns: tanh(x)

Method.png trunc(x)

Description: Truncate

Returns: x truncated to the nearest integer introduced in version 0.16

Die Konstanten pi und e sind vordefiniert.

Method.png average(x y)

Description: Average of values in cells x through y

Returns: sum(x, y) / count(x, y)

Method.png count(x y)

Description: Number of cells from x through y

Returns: The number of cells from x through y, inclusive

Method.png max(x y)

Description: Maximum value in cells x through y

Returns: Maximum value

Method.png min(x y)

Description: Minimum value in cells x through y

Returns: Minimum value

Method.png stddev(x y)

Description: Standard deviation of values in cells x through y

Returns: Standard deviation

Method.png sum(x y)

Description: Sum of values in cells x through y

Returns: Sum

Conditional Expressions

Die Bedingung muss ein Ausdruck sein, der entweder 0 (für falsch) oder ungleich 0 für wahr ergibt. Die folgenden Vergleichsoperatoren stehen zur Verfügung: ==, !=, >, <, >=, und <=.

The condition is defined as an expression that evaluates to either 0 (false) or non-zero (true). The following comparison operators are defined: ==, !=, >, <, >=, and <=.

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:

CAD-Daten Aufruf im Rechenausdruck Ergebnis
Parametrische Länge eines Quaders vom Arbeitsbereich Part Cube.Length Länge mit der Einheit mm
Volumen des Quaders Cube.Shape.Volume Volumen in mm³ Ausgabe ohne Einheiten
Typ des Quader-Shapess (geometrische Figur) Cube.Shape.ShapeType String: Solid
Label des Quader-Objekts Cube.Label String: Cube
x-Koordinate des Schwerpunktes des Quaders Cube.Shape.CenterOfMass.x x-Koordinate in mm ohne Einheiten
Wert einer Beschränkung in einer Skizze Constraints.Breite Numerischer Wert der benannten Beschränkung 'Breite' in der Skizze
Wert eines Alias einer Kalkulationstabelle Spreadsheet.Tiefe Wert des Alias "Tiefe" in der Kalkulationstabelle "Spreadsheet"
Wert einer lokalen Eigenschaft des Objekts Length Wert der Eigenschaft Length von z. B. einem Pad-Objekt, wenn es in dem Ausdruck z. B. in der Eigenschaft Length2 im gleichen Objekt benutzt wird.

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 der Tabellenkalkulation in einem Dokument zu haben und aus anderen Dokumenten auf Werte dieser Tabelle 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

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