Expressions/de: Difference between revisions

From FreeCAD Documentation
(Created page with "Energie / Arbeit: {| class="wikitable float-right mw-collapsible mw-collapsed" !style="width: 33%;"|Einheit !style="width: 66%;"|Beschreibung |- | mJ | Milli[https://de.wikipe...")
No edit summary
 
(369 intermediate revisions by 8 users not shown)
Line 2: Line 2:
{{TOCright}}
{{TOCright}}


<span id="Overview"></span>
==Übersicht==
==Ü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 [[Image:Bound-expression.svg|24px]]. Klicken auf das Symbol oder Eingeben des Gleichheitszeichens {{KEY|&#61;}} ruft den Ausdruckseditor für diese bestimmte Eigenschaft auf.
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 [[Image:Sketcher_Expressions.png|32px]]. Durch Klicken auf das Symbol oder durch Eingabe des Gleichheitszeichens {{KEY|&#61;}} 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.
Ein FreeCAD-Ausdruck ist ein mathematischer Ausdruck, der die mathematischen Standard- [[#Unterstützte_Operatoren|Operatoren]], [[#Unterstützte_Funktionen|Funktionen]] und [[#Unterstützte_Konstanten|vorgegebene Konstanten]] verwendet, wie unten beschrieben. Zusätzlich können Ausdrücke auf Objekteigenschaften referenzieren und auch [[#Bedingte_Ausdrücke|Bedingte Ausdrücke]] verwenden. Zahlen in Ausdrücken können optionale [[#Einheiten|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.
Zahlen können entweder ein Komma {{incode|,}} oder einen Dezimalpunkt {{incode|.}} zur Trennung von Ganzzahlen und Nachkommastellen verwenden. Wenn ein Dezimaltrennzeichen 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.
Daher sind die Ausdrücke {{incode|1.+2.}} und {{incode|1,+2,}} ungültig, aber {{incode|1.0 + 2.0}} und {{incode|1,0 + 2,0}} sind gültig.


Operatoren und Funktionen beachten die Einheiten und erfordern gültige Kombinationen von Einheiten, falls verfügbar. Zum Beispiel ist {{incode|2mm + 4mm}} ein gültiger Ausdruck, während {{incode|2mm + 4}} kein gültiger Ausdruck ist.
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 [[#Units|Einheiten]] erkannt.
Dies gilt auch für Referenzen auf Objekteigenschaften, die Einheiten beinhalten, wie z.B. Längeneigenschaften. Daher ist {{incode|Pad001.Length + 1}} ungültig, da es einer Eigenschaft mit Längeneinheit nur eine Zahl ohne Einheit hinzufügt; gültig wäre {{incode|Pad001.Length + 1mm}}.


Einige Fehler im Zusammenhang mit Einheiten können unverständlich erscheinen, wenn Ausdrücke abgelehnt werden oder die Ergebnisse nicht den Einheiten der bearbeiteten Eigenschaft entsprechen. Ein paar Beispiele:
[[#Unterstützte Konstanten|Unterstützte Konstanten]] und [[#Unterstützte Funktionen|Unterstützte Funktionen]] können verwendet werden.


{{incode|1/2mm}} wird nicht als halber Millimeter angesehen sondern als {{incode|1/(2mm)}} und ergibt: {{incode|0.5 mm^-1}}.
===Bezugnehmende Objekte===


{{incode|sqrt(2)mm}} ist ungültig, da der Funktionsaufruf keine Zahl ist. Dies muss so eingegeben werden: {{incode|sqrt(2) * 1mm}}.
Sie können auf ein Objekt über seinen {{incode|Namen}} oder über seine {{incode|Ettikett}} verweisen. Im Falle eines {{incode|Ettiketts}} muss es von doppelten {{incode|<<}} und {{incode|>>}} Symbolen umschlossen sein, wie z.B. {{incode|<<Ettikett>>}}.


<span id="Function_arguments"></span>
Es kann auf jede numerische Eigenschaft dieses Objekts verwiesen werden. Um sich beispielsweise auf die Höhe eines Zylinders zu beziehen, kann {{incode|Zylinder.Hoehe}} oder {{incode|<<Langer_Name_des_Zylinders>>.Hoehe}} verwendet werden. Umlaute, wie (ä, ö, ü etc.) dürfen nicht verwendet werden.
===Funktionsargumente===


Mehrere Argumente zu einer Funktion können entweder durch ein Semikolon {{incode|;}} oder ein Komma <em> gefolgt von einem Leerzeichen</em> {{incode|,}} 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.
Um auf Listenobjekte zu verweisen, lautet die Syntax {{incode|<<object_label>>.list[list_index]}} oder {{incode|object_name.list[list_index]}}. Wenn beispielsweise auf eine Einschränkung in einer Skizze verwiesen werden soll, geht man wie folgt vor: '''<<Meine Skizze>>.Constraints[16]'''. Wenn man sich in derselben Skizze befindet, kann man den Namen weglassen und einfach '''Constraints[16]''''.<br/> verwenden.
'''Hinweis:''' Der Index beginnt mit 0, daher hat die Einschränkung 17 den Index 16.


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 {{incode|A1}}. Eine Zelle kann auch durch den Alias der Zelle referenziert werden, zum Beispiel {{incode|Tabellenblatt.MeineTeilbreite}}.
Mehr zu referenzierenden Objekten, siehe [[#Referenzen auf CAD-Daten|Referenzen auf CAD-Daten]] in diesem Beitrag.


<span id="Referencing_objects"></span>
===Referenzierende Objekte===

Wie oben schon gezeigt, kann ein Objekt über seinen {{PropertyData/de|Namen}} referenziert werden. Es kann aber auch seine {{PropertyData/de|Benennung}} (Label) verwendet werden. Im Falle einer {{PropertyData/de|Benennung}} muss sie in doppelten {{incode|<<}} und {{incode|>>}} Symbolen eingeschlossen sein, wie z.B. {{incode|<<Benennung>>}}.

Jede Eigenschaft eines Objekts kann referenziert werden. Um sich beispielsweise auf die Höhe eines Zylinders zu beziehen, kann {{incode|Zylinder.Height}} oder {{incode|<<Benennung_des_Zylinders>>.Height}} verwendet werden.

Für weitere Informationen über das Referenzieren von Objekten siehe [[#Auf_CAD-Daten_referenzieren|Auf CAD-Daten referenzieren]].
{{Top}}
<span id="Supported_constants"></span>
==Unterstützte Konstanten==

Die folgenden Konstanten werden unterstützt:

{| class="wikitable"
!style="width: 33%;"|Konstante
!style="width: 66%;"|Beschreibung
|-
| style="text-align:center;" | '''e'''
| [https://de.wikipedia.org/wiki/Eulersche_Zahl Eulersche Zahl]
|-
| style="text-align:center;" | '''pi'''
| [https://de.wikipedia.org/wiki/Kreiszahl Kreiszahl <math>\pi</math>]
|}
{{Top}}
<span id="Supported_operators"></span>
== Unterstützte Operatoren ==


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

{| class="wikitable float-right mw-collapsible mw-collapsed"
{| class="wikitable"
!style="width: 33%;"|Operator
!style="width: 33%;"|Operator
!style="width: 66%;"|Beschreibung
!style="width: 66%;"|Beschreibung
Line 51: Line 80:
| [https://de.wikipedia.org/wiki/Potenz_(Mathematik) Potenz]
| [https://de.wikipedia.org/wiki/Potenz_(Mathematik) Potenz]
|}
|}
{{Top}}

<span id="Supported_functions"></span>
==Unterstützte Konstanten==

Die folgenden Konstanten werden unterstützt:
{| class="wikitable float-right mw-collapsible mw-collapsed"
!style="width: 33%;"|Konstante
!style="width: 66%;"|Beschreibung
|-
| style="text-align:center;" | '''e'''
| [https://de.wikipedia.org/wiki/Eulersche_Zahl Eulersche Zahl]
|-
| style="text-align:center;" | '''pi'''
| [https://de.wikipedia.org/wiki/Kreiszahl Kreiszahl <math>\pi</math>]
|}

== Unterstützte Funktionen ==
== Unterstützte Funktionen ==


<span id="General_mathematical_functions"></span>
=== Allgemeine mathematische Funktionen ===
=== Allgemeine mathematische Funktionen ===


Die nachfolgend aufgeführten mathematischen Funktionen sind verfügbar.
Die folgenden mathematischen Funktionen werden untertstützt:


<span id="Trigonometric_functions"></span>
Mehrere Argumente zu einer Funktion können entweder durch ein Semikolon ';' oder ein Komma <em> gefolgt von einem Leerzeichen</em> ', ' 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 ====


[https://de.wikipedia.org/wiki/Trigonometrische_Funktion Trigonometrische Funktionen] verwenden Grad als Standardeinheit. Für die Angabe im Bogenmaß wird '''rad''' nach dem <em>ersten</em> 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&nbsp;deg''', '''1&nbsp;°''' oder '''1&nbsp;rad''' multipliziert, gegebenenfalls, z.B. '''(360 - X) * 1deg'''; '''(360 - X) * 1°'''; '''(0.5 + pi / 2) * 1rad'''. <br/>
[https://de.wikipedia.org/wiki/Trigonometrische_Funktion Trigonometrische Funktionen] verwenden Grad als Standardeinheit. Für die Angabe im Bogenmaß wird {{incode|rad}} nach dem <em>ersten</em> Wert in einem Ausdruck hinzugefügt. So ist z.B. {{incode|cos(45)}} das gleiche, wie {{incode|cos(pi rad / 4)}}. Ausdrücke in Grad können entweder {{incode|deg}} oder {{incode|°}} verwenden, z.B. {{incode|360deg - atan2(3; 4)}} oder {{incode|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 entsprechend mit {{incode|1deg}}, {{incode|}} oder {{incode|1rad}} multipliziert, z.B. {{incode|(360 - X) * 1deg}}; {{incode|(360 - X) * 1°}}; {{incode|(0.5 + pi / 2) * 1rad}}.

Folgende Trigonometrische Funktionen werden unterstützt:

{| class="wikitable float-right mw-collapsible mw-collapsed"
{| class="wikitable"
!style="width: 33%;"|Funktion
!style="width: 33%;"|Beschreibung
!style="width: 15%;"|Funktion
!style="width: 33%;"|Wertebereich
!style="width: 55%;"|Beschreibung
!style="width: 30%;"|Eingabebereich
|-
|-
| acos(x)
| {{incode|acos(x)}}
| [https://de.wikipedia.org/wiki/Arkusfunktion#Beziehungen_zwischen_den_Funktionen arccos]
| [https://de.wikipedia.org/wiki/Arkusfunktion#Beziehungen_zwischen_den_Funktionen arccos]
| -1 <= x <= 1
| -1 <= x <= 1
|-
|-
| asin(x)
| {{incode|asin(x)}}
| [https://de.wikipedia.org/wiki/Arkusfunktion#Beziehungen_zwischen_den_Funktionen arcsin]
| [https://de.wikipedia.org/wiki/Arkusfunktion#Beziehungen_zwischen_den_Funktionen arcsin]
| -1 <= x <= 1
| -1 <= x <= 1
|-
|-
| atan(x)
| {{incode|atan(x)}}
| [https://de.wikipedia.org/wiki/Arkusfunktion#Beziehungen_zwischen_den_Funktionen arctan]
| [https://de.wikipedia.org/wiki/Arkusfunktion#Beziehungen_zwischen_den_Funktionen arctan], Bereich des Rückgabewertes: -90° < Wert < 90°
| alle
| alle
|-
|-
| atan2(x, y)
| {{incode|atan2(y; x)}}
| [https://de.wikipedia.org/wiki/Arctan2#Implementierungen arctan2] von ''x/y''
| [https://de.wikipedia.org/wiki/Arctan2#Implementierungen arctan2] von ''y/x'' unter Berücksichtigung des Quadranten, Bereich des Rückgabewertes: -180° < Wert <= 180°
| alle, außer y = 0
| alle, die ungültige Eingabe x = y = 0 gibt 0 zurück
|-
|-
| cos(x)
| {{incode|cos(x)}}
| [https://de.wikipedia.org/wiki/Trigonometrische_Funktion#Definition cos]
| [https://de.wikipedia.org/wiki/Trigonometrische_Funktion#Definition cos]
| alle
| alle
|-
|-
| cosh(x)
| {{incode|cosh(x)}}
| [https://de.wikipedia.org/wiki/Hyperbelfunktion#Definition cosh]
| [https://de.wikipedia.org/wiki/Hyperbelfunktion#Definition cosh]
| alle
| alle
|-
|-
| sin(x)
| {{incode|sin(x)}}
| [https://de.wikipedia.org/wiki/Trigonometrische_Funktion#Definition sin]
| [https://de.wikipedia.org/wiki/Trigonometrische_Funktion#Definition sin]
| alle
| alle
|-
|-
| sinh(x)
| {{incode|sinh(x)}}
| [https://de.wikipedia.org/wiki/Hyperbelfunktion#Definition sinh]
| [https://de.wikipedia.org/wiki/Hyperbelfunktion#Definition sinh]
| alle
| alle
|-
|-
| tan(x)
| {{incode|tan(x)}}
| [https://de.wikipedia.org/wiki/Trigonometrische_Funktion#Definition tan]
| [https://de.wikipedia.org/wiki/Trigonometrische_Funktion#Definition tan]
| alle, außer für x = n·90 mit n = integer
| alle, außer x = n*90 mit n = odd integer (ungerade Ganzzahl)
|-
|-
| tanh(x)
| {{incode|tanh(x)}}
| [https://de.wikipedia.org/wiki/Hyperbelfunktion#Definition tanh]
| [https://de.wikipedia.org/wiki/Hyperbelfunktion#Definition tanh]
| alle
| alle
|-
| {{incode|hypot(x; y)}}
| [https://de.wikipedia.org/wiki/Pythagoreische_Addition Pythagoreische Addition] ('''Hypot'''enuse), z.B. hypot(4; 3) = 5.
| x und y >= 0
|-
| {{incode|cath(x; y)}}
| Die gegebene Hypotenuse und eine Seite ergibt die andere Seite eines Dreiecks (Kathete), z.B. cath(5; 3) = 4.
| x >= y >= 0
|}
|}


<span id="Exponential_and_logarithmic_functions"></span>
Diese Exponential- oder Logarithmusfunktionen werden unterstützt:
==== Exponential- und Logarithmusfunktionen ====
{| class="wikitable float-right mw-collapsible mw-collapsed"

{| class="wikitable"
!style="width: 33%;"|Funktion
!style="width: 33%;"|Funktion
!style="width: 33%;"|Beschreibung
!style="width: 33%;"|Beschreibung
!style="width: 33%;"|Wertebereich
!style="width: 33%;"|Eingabebereich
|-
|-
| exp(x)
| exp(x)
Line 146: Line 175:
| sqrt(x)
| sqrt(x)
| [https://de.wikipedia.org/wiki/Quadratwurzel Quadratwurzel]
| [https://de.wikipedia.org/wiki/Quadratwurzel Quadratwurzel]
| x >= 0
|-
| cbrt(x) {{Version/de|0.21}}
| [https://de.wikipedia.org/wiki/Wurzel_(Mathematik)#Quadrat-_und_Kubikwurzel Kubikwurzel]
| x >= 0
| x >= 0
|}
|}


<span id="Rounding,_truncation_and_remainder_functions"></span>
Diese Funktionen für Rundung, Trunkierung und Modulo werden unterstützt:
==== Rundung, Trunkierung und Modulo ====
{| class="wikitable float-right mw-collapsible mw-collapsed"

{| class="wikitable"
!style="width: 20%;"|Funktion
!style="width: 20%;"|Funktion
!style="width: 55%;"|Beschreibung
!style="width: 55%;"|Beschreibung
!style="width: 25%;"|Wertebereich
!style="width: 25%;"|Eingabebereich
|-
|-
| abs(x)
| {{incode|abs(x)}}
| [https://de.wikipedia.org/wiki/Betragsfunktion Betragsfunktion]
| [https://de.wikipedia.org/wiki/Betragsfunktion Betragsfunktion]
| alle
| alle
|-
|-
| ceil(x)
| {{incode|ceil(x)}}
| [https://de.wikipedia.org/wiki/Abrundungsfunktion_und_Aufrundungsfunktion Abrundungsfunktion] kleinster ganzzahliger Wert größer oder gleich x
| [https://de.wikipedia.org/wiki/Abrundungsfunktion_und_Aufrundungsfunktion Aufrundungsfunktion], kleinster ganzzahliger Wert größer oder gleich x
| alle
| alle
|-
|-
| floor(x)
| {{incode|floor(x)}}
| [https://de.wikipedia.org/wiki/Abrundungsfunktion_und_Aufrundungsfunktion Aufrundungsfunktion], größter ganzzahliger Wert kleiner oder gleich x
| [https://de.wikipedia.org/wiki/Abrundungsfunktion_und_Aufrundungsfunktion Abrundungsfunktion], größter ganzzahliger Wert kleiner oder gleich x
| alle
| alle
|-
|-
| mod(x, y)
| {{incode|mod(x, y)}}
| [https://de.wikipedia.org/wiki/Division_mit_Rest Division mit Rest] nach einer Division ''x'' durch ''y''
| [https://de.wikipedia.org/wiki/Division_mit_Rest Division mit Rest] nach einer Division ''x'' durch ''y'', das Vorzeichen des Ergebnisses ist das des Dividenden.
| alle, außer y = 0
| alle, außer y = 0
|-
|-
| round(x)
| {{incode|round(x)}}
| [https://de.wikipedia.org/wiki/Rundung Rundung] auf die nächste Ganzzahl
| [https://de.wikipedia.org/wiki/Rundung Rundung] auf die nächste Ganzzahl
| alle
| alle
|-
|-
| trunc(x)
| {{incode|trunc(x)}}
| [https://de.wikipedia.org/wiki/Trunkierung_(Mathematik) Trunkierung] auf die nächste Ganzzahl (Kürzen auf einer Reihe oder Zahl auf eine gewisse Länge)
| [https://de.wikipedia.org/wiki/Trunkierung_(Mathematik) Trunkierung] auf die nächste Ganzzahl in Richtung Null (Nachkommastellen entfernen).
| alle
| alle
|}
|}
{{Top}}
<span id="Statistical_/_aggregate_functions"></span>
=== Statistische / Aggregatfunktionen ===


[https://de.wikipedia.org/wiki/Aggregatfunktion Aggregatfunktion] verwenden ein oder mehrere Argumente.<br>
=== Statistik (Stochastik) / Aggregatfunktionen ===

[https://de.wikipedia.org/wiki/Aggregatfunktion Aggregatfunktion] verwenden ein oder mehrere Argumente, getrennt durch einen Strichpunkt ';' oder ein Komma ''und'' ein Leerzeichen ', '.<br/>
Einzelne Argumente für Aggregatfunktionen können aus Zellbereichen bestehen. Ein Zellbereich wird durch zwei Zellbezüge ausgedrückt, die durch einen Doppelpunkt {{Incode|:}} getrennt sind, zum Beispiel {{Incode|Durchschnitt(B1:B8)}} oder {{Incode|Summe(A1:A4; B1:B4)}}.
Die Argumente können Verweise auf Zellen in einer Kalkulationstabelle enthalten. Zellverweise bestehen aus dem Zeilenbuchstaben (nur Großbuchstaben), gefolgt von der Spaltennummer.<br/>
Argumente können Zellbereiche (zwei durch einen Doppelpunkt getrennte Zellbezüge) enthalten, zum Beispiel '''Durchschnitt(B1:B8)'''.
Die Zellbezüge können auch Zell Aliase verwenden, zum Beispiel {{Incode|Durchschnitt(StartTemp:EndTemp)}}.


Diese Aggregatfunktionen werden unterstützt:
Diese Aggregatfunktionen werden unterstützt:

{| class="wikitable float-right mw-collapsible mw-collapsed"
{| class="wikitable"
!style="width: 20%;"|Funktion
!style="width: 20%;"|Funktion
!style="width: 55%;"|Beschreibung
!style="width: 55%;"|Beschreibung
!style="width: 25%;"|Wertebereich
!style="width: 25%;"|Eingabebereich
|-
|-
| average(x:y)
| {{incode|average(a; b; c; ...)}}
| [https://de.wikipedia.org/wiki/Arithmetisches_Mittel Arithmetisches Mittel] von Werten in Zellen x bis y; sum(x:y) / count(x:y); Summe/Anzahl
| [https://de.wikipedia.org/wiki/Arithmetisches_Mittel Arithmetisches Mittel] der Werte der Argumente, dasselbe, wie sum(a; b; c; ...) / count(a; b; c; ...)
| alle
| alle
|-
|-
| count(x:y)
| {{incode|count(a; b; c; ...)}}
| [https://de.wikipedia.org/wiki/Z%C3%A4hlen Zählen] der Zellen von x bis y
| [https://de.wikipedia.org/wiki/Z%C3%A4hlen Zählen] der Argumente, üblicherweise für Zellbereiche genutzt
| alle
| alle
|-
|-
| max(x:y)
| {{incode|max(a; b; c; ...)}}
| [https://de.wikipedia.org/wiki/Extremwert Extremwert (Maximum)] von Werten in Zellen x bis y
| [https://de.wikipedia.org/wiki/Extremwert Extremwert (Maximum)]-Werte der Argumente
| alle
| alle
|-
|-
| min(x:y)
| {{incode|min(a; b; c; ...)}}
| [https://de.wikipedia.org/wiki/Extremwert Minimum] von Werten in Zellen x bis y
| [https://de.wikipedia.org/wiki/Extremwert Minimum (Minimum)]-Werten der Argumente
| alle
| alle
|-
|-
| stddev(x:y)
| {{incode|stddev(a; b; c; ...)}}
| [https://de.wikipedia.org/wiki/Varianz_(Stochastik) Varianz (Stochastik)] von Werten in Zellen x bis y
| [https://de.wikipedia.org/wiki/Varianz_(Stochastik) Varianz (Stochastik)] der Werte der Argumente
| alle
| alle
|-
|-
| sum(x:y)
| {{incode|sum(a; b; c; ...)}}
| [https://de.wikipedia.org/wiki/Summe Summe] von Werten in Zellen x bis y
| [https://de.wikipedia.org/wiki/Summe Summe] der Werte der Argumente, üblicherweise für Zellbereiche genutzt
| alle
| alle
|}
|}
{{Top}}
<span id="String_manipulation"></span>
=== Zeichenkettenhandhabung ===


<span id="String_identification"></span>
==== 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: {{Incode|<<TEXT>>}}

<span id="String_concatenation"></span>
==== Zeichenkettenverkettung ====

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

Das folgende Beispiel {{Incode|<<MY>>+<<TEXT>>}} wird verbunden zu "MYTEXT".

<span id="String_conversion"></span>
====Umwandlung in Zeichenketten ====

Numerische Werte können mit der Funktion {{incode|str}} in Zeichenketten gewandelt werden:

{{incode|str(Box.Length.Value)}}

<span id="String_formatting"></span>
==== Zeichenkettenformatierung ====

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

Alle %-Spezifizierer wie in der (engl.) [https://docs.python.org/3/library/stdtypes.html#printf-style-string-formatting 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 {{incode|<<Würfellänge: %s>> % Box.Length}} erweitert zu "Würfellänge: 10.0 mm"

Für mehr als einen %-Spezifizierer verwendet man folgende Syntax: {{incode|<<Würfellänge ist %s und Würfelbreite ist %s>> % tuple(Box.Length; Box.Width)}}. Oder man verwendet die Verkettung: {{Incode|<<Würfellänge ist %s>> % Box.Length + << und Länge ist %s>> % Box.Width}}. Beide ergeben zusammen "Würfellänge ist 10.0 mm und Breite ist 10.0 mm".

Eine FreeCAD-Beispieldatei, die Zeichenkettenformatierung zeigt, ist unter [https://forum.freecadweb.org/viewtopic.php?f=8&t=58657 im Forum] verfügbar (engl.)
{{Top}}
<span id="Object_creation_functions"></span>
===Funktionen zur Objekterstellung===

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

{| class="wikitable"
! Type
! Function
! Description
|-
| {{incode|Tuple}}
| {{incode|tuple(a; b; ...)}}
| Example: {{incode|tuple(2; 1; 2)}}
|-
| {{incode|List}}
| {{incode|list(a; b; ...)}}
| Example: {{incode|list(2; 1; 2)}}
|-
| rowspan="2" | [[Vector API|{{incode|Vector}}]]
| {{incode|vector(x; y; z)}}
| rowspan="2" | Create a vector using three unit-less or {{incode|Length}} unit values.
Example: {{incode|vector(2; 1; 3)}}
|-
| {{incode|create(<<vector>>; x; y; z)}}
|-
| rowspan="2" | [[Matrix API|{{incode|Matrix}}]]
|
matrix(
a<sub>11</sub>; a<sub>12</sub>; a<sub>13</sub>; a<sub>14</sub>;
a<sub>21</sub>; a<sub>22</sub>; a<sub>23</sub>; a<sub>24</sub>;
a<sub>31</sub>; a<sub>32</sub>; a<sub>33</sub>; a<sub>34</sub>;
a<sub>41</sub>; a<sub>42</sub>; a<sub>43</sub>; a<sub>44</sub>
)
| rowspan="2" | Create a 4x4 matrix in [https://en.wikipedia.org/wiki/Row-_and_column-major_order row-major order]:
<math>
\begin{bmatrix}
a_{11} & a_{12} & a_{13} & a_{14} \\
a_{21} & a_{22} & a_{23} & a_{24} \\
a_{31} & a_{32} & a_{33} & a_{34} \\
a_{41} & a_{42} & a_{43} & a_{44} \\
\end{bmatrix}
</math>

A minimum of 1 argument can be supplied such as {{incode|matrix(1)}} which creates an identity matrix.

Example: {{incode|matrix(1; 2; 3; 4; 5; 6; 7; 8; 9; 10; 11; 12; 13; 14; 15; 16)}}
|-
| {{incode|create(<<matrix>>; a<sub>11</sub>; a<sub>12</sub>; ...; a<sub>44</sub>)}}
|-
| rowspan="4" | {{incode|Rotation}}
| {{incode|rotation(axis; angle)}}
| rowspan="4" | Create a {{incode|Rotation}} by specifying its {{incode|axis}} ({{incode|Vector}}) and {{incode|angle}} ({{incode|Angle}} unit or unit-less), or three Euler angles {{incode|α}}, {{incode|β}}, {{incode|γ}}.
Examples:
* {{incode|rotation(vector(0; 1; 0); 45)}}
* {{incode|create(<<rotation>>; 30; 30; 30)}}
|-
| {{incode|rotation(α; β; γ)}}
|-
| {{incode|create(<<rotation>>; axis; angle)}}
|-
| {{incode|create(<<rotation>>; α; β; γ)}}
|-
| rowspan="5" | [[Placement_API|{{incode|Placement}}]]
| {{incode|placement(base; rotation)}}
| rowspan="5" | Create a {{incode|Placement}} with various parameters, including:
* {{incode|base}}: base location ({{incode|Vector}})
* {{incode|center}}: center location ({{incode|Vector}})
* {{incode|rotation}}: {{incode|Rotation}}
* {{incode|axis}}: Rotation axis ({{incode|Vector}})
* {{incode|angle}}: Rotation angle (unit-less or {{incode|Angle}} unit value)
* {{incode|matrix}}: {{incode|Matrix}}

Examples:
* {{incode|placement(vector(2; 1; 3); rotation(vector(0; 0; 1); 45))}}
* {{incode|create(<<placement>>; create(<<vector>>; 2; 1; 2); create(<<rotation>>; create(<<vector>>; 0; 1; 0); 45))}}
|-
| {{incode|placement(base; rotation; center)}}
|-
| {{incode|placement(base; axis; angle)}}
|-
| {{incode|placement(matrix)}}
|-
| {{incode|create(<<placement>>; ...)}}
|}
{{Top}}
<span id="Vector_functions"></span>
===Vektorfunktionen===

Functions: {{Version|0.22}}.

{| class="wikitable"
! Function / Operator
! Description
|-
| {{incode|v1 + v2}}
| Add two vectors.
|-
| {{incode|v1 - v2}}
| Subtract two vectors.
|-
| {{incode|v * s}}
| Uniformly scale a vector by {{incode|s}}.
|-
| {{incode|vangle(v1; v2)}}
| Angle between two vectors in degrees.
|-
| {{incode|vcross(v1; v2)}}
| Cross product of two vectors <math>v_1 \times v_2</math>.
|-
| {{incode|v1 * v2}}
| rowspan="2" | Dot product of two vectors <math>v_1 \cdot v_2</math>.
|-
| {{incode|vdot(v1; v2)}}
|-
| {{incode|vlinedist(v1; v2; v3)}}
| Distance between vector {{incode|v1}} and a line through {{incode|v2}} in direction {{incode|v3}}.
|-
| {{incode|vlinesegdist(v1; v2; v3)}}
| Distance between vector {{incode|v1}} and the closest point on a line segment from {{incode|v2}} to {{incode|v3}}.
|-
| {{incode|vlineproj(v1; v2; v3)}}
| Project vector {{incode|v1}} on a line through {{incode|v2}} in direction {{incode|v3}}.
|-
| {{incode|vnormalize(v)}}
| Normalize a vector to a unit vector.
|-
| {{incode|vplanedist(v1)}}
| Distance between vector {{incode|v1}} and a plane defined by a point {{incode|v2}} and a normal {{incode|v3}}.
|-
| {{incode|vplaneproj(v1)}}
| Project vector {{incode|v1}} on a plane defined by a point {{incode|v2}} and a normal {{incode|v3}}.
|-
| {{incode|vscale(v; sx; sy; sz)}}
| rowspan="4" | Non-uniformly scale a vector by {{incode|sx}} in the X direction, {{incode|sy}} in the Y direction, and {{incode|sz}} in the Z direction.
|-
| {{incode|vscalex(v; sx)}}
|-
| {{incode|vscaley(v; sy)}}
|-
| {{incode|vscalez(v; sz)}}
|}
{{Top}}
<span id="Matrix_functions"></span>
===Matrixfunktionen===

{{incode|Rotation}} and {{incode|Placement}} can each be represented by a {{incode|Matrix}}. The following functions all take in a {{incode|Matrix}}, {{incode|Rotation}}, or {{incode|Placement}} as their first parameter denoted in the table below by {{incode|m}}. The type of the returned object is the same as the object supplied in the first argument except when using {{incode|mtranslate}} on a {{incode|Rotation}}, in which case a {{incode|Placement}} will be returned.

{| class="wikitable"
! Function
! Description
|-
| {{incode|minvert(m)}}
| Calculate the [https://en.wikipedia.org/wiki/Invertible_matrix Inverse matrix].
|-
| {{incode|mrotate(m; rotation)}}
| rowspan="3" | [https://en.wikipedia.org/wiki/Transformation_matrix#Rotation_2 Rotate] by either:
* a {{incode|Rotation}}
* an axis ({{incode|Vector}}) and an angle ({{incode|Angle}} unit or unit-less)
* three Euler angles {{incode|α}}, {{incode|β}}, {{incode|γ}}
|-
| {{incode|mrotate(m; axis; angle)}}
|-
| {{incode|mrotate(m; α; β; γ)}}
|-
| {{incode|mrotatex(m; angle)}}
| [https://en.wikipedia.org/wiki/Transformation_matrix#Rotation_2 Rotate] around the X axis.
|-
| {{incode|mrotatey(m; angle)}}
| [https://en.wikipedia.org/wiki/Transformation_matrix#Rotation_2 Rotate] around the Y axis.
|-
| {{incode|mrotatez(m; angle)}}
| [https://en.wikipedia.org/wiki/Transformation_matrix#Rotation_2 Rotate] around the Z axis.
|-
| {{incode|mtranslate(m; vector)}}
| rowspan="2" | [https://en.wikipedia.org/wiki/Translation_(geometry)#Matrix_representation Translate] by a {{incode|vector}} ({{incode|Vector}}) or X, Y, Z values. If a {{incode|Rotation}} is translated, the returned object is a {{incode|Placement}}.
|-
| {{incode|mtranslate(m; x; y; z)}}
|-
| {{incode|mscale(m; vector)}}
| rowspan="2" | [https://en.wikipedia.org/wiki/Scaling_(geometry)#Matrix_representation Scale] by a {{incode|vector}} ({{incode|Vector}}) or X, Y, Z values.
|-
| {{incode|mscale(m; x; y; z)}}
|}
{{Top}}
<span id="Conditional_expressions"></span>
== Bedingte Ausdrücke ==
== Bedingte Ausdrücke ==


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


Die folgenden [https://de.wikipedia.org/wiki/Vergleichsoperator Vergleichsoperatoren] sind definiert:
Die folgenden [https://de.wikipedia.org/wiki/Vergleichsoperator Vergleichsoperatoren] sind definiert:
{| class="wikitable float-right mw-collapsible mw-collapsed"
{| class="wikitable"
!style="width: 33%;"|Einheit
!style="width: 33%;"|Einheit
!style="width: 66%;"|Beschreibung
!style="width: 66%;"|Beschreibung
Line 244: Line 505:
| kleiner oder gleich
| kleiner oder gleich
|}
|}
{{Top}}

<span id="Units"></span>
== Einheiten ==
== Einheiten ==


Einheiten können direkt in Ausdrücken verwendet werden. Der Analysator (parser) verbindet sie mit dem vorherigen Wert. So ist ''''2mm'''' oder ''''2 mm'''' gültig, während '''' mm'''' ungültig ist, weil es keinen vorhergehenden Wert gibt.
Einheiten können direkt in Ausdrücken verwendet werden. Der Analysator (parser) verbindet sie mit dem vorherigen Wert. So ist {{incode|2mm}} oder {{incode|2 mm}} gültig, während {{incode|mm}} 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.<br/>
Alle Werte müssen eine Einheit haben. Daher müssen Werte auch in Kalkulationstabellen im allgemeinen eine Einheit haben.<br/>
In einigen Fällen funktioniert es auch ohne Einheit, z.B. wenn Sie in Zelle B1 der Kalkulationstabelle z.B. nur die Zahl ''1,5'' haben und sich für eine Blockhöhe darauf beziehen. Dies funktioniert nur, weil die Blockhöhe die Einheit ''mm'' vordefiniert und die verwendet wird, wenn keine Einheit angegeben ist. Es schlägt jedoch fehl, wenn Sie für die Blockhöhe z.B. '''Sketch1.Constraints.Breite - Kalkulationstabelle.B1''' verwenden, weil ''Sketch1.Constraints.Breite'' eine Einheit hat und ''Kalkulationstabelle.B1'' keine Einheit.
In einigen Fällen funktioniert es auch ohne Einheit, z.B. wenn Sie in Zelle B1 der Kalkulationstabelle z.B. nur die Zahl {{incode|1.5}} haben und sich für eine Blockhöhe darauf beziehen. Dies funktioniert nur, weil die Blockhöhe die Einheit {{incode|mm}} vordefiniert und die verwendet wird, wenn keine Einheit angegeben ist. Es schlägt jedoch fehl, wenn Sie für die Blockhöhe z.B. {{incode|Sketch1.Constraints.Breite - Kalkulationstabelle.B1}} verwenden, weil {{incode|Sketch1.Constraints.Breite}} eine Einheit hat und {{incode|Kalkulationstabelle.B1}} keine Einheit.


Einheiten mit Exponenten können direkt eingegeben werden. So wird z.B. '''mm^3''' als mm³ erkannt und '''m^3'''' wird als m³ erkannt.
Einheiten mit Exponenten können direkt eingegeben werden. So wird z.B. {{incode|mm^3}} als mm³ erkannt und {{incode|m^3}} wird als m³ erkannt.


Wenn eine Variable mit dem Namen einer Einheit verwendet wird, muß die Variable in '''<< >>''' gesetzt werden. Das verhindert, dass die Variable als Einheit erkannt wird. Das Maß ''''Sketch.Constraints.A'''' würde z.B. als Einheit Ampere erkannt werden. Daher muß der Ausdruck als ''''Sketch.Constraints.<<<A>>'''' geschrieben werden.
Wenn eine Variable mit dem Namen einer Einheit verwendet wird, muss die Variable in {{incode|<< >>}} gesetzt werden. Das verhindert, dass die Variable als Einheit erkannt wird. Das Maß {{incode|Sketch.Constraints.A}} würde z.B. als Einheit Ampere erkannt werden. Daher muss der Ausdruck als {{incode|Sketch.Constraints.<<A>>}} geschrieben werden.


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


<span id="Amount_of_substance"></span>
Chemische Menge einer Substanz:
=== Stoffmenge ===
{| class="wikitable float-right mw-collapsible mw-collapsed"

{| class="wikitable mw-collapsible mw-collapsed"
!style="width: 33%;"|Einheit
!style="width: 33%;"|Einheit
!style="width: 66%;"|Beschreibung
!style="width: 66%;"|Beschreibung
|-
|-
| mmol
| mmol
| Milli[https://de.wikipedia.org/wiki/Mol Mol]
| Milli[https://de.wikipedia.org/wiki/Mol mol]
|-
|-
| mol
| mol
Line 270: Line 534:
|}
|}


<span id="Angle"></span>
Winkel:
=== Winkel ===
{| class="wikitable float-right mw-collapsible mw-collapsed"

{| class="wikitable mw-collapsible mw-collapsed"
!style="width: 33%;"|Einheit
!style="width: 33%;"|Einheit
!style="width: 66%;"|Beschreibung
!style="width: 66%;"|Beschreibung
|-
|-
| °
| °
| [https://de.wikipedia.org/wiki/Grad_(Winkel) Grad (Winkel)]; Alternative zur Einheit ''deg''
| [https://de.wikipedia.org/wiki/Grad_(Winkel) Grad (Winkel)]; Alternative zur Einheit deg
|-
|-
| deg
| deg
| [https://en.wikipedia.org/wiki/Degree_(angle) Degree]; Alternative zur Einheit ''°''
| [https://en.wikipedia.org/wiki/Degree_(angle) Degree]; Alternative zur Einheit °
|-
|-
| rad
| rad
Line 288: Line 554:
|-
|-
| S
| S
| [https://de.wikipedia.org/wiki/Winkelminute Winkelsekunde]; Alternative zur Einheit ''"''
| [https://de.wikipedia.org/wiki/Winkelminute Winkelsekunde]; Alternative zur Einheit "
|-
|-
| ″
| ″
| [https://de.wikipedia.org/wiki/Winkelminute Winkelsekunde]; Alternative zur Einheit ''S''
| [https://de.wikipedia.org/wiki/Winkelminute Winkelsekunde]; Alternative zur Einheit S
|-
|-
| M
| M
| [https://de.wikipedia.org/wiki/Winkelminute Winkelminute]; Alternative zur Einheit '' '''
| [https://de.wikipedia.org/wiki/Winkelminute Winkelminute]; Alternative zur Einheit '
|-
|-
| ′
| ′
| [https://de.wikipedia.org/wiki/Winkelminute Winkelminute]; Alternative zur Einheit ''M''
| [https://de.wikipedia.org/wiki/Winkelminute Winkelminute]; Alternative zur Einheit M
|}
|}


<span id="Current"></span>
Strom:
=== Strom ===
{| class="wikitable float-right mw-collapsible mw-collapsed"

{| class="wikitable mw-collapsible mw-collapsed"
!style="width: 33%;"|Einheit
!style="width: 33%;"|Einheit
!style="width: 66%;"|Beschreibung
!style="width: 66%;"|Beschreibung
Line 318: Line 586:
|}
|}


<span id="Electric_capacitance"></span>
Elektrische Kapazität:
=== Elektrische Kapazität ===
{| class="wikitable float-right mw-collapsible mw-collapsed"

{| class="wikitable mw-collapsible mw-collapsed"
!style="width: 33%;"|Einheit
!style="width: 33%;"|Einheit
!style="width: 66%;"|Beschreibung
!style="width: 66%;"|Beschreibung
|-
|-
| pF
| pF
| Pico[https://de.wikipedia.org/wiki/Farad farad], {{Version|0.19}}
| Pico[https://de.wikipedia.org/wiki/Farad farad]
|-
|-
| nF
| nF
| Nano[https://de.wikipedia.org/wiki/Farad farad], {{Version|0.19}}
| Nano[https://de.wikipedia.org/wiki/Farad farad]
|-
|-
| uF
| uF
| Micro[https://de.wikipedia.org/wiki/Farad farad]; Alternative zur Einheit ''µF'', {{Version|0.19}}
| Mikro[https://de.wikipedia.org/wiki/Farad farad]; Alternative zur Einheit ''µF''
|-
|-
| µF
| µF
| Micro[https://de.wikipedia.org/wiki/Farad farad]; Alternative zur Einheit ''uF'', {{Version|0.19}}
| Mikro[https://de.wikipedia.org/wiki/Farad farad]; Alternative zur Einheit ''uF''
|-
|-
| mF
| mF
| Milli[https://de.wikipedia.org/wiki/Farad farad], {{Version|0.19}}
| Milli[https://de.wikipedia.org/wiki/Farad farad]
|-
|-
| F
| F
| [https://de.wikipedia.org/wiki/Farad Farad]; 1 F = 1 s^4·A^2/m^2/kg, {{Version|0.19}}
| [https://de.wikipedia.org/wiki/Farad Farad]; 1 F = 1 s^4·A^2/m^2/kg
|}
|}


<span id="Electric_charge"></span>
Elektrische Leitfähigkeit:
=== Elektrische Ladung ===
{| class="wikitable float-right mw-collapsible mw-collapsed"

{| class="wikitable mw-collapsible mw-collapsed"
!style="width: 33%;"|Einheit
!style="width: 66%;"|Beschreibung
|-
| C
| [https://de.wikipedia.org/wiki/Coulomb Coulomb]; 1 C = 1 A*s
|}

<span id="Electric_conductivity"></span>
=== Elektrischer Leitwert ===

{| class="wikitable mw-collapsible mw-collapsed"
!style="width: 33%;"|Einheit
!style="width: 33%;"|Einheit
!style="width: 66%;"|Beschreibung
!style="width: 66%;"|Beschreibung
|-
|-
| uS
| uS
| Micro[https://de.wikipedia.org/wiki/Siemens_(Einheit) siemens (Einheit)]; alternative to the unit ''µS'', {{Version|0.19}}
| Mikro[https://de.wikipedia.org/wiki/Siemens_(Einheit) siemens]; alternative to the unit µS
|-
|-
| µS
| µS
| Micro[https://de.wikipedia.org/wiki/Siemens_(Einheit) siemens (Einheit)]; alternative to the unit ''uS'', {{Version|0.19}}
| Mikro[https://de.wikipedia.org/wiki/Siemens_(Einheit) siemens]; alternative to the unit uS
|-
|-
| mS
| mS
| Milli[https://de.wikipedia.org/wiki/Siemens_(Einheit) siemens (Einheit)], {{Version|0.19}}
| Milli[https://de.wikipedia.org/wiki/Siemens_(Einheit) siemens]
|-
|-
| S
| S
| [https://de.wikipedia.org/wiki/Siemens_(Einheit) Siemens (Einheit)]; 1 S = 1 s^3·A^2/kg/m^2, {{Version|0.19}}
| [https://de.wikipedia.org/wiki/Siemens_(Einheit) Siemens]; 1 S = 1 s^3·A^2/kg/m^2
|-
| kS
| Kilo[https://de.wikipedia.org/wiki/Siemens_(Einheit) Siemens]
|-
| MS
| Mega[https://de.wikipedia.org/wiki/Siemens_(Einheit) Siemens]
|}
|}


<span id="Electric_inductance"></span>
Elektrische Induktivität:
=== Elektrische Induktivität ===
{| class="wikitable float-right mw-collapsible mw-collapsed"

{| class="wikitable mw-collapsible mw-collapsed"
!style="width: 33%;"|Einheit
!style="width: 33%;"|Einheit
!style="width: 66%;"|Beschreibung
!style="width: 66%;"|Beschreibung
|-
|-
| nH
| nH
| Nano[https://de.wikipedia.org/wiki/Henry_(Einheit) henry (Einheit)], {{Version|0.19}}
| Nano[https://de.wikipedia.org/wiki/Henry_(Einheit) henry (Einheit)]
|-
|-
| uH
| uH
| Micro[https://de.wikipedia.org/wiki/Henry_(Einheit) henry (Einheit)]; Alternative zur Einheit ''µH'', {{Version|0.19}}
| Mikro[https://de.wikipedia.org/wiki/Henry_(Einheit) henry (Einheit)]; Alternative zur Einheit ''µH''
|-
|-
| µH
| µH
| Micro[https://de.wikipedia.org/wiki/Henry_(Einheit) henry (Einheit)]; Alternative zur Einheit ''uH'', {{Version|0.19}}
| Mikro[https://de.wikipedia.org/wiki/Henry_(Einheit) henry (Einheit)]; Alternative zur Einheit ''uH''
|-
|-
| mH
| mH
| Milli[https://de.wikipedia.org/wiki/Henry_(Einheit) henry (Einheit)], {{Version|0.19}}
| Milli[https://de.wikipedia.org/wiki/Henry_(Einheit) henry (Einheit)]
|-
|-
| H
| H
| [https://de.wikipedia.org/wiki/Henry_(Einheit) Henry (Einheit)]; 1 H = 1 kg·m^2/s^2/A^2, {{Version|0.19}}
| [https://de.wikipedia.org/wiki/Henry_(Einheit) Henry (Einheit)]; 1 H = 1 kg·m^2/s^2/A^2
|}
|}


<span id="Electric_potential"></span>
Elektrischer Widerstand:
=== Elektrische Spannung ===
{| class="wikitable float-right mw-collapsible mw-collapsed"
!style="width: 33%;"|Einheit
!style="width: 66%;"|Beschreibung
|-
| Ohm
| [https://de.wikipedia.org/wiki/Ohm Ohm]; 1 Ohm = 1 kg·m^2/s^3/A^2, {{Version|0.19}}
|-
| kOhm
| Kilo[https://de.wikipedia.org/wiki/Ohm ohm], {{Version|0.19}}
|-
| MOhm
| Mega[https://de.wikipedia.org/wiki/Ohm ohm], {{Version|0.19}}
|}

Elektrische Ladung:
{| class="wikitable float-right mw-collapsible mw-collapsed"
!style="width: 33%;"|Einheit
!style="width: 66%;"|Beschreibung
|-
| C
| [https://de.wikipedia.org/wiki/Coulomb Coulomb]; 1 C = 1 A·s, {{Version|0.19}}
|}


Elektrisches Spannung:
Elektrisches Spannung:
Line 420: Line 690:
|}
|}


<span id="Electric_resistance"></span>
Energie / Arbeit:
=== Elektrischer Widerstand ===
{| class="wikitable float-right mw-collapsible mw-collapsed"

Elektrischer Widerstand:
{| class="wikitable mw-collapsible mw-collapsed"
!style="width: 33%;"|Einheit
!style="width: 66%;"|Beschreibung
|-
| Ohm
| [https://de.wikipedia.org/wiki/Ohm Ohm]; 1 Ohm = 1 kg·m^2/s^3/A^2
|-
| kOhm
| Kilo[https://de.wikipedia.org/wiki/Ohm ohm]
|-
| MOhm
| Mega[https://de.wikipedia.org/wiki/Ohm ohm]
|}

<span id="Energy/work"></span>
=== Energie/Arbeit ===

{| class="wikitable mw-collapsible mw-collapsed"
!style="width: 33%;"|Einheit
!style="width: 33%;"|Einheit
!style="width: 66%;"|Beschreibung
!style="width: 66%;"|Beschreibung
Line 432: Line 722:
|-
|-
| kJ
| kJ
| Kilo[https://de.wikipedia.org/wiki/Joule joule], {{Version|0.19}}
| Kilo[https://de.wikipedia.org/wiki/Joule joule]
|-
|-
| eV
| eV
| [https://de.wikipedia.org/wiki/Elektronenvolt Elektronenvolt]; 1 ev = 1.602176634e-19 J, {{Version|0.19}}
| [https://de.wikipedia.org/wiki/Elektronenvolt elektron(en)volt]; 1 eV = 1.602176634e-19 J
|-
|-
| keV
| keV
| Kilo[https://de.wikipedia.org/wiki/Elektronenvolt elektronenvolt], {{Version|0.19}}
| Kilo[https://de.wikipedia.org/wiki/Elektronenvolt elektron(en)volt]
|-
|-
| MeV
| MeV
| Mega[https://de.wikipedia.org/wiki/Elektronenvolt elektronenvolt], {{Version|0.19}}
| Mega[https://de.wikipedia.org/wiki/Elektronenvolt elektron(en)volt]
|-
|-
| kWh
| kWh
| Kilo[https://de.wikipedia.org/wiki/Wattstunde wattstunde]; 1 kWh = 3.6e6 J, {{Version|0.19}}
| Kilo[https://de.wikipedia.org/wiki/Wattstunde wattstunde]; 1 kWh = 3.6e6 J
|-
|-
| Ws
| Ws
| [https://de.wikipedia.org/wiki/Joule Wattsekunde]; Alternative zur Einheit ''Joule''
| [https://de.wikipedia.org/wiki/Joule Wattsekunde]; Alternative zur Einheit Joule
|-
|-
| VAs
| VAs
| [https://de.wikipedia.org/wiki/Joule Voltamperesekunde]; Alternative zur Einheit ''Joule''
| [https://de.wikipedia.org/wiki/Joule Voltamperesekunde]; Alternative zur Einheit Joule
|-
|-
| CV
| CV
| [https://de.wikipedia.org/wiki/Joule Coulombvolt]; Alternative zur Einheit ''Joule''
| [https://de.wikipedia.org/wiki/Joule Coulombvolt]; Alternative zur Einheit Joule
|-
|-
| cal
| cal
| [https://de.wikipedia.org/wiki/Kalorie Kalorie]; 1 cal = 4.184 J, {{Version|0.19}}
| [https://de.wikipedia.org/wiki/Kalorie Kalorie]; 1 cal = 4.184 J
|-
|-
| kcal
| kcal
| Kilo[https://de.wikipedia.org/wiki/Kalorie kalorie], {{Version|0.19}}
| Kilo[https://de.wikipedia.org/wiki/Kalorie kalorie]
|}
|}


<span id="Force"></span>
Kraft:
=== Kraft ===
{| class="wikitable float-right mw-collapsible mw-collapsed"

{| class="wikitable mw-collapsible mw-collapsed"
!style="width: 33%;"|Einheit
!style="width: 33%;"|Einheit
!style="width: 66%;"|Beschreibung
!style="width: 66%;"|Beschreibung
Line 483: Line 775:
|}
|}


<span id="Length"></span>
Länge:
=== Länge ===
{| class="wikitable float-right mw-collapsible mw-collapsed"

{| class="wikitable mw-collapsible mw-collapsed"
!style="width: 33%;"|Einheit
!style="width: 33%;"|Einheit
!style="width: 66%;"|Beschreibung
!style="width: 66%;"|Beschreibung
Line 492: Line 786:
|-
|-
| um
| um
| Micro-[https://de.wikipedia.org/wiki/Meter Meter]; Alternative zur Einheit ''µm''
| Mikro[https://de.wikipedia.org/wiki/Meter meter]; Alternative zur Einheit µm
|-
|-
| µm
| µm
| Micro[https://de.wikipedia.org/wiki/Meter meter]; Alternative zur Einheit ''mu''
| Mikro[https://de.wikipedia.org/wiki/Meter meter]; Alternative zur Einheit um
|-
|-
| mm
| mm
Line 502: Line 796:
| cm
| cm
| Zenti[https://de.wikipedia.org/wiki/Meter meter]
| Zenti[https://de.wikipedia.org/wiki/Meter meter]
|-
| mm
| Milli[https://de.wikipedia.org/wiki/Meter meter]
|-
|-
| dm
| dm
Line 516: Line 807:
|-
|-
| mil
| mil
| [https://de.wikipedia.org/wiki/Thou Thousandth of an inch]; Alternative zur Einheit ''thou''
| [https://de.wikipedia.org/wiki/Thou Thou] (Abk. f. Thousandth of an inch); Alternative zur Einheit thou
|-
|-
| thou
| thou
| [https://de.wikipedia.org/wiki/Thou Thousandth of an inch]; Alternative zur Einheit ''mil''
| [https://de.wikipedia.org/wiki/Thou Thou] (Abk. f. Thousandth of an inch); Alternative zur Einheit mil
|-
|-
| in
| in
| [https://de.wikipedia.org/wiki/Zoll_(Einheit) Zoll (Einheit)], in = inch
| [https://de.wikipedia.org/wiki/Zoll_(Einheit) Zoll (Einheit)], in = inch, Alternative zur Einheit "
|-
| "
| [https://en.wikipedia.org/wiki/Inch Inch]; Alternative zur Einheit in
|-
|-
| ft
| ft
| [https://de.wikipedia.org/wiki/Fu%C3%9F_(Einheit) Fuß (Einheit)]; Alternative zur Einheit '
| [https://de.wikipedia.org/wiki/Fu%C3%9F_(Einheit) Fuß (Einheit)]; Alternative zur Einheit '
|-
|-
| '
| '
| [https://de.wikipedia.org/wiki/Fu%C3%9F_(Einheit) Fuß (Einheit)]; Alternative zur Einheit ''ft''
| [https://de.wikipedia.org/wiki/Fu%C3%9F_(Einheit) Fuß (Einheit)]; Alternative zur Einheit ft
|-
|-
| yd
| yd
Line 537: Line 831:
|}
|}


<span id="Luminous_intensity"></span>
Lichtstärke:
=== Lichtstärke ===
{| class="wikitable float-right mw-collapsible mw-collapsed"

{| class="wikitable mw-collapsible mw-collapsed"
!style="width: 33%;"|Einheit
!style="width: 33%;"|Einheit
!style="width: 66%;"|Beschreibung
!style="width: 66%;"|Beschreibung
Line 546: Line 842:
|}
|}


<span id="Magnetic_flux"></span>
Magnetische Feldstärke (seit 1970 nicht mehr offiziell gültig):
=== Magnetischer Fluss ===
{| class="wikitable float-right mw-collapsible mw-collapsed"
!style="width: 33%;"|Einheit
!style="width: 66%;"|Beschreibung
|-
| Oe
| [https://de.wikipedia.org/wiki/Oersted_(Einheit) Oersted (Einheit)]; 1 Oe = 79.57747 A/m, {{Version|0.19}}
|}


{| class="wikitable mw-collapsible mw-collapsed"
Magnetischer Fluß:
{| class="wikitable float-right mw-collapsible mw-collapsed"
!style="width: 33%;"|Einheit
!style="width: 33%;"|Einheit
!style="width: 66%;"|Beschreibung
!style="width: 66%;"|Beschreibung
|-
|-
| Wb
| Wb
| [https://de.wikipedia.org/wiki/Weber_(Einheit) Weber (Einheit)]; 1 Wb = 1 kg*m^2/s^2/A, {{Version|0.19}}
| [https://de.wikipedia.org/wiki/Weber_(Einheit) Weber (Einheit)]; 1 Wb = 1 kg*m^2/s^2/A '
|}
|}


<span id="Magnetic_flux_density"></span>
Magnetische Flußdichte:
=== Magnetische Flussdichte ===
{| class="wikitable float-right mw-collapsible mw-collapsed"

{| class="wikitable mw-collapsible mw-collapsed"
!style="width: 33%;"|Einheit
!style="width: 33%;"|Einheit
!style="width: 66%;"|Beschreibung
!style="width: 66%;"|Beschreibung
|-
|-
| G
| G
| [https://de.wikipedia.org/wiki/Gau%C3%9F_(Einheit) Gauß (Einheit)]; 1 G = 1 e-4 T, {{Version|0.19}}
| [https://de.wikipedia.org/wiki/Gau%C3%9F_(Einheit) Gauß (Einheit)]; 1 G = 1 e-4 T
|-
|-
| T
| T
| [https://de.wikipedia.org/wiki/Tesla_(Einheit) Tesla (Einheit)]; 1 T = 1 kg/s^2/A, {{Version|0.19}}
| [https://de.wikipedia.org/wiki/Tesla_(Einheit) Tesla (Einheit)]; 1 T = 1 kg/s^2/A
|}
|}


<span id="Mass"></span>
Masse:
=== Masse ===
{| class="wikitable float-right mw-collapsible mw-collapsed"

{| class="wikitable mw-collapsible mw-collapsed"
!style="width: 33%;"|Einheit
!style="width: 33%;"|Einheit
!style="width: 66%;"|Beschreibung
!style="width: 66%;"|Beschreibung
|-
|-
| ug
| ug
| Micro[https://de.wikipedia.org/wiki/Gramm gramm]; Alternative zur Einheit ''µg''
| Mikro[https://de.wikipedia.org/wiki/Gramm gramm]; Alternative zur Einheit µg
|-
|-
| µg
| µg
| Micro[https://de.wikipedia.org/wiki/Gramm gramm]; Alternative zur Einheit ''ug''
| Mikro[https://de.wikipedia.org/wiki/Gramm gramm]; Alternative zur Einheit ug
|-
|-
| mg
| mg
Line 603: Line 896:
|-
|-
| lb
| lb
| [https://de.wikipedia.org/wiki/Pfund Pfund]; Alternative zur Einheit ''lbm''
| [https://de.wikipedia.org/wiki/Pfund Pfund]; Alternative zur Einheit lbm
|-
|-
| lbm
| lbm
| [https://de.wikipedia.org/wiki/Pfund Pfund]; Alternative zur Einheit ''lb''
| [https://de.wikipedia.org/wiki/Pfund Pfund]; Alternative zur Einheit lb
|-
|-
| st
| st
Line 615: Line 908:
|}
|}


<span id="Power"></span>
Energie:
=== Leistung ===
{| class="wikitable float-right mw-collapsible mw-collapsed"

{| class="wikitable mw-collapsible mw-collapsed"
!style="width: 33%;"|Einheit
!style="width: 33%;"|Einheit
!style="width: 66%;"|Beschreibung
!style="width: 66%;"|Beschreibung
|-
|-
| W
| W
| [https://de.wikipedia.org/wiki/Watt_(Einheit) Watt(Einheit)]
| [https://de.wikipedia.org/wiki/Watt_(Einheit) Watt]
|-
|-
| kW
| kW
| Kilo-[https://de.wikipedia.org/wiki/Watt_(Einheit) Watt], {{Version|0.19}}
| Kilo[https://de.wikipedia.org/wiki/Watt_(Einheit) watt]
|-
| VA
| [https://de.wikipedia.org/wiki/Voltampere Voltampere]
|}
|}


<span id="Pressure"></span>
Druck:
=== Druck ===
{| class="wikitable float-right mw-collapsible mw-collapsed"

{| class="wikitable mw-collapsible mw-collapsed"
!style="width: 33%;"|Einheit
!style="width: 33%;"|Einheit
!style="width: 66%;"|Beschreibung
!style="width: 66%;"|Beschreibung
Line 646: Line 940:
| GPa
| GPa
| Giga-[https://de.wikipedia.org/wiki/Pascal_(Einheit) Pascal (Einheit)]
| Giga-[https://de.wikipedia.org/wiki/Pascal_(Einheit) Pascal (Einheit)]
|-
| mbar
| Milli-[https://de.wikipedia.org/wiki/Bar_(Einheit) Bar (Einheit)], {{Version|0.19}}
|-
| bar
| [https://de.wikipedia.org/wiki/Bar_(Einheit) Bar (Einheit)], {{Version|0.19}}
|-
|-
| uTorr
| uTorr
| Micro-[https://de.wikipedia.org/wiki/Torr Torr]; Alternative zu Einheit ''µTorr''
| Mikro-[https://de.wikipedia.org/wiki/Torr Torr]; Alternative zu Einheit µTorr
|-
|-
| µTorr
| µTorr
| Micro-[https://de.wikipedia.org/wiki/Torr Torr]; Alternative zu Einheit ''uTorr''
| Mikro-[https://de.wikipedia.org/wiki/Torr Torr]; Alternative zu Einheit uTorr
|-
|-
| mTorr
| mTorr
Line 670: Line 958:
| ksi
| ksi
| Kilo-[https://en.wikipedia.org/wiki/Pounds_per_square_inch Pound-force per square inch]
| Kilo-[https://en.wikipedia.org/wiki/Pounds_per_square_inch Pound-force per square inch]
|-
| Mpsi
| Mega-[https://en.wikipedia.org/wiki/Pounds_per_square_inch Pound-force per square inch], {{Version|0.19}}
|}
|}


<span id="Temperature"></span>
Temperatur:
=== Temperatur ===
{| class="wikitable float-right mw-collapsible mw-collapsed"

{| class="wikitable mw-collapsible mw-collapsed"
!style="width: 33%;"|Einheit
!style="width: 33%;"|Einheit
!style="width: 66%;"|Beschreibung
!style="width: 66%;"|Beschreibung
|-
|-
| uK
| uK
| Micro[https://de.wikipedia.org/wiki/Kelvin kelvin]; Alternative zur Einheit ''µK''
| Mikro[https://de.wikipedia.org/wiki/Kelvin kelvin]; Alternative zur Einheit ''µK''
|-
|-
| µK
| µK
| Micro[https://de.wikipedia.org/wiki/Kelvin kelvin]; Alternative zur Einheit ''uK''
| Mikro[https://de.wikipedia.org/wiki/Kelvin kelvin]; Alternative zur Einheit ''uK''
|-
|-
| mK
| mK
Line 693: Line 980:
|}
|}


<span id="Time"></span>
Zeit:
=== Zeit ===
{| class="wikitable float-right mw-collapsible mw-collapsed"

{| class="wikitable mw-collapsible mw-collapsed"
!style="width: 33%;"|Einheit
!style="width: 33%;"|Einheit
!style="width: 66%;"|Beschreibung
!style="width: 66%;"|Beschreibung
Line 708: Line 997:
|-
|-
| Hz (1/s)
| Hz (1/s)
| [https://de.wikipedia.org/wiki/Hertz_(Einheit) Hertz (Einheit)], {{Version|0.19}}
| [https://de.wikipedia.org/wiki/Hertz_(Einheit) Hertz]
|-
|-
| kHz
| kHz
| Kilo[https://de.wikipedia.org/wiki/Hertz_(Einheit) hertz (Einheit)], {{Version|0.19}}
| Kilo[https://de.wikipedia.org/wiki/Hertz_(Einheit) hertz],
|-
|-
| MHz
| MHz
| Mega[https://de.wikipedia.org/wiki/Hertz_(Einheit) hertz (Einheit)], {{Version|0.19}}
| Mega[https://de.wikipedia.org/wiki/Hertz_(Einheit) hertz]
|-
|-
| GHz
| GHz
| Giga[https://de.wikipedia.org/wiki/Hertz_(Einheit) hertz (Einheit)], {{Version|0.19}}
| Giga[https://de.wikipedia.org/wiki/Hertz_(Einheit) hertz]
|-
|-
| THz
| THz
| Tera[https://de.wikipedia.org/wiki/Hertz_(Einheit) hertz (Einheit)], {{Version|0.19}}
| Tera[https://de.wikipedia.org/wiki/Hertz_(Einheit) hertz]
|}
|}


<span id="Volume"></span>
Torsion:
=== Volumen ===
{| class="wikitable float-right mw-collapsible mw-collapsed"
!style="width: 33%;"|Einheit
!style="width: 66%;"|Beschreibung
|-
| Nm
| [https://de.wikipedia.org/wiki/Newtonmeter Newtonmeter ]
|}


{| class="wikitable mw-collapsible mw-collapsed"
Volumen:
{| class="wikitable float-right mw-collapsible mw-collapsed"
!style="width: 33%;"|Einheit
!style="width: 33%;"|Einheit
!style="width: 66%;"|Beschreibung
!style="width: 66%;"|Beschreibung
|-
|-
| ml
| ml
| Milli[https://de.wikipedia.org/wiki/Liter liter], {{Version|0.19}}
| Milli[https://de.wikipedia.org/wiki/Liter liter]
|-
|-
| l
| l
Line 744: Line 1,026:
|-
|-
| cft
| cft
| Kubik-[https://de.wikipedia.org/wiki/Fu%C3%9F_(Einheit) Fuß (Einheit)], {{Version|0.19}}
| Kubik[https://de.wikipedia.org/wiki/Fuß_(Einheit) fuß]
|}
|}


<span id="Special_imperial_units"></span>
Imperiale Spezialeinheiten:
=== Spezielle nichtmetrische Einheiten ===
{| class="wikitable float-right mw-collapsible mw-collapsed"

{| class="wikitable mw-collapsible mw-collapsed"
!style="width: 33%;"|Einheit
!style="width: 33%;"|Einheit
!style="width: 66%;"|Beschreibung
!style="width: 66%;"|Beschreibung
|-
|-
| mph
| mph
| [https://de.wikipedia.org/wiki/Meilen_pro_Stunde Meilen pro Stunde], {{Version|0.19}}
| [https://de.wikipedia.org/wiki/Meilen_pro_Stunde Meilen pro Stunde]
|-
|-
| sqft
| sqft
| [https://de.wikipedia.org/wiki/Quadratfu%C3%9F Quadratfuß], {{Version|0.19}}
| [https://de.wikipedia.org/wiki/Quadratfu%C3%9F Quadratfuß]
|}
|}


<span id="Unsupported_units"></span>
Die folgenden häufig verwendeten Einheiten werden noch nicht unterstützt:
=== Nicht unterstützte Einheiten ===
{| class="wikitable float-right mw-collapsible mw-collapsed"

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

{| class="wikitable mw-collapsible mw-collapsed"
!style="width: 25%;"|Einheit
!style="width: 25%;"|Einheit
!style="width: 50%;"|Beschreibung
!style="width: 50%;"|Beschreibung
Line 774: Line 1,062:
|-
|-
| u
| u
| [https://de.wikipedia.org/wiki/Atomare_Masseneinheit Atomare Masseneinheit]; Alternative zur Einheit 'Da' (Dalton) =
| [https://de.wikipedia.org/wiki/Atomare_Masseneinheit Atomare Masseneinheit]; Alternative zur Einheit Da (Dalton) =
| 1.66053906660e-27 kg
| 1.66053906660e-27 kg
|-
|-
| Da
| Da
| [https://de.wikipedia.org/wiki/Atomare_Masseneinheit Dalton]; Alternative zur Einheit 'u'
| [https://de.wikipedia.org/wiki/Atomare_Masseneinheit Dalton]; Alternative zur Einheit u
| 1.66053906660e-27 kg
| 1.66053906660e-27 kg
|-
|-
Line 797: Line 1,085:
| nicht direkt
| nicht direkt
|}
|}
{{Top}}
<span id="Invalid_characters_and_names"></span>
==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.
== Referenzen auf CAD-Daten ==


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.
Angaben (Eigenschaften) von anderen Objekten der Baugruppe können in Ausdrü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".


<span id="Labels"></span>
Die folgende Tabelle zeigt einige Beispiele:
===Bezeichner===
{|{{Prettytable}}

Für [[Object_name/de#Bezeichner|Bezeichner]] gibt es keine ungültigen Zeichen, jedoch müssen einige Zeichen maskiert werden:
{| class="wikitable"
!style="width: 33%;"|Zeichen
!style="Breite: 66%;"|Beschreibung
|-
| {{incode|'}}, {{incode|\}}, {{incode|"}}
| Müssen durch das Voranstellen von {{incode|\}} maskiert werden.
|}

Zum Beispiel muss der Bezeichner {{incode|Skizze\002}} als {{incode|<<Skizze\002>>}} referenziert werden.

<span id="Names"></span>
===Namen===

[[Object_name/de#Name|Namen]] von Objekten wie Maße, Skizzen, usw. dürfen folgende Zeichen oder Zeichenfolgen nicht enthalten. Anderenfalls ist der Namen ungültig.

{| class="wikitable float-right mw-collapsible mw-uncollapsed"
!style="width: 33%;"|Zeichen / Zeichenfolgen
!style="width: 66%;"|Beschreibung
|-
| '''+''', '''-''', '''*''', '''/''', '''^''', '''_''', '''<''', '''>''', '''(''', ''')''', '''{''', '''}''', '''[''', ''']''', '''.''', ''',''', '''='''
| Zeichen die mathematische Operatoren oder mathematische Konstruktionen sind.
|-
| '''A''', '''kA''', '''mA''', '''MA''', '''J''', '''K''', ''' ' ''', ''' ft ''', '''°''', und viele andere!
| Zeichen und Zeichenfolgen, die Einheiten sind (siehe Abschnitt [[#Einheiten|Einheiten]] ).
|-
| '''#''', '''!''', '''?''', '''§''', '''$''', '''%''', '''&''', ''':''', ''';''', '''\''', '''<nowiki>|</nowiki>''', '''~''', '''∆''', '''¿''', und viele andere!
| Zeichen, die als Platzhalter verwendet werden oder die Funktionen auslösen.
|-
| '''pi''', '''e'''
| Mathematische Konstanten
|-
| '''´''', '''`''', ''' ' ''', '''"'''
| Akzente
|-
| Leerzeichen (Space)
| Ein Leerzeichen definiert das Ende eines Namens und kann daher nicht verwendet werden.
|}

Beispielsweise ist folgender Name gültig: {{incode|<<Sketch>>.Constraints.T2üßµ@}}.
Hingegen sind diese ungültige Namen: {{incode|<<Sketch>>.Constraints.test\result_2}} (\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"></span>
===Zell Aliasse===

Siehe [[Spreadsheet_SetAlias/de#Anwendung|Spreadsheet Alias-Namen festlegen]].
{{Top}}
<span id="Reference_to_CAD_data"></span>
== Referenzen auf CAD Daten ==

Es ist möglich, Daten aus dem Modell selbst in einem Ausdruck zu verwenden. Um auf eine Eigenschaft zu verweisen, wird {{incode|Objekt-Name.property}} oder {{incode|<<Objekt-Benennung>>.property}}. Benennungen (Label) müssen in {{incode|<<}} und {{incode|>>}} eingeschlossen werden. Sollen Benennungen verwendet werden, müssen sie eindeutig sein.

Alle weiteren Beispiele referenzieren ein Objekt über seinen Namen, aber seine Benennung kann ebenfalls verwendet werden.

If the property is a compound of fields, the individual fields can be accessed as {{incode|object_name.property.field}}.

Um auf Listenobjekte zu verweisen, wird {{incode|ObjektName.list[list_index]}} verwendet.
Soll beispielsweise auf eine Randbedingung in einer Skizze verwiesen werden, wird {{incode|Skizze.Constraints[16]}} verwendet. Ist eine Skizze im Bearbeitungsmodus geöffnetbefindest, kann man den Namen weglassen und einfach {{incode|Constraints[16]}} verwenden. Man beachte, dass der Index mit 0 beginnt, daher muss die 17. Randbedingung als {{incode|Constraints[16]}} referenziert werden.

Um auf das Objekt selbst zu referenziertem wird die Pseudo-Eigenschaft {{incode|_self}} verwendet: {{incode|Objekt-Name._self}}.

Die folgende Tabelle zeigt einige weitere Beispiele:
{|class="wikitable"
!CAD-Daten
!CAD-Daten
!Aufruf im Ausdruck
!Aufruf im Ausdruck
!Ergebnis
!Ergebnis
|-
|-
|Parametrische Länge eines Quaders im Arbeitsbereich Part
|Länge eines [[Part_Box/de|Part Würfels]]
|{{incode|Cube.Length}}
|{{incode|Box.Length}}
|{{incode|Length}} mit der Einheit mm
|Länge mit Einheit (mm)
|-
|-
|Volumen des Würfels
|Volumen des Würfels
|{{incode|Cube.Shape.Volume}}
|{{incode|Box.Shape.Volume}}
|{{incode|Volume}} in mm&sup3; ohne Einheiten
|Volumen in mm&sup3; ohne Einheit
|-en in mm&sup3; Ausgabe ohne Einheiten
|-
|-
|Formart des Würfels
|Typ der Würfelform (geometrische Figur)
|{{incode|Cube.Shape.ShapeType}}
|{{incode|Box.Shape.ShapeType}}
|String: Solid
|Zeichenkette (String): Solid
|-
|-
|Ettikett des Würfels
|Bezeichnung des Würfels
|{{incode|Cube.Label}}
|{{incode|Box.Label}}
|String: Label
|Zeichenkette (String): Label
|-
|-
|x-Koordinate des Schwerpunktes des Würfels
|X-Koordinate des Schwerpunktes des Würfels
|{{incode|Cube.Shape.CenterOfMass.x}}
|{{incode|Box.Shape.CenterOfMass.x}}
|x-coordinate in mm ohne Einheiten
|X-Koordinate in mm ohne Einheit
|-
|-
|X-Koordinate der Positionierung des Würfels
|Wert der Beschränkung in einer Skizze
|{{incode|Box.Placement.Base.x}}
|X-Koordinate mit Einheit (mm)
|-
|X-Komponente der Rotationsachsen der Positionierung des Würfels
|{{incode|Box.Placement.Rotation.Axis.x}}
|X-Komponente des Einheitsvektors in mm ohne Einheit
|-
|Rotationswinkel der Positionierung des Würfels
|{{incode|Box.Placement.Rotation.Angle}}
|Rotationswinkel mit Einheit (° = Grad = deg)
|-
|Das ganze Würfel-Objekt
|{{incode|Box._self}}
|Objekt der Art <Part::PartFeature>
|-
|Wert einer Randbedingung in einer Skizze
|{{incode|Constraints.Width}}
|{{incode|Constraints.Width}}
|numerischer Wert der benannten Beschränkung '{{incode|Width}}' (Breite) in der Skizze, wenn der Ausdruck in der Skizze selbst verwendet wird.
|Zahlenwert der benannten Randbedingung {{incode|Width}} (Breite) in der Skizze, wenn der Ausdruck in der Skizze selbst verwendet wird.
|-
|Wert einer Randbedingung in einer Skizze
|{{incode|MySketch.Constraints.Width}}
|Zahlenwert der benannten Randbedingung {{incode|Width}} in der Skizze {{incode|MySketch}}, wenn der Ausdruck außerhalb der Skizze verwendet wird.
|-
|-
|Wert eines Alias einer Kalkulationstabelle
|Wert eines Alias einer Kalkulationstabelle
|{{incode|Spreadsheet.Depth}}
|{{incode|Spreadsheet.Depth}}
|Wert eines Alias "{{incode|Depth}}" (Tiefe) in der Kalkulationstabelle "{{incode|Spreadsheet}}"
|Wert des Alias {{incode|Depth}} (Tiefe) in der Kalkulationstabelle {{incode|Spreadsheet}}
|-
|-
|Wert einer lokalen Eigenschaft eines Objekts
|Wert einer lokalen Eigenschaft eines Objekts
|{{incode|Length}}
|{{incode|Length}}
|Wert der Eigenschaft {{incode|Length}} (Länge) z.B. in einem Pad Objekt, wenn der Ausdruck z.B. in Length2 im gleichen Objekt verwendet wird.
|Wert der {{PropertyData/de|Length}} (Länge) z.B. in einem Pad-Objekt, wenn der Ausdruck z.B. in {{PropertyData/de|Length2}} im selben Objekt verwendet wird.
|}
|}


=== Cyclic dependencies ===
==Dokumentweit gültige globale Variablen==


FreeCAD checks dependencies based on the relationship between document objects, not properties. This means that you cannot provide data to an object and query that same object for results. For example, even though there are no cyclic dependencies when the properties themselves are considered, you may not have an object which gets its dimensions from a spreadsheet and then display the volume of that object in the same spreadsheet. You have to use two spreadsheets, one to drive your model and the other for reporting.
Es gibt aktuell keine Infrastruktur für globale Variablen in FreeCAD. Stattdessen können beliebige Variablen als Zellwerte innerhalb einer Tabelle des Arbeitsbereiches [[Spreadsheet Workbench/de|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.


As a workaround it is possible to display a cell range from the second spreadsheet in the first (or vice versa) by creating a [[Spreadsheet_Workbench#Cell_binding|cell binding]] with the {{MenuCommand|Hide dependency of binding}} option.
==Dokumentübergreifende(r) Verknüpfung/Verweis==


Another way to workaround cyclic dependencies is to hide the reference by using the {{incode|href}} or {{incode|hiddenref}} function for individual expressions, for example: {{incode|href(Box.Length)}}.
Es ist mit Einschränkungen möglich, eine Eigenschaft eines Objekts in einem aktuellen Dokument (".FCstd"-Datei) zu definieren, indem mit einem Ausdruck auf eine Eigenschaft eines Objekts verwiesen wird, das in einem anderen Dokument enthalten ist (".FCstd"-Datei). Beispielsweise kann eine Zelle in einer Kalkulationstabelle oder die Länge eines Würfels aus dem Arbeitsbereich Part, usw. in einem Dokument durch einen Ausdruck definiert werden, der beispielsweise auf den Wert X unter Placement oder eine andere Eigenschaft eines Objekts in einem anderen Dokument verweist.

Please note that both mentioned workarounds should be used with caution, and that they do not work if the properties that are reported depend on dimensions that are driven from the same spreadsheet.
{{Top}}
<span id="Document-wide_global_variables"></span>
==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 [[Spreadsheet Workbench/de|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.
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 Veknü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.
{{Top}}
<span id="Cross-document_linking"></span>
== 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 {{PropertyData/de|Länge}} 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.
Sobald das Hauptdokument mit der Kalkulationstabelle erstellt und gespeichert (benannt) ist, können abhängige Dokumente erstellt werden. Angenommen, das Hauptdokument heißt "{{incode|Hauptdokument}}", die Kalkulationstabelle ist mit {{incode|Baugruppenwerte}}" benannt und einer Zelle wurde ein Alias-Namen "{{incode|Laenge}}" gegeben (keine Umlaute ä,ö, ü etc.), dann kann auf den Wert in dieser Form zugegriffen werden:


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.
{{Code|code=Hauptdokument#Baugruppenwerte.Laenge}}


Sobald das Mutterdokument mit der Kalkulationstabelle erstellt und gespeichert (benannt) ist, können abhängige Dokumente erstellt werden. Angenommen, du nennst das Mutterdokument {{incode|master}}, die Kalkulationstabelle {{incode|modelConstants}} und gibst einer Zelle einen Alias-Namen {{incode|Length}}, dann kannst du auf den Wert zugreifen als:
'''Hinweis:''' das Hauptdokument muss geöffnet sein, damit die Werte im Hauptdokument für das abhängige Dokument verfügbar sind.


{{incode|master#modelConstants.Length}}
Leider 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 {{Button|OK}} aktiv.


Man beachte, dass das Hauptdokument geladen sein muss, damit die Werte des Hauptdokuments für das abhängige Dokument verfügbar sind.
Bei der Verwendung verknüpfter Dokumente ist der Benutzer dafür verantwortlich, dass alle Dokumente auch geöffnet sind, wenn irgendwelche Änderungen vorzunehmen sind.


Natürlich liegt es bei dir, die zugehörigen Dokumente später zu laden, wenn du etwas ändern willst.
==Bekannte Probleme / Verbliebene Aufgaben==
{{Top}}
<span id="Known_issues_/_remaining_tasks"></span>
==Bekannte Probleme / Verbleibende Aufgaben==


* FreeCAD hat bisher keinen eingebauten Ausdrucksmanager, der alle Ausdrücke in einem Dokument auflistet und sie erstellt, löscht, abfragt, etc. Aber es ist ein Addon verfügbar: [https://github.com/gbroques/fcxref fcxref expression manager].
* 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.
* Offene Fehler/Tickets für die Ausdrücke (Expressions) können hier gefunden werden: [https://github.com/FreeCAD/FreeCAD/issues?q=is%3Aissue+is%3Aopen+label%3AExpressions GitHub].
* Der Analysator für Ausdrucke kann mit Klammern nicht gut umgehen und ist nicht in der Lage einige Ausdrücke korrekt zu analysieren. Zum Beispiel "'''= (A1 > A2) ? 1 : 0'''" führt zu einem Fehler, während "'''= A1 > A2 ? 1 : 0'''" akzeptiert wird. Der Ausdruck "'''= 5 + ((A1>A2) ? 1 : 0)'''" kann in keiner Form eingegeben werden.
{{Top}}
* 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 {{Button|OK}} aktiv.
* Es gibt keinen Ausdrucksverwalter, mit dem Ausdrücke erstellt werden können, der alle vorhandenen Ausdrücke aufzeigt, löscht oder sucht etc.
* Die Namen von Einschränkungen (constraints) im Skizzierer (Sketcher) dürfen keine Leerzeichen enthalten, wenn der Wert durch einen Ausdruck berechnet wird, siehe [https://forum.freecadweb.org/viewtopic.php?p=302500#p302381; Forumsdiskussion].
* Offene Fehler/Tickets für die Ausdrücke (Expressions) können hier nachgeschlagen werden: [https://freecadweb.org/tracker/set_project.php?project_id=4;20 FreeCAD Bugtracker Expressions category]


{{Powerdocnavi{{#translation:}}}}
{{Powerdocnavi{{#translation:}}}}
[[Category:Spreadsheet{{#translation:}}]]
[[Category:Spreadsheet{{#translation:}}]]
{{clear}}

Latest revision as of 13:02, 17 January 2024

Ü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 von Ganzzahlen und Nachkommastellen verwenden. Wenn ein Dezimaltrennzeichen 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.

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

Einige Fehler im Zusammenhang mit Einheiten können unverständlich erscheinen, wenn Ausdrücke abgelehnt werden oder die Ergebnisse nicht den Einheiten der bearbeiteten Eigenschaft entsprechen. Ein paar Beispiele:

1/2mm wird nicht als halber Millimeter angesehen sondern als 1/(2mm) und ergibt: 0.5 mm^-1.

sqrt(2)mm ist ungültig, da der Funktionsaufruf keine Zahl ist. Dies muss so eingegeben werden: sqrt(2) * 1mm.

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 A1. Eine Zelle kann auch durch den Alias der Zelle referenziert werden, zum Beispiel Tabellenblatt.MeineTeilbreite.

Referenzierende Objekte

Wie oben schon gezeigt, kann ein Objekt über seinen Daten-EigenschaftNamen referenziert werden. Es kann aber auch seine Daten-EigenschaftBenennung (Label) verwendet werden. Im Falle einer Daten-EigenschaftBenennung muss sie in doppelten << und >> Symbolen eingeschlossen sein, wie z.B. <<Benennung>>.

Jede Eigenschaft eines Objekts kann referenziert werden. Um sich beispielsweise auf die Höhe eines Zylinders zu beziehen, kann Zylinder.Height oder <<Benennung_des_Zylinders>>.Height verwendet werden.

Für weitere Informationen über das Referenzieren von Objekten siehe Auf CAD-Daten referenzieren.

Anfang

Unterstützte Konstanten

Die folgenden Konstanten werden unterstützt:

Konstante Beschreibung
e Eulersche Zahl
pi Kreiszahl

Anfang

Unterstützte Operatoren

Die folgenden Operatoren werden untertstützt:

Operator Beschreibung
+ Addition
- Subtraktion
* Multiplikation
/ Fließkomma Division
% Division mit Rest
^ Potenz

Anfang

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 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) oder 360° - atan2(3; 4). Ein Ausdruck, der ohne Einheiten angegeben ist und aus Kompatibilitätsgründen in Grad oder Bogenmaß umgewandelt werden muss, wird entsprechend mit 1deg, oder 1rad multipliziert, z.B. (360 - X) * 1deg; (360 - X) * 1°; (0.5 + pi / 2) * 1rad.


Funktion Beschreibung Eingabebereich
acos(x) arccos -1 <= x <= 1
asin(x) arcsin -1 <= x <= 1
atan(x) arctan, Bereich des Rückgabewertes: -90° < Wert < 90° alle
atan2(y; x) arctan2 von y/x unter Berücksichtigung des Quadranten, Bereich des Rückgabewertes: -180° < Wert <= 180° alle, die ungültige Eingabe x = y = 0 gibt 0 zurück
cos(x) cos alle
cosh(x) cosh alle
sin(x) sin alle
sinh(x) sinh alle
tan(x) tan alle, außer x = n*90 mit n = odd integer (ungerade Ganzzahl)
tanh(x) tanh alle
hypot(x; y) Pythagoreische Addition (Hypotenuse), z.B. hypot(4; 3) = 5. x und y >= 0
cath(x; y) Die gegebene Hypotenuse und eine Seite ergibt die andere Seite eines Dreiecks (Kathete), z.B. cath(5; 3) = 4. x >= y >= 0

Exponential- und Logarithmusfunktionen

Funktion Beschreibung Eingabebereich
exp(x) Exponentialfunktion alle
log(x) Natürlicher Logarithmus x > 0
log10(x) Dekadischer Logarithmus x > 0
pow(x, y) Potenz (Mathematik) alle
sqrt(x) Quadratwurzel x >= 0
cbrt(x) eingeführt mit Version 0.21 Kubikwurzel x >= 0

Rundung, Trunkierung und Modulo

Funktion Beschreibung Eingabebereich
abs(x) Betragsfunktion alle
ceil(x) Aufrundungsfunktion, kleinster ganzzahliger Wert größer oder gleich x alle
floor(x) Abrundungsfunktion, größter ganzzahliger Wert kleiner oder gleich x alle
mod(x, y) Division mit Rest nach einer Division x durch y, das Vorzeichen des Ergebnisses ist das des Dividenden. alle, außer y = 0
round(x) Rundung auf die nächste Ganzzahl alle
trunc(x) Trunkierung auf die nächste Ganzzahl in Richtung Null (Nachkommastellen entfernen). alle

Anfang

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 Durchschnitt(B1:B8) oder Summe(A1:A4; B1:B4). Die Zellbezüge können auch Zell Aliase verwenden, zum Beispiel Durchschnitt(StartTemp:EndTemp).

Diese Aggregatfunktionen werden unterstützt:

Funktion Beschreibung Eingabebereich
average(a; b; c; ...) Arithmetisches Mittel der Werte der Argumente, dasselbe, wie sum(a; b; c; ...) / count(a; b; c; ...) alle
count(a; b; c; ...) Zählen der Argumente, üblicherweise für Zellbereiche genutzt alle
max(a; b; c; ...) Extremwert (Maximum)-Werte der Argumente alle
min(a; b; c; ...) Minimum (Minimum)-Werten der Argumente alle
stddev(a; b; c; ...) Varianz (Stochastik) der Werte der Argumente alle
sum(a; b; c; ...) Summe der Werte der Argumente, üblicherweise für Zellbereiche genutzt alle

Anfang

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: <<TEXT>>

Zeichenkettenverkettung

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

Das folgende Beispiel <<MY>>+<<TEXT>> wird verbunden zu "MYTEXT".

Umwandlung in Zeichenketten

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

str(Box.Length.Value)

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 <<Würfellänge: %s>> % Box.Length erweitert zu "Würfellänge: 10.0 mm"

Für mehr als einen %-Spezifizierer verwendet man folgende Syntax: <<Würfellänge ist %s und Würfelbreite ist %s>> % tuple(Box.Length; Box.Width). Oder man verwendet die Verkettung: <<Würfellänge ist %s>> % Box.Length + << und Länge ist %s>> % Box.Width. 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.)

Anfang

Funktionen zur Objekterstellung

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

Type Function Description
Tuple tuple(a; b; ...) Example: tuple(2; 1; 2)
List list(a; b; ...) Example: list(2; 1; 2)
Vector vector(x; y; z) Create a vector using three unit-less or Length unit values.

Example: vector(2; 1; 3)

create(<<vector>>; x; y; z)
Matrix
matrix(
  a11; a12; a13; a14;
  a21; a22; a23; a24;
  a31; a32; a33; a34;
  a41; a42; a43; a44
)
Create a 4x4 matrix in row-major order:

A minimum of 1 argument can be supplied such as matrix(1) which creates an identity matrix.

Example: matrix(1; 2; 3; 4; 5; 6; 7; 8; 9; 10; 11; 12; 13; 14; 15; 16)

create(<<matrix>>; a11; a12; ...; a44)
Rotation rotation(axis; angle) Create a Rotation by specifying its axis (Vector) and angle (Angle unit or unit-less), or three Euler angles α, β, γ.

Examples:

  • rotation(vector(0; 1; 0); 45)
  • create(<<rotation>>; 30; 30; 30)
rotation(α; β; γ)
create(<<rotation>>; axis; angle)
create(<<rotation>>; α; β; γ)
Placement placement(base; rotation) Create a Placement with various parameters, including:
  • base: base location (Vector)
  • center: center location (Vector)
  • rotation: Rotation
  • axis: Rotation axis (Vector)
  • angle: Rotation angle (unit-less or Angle unit value)
  • matrix: Matrix

Examples:

  • placement(vector(2; 1; 3); rotation(vector(0; 0; 1); 45))
  • create(<<placement>>; create(<<vector>>; 2; 1; 2); create(<<rotation>>; create(<<vector>>; 0; 1; 0); 45))
placement(base; rotation; center)
placement(base; axis; angle)
placement(matrix)
create(<<placement>>; ...)

Anfang

Vektorfunktionen

Functions: introduced in version 0.22.

Function / Operator Description
v1 + v2 Add two vectors.
v1 - v2 Subtract two vectors.
v * s Uniformly scale a vector by s.
vangle(v1; v2) Angle between two vectors in degrees.
vcross(v1; v2) Cross product of two vectors .
v1 * v2 Dot product of two vectors .
vdot(v1; v2)
vlinedist(v1; v2; v3) Distance between vector v1 and a line through v2 in direction v3.
vlinesegdist(v1; v2; v3) Distance between vector v1 and the closest point on a line segment from v2 to v3.
vlineproj(v1; v2; v3) Project vector v1 on a line through v2 in direction v3.
vnormalize(v) Normalize a vector to a unit vector.
vplanedist(v1) Distance between vector v1 and a plane defined by a point v2 and a normal v3.
vplaneproj(v1) Project vector v1 on a plane defined by a point v2 and a normal v3.
vscale(v; sx; sy; sz) Non-uniformly scale a vector by sx in the X direction, sy in the Y direction, and sz in the Z direction.
vscalex(v; sx)
vscaley(v; sy)
vscalez(v; sz)

Anfang

Matrixfunktionen

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

Function Description
minvert(m) Calculate the Inverse matrix.
mrotate(m; rotation) Rotate by either:
  • a Rotation
  • an axis (Vector) and an angle (Angle unit or unit-less)
  • three Euler angles α, β, γ
mrotate(m; axis; angle)
mrotate(m; α; β; γ)
mrotatex(m; angle) Rotate around the X axis.
mrotatey(m; angle) Rotate around the Y axis.
mrotatez(m; angle) Rotate around the Z axis.
mtranslate(m; vector) Translate by a vector (Vector) or X, Y, Z values. If a Rotation is translated, the returned object is a Placement.
mtranslate(m; x; y; z)
mscale(m; vector) Scale by a vector (Vector) or X, Y, Z values.
mscale(m; x; y; z)

Anfang

Bedingte Ausdrücke

Bedingte Ausdrücke haben die Form Bedingung ? ResultatWahr : ResultatFalsch. Die Bedingung ist definiert als ein Ausdruck, der entweder zu 0 (falsch/false) oder Nicht-Null (wahr/true) ausgewertet wird.

Die folgenden Vergleichsoperatoren sind definiert:

Einheit Beschreibung
== gleich
!= ungleich
> größer als
< kleiner als
>= größer oder gleich
<= kleiner oder gleich

Anfang

Einheiten

Einheiten können direkt in Ausdrücken verwendet werden. Der Analysator (parser) verbindet sie mit dem vorherigen Wert. So ist 2mm oder 2 mm gültig, während mm 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 1.5 haben und sich für eine Blockhöhe darauf beziehen. Dies funktioniert nur, weil die Blockhöhe die Einheit mm vordefiniert und die verwendet wird, wenn keine Einheit angegeben ist. Es schlägt jedoch fehl, wenn Sie für die Blockhöhe z.B. Sketch1.Constraints.Breite - Kalkulationstabelle.B1 verwenden, weil Sketch1.Constraints.Breite eine Einheit hat und Kalkulationstabelle.B1 keine Einheit.

Einheiten mit Exponenten können direkt eingegeben werden. So wird z.B. mm^3 als mm³ erkannt und m^3 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ß Sketch.Constraints.A würde z.B. als Einheit Ampere erkannt werden. Daher muss der Ausdruck als Sketch.Constraints.<<A>> geschrieben werden.

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

Stoffmenge

Einheit Beschreibung
mmol Millimol
mol Mol

Winkel

Einheit Beschreibung
° Grad (Winkel); Alternative zur Einheit deg
deg Degree; Alternative zur Einheit °
rad Radian
gon Gradian
S Winkelsekunde; Alternative zur Einheit "
Winkelsekunde; Alternative zur Einheit S
M Winkelminute; Alternative zur Einheit '
Winkelminute; Alternative zur Einheit M

Strom

Einheit Beschreibung
mA Milliampere
A Ampere
kA Kiloampere
MA Megaampere

Elektrische Kapazität

Einheit Beschreibung
pF Picofarad
nF Nanofarad
uF Mikrofarad; Alternative zur Einheit µF
µF Mikrofarad; Alternative zur Einheit uF
mF Millifarad
F Farad; 1 F = 1 s^4·A^2/m^2/kg

Elektrische Ladung

Einheit Beschreibung
C Coulomb; 1 C = 1 A*s

Elektrischer Leitwert

Einheit Beschreibung
uS Mikrosiemens; alternative to the unit µS
µS Mikrosiemens; alternative to the unit uS
mS Millisiemens
S Siemens; 1 S = 1 s^3·A^2/kg/m^2
kS KiloSiemens
MS MegaSiemens

Elektrische Induktivität

Einheit Beschreibung
nH Nanohenry (Einheit)
uH Mikrohenry (Einheit); Alternative zur Einheit µH
µH Mikrohenry (Einheit); Alternative zur Einheit uH
mH Millihenry (Einheit)
H Henry (Einheit); 1 H = 1 kg·m^2/s^2/A^2

Elektrische Spannung

Elektrisches Spannung:

Einheit Beschreibung
mV Millivolt
V Volt
kV Kilovolt

Elektrischer Widerstand

Elektrischer Widerstand:

Einheit Beschreibung
Ohm Ohm; 1 Ohm = 1 kg·m^2/s^3/A^2
kOhm Kiloohm
MOhm Megaohm

Energie/Arbeit

Einheit Beschreibung
mJ Millijoule
J Joule
kJ Kilojoule
eV elektron(en)volt; 1 eV = 1.602176634e-19 J
keV Kiloelektron(en)volt
MeV Megaelektron(en)volt
kWh Kilowattstunde; 1 kWh = 3.6e6 J
Ws Wattsekunde; Alternative zur Einheit Joule
VAs Voltamperesekunde; Alternative zur Einheit Joule
CV Coulombvolt; Alternative zur Einheit Joule
cal Kalorie; 1 cal = 4.184 J
kcal Kilokalorie

Kraft

Einheit Beschreibung
mN Millinewton
N Newton
kN Kilonewton
MN Meganewton
lbf Pound-force

Länge

Einheit Beschreibung
nm Nanometer
um Mikrometer; Alternative zur Einheit µm
µm Mikrometer; Alternative zur Einheit um
mm Millimeter
cm Zentimeter
dm Dezimeter
m Meter
km Kilometer
mil Thou (Abk. f. Thousandth of an inch); Alternative zur Einheit thou
thou Thou (Abk. f. Thousandth of an inch); Alternative zur Einheit mil
in Zoll (Einheit), in = inch, Alternative zur Einheit "
" Inch; Alternative zur Einheit in
ft Fuß (Einheit); Alternative zur Einheit '
' Fuß (Einheit); Alternative zur Einheit ft
yd Yard
mi Meile

Lichtstärke

Einheit Beschreibung
cd Candela

Magnetischer Fluss

Einheit Beschreibung
Wb Weber (Einheit); 1 Wb = 1 kg*m^2/s^2/A '

Magnetische Flussdichte

Einheit Beschreibung
G Gauß (Einheit); 1 G = 1 e-4 T
T Tesla (Einheit); 1 T = 1 kg/s^2/A

Masse

Einheit Beschreibung
ug Mikrogramm; Alternative zur Einheit µg
µg Mikrogramm; Alternative zur Einheit ug
mg Milligramm
g Gramm
kg Kilogramm
t Tonne (Einheit)
oz Unze
lb Pfund; Alternative zur Einheit lbm
lbm Pfund; Alternative zur Einheit lb
st Stone (Einheit)
cwt Hundredweight

Leistung

Einheit Beschreibung
W Watt
kW Kilowatt

Druck

Einheit Beschreibung
Pa Pascal (Einheit)
kPa Kilo-Pascal (Einheit)
MPa Mega-Pascal (Einheit)
GPa Giga-Pascal (Einheit)
uTorr Mikro-Torr; Alternative zu Einheit µTorr
µTorr Mikro-Torr; Alternative zu Einheit uTorr
mTorr Milli-Torr
Torr Torr; 1 Torr = 133.32 Pa
psi Pound-force per square inch; 1 psi = 6.895 kPa
ksi Kilo-Pound-force per square inch

Temperatur

Einheit Beschreibung
uK Mikrokelvin; Alternative zur Einheit µK
µK Mikrokelvin; Alternative zur Einheit uK
mK Millikelvin
K Kelvin

Zeit

Einheit Beschreibung
s Secunde
min Minute
h Stunde
Hz (1/s) Hertz
kHz Kilohertz,
MHz Megahertz
GHz Gigahertz
THz Terahertz

Volumen

Einheit Beschreibung
ml Milliliter
l Liter
cft Kubikfuß

Spezielle nichtmetrische Einheiten

Einheit Beschreibung
mph Meilen pro Stunde
sqft Quadratfuß

Nicht unterstützte Einheiten

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

Einheit Beschreibung Alternative
°C Grad Celsius [°C] + 273.15 K
°F Grad Fahrenheit; ([°F] + 459.67) × ​5/9
u Atomare Masseneinheit; Alternative zur Einheit Da (Dalton) = 1.66053906660e-27 kg
Da Dalton; Alternative zur Einheit u 1.66053906660e-27 kg
sr Steradiant nicht direkt
lm Lumen (Einheit) nicht direkt
lx Lux (Einheit) nicht direkt
px Pixel nicht direkt

Anfang

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:

Zeichen Beschreibung
', \, " Müssen durch das Voranstellen von \ maskiert werden.

Zum Beispiel muss der Bezeichner Skizze\002 als <<Skizze\002>> 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.

Zeichen / Zeichenfolgen Beschreibung
+, -, *, /, ^, _, <, >, (, ), {, }, [, ], ., ,, = Zeichen die mathematische Operatoren oder mathematische Konstruktionen sind.
A, kA, mA, MA, J, K, ' , ft , °, und viele andere! Zeichen und Zeichenfolgen, die Einheiten sind (siehe Abschnitt Einheiten ).
#, !, ?, §, $, %, &, :, ;, \, |, ~, , ¿, und viele andere! Zeichen, die als Platzhalter verwendet werden oder die Funktionen auslösen.
pi, e Mathematische Konstanten
´, `, ' , " Akzente
Leerzeichen (Space) Ein Leerzeichen definiert das Ende eines Namens und kann daher nicht verwendet werden.

Beispielsweise ist folgender Name gültig: <<Sketch>>.Constraints.T2üßµ@. Hingegen sind diese ungültige Namen: <<Sketch>>.Constraints.test\result_2 (\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.

Zell Aliasse

Siehe Spreadsheet Alias-Namen festlegen.

Anfang

Referenzen auf CAD Daten

Es ist möglich, Daten aus dem Modell selbst in einem Ausdruck zu verwenden. Um auf eine Eigenschaft zu verweisen, wird Objekt-Name.property oder <<Objekt-Benennung>>.property. Benennungen (Label) müssen in << und >> eingeschlossen werden. Sollen Benennungen verwendet werden, müssen sie eindeutig sein.

Alle weiteren Beispiele referenzieren ein Objekt über seinen Namen, aber seine Benennung kann ebenfalls verwendet werden.

If the property is a compound of fields, the individual fields can be accessed as object_name.property.field.

Um auf Listenobjekte zu verweisen, wird ObjektName.list[list_index] verwendet. Soll beispielsweise auf eine Randbedingung in einer Skizze verwiesen werden, wird Skizze.Constraints[16] verwendet. Ist eine Skizze im Bearbeitungsmodus geöffnetbefindest, kann man den Namen weglassen und einfach Constraints[16] verwenden. Man beachte, dass der Index mit 0 beginnt, daher muss die 17. Randbedingung als Constraints[16] referenziert werden.

Um auf das Objekt selbst zu referenziertem wird die Pseudo-Eigenschaft _self verwendet: Objekt-Name._self.

Die folgende Tabelle zeigt einige weitere Beispiele:

CAD-Daten Aufruf im Ausdruck Ergebnis
Länge eines Part Würfels Box.Length Länge mit Einheit (mm)
Volumen des Würfels Box.Shape.Volume Volumen in mm³ ohne Einheit
Formart des Würfels Box.Shape.ShapeType Zeichenkette (String): Solid
Bezeichnung des Würfels Box.Label Zeichenkette (String): Label
X-Koordinate des Schwerpunktes des Würfels Box.Shape.CenterOfMass.x X-Koordinate in mm ohne Einheit
X-Koordinate der Positionierung des Würfels Box.Placement.Base.x X-Koordinate mit Einheit (mm)
X-Komponente der Rotationsachsen der Positionierung des Würfels Box.Placement.Rotation.Axis.x X-Komponente des Einheitsvektors in mm ohne Einheit
Rotationswinkel der Positionierung des Würfels Box.Placement.Rotation.Angle Rotationswinkel mit Einheit (° = Grad = deg)
Das ganze Würfel-Objekt Box._self Objekt der Art <Part::PartFeature>
Wert einer Randbedingung in einer Skizze Constraints.Width Zahlenwert der benannten Randbedingung Width (Breite) in der Skizze, wenn der Ausdruck in der Skizze selbst verwendet wird.
Wert einer Randbedingung in einer Skizze MySketch.Constraints.Width Zahlenwert der benannten Randbedingung Width in der Skizze MySketch, wenn der Ausdruck außerhalb der Skizze verwendet wird.
Wert eines Alias einer Kalkulationstabelle Spreadsheet.Depth Wert des Alias Depth (Tiefe) in der Kalkulationstabelle Spreadsheet
Wert einer lokalen Eigenschaft eines Objekts Length Wert der Daten-EigenschaftLength (Länge) z.B. in einem Pad-Objekt, wenn der Ausdruck z.B. in Daten-EigenschaftLength2 im selben Objekt verwendet wird.

Cyclic dependencies

FreeCAD checks dependencies based on the relationship between document objects, not properties. This means that you cannot provide data to an object and query that same object for results. For example, even though there are no cyclic dependencies when the properties themselves are considered, you may not have an object which gets its dimensions from a spreadsheet and then display the volume of that object in the same spreadsheet. You have to use two spreadsheets, one to drive your model and the other for reporting.

As a workaround it is possible to display a cell range from the second spreadsheet in the first (or vice versa) by creating a cell binding with the Hide dependency of binding option.

Another way to workaround cyclic dependencies is to hide the reference by using the href or hiddenref function for individual expressions, for example: href(Box.Length).

Please note that both mentioned workarounds should be used with caution, and that they do not work if the properties that are reported depend on dimensions that are driven from the same spreadsheet.

Anfang

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.

Anfang

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 Daten-EigenschaftLänge 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 master, die Kalkulationstabelle modelConstants und gibst einer Zelle einen Alias-Namen Length, dann kannst du auf den Wert zugreifen als:

master#modelConstants.Length

Man beachte, dass das Hauptdokument geladen sein muss, damit die Werte des Hauptdokuments für das abhängige Dokument verfügbar sind.

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

Anfang

Bekannte Probleme / Verbleibende Aufgaben

  • FreeCAD hat bisher keinen eingebauten Ausdrucksmanager, der alle Ausdrücke in einem Dokument auflistet und sie erstellt, löscht, abfragt, etc. Aber es ist ein Addon verfügbar: fcxref expression manager.
  • Offene Fehler/Tickets für die Ausdrücke (Expressions) können hier gefunden werden: GitHub.

Anfang