- 积分
- 1
- 注册时间
- 2010-12-16
- 仿真币
-
- 最后登录
- 1970-1-1
|
[1]背景:用Patran画网格结点,只要有限元模型中的结点网格单元信息,从BDF文件中提取出来存到另一TXT文本中。(本人用于剖面刚度分析)
[2]先贴一点BDF中信息:
==============================================
$ NASTRAN input file created by the Patran 2008r2 (MD Enabled) input
$ file translator on January 13, 2011 at 20:25:29.
$
$ Direct Text Input for Bulk Data
$ Elements and Element Properties for region : pro
PSHELL 1 1 1. 1 1
$ Pset: "pro" will be imported as: "pshell.1"
CQUAD8 1 1 1 3 11 9 2 7
10 6
CQUAD8 2 1 3 5 13 11 4 8
12 7
CQUAD8 3 1 9 11 19 17 10 15
18 14
CQUAD8 4 1 11 13 21 19 12 16
20 15
CQUAD8 5 1 17 19 27 25 18 23
26 22
...
GRID 39 -.831 1.695 0.
GRID 40 -.838 1.765 0.
GRID 41 0. 1.625 0.
GRID 42 0. 1.66 0.
GRID 43 0. 1.695 0.
GRID 44 0. 1.73 0.
GRID* 45 -4.99487-7 1.765
* 0.
GRID 46 .824 1.625 0.
GRID 47 .831 1.695 0.
GRID 48 .838 1.765 0.
GRID 49 1.648 1.625 0.
GRID 50 1.655 1.66 0.
...
====================================================
[3]解决方法:
while ~feof(fp1)
tline=fgetl(fp1);
if strncmp(tline,'CQUAD8',6)
tline2=fgetl(fp1);
tline=strcat(tline,tline2);
fprintf(fp2,'%s\r\n',tline);
continue
end
if strncmp(tline,'GRID ',5)
fprintf(fp2,'%s\r\n',tline);
continue
end
end
[4]效果展示:
=====================================
CQUAD8 1 1 1 3 11 9 2 7 10 6
CQUAD8 2 1 3 5 13 11 4 8 12 7
CQUAD8 3 1 9 11 19 17 10 15 18 14
CQUAD8 4 1 11 13 21 19 12 16 20 15
CQUAD8 5 1 17 19 27 25 18 23 26 22
...
CQUAD8 360 1 1550 1552 506 508 1551 1555 507 1554
GRID 1 -8.24 1.625 0.
GRID 2 -8.275 1.66 0.
GRID 3 -8.31 1.695 0.
GRID 4 -8.345 1.73 0.
GRID 5 -8.38 1.765 0.
GRID 6 -7.416 1.625 0.
GRID 7 -7.479 1.695 0.
GRID 8 -7.542 1.765 0.
GRID 9 -6.592 1.625 0.
GRID 10 -6.62 1.66 0.
...
====================================================
[5]总结:
1)去掉了Patran中的大段解释说明字符;
2)将CQUAD8 及其下一行 续接到了一起;
3)将Equivalence产生的{GRID* 45 -4.99487-7 1.765
* 0.}行滤掉了;
4)fgetl对文件一行一行处理,理论上可以处理任何大的任一行任一列。希望抛砖引玉,灵活运用实现对
格式化和非格式数据混合、字符和数字混合的大文件进行各种操作处理。 |
评分
-
1
查看全部评分
-
|