Ta dokumentacja nie jest ukończona. Prosimy o pomoc w tworzeniu dokumentacji.
Strona Model polecenia GUI wyjaśnia jak powinny być dokumentowane polecenia. Przejrzyj stronę Category:UnfinishedDocu, aby zobaczyć więcej niekompletnych stron, takich jak ta. Zobacz stronę Category:Command Reference aby poznać wszystkie komendy.
Zobacz stronę wytycznych Wiki dla FreeCAD aby dowiedzieć się, jak edytować strony Wiki, i przejdź do strony Pomóż w rozwoju FreeCAD, aby dowiedzieć się o innych sposobach, w jakie możesz wnieść swój wkład.
Ta strona dotyczy systemu danych materiałów w programie FreeCAD.
Obecnie jest edytowana, aby odzwierciedlić zmiany w systemie materiałów, który jest w trakcie opracowywania.
W odróżnieniu od poprzednich wersji, materiały nie są już implementowane jako prosty słownik. Poprzedni system miał zaletę prostoty, ale wadą były ograniczone możliwości opisywania właściwości materiałów.
W nowym systemie, właściwości są definiowane oddzielnie jako seria plików YAML. Następnie właściwości są łączone w opis właściwości z wartościami określonymi dla wymaganych właściwości. Nowsze typy danych, takie jak tablice, oznaczają, że nie można już uzyskać do nich dostępu za pomocą prostych słowników. Zamiast tego, do uzyskania dostępu do właściwości materiału i wartości danych używane jest API. Pozwala to na większe możliwości niż było to możliwe wcześniej.
Istnieje kilka dobrych zasobów, które ułatwiają obsługę materiałów:
W przeciwieństwie do poprzedniego standardu materiałów, właściwości materiałów są jasno zdefiniowane. Zostały one zaprojektowane tak, aby były szczegółowe i rozszerzalne. Właściwości mogą dziedziczyć wiele właściwości, dodając tylko te, które się różnią. Poprawi to wyszukiwanie i uprości wdrażanie.
Obecnie nie ma dedykowanego edytora właściwości. Można je edytować za pomocą dowolnego narzędzia YAML lub prostego edytora, takiego jak nano lub Notatnik.
Pliki definiujące właściwości są nazywane modelami.
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]"
Właściwości nie są zawarte w jednym dużym pliku definicji, ale są szczegółowe i zazwyczaj skupiają się na konkretnym zadaniu. Modele dzielą się na dwie podstawowe kategorie:
Każdy model ma unikalny identyfikator, czyli UUID, który służy do wewnętrznego odwoływania się do niego. Spójność tego UUID jest ważna, ponieważ zmiana go dla jednego dokumentu może mieć wpływ również na inne dokumenty. Zasadniczo dodawanie elementów do definicji nie wymaga zmiany identyfikatora, ponieważ mogą one nadal być używane w innych dokumentach, ale zmiana wartości wymagałaby nowego UUID.
Opcjonalny adres URL może zawierać link do szczegółowego opisu właściwości materiału. Biorąc pod uwagę, że jest to opis właściwości, a nie samego materiału, powinien on być w tym momencie dość ogólny. Krótszy opis, zazwyczaj jedno lub dwuwierszowy, może również zostać zawarty w opisie modelu.
Każdy materiał może również zawierać identyfikator DOI (Digital Object Identifier), który poprzez stronę https://www.doi.org/ odsyła do publikacji naukowej lub podobnego interesującego obiektu.
Dziedziczenie to nowa funkcja. Istnieją dwa główne przypadki użycia.
Jednym z przykładów zastosowania jest możliwość modyfikowania modeli bez naruszania innych dokumentów. Na przykład w przypadkach, gdy typ właściwości jest inny, można zdefiniować pochodny model właściwości, który zmienia tylko tę konkretną właściwość bez naruszania istniejących dokumentów, które się do niej odwołują.
Drugim przykładem zastosowania jest grupowanie właściwości w sposób umożliwiający wyszukiwanie. Na przykład wszystkie obiekty fizyczne mają gęstość i w wielu przypadkach będzie to jedyna dostępna informacja na temat danego materiału. W przypadkach, w których dostępne są właściwości elastyczności liniowej, chcielibyśmy również je uwzględnić. W jeszcze innym przykładzie, gdzie elastyczność jest różna w różnych kierunkach, jak w przypadku drewna, możemy zdefiniować kolejny model, który jest pochodną gęstości. Informacje nie są powielane w trzech modelach właściwości. Dodatkowo możemy wyszukać materiały, które mają właściwość gęstości i zwrócić wszystkie trzy modele.
Powyższy przykład dziedziczy po dwóch innych definicjach właściwości. Odbywa się to poprzez określenie słowa kluczowego "Inherits", po którym następuje lista nazw modeli i identyfikatorów. Jeśli nie ma dziedziczenia, sekcja ta może zostać pominięta.
Właściwości definiuje się poprzez podanie nazwy właściwości, po której następuje seria deskryptorów. Deskryptor "Typ" jest zawsze wymagany. Pozostałe deskryptory są wymagane tylko wtedy, gdy są niezbędne do uzupełnienia informacji o typie. Adres URL i opis są opcjonalne, ale zaleca się ich podanie, jeśli to możliwe.
Nazwa | Opis |
---|---|
Typ | Rodzaj właściwości. Zobacz następną sekcję. |
Kolumna | Kolumny w tablicach 2D lub 3D. Zobacz opis poniżej. |
Jednostki | Jednostki powiązane z typem ilości. |
URL | Link do szczegółowego opisu właściwości. |
Opis | Krótki opis właściwości. |
Typ Nazwa | Opis |
---|---|
Ciąg znaków | Ciąg znaków. |
Liczba całkowita | Liczba całkowita bez znaku. |
Liczba zmiennoprzecinkowa | Liczba zmiennoprzecinkowa. |
Adres URL | Adres URL, taki jak https://www.freecad.org. |
Wielkość | Wielkość we FreeCAD, która zawiera wartość w postaci liczby zmiennoprzecinkowej oraz jednostki odpowiednie dla właściwości. |
Kolor | Ciąg znaków w formie (r,g,b,a) lub (r,g,b), gdzie r=czerwony, g=zielony, b=niebieski, a=alfa jako wartości zmiennoprzecinkowe między 0 a 1. |
Plik | Ścieżka do pliku. |
Lista plików | Lista ścieżek plików. Zobacz opis poniżej. |
Obraz | Osadzony plik obrazu zapisany jako Base64. Może to skutkować bardzo dużym plikiem karty materiałowej. |
Lista obrazów | Lista osadzonych plików obrazów zapisanych jako Base64. Może to skutkować bardzo dużym plikiem karty materiałowej. Zobacz opis poniżej. |
Lista | Lista wartości ciągu znaków. |
Wieloliniowy ciąg znaków | Ciąg znaków zajmujący wiele linii. |
Tablica 2D | Dwuwymiarowa tablica. Zobacz opis poniżej. |
Tablica 3D | Trójwymiarowa tablica. Zobacz opis poniżej. |
Istnieją trzy typy list: „List”, „FileList” i „ImageList”. W rzeczywistości, wszystkie trzy są takie same, z tą różnicą, że używają różnych edytorów. W przypadku „FileList” każdy wpis ma selektor pliku. Podobnie, „ImageList” otwiera edytor obrazów. „ImageList” różni się tym, że jest bardzo dużą reprezentacją obrazu w postaci łańcucha tekstowego i może generować wyjątkowo duże pliki kart materiałowych. Używaj ostrożnie.
Tablice mają pewne unikalne cechy w porównaniu z innymi typami właściwości. Każda kolumna tablicy musi być opisana, co oznacza konieczność dodania właściwości 'Columns'. Ta właściwość jest wtedy listą właściwości opisujących każdą kolumnę.
Tablice 2D mają minimum 2 kolumny i wspierają tylko typ właściwości 'Quantity'. W przyszłości można to rozbudować o inne typy właściwości.
Wartości w tablicy są określone poprzez podanie wartości z pierwszej kolumny.
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
Tablice 3D są podobne w implementacji do tablic 2D opisanych w poprzednich sekcjach. Występuje słowo kluczowe 'Columns', po którym znajduje się lista właściwości opisujących kolumny. Pierwsza kolumna opisuje głębokość, czyli trzeci wymiar tablicy, a pozostałe kolumny opisują kolejne kolumny. Można to traktować jako indeksowaną listę tablic dwuwymiarowych.
Ponieważ dwuwymiarowa tablica wymaga co najmniej 2 wymiarów, potrzeba minimum 3 kolumn.
Dostęp do wartości w tablicy uzyskuje się podając najpierw głębokość a następnie wartość z pierwszej kolumny tablicy 2D (druga kolumna tutaj).
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
To są nowe rozwiązania, niedostępne dotychczas. W przyszłości może zostać dodanych wiele możliwości, które obecnie nie są zaimplementowane. Przykładowo, tablice z kolumnami ciągów znaków są potencjalnie przydatne, ale niezaimplementowane obecnie.
Interpolacja jest ważną funkcją, która obecnie nie jest zaimplementowana. Na przykład tablica z wartościami wierszy równymi 1 i 2 zwróci tylko dokładne dopasowania. Zatem wyszukiwanie wartości 1,5 spowoduje błąd. W przyszłości, tablice będą określały wartość przybliżoną poprzez interpolację dostępnych danych.
Biorąc pod uwagę, że powyższy standard jest zaimplementowany, bezsensowne byłoby przechowywanie wszystkich właściwości w obiektach wielokrotnie. Zasadniczo, można zbudować bazę danych materiałów z nazwą jako kluczem głównym. Dzięki temu, jeśli nie masz żadnych specjalnych wymagań dotyczących materiału, wystarczy zdefiniować np. Name=Steel, a FreeCAD pobierze wszystkie właściwości z tej bazy danych. Każda dodatkowa właściwość ustawiona w mapie zastępuje tę z bazy danych.
W przyszłości, możemy przechowywać taką bazę danych gdzieś w sieci i zbudować ogólną otwarto-źródłową bazę danych materiałów.
Aktualnie, myślę o bazie danych zbudowanej w mini zestawie danych zawierającym zestaw "podstawowych" materiałów i ich podstawowe właściwości oraz o pełnej wersji opartej na SQLite.
Ponieważ obsługa właściwości materiałów jest żmudnym zadaniem, powinniśmy zaimplementować moduł front-end w Pythonie o nazwie Material.py [source]. Będzie to miejsce, w którym zostaną zaimplementowane wszelkiego rodzaju metody pomocnicze do obsługi materiałów.
Ten moduł powinien być zaimplementowany w taki sposób, aby mógł działać zarówno we FreeCAD, jak i samodzielnie z linii poleceń (mapa właściwości materiału musi być podana jako mapa Pythona).
Praca z materiałami często wymaga importowania i eksportowania definicji materiałów. Dlatego potrzebny jest format pliku. Ponieważ mamy jedynie formę klucz/wartość, możemy użyć prostego, łatwego do odczytania i przetwarzania formatu pliku. W związku z tym, wybrano format ini-file. Jest on ustandaryzowany i istnieją już dostępne parsery. Przykładowo moduł Config parser w Pythonie.
Każda definicja materiału znajduje się w pliku z rozszerzeniem .FCMat. Niektóre z tych plików są częścią źródeł FreeCAD i są kompilowane do pliku binarnego. Ma to na celu zmniejszenie narzutu przy dystrybucji i dostępie. Pliki mogą być jednak również umieszczane i wyszukiwane w różnych lokalizacjach, aby umożliwić dodawanie niestandardowych definicji materiałów.
; 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
Poniżej znajduje się opis uzgodnionych właściwości materiałów. Zachęcam do dodania podsekcji dotyczącej właściwości materiałowych z Twojej dziedziny specjalizacji.
Nazwa właściwości | Opis | Jednostka/Typ danych |
---|---|---|
Nazwa | Unikalna nazwa właściwości, zgodnie z zasadami opisanymi powyżej | ciąg ASCII 7-bitowy |
Materiał nadrzędny | Nazwa grupy materiałowej, do której należy ten materiał. Jeśli zdefiniowane, ten materiał dziedziczy wszystkie właściwości materiału nadrzędnego. Zatem jeśli nie są zdefiniowane inne właściwości, używane będą właściwości materiału nadrzędnego. | ciąg ASCII 7-bitowy |
Opis | Miejsce na dłuższy opis materiału | ciąg ASCII 7-bitowy |
Ciężar właściwy | Ciężar właściwy (jednostkowy) to ciężar na jednostkę objętości materiału. Zobacz stronę: Ciężar właściwy | N/m^3 |
Dostawca | Określa markę lub dostawcę materiału | ciąg ASCII 7-bitowy |
URL produktu | Adres URL, pod którym można znaleźć więcej informacji o materiale | ciąg ASCII 7-bitowy |
Cena jednostkowa | Cena na jednostkę tego materiału. Jednostki mogą być bardzo różne (USD/m, EUR/sztukę, itd.) | ciąg ASCII 7-bitowy |
Do zrobienia: dodać właściwości z systemem klasyfikacji materiałów (metal, stop, minerał, drewno, ...)
Nazwa właściwości | Opis | Jednostka/Typ danych |
---|---|---|
Moduł Younga | Moduł Younga, nazywany również modułem na rozciąganie lub modułem sprężystości, jest miarą sztywności materiału sprężystego i wielkością używaną do charakteryzowania materiałów. Zobacz stronę: Moduł Younga | N/(mm^2) (MPa) |
Współczynnik Poissona | Opisuje zwężenie materiału pod wpływem rozciągania jako ułamek jego wydłużenia. Zobacz stronę: Współczynnik Poissona | bezwymiarowy (-) |
Granica plastyczności | Naprężenia, przy których w materiale ciągliwym (jak stal) zaczynają powstawać odkształcenia plastyczne (nieodrwacalne). Zobacz stronę: Granica plastyczności | N/(mm^2) (MPa) |
Wytrzymałość na rozciąganie | Poziom naprężeń, przy którym materiał ulega zerwaniu. Dla materiałów ciągliwych, może to być po doświadczeniu znacznych odkształceń plastycznych (zobacz Granicę plastyczności). Dla materiałów kruchych, granica plastyczności pokrywa się z wytrzymałością na rozciąganie. Zobacz stronę: Wytrzymałość na rozciąganie | N/(mm^2) (MPa) |
Punkty z krzywej plastyczności | Używane w obiekcie nieliniowego materiału w MES do opisu krzywej naprężenie-odkształcenie z jednoosiowego rozciągania materiału ciągliwego. Wartości są wprowadzane jako pary (naprężenie, odkształcenie plastyczne), gdzie pierwsza kombinacja to (granica plastyczności, 0) a ostatnia (wytrzymałość na rozciąganie, odkształcenie przy zerwaniu). Zobacz stronę: Krzywa naprężenia | (N'*mm^-2 (MPa), bezwymiarowe (-) |
Wytrzymałość na ściskanie osiowe | Wytrzymałość na ściskanie betonu, definiowana jako wytrzymałość kostki o wymiarach 150 mm testowanej przez 28 dni. Zobacz stronę: FCK | N/(mm^2) (MPa) |
Kąt tarcia | Kąt tarcia wewnętrznego materiału of a granular materiału ziarnistego, takiego jak piasek lub beton, używany w kryterium uplastycznienia Mohra-Coulomba. Zobacz stronę PHI | ° |
Twardość | Miara odporności materiału na zlokalizowane odkształcenia plastyczne (trwałe) spowodowane wciskaniem wgłębnika lub ścieraniem. Zobacz stronę Twardość | brak dedykowanych jednostek we FreeCAD |
EN-10027-1 | W przypadku stali, gatunek stali zgodnie z definicją w standardzie europejskim nr 10027-1. | ciąg ASCII 7-bitowy |
Do zrobienia: dodać kolejne właściwości mechaniczne stosowane w projektowaniu.
Ta sekcja definiuje właściwości materiałów związane z wizualną reprezentacją materiału.
Nazwa właściwości | Opis | Jednostka/Typ danych |
---|---|---|
Kolor otoczenia | Kolor otoczenia w modelu kolorów Coin3D | float,float,float zakres: 0.0-1.0 |
Kolor rozproszenia | Kolor rozproszenia w modelu kolorów Coin3D | float,float,float zakres: 0.0-1.0 |
Kolor odbicia | Kolor odbicia w modelu kolorów Coin3D | float,float,float zakres: 0.0-1.0 |
Kolor emisji | Kolor emisji w modelu kolorów Coin3D | float,float,float zakres: 0.0-1.0 |
Kolor przekroju | Kolor pokazywany, gdy materiał jest przecinany w modelu kolorów Coin3D | float,float,float zakres: 0.0-1.0 |
Stopień połysku | Kolor otoczenia w modelu kolorów Coin3D | float zakres: 0.0-1.0 |
Przezroczystość | Kolor otoczenia w modelu kolorów Coin3D | float zakres: 0.0-1.0 |
Cieniowanie wierzchołkowe | Program cieniowania wierzchołkowego, zgodnie z definicją w GlSl | wieloliniowy ciąg znaków ASCII 7-bitowy |
Cieniowanie pikseli | Program cieniowania pikseli, zgodnie z definicją w GlSl | wieloliniowy ciąg znaków ASCII 7-bitowy |
Nazwa właściwości | Opis | Jednostka/Typ danych |
---|---|---|
Przewodność cieplna | Przewodność cieplna (współczynnik R lub lambda) wskazująca zdolność materiału do przekazywania ciepła | W/(m*K) |
Współczynnik rozszerzalności cieplnej | Współczynnik rozszerzalności cieplnej opisujący wzrost wymiarów materiału na skutek wzrostu temperatury. | µm/(m*K) |
Ciepło właściwe | Ciepło właściwe wskazujące ilość ciepła potrzebnego do zwiększenie temperatury jednostki masy materiału o jeden stopień. | J/(kg*K) |
Nazwa właściwości | Opis | Jednostka/Typ danych |
---|---|---|
Kod standardu XXXX | Gdzie XXXX jest nazwą standardu (np. pochodzącą z repozytorium standardów BlenderBIM). Przykładowo, StandardCodeUniclass2. Wartość jest unikalnym kodem tego materiału w danym standardzie. Ta właściwość może się pojawiać kilka razy, z różnymi kodami standardów | ciąg znaków ASCII 7-bitowy |
Standard ochrony pożarowej | Standard ochrony pożarowej materiału | ciąg znaków ASCII 7-bitowy |
Klasa ochrony pożarowej | Klasa odporności ogniowej materiału w powyższym standardzie | ciąg znaków ASCII 7-bitowy |
Klasa transmisji dźwięku | Klasa transmisji dźwięku tego materiału | ciąg znaków ASCII 7-bitowy |
Wykończenie | Typ wykończenia/pokrycia tego materiału | ciąg znaków ASCII 7-bitowy |
Kolor | Specyfikacja koloru tego materiału. Nie musi to być kolor wyświetlany w widoku 3D, ale może to być np. nazwa koloru podana w katalogu dostawcy | ciąg znaków ASCII 7-bitowy |
Jednostki na powierzchnię | Liczba jednostek tego materiału potrzebnych do pokrycia określonej powierzchni. Przykładowo, dla cegieł, 45 cegieł/m² | jednostki/m^2 |
Wiązania