Kilka programów napisanych w APDL. Zachęcam do przejrzenia i wzbogacenia wiedzy na podstawie dokumentacji programu Ansys.
```
! -------------------------------------------------------
! 2026-03-03
! Program z parametryzacją
!--------------------------------------------------------
finish !zamykamy ewentualnie otwarte analizy
/clear !czyścimy parametry, jeśli jakieś są
/prep7 !włączamy preprocesora — podstawowe środowisko tworzenia w Ansysie
! Stworzenie parametru i nadanie mu wartości odbywa się poprzez proste
! przypisanie: parametr = wartość
! Usunięcie parametru odbywa się poprzez zapis: parametr =
prom = 2
dlug = 10
! Tworzymy walec
! cylind,srednica_zewn,srednica_wewn,wspolrzedna_Z_poczatku,wspolrzedna_Z_konca
cylind,prom,0.3*prom,-dlug,sqrt(dlug)
```
---
```
! -------------------------------------------------------
! 2026-03-03
! Program z randomizacją parametru w określonym zakresie
!--------------------------------------------------------
finish !zamykamy ewentualnie otwarte analizy
/clear !czyścimy parametry, jeśli jakieś są
/prep7 !włączamy preprocesora — podstawowe środowisko tworzenia w Ansysie
! Ansys potrafi generować liczby pseudolosowe, ale robi to na podstawie tabel,
! co oznacza, że zawsze robi to tak samo. Poniższe makro omija ten problem.
! generator „liczb losowych”.
*GET,DIM,ACTIVE,0,TIME,WALL
DIM = DIM*3600.
*DIM,DUMMY,ARRAY,DIM
*VFILL,DUMMY(1),RAND.
*DEL,DIM
*DEL,DUMMY
a = rand(5,23) !parametr a zmienny między 5 i 23
b = rand(-12,34) !parametr b zmienny między -12 i 34
c = rand(22,24) !parametr c zmienny między 22 i 24
```
---
```
! -------------------------------------------------------
! 20264-03-03
! Program z pętlą *do generujący białkopodobną strukturę
!--------------------------------------------------------
finish !zamykamy ewentualnie otwarte analizy
/clear !czyścimy parametry, jeśli jakieś są
/prep7 !włączamy preprocesora — podstawowe środowisko tworzenia w Ansysie
! Ansys potrafi generować liczby pseudolosowe, ale robi to na podstawie tabel,
! co oznacza, że zawsze robi to tak samo. Poniższe makro omija ten problem.
! makro na liczby losowe (by Stefan Reh (ANSYS, Inc.)):
*GET,DIM,ACTIVE,0,TIME,WALL
DIM = DIM*3600
*DIM,DUMMY,ARRAY,DIM
*VFILL,DUMMY(1),RAND
*DEL,DIM
*DEL,DUMMY
a = 0
b = 0
c = 0
! Pętla w APDL pozwala na generowanie powtarzalnych struktur
! Pętle można zagnieżdżać.
! *do,licznik,wartPocz,wartKon,skok
*do,pajak,1,1000,1
k,pajak,a,b,c !tworzy punkt o numerze pająk (licznik z pętli) na współrzędnych x=a, y=b, z=c
a = rand(1,3) !tworzy losową zmienną a w zakresie 1 do 3
b = rand(1,3) !tworzy losową zmienną b w zakresie 1 do 3
c = rand(1,3) !tworzy losową zmienną c w zakresie 1 do 3
k,pajak+1e7,a,b,c !tworzy punkt o numerze pająk+10000000 na współrzędnych x=a, y=b, z=c
l,pajak,pajak+1e7 !tworzy linię łączącą oba punkty
*enddo*
```
---
```
! -------------------------------------------------------
! 2024-03-12
! Program generujący scaffold belkowy
!--------------------------------------------------------
finish !zamykamy ewentualnie otwarte analizy
/clear !czyścimy parametry, jeśli jakieś są
/prep7 !włączamy preprocesora — podstawowe środowisko tworzenia w Ansysie
belka=2 !zmienna belka
! k - komenda utworzenia punktu w aktywnym układzie odniesienia
! k, numer_punktu, wsp_X, wsp_Y, wsp_Z
k,1,0,0,0
k,2,belka,0,0
k,3,0,belka,0
k,4,0,0,belka
l,1,2
l,1,3
l,1,4
! xGEN, gdzie zamiast x wstawiamy: k, l, a, v, e, n
! k — keypoints — punkty
! l — lines — linie
! a — areas — powierzchnie
! v — volumes — objętości
! e — elements — elementy
! nn — nodes— węzły
! Komenda służy do tworzenia kopii wybranego typu obiektów
! lgen,10,1,3,1,belka ! Wygenerujemy 9 kopii (10 jest oryginał) naszej struktury
! zbudowanej z belki 1, 2 i 3. Zamiast struktury 1,3,1 (od 1 do 3 co 1) można napisać ALL,
! ponieważ chcemy zaangażować do kopiowania wszystkie linie
lgen,10,all,,,belka
! xPLOT, gdzie x=k,l,a,v,e,n
! np. kplot spowoduje wyświetlanie punktów tworzących model
! gplot - wyswietla wszystko
nummrg,kp !skleja punkty zajmujace te sama pozycje
numcmp,all !kompresuje numeracje, innymi slowy wszystko jest kolejne bez “dziur” w numeracji
```
---
```
! -------------------------------------------------------
! 2024-03-12
! Program generujący kwadrat podejściem bottom-top
!--------------------------------------------------------
finish !zamykamy ewentualnie otwarte analizy
/clear !czyścimy parametry, jeśli jakieś są
/prep7 !włączamy preprocesora — podstawowe środowisko tworzenia w Ansysie
bok=5
k,1,0,0,0
k,2,bok,0,0
k,3,bok,bok,0
k,4,0,bok,0
l,1,2
l,2,3
l,3,4
l,4,1
! l,1:3:1,2:4:1,
al,all !al- stwórz powierzchnię z linii wszystkich
```
---
```
! -------------------------------------------------------
! 2024-03-12
! Program generujący i kopiujący kwadrat
!--------------------------------------------------------
finish !zamykamy ewentualnie otwarte analizy
/clear !czyścimy parametry, jeśli jakieś są
/prep7 !włączamy preprocesora — podstawowe środowisko tworzenia w Ansysie
bok=5
rectng,0,bok,0,bok
agen,2,all,,,,,bok
*do,i,1,4,1
l,i,i+4
*enddo
```
---
```
! -------------------------------------------------------
! 2024-03-12
! Program z pętlą *do generujący białkopodobną strukturę
! jako plik wsadowy — czyli bez wyświetlania
!--------------------------------------------------------
finish !zamykamy ewentualnie otwarte analizy
/clear !czyścimy parametry, jeśli jakieś są
/prep7 !włączamy preprocesora — podstawowe środowisko tworzenia w Ansysie
*do,kotek,1,100000,1 !tak wielka pętla w trybie graficznym robiłaby się bardzo długo
k,kotek,0,0,0
wprota,rand(-45,45),rand(-45,45),rand(-45,45)
wpoffs,rand(2,5),rand(2,5),rand(2,5)
csys,4
k,kotek+1e6,0,0,0
l,kotek,kotek+1e6
*enddo
save,klebek,db
```
---
Podczas uruchomienia Ansysa poprzez Launcher wybieramy sobie rodzaj środowiska symulacji. **Ansys Batch** to środowisko wsadowe - tzn. nie uruchamia się środowisko graficzne, a wszystkie obliczenia realizowane są w tle. Z tego powodu konieczne jest zapisanie wyników czy też uzyskanych parametrów, tabel etc. do plików. Z tego powodu w oknie launchera musimy określić ścieżkę dostępu do folderu z analizą oraz ścieżki dostępu do pliku z zapisaną procedurą (Input File) oraz pliku, w którym zapisane zostaną ewentualne uwagi z działania programu.

