如何在ANSYS中讀入txt文件的數(shù)據(jù)

2017-03-02  by:CAE仿真在線  來源:互聯(lián)網(wǎng)


1 不能直接在命令窗口中執(zhí)行*vread 命令
*read 命令的使用格式為:
*READ,PARR,FNAME,EXT,--,LABEL,N1,N2,N3,NSIP
前三項(xiàng)不用解釋,ext是文件的開展名,
--表示該域是不需要使用的值域
label是取值順序標(biāo)識字,ijk,ikj,jik,jki,kij,kji,空格表示ijk
n1,n2,n3,是當(dāng)label=kij ,n2,n3,缺省等于1時(shí)按照格式(((parr(i,j,k),k=1,n1),i=1,n2),j=1,n3)
讀入數(shù)據(jù)的
nskip是讀入數(shù)據(jù)文件時(shí)需要調(diào)過的開始行數(shù)

2 你在ansys的help里面察看vread命令,然后看它的用法格式,把你寫的小程序?qū)懗梢粋€(gè)mac文件,倒入mac文件就能從array parameter 里面看到你倒入的txt文件的數(shù)組形式

3ansys如何讀入txt文本中的地震波數(shù)據(jù)?

命令流(下面的命令必須用文本讀入的方法實(shí)現(xiàn),命令窗無法實(shí)現(xiàn)):
*DIM,EQ,,6000,1,,, !首先定義一個(gè)EQ數(shù)組
*VREAD,EQ,earthquake,TXT,,,,,,0, !將earthquake.txt讀入EQ數(shù)組里
(e16.0)
用的時(shí)候:
*DO,EQ,0.02,0.02*6000,0.02
TIME,TM
acel,EQ
!求解過程...
*ENDDO


一、輸入格式要求


ANSYS的APDL語言其語法等各方面均與Fortran有很大的共通之處。在數(shù)據(jù)的輸入輸出格式方面也可以參考Fortran。對于初學(xué)者來說,輸入數(shù)據(jù)時(shí)更容易引發(fā)錯(cuò)誤,所以下面談幾點(diǎn)在這方面的小認(rèn)識。
APDL 從外部文件輸入數(shù)據(jù),一般是采用*vread命令實(shí)現(xiàn),而輸入格式一般是在此命令的下一行定義,關(guān)于此命令的具體應(yīng)用,可參見ANSYS幫助。


在輸入格式方面與Fortran不同:

(1)APDL在數(shù)值方面沒有整型(I)、G型描述符,字符型數(shù)據(jù)采用A描述符,沒有H描述符。

(2)在Fortran中如果數(shù)據(jù)是整數(shù),但是輸入格式采用實(shí)數(shù)(如單精度浮點(diǎn)型F),則系統(tǒng)可以按指定格式自動為數(shù)據(jù)加上小數(shù)點(diǎn),但在APDL中如輸入數(shù)據(jù)為整數(shù),如:6,則格式 Fw.d中的d只能為零,否則會出現(xiàn)讀入錯(cuò)誤;而如果是6.則Fw.d中的d可以不為0。


另外在輸入時(shí)還容易引起輸入錯(cuò)誤的是:

(1) 輸入格式的長度大于數(shù)據(jù)長度(指前一個(gè)數(shù)據(jù)的起至緊接的下一個(gè)數(shù)據(jù)的起始前一位,小數(shù)點(diǎn)和負(fù)號均占一位),如6._ _ _ _-5.6,前面的數(shù)據(jù)長度應(yīng)為6,如果輸入格式Fw.d中的w>6,則會出現(xiàn)讀入錯(cuò)誤;

(2) 格式語句應(yīng)置于*vread的下一行,兩行之間可以有空行,但不能有其它語句,甚至是注釋語句也不能有。


二、輸出格式


輸出與輸入在格式方面基本一致,用*vwrite執(zhí)行,但也有不同之處:

輸出時(shí)可以使用%c控制字符輸出,%wI控制整數(shù)輸出;%w.pF或%w.pE或%w.pG控制實(shí)數(shù)輸出;

