Labfans是一个针对大学生、工程师和科研工作者的技术社区。 | 论坛首页 | 联系我们(Contact Us) |
![]() |
![]() |
#1 |
版主
注册日期: 2007-05-31
年龄: 39
帖子: 59
声望力: 21 ![]() ![]() |
![]()
前段时间因课题需要,写了个MATLAB程序,把MATLAB中计算的曲面导入ANSYS,以作进一步处理。
稍作修改,使其更有通用性。因水平有限,程序还有很多不足之处,请大家验证讨论。 例: 代码:
t=0:pi/10:2*pi; [x,y,z]=cylinder(2+cos(t)); mat2ans('cylinder.lgw',x,y,z); |
![]() |
![]() |
![]() |
#2 |
版主
注册日期: 2007-05-31
年龄: 39
帖子: 59
声望力: 21 ![]() ![]() |
![]()
源程序:
代码:
function mat2ans(filename,x,y,z) % 把MATLAB计算的曲线曲面导入ANSYS % author:paradiseboy % 2004-7-13 % Henan Polytechnic University % www.dytrol.com if(ischar(filename)==0) error('Invalid filename'); end if(ndims(z)~=2) error('Variable z must be a 2-dimensional array'); end if any((size(x)~=size(z))|(size(y)~=size(z))) % size of x or y does not size of z if((length(x)==1)&(length(y)==1)) % Must be specifying dx and dy, so make vectors dx=x; dy=y; x=((1:size(z,2))-1)*dx; y=((1:size(z,1))-1)*dy; end if((length(x)==size(z,2))&(length(y)==size(z,1))) % Must be specifying vectors xvec=x; yvec=y; [x,y]=meshgrid(xvec,yvec); else error('Unable to resolve x and y variables'); end end fid=fopen(filename,'w'); if(fid==-1) error(sprintf('Unable to write to %s',filename)); end [m,n]=size(z); x=reshape(x',m*n,1); y=reshape(y',m*n,1); z=reshape(z',m*n,1); fprintf(fid,'/prep7\r\n'); % 进入前处理 % 创建关键点 for i=1:m*n fprintf(fid,'k,%4.d,%.5f,%.5f,%.5f,\r\n',i,x(i),y(i),z(i)); end % 创建样条线 for i=1:m fprintf(fid,'FLST,3,%3.d,3\r\n',n); for j=1:n fprintf(fid,'FITEM,3,%4.d,\r\n',j+(i-1)*n); end fprintf(fid,'BSPLIN, ,P51X\r\n'); end % 由蒙皮技术创建面 fprintf(fid,'FLST,2,%2.d,4\r\n',m); for i=1:m fprintf(fid,'FITEM,2,%d\r\n',i); end fprintf(fid,'ASKIN,P51X\r\n'); fprintf(fid,'ldele,all\r\n'); fprintf(fid,'kdele,all\r\n'); fprintf(fid,'aplot\r\n'); fprintf(fid,'NUMCMP,ALL\r\n'); fprintf(fid,'FINISH\r\n'); fclose(fid); |
![]() |
![]() |
![]() |
#3 |
版主
注册日期: 2007-05-31
年龄: 39
帖子: 59
声望力: 21 ![]() ![]() |
![]()
>> z=x.*exp(-x.^2-y.^2);
>> [u,v,w]=surfnorm(x,y,z); >> surf(x,y,z); axis equal >> mat2ans('curve.lgw',x,y,z); |
![]() |
![]() |
![]() |
#4 |
版主
注册日期: 2007-05-31
年龄: 39
帖子: 59
声望力: 21 ![]() ![]() |
![]()
>> [x,y]=meshgrid(-3:.5:3,-3:.1:3);
>> z=peaks(x,y); >> mat2ans('curve.lgw',x,y,z); 这个曲面特性太复杂,在ANSYS中不能由一张曲面构成。 所以导入ansys中会出错,还请高人多指点,谢谢。『以上内容转自振动论坛』 |
![]() |
![]() |
![]() |
#5 |
高级会员
注册日期: 2007-07-26
年龄: 40
帖子: 268
声望力: 24 ![]() |
![]()
哈哈,多谢版主分享……
|
![]() |
![]() |
![]() |
#6 |
版主
注册日期: 2007-05-31
年龄: 39
帖子: 59
声望力: 21 ![]() ![]() |
![]()
共同努力!:tongue: :lol:
|
![]() |
![]() |
![]() |
#7 |
初级会员
注册日期: 2008-11-02
年龄: 38
帖子: 27
声望力: 17 ![]() |
![]()
好牛啊,小弟一定努力学习
|
![]() |
![]() |
![]() |
#8 |
初级会员
注册日期: 2008-08-15
年龄: 42
帖子: 2
声望力: 0 ![]() |
![]()
为什么我把原代码运行不出来结果?
|
![]() |
![]() |