- 积分
- 0
- 注册时间
- 2005-5-28
- 仿真币
-
- 最后登录
- 1970-1-1
|
发表于 2010-11-4 10:57:31
|
显示全部楼层
来自 浙江杭州
function addplum
clc
[filename,filepath]=uigetfile('*.txt','input');
fid=fopen(filename,'rt');
if fid<0
errordlg({'read error'});
else
frewind(fid);
node_num=fscanf(fid,'%d',[1,1]);
element_num=fscanf(fid,'%d',[1,1]);
eletype_number=fscanf(fid,'%d',[1,1]);
elereal_number=fscanf(fid,'%d',[1,1]);
node_all=fscanf(fid,'%f',[7,node_num]);
node_all=node_all';
element_all=fscanf(fid,'%f',[4,element_num]);
element_all=element_all';
end
fclose(fid);
ele_no=element_all(:,1);
ele_lp=element_all(:,2);
ele_rp=element_all(:,3);
ele_load=element_all(:,4);
node_no=node_all(:,1);
node_x=node_all(:,2);
node_y=node_all(:,3);
node_z=node_all(:,4);
node_xload=node_all(:,5);
node_yload=node_all(:,6);
node_zload=node_all(:,7);
mass=node_all(:,1);
for i=1:1:element_num
ele_length_xy(i)=sqrt((node_x(ele_lp(i))-node_x(ele_rp(i)))^2+(node_y(ele_lp(i))-node_y(ele_rp(i)))^2);% ele_length_xy(i) means the shadow length in plan XY.
end
for i=1:1:node_num
nodeforce_z(i)=node_zload(i);
for j=1:1:element_num
if ele_lp(j)==i | ele_rp(j)==i;
nodeforce_z(i)=nodeforce_z(i)+0.5*ele_load(j)*ele_length_xy(j);
end
end
mass(i)=nodeforce_z(i)/9.8; %The unit is 1000kg(t) here.
end
fid=fopen('MassAdd.txt','wt');%ansys output file
if fid<0
errordlg({'error'});
else
fprintf(fid,'/PREP7\nET,%d,MASS21\n',eletype_number+1); %start output
fprintf(fid,'KEYOPT,%d,1,0\nKEYOPT,%d,2,0\nKEYOPT,%d,3,2\n',eletype_number+1,eletype_number+1,eletype_number+1);
for i=1:1:node_num
fprintf(fid,'R,%d,%f\n',i+elereal_number,mass(i));%assign mass to nodes.
end
for i=1:1:node_num
fprintf(fid,'\n\nTYPE,%d\nMAT,1\nREAL,%d\nESYS,0\n',eletype_number+1,i+elereal_number);
fprintf(fid,'E,%d\n',node_no(i));
end
end
fclose(fid);
msgbox('done!') |
|