Material/de

Diese Dokumentation ist noch nicht fertiggestellt. Bitte hilf mit und trage etwas zur Dokumentation bei.

Die Seite GuiBefehl Modell erklärt, wie Befehle dokumentiert werden sollten. Unter Category:UnfinishedDocu findest du weitere unvollständige Seiten wie diese (und unter Category:UnfinishedDocu/de unvollständige Übersetzungen). Siehe Category:Command Reference für sämtliche Befehle (und Category:UnfinishedDocu/de für vorhandene Übersetzungen).

Siehe WikiSeiten, um zu lernen, wie die Wiki-Seiten bearbeitet werden und FreeCAD Unterstützen, um andere Wege zu entdecken, wie du einen Beitrag leisten kannst.

Diese Seite dokumentiert Formate und Designentscheidungen im Zusammenhang mit der Implementierung des neuen Materialsystems während des Entwicklungszyklus von FreeCAD 1.0. Sie ist nicht aktuell und wird aus historischen Gründen aufbewahrt. Die meisten Leute werden wahrscheinlich lieber die Benutzerdokumentation des Arbeitsbereichs Material stattdessen benutzen.

Übersicht

Diese Seite erklärt das Materialdatensystem in FreeCAD.

Diese Seite befindet sich zurzeit noch in Bearbeitung, um die Änderungen am Materialsystem widerzuspiegeln, das sich aktuell in Entwicklung befindet.

Zusammenfassung

Im Gegensatz zu früheren Versionen werden Materialien nicht mehr als einfaches Wörterbuch implementiert. Das bisherige System hatte den Vorteil der Einfachheit, jedoch den Nachteil einer begrenzten Bandbreite bei der Beschreibung von Materialeigenschaften.

Im neuen System werden Eigenschaften separat als eine Reihe von YAML-Dateien definiert. Die Eigenschaften werden dann zu einer Eigenschaftsbeschreibung mit Werten für die erforderlichen Eigenschaften zusammengefasst. Neuere Datentypen wie Arrays bedeuten, dass der Zugriff nicht mehr über einfache Wörterbücher erfolgen kann. Stattdessen wird eine API verwendet, um auf die Materialeigenschaften und Datenwerte zuzugreifen. Dies ermöglicht größere Möglichkeiten als bisher.

Werkzeuge

Es gibt einige gute Ressourcen, mit denen sich Materialien einfacher handhaben lassen:

Eigenschaften

Im Gegensatz zum bisherigen Materialstandard sind die Materialeigenschaften klar definiert. Sie wurden so konzipiert, dass sie granular und erweiterbar sind. Eigenschaften können mehrere Eigenschaften erben und nur das hinzufügen, was sich unterscheidet. Dies verbessert die Suche und vereinfacht die Implementierung.

Derzeit gibt es keinen speziellen Eigenschaften-Editor. Die Bearbeitung kann mit jedem YAML-Tool oder einem einfachen Editor wie nano oder Notepad erfolgen.

Die Eigenschafts-Definitions-Dateien werden als Modelle bezeichnet.

Beispiel für eine Eigenschaften-Modell-YAML-Datei

Model:
  Name: 'Linear Elastic'
  UUID: '7b561d1d-fb9b-44f6-9da9-56a4f74d7536'
  URL: 'https://en.wikipedia.org/wiki/Linear_elasticity'
  Description: >
    Materials that are linearly elastic obey Hooke's law i.e. the stress and
    strain relationship is linear
  DOI: "10.1016/j.ijplas.2004.06.004"
  Inherits:
    - Density:
      UUID: '454661e5-265b-4320-8e6f-fcf6223ac3af'
    - IsotropicLinearElastic:
      UUID: 'f6f9e48c-b116-4e82-ad7f-3659a9219c50'
  AngleOfFriction:
    Type: 'Quantity'
    Units: 'deg'
    URL: 'https://en.wikipedia.org/wiki/Friction#Angle_of_friction'
    Description: >
      Further information can be found at
      https://en.wikipedia.org/wiki/Mohr%E2%80%93Coulomb_theory
  CompressiveStrength:
    Type: 'Quantity'
    Units: 'kPa'
    URL: 'https://en.wikipedia.org/wiki/Compressive_strength'
    Description: "Compressive strength in [FreeCAD Pressure unit]"

