MATLAB导入CAD数据.docx

上传人:jian****018 文档编号:9967866 上传时间:2020-04-09 格式:DOCX 页数:5 大小:85.14KB
返回 下载 相关 举报
MATLAB导入CAD数据.docx_第1页
第1页 / 共5页
MATLAB导入CAD数据.docx_第2页
第2页 / 共5页
MATLAB导入CAD数据.docx_第3页
第3页 / 共5页
点击查看更多>>
资源描述
用AutoCAD绘制平面公式曲线(如渐开线、心形线)、空间公式曲线(如螺旋线)以及公式曲面(如马鞍形曲面)是比较困难的,一般情况下,需要用AutoCAD开发程序编程,但多数程序比较复杂,尤其是公式曲面的绘制程序,需要多层嵌套循环,复杂且运行效率低。快速且精确地绘制各种公式曲线、曲面恰恰是MATLAB的长项,但是MATLAB绘制的图形却不能直接用于机械零件设计。其中非常关键的一点,就是MATLAB绘制的曲线、曲面分别是由有限个点连接而成的折线和空间网格构成的,而在AutoCAD中绘制的曲线、曲面也是如此。因此,只需要把在MATLAB中绘制的公式曲线、曲面上所有的点坐标数据都提取出来,若能让AutoCAD正确识别,那么我们就可以在AutoCAD中精确地绘制这些曲线、曲面了。本文介绍了一种快速、精确地绘制各种公式曲线、曲面的方法,即在AutoCAD中通过调用经过Excel处理的MATLAB数据实现。二、AutoCAD和MATLAB的特点MATLAB是非常优秀的科学计算、信号处理以及图形显示软件,它有自身的语言,与其他高级语言相比,MATLAB提供了一个人机交互的数学环境,并以矩阵作为基本的数据结构,可大大节省编程时间。另外,MATLAB不仅语法规则简单,容易掌握,调试方便,还可以存储中间结果,这使得MATLAB既可以快捷、精确地绘制各种公式曲线、曲面,又可以很方便地提取中间数据。在工业设计领域,AutoCAD不仅被广泛应用于平面绘图,也可以用于三维建模,但在曲线、曲面造型方面不是很理想。它是开放型的人机交互系统,有多种语言接口,与外界的数据交换很灵活,这些特点使得它与MATLAB的结合成为可能。三、结合MATLAB在AutoCAD中绘制曲线、曲面的原理及方法1.原理MATLAB中的矩阵数据虽然很容易提取,但由于它不是AutoCAD能识别的格式,因此不能直接被AutoCAD调用,需要先用Excel对从MATLAB中提取的数据进行编辑,转换成AutoCAD可以识别的格式,才能在AutoCAD中绘出曲线、曲面。2.方法由于在AutoCAD中绘制平面曲线、空间曲线和曲面的绘制命令不同,且数据结构也不同,因此结合MATLAB的绘制方法也稍有区别。这种绘制方法的关键就是把数据格式转换成AutoCAD的绘制命令所需要的数据格式,只要熟悉AutoCAD的数据结构,就可以举一反三。(1)利用MATLAB得到公式曲面数据1)在MATLAB中绘制出曲面在MATLAB中输入如下命令:th,r=meshgrid(0:5:360)*pi/180,0:.05:1); %在极坐标系下设置一个7321的网格矩阵,即圆周方向分为73份,半径方向分为21份,总共分了1533个点,节点越多,图形越精确 %X,Y=pol2cart(th,r); %转化为笛卡儿坐标系%Z=X+i.*Y;F=abs(Z.4-1).(1/4);surf(X,Y,F); %显示曲面的立体图形%S=X(:) Y(:) F(:); %把X、Y、F 3个矩阵中的数据存储到矩阵S中%运行后得到曲面图形2)提取点坐标在MATLAB的“Workspace”窗口中可以看到S是个15333的矩阵,即表示有1533个点的坐标,每个点有三个坐标参数,双击打开S,则弹出“Array Editor:S”窗口,窗口表格中的数字就是矩阵的数据。先将全部数据复制到剪贴板,下面用Excel对坐标数据进行数据处理。(2)利用Excel编辑曲面数据打开Excel,将保存在剪贴板里的数据粘贴到Excel表格里,得到三列数据,每列1533行。其中,A、B、C列中的数据分别是曲面上各点的笛卡儿坐标系中的X、Y、Z值,而在AutoCAD中的笛卡儿坐标系的点坐标的输入形式为“x,y,z”,所以我们需要对A、B、C列的数据间加个“,”。方法是:点选中D1(D表示第D列,1表示第1行)格,在公式栏里输入“=A1&,&B1&,&C1”后回车,再将光标放到D1格的左下角,当光标变成黑色十字时,按住鼠标左键向下拖动,一直到D1533格,这时D列的数据格式已经变成了“X,Y,Z”,就可以被AutoCAD正确读取了。复制D列数据到剪贴板后,就可以在AutoCAD中绘制曲面了3.在AutoCAD中绘制曲面在AutoCAD中运行3dmesh(三维网格)命令,命令行提示“Enter size of mesh in M direction: ”,输入“73”后回车,命令行提示“Enter size of mesh in N direction: ”,输入“21”后再回车,(即7321的网格矩阵),然后在命令行中粘贴剪贴板中的数据,程序将自动运行,结束后就得到了马鞍形曲面特别需要注意的是,在运行3dmesh命令时的网格矩阵一定要和MATLAB中的相同,否则将得到错误图形或运行出错。如果输入的网格节点数不等于1533,则命令运行出错;如果输入成2173的网格,则命令执行结束后将得到错误的图形四、结束语用这种方法得到的公式曲线、曲面不是贴图,而是实际绘出和AutoCAD图元,不仅可以在MATLAB中控制精度,还可以被用于进行各种相应发的命令操作,比如复制、镜像、拉伸放样、旋转放样或用鼠标直接拖动任意节点来调整图形等等。AutoCAD结合MATLAB实现公式曲线、曲面的绘制,加强了AutoCAD在曲线、曲面造型方面的功能,使其在辅助设计方面发挥更大的作用。【原创】将MATLAB中的图形导入到AutoCAD中(2009-11-03 23:33:23)转载标签:杂谈分类:MATLABfunction mat2cad(data,type,filename)% 将MATLAB中的图形导入到autocad中%filename:保存图形数据的文件名,不包括扩展名%data:三维数组,图形所有点的坐标数据,第一页为x坐标,第二页是y坐标,第三页是z坐标%type:字符串(line或者face)%Example:%x,y=meshgrid(-10:.05:10);%z=peaks(x,y); %获取图形所有点的坐标值%surf(x,y,z)%在MATLAB环境中绘图,故本行可有可无,不影响结果%axis equal%data=cat(3,x,y,z);%mat2cad(data,face,peaks); %调用mat2acad3函数生成包含图形点坐标数据的脚本文件%脚本文件可以有两种使用方法:%1.用文本编辑器打开脚本文件,复制所有内容,粘贴到autoCAD的command框%2.在command框输入script,弹出对话框中选择刚刚生成的filename.scr% 先说说原理吧%autocad绘图是通过网格来完成的(与MATLAB中的原理一样),换句话说就是通过将所有点(x,y,z)连成一片!说明白点就是autocad不接受图像的直接导入,只能通过点阵绘图,也就是说只要我们能得到一个图形的所有点的坐标,那我们就能将它导入到autocad中!至于如何用数据直接在autocad中绘图我在这里就详细不介绍了(用3dmesh命令),下面我给出MATLAB程序,直接将数据导入即可%if nargin3error(输入参数至少2个,但不多于3个);elseif nargin=2filename=matlab2autocad;endx=data(:,:,1);y=data(:,:,2);fid=fopen(filename,.scr,w);switch typecase facez=data(:,:,3);fprintf(fid,3dmeshn);a,b=size(x);fprintf(fid,%dn,b);fprintf(fid,%dn,a);for i=1:numel(x)fprintf(fid,%g,%g,%gn,x(i),y(i),z(i);endfprintf(fid,zoomnen_3DORBITn);case lineif size(data,3)=2fprintf(fid,splinen);for i=1:numel(x)fprintf(fid,%g,%gn,x(i),y(i);endfprintf(fid,nnnzoomnen);elseifsize(data,3)=3z=data(:,:,3);fprintf(fid,splinen);for i=1:numel(x)fprintf(fid,%g,%g,%gn,x(i),y(i),z(i);endfprintf(fid,nnnzoomnen);endendfclose(fid);
展开阅读全文
相关资源
相关搜索

当前位置:首页 > 建筑环境 > 建筑资料


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!