创意平板折叠桌建模(5)

2019-03-11 10:27

xb=sqrt(R^2-yb.^2); Bx=hL*ones(size(xb)); By=yb;

Bz=zeros(size(xb)); %腿尖曲线数据 figure(1),clf;%画底图,清除以前的图片 holdon

h1=patch(Tx,Ty,Tz,'facecolor',[1 1 1],'edgecolor',[0 0 0]);%画桌面

h2=patch(legx,legy,legz,'facecolor',[1 1 1],'edgecolor',[0 0 0]);%画桌腿

h3=patch(-legx,legy,legz,'facecolor',[1 1 1],'edgecolor',[0 0 0]);%画桌腿

h4=plot3(zhoux,zhouy,zhouz,'c');

h5=plot3(-zhoux,zhouy,zhouz,'c');%画钢筋轴 h6=plot3(Bx,By,Bz,'k');

h7=plot3(-Bx,By,Bz,'k');%腿尖曲线

holdoff;view(3);axis equal;axis([-hLhL -R R 0 2*hH]);axis off; zz=-hH*sind(deg);xz=xe(1)+hH*cosd(deg); %钢筋轴,z坐标和x坐标

alldeg=atan2(-zz*ones(size(xe)),xz-xe); %每个条腿折叠角度,20个

allx=legL.*cos(alldeg)+xe; %每条腿末端x坐标,20个

allz=-legL.*sin(alldeg); %每条腿末端z坐标,20个 alldeg2=atan2(-zz*ones(size(xb)),xz-xb);

Bx=(hL-xb).*cos(alldeg2)+xb;Bz=-(hL-xb).*sin(alldeg2);%腿尖曲线x数据

minz=min(Bz); %最低腿z坐标,桌子当前高度

legx=[allx;allx;xe;xe]; %桌腿数据

legz=[allz;allz;zeros(size(allz));zeros(size(allz))]-minz; set(h1,'ZData',-minz*ones(size(Tz)));

set(h2,'XData',legx,'ZData',legz);set(h3,'XData',-legx,'ZData',legz);

set(h4,'XData',[xz;xz],'ZData',[zz;zz]-minz); set(h5,'XData',-[xz;xz],'ZData',[zz;zz]-minz);

set(h6,'XData',Bx,'ZData',Bz-minz);set(h7,'XData',-Bx,'ZData',Bz-minz); pause(0.1);drawnow;

caochang=sqrt((xe-xe(1)).^2+hH.^2-2*hH.*(xe-xe(1)).*cos(alldeg))-(legL-hH)

程序三:问题一求桌脚边缘线的程序 i=0:9;

y=1.25:2.5:23.75 h=50; b=25-2.5*i; r=25;

a=sqrt(r*r-b.*b); c=60-a

k=sqrt((c(1,1)-sqrt((c(1,1)./2).*(c(1,1)./2)-(h./2).*(h./2))-c).*(c(1,1)-sqrt((c(1,1)./2).*(c(1,1)./2)-(h./2).*(h./2))-c)+(h./2).*(h./2))-(c-c(1,1)./2); e1=66;

x=c(1,1).*cos(e1)-(60-c-c.*(60-c-c(1,1)./2.*cos(e1))./(c+k))

z=c(1,1)*sin(e1)-c.*(c(1,1).*sin(e1)./(c(1,1)+2*k)) plot3(x,y,z)

程序四、问题二求桌高70 cm,桌面直径80 cm的情形,最优设计加工参数的matlab程序 function f=fun1(x); f=x(1)

function [g,ceq]=mycon(x)

g=[x(1).^2/4+x(5).^2+x(2).^2-x(1).*x(5)-1600;x(4).*x(6)-80;x(5).^2+x(7).^2-x(3).^2-2*x(4)*x(5)-2*x(4).*x(7)+2*x(5).*x(7)+x(4).^2.*x(6).^2+x(3).^2.*x(6).^2+2*x(3).*x(7)-2*x(3).*x(7)-2*x(3).*x(4).*x(6).^2-x(8).^2;x(1)/4.*x(1).^2+x(2).^2+x(4).^2-x(1).*x(4)-80*x(2).^2;x(4).^2-x(4).^2.*x(6).^2+x(3).^2-x(3).^2.*x(6).^2-x(3).*x(4)+2*x(3).*x(4).*x(6).^2-x(8).^2;70*x(4)-70*x(3)-x(4).*x(9);-x(5).^2+x(7).^2+x(9).^2];