Anstelle einer großen monolithischen Definitionsdatei sind die Eigenschaften granular und konzentrieren sich in der Regel auf eine bestimmte Aufgabe. Modelle lassen sich in zwei grundlegende Kategorien einteilen:

Jedes Modell verfügt über eine eindeutige Kennung (UUID), die intern zur Referenzierung verwendet wird. Die Konsistenz dieser UUID ist wichtig, da eine Änderung für ein Dokument auch Auswirkungen auf andere Dokumente haben kann. In der Regel erfordern Ergänzungen der Definition keine Änderung der Kennung, da sie weiterhin in anderen Dokumenten verwendet werden können. Wertänderungen würden jedoch eine neue UUID erfordern.

Eine optionale URL kann zu einer detaillierten Beschreibung der beschriebenen Materialeigenschaft verweisen. Da es sich hierbei um eine Beschreibung der Eigenschaft und nicht des Materials selbst handelt, sollte diese an dieser Stelle recht allgemein gehalten sein. Eine kürzere Beschreibung, in der Regel ein bis zwei Zeilen, kann ebenfalls in die Modellbeschreibung aufgenommen werden.

Jedes Material kann auch einen DOI (Digital Object Identifier) enthalten, der über https://www.doi.org/ zu einer Forschungsveröffentlichung oder einem ähnlichen Artikel von Interesse führt.

Vererbung

Vererbung ist eine neue Funktion. Es gibt zwei Hauptanwendungsfälle.

Ein Anwendungsfall ist die Möglichkeit, Modelle anzupassen, ohne andere Dokumente zu beschädigen. Wenn beispielsweise ein Eigenschaftstyp unterschiedlich ist, kann ein abgeleitetes Eigenschaftsmodell definiert werden, das nur diese bestimmte Eigenschaft ändert, ohne vorhandene Dokumente zu beschädigen, die darauf verweisen.

Ein zweiter Anwendungsfall ist die Gruppierung von Eigenschaften auf suchbare Weise. Beispielsweise haben alle physikalischen Objekte eine Dichte, und in vielen Fällen sind dies alle verfügbaren Informationen zu diesem Material. In Fällen, in denen lineare Elastizitätseigenschaften verfügbar sind, möchten wir diese ebenfalls einbeziehen. In einem weiteren Beispiel, bei dem die Elastizität in verschiedenen Richtungen unterschiedlich ist, wie beispielsweise bei Holz, können wir ein weiteres Modell definieren, das von der Dichte abgeleitet ist. Die Informationen werden in den drei Eigenschaftsmodellen nicht dupliziert. Zusätzlich können wir nach Materialien suchen, die die Eigenschaft Dichte aufweisen, und alle drei Modelle zurückgeben.

Das oben gezeigte Beispiel erbt von zwei anderen Eigenschaftsdefinitionen. Dazu wird das Schlüsselwort „Vererbt“ gefolgt von einer Liste der Modellnamen und Kennungen angegeben. Wenn keine Vererbung stattfindet, kann dieser Abschnitt weggelassen werden.

Eigenschaften

Eigenschaften werden durch Angabe des Namens der Eigenschaft gefolgt von einer Reihe von Deskriptoren definiert. Der Deskriptor „Typ“ ist immer erforderlich. Die übrigen Deskriptoren sind nur erforderlich, um die Typinformationen zu vervollständigen. Die URL und die Beschreibung sind optional, werden jedoch nach Möglichkeit empfohlen.

Eigenschafts-Deskriptoren
Name Beschreibung
Type Die Art der Eigenschaft. Siehe nächster Abschnitt.
Columns Spalten in 2D- oder 3D-Arrays. Siehe Beschreibung unten.
Units Die mit dem Mengentyp verbundenen Einheiten.
URL Ein Link zu einer detaillierten Beschreibung der Eigenschaft.
Description Eine kurze Beschreibung der Eigenschaft.

Arten von Eigenschaften

