Der Arbeitsbereich Spreadsheet ermöglicht die Erstellung und Bearbeitung von Tabellen, Daten aus der Tabellenkalkulation als Parameter in einem Modell zu verwenden, die Tabellenkalkulation mit aus einem Modell abgerufenen Daten zu füllen, Berechnungen durchzuführen und die Daten in andere Tabellenkalkulationsprogramme wie LibreOffice oder Microsoft Excel zu exportieren.
Eine Tabellenblatt mit bestimmten Zellen, die mit Text und Mengen gefüllt sind
Hinweis: das Löschen oder Entfernen von Zellen mit Daten kann die Kalkulationstabelle und das Modell beschädigen, wenn es sich auf die Kalkulationstabelle stützt. Sie werden nicht vorgewarnt, wenn dies geschieht.
Zeilen und Spalten können eingefügt oder entfernt werden, indem Sie mit der rechten Maustaste auf einen Zeilen- oder Spaltenkopf klicken und die entsprechende Option aus dem Kontextmenü auswählen.
Es ist möglich, zunächst mehrere Zeilen oder Spalten auszuwählen. Entweder halten Sie die Taste Ctrl gedrückt, während Sie die Überschriften auswählen, oder Sie halten die linke Maustaste gedrückt und ziehen.
Der Inhalt einer Zelle kann bearbeitet werden, indem Sie die Zelle markieren und einen Wert in das Content-Eingabefeld am oberen Rand des Fensters eingeben. Um eine Zelle an Ort und Stelle zu bearbeiten, wählen Sie sie aus und drücken Sie F2 oder doppelklicken Sie auf sie.
Um eine oder mehrere Zellen zu löschen, markieren Sie sie und drücken Sie Del. Dadurch werden ihr Inhalt, ihre Eigenschaften und ihre Aliasnamen gelöscht. Um nur den Inhalt einer Zelle zu löschen, sollte sie stattdessen bearbeitet werden.
Die Operationen Ausschneiden und Kopieren/Einfügen können in den Zellen der Tabellenkalkulation verwendet werden. Sie können die normalen Tastenkombinationen für diese Operationen verwenden: Ctrl+X, Ctrl+C und Ctrl+V. Um mehrere Zellen auszuwählen, halten Sie die Taste Ctrl während der Auswahl gedrückt, oder halten Sie die linke Maustaste gedrückt und ziehen Sie, um einen rechteckigen Zellbereich auszuwählen.
Die Operationen Ausschneiden und Kopieren speichern den Inhalt, die Eigenschaften und die Aliasnamen der Zellen in der Zwischenablage. Bei der Operation Einfügen werden die Daten so geschrieben, dass der Inhalt der linken oberen Zelle der gespeicherten Daten in der aktiven Zelle abgelegt wird. Andere gespeicherte Inhalte werden relativ zu dieser Zelle platziert. Formeln werden entsprechend aktualisiert. Aliase werden nur eingefügt, wenn sie eindeutig sind.
Die Eigenschaften einer Tabellenzelle können mit einem Rechtsklick auf die Zelle und Auswahl von Eigenschaften... im Kontextmenü geändert werden. Folgender Dialog wird geöffnet:
Wie in den Reitern angezeigt können die folgenden Eigenschaften geändert werden:
Eine Tabellenzelle kann eine Zahl, einen Text oder einen Ausdruck enthalten. Ausdrücke müssen mit einem Gleichheitszeichen '=' beginnen.
Zellausdrücke können Zahlen, Funktionen, Verweise auf andere Zellen und Verweise auf Eigenschaften des Modells enthalten (Siehe aber Aktuelle Einschränkungen weiter unten). Eine Zelle kann über ihre Adresse (GROSSBUCHSTABEN für die Spalte + Zeilennummer, z.B. B4) referenziert werden oder über ihren Alias.
Anmerkung: Zellausdrücke werden von FreeCAD als Programmiercode behandelt. Wird also der Inhalt einer Zelle bearbeiten, kann es sein, dass der sichtbare Inhalt nicht den Anzeigeeinstellungen folgt:
Referenzen zu Objekten im Modell werden unter Referenzen auf CAD-Daten unten erklärt. Die Verwendung von Tabellenkalkulationszellenwerten zur Definition von Modelleigenschaften wird unter Tabellenkalkulationsdaten in Ausdrücken weiter unten erläutert. Weitere Besonderheiten zur Bildung von Ausdrücken findest du unter Ausdrücke.
Daten in den Zellen einer Kalkulationstabelle können in CAD Modellparameterausdrücken verwendet werden. So kann eine Tabellenkalkulationstabelle als Quelle für Parameterwerte verwendet werden, die im gesamten Modell verwendet werden, die Werte effektiv an einem Ort zu sammeln. Wenn Werte in der Kalkulationstabelle geändert werden, werden sie im ganzen Modell übertragen.
In ähnlicher Weise können Eigenschaften von CAD Modellobjekten in Ausdrücken in Kalkulationstabellenzellen verwendet werden. Dies ermöglicht die Verwendung von Objekteigenschaften wie Volumen oder Fläche in der Kalkulationstabelle. Wenn der Name eines Objekts im CAD Modell geändert wird, wird die Änderung automatisch auf alle Referenzen in Kalkulationstabellenausdrücken mit dem geänderten Namen übertragen.
In einem Dokument kann mehr als eine Kalkulationstabelle verwendet werden. Eine Kalkulationstabelle kann entweder über ihren Namen oder ihre Beschriftung identifiziert werden.
FreeCAD vergibt automatisch einen eindeutigen Namen für eine Kalkulationstabelle, wenn sie erstellt wird. Diese Namen folgen dem Muster Spreadsheet
, Spreadsheet001
, Spreadsheet002
und so weiter. Der Name kann nicht geändert werden, und er ist in den Eigenschaften des Arbeitsblatts nicht sichtbar. Er kann verwendet werden, um in einem Ausdruck auf das Tabellenblatt zu verweisen (siehe Tabellendaten in Ausdrücken unten).
Die Benennung (Label) einer Kalkulationstabelle wird bei der Erstellung automatisch auf den Namen der Kalkulationstabelle gesetzt. Im Gegensatz zum Namen kann die Benennung geändert werden, z. B. in der Eigenschafteneditor oder über die Kontextmenüaktion Umbenennen. In der Standard-Voreinstellung akzeptiert FreeCAD keine doppelten Benennungen, aber es gibt eine Voreinstellung um dieses zu überschreiben. Kalkulationstabellen mit doppelten Benennungen in demselben Dokument können nicht durch ihre Benennung referenziert werden.
FreeCAD prüft auf zyklische Abhängigkeiten. Siehe Aktuelle Begrenzungen.
Wie oben angegeben, kann man in Kalkulationstabellenausdrücken auf Daten aus dem CAD Modell verweisen.
Die folgende Tabelle zeigt einige Beispiele unter der Annahme, dass das Modell über eine Funktion namens "MeinWürfel" verfügt:
CAD-Daten | Zelle im Tabellenblatt | Ergebnis |
---|---|---|
Parametrische Länge eines Würfels des Arbeitsbereiches Part | =MeinWürfel.Length
|
Länge mit der Einheit mm |
Volumen des Würfels | =MeinWürfel.Shape.Volume
|
Volumen in mm³ ohne Einheit |
Typ des Würfel-"Shapes" | =MeinWürfel.Shape.ShapeType
|
Zeichenkette: Solid |
Beschriftung des Würfels | =MeinWürfel.Label
|
Zeichenkette: MeinWürfel |
X-Koordinate des Massenschwerpunktes des Würfels | =MeinWürfel.Shape.CenterOfMass.x
|
Koordinate in mm ohne Einheit |
Um Kalkulationstabellendaten in anderen Teilen von FreeCAD zu verwenden, wirst du normalerweise einen Ausdruck erstellen, der sich auf die Kalkulationstabelle und die Zelle bezieht, die die Daten enthält, die du verwenden möchtest. Du kannst Kalkulationstabellen über den Namen oder die Benennung identifizieren, und du kannst die Zellen über die Adresse oder über einen Alias identifizieren. Die Autovervollständigung ist für alle Formen des Verweises verfügbar.
Kalkulationstabelle nach Name | Kalkulationstabelle nach Benennung | |
---|---|---|
Zelle nach Adresse | =Spreadsheet042.B5
|
=<<MySpreadsheet>>.B5
|
Zelle nach Alias | =Spreadsheet042.MyAlias
|
=<<MySpreadsheet>>.MyAlias
|
Die empfohlene Art, auf Tabellenblattdaten zu referenzieren, ist die Verwendung der Tabellenbenennung (Label) und des Zellaliasnamens. Eine ausführlichere Erklärung der Vor- und Nachteile der Referenzierungsarten findest du im erweiterten Abschnitt unten.
Die Verwendung der Kalkulationstabellenbeschriftung hat den Vorteil, dass sie frei geändert werden kann, um den Inhalt der Kalkulationstabelle zu beschreiben. Es ist auch einfacher, die verwendete Kalkulationstabelle zu identifizieren, da der Text im Ausdruck mit der in der Modell- und Eigenschaftsansicht angezeigten Beschriftung übereinstimmt. Wenn du dich entscheidesz, die Beschriftung einer Kalkulationstabelle zu ändern, werden bestehende Verweise auf den Inhalt der Kalkulationstabelle aktualisiert, sodass du deine Ausdrücke nicht durch Umbenennen der Kalkulationstabelle zerstörst. Der interne Name der Kalkulationstabelle ist nur im Ausdruckseditor verfügbar. Wenn du also den internen Namen verwendest und später die Kalkulationstabellen umbenennst, kannst du deine Ausdrucksdaten nur schwer zu deiner Quelle zurückverfolgen.
Beachte, dass beim Anlegen eines neuen Kalkulationstabellenblatts der Name und die Beschriftung identisch sind, so dass es leicht passieren kann, dass du versehentlich den Namen des Kalkulationstabellenblatts statt der Beschriftung verwendest. Eine einfache Möglichkeit, dies zu vermeiden, besteht darin, der Kalkulationstabelle einen aussagekräftigen Namen zu geben, bevor du sie in Ausdrücken verwendest.
Du kannst zwar die Zeilen- und Spaltennummer in einem Ausdruck verwenden, um auf eine Zelle zu verweisen, aber am besten ist es, der Zelle einen Aliasnamen zu geben und diesen zu verwenden. Siehe Zelleigenschaften oben, wie du den Alias festlegst. Wenn die Daten in Zelle B1 beispielsweise den Längenparameter für ein Objekt enthalten, würde ein Alias-Name von MyObject_Length
ermöglichen, dass der Wert als <<MyParams>>.MyObject_Length
anstelle von Spreadsheet.B1
referenziert wird. Alias-Namen sind nicht nur viel einfacher zu lesen und zu verstehen, sie lassen sich auch viel leichter ändern, wenn du dich entscheidest, die Struktur deines Arbeitsblatts anzupassen. Die Verwendung eines Alias hat auch den Vorteil, dass es einfacher ist zu sehen, welche Zellen verwendet werden, um andere Teile des Dokuments zu steuern. Beachte, dass FreeCAD die Positionsbezüge in Ausdrücken automatisch anpasst, wenn du Zeilen und Spalten in der Tabelle einfügst oder entfernst. Das heißt, auch wenn du Zeilen- und Spaltennummern in einem Ausdruck verwendest, kannst du Zeilen und Spalten einfügen, ohne die Bezüge zu den umgebenden Zellen zu unterbrechen.
Das Bearbeiten einer Kalkulationstabelle löst eine Neuberechnung des 3D Modells aus, auch wenn die Änderungen keine Auswirkungen auf das Modell haben. Bei einem komplexen Modell kann eine Neuberechnung sehr lange dauern, und nach jeder einzelnen Bearbeitung warten zu müssen, ist natürlich ziemlich lästig.
Es gibt drei Lösungen, die sich damit beschäftigen:
#PENDING
angezeigt.=NameOfFile#<<MySpreadsheet>>.MyAlias
.
Die Kalkulationstabelle hat eine Vorstellung von Dimension (Einheiten), die mit Zellwerten verbunden ist. Eine Zahl, die ohne eine zugehörige Einheit eingegeben wird, hat keine Dimension. Die Einheit sollte direkt nach dem Zahlenwert eingegeben werden, ohne Leerzeichen dazwischen. Wenn eine Zahl eine zugehörige Einheit hat, wird diese Einheit in allen Berechnungen verwendet. Zum Beispiel ergibt die Multiplikation von zwei Längen mit der Einheit mm eine Fläche mit der Einheit mm².
Wenn eine Zelle einen Wert enthält, der eine Dimension darstellt, sollte dieser mit der zugehörigen Einheit eingegeben werden. Während man in vielen einfachen Fällen mit einem dimensionslosen Wert auskommen kann, ist es unklug, die Einheit nicht einzugeben. Wenn ein Wert, der eine Bemaßung repräsentiert, ohne die zugehörige Einheit eingegeben wird, gibt es einige Sequenzen von Operationen, die FreeCAD veranlassen, sich über inkompatible Einheiten in einem Ausdruck zu beschweren, obwohl der Ausdruck eigentlich gültig sein sollte. (Dies kann besser durch anschauen dieser Forumsbeitrag in den FreeCAD Foren verstanden werden.)
Du kannst die für einen Zellenwert angezeigten Einheiten über die Zelleigenschaften ändern. Dadurch wird der in der Zelle enthaltene Wert nicht geändert; es wird lediglich der vorhandene Wert für die Anzeige umgewandelt. Der Wert, der für Berechnungen verwendet wird, ändert sich nicht, und die Ergebnisse von Formeln, die den Wert verwenden, ändern sich nicht. Beispielsweise kann eine Zelle, die den Wert "5,08cm" enthält, als "2in" angezeigt werden, indem der Wert der Einheitenreiters in "in" geändert wird.
Eine dimensionslose Zahl kann im Zelleigenschaftendialog nicht in eine Zahl mit einer Einheit geändert werden. Man kann zwar eine Zeichenfolge für die Einheit eingeben, und diese Zeichenfolge wird angezeigt, aber die Zelle enthält immer noch eine dimensionslose Zahl. Um einen dimensionslosen Wert in einen Wert mit einer Dimension zu ändern, muss der Wert selbst mit seiner zugehörigen Einheit neu eingegeben werden.
Manchmal ist es notwendig, die Einheit von einer Zahl zu entfernen. Dies kann durch die Multiplikation einer 1 mit der reziproken Einheit erreicht werden.
FreeCAD Tabellenblätter können im [1] Format importiert und exportiert werden, welches auch von den meisten anderen Tabellenkalkulationsanwendungen wie Microsoft Excel oder LibreOffice Calc gelesen und geschrieben werden kann. Siehe Tabellenblatt Import und Tabellenblatt Export für weitere Informationen.
Tabellenblätter im Excel-Format XLSX können mit dem Befehl Std Import oder dem Befehl Std Öffnen importiert werden. Die folgenden Funktionen werden unterstützt:
Andere Funktionalität wird nicht in das FreeCAD-Tabellenblatt importiert.
Um die erforderlichen Seiteneinstellungen für den Druck von FreeCAD-Tabellen einzurichten, werden diese in eine TechDraw Tabellenansicht eingefügt.
FreeCAD prüft auf zyklische Abhängigkeiten wenn eine Neuberechnung ausgeführt wird. Nach dem Entwurf endet diese Prüfung auf der Ebene des Tabellenkalkulationsobjekts. Infolgedessen solltest du keine Tabellenkalkulation haben, die beides enthält Zellen, deren Werte zur Angabe von Parametern für das Modell verwendet werden, und Zellen, deren Werte die Ausgabe aus dem Modell verwenden. Du kannst z.B. keine Zellen haben, die die Länge, Breite und Höhe eines Objekts festlegen, und eine weitere Zelle, die das Gesamtvolumen der resultierenden Form referenziert. Diese Einschränkung kann durch zwei Tabellenkalkulationen überwunden werden: eine, die als Datenquelle für die Eingabeparameter des Modells dient und die andere verwendet für Berechnungen auf der Grundlage der resultierenden Geometriedaten.
Es ist möglich den Zellinhalt an andere Tabellenzellen zu binden. Dies ist sinnvoll, wenn mit großen Tabellen gearbeitet wird, oder wenn Zellinhalte aus anderen Tabellen genutzt werden sollen.
Um zum Beispiel den Zellbereich A3-C4 mit dem Zellbereich B1-D2 zu verbinden:
Die Tabelle sieht nun so aus
Sie können Tabellenkalkulationen verwenden, um Konfigurationstabellen mit vordefinierten Parametersätzen für Ihr Modell zu erstellen und dann dynamisch zu ändern, welche Konfiguration verwendet werden soll. Siehe das Konfigurationstabellen-Tutorial. Lesen Sie this Forum post, wenn Sie mehr über die Funktionsweise dieser Funktion erfahren möchten.
import Spreadsheet
sheet = App.ActiveDocument.addObject("Spreadsheet::Sheet", "MySpreadsheet")
sheet.Label = "Dimensions"
sheet.set("A1", "10mm")
sheet.recompute()
sheet.get("A1")
sheet.setAlias("B1", "Diameter")
sheet.set("Diameter", "20mm")
sheet.recompute()
sheet.get("Diameter")
# sheet.get() results in an error if the cell is empty.
# sheet.getContents() can be used to check the cell first.
if sheet.getContents("C1"):
print(sheet.get("C1"))