UG7.0画变焦凸轮曲线

UG7.0画变焦凸轮曲线,第1张

生成中空的圆柱

按圆柱的外圆周长及变焦所需变动的高度和规律作出曲线

利用缠绕功能将曲线绕在圆柱上

用缠绕后的曲线生成曲面

用曲面分割圆柱即可。

5.1如果圆柱凸轮的凸面曲线不是在端面上:则将4.中的曲面利用加厚功能生成实体,然后与圆柱进行布尔差集运算即可。

h=15

b=90*pi/180

r0=30

e=5

rr=6

w=10

s0=sqrt(r0*r0-e*e)

for i=1:1:90

sita(i)=i*pi/180.0

s1=h*(sita(i)./b-sin(2*pi*sita(i)./b)/(2*pi))

v1=h*w./b-w*h*cos(sita(i)*2*pi./b)./b

a1=sin(sita(i).*2.*pi./b)*w.^2.*2*pi./(b.^2)

j1=cos(sita(i).*2.*pi./b)*w.^3.*4.*pi.^2./(b.^3)

x(i)=(s0+s1)*sin(sita(i))+e*cos(sita(i))

y(i)=(s0+s1)*cos(sita(i))-e*sin(sita(i))

a(i)=(s0+s1)*cos(sita(i))-e*sin(sita(i))

bb(i)=(s0+s1)*sin(sita(i))-e*cos(sita(i))

xx(i)=x(i)-rr*bb(i)./sqrt(a(i)*a(i)+bb(i)*bb(i))

yy(i)=y(i)-rr*a(i)./sqrt(a(i)*a(i)+bb(i)*bb(i))

alpha(i)=atan((v1-e)./(s0+s1))

end

for i=91:1:180

sita(i)=i*pi/180

s2=h

v2=0

a2=0

j2=0

x(i)=(s0+s2)*sin(sita(i))+e*cos(sita(i))

y(i)=(s0+s2)*cos(sita(i))-e*sin(sita(i))

a(i)=(s0+s1)*cos(sita(i))-e*sin(sita(i))

bb(i)=(s0+s1)*sin(sita(i))-e*cos(sita(i))

xx(i)=x(i)-rr*bb(i)/sqrt(a(i)*a(i)+bb(i)*bb(i))

yy(i)=y(i)-rr*a(i)/sqrt(a(i)*a(i)+bb(i)*bb(i))

alpha(i)=atan((v2-e)/(s0+s2))

end

for i=181:1:270

sita(i)=i*pi/180

s3=-h*((sita(i)-3*pi/2)/b-sin(2*pi*(sita(i)-3*pi/2)/b)/(2*pi))

v3=h*w/b+h*w/b*cos(2*pi*(sita(i)-3*pi/2)/b)

a3=-h*(w^2)*2*pi/(b^2)*sin(2*pi*(sita(i)-3*pi/2))

j3=-h*w^3*4*pi^2/(b^3)*cos(2*pi*(sita(i)-3*pi/2))

x(i)=(s0+s3)*sin(sita(i))+e*cos(sita(i))

y(i)=(s0+s3)*cos(sita(i))-e*sin(sita(i))

a(i)=(s0+s3)*cos(sita(i))-e*sin(sita(i))

bb(i)=(s0+s3)*sin(sita(i))-e*cos(sita(i))

xx(i)=x(i)-rr*bb(i)/sqrt(a(i)*a(i)+bb(i)*bb(i))

yy(i)=y(i)-rr*a(i)/sqrt(a(i)*a(i)+bb(i)*bb(i))

alpha(i)=atan((v3-e)/(s0+s3))

end

for i=271:1:360

sita(i)=i*pi/180

s4=0

v4=0

a4=0

j4=0

x(i)=(s0+s4)*sin(sita(i))+e*cos(sita(i))

y(i)=(s0+s4)*cos(sita(i))-e*sin(sita(i))

a(i)=(s0+s4)*cos(sita(i))-e*sin(sita(i))

bb(i)=(s0+s4)*sin(sita(i))-e*cos(sita(i))

xx(i)=x(i)-rr*bb(i)/sqrt(a(i)*a(i)+bb(i)*bb(i))

yy(i)=y(i)-rr*a(i)/sqrt(a(i)*a(i)+bb(i)*bb(i))

alpha(i)=atan((v4-e)/(s0+s4))

end

主要问题是,一开始定义了变量b=90*pi/180是一个标量常数

后来循环计算中用了b(i)结果是一个数组

你这里肯定是变量太多,搞混了

前面的b,和数组b(i)应该是两个不同的变量

所以我把数组改名字为bb,就没有报错了

你也可以将一开始的b改个名字


欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/yw/8042711.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-12
下一篇 2023-04-12

发表评论

登录后才能评论

评论列表(0条)

保存