Objekttypen
Typname Beschreibung
String Eine Zeichenkette.
Integer Eine vorzeichenlose Ganzzahl.
Float Eine Gleitkommazahl.
URL Eine URL wie https://www.freecad.org.
Quantity Eine FreeCAD-Quantity, die einen Gleitkommazahl und die für die Eigenschaft geeigneten Einheiten enthält.
Color Eine Zeichenkette in der Form (r,g,b,a) oder (r,g,b), wobei r=Rot, g=Grün, b=Blau, a=Alpha als Fließkommawerte zwischen 0 und 1.
File Pfad zu einer Datei.
FileList Eine Liste von Dateipfaden. Siehe Beschreibung unten.
Image Eingebettete Bilddatei, gespeichert als Base64. Dies kann zu einer sehr großen Materialkartendatei führen.
ImageList Eine Liste der eingebetteten Bilddateien, die als Base64 gespeichert sind. Dies kann zu einer sehr großen Materialkartendatei führen. Siehe Beschreibung unten.
List Eine Liste von Zeichenkettenwerten.
MultiLineString Eine Zeichenfolge, die sich über mehrere Zeilen erstreckt.
2DArray Eine zweidimensionale Anordnung. Siehe Beschreibung unten.
3DArray Eine dreidimensionale Anordnung. Siehe Beschreibung unten.

Listen

Es gibt drei Listentypen: „List“, „FileList“ und „ImageList“. Tatsächlich sind alle drei identisch, außer dass sie unterschiedliche Editoren verwenden. Bei „FileList“ verfügt jeder Eintrag über einen Dateiauswahldialog. Ebenso öffnet „ImageList“ den Bildeditor. „ImageList“ unterscheidet sich dadurch, dass es sich um eine sehr große Zeichenfolgenrepräsentation eines Bildes handelt und extrem große Materialkartendateien erzeugen kann. Mit Vorsicht verwenden.

2D-Anordnungen

Anordnungen haben im Vergleich zu anderen Eigenschaftstypen einige einzigartige Eigenschaften. Jede der Anordnungs-Spalten muss beschrieben werden, was das Hinzufügen der Eigenschaft „Spalten“ erforderlich macht. Die Eigenschaft „Spalten“ ist dann eine Liste von Eigenschaften, die jede Spalte beschreiben.

2D-Anordnungen haben mindestens 2 Spalten und unterstützen nur den Eigenschaftstyp „Menge“. Dies kann in Zukunft auf andere Eigenschaftstypen erweitert werden.

Die Werte in der Anordnung werden durch Angabe eines Werts aus der ersten Spalte festgelegt.

TestArray2D3Column:
  Type: '2DArray'
  Columns:
    Temperature:
      Type: 'Quantity'
      Units: 'C'
      URL: ''
      Description: "Temperature"
    Density:
      Type: 'Quantity'
      Units: 'kg/m^3'
      URL: 'https://en.wikipedia.org/wiki/Density'
      Description: "Density in [FreeCAD Density unit]"
    InitialYieldStress:
      Type: 'Quantity'
      Units: 'kPa'
      URL: ''
      Description: >
        Saturation stress for Voce isotropic hardening [FreeCAD Pressure unit]
  URL: ''
  Description: >
    2 Dimensional array showing density and initial yield stress with temperature

3D-Anordnungen

3D-Anordnungen ähneln in ihrer Implementierung den in den vorherigen Abschnitten beschriebenen 2D-Anordnungen. Es gibt ein Schlüsselwort „Spalten“, gefolgt von einer Liste von Eigenschaften, die die Spalten beschreiben. Die erste Spalte beschreibt die Tiefe oder dritte Dimension der Anordnungen, während die übrigen Spalten die übrigen Spalten beschreiben. Man kann sich dies als eine indizierte Liste von zweidimensionalen Anordnungen vorstellen.

Da ein zweidimensionales Felder mindestens zwei Dimensionen erfordert, sind mindestens drei Spalten erforderlich.

Auf die Werte in der Anordnung wird zugegriffen, indem zuerst die Tiefe und dann der Wert aus der ersten Spalte der 2D-Anordnung (hier die zweite Spalte) angegeben wird.

