» Blog » Skryptowanie w ANSYS SpaceClaim Direct Modeler Część 2

Skryptowanie w ANSYS SpaceClaim Direct Modeler Część 2

Edytor skryptów, będący integralną częścią oprogramowania SpaceClaim Design Modeler, okazał się świetnym narzędziem służącym do tworzenia geometrii. Dzięki skryptom możemy na bieżąco poprawiać rysowany model (zmieniać wartości promieni zaokrągleń, edytować szkice itd.). Ponadto, zwykłe nagranie skryptu podczas tworzenia geometrii jest najprostszym i najszybszym sposobem na sparametryzowanie modelu. Operacje te nie wymagają zaawansowanych umiejętności programistycznych. Dzięki prostej składni języka Python użycie edytora skryptów sprowadza się do zidentyfikowania zmiennych, które nas interesują i podmiany ich wartości liczbowych. W tym artykule chciałbym przybliżyć inny problem, przy rozwiązywaniu którego skryptowanie okazało się równie przydatnym narzędziem.

Użycie skryptów w SpaceClaim może zaoszczędzić nam wiele czasu i wysiłku w przypadku żmudnych, powtarzalnych zadań. Natomiast co zrobić kiedy problem nie dotyczy tworzenia geometrii a przypisywania warunków brzegowych? Niektóre procesy m.in. w branży chemicznej lub energetyce polegają na wtrysku substancji za pomocą dysz. Przykładem obiektów realizujących tego typu proces są instalacje zraszania, stosowane w elektrowniach węglowych do odsiarczania spalin. Ich celem jest wtrysk odpowiedniej substancji wiążącej roztwory siarki za pomocą ogromnej ilości dysz do strumienia spalin. Rysunek nr 1 pokazuje z bliska przykładowy, uproszczony model dyszy.

Rys. 1. Przykład uproszczenia modelu

Symulację wtrysku substancji wiążącej roztwory siarki można przeprowadzić za pomocą obliczeń CFD (np. ANSYS Fluent) przy użyciu modelu DPM (Discrete Phase Method). Tutaj pojawia się następujący problem – w celu zdefiniowania warunku brzegowego typu DPM potrzebne są współrzędne punktu, w których następuje wtrysk fazy dyskretnej. W naszym przypadku jedyne czym dysponujemy to okrągłe powierzchnie uproszczonego modelu, wyszczególnione czerwonym kolorem. Na szczęście również i to zadanie możemy w dużej części zautomatyzować korzystając ze skryptu. W pierwszej kolejności musimy stworzyć grupę złożoną z powierzchni, na których mają zostać zdefiniowane punkty DPM. W tym przypadku możemy to zrobić poprzez użycie narzędzia „Power Selection”, które pozwala na zaznaczenie wszystkich powierzchni o tej samej powierzchni czy też powierzchni leżących na tej samej płaszczyźnie. W zależności od potrzeb tworzymy naszą grupę lub grupy a następnie używamy skryptu przedstawionego na rysunku nr 2.

Rys. 2. Skrypt służący do tworzenia punktów DPM


W tym miejscu chciałbym przybliżyć działanie niniejszego skryptu.

  1. Zmienna „groupName” zawiera nazwę grupy, dla której chcemy stworzyć punkty DPM. W moim przykładzie użyłem nazwy „Group1” – jest ona oczywiście dowolna.
  2. Zmienna „faces” jest jednowymiarową tablicą zawierającą powierzchnie wchodzące w skład grupy. Przypisanie wartości odbywa się dzięki metodzie „Selection.CreateByGroups”.
  3. Zmienna „facesNumber” zwraca ilość członków grupy, wartość jest potrzebna w dalszej części skryptu.
  4. Pętla „for” zaczynająca się w linijce nr 7 jest odpowiedzialna za tworzenie punktów. Dla każdego członka grupy „groupName” tworzony jest punkt umieszczony w środku geometrycznym danej powierzchni, a więc we współrzędnych „0, 0” lokalnego układu współrzędnych danej powierzchni.
  5. Zmienna „points” jest jednowymiarową tablicą zawierającą wygenerowane punkty.Tym razem przypisujemy wartości wszystkich punktów w aktywnej części modelu.
  6. Dzięki obiektowi „file” odnosimy się do pliku tekstowego, w którym chcemy umieścić współrzędne punktów. W linijce nr 13 dzięki funkcji „open” otwieramy (lub tworzymy nowy) plik o takiej samej nazwie jak nasza grupa. Domyślnie plik ten znajduje się w tej samej lokalizacji jak nasz skrypt.
  7. Pętla „for” zaczynająca się w linijce nr 15 zwraca współrzędne punktów. Funkcja „print” pokazuje współrzędne punktów w edytorze skryptów. Dzięki funkcji „write” obiektu „file” wpisujemy współrzędne do pliku tekstowego.
  8. Za pomocą funkcji „close” obiektu „file” zapisujemy i zamykamy plik tekstowy.

Rys. 3. Wygenerowany plik tekstowy

Podobny algorytm, klasy czy metody mogą znaleźć inne zastosowanie również w innych przypadkach np. przy definiowaniu punktów masowych. Skrypt generujący punkty DPM pokazuje, że dzięki edytorowi skryptów w środowisku SpaceClaim możemy zaoszczędzić cenne godziny za pomocą kilku linijek kodu. Mam nadzieję, że opisany przypadek pomoże Państwu w rozwiązywaniu pokrewnych problemów. SpaceClaim dostarcza bogatą gamę bibliotek oraz dokumentację, dzięki której skryptowanie jest narzędziem przydatnym również dla programistycznych laików.

Autor: Jakub Poraj