Jump to content

Środowisko pracy Materiał

From FreeCAD Documentation
This page is a translated version of the page Material Workbench and the translation is 100% complete.
Ikona środowiska pracy Materiał

Wprowadzenie

dostępne w wersji 1.0

Środowisko pracy Materiał obsługuje system materiałów w programie FreeCAD.

Narzędzia

  • Edycja: Otwiera Edytor materiałów.

Powiązane narzędzia

Chociaż nie są zapewniane przez środowisko pracy Materiał, te narzędzia powiązane z systemem obsługi materiałów są zawarte w rdzeniu programu FreeCAD i można z nich korzystać bez ładowania tego środowiska:

  • Materiał: Przypisuje materiał do wybranych obiektów.
  • Wygląd zewnętrzny: Ustawia właściwości wyświetlania wybranych obiektów. Często używane po zastosowaniu materiały, gdy dany materiał nie definiuje właściwości wyglądu.

Preferencje

  • Preferencje: preferencje dla środowiska pracy Materiał.

Praca z materiałami

Ten przewodnik wyjaśnia główne koncepcje i podejścia korzystania z systemu materiałów we FreeCAD. Omawia różne narzędzia, właściwości i kluczowe szczegóły techniczne zarówno do użycia interaktywnego jak i ze skryptami.

Narzędzia do obsługi materiałów

Edytor materiałów

  • Użycie: Naciśnij przycisk Edycja w środowisku pracy Materiał.
  • Cel: Edytor materiałów jest narzędziem do definiowania i zarządzania materiałami. Jego jedyne funkcje to tworzenie nowych materiałów, edycja właściwości istniejących materiałów i organizacja materiałów.
  • Zachowanie:
    • Nie jest związany z modelem 3D; wybranie obiektu w dokumencie nie ma wpływu na edytor.
    • Nie możesz przypisać materiału do obiektu z poziomu tego okna. Kliknięcie OK tylko zamyka edytor.

Selektor materiału

  • Użycie: Wybierz jeden lub więcej obiektów w Widoku 3D lub Widoku drzewa, a następnie wybierz opcję Materiał z menu kontekstowego.
  • Cel: To narzędzie jest używane do przypisania materiału do obiektów.
  • Zachowanie:
    • Otwiera panel zadań zawierający drzewo przeglądarki materiałów.
    • Przycisk Uruchom edytor uruchamia Edytor materiałów do edycji lub tworzenia materiału.
    • Wybranie materiału w drzewie przeglądarki materiałów natychmiast przypisuje jego właściwości do wybranych obiektów. Jest to krok wymagany do powiązania fizycznych danych materiału z częścią.

Właściwości fizyczne a wizualne

Materiał we FreeCAD jest definiowany przez dwa różne zestawy właściwości:

  • Właściwości fizyczne: Te definiują inżynierskie charakterystyki materiału, które są używane do obliczeń i symulacji (np. w środowisku pracy MES). Przykłady to Gęstość, Moduł Younga oraz Współczynnik Poissona.
  • Właściwości wizualne: Te definiują wygląd materiału dla celów renderowania. Przykłady to Kolor rozproszenia, Stopień połysku oraz Przezroczystość.

Materiał nie musi mieć obu typów właściwości. Niektóre materiały mogą być zdefiniowane tylko do analizy (z samymi właściwościami fizycznymi), podczas gdy inne mogą być zdefiniowane tylko dla wizualizacji (z samymi właściwościami wizualnymi).

Nadpisanie wyglądu materiału

