matlab与UG数据交换

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

Matlab与UG/Pro E 之间的数据交换方法

为了充分利用各种软件的优点,经常需要在不同软件之间进行数据传递。由于NURBS曲线已成为CAD领域的标准,而MATLAB具有强大的数值计算功能。如果数据能在MATLAB与常见的CAD软件传递,可以很大程度提高设计、计算效率。在经过尝试后,实现了MATLAB与UG\Proe之间数据的双向传递,在此分享出来,供有需要的参考。

一三维模型导入到MATLAB

不同的三维模型软件之间为了交换数据,美国某协会规定了目前三维软件之间一种通用的数据存储格式STL ,对各种三维软件,生成STL文件是很简单的,现以UG和ProE分别说明。

对UG

这里输出类型选择文本,因为后面MATLAB读取数据的程序是按照文本形式读取的。其余选项可以自己设置。

注意!!UG的文件保存路径不能含有中文!!!!!

对ProE

Step1 :点文件——保存副本

Step2 :在类型中,选择stl

Step 3 在导出STL对话框中选择ASCII导出格式,其他诸如弦高好像是越大越好

2 MATLAB读取STL数据

STL格式规定模型由三个顶点组成的小三角形面片,多个面片构成了各种形状的曲面。

因此数据格式如下:

首先给出的是一个三角形面片的法向量(x,y,z):facet normal。然后给出三个顶点vertex。一个面片就确定了。读取程序就是要读取facet normal和vertex的内容。

具体见附件中的ReadSTL.m文件。

facet normal +0.0000000E+00 +0.0000000E+00 +1.0000000E+00

outer loop

vertex -1.7387080E+02 -1.7447189E+02 +2.5000000E+01

vertex -2.2559979E+00 -1.2384968E+02 +2.5000000E+01

vertex +6.1819200E+00 -1.1596921E+02 +2.5000000E+01

endloop

endfacet

二MATLAB输出数据到UG

UG可以根据外部点来画出图像。对数据点的要求是这样的:

X1 y1 z1

X2 y2 z2

……

Xn yn zn

即:先输入一组坐标,回车,再输入下一组,如此操作。

具体操作如下:

0 首先在MATLAB中生成数据点,这里生成的是一个螺旋线。代码在此贴出:

%% test file write

clc

clear

%% Éú³ÉÒ»¸öÂÝÐý

format short g

t=0:0.1:100;

x=(15+10*cos(t));

y=(15+10*sin(t));

z=(20*t);

data=[x;y;z];

data1=data';

[m,n]=size(data1);

fid=fopen('A9.txt','w');

for i=1:m

for j=1:n

fprintf(fid,'%f\t',data1(i,j));

end

fprintf(fid,'\n');

end

fclose(fid);

附件matlab_to_ug.txt中也有源代码。

1 在UG中使用外部数据点作图:插入——曲线——样条

如果在曲线中没有样条命令,可以在工具——定制里找到

将样条命令拖到插入——曲线中即可。

2 选择通过点——文件中的点

3 找到目标的数据(1 一定是dat格式2 文件路径不能含有中文)

4 点确定就实现了导入

1 本文给出的实现方法仅是最简单的方法,有诸多细节并未深入考虑,如果您看完,觉得有所帮助,请将您认为对本方法改进的地方指出来,让我们一起来完善。

2 软件版本:MATLAB2009 UG Nx8 Proe 4

相关文档
最新文档