不能加括號。如格式語句: (F6.0,F5.2,A3),對應(yīng)于:%6.0F%5.2F%3c;

應(yīng)注意后一種格式中沒有用逗號相隔開,也沒有用括號括起,如有逗號,逗號也將一并輸出。

注意:輸入輸出格式最好從一行的開始寫,前面不要有空格


用%號(%wI)的這種格式可以輸出整型數(shù)字。


%這種控制語句也應(yīng)緊接*vwrite行,可以有空行,但不能有其它語句夾在中間(注釋也不行)。

應(yīng)當(dāng)指出的是,%這種控制語句不能用在控制輸入中。



三、一個(gè)例子


幾點(diǎn)說明:
1.使用*VWrite命令把數(shù)據(jù)輸出到文件時(shí),必須要使用*CFOpen命令事先打 開一個(gè) 文件;*CFOpen命令必須和*CFClos命令配對使用;
2.*Vwrite命令后面必須緊跟輸出格式說明;
例如:
*Vwrite,a,b,c
(格式說明)
3.格式說明中Fw.d,w的數(shù)值不能太小,以至于輸出的數(shù)據(jù)丟失了整數(shù)部分的 精度;
例如:a=123.4,
Fw.d中的w至少要為5,否則在ANSYS中運(yùn)行時(shí)報(bào)錯(cuò);這樣的非語法類錯(cuò)誤,很難發(fā)現(xiàn);為了避免此類錯(cuò)誤發(fā)生,
w應(yīng)該至少設(shè)置為輸出數(shù)據(jù)的所有數(shù)字個(gè)數(shù)+1(小數(shù)點(diǎn))
附:常用格式說明:***********************************************************************************************
1.''(一對單引號):用于在輸出數(shù)據(jù)的時(shí)候,輸出注釋字符串,常常用來增加一些說明文字,增加可讀性;
比如:
*Vwrite,Widh,Length,Height
('寬度為:',F6.3,'長度為:',F6.3,'高度為:',F6.3)
2.nX:輸出n個(gè)空格;
比如:在輸出的a,b,c3個(gè)數(shù)據(jù)之間加入2個(gè)空格;
*vwrite,a,b,c
(F6.3,2X,F6.3,2X,F6.3)
3./:結(jié)束當(dāng)前行的輸出,轉(zhuǎn)到下一行輸出;如果兩個(gè)//連續(xù)出現(xiàn),則添加一個(gè)空行;

