» Blog » Mechanika » Konfiguracja wyświetlania wyników z wykorzystaniem języka Python

Konfiguracja wyświetlania wyników z wykorzystaniem języka Python

Poniższy artykuł przedstawia sposób wyświetlania wyników, skalowania deformacji oraz innych opcji grupy „Display” zakładki „Result”.

API ANSYS Mechanical wprowadzone od wersji 2019R2 pozwoliło na automatyzację dużej części funkcjonalności programu wykorzystując język Python (a dokładnie jego implementację w .NET, czyli IronPython). Brakujące funkcjonalności są dodawane do API w każdej wersji, lecz nie zawsze przy odpowiedniej „promocji” np. w oknie „What’s new”. Dodatkowo należy mieć świadomość, że implementacja funkcjonalności w obrębie API nie oznacza implementacji w ramach popularnego u samouków nagrywania.

W ramach poniższego wpisu, chciałbym się podzielić bardzo przydatnym obiektem, umożliwiającym konfigurację wyświetlania wyników naszej analizy. Niestety, nazewnictwo w obrębie API nie zawsze pokrywa się z nazewnictwem UI co, u mniej dociekliwych, może prowadzić do błędnego założenia o braku implementacji/dostępności.

Obiekt umożliwiający konfigurację sposobu wyświetlania wyników nazywa się „ResultPreference” i jest dostępny z poziomu ExtAPI:

ExtAPI.Graphics.ViewOptions.ResultPreference

Jak widzimy, ścieżka dostępu nie zawiera słowa „Display”. Z poziomu obiektu uzyskujemy dostęp do następujących własności:

Geometry View – pozwala – między innymi – na ukrycie wyników poza zdefiniowanymi wartościami.

Wartości ustawiamy przy pomocy odpowiedniego obiektu Enum (lista dostępnych wartości dla danej własności obiektu)

rp = ExtAPI.Graphics.ViewOptions.ResultPreference
rp.GeometryView = MechanicalEnums.Graphics.GeometryView.CappedIsosurface

CappingType – dla GeometryView ustawionego na CappedIsosurface, definiuje sposób wyświetlania w relacji do wartości granicznej.

IsoSurfaceValue – pozwala zdefiniować wartość graniczną. Należy zauważyć, że własność nie przyjmuje wartości jako liczby całkowitej lub zmiennoprzecinkowej, a jako obiekt Quantity definiowany w oparciu o ciąg znaków alfanumerycznych (string).

rp.GeometryView = MechanicalEnums.Graphics.CappingType.Bottom
rp.IsoSurfaceValue = Quantity(’3 [mm]’)

ContourView – pozwala na zmianę sposobu wyświetlania mapy konturowej

rp.ContourView = MechanicalEnums.Graphics.ContourView.ContourBands

ExtraModelDisplay – pozwala na zmianę opcji Edges

rp.ExtraModelDisplay = MechanicalEnums.Graphics.ExtraModelDisplay.ShowElements

DeformationScaling, DeformationScaleMultiplier – zmiana mnożnika deformacji za pomocą wartości (integer, float) lub wartości własności (Enum)

rp.DeformationScaling = MechanicalEnums.Graphics.DeformationScaling.True
rp.DeformationScaleMultiplier = 50

ScopingDisplay – zmiana wyświetlania w relacji do wybranych obiektów geometrii (scoping)

rp.ScopingDisplay = MechanicalEnums.Graphics.ScopingDisplay.ResultOnly

ShowMaximum, ShowMinimum – ustawienie wyświetlania etykiety dla pozycji maksimów. Wartości ustawiamy za pomocą typu boolean (True/False)

rp.ShowMaximum = True
rp.ShowMinimum = False

W kolejnym wpisie postaram się przybliżyć subtelności systemu podpowiedzi okna skryptowania oraz ideę list Enum wykorzystywanych do definiowania własności obiektów.

Autor: Bartosz Płochocki, MESco sp. z o.o.