APDL宏文件系列講解(三)
APDL中的變量與其他編程語(yǔ)言一樣,具有全局變量、局部變量和系統(tǒng)變量之分,一般情況下,我們定義的變量為全局變量,也即定義變量后,在刪除變量或者退出ANSYS之前,該變量一直存在于內(nèi)存中,可以隨時(shí)調(diào)用。而局部變量則一般用于宏文件中,其生命周期與宏文件的使用周期相同,當(dāng)宏文件運(yùn)行完畢后,宏文件中的局部變量都會(huì)在內(nèi)存中消失,這里的局部變量包括兩種類(lèi)型:
1、宏文件外部輸入的變量;
2、宏文件內(nèi)部定義的變量
宏文件內(nèi)部定義的變量很好理解,其實(shí)和我們平時(shí)定義變量雷同,只是其使用范圍僅限于宏文件整個(gè)運(yùn)行周期而已。這里重點(diǎn)說(shuō)下宏文件外部輸入的變量。
通過(guò)外部輸入變量,能實(shí)現(xiàn)很多參數(shù)化宏文件的定制,是宏文件使用的高級(jí)技巧,應(yīng)重點(diǎn)掌握。一個(gè)宏命令,可以同時(shí)輸入19個(gè)變量,變量代號(hào)分別是ARG1~ARG2,也即在創(chuàng)建過(guò)程中,如果需要外部輸入?yún)?shù),我們只需要以ARGn 的格式代替就行,變量類(lèi)型包括但不僅限于數(shù)值型變量,使用格式如下:
!創(chuàng)建宏文件
*Create,File_name,mac
!========
………
!以創(chuàng)建矩形為例,定義長(zhǎng)寬為外部輸入的參數(shù)
Blc4,,,ARG1,ARG2
!========
*enddo
!宏文件創(chuàng)建完畢
!===========
!宏文件調(diào)用
File_name,A1,A2
!其中A1、A2分別按順序賦值給ARG1、ARG2
下面以地震反應(yīng)譜分析為例,說(shuō)明創(chuàng)建求解地震反應(yīng)譜的宏文件創(chuàng)作過(guò)程。按《抗規(guī)》第5.1節(jié)相關(guān)內(nèi)容創(chuàng)建,在生成地震反應(yīng)譜的時(shí)候,需要輸入如下幾個(gè)參數(shù):
1)特征周期;2)最大反應(yīng)影響系數(shù);3)阻尼比;4)加速度調(diào)整系數(shù),創(chuàng)建宏文件以N-m單位制為準(zhǔn),如果采用N-mm,則需要乘以1000的系數(shù)。
*Create, EQ_response,mac
!==========
!創(chuàng)建外部參數(shù)
tg=arg1 !設(shè)計(jì)特征周期
refmax=arg2 !地震反應(yīng)影響系數(shù)
kes=arg3 !阻尼比
cha=arg4 !加速度調(diào)整系數(shù)
!=========================
!按《抗規(guī)》5.1.5 求解對(duì)應(yīng)參數(shù)。
gra=9.8*arg4
eta1=0.02+(0.05-kes)/(4+32*kes)
eta2=1+(0.05-kes)/(0.08+1.6*kes)
gama=0.9+(0.05-kes)/(0.3+6*kes)
!求解反應(yīng)譜
*if,eta1,lt,0,then
eta1=0
*endif
*if,eta2,lt,0.55,then
eta2=0.55
*endif
!=================
frenum=20
*dim,TTT,,Frenum
*dim,fres,,frenum
*dim,aces,,frenum
!===================
TTT(1)=0.0
TTT(2)=0.1
*do,i,3,15
TTT(i)=i*tg/3.0
*enddo
Tz=6.0-5*tg
NTD=TZ/tg/5
*do,i,16,frenum
TTT(i)=5*tg+(i-15)*NTD*TG
*enddo
!====================
aces(1)=0.45*refmax*gra
aces(2)=eta2*refmax*gra
aces(3)=aces(2)
*do,i,4,15
aces(i)=(tg/TTT(i))**gama*eta2*refmax*gra
*enddo
*do,i,16,frenum
temp1=eta2*0.2**gama-eta1*(TTT(1)-5*tg)
aces(i)=temp1*refmax*gra
*enddo
!====================
!存儲(chǔ)反應(yīng)譜
fres(frenum)=1e5
*do,i,2,frenum
fres(frenum+1-i)=1/TTT(i)
*enddo
*do,i,1,frenum
TTT(Frenum=1-i)=aces(i)
*enddo
*vfun,aces(1),copy,ttt(1)
!===================
!刪除多余變量
TTT=$eta1=$eta2=$tg=$refmax=$kes=$gama=
gra=$TZ=$NTD=$i=$temp1=$cha=
*enddo
!結(jié)束創(chuàng)建
例:針對(duì)某鋼筋混凝土結(jié)構(gòu),設(shè)防烈度為7度0.1g,場(chǎng)地類(lèi)別為二類(lèi),設(shè)計(jì)分組為第一組,以N-mm單位制建模,則計(jì)算反應(yīng)譜時(shí)輸入格式如下:
!==========
EQ_response,0.35,0.08,0.05,1000
!==========
關(guān)于宏文件的系列講解就到這兒,當(dāng)然這里講的都是最基本的,但萬(wàn)變不離其宗,實(shí)際工程中很多巧妙用法其實(shí)都是源于對(duì)基本概念的理解與提升,作為剛學(xué)習(xí)APDL的人員,把握好基本命令的使用才是提升個(gè)人能力的捷徑。
祝好
2018.11.08
工程師必備
- 項(xiàng)目客服
- 培訓(xùn)客服
- 平臺(tái)客服
TOP




