x0=[1,1,1,1,1,1,1,1,1,1]; A=[];b=[]; Aeq=[];beq=[]; vlb=[];vub=[];

[x,fval]=fmincon('fun1',x(0),A,b,Aeq,beq,vlb,vub,'mycon')

程序五、问题三动态图程序

clear

L=120;D=50;d=2.5;hL=L/2;R=D/2; %木板长,宽;腿木条宽;半长;圆桌面半径 deg=75

ye=-R+d/2:d:R-d/2; x1=0+d/2:d:R-d/2

x2=23.75-(d/2:d:R)+d/2 x3=[x1;x2] x4=x3' xe1=x4(:)

xe=xe1'%折叠点的y坐标,x坐标,各20个; legL=hL-xe%腿长度,20个;

hH=legL(1)/2;ddeg=2; %最长腿半长;角度增量 Tx=[xe -xe;xe

-xe];Tx=Tx(:);Tz=zeros(size(Tx)); %桌面数据 Ty=[ye-d/2 fliplr(ye)+d/2;ye+d/2 fliplr(ye)-d/2];%桌面在y轴上的数据,fliplr函数实现矩阵的左右翻转

Ty=Ty(:);

legx=[hL*ones(size(xe));hL*ones(size(xe));xe;xe]; %桌腿数据

legy=[ye-d/2;ye+d/2;ye+d/2;ye-d/2];legz=zeros(size(legx)); zhoux=[hL-legL(1)/2;hL-legL(1)/2];zhouy=[-R R];zhouz=[0;0]; %钢筋轴的数据

yb=linspace(ye(1),ye(end),50);xb=sqrt(R^2-yb.^2); Bx=hL*ones(size(xb)); By=yb;

Bz=zeros(size(xb)); %腿尖曲线数据 figure(1),clf;%画底图,清除以前的图片 holdon

h1=patch(Tx,Ty,Tz,'facecolor',[1 1 1],'edgecolor',[0 0 0]);%画桌面

h2=patch(legx,legy,legz,'facecolor',[1 1 1],'edgecolor',[0 0 0]);画桌腿

h3=patch(-legx,legy,legz,'facecolor',[1 1 1],'edgecolor',[0 0 0]); 画桌腿

h4=plot3(zhoux,zhouy,zhouz,'c');h5=plot3(-zhoux,zhouy,zhouz,'c');%画钢筋轴

h6=plot3(Bx,By,Bz,'k');h7=plot3(-Bx,By,Bz,'k');%腿尖曲线 holdoff;view(3);axis equal;axis([-hLhL -R R 0 2*hH]);axis off; fordeg=0:ddeg:75 %最长桌腿相对桌面折叠角度

zz=-hH*sind(deg);xz=xe(1)+hH*cosd(deg); %钢筋轴,z坐标和x坐标

alldeg=atan2(-zz*ones(size(xe)),xz-xe); %每个条腿折叠角度,20个

allx=legL.*cos(alldeg)+xe; %每条腿末端x坐标,20个

allz=-legL.*sin(alldeg); %每条腿末端z坐标,20个 alldeg2=atan2(-zz*ones(size(xb)),xz-xb);

Bx=(hL-xb).*cos(alldeg2)+xb;Bz=-(hL-xb).*sin(alldeg2);%腿尖曲线x的数据

minz=min(Bz); %最低腿z的坐标,桌子当前高度

legx=[allx;allx;xe;xe]; %桌腿数据

legz=[allz;allz;zeros(size(allz));zeros(size(allz))]-minz; set(h1,'ZData',-minz*ones(size(Tz)));

set(h2,'XData',legx,'ZData',legz);set(h3,'XData',-legx,'ZData',legz);

set(h4,'XData',[xz;xz],'ZData',[zz;zz]-minz); set(h5,'XData',-[xz;xz],'ZData',[zz;zz]-minz);

set(h6,'XData',Bx,'ZData',Bz-minz);set(h7,'XData',-Bx,'ZData',Bz-minz);

pause(0.1);drawnow; end

caochang=sqrt((xe-xe(1)).^2+hH.^2-2*hH.*(xe-xe(1)).*cos(alldeg))-(legL-hH)


创意平板折叠桌建模(5).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:-信息提示

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: