Kilka programów napisanych w APDL. Zachęcam do przejrzenia i wzbogacenia wiedzy na podstawie dokumentacji programu Ansys.
`! -------------------------------------------------------`
`! 2024-03-12`
`! 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)`
---
`! -------------------------------------------------------`
`! 2024-03-12`
`! 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`
---
`! -------------------------------------------------------`
`! 2024-03-12`
`! 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`
`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`