社区活动 技术论坛 wtutor星形测头自动测孔子程序
wtutor星形测头自动测孔子程序
2005-03-23 21:54 197 0 18
这是一个没有任何参数询问的星形测头自动测孔子程序.该程序已在国内多家TUTOR用户中予以应用.为了表示对BBS参与人员的感谢,现将其完整的源程序公开在此,供大家研究和发展. procedure STAR4 real AA=90,DD,C1,C2,NN=0,TT,TR,RN=0 real XC,YC,ZC,SA=0,EA=360,NX=0,ED vector VCIR coord XYZ,CCIR,XYZ2,XYZ3,XYZ4,XYZ5,ABC integer HEAD,SI,BL,PLXYZ,TIP1,TIPA,TIPB element EL dy icon "c:\wtutor\dq\kxx.bmp" dy ("") dy ("") dy ("") dy ("") dy ("") dy ("") dy ("") dy ("NC / STAR PROBE HOLE<4> PROGRAM") dy ("") fly (off) mspeed 100 no_approach BL=info_func (7) PLXYZ=info_func (8) if PLXYZ eq 3 then dy ("=== XY ===") end_if if PLXYZ eq 1 then dy ("=== YZ ===") end_if if PLXYZ eq 2 then dy ("=== ZX ===") end_if dy ("") delay (40) for I=1 to 100 by 1 dist_approach 6.,12. manmove ncmove dist_approach 1.,100. HEAD=info_func (2) if NN eq 0 then probe (HEAD,2) get_position (XYZ2) probe (HEAD,3) get_position (XYZ3) probe (HEAD,4) get_position (XYZ4) probe (HEAD,5) get_position (XYZ5) if PLXYZ ne 1 then if XYZ2|x gt XYZ3|x then TIPA=2 TT=XYZ2|x else TIPA=3 TT=XYZ3|x end_if if XYZ4|x gt TT then TIPA=4 TT=XYZ4|x end_if if XYZ5|x gt TT then TIPA=5 end_if if PLXYZ eq 3 then TIP1=TIPA else TIPB=TIPA end_if end_if if PLXYZ ne 2 then if XYZ2|y gt XYZ3|y then TIPA=2 TT=XYZ2|y else TIPA=3 TT=XYZ3|y end_if if XYZ4|y gt TT then TIPA=4 TT=XYZ4|y end_if if XYZ5|y gt TT then TIPA=5 end_if if PLXYZ eq 1 then TIP1=TIPA else TIPB=TIPA end_if end_if if PLXYZ ne 3 then if XYZ2|z gt XYZ3|z then TIPA=2 TT=XYZ2|z else TIPA=3 TT=XYZ3|z end_if if XYZ4|z gt TT then TIPA=4 TT=XYZ4|z end_if if XYZ5|z gt TT then TIPA=5 end_if if PLXYZ eq 2 then TIP1=TIPA else TIPB=TIPA end_if end_if if ((TIP1 eq 2) and (TIPB eq 5)) or (TIP1 gt TIPB) then NX=1 if (TIP1 eq 5) and (TIPB eq 2) then NX=0 end_if end_if NN=1 for TP=2 to 5 by 1 probe (HEAD,TP) TR=info_func (4) RN=RN+TR end_for RN=RN/2 end_if if NX eq 0 then SI=TIP1-1 else SI=TIP1+1 end_if BL=BL+1 blknb BL HEAD=info_func (2) output off mcir (MEMO[BL],4) savepts for K=0 to 3 by 1 if NX eq 0 then SI=SI+1 if SI gt 5 then SI=SI-4 end_if else SI=SI-1 if SI eq 1 then SI=SI+4 end_if end_if probe (HEAD,SI) get_position (XYZ) XC=XYZ|x YC=XYZ|y ZC=XYZ|z move (X=XC,Y=YC,Z=ZC) C1=0.5*cos (SA+K*AA) C2=0.5*sin (SA+K*AA) if PLXYZ eq 3 then movetf (X=XC+C1,Y=YC+C2,Z=ZC) end_if if PLXYZ eq 1 then movetf (X=XC,Y=YC+C1,Z=ZC+C2) end_if if PLXYZ eq 2 then movetf (X=XC+C2,Y=YC,Z=ZC+C1) end_if end_for TR=info_func (4) output on EL=MEMO[BL] ED=EL|dm MEMO[BL]|dm=ED-TR*2+RN output MEMO[BL] move (X=XC,Y=YC,Z=ZC) end_for end_procedure
我要回复

登陆后才能评论

登录
所有回贴(0)
在线咨询
关注我们

海克斯康制造智能

电话咨询
400-6580-400

热线电话(工作时间8:30-17:30)

关注我们 电话咨询 在线咨询

海克斯康制造智能