APDL參數(shù)化語言編程和APP測試流程表_第1頁
APDL參數(shù)化語言編程和APP測試流程表_第2頁
APDL參數(shù)化語言編程和APP測試流程表_第3頁
APDL參數(shù)化語言編程和APP測試流程表_第4頁
APDL參數(shù)化語言編程和APP測試流程表_第5頁
已閱讀5頁,還剩125頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)

文檔簡介

目錄TOC\o"1-4"第一章APDL是什么? 1第二章在工具條上添加命令 22.1修改工具條 22.2嵌套工具條縮寫 4第三章使用參數(shù) 53.1參數(shù) 53.2參數(shù)命名規(guī)則 53.2.1從*STATUS命令中隱藏參數(shù) 63.3定義參數(shù) 63.3.1在運行過程中給參數(shù)賦值 63.3.2在啟動時給參數(shù)賦值 63.3.3賦ANSYS提供的值給參數(shù) GET命令的用法 內(nèi)嵌獲取函數(shù)的用法 83.3.4排列顯示參數(shù) 103.4刪除參數(shù) 113.5字符參數(shù)的用法 113.6數(shù)字參數(shù)值的置換 123.6.1防止置換 123.6.2字符參數(shù)值的置換 強(qiáng)制置換 字符參數(shù)有效的其它地方 字符參數(shù)的限制 143.7數(shù)字或字符參數(shù)的動態(tài)置換 143.8參數(shù)公式 143.9帶參數(shù)的函數(shù) 153.10保存、恢復(fù)、寫參數(shù) 163.11數(shù)組參數(shù) 173.11.1數(shù)組的基礎(chǔ)知識 173.11.2數(shù)組參數(shù)示例 183.11.3TABLE類型數(shù)組參數(shù) 183.11.4定義和列表顯示數(shù)組參數(shù) 193.11.5給數(shù)組元素賦值 給單獨的數(shù)組元素賦值 填充數(shù)組向量 交互式編輯數(shù)組 使用*VREAD命令用數(shù)據(jù)文件填充數(shù)組 使用*TREAD命令用數(shù)據(jù)文件填充TABLE類型數(shù)組 233.11.6插入值 2把獲取值存入數(shù)組參數(shù)或恢復(fù)數(shù)組參數(shù)值 2列出數(shù)組參數(shù) 273.11.7寫數(shù)據(jù)文件 2數(shù)據(jù)格式描述符 293.11.8對數(shù)組參數(shù)的運算 30對向量的運算 30矩陣運算 3用于向量和矩陣運算的命令 343.11.9用圖形表示數(shù)組參數(shù)向量 37第四章作為宏語言的APDL 404.1什么是APDL宏 404.2產(chǎn)生宏 404.2.1宏文件命名規(guī)則 404.2.2宏的搜索路徑 414.2.3在ANSYS中生成宏 4使用*CREATE 4使用*CFWRITE 4使用UtilityMenu>Macro>CreateMacro 434.2.4用文本編輯器生成宏 434.2.5使用宏庫文件 444.3運行宏和宏庫文件 444.4局部變量 454.4.1傳遞變量到宏 454.4.2宏內(nèi)的局部變量 464.4.3宏外部的局部變量 464.5在APDL中控制程序流 464.5.1宏嵌套:在宏內(nèi)調(diào)用子程序 464.5.2無條件分支:Goto 474.5.3條件分支:*IF命令 474.5.4重復(fù)一個命令 494.5.5循環(huán):Do循環(huán) 494.6控制函數(shù)快速參考 494.7在宏中使用_STATUS和_RETURN參數(shù) 504.8在組和組件中使用宏 524.9復(fù)習(xí)宏例子 52第五章GUI用戶界面 565.1提示用戶輸入某個參數(shù)的值 565.2用戶提示對話框 575.3用宏顯示消息 585.4在宏中生成并維護(hù)狀態(tài)條 595.5在宏中進(jìn)行拾取操作 605.6在宏中調(diào)用對話框 61第六章加密宏 626.1準(zhǔn)備加密宏 626.2生成加密宏 626.3運行加密宏 63第一章APDL是什么?APDL即ANSYS參數(shù)化設(shè)計語言(ANSYSParametricDesignLanguage),它是一種解釋性語言,可用來自動完成一些通用性強(qiáng)的任務(wù),也可以用于根據(jù)參數(shù)來建立模型。APDL還包括其它許多特性,諸如重復(fù)執(zhí)行某條命令,宏,if-then-else分支,do循環(huán),標(biāo)量、向量及矩陣操作等。APDL不僅是設(shè)計優(yōu)化和自適應(yīng)網(wǎng)格劃分等經(jīng)典特性的實現(xiàn)基礎(chǔ),而且它也為日常分析提供了很多便利。本指南介紹了APDL的基本特性-參數(shù),宏,分支,循環(huán),重復(fù)和參數(shù)數(shù)組,并包含有一些簡單的例子。一旦你很好地掌握了這種語言,你將會發(fā)現(xiàn)APDL無所不能。

第二章在工具條上添加命令可以隨時利用ANSYS函數(shù)和宏往工具條上添加命令(在4 .1部分講述如何生成宏)。通過定義縮寫來達(dá)到這一目的??s寫就是ANSYS命令、GUI函數(shù)名或宏名的化名(最多可包含8個字符)。例如,MATPROP可以是一個列出材料特性的宏的縮寫,SAVE_DB是SAVE命令的縮寫,QUIT是函數(shù)Fnc_/EXIT(調(diào)出"ExitfromANSYS"對話框)的縮寫。ANSYS程序提供了兩種途徑來利用縮寫:1.在命令行的起始處鍵入縮寫(執(zhí)行縮寫代表的宏、命令等)。2.通過ANSYSGUI中工具條上的按鈕來執(zhí)行宏或命令。下圖中的工具條包含代表已存在縮寫的按鈕。圖2-1顯示缺省按鈕的工具條一旦縮寫,如SAVE_DB,已預(yù)先被定義,那么在工具條中該縮寫及其執(zhí)行的功能就可用了。一個工具條最多可包含100個縮寫(可嵌套工具條來擴(kuò)展這一數(shù)目)??梢愿鶕?jù)需要重新定義或刪除縮寫,但是縮寫不能自動保存,必須明確地保存到一個文件中,并且每次執(zhí)行ANSYS任務(wù)時都要重新加載。2.1修改工具條生成縮寫的途徑有:通過*ABBR命令;通過UtilityMenu>Macro>EditAbbreviations或UtilityMenu>MenuCtrls>EditToolbar菜單項。最好通過菜單項生成縮寫,原因是:單擊OK按鈕就自動更新工具條(若用*ABBR命令,則還需要用UtilityMenu>MenuCtrls>UpdateToolbar菜單項來使新的縮寫顯現(xiàn)在工具條上)。可以很方便地按需要編輯縮寫。*ABBR命令的語法及相應(yīng)的對話框是:*ABBR,Abbr,String其中:Abbr表示將要顯示在工具條上的縮寫名,最多可包含8個字符。String為Abbr所代表的宏或命令的名稱。如果String是一個宏的名稱,該宏必須在宏的搜索路徑之中。有關(guān)宏的更多信息在4.1部分。如果String涉及到ANSYS的拾取菜單或?qū)υ捒颍ㄍㄟ^UIDL),就需要指定為"Fnc_string"。例如,在定義上圖"QUIT,""POWRGRPH,"和"ANSYSWEB"縮寫中,"Fnc_/QUIT,""Fnc_/GRAPHICS,"和"Fnc_HomePage"都是唯一的UIDL函數(shù)名,用來確定與QUIT,POWRGRPH,和ANSYSWEB縮寫對應(yīng)的ANSYS的拾取菜單或?qū)υ捒?。有關(guān)UIDL的更多信息在5.6部分。String最多可包含60個字符,但不能含有以下字符:字符"$",命令C***,/COM,/GOPR,/NOPR,/QUIT,/UI,或*END。缺省的ANSYS工具條包含如下預(yù)定義的縮寫:*ABBR,SAVE_DB,SAVE*ABBR,RESUM_DB,RESUME*ABBR,QUIT,Fnc_/EXIT*ABBR,POWRGRPH,Fnc_/GRAPHICS*ABBR,ANSYSWEB,Fnc_HomePage例如,要加一個按鈕到工具條中來調(diào)用宏文件mymacro.mac,如下圖所示在UtilityMenu>MenuCtrls>EditToolbar對話框中輸入值。圖2-2加新縮寫新按鈕被添加到如下圖所示的工具條按鈕條中。圖2-3新縮寫的按鈕 當(dāng)執(zhí)行的ANSYS任務(wù)發(fā)生改變時,工具條按鈕也會改變。但是,工具條按鈕被保存在數(shù)據(jù)庫中,因此在ANSYS任務(wù)中執(zhí)行任何一條"resume"命令都將仍然包含原來的工具條按鈕。要保存定制的按鈕定義,必須通過UtilityMenu>MenuCtrls>SaveToolbar菜單項明確地把它們保存到文件中,并通過UtilityMenu>MenuCtrls>RestoreToolbar菜單項(*ABBRES命令)在每個ANSYS任務(wù)中進(jìn)行恢復(fù)。可以在宏中編程完成這項功能。注意-如果在同名文件中已經(jīng)存在某些縮寫,*ABBSAV命令將覆蓋它們。縮寫文件的格式就是一些用來產(chǎn)生縮寫的APDL命令序列。因此,如果要編輯很多按鈕或要改變其順序,通過一個文本編輯器來實現(xiàn)是最方便的了。例如,下面的文件就是由保存缺省工具條按鈕而產(chǎn)生的:/NOPR*ABB,SAVE_DB,SAVE*ABB,RESUM_DB,RESUME*ABB,QUIT,Fnc_/EXIT*ABB,POWRGRPH,Fnc_/GRAPHICS*ABB,ANSYSWEB,Fnc_HomePage/GO*ABB命令(*ABBR的縮寫形式)定義按鈕。第一行的/NOPR使下面的操作不被寫入log文件,最后一行的/GO使后面的操作被寫入log文件。2.2嵌套工具條縮寫上面講的保存-恢復(fù)特性使嵌套縮寫成為可能。通過在一個按鈕下嵌套縮寫,可以定義專用的工具條(假如有很多縮寫放在一個工具條下,將會引起混亂,很難找到正確的按鈕)。為了嵌套縮寫,可以簡單地定義一個恢復(fù)縮寫文件的縮寫。例如,下面的命令定義PREP_ABR作為一個縮寫,該縮寫從文件prep.abbr中恢復(fù)縮寫。*ABBR,PREP_ABR,ABBRES,,PREP,ABBRPREP_ABR將作為一個按鈕顯示在工具條上。單擊它,現(xiàn)在的按鈕將被文件prep.abbr中所定義的那套按鈕代替。通過定義縮寫來恢復(fù)文件,并在這些文件中包含縮寫,就可以在某個特定的ANSYS任務(wù)中定義不受數(shù)目限制的縮寫。甚至可以通過嵌套一些縮寫文件把這一方法擴(kuò)展到產(chǎn)生自己的菜單層次。在實現(xiàn)菜單層次的過程中,最好在每一個文件中添加一個"return"按鈕的縮寫以通過菜單返回。