TestArray3D:
  Type: '3DArray'
  Columns:
    Temperature:
      Type: 'Quantity'
      Units: 'C'
      URL: ''
      Description: "Temperature"
    Stress:
      Type: 'Quantity'
      Units: 'MPa'
      URL: ''
      Description: "Stress"
    Strain:
      Type: 'Quantity'
      Units: 'MPa'
      URL: ''
      Description: "Strain"
  URL: ''
  Description: >
    3 Dimensional array showing stress and strain as
    a function of temperature

Ein Hinweis zu Anordnungen

Dies ist eine neue Funktion, die zuvor nicht verfügbar war. In Zukunft werden möglicherweise viele Funktionen hinzugefügt, die derzeit noch nicht implementiert sind. Beispielsweise sind Felder mit Spalten aus Zeichenfolgen potenziell nützlich, derzeit jedoch noch nicht implementiert.

Interpolation ist eine wichtige Funktion, die derzeit noch nicht implementiert ist. Beispielsweise gibt ein Feld mit Zeileneintragswerten von 1 und 2 nur exakte Übereinstimmungen zurück. Eine Suche nach 1,5 würde also einen Fehler zurückgeben. In Zukunft werden die Felder einen ungefähren Wert durch Interpolation aus den verfügbaren Daten ermitteln.

Material-Datenbank

Da der oben genannte Standard implementiert ist, wäre es nicht sinnvoll, alle Eigenschaften immer wieder in Objekten zu speichern. Grundsätzlich können wir eine Materialdatenbank mit dem Namen als Primärschlüssel aufbauen. Wenn Sie also keine besonderen Anforderungen an Ihr Material haben, definieren Sie einfach z. B. Name=Stahl, und FreeCAD kann alle Eigenschaften aus dieser Datenbank abrufen. Jede zusätzliche Eigenschaft, die Sie in der Zuordnung festlegen, überschreibt diejenige aus der Datenbank.

In Zukunft können wir diese Datenbank irgendwo im Internet hosten und eine allgemeine Open-Source-Materialdatenbank aufbauen.

Im Moment stelle ich mir eine Datenbank vor, die aus einem Mini-Datensatz mit einer Reihe von „grundlegenden” Materialien und deren grundlegenden Eigenschaften sowie einer SQLite-basierten Vollversion besteht.

Material.py

Da die Bearbeitung von Materialeigenschaften eine mühsame Arbeit ist, sollten wir ein Python-Frontend-Modul namens Material.py [Quelle] implementieren. Hier werden alle Arten von Hilfsmethoden für die Materialhandhabung implementiert.

Das Modul sollte so implementiert werden, dass es in FreeCAD oder eigenständig über die Befehlszeile ausgeführt werden kann (die Material-Eigenschafts-Zuordnung muss als Python-Zuordnung angegeben werden).

Das FreeCAD-Materialkarten-Dateiformat

Die Arbeit mit Materialien erfordert häufig das Importieren/Exportieren von Materialdefinitionen. Daher wird ein Dateiformat benötigt. Da wir nur über ein Schlüssel/Wert-Format verfügen, können wir ein einfaches und leicht lesbares Dateiformat zum Lesen und Parsen verwenden. Daher wurde das Format ini-file gewählt. Es ist standardisiert und es gibt bereits Parser dafür. Zum Beispiel das Config-Parser-Modul in Python.

Jede Materialdefinition befindet sich in einer Datei mit der Endung .FCMat. Einige dieser Dateien sind Teil des FreeCAD-Quellcodes und werden in die Binärdatei kompiliert. Dies dient dazu, Aufwand bei der Verteilung und beim Zugriff zu sparen. Außerdem können Dateien an verschiedenen Orten abgelegt und gesucht werden, um zusätzliche nicht standardmäßige Materialdefinitionen zu ermöglichen.

Beispiel einer .FCMat-Datei

; last modified 1 April 2001 by John Doe

Name=Steel_Cast
Father=Steel
Source=Some material book everyone knows (or not); Some comment

[EN10027]
; steel standard EN 10027-1
Name=S235JR+AR

[Graphic]
EmissiveColor = 255,255,255

