Я пытался провести параметрические исследования в ABAQUS. Я создал файл *.inp (мастер) с помощью графического интерфейса в abaqus, затем написал код Matlab для создания нового файла *.inp с использованием мастера. Мастер-файл *.inp можно найти здесь. Он потребуется для запуска кода. . В новом файле *.inp все было так же, как и в мастере, за исключением нескольких конкретных строк, которые я изменяю для параметрических исследований, код приведен ниже. Я получаю файлы хорошо, но проблема в том, что ABAQUS не может прочитать файл и выдает сообщения об ошибках. При визуальном осмотре недостатков не нашел. Я предполагаю, что Matlab записывает файл *.inp в каком-то другом формате, который ABAQUS не может интерпретировать.
clc;
%Number of lines to be copied
total_lines=4538; %total number of lines
lines_b4_RP1=4406; % lines before reference point 1
%creating new files
for A=0
for R=[20 30 40 50 100 200 300 400 500]
fileroot = sprintf('P_SHS_120X120X1_NLA_I15_A%dR%d.inp', A,R);
main_inp=fopen('P_SHS_120X120X1_NLA_I15_A0R10.inp','r'); %inputting the main inp file to be copied
wfile=fopen(fileroot,'w+'); %wfile= writing the new file
for i=1:total_lines
data=fgets(main_inp);
if i<lines_b4_RP1
fprintf(wfile,'%s\n', data);
elseif i==lines_b4_RP1
formatline1=('%s\n');
txtline='*Node';
fprintf(wfile, formatline1 ,txtline);
elseif i==(lines_b4_RP1+1)
formatline2=('%d%s%d%s%d%s%d\r\n');
comma=',';
refpt1=1;
xcoord1=R*cosd(A);
ycoord1=R*sind(A);
zcoord1=-20;
fprintf(wfile, formatline2, refpt1,comma,xcoord1,comma,ycoord1,comma,zcoord1);
elseif i==(lines_b4_RP1+2)
fprintf(wfile, formatline1 ,txtline);
elseif i==(lines_b4_RP1+3)
refpt2=2;
xcoord2=R*cosd(A);
ycoord2=R*sind(A);
zcoord2=420;
fprintf(wfile, formatline2 ,refpt2,comma,xcoord2,comma,ycoord2,comma,zcoord2);
elseif i>(lines_b4_RP1+3)
fprintf(wfile,'%s\n', data);
else break;
end
end
fclose(main_inp);
fclose(wfile);
end
end
Заранее спасибо.
Н.Б. Образец файла *.dat с сообщением об ошибке приведен здесь.