第三章使用參數(shù)3.1參數(shù)參數(shù)是APDL的變量(它們更象Fortran變量,而不象Fortran參數(shù))。不必明確聲明參數(shù)類型。所有數(shù)值變量(整形或?qū)嵭危┒家噪p精度數(shù)儲存。被使用但未聲明的參數(shù)都被賦一個接近0的值,或"極小值",大約為。例如,若參數(shù)A被定義為A=B,但B沒被定義,則賦給A一個極小值。ANSYS包含兩種類型的參數(shù):標(biāo)量和數(shù)組。本章前一部分的內(nèi)容適用于這兩種類型。3.11后的內(nèi)容只適用于數(shù)組類型的參數(shù)。括在單引號中的字符串(最多8個字符)可以賦給參數(shù)。APDL提供的數(shù)組參數(shù)的類型有:數(shù)值,字符和表(一種特殊的數(shù)值數(shù)組,能自動產(chǎn)生插值)??梢杂靡粋€參數(shù)(代替數(shù)值或字符串)作為任何一個ANSYS命令的變量,該參數(shù)被求值并被賦給命令變量。例如,把值2.7賦給參數(shù)AA,然后執(zhí)行命令:N,12,AA,4ANSYS程序?qū)言撁罱忉尀椋篘,12,2.7,4(定義節(jié)點12為點X=2.7,Y=4)。3.2參數(shù)命名規(guī)則參數(shù)名稱必須以字母開頭,且只能包含字母、數(shù)值和下劃線。下面列出一些有效和無效的參數(shù)名:有效參數(shù)名:ABCPIX_OR_Y無效參數(shù)名:NEW_VALUE(超過8個字符)2CF3(以數(shù)值開頭)M&E(含非法字符"&")在命名參數(shù)時,注意以下幾點:要避免參數(shù)名與經(jīng)常使用的ANSYS標(biāo)識字相同,如:自由度(DOF)標(biāo)識字(TEMP,UX,PRES等);常用標(biāo)識字(ALL,PICK,STAT等);用戶定義標(biāo)識字(如用ETABLE命令定義的標(biāo)識字);數(shù)組類型標(biāo)識字(如CHAR,ARRAY,TABLE等)記住,名稱為從ARG1到ARG9和從AR10到AR99的參數(shù)被保留為局部參數(shù)。通常,局部參數(shù)用于宏中(見4.4)。參數(shù)名不能與用*ABBR命令定義的縮寫相同。有關(guān)縮寫的更多內(nèi)容在2.1中。參數(shù)名不能以下劃線(_)開頭。這類參數(shù)名只能用于GUI和應(yīng)用于ANSYS的宏中。3.2.1從*STATUS命令中隱藏參數(shù)3.3.4部分講述了通過*STATUS命令列表顯示參數(shù)。可以通過參數(shù)的命名約定來從*STATUS命令中隱藏參數(shù):名稱中以下劃線(_)結(jié)束的任何參數(shù),在執(zhí)行*STATUS命令都將不被顯示。 當(dāng)為很多其他用戶開發(fā)APDL宏時,這一功能是十分有用的??梢杂眠@一功能來建立宏,而ANSYS用戶和其它的宏編程人員不能列表顯示你定義的參數(shù)。3.3定義參數(shù)除非特別說明,以下幾節(jié)的內(nèi)容對標(biāo)量和數(shù)組類型參數(shù)都適用。從3.11后的內(nèi)容只適用于數(shù)組類型的參數(shù)。定義參數(shù)的方法主要有:可以把值賦給參數(shù),也可以提取ANSYS提供的值,再把這些值賦給參數(shù)。還可以用*GET命令或各種內(nèi)嵌獲取函數(shù)從ANSYS中提取值。下面的部分對其進(jìn)行詳細(xì)說明。3.3.1在運行過程中給參數(shù)賦值可以用*SET命令定義參數(shù)。如下面的例子:*SET,ABC,-24*SET,QR,2.07E11*SET,XORY,ABC*SET,CPARM,'CASE1'也可以用"="作為一種速記符來調(diào)用*SET命令(這更方便),其格式為Name=Value,這里Name是指參數(shù)名,Value是指賦給該參數(shù)的數(shù)值或字符。對于字符參數(shù),賦給的值必須被括在單引號中,并不能超過8個字符。下面的例子說明"="的用法:ABC=-24QR=2.07E11XORY=ABCCPARM='CASE1'在GUI中,可以直接在ANSYS輸入窗口或標(biāo)量參數(shù)對話框的"Selection"域(通過UtilityMenu>Parameters>ScalarParameters菜單項訪問)中輸入"="。3.3.2在啟動時給參數(shù)賦值當(dāng)從操作系統(tǒng)的命令行啟動ANSYS時,可以定義參數(shù)作為變量:僅僅只需在ANSYS的運行命令(與系統(tǒng)有關(guān))之后按-NameValue的格式輸入?yún)?shù)定義即可。例如,下面定義了兩個參數(shù)(parm1andparm2),分別賦值89.3和-0.1:ansys55-parm189.3-parm2-0.1最好不要在啟動時指派一個或兩個字符參數(shù)名,以避免與ANSYS命令行選項發(fā)生沖突。 注意-UNIX操作系統(tǒng)把單引號和有些非文字?jǐn)?shù)字字符作為專用符號。定義字符參數(shù)時,必須在單引號前插入后斜線(\)以免誤會。例如,下面定義兩個字符參數(shù),分別賦值`filename'和`200':ansys55-cparm1\'filename\'-cparm2\'200\'如果不是用命令行形式啟動ANSYS,可以通過Interactive或Batch菜單項(仍采用上面描述的-NameValue格式)來定義參數(shù)。假如在啟動時要定義很多參數(shù),更加方便的做法是在start5x.ans文件中或一個能用/INPUT命令加載的單獨文件中進(jìn)行參數(shù)定義。3.3.3賦ANSYS提供的值給參數(shù)ANSYS提供了兩種方法來從ANSYS中提取數(shù)據(jù):*GET命令,從某個特定的項目中提取數(shù)據(jù)并賦給某個特定的參數(shù);內(nèi)嵌獲取函數(shù),可在運行時使用。每個獲取函數(shù)從某個特定的項目中提取特定的數(shù)據(jù)。*GET命令的用法*GET命令(UtilityMenu>Parameters>GetScalarData)從某個特定的項目(一個點、一個單元、一個面等)中提取ANSYS提供的數(shù)據(jù)并賦給某個用戶命名的參數(shù)。各種關(guān)鍵詞、標(biāo)識字和數(shù)字結(jié)合在一起來確定被提取的項目。例如,*GET,A,ELEM,5,CENT,X返回單元5的質(zhì)心的X坐標(biāo)值并賦給參數(shù)A。*GET命令的使用格式為:*GET,Par,Entity,ENTNUM,Item1,IT1NUM,Item2,IT2NUM這里,Par是將被賦值的參數(shù)名;Entity是被提取項目的關(guān)鍵詞,有效的關(guān)鍵詞是NODE,ELEM,KP,LINE,AREA,VOLU等,在ANSYSCommandsReference(ANSYS命令參考手冊)中的*GET部分對之有完整的說明;ENTNUM是實體的編號(若為0指全部實體);Item1是指某個指定實體的項目名。例如,如果Entity是ELEM,那么Item1要么是NUM(選擇集中的最大或最小的單元編號),要么是COUNT(選擇集中的單元數(shù)目)。在ANSYSCommandsReference(ANSYS命令參考手冊)中的*GET部分對每種實體的Item1值有完整的說明??梢园?GET命令看成是對一種樹型結(jié)構(gòu)從上至下的路徑搜索,即從一般到特殊的確定??捎孟旅娴睦觼碚f明*GET命令的用法。下面的第一條命令用于獲得單元97的材料屬性(MAT參考號)并賦給單元BCD:*GET,BCD,ELEM,97,ATTR,MAT!BCD=單元97的材料號*GET,V37,ELEM,37,VOLU!V37=單元37的體積*GET,EL52,ELEM,52,HGEN!EL52=在單元52生成的熱值*GET,OPER,ELEM,102,HCOE,2!OPER=單元102面2上的熱系數(shù)*GET,TMP,ELEM,16,TBULK,3!TMP=單元16面3上的體積溫度*GET,NMAX,NODE,,NUM,MAX!NMAX=最大激活節(jié)點數(shù)*GET,HNOD,NODE,12,HGEN!HNOD=在節(jié)點12生成的熱值*GET,COORD,ACTIVE,,CSYS!COORD=激活的坐標(biāo)系值內(nèi)嵌獲取函數(shù)的用法對于某些項目,可以用內(nèi)嵌的獲取函數(shù)來代替*GET命令。獲取函數(shù)返回項目的值并直接用于當(dāng)前運行之中。這樣就不必先把值賦給參數(shù),然后再在運行中調(diào)用該參數(shù),從而可以省去起中間作用的參數(shù)。例如,要計算兩個節(jié)點的X坐標(biāo)的平均值,可以采用*GET函數(shù):使用下面的命令來把節(jié)點1的X坐標(biāo)值賦給參數(shù)L1:*GET,L1,NODE,1,LOC,X2.再使用*GET命令來把節(jié)點2的X坐標(biāo)值賦給參數(shù)L2;3.計算中間值MID=(L1+L2)/2.。更簡便的方法是使用節(jié)點坐標(biāo)的獲取函數(shù)NX(N),該函數(shù)返回節(jié)點N的X坐標(biāo)值。這樣就可以不用中間參數(shù)L1和L2。如下所示:MID=(NX(1)+NX(2))/2獲取函數(shù)的參數(shù)可以是參數(shù)也可以是其它的獲取函數(shù)。例如,獲取函數(shù)NELEM(ENUM,NPOS)返回在單元ENUM上NPOS處的節(jié)點編號,則聯(lián)合函數(shù)NX(NELEM(ENUM,NPOS))返回該節(jié)點的X坐標(biāo)值。下面的表總結(jié)了所有可用的獲取函數(shù):獲取函數(shù)提取值實體狀態(tài):NSEL(N)節(jié)點N的狀態(tài)(-1=未被選擇,0=未定義,1=被選擇)ESEL(E)單元E的狀態(tài)(-1=未被選擇,0=未定義,1=被選擇)KSEL(K)關(guān)鍵點K的狀態(tài)(-1=未被選擇,0=未定義,1=被選擇)LSEL(L)線L的狀態(tài)(-1=未被選擇,0=未定義,1=被選擇)ASEL(A)面A的狀態(tài)(-1=未被選擇,0=未定義,1=被選擇)VSEL(V)體V的狀態(tài)(-1=未被選擇,0=未定義,1=被選擇)選擇下一個實體:NDNEXT(N)選擇節(jié)點編號大于N的下一個節(jié)點ELNEXT(E)選擇單元編號大于E的下一個單元KPNEXT(K)選擇關(guān)鍵點編號大于K的下一個關(guān)鍵點LSNEXT(L)選擇線編號大于L的下一條線ARNEXT(A)選擇面編號大于A的下一個面VLNEXT(V)選擇體編號大于V的下一個體定位:CENTRX(E)單元E的質(zhì)心在總體笛卡兒坐標(biāo)系中的x坐標(biāo)值CENTRY(E)單元E的質(zhì)心在總體笛卡兒坐標(biāo)系中的y坐標(biāo)值CENTRZ(E)單元E的質(zhì)心在總體笛卡兒坐標(biāo)系中的z坐標(biāo)值NX(N)節(jié)點N在當(dāng)前激活坐標(biāo)系中的x坐標(biāo)值NY(N)節(jié)點N在當(dāng)前激活坐標(biāo)系中的y坐標(biāo)值NZ(N)節(jié)點N在當(dāng)前激活坐標(biāo)系中的z坐標(biāo)值KX(K)關(guān)鍵點K在當(dāng)前激活坐標(biāo)系中的x坐標(biāo)值KY(K)關(guān)鍵點K在當(dāng)前激活坐標(biāo)系中的y坐標(biāo)值KZ(K)關(guān)鍵點K在當(dāng)前激活坐標(biāo)系中的z坐標(biāo)值LX(L,LFRAC)線L的長度百分?jǐn)?shù)為LFRAC(0.0to1.0)處的X坐標(biāo)值LY(L,LFRAC)線L的長度百分?jǐn)?shù)為LFRAC(0.0to1.0)處的Y坐標(biāo)值LZ(L,LFRAC)線L的長度百分?jǐn)?shù)為LFRAC(0.0to1.0)處的Z坐標(biāo)值就近定位:NODE(X,Y,Z)距點X,Y,Z最近的被選擇的節(jié)點的編號(在當(dāng)前激活坐標(biāo)系中;符合條件的關(guān)鍵點中編號最小者)KP(X,Y,Z)距點X,Y,Z最近的被選擇的關(guān)鍵點的編號(在當(dāng)前激活坐標(biāo)系中;符合條件的關(guān)鍵點中編號最小者)距離:DISTND(N1,N2)節(jié)點N1和節(jié)點N2之間的距離DISTKP(K1,K2)關(guān)鍵點K1和關(guān)鍵點K2之間的距離DISTEN(E,N)單元E的質(zhì)心和節(jié)點N之間的距離。質(zhì)心由單元上選擇的節(jié)點確定。角度:ANGLEN(N1,N2,N3)兩條線之間的夾角(由三個節(jié)點確定,其中N1為頂點)。單位缺省為弧度。ANGLEK(K1,K2,K3)兩條線之間的夾角(由三個關(guān)鍵點確定,其中K1為頂點)。單位缺省為弧度。離某實體最近:NNEAR(N)最接近節(jié)點N的節(jié)點KNEAR(K)最接近關(guān)鍵點K的關(guān)鍵點ENEARN(N)最接近節(jié)點N的單元。單元位置由選擇的節(jié)點確定。面積:AREAND(N1,N2,N3)由節(jié)點N1,N2,和N3圍成的三角形的面積AREAKP(K1,K2,K3)由關(guān)鍵點K1,K2,和K3圍成的三角形的面積ARNODE(N)與節(jié)點N相連的被選擇單元在節(jié)點N上分配的面積。對于二維平面實體,返回與節(jié)點N相連邊界的面積;對于軸對稱實體,返回與節(jié)點N相連邊表面的面積;對于三維體實體,返回與節(jié)點N相連面的面積。法向:NORMNX(N1,N2,N3)節(jié)點N1,N2,和N3確定平面的法線與X軸的夾角的余弦值NORMNY(N1,N2,N3)節(jié)點N1,N2,和N3確定平面的法線與Y軸的夾角的余弦值NORMNZ(N1,N2,N3)節(jié)點N1,N2,和N3確定平面的法線與Z軸的夾角的余弦值NORMKX(K1,K2,K3)關(guān)鍵點K1,K2,和K3確定平面的法線與X軸的夾角的余弦值NORMKY(K1,K2,K3)關(guān)鍵點K1,K2,和K3確定平面的法線與Y軸的夾角的余弦值NORMKZ(K1,K2,K3)關(guān)鍵點K1,K2,和K3確定平面的法線與Z軸的夾角的余弦值關(guān)聯(lián):ENEXTN(N,LOC)與節(jié)點N相連的單元。若有很多單元與節(jié)點N相連,則由LOC定位。列表結(jié)束時返回零。NELEM(E,NPOS)單元E中在NPOS(1-20)位置上的節(jié)點號。表面:ELADJ(E,FACE)與單元E的某個表面號(FACE)鄰近的單元。面號與面載荷關(guān)鍵號相同。僅僅考慮那些有相同維數(shù)和形狀的單元。若鄰近的單元多于一個,則返回-1,若無鄰近單元,返回0。NDFACE(E,FACE,LOC)單元E的某個表面(FACE)上的LOC處的節(jié)點。面號與面載荷關(guān)鍵號相同。LOC指表面上的節(jié)點位置(對于IJLK表面,LOC=1指節(jié)點I,2指節(jié)點J等)NMFACE(E)包含選定節(jié)點的單元E的表面號。面號輸出就是面載荷關(guān)鍵號。如果一個面上出現(xiàn)多個載荷關(guān)鍵號(例如線單元和面單元),該面上的最小載荷關(guān)鍵號將被輸出。ARFACE(E)對于二維平面實體和三維體實體,返回包含選定節(jié)點的單元E的表面面積。對于軸對稱單元,返回總表面積(360度)。自由度結(jié)果:UX(N)節(jié)點N在X向的結(jié)構(gòu)位移UY(N)節(jié)點N在Y向的結(jié)構(gòu)位移UZ(N)節(jié)點N在Z向的結(jié)構(gòu)位移ROTX(N)節(jié)點N繞X向的結(jié)構(gòu)轉(zhuǎn)角ROTY(N)節(jié)點N繞Y向的結(jié)構(gòu)轉(zhuǎn)角ROTZ(N)節(jié)點N繞Z向的結(jié)構(gòu)轉(zhuǎn)角TEMP(N)節(jié)點N上的溫度PRES(N)節(jié)點N上的壓力VX(N)節(jié)點N在X向的流動速度VY(N)節(jié)點N在Y向的流動速度VZ(N)節(jié)點N在Z向的流動速度ENKE(N)在節(jié)點N上的湍流動能(FLOTRAN)ENDS(N)在節(jié)點N上的湍流能量耗散(FLOTRAN)VOLT(N)節(jié)點N處的電壓MAG(N)在節(jié)點N上的磁標(biāo)勢AX(N)在節(jié)點N上的X向磁矢勢AY(N)在節(jié)點N上的Y向磁矢勢AZ(N)在節(jié)點N上的Z向磁矢勢3.3.4排列顯示參數(shù)一旦定義了參數(shù),就可以用*STATUS命令把它們排列顯示出來。如果僅用*STATUS命令(沒有附加參數(shù)),將列表顯示目前所有已定義的參數(shù)。下面的例子說明了該命令的用法及典型的排列顯示:*STATUSPARAMETERSTATUS-(5PARAMETERSDEFINED)NAMEVALUETYPEDIMENSIONSABC-24.0000000SCALARHEIGHT57.0000000SCALARQR2.070000000E+11SCALARX_OR_Y-24.0000000SCALARCPARMCASE1CHARACTER通過UtilityMenu>List>Other>Parameters或UtilityMenu>List>Status>Parameters>AllParameters菜單項也可以得到參數(shù)的列表顯示。注意-以下劃線(_)開頭或結(jié)尾的參數(shù)不能由*STATUS命令顯示出來??梢酝ㄟ^給*STATUS命令定義附加參數(shù)來單獨顯示某些參數(shù)。下面的例子說明了如何顯示參數(shù)ABC的狀態(tài):*STATUS,ABCPARAMETERSTATUS-abc(5PARAMETERSDEFINED)NAMEVALUETYPEDIMENSIONSABC-24.0000000SCALAR也可以通過UtilityMenu>List>Other>NamedParameter或UtilityMenu>List>Status>Parameters>NamedParameters菜單項指定參數(shù)的列表顯示。注意-雖然ANSYS最多允許有1000個參數(shù),但是由于GUI和ANSYS宏需要用到一些參數(shù),所以用戶可用參數(shù)不到1000個。用戶界面定義的參數(shù)(內(nèi)部參數(shù))數(shù)目可由*STATUS命令列出。*GET,par,PARM,,MAX命令返回所有已定義參數(shù)的數(shù)目。3.4刪除參數(shù)可通過兩種途徑來刪除參數(shù):使用"="命令,其右邊為空。例如,使用該命令來刪除參數(shù)QR:QR=使用*SET命令(UtilityMenu>Parameters>ScalarParameters),但不給參數(shù)賦值。例如,使用該命令來刪除參數(shù)QR:*SET,QR,令某個數(shù)值參數(shù)為0并沒有刪除該參數(shù)。同樣,令某個字符參數(shù)為空的單引號(``)或單引號中為空格也沒有刪除該參數(shù)。3.5字符參數(shù)的用法一般地,字符參數(shù)用來提供文件名和擴(kuò)展名。先把文件名賦給某個字符參數(shù),然后,在需要用到文件名的地方用對應(yīng)的參數(shù)來代替。同樣,文件擴(kuò)展名也可以先賦給某個字符參數(shù),然后,在需要用到文件擴(kuò)展名的地方用對應(yīng)的參數(shù)代替(如作為Ext命令的參數(shù))。這樣,在批處理模式中,只需在輸入文件中簡單地改變字符參數(shù)的初始值就改變了用于多重運行的文件名。注意-字符參數(shù)最多只能有8個字符。下面說明字符參數(shù)的一般用法:作為命令的參數(shù)(若該參數(shù)為文字?jǐn)?shù)字類型);在使用*USE命令時,作為代表宏名的參數(shù)(UtilityMenu>Macro>ExecuteDataBlock);NAME='MACRO'!MACRO為宏文件名*USE,NAME!調(diào)用MACRO宏作為被調(diào)用宏的參數(shù),該宏可由*USE命令調(diào)用或作為”未知命令”宏。允許使用下面的任何方法:ABC='SX'*USE,NAME,ABC或*USE,NAME,'SX'DEF='SY'NEWMACRO,DEF!調(diào)用已經(jīng)存在的宏文件NEWMACRO.MAC或NEWMACRO,'SY'3.6數(shù)字參數(shù)值的置換只要在有關(guān)數(shù)字命令的地方用到參數(shù),該參數(shù)值都會被自動置換。假如沒有給該參數(shù)賦值(即該參數(shù)還沒被定義),程序會自動賦給它一個接近0的值(),通常不會發(fā)出警告。注意-大多數(shù)情況下,某參數(shù)在一個命令中使用之后,再被定義,不會再更新該命令。(除命令/TITLE,/STITLE,*ABBR,和/TLABEL之外。詳細(xì)說明見部分。)例如:Y=0X=2.7N,1,X,Y!節(jié)點1在(2.7,0)Y=3.5!重新定義參數(shù)Y不會更新節(jié)點13.6.1防止置換可以通過把參數(shù)名括在單引號(')中(如'XYZ')來防止參數(shù)被置換,這時被使用的是文字串,所以,這個特性僅對非數(shù)字參數(shù)有用。反過來,也可以通過把用于標(biāo)題、子標(biāo)題和文件名的參數(shù)名括在百分號(%)中,對其強(qiáng)迫進(jìn)行置換。例如,/TITLE,TEMPERATURECONTOURSATTIME=%TM%在這個標(biāo)題中,參數(shù)TM的數(shù)值被置換了。注意-一旦該標(biāo)題被使用,參數(shù)即被置換。3.6.2字符參數(shù)值的置換在文字?jǐn)?shù)字命令域中使用字符參數(shù)通常會自動地導(dǎo)致該字符參數(shù)值的置換。下面說明強(qiáng)制置換和對字符參數(shù)的限制。強(qiáng)制置換和數(shù)字參數(shù)一樣,也能在某些不會發(fā)生置換的情況下強(qiáng)迫字符參數(shù)進(jìn)行置換。只要把字符參數(shù)名括在百分號(%)中就可以達(dá)到該目的。以下命令可以實現(xiàn)對字符參數(shù)的強(qiáng)制置換:/TITLE命令(標(biāo)題域),為各種打印輸出指定標(biāo)題。/STITLE命令(標(biāo)題域),指定子標(biāo)題,同/TITLE。(不能在GUI中直接得到/STITLE命令)/TLABEL命令(文本域),為注釋指定文本串。/SYP命令(ARG1-ARG8域),傳遞命令(包括參數(shù))到操作系統(tǒng)。(不能在GUI中直接得到/SYP命令)*ABBR命令(縮寫域),定義縮寫。強(qiáng)制置換在以下類型的域中也有效:任何文件名或擴(kuò)展名命令參數(shù)。這些參數(shù)應(yīng)用到諸如/FILENAME,RESUME,/INPUT,/OUTPUT,和FILE等命令中(在這些域中也允許直接參數(shù)置換)。任何32位字符域:典型的例子是目錄路徑,它被用于很多命令。(在這些域中也允許直接參數(shù)置換)在任何命令名域作為命令名。也可在域1中作為一個"未知命令"的宏名。例如:R='RESUME'%R%,MODEL,DB以下命令輸入方式說明了如何對一個子標(biāo)題和目錄名進(jìn)行強(qiáng)制置換:A='TEST'B='.RST'C='/ANSYS'D='/MODELS/'/STITLE,,RESULTSFROMFILE%C%%D%%A%%B%SUBTITLE1=RESULTSFROMFILE/ANSYS/MODELS/TEST.RST/POST1FILE,A,RST,%C%%D%!從文件/ANSYS/MODELS/TEST.RST讀結(jié)果字符參數(shù)有效的其它地方除已經(jīng)討論的一般應(yīng)用之外,在某些特定的場合,應(yīng)用字符參數(shù)會帶來更多的便利。下面的內(nèi)容描述了所涉及的命令和用法。*ASK該命令用于用戶給字符標(biāo)量參數(shù)賦值時彈出的提示字符串(最多8個字符,且括在單引號中)。該命令不能由GUI直接得到。*CFWRITE該命令把ANSYS命令寫到由*CFOPEN打開的文件中??捎糜趯懸粋€分配給該文件的字符參數(shù)。例如,*CFWRITE,B='FILE'是有效的。*CFWRITE和*CFOPEN命令不能由GUI直接得到。*IF和*ELSEIF字符參數(shù)可用于這兩個命令的VAL1和VAL2參數(shù)。對于Oper參數(shù),使用字符參數(shù)時,只有EQ(等于)和NE(不等于)標(biāo)識字是有效的。*IF和*ELSEIF命令不能由GUI直接得到。例如:CPARM='NO'*IF,CPARM,*MSG該命令的VAL1到VAL8參數(shù)均為字符參數(shù)。數(shù)據(jù)描述符%C用于在格式行中指明字符數(shù)據(jù)(必須接在*MSG命令之后)。%C與FORTRAN中的描述符A8類似。*MSG命令不能由GUI直接得到。PARSAV和PARRES前一個命令把字符參數(shù)保存到一個文件中(通過PARSAV命令或UtilityMenu>Parameters>SaveParameters菜單項),后一個命令從文件中恢復(fù)參數(shù)(通過PARRES命令或UtilityMenu>Parameters>RestoreParameters菜單項)*VREAD該命令(UtilityMenu>Parameters>ArrayParameters>ReadfromFile)用于從某個文件中讀取字符參數(shù)并生成一個字符數(shù)組參數(shù)。FORTRAN中的字符描述符(A)用于*VREAD命令后的格式行中。*VWRITE該命令(menupathUtilityMenu>Parameters>ArrayParameters>WritetoFile)可用來以某種格式化的順序把字符參數(shù)數(shù)據(jù)寫到一個文件中。FORTRAN中的字符描述符(A)可用于*VWRITE命令后的格式行中。字符參數(shù)的限制雖然字符參數(shù)和數(shù)字參數(shù)有很多相同的功能,但是在有些場合字符參數(shù)是無效的:在*SET,*GET,*DIM,和*STATUS命令中,Par參數(shù)對應(yīng)的字符參數(shù)是不能被置換的。對于字符數(shù)組參數(shù),不能應(yīng)用交互式編輯方式(*VEDIT命令)。向量運算命令,諸如*VOPER,*VSCFUN,*VFUN,*VFILL,*VGET和*VITRP,不能用于字符數(shù)組參數(shù)。對字符參數(shù)進(jìn)行運算時,*VMASK和*VLEN命令只能應(yīng)用于*VWRITE和*VREAD命令中。字符參數(shù)不能用于包括加、減、乘等運算的參數(shù)公式中。3.7數(shù)字或字符參數(shù)的動態(tài)置換應(yīng)用/TITLE,/STITLE,*ABBR,和/TLABEL命令時會發(fā)生參數(shù)的動態(tài)置換。動態(tài)置換允許使用參數(shù)被修改后的值,即使使用該參數(shù)的命令還沒有被調(diào)用。例如:XYZ='CASE1'/TITLE,Thisis%XYZ%APLOT標(biāo)題"ThisisCASE1"將顯示在面區(qū)域。若改變XYZ的值,那么在接下來的繪圖中即使沒有調(diào)用/TITLE命令,也將顯示新的標(biāo)題。XYZ='CASE2'標(biāo)題"ThisisCASE2"將顯示在以后的繪圖中。3.8參數(shù)公式參數(shù)公式包括對參數(shù)和數(shù)值的運算,如加、減、乘、除等。例如:X=A+BP=(R2+R1)/2D=-B+(E**2)-(4*A*C)!求值D=-B+E2-4ACXYZ=(A<B)+Y**2!如果AI小于B,XYZ=A+Y2; !否則XYZ=B+Y2INC=A1+(31.4/9)M=((X2-X1)**2-(Y2-Y1)**2)/2下面是APDL算子的完全列表:運算符號操作+加-減*乘/除**求冪<小于>大于也可以如上例一樣使用圓括號。ANSYS運算的順序如下所示:1.圓括號中的運算(最里面最優(yōu)先)2.求冪(從右到左)3.乘和除(從左到右)4.一元聯(lián)合(例如+A或-A)5.加和減(從左到右)6.邏輯判斷(從左到右)因此一個諸如Y2=A+B**C/D*E的公式按如下順序求值:最先求B**C,第二步/D,第三步*E,最后+A。為了更清楚,可以在公式中使用圓括號。圓括號最多可嵌套4層,在每套圓括號中最多可有9次運算。一般來說,在公式的運算符之間不要有空格。特別是在*之前不能有空格,這是因為如果這樣,接下來的輸入行(以*開頭)將被作為一條命令來解釋,而不再是公式的一部分了。3.9帶參數(shù)的函數(shù)一個帶參數(shù)的函數(shù)是數(shù)學(xué)運算的程序序列,并返回一個值,例如SIN(X),SQRT(B),和LOG(13.2)。下面的表完整地列出了當(dāng)前可用的ANSYS函數(shù):標(biāo)準(zhǔn)FORTRAN77函數(shù)ABS(x)X的絕對值SIGN(x,y)X的絕對值,但取y(正負(fù))符號。y=0時結(jié)果取正號。EXP(x)X的指數(shù)值LOG(x)X的自然對數(shù)值(ln(x))LOG10(x)X的常用對數(shù)值(log10(x))SQRT(x)X的平方根值NINT(x)X的整數(shù)部分MOD(x,y)x/y的余數(shù)部分。若y=0,則返回0RAND(x,y)在x到y(tǒng)范圍內(nèi)產(chǎn)生隨機(jī)數(shù)(一致分布)(x為下限,y為上限)GDIS(x,y)生成平均值為x且偏差為y的正態(tài)分布的隨機(jī)數(shù)SIN(x),COS(x),TAN(x)X的正弦、余弦及正切值。X的缺省單位為弧度,但可用*AFUN命令轉(zhuǎn)化為度數(shù)。SINH(x),COSH(x),TANH(x)X的雙曲線正弦、余弦及正切值。ASIN(x),ACOS(x),ATAN(x)X的反正弦、反余弦及反正切值。對于ASIN和ACOS,X必須在-1.0和+1.0之間。輸出的缺省單位為弧度,但可用*AFUN命令轉(zhuǎn)化為度數(shù)。對于ASIN和ATAN,輸出值的范圍在-pi/2到+pi/2之間;對于ACOS,輸出值的范圍在0到pi之間ATAN2(y,x)y/x的反正切值。輸出的缺省單位為弧度,但可用*AFUN命令轉(zhuǎn)化為度數(shù)。輸出值的范圍在-pi到+pi之間。VALCHR(CPARM)返回CPARM的數(shù)字值。(如果CPARM是一個數(shù)值則返回0.0)CHRVAL(PARM)數(shù)字參數(shù)PARM的字符值。小數(shù)位置數(shù)取決于數(shù)值大小。UPCASE(CPARM)把CPARM轉(zhuǎn)化為大寫LWCASE(CPARM)把CPARM轉(zhuǎn)化為小寫下面是一些帶參數(shù)函數(shù)的例子:PI=ACOS(-1)!PI=-1的反余弦值,PI的精確度由機(jī)器確定Z3=COS(2*THETA)-Z1**2R2=SQRT(ABS(R1-3))X=RAND(-24,R2)!X=在-24和R2的隨機(jī)值*AFUN,DEG!把角度的單位轉(zhuǎn)換為度數(shù)THETA=ATAN(SQRT(3))!THETA等于60度PHI=ATAN2(-SQRT(3),-1)!PHI等于-120度*AFUN,RAD!把角度的單位轉(zhuǎn)換為弧度X249=NX(249)!節(jié)點249的X軸坐標(biāo)SLOPE=(KY(2)-KY(1))/(KX(2)-KX(1))!連接關(guān)鍵點1和2的線的斜率CHNUM=CHRVAL(X)!CHNUM=X的字符值UPPER=UPCASE(LABEL)!UPPER=參數(shù)LABEL的大寫字符3.10保存、恢復(fù)、寫參數(shù)如果要在其他ANSYS任務(wù)中使用當(dāng)前定義的參數(shù),可以先把它們寫入一個文件中,然后讀?。ɑ謴?fù))該文件。讀取文件時,可以全部代替當(dāng)前定義的參數(shù),也可以只把它們加到當(dāng)前定義的參數(shù)中(會覆蓋已存在的參數(shù))??捎肞ARSAV命令把參數(shù)寫入一個文件中(UtilityMenu>Parameters>SaveParameters)。參數(shù)文件是ASCII文件,主要由APDL*SET命令組成,該命令用來定義各種參數(shù)。用下面的例子來說明參數(shù)文件的格式:/NOPR*SET,A,10.00000000000*SET,B,254.3948750000*SET,C,'string'*SET,_RETURN,0.0000000000000E+00*SET,_STATUS,1.000000000000*SET,_ZX,''/GO可用PARRES命令從一個文件中讀取參數(shù)(UtilityMenu>Parameters>RestoreParameters)。若需要,最多可用FORTRAN實數(shù)格式寫10個參數(shù)或數(shù)組到一個文件中??梢岳眠@一特性來寫用于其他程序、報告等的輸出文件。其對應(yīng)的命令為*VWRITE(UtilityMenu>Parameters>ArrayParameters>WritetoFile)。關(guān)于該命令的內(nèi)容在3.11.7部分。3.11數(shù)組參數(shù)除數(shù)量參數(shù)(一個值)之外,還可以定義數(shù)組參數(shù)(多個值)。ANSYS數(shù)組可以是一維(一列),二維(行和列)或三維(行、列和面)。ANSYS提供了三種數(shù)組類型:ARRAY這種類型與FORTRAN77的數(shù)組類似,是缺省的數(shù)組類型。和FORTRAN77的數(shù)組一樣,行、列和面的下標(biāo)從1開始,為連續(xù)的整形數(shù),數(shù)組元素為整形或?qū)嵭螖?shù)。該類型數(shù)組最多可有10242-1行、255列和7面。CHAR字符數(shù)組,每個元素包含不超過8個的文字?jǐn)?shù)字字符,行、列和面的下標(biāo)從1開始,為連續(xù)的整形數(shù)。該類型數(shù)組最多可有10242-1行、255列和7面。TABLE這是一種特殊的數(shù)字?jǐn)?shù)組類型,通過它,ANSYS可以計算在數(shù)組中明確定義的元素之間的值(通過線性插值)。而且可以為每一行、列和面定義數(shù)組下標(biāo),下標(biāo)為實數(shù)(不是整形數(shù))。數(shù)組元素可以是整數(shù),也可以是實數(shù)。在后面的討論中可以看到,這一特性為數(shù)學(xué)運算提供了一個非常有力的工具。該類型數(shù)組最多可有65,535行、255列和7面。3.11.1數(shù)組的基礎(chǔ)知識以下面的一個二維數(shù)組(ARRAY或CHAR)為例:它有m行長和n列寬,即其維數(shù)為m乘以n。每行由行下標(biāo)i確定,i在1到m之間;每列由列下標(biāo)j確定,j在1到n之間。組成數(shù)組的數(shù)就是數(shù)組元素。每個元素由(i,j)確定,其中i是其行數(shù),j是其列數(shù)。圖3-1二維數(shù)組的圖形表示 可以把以上的定義擴(kuò)展到三維數(shù)組參數(shù),三維數(shù)組有m行長、n列寬和p個面。面下標(biāo)為k,變化范圍從1到p。每個數(shù)組元素由(i,j,k)確定。下圖說明三維數(shù)組:圖3-2三維數(shù)組的圖形表示3.11.2數(shù)組參數(shù)示例ARRAY類型的參數(shù)由離散的數(shù)組成,為了方便,這些數(shù)被安放在表格形式中。如下例:參數(shù)NTEMP為表示選定節(jié)點處的溫度的數(shù)組;NTEMP(1)=-47.6表示節(jié)點27處的溫度,NTEMP(2)=-5.2表示節(jié)點43處的溫度,等等。同樣地,參數(shù)EVOLUM為表示單元體積的數(shù)組,參數(shù)COMPSTRS為表示節(jié)點壓力的數(shù)組,每一列代表一個特定的方向(如X,Y,Z,XY,YZ,XZ)。CHAR類型的數(shù)組參數(shù)的結(jié)構(gòu)與ARRAY類型參數(shù)相似,只是其元素為字符串(最多8個字符)。以下為兩個字符數(shù)組參數(shù)的例子:3.11.3TABLE類型數(shù)組參數(shù)一個TABLE類型的數(shù)組參數(shù)由安放在表格形式中的數(shù)(文字?jǐn)?shù)字無效)組成,與ARRAY類型較為相似。但是,有三點主要區(qū)別:ANSYS能計算在表數(shù)組中明確定義的元素之間的任意值(通過線性插值);表數(shù)組包含0行0列,與一般數(shù)組不同,下標(biāo)值可以是實數(shù)。唯一的限制是下標(biāo)值必須是增加的(不能減少)數(shù)值。必須通過行和列的下標(biāo)值來明確聲明某個值,否則,將被賦一“極小值”(7.888609052E-31);面的下標(biāo)值放在該面的0,0處。下圖用來說明一個TABLE數(shù)組。下面插圖顯示了一個可以進(jìn)行數(shù)值檢索的表數(shù)組。注意:檢索定義是從"0"行和列值開始的。如上例所示,初始化一個表數(shù)組時,必須設(shè)置:每個面的0,0元素值為該面的下標(biāo)值;面1中0行里的列下標(biāo)值。只有想從數(shù)組中得到數(shù)據(jù)時才會用到這些值。給數(shù)組中的元素賦值時,采用傳統(tǒng)的行列下標(biāo)即可。面1中0列里的行下標(biāo)值。同樣地,只有想從數(shù)組中得到數(shù)據(jù)時才會用到這些值。給數(shù)組中的元素賦值時,采用傳統(tǒng)的行列下標(biāo)即可。在任何面中都可以設(shè)置或改變行列的下標(biāo)值,這些下標(biāo)值將應(yīng)用在所有面中。圖3-3表數(shù)組曲線3.11.4定義和列表顯示數(shù)組參數(shù)要定義一個數(shù)組參數(shù),首先必須通過*DIM命令(UtilityMenu>Parameters>ArrayParameters>Define/Edit)來聲明其類型和維數(shù)。下面的例子說明如何使用*DIM命令:*DIM,AA,,4!類型ARRAY為缺省類型,維數(shù)為4[x1x1]*DIM,XYZ,ARRAY,12!ARRAY類型數(shù)組,維數(shù)為12[x1x1]*DIM,FORCE,TABLE,5!TTABLE類型數(shù)組,維數(shù)為5[x1x1]*DIM,T2,,4,3!維數(shù)為4x3[x1]*DIM,CPARR1,CHAR,5!CHAR類型數(shù)組,維數(shù)為5[x1x1]注意-ARRAY和TABLE類型的數(shù)組元素被初始化為0(除TABLE類型的0行和0列之外,它們被初始化為“極小值”)。CHAR類型的數(shù)組元素被初始化為一個空格。3.11.5給數(shù)組元素賦值可以通過以下途徑給數(shù)組元素賦值:通過*SET命令或"="給單獨的數(shù)組元素賦值;用指定的或計算出的值來填充數(shù)組中的某個向量(列)(如*VFILL命令);通過*VEDIT對話框交互地給元素賦值;從某個ASCII文件中讀取值(*VREAD或*TREAD命令)。給單獨的數(shù)組元素賦值可以通過*SET命令或"="給單獨的數(shù)組元素賦值。除要定義一列數(shù)據(jù)(每個"="命令最多可定義10個數(shù)組元素值)外,和在標(biāo)量數(shù)組中的用法相同。例如,定義一個維數(shù)為12x1的數(shù)組參數(shù)XYZ,就需要使用兩次"="命令。在下面的例子中,第一條命令定義了8個數(shù)組元素,第二條命令定義了剩下的4個數(shù)組元素。XYZ(1)=59.5,42.494,-9.01,-8.98,-8.98,9.01,-30.6,51XYZ(9)=-51.9,14.88,10.8,-10.8下面的例子說明了如何定義維數(shù)為4x3的數(shù)組參數(shù)T2的元素值,T2在前面已經(jīng)由*DIM定義:T2(1,1)=.6,2,-1.8,4!定義(1,1),(2,1),(3,1),(4,1)T2(1,2)=7,5,9.1,62.5!定義(1,2),(2,2),(3,2),(4,2)T2(1,3)=2E-4,-3.5,22,.01!定義(1,3),(2,3),(3,3),(4,3)下面的例子定義TABLE類型的參數(shù)FORCE的元素值,F(xiàn)ORCE前面已定義過。FORCE(1)=0,560,560,238.5,0FORCE(1,0)=1E-6,.8,7.2,8.5,9.3字符數(shù)組參數(shù)也能用"="命令來定義。每個值最多可有8個字符,且必須括在單引號中。例如:*DIM,RESULT,CHAR,3 !維數(shù)為(3,1,1)的字符數(shù)組參數(shù)RESULT(1)='SX','SY','SZ' !給參數(shù)RESULT賦值注意到,當(dāng)定義一個數(shù)字?jǐn)?shù)組參數(shù)時,要給出數(shù)組元素的起始位置(本例中,指定了行下標(biāo)值1)。注意-CHAR不能被作為一個字符參數(shù)名,因為在*DIM命令中會和CHAR標(biāo)識字發(fā)生沖突。當(dāng)CHAR被用于*DIM命令中的第三個參數(shù)時,ANSYS將替換賦給參數(shù)CHAR的字符串。填充數(shù)組向量可以使用*VFILL命令(UtilityMenu>Parameters>ArrayParameters>Fill)來“填充”一個ARRAY或TABLE向量(列)??梢栽贏NSYS命令參考手冊(ANSYSCommandsReference)中找到關(guān)于*VFILL命令詳細(xì)的語法參考信息。下面的例子說明了*VFILL命令的用途:*DIM,DTAB,ARRAY,4,3!定義維數(shù)為4x3的數(shù)字?jǐn)?shù)組*VFILL,DTAB(1,1),DATA,-3,8,-12,57!四個數(shù)值被賦給向量1(列1)*VFILL,DTAB(1,2),RAMP,2.54,2.54!用起始值為2.54,增量為2.54的數(shù)來!填充向量2(列2)*VFILL,DTAB(1,3),RAND,1.5,10!用1.5和10之間的隨機(jī)數(shù)來填充向量3!結(jié)果依賴于隨機(jī)數(shù)的產(chǎn)生交互式編輯數(shù)組*VEDIT(UtilityMenu>Parameters>ArrayParameters>Define/Edit)命令只適用于交互式模式,該命令會彈出一個數(shù)據(jù)輸入對話框,通過該對話框可以編輯一個ARRAY或TABLE(不能是CHAR)數(shù)組。該對話框提供了一些便利的特性:為數(shù)組元素值提供一個電子數(shù)據(jù)表格形式的編輯器;為大數(shù)組提供導(dǎo)向控制;把某一行或列設(shè)置為某一指定值的初始化功能(僅對ARRAY有效);為移動行或列數(shù)據(jù)而設(shè)置的刪除、拷貝和插入功能(僅對ARRAY有效);按對話框中的Help按鈕可以得到該對話框的全部用法說明。圖3-4ARRAY類型數(shù)組的*VEDIT對話框例子圖3-6TABLE類型數(shù)組的*VEDIT對話框例子使用*VREAD命令用數(shù)據(jù)文件填充數(shù)組可以使用*VREAD命令用數(shù)據(jù)文件填充數(shù)組(UtilityMenu>Parameters>ArrayParameters>ReadfromFile)。該命令從一個ASCII數(shù)據(jù)文件讀取信息,并由指定下標(biāo)處開始寫入數(shù)組中??梢酝ㄟ^數(shù)據(jù)描述符來控制從文件中讀取的信息的格式。數(shù)據(jù)描述符必須括在圓括號中,并放在*VREAD命令后。關(guān)于數(shù)據(jù)描述符的更多內(nèi)容在部分。數(shù)據(jù)描述符控制從每個記錄中讀取的數(shù)據(jù)數(shù)目,數(shù)據(jù)寬度和數(shù)據(jù)中小數(shù)點的位置。例如,有下面的數(shù)據(jù)文件:1.57.812.3-45.642.5和一個維數(shù)為3x2的數(shù)組EXAMPLE,執(zhí)行下面的命令(宏或輸入命令的一部分):*VREAD,EXAMPLE(1,1),,,2(3F6.1)結(jié)果為注意-不能直接在輸入窗口中執(zhí)行*VREAD命令。但是,通過UtilityMenu>Parameters>ArrayParameters>ReadfromFile彈出的對話框可以指定數(shù)據(jù)描述符并交互式執(zhí)行該命令。使用*TREAD命令用數(shù)據(jù)文件填充TABLE類型數(shù)組設(shè)置完TABLE類型數(shù)組后,有兩種選擇來指定其元素的值:跟其他類型的數(shù)組一樣,按照你的需要增加數(shù)值到表數(shù)組中,或者從一個外部文件的數(shù)據(jù)表中讀取。要從一個外部文件的數(shù)據(jù)表中讀取數(shù)據(jù),首先仍然要定義TABLE數(shù)組,指定行、列和面的數(shù)目及標(biāo)識字,然后通過*TREAD命令(UtilityMenu>Parameters>ArrayParameters>ReadfromFile)讀取包含數(shù)據(jù)表的ASCII文件。同時,還要指定在文件開頭和數(shù)據(jù)表的第一行之間需跳過的行數(shù)(NSKIP)。當(dāng)從外部文件中讀取數(shù)據(jù)時,要記住:包含數(shù)據(jù)表的ASCII文件可以由文本編輯器或外部應(yīng)用程序(如MicrosoftExcel)生成,但必須是ASCII形式,且由制表符分界;首先必須在ANSYS中定義數(shù)組,記住允許下標(biāo)值為(0,0);按行讀入數(shù)值,直到數(shù)組中每行的所有列都已填充完;然后,ANSYS一行行地輪流填充它們包含的列。一定要保證你定義的數(shù)組有正確的維數(shù)。如果你在ANSYS中錯誤地定義了一個少于要求列數(shù)的數(shù)組,ANSYS將用從數(shù)據(jù)表讀入的第一行剩下的數(shù)據(jù)開始填充數(shù)組的下一行。類似地,如果你在ANSYS中錯誤地定義了一個多于要求列數(shù)的數(shù)組,ANSYS將用從數(shù)據(jù)表另一行讀入的數(shù)值填充數(shù)組的所有列,僅當(dāng)換到下一行時才開始填充下一行??梢詮耐獠课募凶x取數(shù)據(jù)來生成1-D,2-D,和3-D表數(shù)組。下面的例子說明如何生成:例1:1-D表數(shù)組首先,用選擇的應(yīng)用程序(如電子制表軟件,文本編輯器等)生成1-D表,然后把該文件保存為帶制表符的文本文件。本例中,表名為"Tdata",包含時間和溫度的對應(yīng)數(shù)據(jù)。該表以ASCII形式表示如下:時間溫度表TimeTemp020130270475在ANSYS中,用*DIM命令(UtilityMenu>Parameters>ArrayParameters>Define/Edit)定義一個表數(shù)組參數(shù)"Tt"。指定其維數(shù)為4行1列,行標(biāo)識字為Time,列標(biāo)識字為Temp。注意,生成的數(shù)據(jù)表的數(shù)據(jù)為4行1列(第一列--TIME-是行的下標(biāo)值)。然后如上所述讀取該文件,指定跳過兩行。該TABLE數(shù)組在ANSYS中將如下所示:同樣的例子,可通過下面的命令實現(xiàn):*DIM,Tt,table,4,1,1,TIME,TEMP*TREAD,Tt,tdata,txt,,2例2:2-D表數(shù)組對于這個例子,先生成(用電子制表軟件,文本編輯器等)一個2-D表"T2data",其中包含作為時間函數(shù)的溫度數(shù)據(jù)和X坐標(biāo)值,然后把其讀入一個名為"Ttx"的表數(shù)組參數(shù)中。該表以ASCII形式表示如下:溫度(時間-X坐標(biāo))表TimeX-Coordinate00.3.5.7.9010152025301152025354022025355560430407090100在ANSYS中,用*DIM命令(UtilityMenu>Parameters>ArrayParameters>Define/Edit)定義一個表參數(shù)"Ttx"。指定其維數(shù)為4行5列,行標(biāo)識字為TIME,列標(biāo)識字為X-COORD。注意,生成的數(shù)據(jù)表的數(shù)據(jù)為4行5列,再加上行和列的下標(biāo)值。然后如前所述讀取該文件,指定跳過兩行。該表數(shù)組在ANSYS中將如下所示:同一個例子,可通過下面的命令實現(xiàn):*DIM,Ttx,table,4,5,,time,X-COORD*TREAD,Ttx,t2data,txt,,2例3:3-D表數(shù)組對于這個例子,先生成(用電子制表軟件,文本編輯器等)一個3-D表"T3data",其中包含作為時間函數(shù)的溫度數(shù)據(jù)、X坐標(biāo)值和Y坐標(biāo)值,然后把其讀入一個名為"Ttxy"的表數(shù)組參數(shù)中。該表以ASCII形式表示如下:溫度(時間-X坐標(biāo))表TimeX-Coordinate00.3.5.7.90101520253011520253540220253555604304070901001.50.3.5.7.90202530354012530354550230354565704405080100120在上面的例子中,粗體字的值(在(0,0,Z)處)表示各個面。每面中,行列的下標(biāo)值都是一樣的,只是面的下標(biāo)值及實際的數(shù)據(jù)值不同。上圖中的陰影部分顯示了面與面之間改變的實際的數(shù)據(jù)值。 在ANSYS中,通過*DIM命令(UtilityMenu>Parameters>ArrayParameters>Define/Edit)定義一個表數(shù)組參數(shù)"Ttxy"。在3-D表數(shù)組中,數(shù)組的維數(shù)由行、列和數(shù)據(jù)面的數(shù)目確定。第一列(TIME)是行的下標(biāo)值,第一行是列的下標(biāo)值。指定維數(shù)為4行,5列,2個面,行標(biāo)識字為TIME,列標(biāo)識字為X-COORD,面標(biāo)識字為Y-COORD。注意,生成的數(shù)據(jù)表的數(shù)據(jù)為4行5列2面,每面再加上行和列的下標(biāo)值。然后如前所述讀取該文件,指定跳過兩行。對于第二個數(shù)據(jù)面(Y=1.5),該TABLE數(shù)組在ANSYS中將如下所示: 同一個例子,可通過下面的命令實現(xiàn):*DIM,Ttxy,table,4,5,2,TIME,X-COORD,Y-COORD*TREAD,Ttxy,t3data,txt,,23.11.6插入值訪問表數(shù)組時,ANSYS可在已定義的值之間進(jìn)行插值。下面的例子說明了ANSYS如何在TABLE數(shù)組中進(jìn)行插值:給定A為TABLE數(shù)組參數(shù),ANSYS程序能計算A(1)和A(2)之間的任意值,如:A(1.5)等于20.0(12.0和28.0的中值)A(1.75)等于24.0A(1.9)等于26.4同樣,如果PQ是一個TABLE數(shù)組參數(shù)PQ(1.5,1)等于-3.4(2.8和-9.6的中值)PQ(1,1.5)等于3.5(2.8和4.2的中值)PQ(3.5,1.3)等于14.88可以利用該特性使用TABLE數(shù)組參數(shù)來描述函數(shù)y=f(x):用j=0列作為自變量x的值,j=1列作為y的值。例如,對于一個如下所示由5個點描述的時間相關(guān)力函數(shù):圖3-7時間相關(guān)力函數(shù)指定函數(shù)為一個TABLE數(shù)組參數(shù),其數(shù)組元素為力的值,從1到5的行下標(biāo)值是時間值0.0到9.3。該參數(shù)可表示如下:ANSYS能計算出(通過線性插值)在FORCE參數(shù)中沒有定義的時間處的力值。在上面的例子中,ANSYS可以計算出FORCE(9)的值為89.4375。如果參數(shù)位置超過了數(shù)組的維數(shù),那么該參數(shù)的值為最后的參數(shù)值,并不采用外推法。例如,ANSYS將給FORCE(5,2)賦值560.0,給FORCE(12)賦值0.0。從這些例子中可以看到TABLE數(shù)組參數(shù)在分析中是非常有用的。其典型應(yīng)用有時間歷程載荷函數(shù)、響應(yīng)譜曲線、壓力曲線、材料-溫度曲線、磁性材料的B-H曲線等等。運行時,TABLE數(shù)組參數(shù)比ARRAY類型參數(shù)需要更多的機(jī)時。把獲取值存入數(shù)組參數(shù)或恢復(fù)數(shù)組參數(shù)值可以通過*VGET命令(UtilityMenu>Parameters>GetArrayData)(與*GET命令類似)獲取ANSYS提供的值,并把它們儲存在一個數(shù)組中。必須為*VGET命令生成的數(shù)組參數(shù)確定起始位置。當(dāng)KLOOP為缺省值時,循環(huán)將按順序處理實體元。例如,*VGET,A(1),ELEM,5,CENT,X返回單元5的質(zhì)心的x坐標(biāo)值,并儲存在數(shù)組A的第一個值中,然后繼續(xù)獲取單元6,7…,直到填滿數(shù)組。在這個例子中,如果KLOOP為4,那么就會返回質(zhì)心的x、y和z坐標(biāo)值??梢酝ㄟ^*VPUT命令(UtilityMenu>Parameters>ArrayOperations>PutArrayData)來恢復(fù)數(shù)組參數(shù)的值。*VPUT命令使用和上面描述的*VGET命令相同的參數(shù),但是作用與之相反。在ANSYS命令參考手冊(ANSYSCommandsReference)的命令描述部分討論了*VPUT命令。ANSYS程序直接輸出向量,不進(jìn)行坐標(biāo)系統(tǒng)的轉(zhuǎn)換。*VPUT能替換已經(jīng)存在的數(shù)組內(nèi)容,但不能產(chǎn)生新的內(nèi)容。在數(shù)據(jù)庫中被改變的自由度結(jié)果可被所有后續(xù)的操作利用。其他臨時更改的結(jié)果主要用于即時打印和顯示。注意-使用該命令時要非常小心,因為它能更改整個數(shù)據(jù)庫部分。*VPUT命令不支持*VGET列出的所有內(nèi)容,因為把值放置在某些位置會使ANSYS數(shù)據(jù)庫發(fā)生矛盾。列出數(shù)組參數(shù)和標(biāo)量參數(shù)一樣,可用*STATUS命令來列出數(shù)組參數(shù)。下面的例子說明了*STATUS命令的用法:*STATUSABBREVIATIONSTATUS-ABBREVSTRINGSAVE_DBSAVERESUM_DBRESUMEQUIT

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論