原文地址:https://stuch.cn/article/240
下载链接https://cloud.stuch.cn/s/EWUr,兑换获的提取密码。
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%% 主程序 %%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%将主程序存为m文件
clear;
%背景:
% Hypermesh具有强大的网格划分功能,可以作为很多有限元的前处理,
% 大家知道,hypermesh可以导出 lsdyna的keyword文件,abaqus的inp文件
% Nastran,Marc,Ansys等软件的模型文件。
% 暂时为止还不能导出 Flac3D的模型文件。
% 程序目的:
% 本程序为了能够使得Hypermesh能作为Flac3D的前处理。
% 使用步骤:
% 1.利用hypermesh划分网格
% 2.导出为lsdyna的关键字文件 k文件。
% 3.利用此程序,导出flac3d模型文件。
%方法:把k文件替换如下的‘Pile2.k',outputname为输出的结果文件名,可任取。
%注意事项:本程序只针对实体单元,8节点六面体单元(B8),或者6节点棱柱单元(W6)
%hl.ren@hotmail.com
%%%%输入lsdyna的关键字模型文件。
keyfilename='Pile2.k'; %输入关键字文件
outputname='Pile2.txt'; %输出的关键字文件名。
[Nodesum,elementsum,partsum]=keyfileinput(keyfilename);
Gnode=Nodesum(:,1:4);
%%%% 模型数据转换 keyword->Flac3D文件
iele=size(elementsum,1);
eh=[2 1 3 4 5 6 7 8 9 10];
elementsum=elementsum(:,eh);
B8=zeros(1,9);iB=1;
W6=zeros(1,7);iW=1;
partsum=partsum(:,1);
ipa=size(partsum,1);
Zgroup=ones(1,ipa);
for i=1:iele
k56(1:3)=elementsum(i,[1 7 8]);
iz=find(partsum==k56(1));
if size(iz,1)>1
disp('part error');
end
iz1=Zgroup(1,iz);
Zgroup(iz1+1,iz)=elementsum(i,2);
Zgroup(1,iz)=Zgroup(1,iz)+1;
if k56(2)==k56(3)
W6(iW,:)=elementsum(i,[2 3 4 5 6 7 9]);
iW=iW+1;
else
B8(iB,:)=elementsum(i,[2 3 4 5 6 7 8 9 10]);
iB=iB+1;
好在精选、乐于分享
我要推荐