- 积分
- 0
- 注册时间
- 2009-11-4
- 仿真币
-
- 最后登录
- 1970-1-1
|
本帖最后由 freebeita 于 2013-5-28 22:41 编辑
在Truegrid中有一个很有用的命令,可以做任意平移、关于任意平面的对称、关于任意轴旋转以及一些变形。
(1)关于任意平面对称:
首先选取该对称平面上三个不共线的点,用circent命令可计算出平面法向量(p1,p2,p3)
取平面上一点(x0,y0,z0),由点法式方程得:p1(x-x0)+p2(y-y0)+p3(z-z0)=0
则关于此平面的对称点为:
t1=(%p1*(x-%x0)+%p2*(y-%y0)+%p3*(z-%z0))/(%p1^2+%p2^2+%p3^2);
x=x-2*%p1*t1;
y=y-2*%p2*t1;
z=z-2*%p3*t1;
(2)旋转:设旋转轴方向向量为(p1,p2,p3),通过点(xp,yp,zp)
先将旋转轴平移至坐标原点(0,0,0):将点(xp,yp,zp)移至原点
然后将旋转轴转至XZ平面:用subang命令选取(0,yp+p2,zp+p3)、(0,yp,zp)、(0,yp,zp+1)三个点,
计算在点(xp,yp,zp)处的夹角theta1,由此可计算旋转轴与XZ平面的夹角s1。
如果p2>0,则s1=theta1;如果p2<0,则s1=-theta1。
再将旋转轴转至与Z轴重合:用subang命令选取(xp+p1,yp+p2,zp+p3)、(xp,yp,zp)、(xp+1,yp,zp)三个点,
计算在点(xp,yp,zp)处的夹角theta2,即旋转轴与X轴正向的夹角,
由此可计算出在XZ平面内旋转轴与Z轴正方向的夹角s2。
如果p3>0,则s2=theta2-90;如果p3<0,则s2=270-theta2。
此时绕Z轴旋转s3即可。
最后再反向操作,将图形移回。
para xp yp zp p1 p2 p3
subang 0 [%yp+%p2] [%zp+%p3] 0 %yp %zp 0 %yp [%zp+1]
para s1
subang [%xp+%p1] [%yp+%p2] [%zp+%p3] %xp %yp %zp [%xp+1] %yp %zp
para s2
para s3
lct 1 mx [-%xp] my [-%yp] mz [-%zp] rx %s1 ry %s2 rz %s3 ry [-%s2] rx [-%s1] mz [-%zp] my [-%yp] mx [-%xp];
lrep 1;;
merge
(4)变形:
这个不多介绍,看实例
block 1 15;1 15;1 10;-10 0;1 5;-5 0;
insprt 1 3 2 1
insprt 1 5 2 1
dei ;2 3;1 2;
mseq j 0 1
t1=x/10*y*2*%pi;
x=t1;
t2=y*sin(abs(x/y)/%pi*180);
t3=y*cos(abs(x/y)/%pi*180);
z=z+y;
x=-t2;
y=t3;
block 1 13;1 3;-1;1 10;1 2;0
mb 1 1 1 2 2 1 x -10
x=x/9*y*2*%pi;
t1=y*sin(abs(x/y)/%pi*180);
t2=y*cos(abs(x/y)/%pi*180);
x=t1;
y=t2;
lct 2 rx 90;ry 90;
lrep 0:2;;
merge
block 1 10;1 5;1 5;-10 0;1 5;-5 0;
x=x/10*y*2*%pi;
insprt 1 3 2 1
insprt 1 5 2 1
DEI ; 2 3; 1 2;
mb 1 1 1 1 3 3 z -5;
mb 1 1 1 1 3 3 z -5
mb 2 1 1 2 3 3 z 5;
t1=y*sin(abs(x/y)/%pi*180);
t2=y*cos(abs(x/y)/%pi*180);
x=t1;
y=t2;
lct 5 mz 10;repe 4;;
lrep 0:5;
merge
block 1 10;1 5;1 5;-10 0;1 5;-5 0;
x=x/10*y*2*%pi;
insprt 1 3 2 1
insprt 1 5 2 1
DEI ; 2 3; 1 2;
mb 1 1 1 1 3 3 z -2.5;
mb 2 1 1 2 3 3 z 2.5;
t1=y*sin(abs(x/y)/%pi*180);
t2=y*cos(abs(x/y)/%pi*180);
x=t1;y=t2;
lct 5 mz 5;repe 4;;
lrep 0:5;
merge
|
本帖子中包含更多资源
您需要 登录 才可以下载或查看,没有账号?注册
×
评分
-
2
查看全部评分
-
|