Matlab產(chǎn)生IGES文件代碼【matlab源碼】
《Matlab產(chǎn)生IGES文件代碼【matlab源碼】》由會(huì)員分享,可在線閱讀,更多相關(guān)《Matlab產(chǎn)生IGES文件代碼【matlab源碼】(18頁珍藏版)》請(qǐng)?jiān)谘b配圖網(wǎng)上搜索。
1、Matlab產(chǎn)生IGES文件代碼【matlab源碼】 畢業(yè)論文,設(shè)計(jì), 題目學(xué)院學(xué)院專業(yè)學(xué)生姓名學(xué)號(hào)年級(jí)級(jí)指導(dǎo)教師 畢業(yè)教務(wù)處制表畢業(yè) Matlab產(chǎn)生IGES文件代碼 一、程序說明 本團(tuán)隊(duì)長(zhǎng)期從事matlab編程與仿真工作,擅長(zhǎng)各類畢業(yè)設(shè)計(jì)、數(shù)據(jù)處理、圖 表繪制、 理論分析等,程序代做、數(shù)據(jù)分析 QQ38782670 具體信息聯(lián)系 二、程序示例 %產(chǎn)生數(shù)據(jù)并寫入iges文件 clc clear issearch=2;%0表示只寫點(diǎn),1表示只寫線,2表示點(diǎn)線都寫 fprintf('正在寫文件。。。\n'); %產(chǎn)生正弦波文件 x=0:0.1:10; x=x
2、'; y=sin(x); Data=[xy]; Data(1,3)=0; write_iges('iges_sin.igs',Data,issearch) %產(chǎn)生peaks文件 [x,y,z]=peaks(30);xx=x(:); yy=y(:); zz=z(:); Data=[xxzzyy]; write_iges('iges_peaks.igs',Data,issearch) %產(chǎn)生拋物線文件 [x,y]=meshgrid(-1:0.1:1); z=x.A2+y.A2; xx=x(:); yy=y(:); zz=z(:); Data=[xxyyzz];
3、write_iges('iges_paowu.igs',Data,issearch) %產(chǎn)生解釋文件 xx=[10;0]; yy=[0;10]; zz=[0;0]; Data=[xxyyzz]; write_iges('igesforexplain.igs',Data,0)%產(chǎn)生Matlab圖標(biāo) [x,y]=meshgrid(linspace(-1,1,16));z=membrane; z=z(1:2:end,1:2:end,1:2:end);xx=x(:); yy=y(:); zz=z(:); Data=[xxzzyy]; write_iges('iges_matla
4、b.igs',Data,issearch) fprintf('寫文件結(jié)束。\n'); add_start_global函數(shù)文件: %構(gòu)造開始段和全局段字符串 function[filename,file_str]=add_start_global(FileName) %開始段信息 start='Matlab-IGES-UG,Proe'; %全局段信息 timedata=clock; Time=sprintf('%4s%2s%2s.%2s%2s%2s',num2str(timedata(1)),num2str(timeda ta(2)),num2str(timedata(3)
5、),num2str(timedata(4)),num2str(timedata(5) ), num2str(floor(timedata(6)))); Author='USTCGJ_QSQ'; G_1='1H,'; G_2='1H;'; G_3='7HPRT0001'; G_4=strcat(num2str(length(FileName)),'H',FileName);%FileName G_5='49HPro/ENGINEERbyParametricTechnologyCorporation'; G_6='7H2007170'; G_7='32'; G_8='38';
6、 G_9='7'; G_10='38'; G_11='15'; G_12='7HPRT0001'; G_13='1.'; G_14='2'; G_15='2HMM'; G_16='32768'; G_17='0.5'; G_18=strcat(num2str(length(Time)),'H',Time);%Time; G_19='0.0865991'; G_20='866.025'; G_21=strcat(num2str(length(Author)),'H',Author);%Author; G_22='4HUSTC'; G_23='10'; G_24='
7、0'; G_25=strcat(num2str(length(Time)),'H',Time);%Time; %構(gòu)造字符串 file_str=''; %start start=add_section_index(start,'S',1); file_str=strcat(file_str,start,'\n'); %global rowstr=''; count=0; fori=1:25 ifi==25 temp=strcat((['G_',num2str(i)]),';'); else temp=strcat((['G_',num2str(i)]),',');
8、end iflength(rowstr)+length(temp)>72 count=count+1; rowstr=add_section_index(rowstr,'G',count); file_str=strcat(file_str,rowstr,'\n'); rowstr=temp; else rowstr=strcat(rowstr,temp); ifi==25 count=count+1; rowstr=add_section_index(rowstr,'G',count); file_str=strcat(file_str,rowstr,'\n');
9、 end end end filename=FileName; end functionresult=add_section_index(str,section,index) result=sprintf('%-72s%s}',str,section,index);end write_iges函數(shù)文件: %寫igs文件 %FileName為寫入的文件名,Data為待寫入的數(shù)據(jù) functionwrite_iges(FileName,Data,PointOrLine)Index=0; %構(gòu)造開始段和全局段字符串 [filename,file_str]=add_start
10、_global(FileName); %構(gòu)造索引段和參數(shù)段 ifnargin==2 pointorline=2;%0表示只寫點(diǎn),1表示只寫線,2表示點(diǎn)線都寫 else pointorline=PointOrLine; end ifpointorline==0 %寫點(diǎn) [strDir2strPara2Index]= writePoint(Data(1:end,1),Data(1:end,2),Data(1:end,3),Index); file_str=strcat(file_str,strDir2); file_str=strcat(file_str,strPara2)
11、; elseifpointorline==1 %寫線 [strDir1strPara1Index]= writeLine(Data(1:end-1,1),Data(1:end-1,2),Data(1:end- 1,3),Data(2:end,1),Data(2:end,2),Data(2:end,3),Index); file_str=strcat(file_str,strDir1); file_str=strcat(file_str,strPara1); elseifpointorline==2 %寫線 [strDir1strPara1Index]= writeLine
12、(Data(1:end-1,1),Data(1:end-1,2),Data(1:end- 1,3),Data(2:end,1),Data(2:end,2),Data(2:end,3),Index); file_str=strcat(file_str,strDir1); %寫點(diǎn) [strDir2strPara2Index]= writePoint(Data(1:end,1),Data(1:end,2),Data(1:end,3),Index); file_str=strcat(file_str,strDir2); file_str=strcat(file_str,strPara1)
13、; file_str=strcat(file_str,strPara2); end %構(gòu)造結(jié)束段 str_end=sprintf('%s}%s}%s}%s}As}','S',1,'G',4,'D',2*Index,'P',Index,'T',1); file_str=strcat(file_str,str_end,'\n'); %寫入文件 fid=fopen(FileName,'wt'); fprintf(fid,file_str); fclose(fid); writeLine函數(shù)文件: %Index為總元素的個(gè)數(shù) function[strDir,strPara,In
14、dex]=writeLine(x1,y1,z1,x2,y2,z2, Index) if length(x1)~=length(y1)||length(x1)~=length(z1)||length(x2)~=length(y 2) ||length(x2)~=length(z2)||length(x2)~=length(y1) disp('2了,幾個(gè)線呀?’); end Direction=struct('type',[],...% 'paraPtr',[],...% 'version','1',... 'lineStyle','1',... 'layer','0',.
15、.. 'view','0',... 'matrix','0',... 'label','0',... 'status','00000001',... 'section','D',... 'type1',[],...% 'lineWeight','0',... 'color','2',... rowNum','1',... 'form','0',... 'reserved','',... 'reserved1','',... 'elementLabel',[],...% 'elementIndex',[],...% 'section1','D'... ); Li
16、ne=struct('pointDir',Direction,... 'x1',[],... 'y1',[],... 'z1',[],... 'x2',[],... 'y2',[],... 'z2',[],... 'ptr',[]... ); count=0; strDir=''; strPara=''; fori=1:length(x1) count=count+1; Index=Index+1; Line.pointDir.type='110'; Line.pointDir.elementLabel='LINE'; Line.pointDir.elemen
17、tIndex=num2str(count); Line.pointDir.paraPtr=num2str(Index); Line.pointDir.type1=Line.pointDir.type; Line.x1=x1; Line.y1=y1; Line.z1=z1; Line.x2=x2; Line.y2=y2; Line.z2=z2; Line.ptr=2*Index-1; %構(gòu)造字符串 strDir_temp=sprintf('%8s%8s%8s%8s%8s%8s%8s%8s%8s%s}\n%8s%8s%8s%8s%8s %8 s%8s%8s%8s%s}',
18、... Line.pointDir.type,... Line.pointDir.paraPtr,... Line.pointDir.version,... Line.pointDir.lineStyle,... Line.pointDir.layer,... Line.pointDir.view,... Line.pointDir.matrix,... Line.pointDir.label,... Line.pointDir.status,... Line.pointDir.section,2*Index-1,... Line.pointDir.type1,...
19、Line.pointDir.lineWeight,... Line.pointDir.color,... Line.pointDir.rowNum,... Line.pointDir.form,... Line.pointDir.reserved,... Line.pointDir.reserved1,... Line.pointDir.elementLabel,... Line.pointDir.elementIndex,... Line.pointDir.section1,2*Index); strPara_temp=sprintf('%s,%.2f,%.2f,%.2f,
20、%.2f,%.2f,%.2f;',... Line.pointDir.type,... Line.x1(i),... Line.y1(i),... Line.z1(i),... Line.x2(i),... Line.y2(i),... Line.z2(i)); strPara_temp=sprintf('%-64s�P%7s',strPara_temp,2*Index- 1,Line.p ointDir.paraPtr); strDir=strcat(strDir,strDir_temp,'\n'); strPara=strcat(strPara,str
21、Para_temp,'\n');end writePoint函數(shù)文件: %Index為總元素的個(gè)數(shù) function[strDir,strPara,Index]=writePoint(x,y,z,Index) iflength(x)~=length(y)||length(x)~=length(z) disp('2了,幾個(gè)點(diǎn)呀?’); end Direction=struct('type',[],...% 'paraPtr',[],...% 'version','1',... 'lineStyle','1',... 'layer','0',... 'view','0',.
22、.. 'matrix','0',... 'label','0',... 'status','00000001',... 'section','D',... 'type1',[],...% 'lineWeight','0',... 'color','2',... 'rowNum','1',... 'form','0',... 'reserved','',... 'reserved1','',... 'elementLabel',[],...% 'elementIndex',[],...% 'section1','D'... ); Point=struct('poi
23、ntDir',Direction,... 'x',[],... 'y',[],... 'z',[],... 'ptr',[]... ); count=0; strDir=''; strPara=''; fori=1:length(x) count=count+1; Index=Index+1; Point.pointDir.type='116'; Point.pointDir.elementLabel='POINT'; Point.pointDir.elementIndex=num2str(count); Point.pointDir.paraPtr=num2st
24、r(Index); Point.pointDir.type1=Point.pointDir.type; Point.x=x; Point.y=y; Point.z=z; Point.ptr=2*Index-1; %構(gòu)造字符串 strDir_temp=sprintf('%8s%8s%8s%8s%8s%8s%8s%8s%8s%s}\n%8s%8s%8s%8s%8s %8 s%8s%8s%8s%s}',... Point.pointDir.type,... Point.pointDir.paraPtr,... Point.pointDir.version,... Point
25、.pointDir.lineStyle,... Point.pointDir.layer,... Point.pointDir.view,... Point.pointDir.matrix,... Point.pointDir.label,... Point.pointDir.status,... Point.pointDir.section,2*Index-1,... Point.pointDir.type1,... Point.pointDir.lineWeight,... Point.pointDir.color,... Point.pointDir.rowNum,.
26、.. Point.pointDir.form,... Point.pointDir.reserved,... Point.pointDir.reserved1,... Point.pointDir.elementLabel,... Point.pointDir.elementIndex,... Point.pointDir.section1,2*Index); strPara_temp=sprintf('%s,%.2f,%.2f,%.2f;',... Point.pointDir.type,... Point.x(i),... Point.y(i),... Point.z
27、(i)); strPara_temp=sprintf('%-64s?P%7s',strPara_temp,2*Index- 1,Point.pointDi r.paraPtr); strDir=strcat(strDir,strDir_temp,'\n'); strPara=strcat(strPara,strPara_temp,'\n');end end writeColor函數(shù)文件: %Index為總元素的個(gè)數(shù) function[strDir,strPara,Index]=writeColor(r,g,b,Index) iflength(r)~=length(g)||l
28、ength(r)~=length(b) disp('2了,幾個(gè)點(diǎn)呀?’); end Direction=struct('type',[],...% 'paraPtr',[],...% 'version','1',... 'lineStyle','1',... 'layer','0',... 'view','0',... 'matrix','0',... 'label','0',... 'status','01000200',... 'section','D',... 'type1',[],...% 'lineWeight','0',... 'color','2',
29、... 'rowNum','1',... 'form','0',... 'reserved','',... 'reserved1','',... 'elementLabel',[],...%'elementIndex',[],...%'section1','D'... ); Color=struct('pointDir',Direction,... 'r',[],... 'g',[],... 'b',[],... 'ptr',[]... ); count=0; strDir=''; strPara=''; fori=1:length(r) count=coun
30、t+1; Index=Index+1; Color.pointDir.type='314'; Color.pointDir.elementLabel='COLOR'; Color.pointDir.elementIndex=num2str(count); Color.pointDir.paraPtr=num2str(Index); Color.pointDir.type1=Color.pointDir.type; Color.r=r; Color.g=g; Color.b=b; Color.ptr=2*Index-1; %構(gòu)造字符串 strDir_temp=sprint
31、f('%8s%8s%8s%8s%8s%8s%8s%8s%8s%s}\n%8s%8s%8s%8s%8s %8 s%8s%8s%8s%s}',... Color.pointDir.type,... Color.pointDir.paraPtr,... Color.pointDir.version,... Color.pointDir.lineStyle,... Color.pointDir.layer,... Color.pointDir.view,... Color.pointDir.matrix,... Color.pointDir.label,... Color.poi
32、ntDir.status,... Color.pointDir.section,2*Index-1,... Color.pointDir.type1,... Color.pointDir.lineWeight,... Color.pointDir.color,... Color.pointDir.rowNum,... Color.pointDir.form,... Color.pointDir.reserved,... Color.pointDir.reserved1,... Color.pointDir.elementLabel,... Color.pointDir.el
33、ementIndex,... Color.pointDir.section1,2*Index); strPara_temp=sprintf('%s,%.1f,%.1f,%.1f;',... Color.pointDir.type,... Color.r(i),... Color.g(i),... Color.b(i)); strPara_temp=sprintf('%-64s�P%7s',strPara_temp,2*Index-1,Color. pointDir.paraPtr); strDir=strcat(strDir,strDir_temp,'\n'); strPara=strcat(strPara,strPara_temp,'\n'); end end
- 溫馨提示:
1: 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
2: 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
3.本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
5. 裝配圖網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 市教育局冬季運(yùn)動(dòng)會(huì)安全工作預(yù)案
- 2024年秋季《思想道德與法治》大作業(yè)及答案3套試卷
- 2024年教師年度考核表個(gè)人工作總結(jié)(可編輯)
- 2024年xx村兩委涉案資金退還保證書
- 2024年憲法宣傳周活動(dòng)總結(jié)+在機(jī)關(guān)“弘揚(yáng)憲法精神推動(dòng)發(fā)改工作高質(zhì)量發(fā)展”專題宣講報(bào)告會(huì)上的講話
- 2024年XX村合作社年報(bào)總結(jié)
- 2024-2025年秋季第一學(xué)期初中歷史上冊(cè)教研組工作總結(jié)
- 2024年小學(xué)高級(jí)教師年終工作總結(jié)匯報(bào)
- 2024-2025年秋季第一學(xué)期初中物理上冊(cè)教研組工作總結(jié)
- 2024年xx鎮(zhèn)交通年度總結(jié)
- 2024-2025年秋季第一學(xué)期小學(xué)語文教師工作總結(jié)
- 2024年XX村陳規(guī)陋習(xí)整治報(bào)告
- 2025年學(xué)校元旦迎新盛典活動(dòng)策劃方案
- 2024年學(xué)校周邊安全隱患自查報(bào)告
- 2024年XX鎮(zhèn)農(nóng)村規(guī)劃管控述職報(bào)告