Materialeigenschaften

Hier findet sich die Beschreibung der vereinbarten Materialeigenschaften. Es können gerne Unterabschnitte für die Materialeigenschaften des Fachgebiets hinzufügt werden.

Allgemein

Allgemeine Materialeigenschaften
Eigenschaftsname Beschreibung Einheit/Datentyp
Name Eindeutiger Name der Eigenschaft gemäß den oben beschriebenen Regeln ASCII-Zeichenkette (7 Bit)
Father Name der Materialgruppe, zu der dieses Material gehört. Wenn definiert, erbt dieses Material alle Eigenschaften des übergeordneten Materials. Wenn nicht definiert, werden daher die Eigenschaften des übergeordneten Materials verwendet ASCII-Zeichenkette (7 Bit)
Description Ein Platzhalter für eine längere Beschreibung des Materials ASCII-Zeichenkette (7 Bit)
SpecificWeight Das spezifische Gewicht (auch als Einheitsgewicht bezeichnet) ist das Gewicht pro Volumeneinheit eines Materials. Siehe: Wichte oder Spezifisches Gewicht N/m^3
Vendor Gibt die Marke oder den Hersteller des Materials an ASCII-Zeichenkette (7 Bit)
ProductURL Eine URL, unter der weitere Informationen zu diesem Material zu finden sind ASCII-Zeichenkette (7 Bit)
SpecificPrice Der Preis pro Einheit dieses Materials. Die Einheiten können stark variieren. (USD/m 3, EUR/Stück, etc.) ASCII-Zeichenkette (7 Bit)

Aufgaben: Einige Eigenschaften mit einem Ordnungssystem für Materialien (Metall, Legierung, Mineral, Holz, ...) hinzufügen.

Mechanisch

