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. ![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`