實(shí)數(shù)及數(shù)組的輸出與示例 一、實(shí)數(shù)的輸出 ①實(shí)數(shù)的輸出比較簡單,類似FORTRAN的可采用D/E//F/G格式輸出。例如: *CFOPEN,MYFILE,TXT X1=4.56 X2=12345.678 X3=1.23E-6 *VWRITE,X1,X2,X3 (3d15.6) *VWRITE,X1,X2,X3 (3E15.6) *VWRITE,X1,X2,X3 (3f15.6) *VWRITE,X1,X2,X3 (3g15.6) *CFCLOSE 文件MYFILE.TXT如下: 0.456000D+01 0.123457D+05 0.123000D-05 0.456000E+01 0.123457E+05 0.123000E-05 4.560000 12345.678000 0.000001 4.56000 12345.7 0.123000E-05 ②當(dāng)采用科學(xué)計(jì)數(shù)時(shí),輸出格式的第一位都是“0”開頭,如上文中的0.123457E+05,假如我們希望寫成1.234568E+04或12.345678E+03的格式時(shí),可采用如下格式:1PE15.6或2PE15.6。則上文中的命令流可改為: *VWRITE,x1,x2,x3 (3(1pe15.6)) 或 *VWRITE,x1,x2,x3 (1pe15.3,3pe15.4,1pe15.6) ③采用C格式輸出實(shí)數(shù) C格式也有d-整型、f-浮點(diǎn)、e-科學(xué)、g-任意、c-字符、s-字符串等格式,均采用%w.dx形式,而%/則為回車換行。例如: *CFOPEN,MYFILE,TXT X1=4.56 X2=12345.678 X3=1.23E-6 *VWRITE,X1,X2,X3,4567 %14.6f%15.6e%16.6g%10d *CFCLOSE 文件MYFILE.TXT如下: 4.560000 1.234568E+04 1.230000E-06 4567 二、數(shù)組的輸出 (一)VWRITE方法 數(shù)組輸出格式同上,但其輸出控制卻有很多種形式,且ANSYS按列輸出數(shù)組。 設(shè)有數(shù)組(矩陣形式,這里不用插圖了): |1.1 2.1 3.1| |1.2 2.2 3.2| ABC(5,3)=|1.3 2.3 3.3| |1.4 2.4 3.4| |1.5 2.5 3.5| *VWRITE命令如下幾種方式: ① 與矩陣寫法類同的按列輸出:利用ANSYS的輸出特點(diǎn),分別寫出各列表示符即可,而行則從1到最終的5。 ② 同上格式,但按矩陣元素輸出用一對()將矩陣表達(dá)式括起來變?yōu)榫仃囋?這樣用循環(huán)輸出,如命令流中所示。 ③當(dāng)列很多時(shí)不可能寫出每個(gè)列字符表達(dá)式,此時(shí)可采用$字符格式$字符表示連續(xù)輸出,沒有回車符號,當(dāng)一行寫完后,增加一個(gè)非$格式語句即可。但是這里增加了一個(gè)臨時(shí)數(shù)組,以存儲某行的數(shù)據(jù)。 上述輸出格式便于導(dǎo)入EXCELL中處理數(shù)據(jù)。 (二)MWRITE命令 數(shù)組最好采用*MWRITE命令輸出,不管是否按類似矩陣格式輸出,此命令均可較好解決。當(dāng)矩陣列數(shù)較少時(shí),可以采用類似行列輸出;當(dāng)矩陣列數(shù)很大時(shí),可以按每行N個(gè)數(shù)據(jù)控制輸出。 以上4種方法的命令流如下: *DIM,ABC,,5,3 !數(shù)組賦值 *DO,I,1,5 *DO,J,1,3 ABC(I,J)=J+I/10 *ENDDO *ENDDO !VWRITE數(shù)組輸出 *CFOPEN,MYFILE,TXT !①格式1-按行列輸出(行數(shù)從1~最終的5,列不變) *VWRITE,ABC(1,1),ABC(1,2),ABC(1,3) (3F6.1) !②格式2-按矩陣元素輸出 *DO,I,1,5 *VWRITE,(ABC(I,1)),(ABC(I,2)),(ABC(I,3)) (3F6.2) *ENDDO !③格式3-多列時(shí)按行列輸出 *DIM,TELS,,3 *DO,I,1,5 *DO,J,1,3 TELS(J)=ABC(I,J) *ENDDO *VWRITE,TELS(1) (F6.3,$) *VWRITE (' ') *ENDDO *CFCLOSE !④MWRITE輸出數(shù)組 !ABCD(I,J,K) *DIM,ABCD,,50,30 !數(shù)組賦值 *DO,I,1,50 *DO,J,1,30 ABCD(I,J)=j+i/100 *ENDDO *ENDDO *MWRITE,ABCD,MYFILE1,TXT,,JIK,30,50 (30F9.4) !也可采用(10f9.4)格式,以輸出150行*10個(gè)的數(shù)據(jù)。 文件MYFILE.TXT可以通過記事本查看。 1.1 2.1 3.1 1.2 2.2 3.2 1.3 2.3 3.3 1.4 2.4 3.4 1.5 2.5 3.5 1.10 2.10 3.10 1.20 2.20 3.20 1.30 2.30 3.30 1.40 2.40 3.40 1.50 2.50 3.50 1.100 2.100 3.100 1.200 2.200 3.200 1.300 2.300 3.300 1.400 2.400 3.400 1.500 2.500 3.500 文件MYFILE1.TXT的內(nèi)容可通過EXCELL打開:EXCELL>打開(所有文件)>選擇MYFILE1.TXT>選擇分隔符>下一步>選擇空格>完成,該表為50行*30列的數(shù)據(jù)表。