Material-Eigenschaften, die im Maschinenbau oder Bauwesen verwendet werden
Eigenschaftsname Beschreibung Einheit/Datentype
Young's Modulus Der Elastizitätsmodul, auch bekannt als Zugmodul oder Elastizitätsmodul, ist ein Maß für die Steifigkeit eines elastischen Materials und eine Größe, die zur Charakterisierung von Materialien verwendet wird. Siehe: Elastizitätsmodul N/(mm^2) (MPa)
Poisson's Ratio Die seitliche Kontraktion von Materialien unter Spannung als Bruchteil ihrer Dehnung. Siehe: Poissonzahl dimensionslos (-)
Yield Strength Die Spannung, bei der ein duktiles Material (wie Stahl) eine plastische (irreversible) Verformung zu entwickeln beginnt. Siehe: Streckgrenze N/(mm^2) (MPa)
Ultimate Tensile Strength (UTS) Die Spannung, bei der das Material bricht. Bei duktilen Werkstoffen kann dies nach einer erheblichen plastischen Verformung geschehen (siehe Streckgrenze). Bei spröden Werkstoffen stimmen Streckgrenze und Zugfestigkeit überein. Siehe: Zugfestigkeit (engl. UTS) N/(mm^2) (MPa)
Yield Points Wird in einem nichtlinearen Materialobjekt der Finite-Elemente-Methode verwendet, um eine duktile einachsige Spannungs-Dehnungs-Kurve eines Materials zu beschreiben. Die Werte werden als (Streckgrenze, plastische Dehnung)-Tupel eingegeben, wobei die erste Kombination (Streckgrenze, 0) und die letzte (Zugfestigkeit, Bruchdehnung) ist. Siehe: YieldPoints (N/(mm^2) (MPa), dimensionslos (-)
Uniaxial Compressive Strength (FCK) Die Druckfestigkeit von Beton, definiert als die Festigkeit eines 150 mm großen Würfels, der 28 Tage lang getestet wurde. Siehe: FCK N/(mm^2) (MPa)
Friction Angle (PHI) Der Winkel der inneren Reibung eines körnigen Materials wie Sand oder Beton, wie er im Mohr-Coulomb-Fließkriterium verwendet wird. Siehe: Schergesetz °
Hardness Ein Maß für die Beständigkeit des Materials gegenüber lokalen plastischen (dauerhaften) Verformungen, die durch Eindrücken (Pressen) oder Kratzen (Abrieb) verursacht werden. Siehe: Härte Keine dedizierten Einheiten in FreeCAD
EN-10027-1 Bei Stahlwerkstoffen ist die Stahlsorte wie in der Europäische Norm No. 10027-1 definiert. Zeichenkette ASCII (7 Bit)

Aufgaben: Weitere für die mechanische Konstruktion erforderliche Eigenschaften hinzufügen.

Graphisch

In diesem Abschnitt werden Materialeigenschaften definiert, die sich auf das Aussehen des Materials beziehen.

Visuell Darstellung
Eigenschaftsname Beschreibung Einheit/Datentyp
AmbientColor Umgebungsfarbe im Coin3D-Farbmodell float,float,float Bereich: 0.0-1.0
DiffuseColor Diffuse Farbe im Coin3D-Farbmodell float,float,float Bereich: 0.0-1.0
SpecularColor Spiegelnde Farbe im Coin3D-Farbmodell float,float,float Bereich: 0.0-1.0
EmissiveColor Emittierende Farbe im Coin3D-Farbmodell float,float,float Bereich: 0.0-1.0
SectionColor Farbe, die angezeigt wird, wenn das Material im Coin3D-Farbmodell geschnitten wird float,float,float Bereich: 0.0-1.0
Shininess Umgebungsfarbe im Coin3D-Farbmodell float Bereich: 0.0-1.0
Transparency Umgebungsfarbe im Coin3D-Farbmodell float Bereich: 0.0-1.0
VertxShader Vertex-Shader-Programm gemäß Definition in GLSL Mehrzeilige ASCII-Zeichenkette (7 Bit)
FragmentShader Fragment-Shader-Programm, gemäß Definition in GLSL Mehrzeilige ASCII-Zeichenkette (7 Bit)

Thermisch

Thermische Eigenschaften
Eigenschaftsname Beschreibung Einheit/Datentype
ThermalConductivity Die Wärmeleitfähigkeit (R- oder Lambda-Koeffizient) gibt die Fähigkeit des Materials zur Wärmeübertragung an. W/(m*K)
ThermalExpansionCoefficient Der Wärmeausdehnungs-Koeffizient beschreibt die Vergrößerung des Materials aufgrund einer Temperaturerhöhung. µm/(m*K)
SpecificHeat Die spezifische Wärmekapazität gibt die Wärmemenge an, die erforderlich ist, um die Temperatur einer Masseneinheit des Materials um eine Einheit zu erhöhen. J/(kg*K)

Architektur und BIM

In der Architektur verwendete Materialeigenschaften
Eigenschaftsname Beschreibung Einheit/Datentype
StandardCodeXXXX Wobei XXXX der Name der Norm ist (zum Beispiel entnommen aus das BlenderBIM-Normen-Verzeichnis). Zum Beispiel, StandardCodeUniclass2. Der Wert ist der spezifische Code dieses Materials in der angegebenen Norm. Diese Eigenschaft kann mehrmals vorkommen, jeweils mit einem anderen Normcode Zeichenkette ASCII (7 Bit)
FireStandard Die für das Material verwendete Brandschutzklasse Zeichenkette ASCII (7 Bit)
FireClass Die Feuerwiderstandsklasse des Materials in der oben genannten Norm Zeichenkette ASCII (7 Bit)
SoundTransmissionClass Die Schallübertragungsklasse dieses Materials Zeichenkette ASCII (7 Bit)
Finish Die Art der Oberflächenbehandlung/Beschichtung dieses Materials Zeichenkette ASCII (7 Bit)
Color Die Farbspezifikation dieses Materials. Dies ist nicht unbedingt die Farbe, die im Ansichtsfenster angezeigt wird, sondern kann beispielsweise der im Katalog des Lieferanten angegebene Farbnamen sein Zeichenkette ASCII (7 Bit)
UnitsArea Die Anzahl der Einheiten dieses Materials, die zum Ausfüllen einer bestimmten Fläche erforderlich sind. Bei Ziegelsteinen beispielsweise 45 Ziegelsteine/m² Einheiten/m^2

Aufgaben