UNITS/MM, ANGDEC
WKPLAN/XYPLAN
PRCOMP/ON
TECOMP/OFF
FLY/1
MODE/PROG, MAN
SNSET/APPRCH, 10.000000
SNSET/RETRCT, 10.000000
SNSET/DEPTH, 0.000000
SNSET/SEARCH, 20.0000
SNSET/CLRSRF, 5.000000
RECALL/D(MCS)
GEOALG/CIRCLE, LSTSQR
GEOALG/ARC, LSTSQR
GEOALG/PLANE, LSTSQR
$$
$$
DECL/COMMON,DOUBLE,NOM_D,SNS_D
DECL/COMMON,DOUBLE,P_Cord[3],SPH_Cord[3],II,JJ,KK
DECL/CHAR,20,SNS_LAB,PROBE_N
SNS_LAB = VALUE/SNSLCT
SNS_D = OBTAIN/SS( ),8
TEMPSTRING = PROMPT/TITLE,'25球检验程序',TEXT,'请将测头移动到标准球的正上方',$
TEXT,'标准球的理论直径为',EDIT,NOM_D
$$$$$$$$$$$$$$$$$$$$$$$$$$$$$取得标准球球心的坐标值$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
$$$$$$$$$$$$$$$$$$$$$$$$$$$$$定义标准球理论值$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
F(P_Point) = FEAT/POINT,CART,0,0,0,0,0,1
MEAS/POINT,F(P_Point),0
ENDMES
P_Cord[1] = OBTAIN/FA(P_Point),3
P_Cord[2] = OBTAIN/FA(P_Point),4
P_Cord[3] = OBTAIN/FA(P_Point),5
MEAS/POINT,F(P_Point),1
PTMEAS/CART, P_cord[1], P_cord[2], P_cord[3]-1, 0, 0, 1
ENDMES
P_Cord[1] = OBTAIN/FA(P_Point),3
P_Cord[2] = OBTAIN/FA(P_Point),4
P_Cord[3] = OBTAIN/FA(P_Point),5
F(M_SPH) = FEAT/SPHERE, OUTER, CART, P_cord[1], P_cord[2], P_cord[3]-NOM_D/2,$
NOM_D
MODE/AUTO,PROG,MAN
MEAS/SPHERE,F(M_SPH),5
ENDMES
SPH_Cord[1] = OBTAIN/FA(M_SPH),4
SPH_Cord[2] = OBTAIN/FA(M_SPH),5
SPH_Cord[3] = OBTAIN/FA(M_SPH),6
F(M_SPH) = FEAT/SPHERE, OUTER, CART, SPH_Cord[1], SPH_Cord[2],$
SPH_Cord[3],NOM_D
MEAS/SPHERE,F(M_SPH),5
ENDMES
SPH_Cord[1] = OBTAIN/FA(M_SPH),4
SPH_Cord[2] = OBTAIN/FA(M_SPH),5
SPH_Cord[3] = OBTAIN/FA(M_SPH),6
F(M_SPH) = FEAT/SPHERE, OUTER, CART, SPH_Cord[1], SPH_Cord[2],$
SPH_Cord[3],NOM_D
$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
$$$$$$$$$$$$$$$$$$$$$$$$$$$平移坐标系$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
PROBE_N = VALUE/SNSLCT
II = OBTAIN/SS( ),5
JJ = OBTAIN/SS( ),6
KK = OBTAIN/SS( ),7
F(DAT_DUM) = FEAT/PLANE,CART,SPH_Cord[1],SPH_Cord[2],SPH_Cord[3],-II,-JJ,-KK
D(SPH25) = DATSET/F(DAT_DUM),ZDIR,ZORIG
D(SPH25) = TRANS/XORIG,FA(M_SPH),YORIG,FA(M_SPH),ZORIG,FA(M_SPH)
$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$产生测量点$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
SNSET/APPRCH, 10
SNSET/RETRCT, 10
SNSET/DEPTH, 0
SNSET/SEARCH, 10
SNSET/CLRSRF, 10
MODE/PROG,MAN
DECL/COMMON,DOUBLE,Radian_SPH,APP_D,TEMP_R,TEMP_G
DECL/COMMON,INTGR,I,J,K
Radian_SPH = ASSIGN/22.5*3.141592654/180
APP_D = VALUE/SNSET,APPRCH
TEMP_G = ASSIGN/APP_D + NOM_D/2 + SNS_D/2
TEMP_R = ASSIGN/NOM_D/2
MEAS/SPHERE,F(M_SPH),25
PTMEAS/CART, 0, 0, NOM_D/2, 0, 0, 1
$$$$$$$$$$$$$$$$$$$$$$球22.5度时分布4个测量点$$$$$$$$$$$$$$$$$$$$$$
DO/I,1,4
PTMEAS/POL,TEMP_R*SIN(Radian_SPH),0,TEMP_R*COS(Radian_SPH),$
SIN(Radian_SPH),0,COS(Radian_SPH)
D(TEMP) = ROTATE/ZAXIS,360/16
DO/K,1,3
GOTO/POL,TEMP_G*SIN(Radian_SPH),0,TEMP_G*COS(Radian_SPH)
D(TEMP) = ROTATE/ZAXIS,360/16
ENDDO
ENDDO
D(TEMP) = ROTATE/ZAXIS,22.5
$$$$$$$$$$$$$$$$$$$$$$球45度时分布8个测量点$$$$$$$$$$$$$$$$$$$$$$
DO/I,1,8
PTMEAS/POL,TEMP_R*SIN(2*Radian_SPH),0,TEMP_R*COS(2*Radian_SPH),$
SIN(2*Radian_SPH),0,COS(2*Radian_SPH)
D(TEMP) = ROTATE/ZAXIS,360/32
DO/K,1,3
GOTO/POL,TEMP_G*SIN(2*Radian_SPH),0,TEMP_G*COS(2*Radian_SPH)
D(TEMP) = ROTATE/ZAXIS,360/32
ENDDO
ENDDO
D(TEMP) = ROTATE/ZAXIS,22.5
$$$$$$$$$$$$$$$$$$$$$$球67.5度时分布8个测量点$$$$$$$$$$$$$$$$$$$$$$
DO/I,1,4
PTMEAS/POL,TEMP_R*SIN(3*Radian_SPH),0,TEMP_R*COS(3*Radian_SPH),$
SIN(3*Radian_SPH),0,COS(3*Radian_SPH)
D(TEMP) = ROTATE/ZAXIS,360/16
DO/K,1,3
GOTO/POL,TEMP_G*SIN(3*Radian_SPH),0,TEMP_G*COS(3*Radian_SPH)
D(TEMP) = ROTATE/ZAXIS,360/16
ENDDO
ENDDO
D(TEMP) = ROTATE/ZAXIS,22.5
$$$$$$$$$$$$$$$$$$$$$$球90度时分布8个测量点$$$$$$$$$$$$$$$$$$$$$$
DO/I,1,8
PTMEAS/POL,TEMP_R*SIN(4*Radian_SPH),0,TEMP_R*COS(4*Radian_SPH),$
SIN(4*Radian_SPH),0,COS(4*Radian_SPH)
D(TEMP) = ROTATE/ZAXIS,360/32
DO/K,1,3
GOTO/POL,TEMP_G*SIN(4*Radian_SPH),0,TEMP_G*COS(4*Radian_SPH)
D(TEMP) = ROTATE/ZAXIS,360/32
ENDDO
ENDDO
D(TEMP) = ROTATE/ZAXIS,22.5
ENDMES
$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
M(EASI_SPHERE_HIGHLOW_POINTS) = MACRO/'FEATLABEL', 'DEVICELABEL', HIGHR, LOWR, RADSEPARATION, ER
DECL/LOCAL, CHAR, 255, FNAME
DECL/LOCAL, REAL, XC,YC,ZC,XX,YY,ZZ, CDIST
DECL/LOCAL, INTGR, PCOUNT, LPCOUNT
FNAME = OBTAIN/F( ), 1
ER = ASSIGN/0
HIGHR = ASSIGN/0
LOWR = ASSIGN/100000
PCOUNT = VALUE/FA( ), PTDATA
XC = OBTAIN/FA( ), 4
YC = OBTAIN/FA( ), 5
ZC = OBTAIN/FA( ), 6
DO/LPCOUNT, 1, PCOUNT
XX = OBTAIN/FA( )[LPCOUNT],2
YY = OBTAIN/FA( )[LPCOUNT],3
ZZ = OBTAIN/FA( )[LPCOUNT],4
CDIST = ASSIGN/SQRT((XX-XC)*(XX-XC)+(YY-YC)*(YY-YC)+(ZZ-ZC)*(ZZ-ZC))
IF/(CDIST .GT. HIGHR)
HIGHR = ASSIGN/CDIST
ENDIF
IF/(CDIST .LT. LOWR)
LOWR = ASSIGN/CDIST
ENDIF
WRITE/DID( ), 'PTN = ',LPCOUNT:2, ' X = ', XX, ' Y = ', YY, ' Z = ', ZZ, ' R = ', CDIST
WRITE/DID(DEFAULTSCREEN),'PTN = ',LPCOUNT:2, ' X = ', XX, ' Y = ', YY, ' Z = ', ZZ, ' R = ', CDIST
ENDDO
RADSEPARATION = ASSIGN/(HIGHR-LOWR)
ENDMAC
$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
$$$$$$$$$$$$$$$$$$$$$$$$$$输出SPH1结果$$$$$$$$$$$$$$$$$$$$$$$$$$
DECL/COMMON, REAL, HR, LR, RADSEP
DECL/COMMON, INTGR, LPRET
DECL/COMMON, CHAR, 256, STESTDATE, STESTTIME, SSEP
DID(ISO103602-2Report) = DEVICE/STOR,'ISO-103602-Report.out'
OPEN/DID(ISO103602-2Report), DIRECT, OUTPUT, APPEND
SSEP = ASSIGN/'--------------------------------------------------------------------------------'
STESTDATE = ASSIGN/SDATE()
STESTTIME = ASSIGN/STIME()
WRITE/DID(ISO103602-2Report),SSEP
WRITE/DID(DEFAULTSCREEN),SSEP
WRITE/DID(ISO103602-2Report),'ISO10360-2 sphere minimin and maximun radius test. Performed on'
WRITE/DID(DEFAULTSCREEN),'ISO10360-2 sphere minimin and maximun radius test. Performed on'
WRITE/DID(ISO103602-2Report),'TIME : ', STESTTIME
WRITE/DID(DEFAULTSCREEN),'TIME : ', STESTTIME
WRITE/DID(ISO103602-2Report),'DATE : ', STESTDATE
WRITE/DID(DEFAULTSCREEN),'DATE : ', STESTDATE
CALL/M(EASI_SPHERE_HIGHLOW_POINTS), (M_SPH), (ISO103602-2Report), HR, LR, RADSEP, LPRET
WRITE/DID(ISO103602-2Report),' '
WRITE/DID(DEFAULTSCREEN),' '
WRITE/DID(ISO103602-2Report),'Maximun Radius = ', HR:6:5, ' Minimun Radius = ', LR:6:5, ' Form Error = ', RADSEP:6:5
WRITE/DID(DEFAULTSCREEN),'Maximun Radius = ', HR:6:5, ' Minimun Radius = ', LR:6:5, ' Form Error = ', RADSEP:6:5
CLOSE/DID(ISO103602-2Report), KEEP