$$
DMISMN/‘Created by [西安力德测量设备有限责任公司], 2010’, 4.0
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, 10.000000
SNSET/CLRSRF, 10.000000
error/(SETUP_ORG_SPH1),4
jumpto/(START_MEASURE)
(SETUP_ORG_SPH1)
$
定
义
一
个
理
论
球
,
位
置
任
意
F
(
S
P
H
1
)
=
F
E
A
T
/
S
P
H
E
R
E
,
O
U
T
E
R
,
C
A
R
T
,
−
200.000000
,
−
200.000000
,
−
200.000000
,
定义一个理论球,位置任意 F(SPH1) = FEAT/SPHERE,OUTER,CART, -200.000000, -200.000000, -200.000000,
定义一个理论球,位置任意F(SPH1)=FEAT/SPHERE,OUTER,CART,−200.000000,−200.000000,−200.000000,
30.000000
MODE/MAN
MEAS/SPHERE, F(SPH1), 5
ENDMES
$$用球的实际球心位置产生一个新的坐标系,原点在球心上
D(ORG_SPH1) = TRANS/XORIG, FA(SPH1), YORIG, FA(SPH1), ZORIG, FA(SPH1)
(START_MEASURE)
RECALL/D(ORG_SPH1)
error/off
$$程序所需的变量声明、赋值
$$定义圆周率和其它常规变量
decl/DOUBLE,pie
decl/INTGR,kkk,jjj
$$声明测量点的坐标和法向量
decl/vector,points[32],ijk[32]
$$声明实际球的半径
decl/DOUBLE,R_act
$$声明除顶点外4层测量点所在平面圆的半径
decl/DOUBLE,Rar[4]
$$取得标准球的直径
R_act=assign/9.5
pie=assign/3.141592654
$$将标准球的理论值重新定义
F(SPH1)=Feat/SPHERE,OUTER,CART,0,0,0,R_act*2
$$循环赋值给数组变量,为球的测量点的坐标
decl/double,x,y,z
do/jjj,1,4,1
do/kkk,1,8,1
x=assign/R_actsin(jjjpie/8)cos(kkkpie/4)
y=assign/R_actsin(jjjpie/8)sin(kkkpie/4)
z=assign/R_actcos(jjjpie/8)
points[(jjj-1)8+kkk] = assign/vcart(x,y,z)
x=assign/sin(jjjpie/8)cos(kkkpie/4)
y=assign/sin(jjjpie/8)sin(kkkpie/4)
z=assign/cos(jjjpie/8)
ijk[(jjj-1)*8+kkk] = assign/vcart(x,y,z)
ijk[(jjj-1)*8+kkk] = assign/vunit(ijk[(jjj-1)*8+kkk])
enddo
enddo
MODE/PROG,MAN
$$开始25点、5层测量实际球
MEAS/SPHERE, F(SPH1), 25
GOTO/0,0,R_act+10
$$第1点
PTMEAS/CART, 0.000000, 0.000000, R_act, 0.000000, 0.000000, 1.000000
$$22.5度4个测量点
ptmeas/cart,vecx(points[2]),vecy(points[2]),vecz(points[2]),vecx(ijk[2]),vecy(ijk[2]),vecz(ijk[2])
ptmeas/cart,vecx(points[4]),vecy(points[4]),vecz(points[4]),vecx(ijk[4]),vecy(ijk[4]),vecz(ijk[4])
ptmeas/cart,vecx(points[6]),vecy(points[6]),vecz(points[6]),vecx(ijk[6]),vecy(ijk[6]),vecz(ijk[6])
ptmeas/cart,vecx(points[8]),vecy(points[8]),vecz(points[8]),vecx(ijk[8]),vecy(ijk[8]),vecz(ijk[8])
$$45度8个测量点
ptmeas/cart,vecx(points[9 ]),vecy(points[9 ]),vecz(points[9 ]),vecx(ijk[9 ]),vecy(ijk[9 ]),vecz(ijk[9 ])
ptmeas/cart,vecx(points[10]),vecy(points[10]),vecz(points[10]),vecx(ijk[10]),vecy(ijk[10]),vecz(ijk[10])
ptmeas/cart,vecx(points[11]),vecy(points[11]),vecz(points[11]),vecx(ijk[11]),vecy(ijk[11]),vecz(ijk[11])
ptmeas/cart,vecx(points[12]),vecy(points[12]),vecz(points[12]),vecx(ijk[12]),vecy(ijk[12]),vecz(ijk[12])
ptmeas/cart,vecx(points[13]),vecy(points[13]),vecz(points[13]),vecx(ijk[13]),vecy(ijk[13]),vecz(ijk[13])
ptmeas/cart,vecx(points[14]),vecy(points[14]),vecz(points[14]),vecx(ijk[14]),vecy(ijk[14]),vecz(ijk[14])
ptmeas/cart,vecx(points[15]),vecy(points[15]),vecz(points[15]),vecx(ijk[15]),vecy(ijk[15]),vecz(ijk[15])
ptmeas/cart,vecx(points[16]),vecy(points[16]),vecz(points[16]),vecx(ijk[16]),vecy(ijk[16]),vecz(ijk[16])
$$67.5度4个测量点
ptmeas/cart,vecx(points[18]),vecy(points[18]),vecz(points[18]),vecx(ijk[18]),vecy(ijk[18]),vecz(ijk[18])
ptmeas/cart,vecx(points[20]),vecy(points[20]),vecz(points[20]),vecx(ijk[20]),vecy(ijk[20]),vecz(ijk[20])
ptmeas/cart,vecx(points[22]),vecy(points[22]),vecz(points[22]),vecx(ijk[22]),vecy(ijk[22]),vecz(ijk[22])
ptmeas/cart,vecx(points[24]),vecy(points[24]),vecz(points[24]),vecx(ijk[24]),vecy(ijk[24]),vecz(ijk[24])
$$90度8个测量点
ptmeas/cart,vecx(points[25]),vecy(points[25]),vecz(points[25]),vecx(ijk[25]),vecy(ijk[25]),vecz(ijk[25])
ptmeas/cart,vecx(points[26]),vecy(points[26]),vecz(points[26]),vecx(ijk[26]),vecy(ijk[26]),vecz(ijk[26])
ptmeas/cart,vecx(points[27]),vecy(points[27]),vecz(points[27]),vecx(ijk[27]),vecy(ijk[27]),vecz(ijk[27])
ptmeas/cart,vecx(points[28]),vecy(points[28]),vecz(points[28]),vecx(ijk[28]),vecy(ijk[28]),vecz(ijk[28])
ptmeas/cart,vecx(points[29]),vecy(points[29]),vecz(points[29]),vecx(ijk[29]),vecy(ijk[29]),vecz(ijk[29])
ptmeas/cart,vecx(points[30]),vecy(points[30]),vecz(points[30]),vecx(ijk[30]),vecy(ijk[30]),vecz(ijk[30])
ptmeas/cart,vecx(points[31]),vecy(points[31]),vecz(points[31]),vecx(ijk[31]),vecy(ijk[31]),vecz(ijk[31])
ptmeas/cart,vecx(points[32]),vecy(points[32]),vecz(points[32]),vecx(ijk[32]),vecy(ijk[32]),vecz(ijk[32])
GOTO/cart,0,0,R_act+10
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(FEATLABEL), 1
ER = ASSIGN/0
HIGHR = ASSIGN/0
LOWR = ASSIGN/100000
PCOUNT = VALUE/FA(FEATLABEL), PTDATA
XC = OBTAIN/FA(FEATLABEL), 4
YC = OBTAIN/FA(FEATLABEL), 5
ZC = OBTAIN/FA(FEATLABEL), 6
DO/LPCOUNT, 1, PCOUNT
XX = OBTAIN/FA(FEATLABEL)[LPCOUNT],2
YY = OBTAIN/FA(FEATLABEL)[LPCOUNT],3
ZZ = OBTAIN/FA(FEATLABEL)[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(DEVICELABEL), 'PTN = ',LPCOUNT:2, ' X = ', XX:12:8, ' Y = ', YY:12:8, ' Z = ', ZZ:12:8, ' R = ', CDIST:12:8
$$WRITE/DID(DEFAULTSCREEN), 'PTN = ',LPCOUNT:2, ' X = ', XX:12:8, ' Y = ', YY:12:8, ' Z = ', ZZ:12:8, ' R = ', CDIST:12:8
ENDDO
RADSEPARATION = ASSIGN/(HIGHR-LOWR)
ENDMAC
$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
$$$$$$$$$$$$$$$$$$$$$$$$
输
出
S
P
H
1
结
果
输出SPH1结果
输出SPH1结果$$$$$$$$$$$$$$$$$$$$$$$$
DECL/COMMON, REAL, HR, LR, RADSEP
DECL/COMMON, INTGR, LPRET
DECL/COMMON, CHAR, 256, STESTDATE, STESTTIME, SSEP
DID(ISO103602-2Report) = DEVICE/STOR,‘C:\ISO-103602-Report.rep’
$$DID(ISO103602-2Report) = DEVICE/COMM,‘127.0.0.1:1290’
OPEN/DID(ISO103602-2Report), DIRECT, OUTPUT, APPEND
D
I
D
(
D
E
F
A
U
L
T
S
C
R
E
E
N
)
=
D
E
V
I
C
E
/
T
E
R
M
,
′
D
e
f
a
u
l
t
S
c
r
e
e
n
′
DID(DEFAULTSCREEN)=DEVICE/TERM,'DefaultScreen'
DID(DEFAULTSCREEN)=DEVICE/TERM,′DefaultScreen′OPEN/DID(DEFAULTSCREEN),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), (SPH1), (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
$$CLOSE/DID(DEFAULTSCREEN), KEEP