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. ![Wybór ścieżek dostępu do folderu analizy oraz pliku procedury](ansys_batch_start.png) --- ``` ! ------------------------------------------------------- ! 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 ```