- 积分
- 0
- 注册时间
- 2007-8-9
- 仿真币
-
- 最后登录
- 1970-1-1
|
ABAQUS中inp文件的非编程性质,导致了变量参数值修改的费时费工,因此,采用matlab文件读与写的形式,来生成大批量的修改参数后的inp文件,最后,采用批处理提交计算。
以下是matlab实现文本读与写的代码:
%
% 读入ABAQUS的inp文件LB_Q110.inp,修改其中参数,并
% 生成修改参数后的适用于批处理所用文件
% 54yiwei,2010-04-20,CS,CN
%
%
clear all
% 调用尺寸参数函数parameter()
[x]=parameter();
nfile=length(x(:,1));
% 指定要生成的文件名
Sbl='LB_Q110-';
Se='.inp';
nn=1:nfile;
for i=1:nfile
%
diameter=x(:,1);
thickness=x(:,2);
fid_inl=fopen('LB_Q110.inp','r');
%
if(-1==fid_inl),error(['can''t open fileB_Q110.inp']),end
%
Sm=num2str(nn(i));
S_lb=strcat(Sbl,Sm); %生成LB_Q110-XX文件名,其中XX为数字1到nfile
Soutl=strcat(Sbl,Sm,Se); %生成LB_Q110-XX.inp文件名
%
fid_outl=fopen(Soutl,'w'); %生成输出文件LB_Q110-XX.inp
%
%读取LB_Q110.inp中的第一行,
nfile=1;
Str1=fgetl(fid_inl);
%写入到LB_Q110-XX.inp
fprintf(fid_outl,'%s\r\n',Strl);
%读取LB_Q110-XX.inp文件每一行,修改参数
while ~feof(fid_inl) %判断是否为文件尾
%
nline=nline+1;
Sn=fgetl(fid_inl); %读取第nline
%判断修改第2、3和第4行
if nline==2
datestr=strcat('54yiwei,',date,',CS,CN');
fprintf(fid_outl,'%s\r\n',datestr);
elseif nline==3
fprintf(fid_outl,'diameter=%5.2f\r\n',diameter);
elseif nline==4
fprintf(fid_outl,'thickness=%5.2f\r\n',thickness);
else
fprintf(fid_outl,'%s\r\n',Sn);
end
if(nline>300),break;end
end
fclose(fid_inl);
fclose(fid_outl);
end
关于ABQUS批处理提交计算,SimWe仿真论坛有帖子介绍:
http://forum.simwe.com/viewthread.php?tid=775346&highlight=+zengguo823
inp文件批处理工具Abaqus-bat最新版1.3:
http://forum.simwe.com/viewthread.php?tid=894456&extra
后处理中结果文件.odb的自动读取问题,涉及python脚本语言,本人仍在研究中,有没有做过类似工作的朋友,能否探讨探讨。 |
评分
-
1
查看全部评分
-
|