Finalny wygląd obiektu jest określany przez hierarchię. Wizualne właściwości ustawione w materiale mogą być nadpisane przez lokalne ustawienia samego obiektu.

  • Jak nadpisać: Wybierz opcję Wygląd zewnętrzny z menu kontekstowego Widoku drzewa lub Widoku 3D obiektu. Wszelkie zmiany na tym poziomie będą Wszelkie zmiany wprowadzone w tym miejscu będą miały pierwszeństwo przed właściwościami wyglądu przypisanego materiału.
    • Zastrzeżenia: Może to być źródłem wątpliwości. Jeśli przypisałeś materiał do obiektu, ale jego kolor się nie zmienia, prawdopodobnie wynika to z lokalnego nadpisania wyglądu obiektu. W interfejsie użytkownika nie ma wyraźnego wskaźnika wizualnego informującego o aktywnym nadpisaniu.
  • Jak cofnąć nadpisanie: Aby przywrócić wygląd materiału, możesz ponownie użyć narzędzia Wygląd zewnętrzny i ponownie wskazać materiał, który ma mieć nadane swoje właściwości wyglądu zewnętrznego.

Właściwości

Kiedy przypisujesz materiał, FreeCAD łączy dane z obiektem i jego dostawcą widoku za pomocą dwóch właściwości.

  • DANEMateriał kształtu: Jest to najważniejsza właściwość. Jest dodawana do obiektu Document Object. Zawiera łącze do pełnego obiektu Materials::Material, dając dostęp do wszystkich danych fizycznych i wyglądu obiektu do celów obliczeń i skryptów. Jest to właściwość ukryta.
  • WIDOKWygląd kształtu: Ta właściwość istnieje w View Provider obiektu. Jest to lista, która kontroluje ostateczne renderowanie obiektu w widoku 3D i jest modyfikowana podczas korzystania z panelu zadań Wygląd zewnętrzny.

Wyrażenia

Dostęp do wartości właściwości materiałów można uzyskać za pomocą wyrażeń, co jest szczególnie przydatne w środowisku pracy Arkusz kalkulacyjny. Aby uzyskać użyteczną wartość liczbową zamiast ciągu tekstowego, należy użyć słownika PropertyObjects.

  • Nieprawidłowa metoda (zwraca tekst): Użycie słownika PhysicalProperties zwraca ciąg znaków z jednostkami, którego nie można użyć w kolejnych formułach.
=<<MyBody>>.ShapeMaterial.PhysicalProperties[<<Density>>]
→ Zwraca "7850 kg/m^3"
  • Prawidłowa metoda (zwraca wartość Quantity): Korzystając ze słownika PropertyObjects i uzyskując dostęp do jego atrybutu Value, zwracana jest pełna wartość obiektu Quantity, którą można bezpośrednio wykorzystać w obliczeniach.
=<<MyBody>>.ShapeMaterial.PropertyObjects[<<Density>>].Value
→ Zwraca obiekt Quantity, który arkusz kalkulacyjny może wykorzystać numerycznie.
Jeśli ta wartość znajduje się w komórce A1 arkusza kalkulacyjnego, można wpisać formułę w komórce A2 w postaci = A1 * 10, która będzie działać poprawnie.

Tworzenie skryptów

Właściwości materiałów można pobierać i ustawiać za pomocą skryptów w języku Python. Podstawowe metody to .getPhysicalValue() i .setPhysicalValue().

import FreeCAD
import FreeCADGui

# Get a reference to your object (e.g., a PartDesign Body)
obj = App.ActiveDocument.getObject("Body")

# --- Check for and get a property ---
if obj.ShapeMaterial.hasPhysicalProperty("Density"):
    
    # Get the value. This returns a FreeCAD.Quantity object.
    density_quantity = obj.ShapeMaterial.getPhysicalValue("Density")
    
    print(f"The material is: {obj.ShapeMaterial.Name}")
    print(f"The density is: {density_quantity}")
    print(f"Numerical value: {density_quantity.Value}")

else:
    print("The selected material does not have a 'Density' property.")


# --- Set a property ---
# The value can be a string with units or a FreeCAD.Quantity object.
try:
    obj.ShapeMaterial.setPhysicalValue("Density", "8000 kg/m^3")
    App.ActiveDocument.recompute()
    print("Density successfully updated.")

except Exception as e:
    print(f"Failed to set property: {e}")