APDL中*Vread使用用法介紹
本篇文章為文件讀入與寫出系列文章第二篇。主要介紹文件讀入的相關(guān)知識(shí)。
*Vread命令使用格式如下:
*Vread,ParP,Frname,Ext,--,Label,n1,n2,n3,Nskip
其中,ParP是讀入數(shù)據(jù)的賦值對(duì)象數(shù)組,使用前需采用*dim命令進(jìn)行定義;Frname為帶路徑的文件名,注意路徑不能有中文名,如果是放在工作目錄下,則直接寫文件名字即可;Ext是文件的擴(kuò)展名;Labl是取值順序標(biāo)識(shí)字符,分別為IJK、IKJ、JIK、JKI、KIJ、KJI,默認(rèn)為IJK;n1、n2、n3分別為根據(jù)取值順序標(biāo)識(shí)符所采用的取值;Nskip為讀入數(shù)據(jù)文件時(shí)需要跳過(guò)的開始行數(shù),默認(rèn)為0,表示從第一行開始讀入數(shù)據(jù)。
值得注意是,*Vread命令通過(guò)外部宏文件輸入使用,不可直接復(fù)制在命令流窗口中使用,一般使用格式如下,同學(xué)們只需修改宏文件名字和*Vread命令內(nèi)容即可。
*Create,dataread,mac !創(chuàng)建宏文件,名為dataread,名稱可更改
*dim,Elcentro,,2600 !創(chuàng)建讀入數(shù)據(jù)的數(shù)組
*vread,Elcentro(1,1),Elcentro,txt,,ijk,n1,n2 !讀入文件Elcentro.txt的數(shù)據(jù)
(f6.3) !讀入格式
*End !結(jié)束宏文件的創(chuàng)建
Dataread !運(yùn)行宏文件
上述給出了使用*vread的一般步驟,同學(xué)們?cè)谑褂玫倪^(guò)程中可以具體參考,由于是使用了命令*Create創(chuàng)建宏文件,*Vread出現(xiàn)在宏文件中,故而上述命令可以直接復(fù)制在ANSYS命令流窗口中進(jìn)行使用,運(yùn)行完改命令后,會(huì)在當(dāng)前工作目錄下,自動(dòng)生成一個(gè)以mac為擴(kuò)展名的宏文件,名字為Dataread,當(dāng)然可根據(jù)需要自己修改。
讀入的文件,最好以txt為擴(kuò)展名,并且調(diào)好格式,放入工作目錄下。
使用*Vread命令比較難得是讀取順序標(biāo)識(shí)符的設(shè)定,也即是Label與后續(xù)N1、N2、N3的設(shè)定。
一、順序標(biāo)識(shí)符Label的設(shè)定
Label的設(shè)定決定了寫入數(shù)據(jù)的順序,I代表行、J代表列、K代表面。如果是IJK,則寫入數(shù)組的時(shí)候先寫入面,在寫入列,最后寫入行,也即列的變化比行的變化快。若為JIK,則是先寫面,在寫行,最后寫入列,也即行的變化比列快。在平時(shí)使用中,一般只用IJK和JIK兩種格式,對(duì)于二維數(shù)組來(lái)講,沒(méi)有面的寫入,只有行列的寫入變化。
二、N1、N2、N3數(shù)值的設(shè)定
N1、N2、N3表示按上面指定的順序,各下標(biāo)分別要寫入的數(shù)據(jù)個(gè)數(shù)。如IJK,3,4,1 表示數(shù)組ParP按列寫入,共寫3列4行。N2、N3默認(rèn)數(shù)值為1。
今以一個(gè)二維數(shù)組來(lái)說(shuō)明如何取用。
【例】現(xiàn)有如下文件,名為data.txt,文件內(nèi)容如下,為一個(gè)6*5二維數(shù)組,采用*vread命令進(jìn)行讀取。
11 12 13 14 15
16 17 18 19 20
21 22 23 24 25
26 27 28 29 30
31 32 33 34 35
36 37 38 39 40
1、全部讀取
(1)采用IJK的讀取順序
*Create,dataread,mac
*dim,DD,array,6,5
*vread,DD(1,1),data,txt,,ijk,6,5
(5f3.0)
*End
Dataread
讀取結(jié)果如下:
上述命令流中,(5F3.0)表示讀取格式, ANSYS中讀取文件總是按照行進(jìn)行,最后結(jié)果的不同只是和寫入數(shù)組的順序以及讀取的數(shù)值個(gè)數(shù)有關(guān),(5F3.0)意思則為每行按照F格式讀取5個(gè)數(shù)據(jù),每個(gè)數(shù)據(jù)三個(gè)字節(jié),其中小數(shù)位為0,如果讀取的數(shù)據(jù)個(gè)數(shù)超過(guò)我們已有個(gè)數(shù),則會(huì)以0代替。
讀取的數(shù)據(jù)按照我們事先指定的寫入順序?qū)懭氲綌?shù)組,例如此處指定的是IJK,也即先按照列的順序?qū)懭耄瑢懭?個(gè)數(shù)據(jù),然后在進(jìn)行下一列的寫入,共寫5列,最終就形成了如上的結(jié)果。如果我們改下寫入的數(shù)目,看下效果,例如對(duì)*vread內(nèi)容做如下修改:
*vread,DD(1,1),data,txt,,ijk,5,1
改變之后,每列只寫入5個(gè)數(shù)據(jù),且只有一列,其余以0代替。
*vread,DD(1,1),data,txt,,ijk,3,2
(2)采用JIK的讀取順序
*Create,dataread,mac
*dim,DD,array,6,5
*vread,DD(1,1),data,txt,,jik,5,6
(5f3.0)
*End
Dataread
讀取結(jié)果如下:
了解完讀入原理后,有同學(xué)可能還不怎么理解,那么在實(shí)際操作過(guò)程中,按如下方式來(lái)操作即可,此方法只針對(duì)需將數(shù)據(jù)全部讀入數(shù)組,且各元素位置信息同源文件一致時(shí)。
1)、確定讀入數(shù)據(jù)的維度,如行數(shù)m以及列數(shù)n。
2)、定義數(shù)組,維數(shù)為m*n
*dim,parp,array,m,n
3)、采用*vread命令,并且采用JIK的順序
*vread,parp(1,1),data,txt,,jik,n,m
工程師必備
- 項(xiàng)目客服
- 培訓(xùn)客服
- 平臺(tái)客服
TOP




















