我想看一级黄色大片_久久亚洲国产精品一区二区_久久精品免视看国产明星_91久久青青青国产免费

您的位置:網(wǎng)站首頁 > Ansys教程

輸出ANSYS單元節(jié)點(diǎn)文件和讀入C語言的方法

時(shí)間:2011-01-27 09:12:45 來源:未知

 ANSYS中使用EWRITE來輸出當(dāng)前選擇的單元到文件。他的參數(shù)為EWRITE, Fname, Ext, --, KAPPND, Format

  其中前兩個(gè)分別是文件名和后綴,KAPPND表明是否清空單元文件來進(jìn)行輸出(用0和1 表示),F(xiàn)ormat則是說明輸出文件的位寬,其中SHORT是默認(rèn)選項(xiàng),表示用六位位寬輸出,而LONG是表示8為位寬輸出。

  同樣的,ANSYS使用NWRITE來輸出當(dāng)前選擇的節(jié)點(diǎn)到文件。其輸入?yún)?shù)與EWRITE的輸入?yún)?shù)的含義相同,只不過沒有位寬的選項(xiàng)。但是節(jié)點(diǎn)的輸出文件的中第一列為節(jié)點(diǎn)號位寬是8位,而第二到第四列為節(jié)點(diǎn)坐標(biāo),各20為位寬,各列之間沒有空格。

  在使用C語言讀入網(wǎng)格數(shù)據(jù)的時(shí)候,可以使用上述的文件來讀入.通常比較方便的做法是知道節(jié)點(diǎn)個(gè)數(shù),和單元個(gè)數(shù)然后在依次讀入C程序中。但是上述輸出的單元和節(jié)點(diǎn)的文件并沒有提供這個(gè)信息。

  不過可已通過一下方式來產(chǎn)生這種文件:在APDL中先讀取單元數(shù)和節(jié)點(diǎn)數(shù),分別寫入對應(yīng)的單元和節(jié)點(diǎn)文件,然后以追加方式寫節(jié)點(diǎn)和單元文件。

  下面是一個(gè)簡單的用C語言讀取二維的三角網(wǎng)格的例子(沒有寫入單元和節(jié)點(diǎn)的個(gè)數(shù),而是通過計(jì)算行數(shù)來得到的)

  1 #include

  2 #include

  3 //ANSYS 's element output format

  4

  5 char NodeFormat[]="%*8c%20s%20s"; //節(jié)點(diǎn)的行格式

  6 char ELongFormat[]="%8d%8d%8d%*40c%8d";//單元文件三角網(wǎng)格的長格式

  7 char EShortFormat[]="%6d%6d%6d%*30c%6d";//單元文件三角網(wǎng)格的短格式

  8

  9

  10

  11

  12 int main(int argc, const char *argv[])

  13 {

  14 FILE* fp;

  15 char buffer[200];

  16 char xx[21];

  17 char yy[21];

  18 int ch;

  19 int mat,num;

  20 int linenum=0;

  21 int a[3]={0};

  22 char NodeFile[]="nodelist1.n";//節(jié)點(diǎn)文件

  23 char ElemFile[]="elemlist1.e";//單元文件

  24

  25 fp=fopen(NodeFile,"r");

  26

  27 //計(jì)算節(jié)點(diǎn)數(shù)目

  28 while((ch=fgetc(fp))!=EOF)

  29 {

  30 if(ch==' ')linenum++;

  31 }

  32 rewind(fp);

  33 printf("節(jié)點(diǎn)數(shù)是%d ",linenum);

  34 //讀入節(jié)點(diǎn)的坐標(biāo)

  35 while(fgets(buffer,200,fp)!=NULL)

  36 {

  37 xx[0]='