---
```
! -------------------------------------------------------
! 2024-03-19
! Program generujący scaffold belkowy
!--------------------------------------------------------
finish !zamykamy ewentualnie otwarte analizy
/clear !czyścimy parametry, jeśli jakieś są
/prep7 !włączamy preprocesora — podstawowe środowisko tworzenia w Ansysie
belka=2
licznik=10
k,1,0,0,0
k,2,belka,0,0
k,3,0,belka,0
k,4,0,0,belka
l,1,2
l,1,3
l,1,4
! xGEN, gdzie zamiast x wstawiamy: k, l, a, v, e, n
! k — keypoints — punkty
! l — lines — linie
! a — areas — powierzchnie
! v — volumes — objętości
! e — elements — elementy
! nn — nodes— węzły
!Komenda służy do tworzenia kopii wybranego typu obiektów
! lgen,10,1,3,1,belka ! Wygenerujemy 9 kopii (10 jest oryginał) naszej struktury
! zbudowanej z belki 1, 2 i 3. Zamiast struktury 1,3,1 (od 1 do 3 co 1) można napisać ALL,
! ponieważ chcemy zaangażować do kopiowania wszystkie linie
lgen,licznik+1,all,,,belka
lgen,licznik+1,all,,,,belka
lgen,licznik+1,all,,,,,belka
! xPLOT, gdzie x=k,l,a,v,e,n
! np. kplot spowoduje wyświetlanie punktów tworzących model
! gplot - wyswietla wszystko
nummrg,kp !skleja punkty zajmujace te sama pozycje
numcmp,all !kompresuje numeracje, innymi slowy wszystko jest kolejne bez “dziur” w numeracji
lsel,s,loc,x,licznik*belka+1e-4,(licznik+1)*belka
lsel,a,loc,y,licznik*belka+1e-4,(licznik+1)*belka
lsel,a,loc,z,licznik*belka+1e-4,(licznik+1)*belka
ldel,all,,,1
allsel
lplo
et,1,189 !deklarujemy element belkowy 3-węzłowy
SECTYPE,1,BEAM,CSOLID,,0
SECOFFSET,CENT
SECDATA,belka/10,0,0,0,0,0,0,0,0,0,0,0
esize,belka/2
lmesh,all
/eshape,1
eplo
/com,-----------------------------------------
/com,teraz obciazymy model
/com,-----------------------------------------
nsel,s,loc,y,0 !selekcjonujemy węzły na spodzie scaffoldu
d,all,all,0 !odbieramy im wszystkie stopnie swobody
nsel,s,loc,y,licznik*belka !selekcjonujemy węzły na górnej powierzchni scaffoldu
! ograniczamy węzły dla współrzędnych x i z
! zostaje nam kwadracik na środku górnej powierzchni
nsel,r,loc,x,0.4*licznik*belka,0.6*licznik*belka
nsel,r,loc,z,0.4*licznik*belka,0.6*licznik*belka
*get,ilwe,node,0,count
f,all,fy,-100/ilwe
/com,-----------------------------------------
/com,teraz zdefiniujemy materiał
/com,stop tytanu
/com,-----------------------------------------
mp,ex,1,105000
mp,nuxy,1,0.3
allsel
/solu
solve
```