ug二次开发——grip语言矩阵变换的应用

    xiaoxiao2021-12-14  20

    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  

    转载请注明原文地址: https://ju.6miu.com/read-965272.html

    最新回复(0)