Expressions/de: Difference between revisions
No edit summary |
(Created page with "Die folgenden Einheiten werden vom Analysator für Ausdrücke erkannt:") |
||
Line 256: | Line 256: | ||
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, 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. |
||
Die folgenden Einheiten werden vom Analysator für Ausdrücke erkannt: |
|||
The following units are recognized by the expression parser: |
|||
Amount of substance: |
Amount of substance: |
Revision as of 09:48, 6 June 2020
Übersicht
Es ist möglich, Eigenschaften durch mathematische Formeln festzulegen. In der graphischen Oberfläche enthaltenen Rotationsboxen oder Eingabefelder, die an Eigenschaften gebunden sind, haben ein blaues Symbol File:Sketcher Expressions.png. Durch Klicken auf das Symbol oder durch Eingabe des Gleichheitszeichens = wird der Ausdruckseditor für diese bestimmte Eigenschaft aufgerufen.
Ein FreeCAD-Ausdruck ist ein mathematischer Ausdruck der der üblichen Schreibweise für die Operatoren und Funktionen entspricht (siehe unten). Zusätzlich können sich die Ausdrücke auf andere Eigenschaften bedingte Ausdrücke beziehen. Zahlen in Ausdrücken können mit einer optionalen Einheit versehen sein.
Zahlen können entweder ein Komma ',' oder einen Dezimalpunkt '.' zur Trennung der Ganzzahlen von Nachkommastellen verwenden. Wenn diese Trennung benutzt wird, muss danach mindestens eine Ziffer folgen. Daher sind die Ausdrücke 1.+2. und 1,+2, ungültig, aber 1.0+2.0 und 1,0+2,0 sind gültig.
Die Rechenarten und Funktionen verstehen sich auf Einheiten und erfordern deshalb bei deren Verwendung zulässige Einheitenkombinationen. 2mm+4mm ist zum Beispiel ein zulässiger Ausdruck, während 2mm+4 nicht zulässig ist. Der Grund dafür ist, dass ein Ausdruck, wie 1in + 4 von Menschen wohl als 1in + 4in interpretiert wird, das System jedoch alle Einheiten intern in das SI-System konvertiert. Aktuell werden diese Einheiten erkannt.
Unterstützte Konstanten und Unterstützte Funktionen können verwendet werden.
Bezugnehmende Objekte
Sie können auf ein Objekt über seinen Namen
oder über seine Ettikett
verweisen. Im Falle eines Ettiketts
muss es von doppelten <<
und >>
Symbolen umschlossen sein, wie z.B. <<Ettikett>>
.
Es kann auf jede numerische Eigenschaft dieses Objekts verwiesen werden. Um sich beispielsweise auf die Höhe eines Zylinders zu beziehen, kann Zylinder.Hoehe
oder <<Langer_Name_des_Zylinders>>.Hoehe
verwendet werden. Umlaute, wie (ä, ö, ü etc.) dürfen nicht verwendet werden.
Um auf Listenobjekte zu verweisen, lautet die Syntax <<object_label>>.list[list_index]
oder 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]'.
verwenden.
Hinweis: Der Index beginnt mit 0, daher hat die Einschränkung 17 den Index 16.
Mehr zu referenzierenden Objekten, siehe Referenzen auf CAD-Daten in diesem Beitrag.
Die folgenden Operatoren werden untertstützt:
Operator | Beschreibung |
---|---|
+ | Addition |
- | Subtraktion |
* | Multiplikation |
/ | Fließkomma Division |
% | Division mit Rest |
^ | Potenz |
Unterstützte Konstanten
Die folgenden Konstanten werden unterstützt:
Konstante | Beschreibung |
---|---|
e | Eulersche Zahl |
pi | Kreiszahl |
Unterstützte Funktionen
Allgemeine mathematische Funktionen
Die nachfolgend aufgeführten mathematischen Funktionen sind verfügbar.
Mehrere Argumente zu einer Funktion können entweder durch ein Semikolon ';' oder ein Komma gefolgt von einem Leerzeichen ', ' getrennt werden. Im letzteren Fall wird das Komma nach der Eingabe in ein Semikolon umgewandelt. Wenn ein Semikolon verwendet wird, ist kein Leerzeichen am Ende des Semikolons erforderlich.
Trigonometrische Funktionen verwenden Grad als Standardeinheit. Für die Angabe im Bogenmaß wird rad nach dem ersten Wert in einem Ausdruck hinzugefügt. So ist z.B. cos(45) das gleiche, wie cos(pi rad / 4). Ausdrücke in Grad können entweder deg oder ° verwenden, z.B. 360deg - atan2(3; 4) or 360° - atan2(3; 4). Ein Ausdruck, der ohne Einheiten angegeben ist und aus Kompatibilitätsgründen in Grad oder Bogenmaß umgewandelt werden muss, wird mit 1 deg, 1 ° oder 1 rad multipliziert, gegebenenfalls, z.B. (360 - X) * 1deg; (360 - X) * 1°; (0.5 + pi / 2) * 1rad.
Folgende Trigonometrische Funktionen werden unterstützt:
Funktion | Beschreibung | Wertebereich |
---|---|---|
acos(x) | arccos | -1 <= x <= 1 |
asin(x) | arcsin | -1 <= x <= 1 |
atan(x) | arctan | alle |
atan2(x, y) | arctan2 von x/y | alle, außer y = 0 |
cos(x) | cos | alle |
cosh(x) | cosh | alle |
sin(x) | sin | alle |
sinh(x) | sinh | alle |
tan(x) | tan | alle, außer für x = n·90 mit n = integer |
tanh(x) | tanh | alle |
Diese Exponential- oder Logarithmusfunktionen werden unterstützt:
Funktion | Beschreibung | Wertebereich |
---|---|---|
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 |
Diese Funktionen für Rundung, Trunkierung und Modulo werden unterstützt:
Funktion | Beschreibung | Wertebereich |
---|---|---|
abs(x) | Betragsfunktion | alle |
ceil(x) | Abrundungsfunktion kleinster ganzzahliger Wert größer oder gleich x | alle |
floor(x) | Aufrundungsfunktion, größter ganzzahliger Wert kleiner oder gleich x | alle |
mod(x, y) | Division mit Rest nach einer Division x durch y | alle, außer y = 0 |
round(x) | Rundung auf die nächste Ganzzahl | alle |
trunc(x) | Trunkierung auf die nächste Ganzzahl (Kürzen auf einer Reihe oder Zahl auf eine gewisse Länge) | alle |
Statistical / Aggregate Functions
Aggregate functions take one or more arguments, separated by a semicolon ';' or a comma and a space ', '.
Arguments may include references to cells in a spreadsheet. Cell references consist of the (CAPITAL) row letter followed by the column number.
Arguments may include ranges of cells (two cell references separated by a colon), for example average(B1:B8).
These aggregate functions are supported:
Function | Description | Value range |
---|---|---|
average(x:y) | Arithmetic mean of values in cells x through y; sum(x:y) / count(x:y) | all |
count(x:y) | Counting of cells from x through y | all |
max(x:y) | Maximum value in cells x through y | all |
min(x:y) | Minimum value in cells x through y | all |
stddev(x:y) | Standard deviation of values in cells x through y | all |
sum(x: y) | Sum of values in cells x through y | all |
Bedingte Ausdrücke
Bedingte Ausdrücke haben die Form Bedingung ? ResultatWahr : ResultatFalsch bzw. condition ? resultTrue : resultFalse. Die Bedingung ist definiert als ein Ausdruck, der entweder zu '0' (falsch) oder ungleich Null (wahr) ausgewertet wird.
Die folgenden Vergleichsoperatoren sind definiert:
Einheit | Beschreibung |
---|---|
== | gleich |
!= | ungleich |
> | größer als |
< | kleiner als |
>= | größer oder gleich |
<= | kleiner oder gleich |
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, 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.
Die folgenden Einheiten werden vom Analysator für Ausdrücke erkannt:
Amount of substance:
Unit | Description |
---|---|
mmol | Millimole |
mol | Mole |
Angle:
Unit | Description |
---|---|
° | Degree; alternative to the unit deg |
deg | Degree; alternative to the unit ° |
rad | Radian |
gon | Gradian |
S | Second of arc |
″ | Second of arc; alternative to the unit S |
M | Minute of arc |
′ | Minute of arc; alternative to the unit M |
Current:
Unit | Description |
---|---|
mA | Milliampere |
A | Ampere |
kA | Kiloampere |
MA | Megaampere |
Electrical Capacitance:
Unit | Description |
---|---|
pF | Picofarad, introduced in version 0.19 |
nF | Nanofarad, introduced in version 0.19 |
uF | Microfarad; alternative to the unit µF, introduced in version 0.19 |
µF | Microfarad; alternative to the unit uF, introduced in version 0.19 |
mF | Millifarad, introduced in version 0.19 |
F | Farad; 1 F = 1 s^4·A^2/m^2/kg, introduced in version 0.19 |
Electrical Conductance:
Unit | Description |
---|---|
uS | Microsiemens; alternative to the unit µS, introduced in version 0.19 |
µS | Microsiemens; alternative to the unit uS, introduced in version 0.19 |
mS | Millisiemens, introduced in version 0.19 |
S | Siemens; 1 S = 1 s^3·A^2/kg/m^2, introduced in version 0.19 |
Electrical Inductance:
Unit | Description |
---|---|
nH | Nanohenry, introduced in version 0.19 |
uH | Microhenry; alternative to the unit µH, introduced in version 0.19 |
µH | Microhenry; alternative to the unit uH, introduced in version 0.19 |
mH | Millihenry, introduced in version 0.19 |
H | Henry; 1 H = 1 kg·m^2/s^2/A^2, introduced in version 0.19 |
Electrical Resistance:
Unit | Description |
---|---|
Ohm | Ohm; 1 Ohm = 1 kg·m^2/s^3/A^2, introduced in version 0.19 |
kOhm | Kiloohm, introduced in version 0.19 |
MOhm | Megaohm, introduced in version 0.19 |
Electric Charge:
Unit | Description |
---|---|
C | Coulomb; 1 C = 1 A·s, introduced in version 0.19 |
Electric Potential:
Unit | Description |
---|---|
mV | Millivolt |
V | Volt |
kV | Kilovolt |
Energy / Work:
Unit | Description |
---|---|
mJ | Millijoule |
J | Joule |
kJ | Kilojoule, introduced in version 0.19 |
eV | Electronvolt; 1 ev = 1.602176634e-19 J, introduced in version 0.19 |
keV | Kiloelectronvolt, introduced in version 0.19 |
MeV | Megaelectronvolt, introduced in version 0.19 |
kWh | Kilowatt hour; 1 kWh = 3.6e6 J, introduced in version 0.19 |
Ws | Watt second; alternative to the unit Joule |
VAs | Volt-ampere-second; alternative to the unit Joule |
CV | Coulomb-volt; alternative to the unit Joule |
cal | Calorie; 1 cal = 4.184 J, introduced in version 0.19 |
kcal | Kilocalorie, introduced in version 0.19 |
Force:
Unit | Description |
---|---|
mN | Millinewton |
N | Newton |
kN | Kilonewton |
MN | Meganewton |
lbf | Pound of force |
Length:
Unit | Description |
---|---|
nm | Nanometer |
um | Micrometer; alternative to the unit µm |
µm | Micrometer; alternative to the unit mu |
mm | Millimeter |
cm | Centimeter |
mm | Millimeter |
dm | Decimeter |
m | Meter |
km | Kilometer |
mil | Thousandth of an inch; alternative to the unit thou |
thou | Thousandth of an inch; alternative to the unit mil |
in | Inch |
ft | Foot; alternative to the unit ' |
' | Foot; alternative to the unit ft |
yd | Yard |
mi | Mile |
Luminous Intensity:
Unit | Description |
---|---|
cd | Candela |
Magnetic Field Strength:
Unit | Description |
---|---|
Oe | Oersted; 1 Oe = 79.57747 A/m, introduced in version 0.19 |
Magnetic Flux:
Unit | Description |
---|---|
Wb | Weber; 1 Wb = 1 kg*m^2/s^2/A, introduced in version 0.19 |
Magnetic Flux Density:
Unit | Description |
---|---|
G | Gauss; 1 G = 1 e-4 T, introduced in version 0.19 |
T | Tesla; 1 T = 1 kg/s^2/A, introduced in version 0.19 |
Mass:
Unit | Description |
---|---|
ug | Microgram; alternative to the unit µg |
µg | Microgram; alternative to the unit ug |
mg | Milligram |
g | Gram |
kg | Kilogram |
t | Tonne |
oz | Ounce |
lb | Pound; alternative to the unit lbm |
lbm | Pound; alternative to the unit lb |
st | Stone |
cwt | Hundredweight |
Energie:
Einheit | Beschreibung |
---|---|
W | Watt(Einheit) |
kW | Kilo-Watt, introduced in version 0.19 |
VA | Voltampere |
Pressure:
Unit | Description |
---|---|
Pa | Pascal |
kPa | Kilopascal |
MPa | Megapascal |
GPa | Gigapascal |
mbar | MilliBar, introduced in version 0.19 |
bar | Bar, introduced in version 0.19 |
uTorr | Microtorr; alternative to the unit µTorr |
µTorr | Microtorr; alternative to the unit uTorr |
mTorr | Millitorr |
Torr | Torr; 1 Torr = 133.32 Pa |
psi | Pound-force per square inch; 1 psi = 6.895 kPa |
ksi | Kilopound-force per square inch |
Mpsi | Megapound-force per square inch, introduced in version 0.19 |
Temperature:
Unit | Description |
---|---|
uK | Microkelvin; alternative to the unit µK |
µK | Microkelvin; alternative to the unit uK |
mK | Millikelvin |
K | Kelvin |
Time:
Unit | Description |
---|---|
s | Second |
min | Minute |
h | Hour |
Hz (1/s) | Hertz, introduced in version 0.19 |
kHz | Kilohertz, introduced in version 0.19 |
MHz | Megahertz, introduced in version 0.19 |
GHz | Gigahertz, introduced in version 0.19 |
THz | Terahertz, introduced in version 0.19 |
Torque:
Unit | Description |
---|---|
Nm | Newton metre |
Volume:
Unit | Description |
---|---|
ml | Milliliter, introduced in version 0.19 |
l | Liter |
cft | Cubicfoot, introduced in version 0.19 |
Special imperial units:
Unit | Description |
---|---|
mph | Miles per hour, introduced in version 0.19 |
sqft | Square foot, introduced in version 0.19 |
The following commonly used units are not yet supported:
Unit | Description | Alternative |
---|---|---|
°C | Celsius | [°C] + 273.15 K |
°F | Fahrenheit; | ([°F] + 459.67) × 5/9 |
u | Atomic mass unit; alternative to the unit 'Da' | 1.66053906660e-27 kg |
Da | Dalton; alternative to the unit 'u' | 1.66053906660e-27 kg |
sr | Steradian | not directly |
lm | Lumen | not directly |
lx | Lux | not directly |
px | Pixel | not directly |
Referenzen auf CAD-Daten
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".
Die folgende Tabelle zeigt einige Beispiele:
CAD-Daten | Aufruf im Ausdruck | Ergebnis |
---|---|---|
Parametrische Länge eines Quaders im Arbeitsbereich Part | Cube.Length
|
Length mit der Einheit mm
|
Volumen des Würfels | Cube.Shape.Volume
|
Volume in mm³ ohne Einheiten
|
Typ der Würfelform (geometrische Figur) | Cube.Shape.ShapeType
|
String: Solid |
Ettikett des Würfels | Cube.Label
|
String: Label |
x-Koordinate des Schwerpunktes des Würfels | Cube.Shape.CenterOfMass.x
|
x-coordinate in mm ohne Einheiten |
Wert der Beschränkung in einer Skizze | Constraints.Width
|
numerischer Wert der benannten Beschränkung 'Width ' (Breite) in der Skizze, wenn der Ausdruck in der Skizze selbst verwendet wird.
|
Wert eines Alias einer Kalkulationstabelle | Spreadsheet.Depth
|
Wert eines Alias "Depth " (Tiefe) in der Kalkulationstabelle "Spreadsheet "
|
Wert einer lokalen Eigenschaft eines Objekts | Length
|
Wert der Eigenschaft Length (Länge) z.B. in einem Pad Objekt, wenn der Ausdruck z.B. in Length2 im gleichen Objekt verwendet wird.
|
Dokumentweit gültige globale Variablen
Es gibt aktuell keine Infrastruktur für globale Variablen in FreeCAD. Stattdessen können beliebige Variablen als Zellwerte innerhalb einer Tabelle des Arbeitsbereiches Tabellenkalkulation (Spreadsheet) definiert werden und ihnen ein Name mittels der Alias-Eigenschaft für Zellen zugeordnet werden(Rechtsklick auf die Zelle). Danach können die Zellwerte in allen Rechenausdrücken verwendet werden, sie wie andere Eigenschaften von Objekten auch.
Dokumentübergreifende Verlinkung
Es ist 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.
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.
Sobald das Hauptdokument mit der Kalkulationstabelle erstellt und gespeichert (benannt) ist, können abhängige Dokumente erstellt werden. Angenommen, das Hauptdokument heißt "Hauptdokument
", die Kalkulationstabelle ist mit Baugruppenwerte
" benannt und einer Zelle wurde ein Alias-Namen "{Laenge
" gegeben (keine Umlaute ä,ö, ü etc.), dann kann auf den Wert in dieser Form zugegriffen werden:
Hauptdokument#Baugruppenwerte.Laenge
Hinweis: das Hauptdokument muss geöffnet sein, damit die Werte im Hauptdokument für das abhängige Dokument verfügbar sind.
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 OK aktiv.
Bei der Verwendung verknüpfter Dokumente ist der Benutzer dafür verantwortlich, dass alle Dokumente auch geöffnet sind, wenn irgendwelche Änderungen vorzunehmen sind.
Bekannte Probleme / Verbliebene Aufgaben
- Das Abhängigkeitsdiagramm basiert auf der Beziehung zwischen Dokumentobjekten, nicht auf Eigenschaften. Das bedeutet, dass man nicht Daten einem Objekt zur Verfügung stellen kann und gleichzeitig Daten von diesem Objekt abfragt. Auch wenn es beispielsweise keine zyklischen Abhängigkeiten gibt, wenn die Eigenschaften selbst berücksichtigt werden, kann es vorkommen, dass es kein Objekt gibt, das seine Abmessungen aus einer Kalkulationstabelle erhält und dann das Volumen dieses Objekts in derselben Kalkulationstabelle anzeigt. Zur Umgehung des Problems können mehrere Tabellen angelegt werden: Eine Tabelle, die die Objektdaten zur Verfügung stellt und eine andere zur Datenauswertung.
- Der Analysator für 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.
- 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 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 Forumsdiskussion.
- Offene Fehler/Tickets für die Ausdrücke (Expressions) können hier nachgeschlagen werden: FreeCAD Bugtracker Expressions category
- FreeCAD scripting: Python, Introduction to Python, Python scripting tutorial, FreeCAD Scripting Basics
- Modules: Builtin modules, Units, Quantity
- Workbenches: Workbench creation, Gui Commands, Commands, Installing more workbenches
- Meshes and Parts: Mesh Scripting, Topological data scripting, Mesh to Part, PythonOCC
- Parametric objects: Scripted objects, Viewproviders (Custom icon in tree view)
- Scenegraph: Coin (Inventor) scenegraph, Pivy
- Graphical interface: Interface creation, Interface creation completely in Python (1, 2, 3, 4, 5), PySide, PySide examples beginner, intermediate, advanced
- Macros: Macros, How to install macros
- Embedding: Embedding FreeCAD, Embedding FreeCADGui
- Other: Expressions, Code snippets, Line drawing function, FreeCAD vector math library (deprecated)
- Hubs: User hub, Power users hub, Developer hub