VisualDMIS 6.5探测误差程序(25点球)

1044 篇文章 100 订阅
717 篇文章 27 订阅

在这里插入图片描述
$$
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(jjj
pie/8)cos(kkkpie/4)
y=assign/sin(jjjpie/8)sin(kkkpie/4)
z=assign/cos(jjj
pie/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,DefaultScreenOPEN/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
在这里插入图片描述

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

山涧果子

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值