decl/GLOBAL,intgr,c1,kn,i1,i2,zt,col,i3
decl/GLOBAL,double,a1,a2,tol1,d1,d2,d3,tol2,tol4,tol5,lk[6],dd[10],dz
$$量块长度
lk[1]=assign/1000
lk[2]=assign/700
lk[3]=assign/500
lk[4]=assign/300
lk[5]=assign/30
$$量块数量
kn=assign/5
$$测量循环次数
c1=assign/3
$$公差计算tol=a1+a2*L/1000
a1=assign/0.0025
a2=assign/0.0033
$$Z轴提起距离
zt=assign/45
SNSET/APPRCH, 4.0000
SNSET/RETRCT, 4.0000
SNSET/DEPTH, 4.0000
SNSET/SEARCH, 300
SNSET/CLRSRF, 19
col = PROMPT/'是否需要重新建立零件坐标系 (是)0/(否)1'
IF/(col.EQ.0)
MODE/MAN
F(PLN1) = FEAT/PLANE,CART, -1288.445518, -330.309369, -259.232599, 0.038071,$
-0.999137, -0.016626
$$ Measurement points are created through actual points
MEAS/PLANE, F(PLN1), 3
PTMEAS/CART, -1298.317151, -330.729702, -256.577299, 0.038071,$
-0.999137, -0.016626
PTMEAS/CART, -1273.544551, -329.785802, -256.575099, 0.038071,$
-0.999137, -0.016626
PTMEAS/CART, -1293.474851, -330.412602, -264.545399, 0.038071,$
-0.999137, -0.016626
ENDMES
F(LN1) = FEAT/LINE,BND,CART, -1302.320595, -326.579770, -254.626250,$
-1271.862995, -327.428270, -254.595950, -0.000995, 0.000000, 1.000000
$$ Measurement points are created through actual points
MEAS/LINE, F(LN1), 2
PTMEAS/CART, -1302.320595, -326.579770, -254.626250, -0.000995,$
0.000000, 1.000000
PTMEAS/CART, -1271.862995, -327.428270, -254.595950, -0.000995,$
0.000000, 1.000000
ENDMES
F(PT1) = FEAT/POINT,CART, -1308.874859, -326.327970, -258.847420, -1.000000,$
0.000000, 0.000000
MEAS/POINT, F(PT1), 1
PTMEAS/CART, -1308.874859, -326.327970, -258.847420, -1.000000,$
0.000000, 0.000000
ENDMES
D(CRD1) = DATSET/FA(PLN1), ZDIR, ZORIG, FA(LN1), XDIR, YORIG, FA(PT1), XORIG
D(CRD1) = TRANS/ZORIG, -0, YORIG, -0, XORIG, -0
ENDIF
TEXT/OPER,'提起Z轴'
MODE/PROG,MAN
RECALL/D(CRD1)
do/i1,1,kn,1
goto/-10,zt,-5
FEDRAT/MESVEL, MMPS, 10.000000
F(PT2) = FEAT/POINT,CART, 0, -11, -5, -1,0,0
MEAS/POINT, F(PT2), 1
PTMEAS/CART, 0, -11, -5, -1,0,0
ENDMES
D(CRD2) = TRANS/XORIG, FA(PT2), YORIG, 0, ZORIG, 0
RECALL/D(CRD2)
goto/-10,10,-5
FEDRAT/MESVEL, MMPS, 4.000000
F(PT3) = FEAT/POINT,CART, 4, 0, -5, 0,1,0
MEAS/POINT, F(PT3), 1
PTMEAS/CART, 4, 0, -5, 0,1,0
ENDMES
GOTO/4, 10, 8
F(PT4) = FEAT/POINT,CART, 5, -4, 0, 0,0,1
MEAS/POINT, F(PT4), 1
PTMEAS/CART, 5, -5, 0, 0,0,1
ENDMES
F(PT5) = FEAT/POINT,CART, 3, -7,0, 0,0,1
MEAS/POINT, F(PT5), 1
PTMEAS/CART, 5, -10,0, 0,0,1
ENDMES
GOTO/ 5, zt,8
GOTO/ lk[i1]-4,zt,8
F(PT6) = FEAT/POINT,CART, lk[i1]-4,-7,0,0,0,1
MEAS/POINT, F(PT6), 1
PTMEAS/CART, lk[i1]-4,-7,0,0,0,1
ENDMES
F(PT9) = FEAT/POINT,CART, lk[i1]-4,-4,0,0,0,1
MEAS/POINT, F(PT9), 1
PTMEAS/CART, lk[i1]-4,-4,0,0,0,1
ENDMES
GOTO/lk[i1]-5,10,8
F(PT10) = FEAT/POINT,CART, lk[i1]-4, 0, -5, 0,1,0
MEAS/POINT, F(PT10), 1
PTMEAS/CART, lk[i1]-4, 0, -5, 0,1,0
ENDMES
CALL/M(EASI_2PT_TO_LINE),(PT3),(PT10),(BFLN1), 0.0, 1.0, 0.0
CONST/LINE,F(BFLN1),BF,FA(PT3),FA(PT10)
F(BFPL1) = FEAT/PLANE,CART, 201.666667, -9.666667, 0.000000, 0.000000,$
0.000000, 1.000000
CONST/PLANE,F(BFPL1),BF,FA(PT4),FA(PT5),FA(PT6),FA(PT9)
D(CRD4) = DATSET/FA(BFPL1), ZDIR, ZORIG, FA(BFLN1), XDIR, YORIG, FA(PT2), XORIG
D(CRD4) = TRANS/ZORIG, -0, YORIG, -0, XORIG, -0
do/i2,1,c1,1
GOTO/lk[i1]+10,zt,-6
F(PT7) = FEAT/POINT,CART, lk[i1], -6, -5, 1,0,0
MEAS/POINT, F(PT7), 1
PTMEAS/CART, lk[i1], -6, -5, 1,0,0
ENDMES
GOTO/lk[i1]+10,zt,-6
goto/-10,50,-6
F(PT8) = FEAT/POINT,CART, 0, -6, -5, -1,0,0
MEAS/POINT, F(PT8), 1
PTMEAS/CART, 0, -6, -5, -1,0,0
ENDMES
goto/-10,zt,-6
tol1=assign/a1+a2*lk[i1]/1000
T(TDISTB1) = TOL/DISTB,NOMINL, lk[i1], 0-tol1, tol1,XAXIS,AVG
OUTPUT/FA(PT7),FA(PT8), TA(TDISTB1)
enddo
D(CRD3) = TRANS/XORIG, 0, YORIG, 0, ZORIG, 14
enddo