找回密码
 注册
Simdroid-非首页
查看: 930|回复: 8

【原创】MATLAB中曲面转入ANSYS

[复制链接]
发表于 2004-7-13 20:45:52 | 显示全部楼层 |阅读模式 来自 河南焦作
来自动力学与控制技术论坛:http://www.dytrol.com/
  
前段时间因课题需要,写了个MATLAB程序,把MATLAB中计算的曲面导入ANSYS,以作进一步处理。
  
稍作修改,使其更有通用性。因水平有限,程序还有很多不足之处,请大家验证讨论。
  
例:
  
t=0:pi/10:2*pi;
[x,y,z]=cylinder(2+cos(t));
  
mat2ans('cylinder.lgw',x,y,z);
  
运行ANSYS,在命令窗口输入:/input,cylinder.lgw 得到ansys中的曲面,该过程中ansys提示有几个错误,有些样条线和关键点不能删除,那是需要保留的。
  
原程序请见http://www.dytrol.com/dispbbs.asp?boardID=11&ID=4550&page=1

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?注册

×

评分

1

查看全部评分

 楼主| 发表于 2004-7-13 20:59:51 | 显示全部楼层 来自 河南焦作

回复: 【原创】MATLAB中曲面转入ANSYS

Simdroid开发平台
该程序还有许多不完善的地方,比如曲面特性太复杂,在ANSYS中不能成功生成曲面等问题,欢迎大家踊跃讨论啊!
发表于 2004-7-20 10:36:48 | 显示全部楼层 来自 湖北十堰

回复: 【原创】MATLAB中曲面转入ANSYS

这个程序在matlab6.1中似乎有点问题
总是说mat2ans没定义?
不知为啥?我现在也想在这方面做些尝试!
 楼主| 发表于 2004-7-20 21:47:14 | 显示全部楼层 来自 河南焦作

回复: 回复: 【原创】MATLAB中曲面转入ANSYS

kay_guo wrote:
这个程序在matlab6.1中似乎有点问题
总是说mat2ans没定义?
不知为啥?我现在也想在这方面做些尝试!

  
总于有对这方面感兴趣的了,我现在在写把matlab中封闭曲面导入ANSYS能生成实体的程序,欢迎讨论!
mat2ans是我自己写的程序,代码如下:
  
function mat2ans(filename,x,y,z)
%  把MATLAB计算的曲线曲面导入ANSYS
%  作者:xiegang
%  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);

评分

1

查看全部评分

发表于 2004-7-21 08:59:05 | 显示全部楼层 来自 湖北十堰

回复: 【原创】MATLAB中曲面转入ANSYS

我先研究一下,我借了一本《matlab有限元分析与应用》其中有好多关于节点的计算方法。等我看完了再请教。
发表于 2005-8-16 17:27:03 | 显示全部楼层 来自 湖北武汉

Re:【原创】MATLAB中曲面转入ANSYS

请问paradiseboy对下面这个问题怎么看。

http://www.simwe.com/forum/viewthread.php?tid=512019
http://www.simwe.com/forum/viewthread.php?tid=516785
paradiseboy很牛啊。
头衔:首席信息官CIO
  等级:校长
  文章:1779
  积分:2
  现金:2477
  魅力:0
  注册:2004-2-25

感觉动力学与控制技术论坛和这里象是兄弟帮。两边交流很多。
发表于 2005-8-18 23:43:39 | 显示全部楼层 来自 吉林吉林

Re:【原创】MATLAB中曲面转入ANSYS

非常感谢这位大侠提供原程序!!!我还没研究你的那个原文件,照着试了一把,但在ansys里出错了,说无法计算线的方向,还有线的点相距太近!以后多向大家学习!!
发表于 2006-3-31 11:29:20 | 显示全部楼层 来自 辽宁阜新

Re:【原创】MATLAB中曲面转入ANSYS

我按照斑竹的方法进行了操作,可是遇到了问题,可以生成点和线,可是最后不能生成面.提示说:点太近或者线太近了.
请指教.我正好需要这方面的材料
谢谢斑竹的分享啊
发表于 2009-3-27 17:17:52 | 显示全部楼层 来自 陕西西安
不错的帖子
回复 不支持

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|小黑屋|联系我们|仿真互动网 ( 京ICP备15048925号-7 )

GMT+8, 2024-6-4 22:17 , Processed in 0.061689 second(s), 18 queries , Gzip On, MemCache On.

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表