clc;clear;close all
a=692;b=692;alpha=pi/4;h1=500;h2=500;h3=500;
% a=998;b=486;alpha=1.57;h1=522;h2=h1;h3=h1;
ll1=0;
ll2=60;
X1=-150;
XD=2.5;
X0=-X1;
Y1=X1;
Y0=-Y1;
YD=XD;
xpq=X1:XD:X0;
ypq=Y1:YD:Y0;
zpq=450:2:550;
xp=xpq;yp=ypq;zp=zpq;
i=1;
points=zeros(10,3);
for xp=xpq;
for yp=ypq;
for zp=zpq;
A1=1;A2=1;A3=1;
B1=-2*zp*sin(alpha)-2*(yp+sqrt(3)*a/3-sqrt(3)*b/6)*cos(alpha);
B2=-2*zp*sin(alpha)+(yp+sqrt(3)*xp-2*sqrt(3)*a/3+sqrt(3)*b/3)*cos(alpha);
B3=-2*zp*sin(alpha)-(sqrt(3)*xp-yp+2*sqrt(3)*a/3-sqrt(3)*b/3)*cos(alpha);
C1=(yp+sqrt(3)*a/3-sqrt(3)*b/6)^2+zp^2-h1^2;
C2=(sqrt(3)*xp/2+yp/2-sqrt(3)*a/3+sqrt(3)*b/6)^2+zp^2-h2^2;
C3=(sqrt(3)*xp/2-yp/2+sqrt(3)*a/3-sqrt(3)*b/6)^2+zp^2-h3^2;
l1=real((-B1-sqrt(B1^2-4*A1*C1))/(2*A1));
l2=real((-B2-sqrt(B2^2-4*A2*C2))/(2*A2));
l3=real((-B3-sqrt(B3^2-4*A3*C3))/(2*A3));
if (l1>=(ll1) && l1<=(ll2) && l2>=(ll1) && l2<=(ll2) && l3>=(ll1) &&l3<=(ll2))
points(i,:)=[xp,yp,zp];%%第i行的所有元素
i=i+1;
end
end
end
end
np=points(1:i-1,:);
[xps,yps]=meshgrid(xpq,ypq);
[row_num,col_num]=size(xps);
xps=[xps;xps];
yps=[yps;yps];
zps=zeros(2*row_num,col_num);
for k=1:length(np)
x_loc=find(xpq==np(k,1));
y_loc=find(ypq==np(k,2));
zloc=(np(k,3));
if zps(y_loc,x_loc)==0;
zps(y_loc,x_loc)=zloc;
zps(y_loc+length(ypq),x_loc)=zloc;
else
if zloc>zps(y_loc,x_loc);
zps(y_loc,x_loc)=zloc;
end
if zloc<zps(y_loc+length(ypq),x_loc);
zps(y_loc+length(ypq),x_loc)=zloc;
end
end
end
for k1=length(ypq):-1:1;
for k2=length(xpq):-1:1;
if zps(k1,k2)==0
continue
end
if k1>1
if zps(k1-1,k2)==0
zps(k1-1+length(ypq),k2)=zps(k1,k2);
yps(k1-1+length(ypq),k2)=yps(k1,k2);
xps(k1-1+length(ypq),k2)=xps(k1,k2);
end
end
if k1<length(ypq)
if zps(k1+1,k2)==0
zps(k1+1+length(ypq),k2)=zps(k1,k2);
yps(k1+1+length(ypq),k2)=yps(k1,k2);
xps(k1+1+length(ypq),k2)=xps(k1,k2);
end
end
if k2>1
if zps(k1,k2-1)==0
zps(k1+length(ypq),k2-1)=zps(k1,k2);
yps(k1+length(ypq),k2-1)=yps(k1,k2);
xps(k1+length(ypq),k2-1)=xps(k1,k2);
end
end
if k2<length(xpq)
if zps(k1,k2+1)==0
zps(k1+length(ypq),k2+1)=zps(k1,k2);
yps(k1+length(ypq),k2+1)=yps(k1,k2);
xps(k1+length(ypq),k2+1)=xps(k1,k2);
end
end
end
end
for k1=1:length(ypq)%把等于零的点裁剪掉
for k2=1:length(xpq)
if zps(k1,k2)==0
xps(k1,k2)=NaN;
yps(k1,k2)=NaN;
zps(k1,k2)=NaN;
end
if zps(k1+length(ypq),k2)==0
xps(k1+length(ypq),k2)=NaN;
yps(k1+length(ypq),k2)=NaN;
zps(k1+length(ypq),k2)=NaN;
end
end
end
surf(xps,yps,zps)
fth=30;
xlabel('位移{\itx}/mm','FontSize',fth,'FontName','Times new roman','LineWidth',1,'rotation',20)
ylabel('位移{\ity}/mm','FontSize',fth,'FontName','Times new roman','LineWidth',1,'rotation',-20)
zlabel('位移{\itz}/mm','FontSize',fth,'FontName','Times new roman','LineWidth',1)
%set(gca,'xtick',[],'xticklabel',[])
%set(gca,'ytick',[],'yticklabel',[])
%set(gca,'ztick',[],'zticklabel',[])
% shading interp
%
set(gca,'XLim',[-150 150]);%X轴的数据显示范围
set(gca,'XTick',[-150:50:150]);%设置要显示坐标刻度
set(gca,'YLim',[-150 150]);%Y轴的数据显示范围
set(gca,'YTick',[-150:50:150]);%设置要显示坐标刻度
% set(gca,'ZLim',[500 700]);%Z轴的数据显示范围
% set(gca,'ZTick',[500:100:700]);%设置要显示坐标刻度
set(gca,'FontSize',fth,'FontName','times new roman') %%改变坐标轴显示的字体
axis equal
% axis square
grid off
gongzuokongjian.zip_4并联机构_b并联机构工作空间_工作空间_并联机构_机构工作空间
版权申诉
5星 · 超过95%的资源 121 浏览量
2022-07-14
12:40:42
上传
评论 2
收藏 1KB ZIP 举报
邓凌佳
- 粉丝: 65
- 资源: 1万+
最新资源
- Code for the complete guide to tkinter tutorial
- 关于百货中心供应链管理系统.zip
- SimpleFolderIcon-master 修改Unity的Project下的文件夹图标
- A python Tkinter widget to display tile based maps
- A pure Python library for adding tables to a Tkinter application
- Vector资源文件.zip
- MobaXterm-Installer
- MicroMsg.xlsx
- 88-520告白(520气球).zip
- HTML+CSS+JS精品网页模板H126.rar
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
评论2