1 平移
matrix=matrix/transl,dx,dy,dz
dx,dy,dz分别表示x,y,z方向各移动的距离
举例:
entity/box1,box2 number/mati(12) $$建立一个长方体 box1=solblk/origin,0,0,0,size,100,100,100 $$生成平移矩阵 mati=MATRIX/TRANSL,200,200,200 $$变换实现,此属于复制型 box2=transf/mati,box1 halt 2 旋转
mat2=matrix/xyrot,45 绕z轴旋转45
mat2=matrix/yzrot,45 绕x轴旋转45
mat2=matrix/zxrot,45 绕y轴旋转45
代码:
entity/c1,c2,c3,c4 number/mati(12) $$创建圆柱 c1=solcyl/origin,0,0,0,height,10,diamtr,5 $$z轴旋转 mati=matrix/xyrot,45 c2=transf/mati,c1 $$y轴旋转 mati=matrix/zxrot,45 c3=transf/mati,c1 $$y轴旋转 mati=matrix/yzrot,45 c4=transf/mati,c1
halt
3 缩放:
mat=matrix/scale,s
s 可正可负 正为放大,负为缩小
代码:
entity/c1,c2,c3 number/mati(12) $$ 过圆心,直径20 c1=circle/center,(point/0,0,0),radius,10 $$ 缩放放大,2 倍 mati=matrix/SCALE,2 c2=transf/mati,c1 $$ 缩放缩小,0.5 倍 mati=matrix/SCALE,.5 c3=transf/mati,c1 halt
实例创建一个法兰
NUMBER/D,D1,D2,D3,D4,h,h2,n,mat(12),i ENTITY/ent(20),solid(100) D=98 D1=21 D2=43 h2=1.6 D3=70 D4=15 n=4 h=13 $$界面 l10: PARAM/'法兰参数',$ '外径(D)',D,$ '内径(D1)',D1,$ '连接部分凸出直径(D2)',D2,$ '连接部分凸出高度(h2)',h2,$ '螺栓孔中心圆直径(D3)',D3,$ '螺栓孔直径(D4)',D4,$ '螺栓孔个数(n)',n,$ '法兰厚度(h)',h,$ respond JUMP/l10:,stop:,,respond $$限制螺栓孔数量 IFTHEN/n>99 MESSG/'螺栓孔个数太多,请重新输入!' JUMP/l10: ENDIF $$创建旋转的直线 ent(1)=LINE/D1/2,0,0,D1/2,h,0 ent(2)=LINE/D1/2,h,0,D2/2,h,0 ent(3)=LINE/D2/2,h,0,D2/2,h-h2,0 ent(4)=LINE/D2/2,h-h2,0,D/2,h-h2,0 ent(5)=LINE/D/2,h-h2,0,D/2,0,0 ent(6)=LINE/D/2,0,0,D1/2,0,0 $$旋转 solid(1)=SOLREV/ent(1..6),ORIGIN,0,0,0,$ ATANGL,360,AXIS,0,1,0 $$拉伸 solid(2)=SOLCYL/ORIGIN,D3/2,0,0,HEIGHT,h-h2,$ DIAMTR,D4,AXIS,0,1,0,IFERR,stop: $$旋转 mat=MATRIX/ZXROT,360/n $$用循环的方法来实现螺栓孔的创建 DO/l20:,i,1,n-1 solid(i+2)=TRANSF/mat,solid(i+1) l20: SUBTRA/solid(1),WITH,solid(2..n+1) MASK/3 BLANK/ALL stop: halt