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è)人能力的捷徑。

   

祝好

ANSYS結(jié)構(gòu)

2018.11.08

登錄后免費(fèi)查看全文
立即登錄
App下載
技術(shù)鄰APP
工程師必備
  • 項(xiàng)目客服
  • 培訓(xùn)客服
  • 平臺(tái)客服

TOP

2