*GET, ELEMENTNUM,ELEMENT,0,COUNT

*GET, NODENUM,NODE,0,COUNT

*CFOPEN,c:tecplot,plt !!tecplot的輸出文件

*VWRITE ('TITLE="Ansys to Tecplot FOR TETRAHEDRON MESH"')

*VWRITE ('VARIABLES="X","Y","Z"')

*VWRITE, NODENUM,ELEMENTNUM ZONE N=%5I,E=%7I,F=FEPOINT,ET=TETRAHEDRON

*DO, I,1,NODENUM,1

*VWRITE, NX(I),NY(I),NZ(I) (3F12.6)

*ENDDO

*DO, I,1,ELEMENTNUM,1 *VWRITE, NELEM(I,1),NELEM(I,2),NELEM(I,3),NELEM(I,5) %7I%7I%7I%7I

*ENDDO *CFCLOS

finish /clear Item='Weight' data=234.56 Unit='Kg' *Dim,AA,Array,4,1,1 AA(1)=10.2,324.5,123.7,908 *Dim,BB,Char,3,1,1 BB(1)='I am','a good','man' *CFopen,'G:ANSYSUserabc','txt' *vwrite, (5X,'*Vwrite Demo') *vwrite, ('******************************************************') *vwrite,Item,data,Unit (A8,F10.2,A8) *vwrite (/'*********** Array Parameter Output Demo**************') *Vwrite, ('Float Format /SEQU Keyword:') *vwrite,SEQU,AA(1) (F3.0,4F10.4) *vwrite,AA(1),AA(2),AA(3),AA(4) (//'Float /x Format:'/F4.1,2X,F10.4,2X,F10.4,2X,F10.4) *vwrite,AA(1),AA(2),AA(3),AA(4) (//'Float Format:'/4F10.4) *vwrite,AA(1),AA(2),AA(3),AA(4) (//'Double Format:'/D13.5,/D15.6,/D18.10,/D10.3) *vwrite, (/'****************char parametric output demo *******') *vwrite,BB(1),BB(2),BB(3) (3A6) *CFclos 輸出結(jié)果為: *Vwrite Demo ****************************************************** Weight 234.56Kg *********** Array Parameter Output Demo************** Float Format /SEQU Keyword: 1. 10.2000 2. 324.5000 3. 123.7000 4. 908.0000 Float /x Format: 10.2 324.5000 123.7000 908.0000 Float Format: 10.2000 324.5000 123.7000 908.0000 Double Format: 0.10200D+02 0.324500D+03 0.1237000000D+03 0.908D+03 ****************char parametric output demo ******* I am a goodman /*******************************************************/

開放分享:優(yōu)質(zhì)有限元技術(shù)文章,助你自學(xué)成才

相關(guān)標(biāo)簽搜索:如何在ANSYS中讀入txt文件的數(shù)據(jù) Ansys有限元培訓(xùn) Ansys workbench培訓(xùn) ansys視頻教程 ansys workbench教程 ansys APDL經(jīng)典教程 ansys資料下載 ansys技術(shù)咨詢 ansys基礎(chǔ)知識 ansys代做 Fluent、CFX流體分析 HFSS電磁分析 Abaqus培訓(xùn) 

編輯
在線報(bào)名:
  • 客服在線請直接聯(lián)系我們的客服,您也可以通過下面的方式進(jìn)行在線報(bào)名,我們會及時(shí)給您回復(fù)電話,謝謝!
驗(yàn)證碼

全國服務(wù)熱線

1358-032-9919

廣州公司:
廣州市環(huán)市中路306號金鷹大廈3800
電話:13580329919
          135-8032-9919
培訓(xùn)QQ咨詢:點(diǎn)擊咨詢 點(diǎn)擊咨詢
項(xiàng)目QQ咨詢:點(diǎn)擊咨詢
email:kf@1cae.com