#山涧果子#
DECL/LOCAL, REAL, LPNUM,HEIGHT, TOLERROR
DECL/LOCAL, CHAR, 20, BARAXIS,PROB,ANS
DECL/COMMON,DOUBLE,DR_PRBRAD
DECL/COMMON, DOUBLE, VI, VJ, VK, VI2, VJ2, VK2, DCX, DCY, DCZ, DX, DY, DZ, BARDIR, DMAX, DMIN
DECL/COMMON, DOUBLE, GAGEHEIGHT, GAGEWIDTH, ENDCLEAR,STD
DECL/COMMON, DOUBLE, ZGAP[5], XGAP[5], BLENGTH[5], ZP, XP, BL$$ do..loop<<<循环测量次数>>>为3,可以根据实际需要修改循环测量次数
LPNUM = ASSIGN/3$$ HEIGHT抬高的<<<安全距离>>>为43,可以根据实际情况修改此数值
HEIGHT = ASSIGN/43$$ XGAP表示<<<块规之间的端面距离>>>,请查看 GageBlock.JPG 图片里的图解XGAP[1] = ASSIGN/0
XGAP[2] = ASSIGN/0
XGAP[3] = ASSIGN/0
XGAP[4] = ASSIGN/0
XGAP[5] = ASSIGN/48
$$ ZGAP表示<<<块规间距>>>,请查看 GageBlock.JPG 图片里的图解ZGAP[1] = ASSIGN/0
ZGAP[2] = ASSIGN/ZGAP[1] + 19
ZGAP[3] = ASSIGN/ZGAP[1] + 38
ZGAP[4] = ASSIGN/ZGAP[1] + 57
ZGAP[5] = ASSIGN/ZGAP[1] + 76$$ <<<块规的长度>>>,500,400,300,200,30,可以自行修改BLENGTH[1] = ASSIGN/499.99975
BLENGTH[2] = ASSIGN/400.00028
BLENGTH[3] = ASSIGN/300.00030
BLENGTH[4] = ASSIGN/199.99943
BLENGTH[5] = ASSIGN/29.99996$$<<<机器设计精度>>>,允许误差(u)---------------------------------------------TOLERROR = ASSIGN/1.2$$----------------------------------------------------------
GAGEHEIGHT = ASSIGN/37
GAGEWIDTH  = ASSIGN/9
ENDCLEAR   = ASSIGN/2.5ANS = PROMPT/'START CNC MEASUREMENT [ Y/N ]  '
IF/(ANS .EQ. 'Y') .OR. (ANS .EQ. 'Y')PRCOMP/OFFJUMPTO/(CNCSTART)ENDIF
RECALL/D(MCS)
UNITS/MM,ANGDEC
PRCOMP/OFF
MODE/MAN
F(PTL1)=FEAT/POINT,CART,1 ,0, 0, 0, 0, 1
F(PTL2)=FEAT/POINT,CART,2 ,0, 0, 0, 0, 1
F(PTL3)=FEAT/POINT,CART,3 ,0, 0, 0, 0, 1
F(PTL4)=FEAT/POINT,CART,4 ,0, 0, 0, 0, 1
F(PTL5)=FEAT/POINT,CART,5 ,0, 0, 0, 0, 1
F(PTL6)=FEAT/POINT,CART,6 ,0, 0, 0, 0, 1MEAS/POINT,F(PTL1),1
ENDMES
MEAS/POINT,F(PTL2),1
ENDMES
MEAS/POINT,F(PTL3),1
ENDMES
MEAS/POINT,F(PTL4),1
ENDMES
MEAS/POINT,F(PTL5),1
ENDMES
MEAS/POINT,F(PTL6),1
ENDMES(CNCSTART)
MODE/PROG,MANVI = OBTAIN/FA(PTL1)[1],5
VJ = OBTAIN/FA(PTL1)[1],6
VK = OBTAIN/FA(PTL1)[1],7
F(BFPL1) = FEAT/PLANE,CART, 0.0, 0.0, 0.0, VI, VJ, VK
VI = OBTAIN/FA(PTL5)[1],5
VJ = OBTAIN/FA(PTL5)[1],6
VK = OBTAIN/FA(PTL5)[1],7
VI2 = OBTAIN/FA(PTL4)[1],5
VJ2 = OBTAIN/FA(PTL4)[1],6
VK2 = OBTAIN/FA(PTL4)[1],7
F(BFLN1) = FEAT/LINE,BND,CART, 0, 0, 0, -VI2, -VJ2, -VK2, VI, VJ, VK
CONST/PLANE,F(BFPL1),BF,FA(PTL1),FA(PTL2),FA(PTL3)
CONST/LINE,F(BFLN1),BF,FA(PTL5),FA(PTL6)
D(GAGG1CRD) = DATSET/FA(BFPL1), ZDIR, ZORIG, FA(BFLN1), -XDIR, YORIG, FA(PTL4), XORIG
PROB = VALUE/SNSLCT
DR_PRBRAD = OBTAIN/SS(PROB), 8
DR_PRBRAD = ASSIGN/(DR_PRBRAD/2)
D(GAGG1CRD) = TRANS/ZORIG, -DR_PRBRAD, YORIG, -DR_PRBRAD, XORIG, -DR_PRBRAD
DID(GageBlock) = DEVICE/STOR,'GagaBlockResult.out'
OPEN/DID(GageBlock), DIRECT, OUTPUT, APPEND
DID(DEFAULTSCREEN) = DEVICE/TERM,'SCREENOUTPUT'
OPEN/DID(DEFAULTSCREEN),FDATA,V(DEFAULTFORMAT),OUTPUTM(GAGECRDSETUP) = MACRO/'CRDLABEL', ADVX, ADVZ, GHEIGHT, GWIDTH, GLENGTH, GCLEAR, PRBRRECALL/D(GAGG1CRD)D(@CRDLABEL) = TRANS/ZORIG, ADVZ, XORIG, ADVXGOTO/-10, HEIGHT, 5F(ZPLANE) = FEAT/PLANE,CART, 0.0, 0.0, 0.0, 0, 0, 1F(XLINE) = FEAT/LINE,BND,CART, 0, 0, 0, 1, 0, 0, 0, 1, 0F(XORIG)=FEAT/POINT,CART,6 ,0, 0, 1, 0, 0MEAS/PLANE,F(ZPLANE), 3PTMEAS/CART, -GCLEAR, -(GHEIGHT/10),   0, 0, 0, 1PTMEAS/CART, -GCLEAR, -(GHEIGHT*2/10), 0, 0, 0, 1GOTO/-3, HEIGHT, 5GOTO/-(GLENGTH-3), HEIGHT, 5PTMEAS/CART, -(GLENGTH-ENDCLEAR), -(GHEIGHT/6), 0, 0, 0, 1ENDMESMEAS/LINE,F(XLINE), 2GOTO/-GLENGTH,HEIGHT, 5PTMEAS/CART, -(GLENGTH-GCLEAR), 0,  -(GWIDTH/2), 0, 1, 0GOTO/-(GLENGTH-3), HEIGHT, -(GWIDTH/2)GOTO/-5, HEIGHT, -(GWIDTH/2)PTMEAS/CART, -GCLEAR, 0, -(GWIDTH/2), 0, 1, 0ENDMESGOTO/0, HEIGHT, -(GWIDTH/2)    MEAS/POINT,F(XORIG), 1PTMEAS/CART, 0, -(GHEIGHT/8), -(GWIDTH/2), 1, 0, 0ENDMESGOTO/0, HEIGHT, -(GWIDTH/2)
$$(ANS .EQ. 'N') .AND.
IF/(BL .EQ. BLENGTH[1])
RECALL/D(MCS)
DX = OBTAIN/FA(XORIG),6
DY = OBTAIN/FA(XORIG),7
DZ = OBTAIN/FA(XORIG),8
DCX = ASSIGN/ABS(DX)
DCY = ASSIGN/ABS(DY)
DCZ = ASSIGN/ABS(DZ)
BARDIR = ASSIGN/MX(DCX,DCY,DCZ)
BARAXIS = ASSIGN/'非 常规角'
IF/(BARDIR .GT. 0.95)IF/(DCX .GT. 0.95)BARAXIS = ASSIGN/'X轴'ENDIFIF/(DCY .GT. 0.95)BARAXIS = ASSIGN/'Y轴'ENDIFIF/(DCZ .GT. 0.95)BARAXIS = ASSIGN/'Z轴'ENDIF
ELSEIF/(BARDIR .LT. 0.72) .AND. (BARDIR .GT. 0.69)IF/(DCX.LE.0.1)IF/(DY.LT.0)BARAXIS = ASSIGN/'YZ直角__OB'ELSEBARAXIS = ASSIGN/'YZ直角__AC'ENDIFENDIFIF/(DCY.LE.0.1)IF/(DX.LT.0)BARAXIS = ASSIGN/'ZX直角__OB'ELSEBARAXIS = ASSIGN/'ZX直角__AC'ENDIFENDIFIF/(DCZ.LE.0.01)IF/((DX + DY) .LT. 0.05)BARAXIS = ASSIGN/'XY直角__AC'ENDIFIF/((DX + DY) .GT. 1.4) .OR. ((DX + DY) .LT. -1.4)BARAXIS = ASSIGN/'XY直角__OB'ENDIFENDIFIF/(DCX .LT. 0.53) .AND. (DCX .GT. 0.47) .AND. (DCY .LT. 0.53) .AND. (DCY .GT. 0.47)IF/(DX .LT. 0) .AND. (DY .LT. 0)BARAXIS = ASSIGN/'空间1'ENDIFIF/(DX .GT. 0) .AND. (DY .LT. 0)BARAXIS = ASSIGN/'空间2'ENDIFIF/(DX .GT. 0) .AND. (DY .GT. 0)BARAXIS = ASSIGN/'空间3'ENDIFIF/(DX .LT. 0) .AND. (DY .GT. 0)BARAXIS = ASSIGN/'空间4'ENDIFENDIFENDIF
ENDIFWRITE/DID(DEFAULTSCREEN),' '
WRITE/DID(DEFAULTSCREEN),'    量块方向:',BARAXISENDIF  D(@CRDLABEL) = DATSET/FA(ZPLANE), ZDIR, ZORIG, FA(XLINE), XDIR, YORIG, FA(XORIG), XORIG
D(@CRDLABEL) = TRANS/ZORIG, -PRBR, YORIG, -PRBR, XORIG, -PRBRENDMACM(GAGECHECK) = MACRO/GHEIGHT, GWIDTH, GLENGTH, PRBRDECL/LOCAL, REAL, XS, XE, ACTLENGTH,ERROR1,ERROR2,ERROR3,ERROR4,TOL1,MAXERROR,MINERROR,MAXIMUM,MINIMUM,JJYYCHANGE,AVERAG,AVERAG1DECL/LOCAL, CHAR, 20, SSEP,SSEP1,SSEP2,SSEP3,STESTDATE, STESTTIME,JJYY,NYDECL/LOCAL, INTGR, LPCOUNT,LPCOUNT1DECL/LOCAL,DOUBLE,JJYY[LPNUM]ERROR3 = ASSIGN/LPNUM$$  SSEP = ASSIGN/'--------------------------------------------------------------------------------'
$$  WRITE/DID(GageBlock), SSEP
$$  WRITE/DID(DEFAULTSCREEN),SSEPF(PTS)=FEAT/POINT,CART,0 ,0, 0, 1, 0, 0F(PTE)=FEAT/POINT,CART,-GLENGTH ,0, 0,  -1, 0, 0STD = ASSIGN/0SELECT/BLCASE/BLENGTH[1]TOL1 = ASSIGN/(TOLERROR+BLENGTH[1]/500)/1000ENDCASCASE/BLENGTH[2]TOL1 = ASSIGN/(TOLERROR+BLENGTH[2]/500)/1000ENDCASCASE/BLENGTH[3]TOL1 = ASSIGN/(TOLERROR+BLENGTH[3]/500)/1000ENDCASCASE/BLENGTH[4]TOL1 = ASSIGN/(TOLERROR+BLENGTH[4]/500)/1000ENDCASCASE/BLENGTH[5]TOL1 = ASSIGN/(TOLERROR+BLENGTH[5]/500)/1000ENDCASENDSELDO/LPCOUNT, 1,LPNUMGOTO/5, HEIGHT, -(GWIDTH/2)MEAS/POINT,F(PTS), 1PTMEAS/CART, 0, -(GHEIGHT/4), -(GWIDTH/2), 1, 0, 0ENDMESGOTO/5, HEIGHT, -(GWIDTH/2)GOTO/-GLENGTH-8, HEIGHT, -(GWIDTH/2)MEAS/POINT,F(PTE), 1PTMEAS/CART, -GLENGTH, -(GHEIGHT/4), -(GWIDTH/2), -1, 0, 0ENDMESXS = OBTAIN/FA(PTS), 3XE = OBTAIN/FA(PTE), 3
$$      WRITE/DID(DEFAULTSCREEN),''
$$      STESTDATE = ASSIGN/SDATE()
$$      STESTTIME = ASSIGN/STIME()
$$      WRITE/DID(GageBlock), 'DATE : ', STESTDATE, '     TIME : ', STESTTIME
$$      WRITE/DID(DEFAULTSCREEN),'DATE : ', STESTDATE, '     TIME : ', STESTTIMEACTLENGTH = ASSIGN/(XS - XE) - (2.0 * PRBR)ERROR1 = ASSIGN/ACTLENGTH-GLENGTH
$$      WRITE/DID(GageBlock), 'RUN ', LPCOUNT, 'Actual Length = ', ACTLENGTH, '     Nominal Length : ', GLENGTH ,$
$$       '   ERROR:',ERROR1,'   TOL:    ',TOL1ERROR4 = ASSIGN/ABS(ERROR1)IF/(ERROR4.GT.TOL1)NY = ASSIGN/'NG'ELSENY = ASSIGN/'OK'ENDIF TOL1 = ASSIGN/TOL1*1000ERROR1 = ASSIGN/ERROR1*1000 IF/(LPCOUNT.EQ.1)MINERROR = ASSIGN/ERROR1        MAXERROR = ASSIGN/ERROR1AVERAG = ASSIGN/ERROR1/1000WRITE/DID(DEFAULTSCREEN),''WRITE/DID(DEFAULTSCREEN),'      ','序号 ','            ','理论值','              ','实测值   ','          ','示值误差(u)','            ','允许误差(u)','          ','测试结论'ENDIFIF/(ERROR1.LT.0)SSEP2 = ASSIGN/'         'ELSESSEP2 = ASSIGN/'          '   ENDIFSSEP1 = ASSIGN/'       'IF/(GLENGTH.EQ.50)SSEP1 = ASSIGN/'        'IF/(ERROR1.LT.0)SSEP2 = ASSIGN/'           '
$$*/ELSESSEP2 = ASSIGN/'            ' ENDIFENDIFSSEP3 = ASSIGN/'                     'WRITE/DID(DEFAULTSCREEN),'      ',LPCOUNT:2:2,'                ',GLENGTH:5:5,SSEP1,ACTLENGTH:5:5,SSEP2,ERROR1:2:2,SSEP3,TOL1:2:2,SSEP3,NY$$     WRITE/DID(DEFAULTSCREEN),'RUN ', LPCOUNT, 'Actual Length = ', ACTLENGTH, '     Nominal Length : ', GLENGTH , $
$$      '   ERROR:',ERROR1,'   TOL:    ','-/+',TOL1TOL1 = ASSIGN/TOL1/1000IF/(ERROR1 .LT. MINERROR)MINERROR = ASSIGN/ERROR1ENDIFIF/(ERROR1 .GT. MAXERROR)MAXERROR = ASSIGN/ERROR1ENDIFJJYY[LPCOUNT] = ASSIGN/ERROR1KNPTR1 = ASSIGN/MINERRORKNPTR2 = ASSIGN/MAXERRORIF/(LPCOUNT.GT.1)AVERAG = ASSIGN/ERROR1/1000 + AVERAGENDIFKNPTR3 = ASSIGN/KNPTR2-KNPTR1$$        JJYY[LPCOUNT] = ASSIGN/ABS(JJYY[LPCOUNT])
$$      STD = ASSIGN/0
$$        ERROR1 = ASSIGN/ABS(ERROR1)
$$      IF/(ERROR1.GT.STD)
$$        STD = ASSIGN/ERROR1
$$      ENDIFGOTO/-GLENGTH, HEIGHT, -(GWIDTH/2)GOTO/0, HEIGHT, -(GWIDTH/2)ENDDO$$        WRITE/DID(DEFAULTSCREEN),'MAXMUM ERROR IS    ',STDIF/(MAXERROR+MINERROR.GT.0)MAXIMUM = ASSIGN/MAXERROR
$$      MINIMUM = ASSIGN/MINERRORELSE
$$      MAXIMUM = ASSIGN/MINERRORMINIMUM = ASSIGN/MAXERRORENDIFAVERAG  = ASSIGN/AVERAG/LPNUM+GLENGTH
$$  WRITE/DID(DEFAULTSCREEN),'MAXMUM ERROR IS    ',KNPTR2:5:5,'    MINIMUM ERROR IS    ',KNPTR1:5:5
$$  WRITE/DID(DEFAULTSCREEN),'     REPEATABILITY ERROR   ',KNPTR3:5:5WRITE/DID(DEFAULTSCREEN),'     ','实测平均值:    ', AVERAG:5:5WRITE/DID(DEFAULTSCREEN),'     ','重复性误差:    ', KNPTR3:2:2ENDMAC$$DECL/COMMON,INTGR,II
$$DO/II,1,5ZP = ASSIGN/ZGAP[1]
XP = ASSIGN/XGAP[1]
BL = ASSIGN/BLENGTH[1]
CALL/M(GAGECRDSETUP), (GAGE1CRD), XP, ZP, GAGEHEIGHT, GAGEWIDTH, BL, ENDCLEAR, DR_PRBRAD
CALL/M(GAGECHECK), GAGEHEIGHT, GAGEWIDTH, BL, DR_PRBRADZP = ASSIGN/ZGAP[2]
XP = ASSIGN/-XGAP[2]
BL = ASSIGN/BLENGTH[2]
CALL/M(GAGECRDSETUP), (GAGE2CRD), XP, ZP, GAGEHEIGHT, GAGEWIDTH, BL, ENDCLEAR, DR_PRBRAD
CALL/M(GAGECHECK), GAGEHEIGHT, GAGEWIDTH, BL, DR_PRBRADZP = ASSIGN/ZGAP[3]
XP = ASSIGN/-XGAP[3]
BL = ASSIGN/BLENGTH[3]
CALL/M(GAGECRDSETUP), (GAGE3CRD), XP, ZP, GAGEHEIGHT, GAGEWIDTH, BL, ENDCLEAR, DR_PRBRAD
CALL/M(GAGECHECK), GAGEHEIGHT, GAGEWIDTH, BL, DR_PRBRADZP = ASSIGN/ZGAP[4]
XP = ASSIGN/-XGAP[4]
BL = ASSIGN/BLENGTH[4]
CALL/M(GAGECRDSETUP), (GAGE4CRD), XP, ZP, GAGEHEIGHT, GAGEWIDTH, BL, ENDCLEAR, DR_PRBRAD
CALL/M(GAGECHECK), GAGEHEIGHT, GAGEWIDTH, BL, DR_PRBRADZP = ASSIGN/ZGAP[5]
XP = ASSIGN/-XGAP[5]
BL = ASSIGN/BLENGTH[5]
CALL/M(GAGECRDSETUP), (GAGE5CRD), XP, ZP, GAGEHEIGHT, GAGEWIDTH, BL, ENDCLEAR, DR_PRBRAD
CALL/M(GAGECHECK), GAGEHEIGHT, GAGEWIDTH, BL, DR_PRBRAD$$ENDDO
MODE/MAN
CLOSE/DID(GageBlock)$$ENDFIL


RationalDMIS 2020 高级编程之量块程序示例2021(山涧果子)相关推荐

  1. RationalDMIS 2020高级编程:快速3-2-1构建坐标系

    $$/* Header DMISMN/'Created by [山涧果子] on 星期五, 八月 27, 2021', 4.0 UNITS/MM, ANGDEC, MMPS WKPLAN/XYPLAN ...

  2. Python——Python编程方法与应用——程序示例

    Python--Python编程方法与应用--程序示例 例1-1 根据圆的半径计算圆的周长和面积 #ex0101.py # 计算圆形的面积和周长 r = 3.2 area = 3.14*r*r per ...

  3. RationalDMIS 7.1 量块程序 2020

    DMISMN/'Created by [山涧果子] on 星期六, 九月 15, 2018', 4.0 UNITS/MM, ANGDEC, MMPS WKPLAN/XYPLAN PRCOMP/ON T ...

  4. RationalDMIS 7.0量块程序(力合)

    DMISMN/'Created by [深圳力合精密装备科技有限公司-030119] on 星期六, 九月 15, 2018', 4.0 UNITS/MM, ANGDEC, MMPS WKPLAN/X ...

  5. AC-DMIS 5.6量块程序 2020

    INITSAVE-COORSYS("INIT")!V40 绕行路径:左1右2上3!V41 前端避让距离>=1MM!V42 侧面避让距离>=20MM!V43 后端避让距离 ...

  6. UNIX 环境高级编程(六)—— 程序和进程

    1. 基本概念 1.1 程序(program) 程序是一个存储在磁盘上某个目录中的可执行文件. 内核使用 exec 函数(七个 exec 函数之一),将程序读入内存. 1.2 进程(process) ...

  7. 次坐标从0开始_三坐标测量机安全使用+量块校准操作规程

    知识点:  CMM校准依据: <JJF1064-2010坐标测量机校准规范>(基本等同于ISO10360)标准器:尺寸实物标准器.检测球.二维靶标. 校准项目: (1)尺寸测量误差校准 对 ...

  8. Unix——学习《Unix环境高级编程》找不到“apue.h”方法

    在运行<UNIX环境高级编程>中的程序时会遇到apue.h包头找不到的情况,这是作者为了方便程序书写封闭了一些功能函数和错误处理等.在http://www.apuebook.com中可以下 ...

  9. UNIX环境高级编程-环境配置

    背景说明: 学习<UNIX环境高级编程>,里面的示例程序用到了作者写的模块. 把第一个示例代码敲入,结果当头一棒. 咦,怎么编不过去. 网上找资料发现好人不少,问题终于解决. 特此,把我的 ...

最新文章

  1. SVM算法实现光学字符识别
  2. 小猫TOMCAT其实很可爱
  3. python opencv-4.1.0 cv::HersheyFonts 文字类型
  4. vue实现搜索框记录搜索历史_2018-09-13 基于Vue的搜索栏功能实现(we-ui)
  5. Shadow Brokers 公布 2.1 万美元的 0day 订阅服务
  6. 10034 - Freckles 克鲁斯克尔最小生成树!~
  7. Python编程技巧合集
  8. ubuntu常用系统命令
  9. wps android 接口,Android调用WPS接口打开office类型文件
  10. Python-支持向量机 决策边界 最大化margin、使用多项式特征和核函数、高斯核函数、超参数 γ、SVM解决回归问题
  11. latex常见实用网址链接
  12. 拉丁舞身形研究之恰恰恰
  13. tomcat 启动显示日志级别,以及SLF4J: Failed to load class org.slf4j.impl.StaticLoggerBinder.错误
  14. 计算机派位录取,北京小升初派位入学随机录取志愿优先,与成绩无关
  15. phpmyadmin 4.8.1 Remote File Inclusion Vulnerability (CVE-2018-12613)漏洞复现
  16. Eclipse 一直 invoking Maven Project Bulider 问题
  17. 阿里云服务器上面关闭tomcat报错
  18. 华晨宏盛分享2021年个人所得税起征点是个人所得税税率一览表
  19. PentestBox中部分工具整理
  20. CM-BERT: Cross-Modal BERT for Text-Audio Sentiment Analysis--文献笔记和翻译

热门文章

  1. phpmyadmin配置连接远程mysql服务器
  2. 无线产品标准有哪几种?它们各具有什么特征?
  3. 在html监听鼠标拖动,使用javaScript实现鼠标拖拽事件
  4. 盘点那些年被甲骨文前CEO埃里森炮轰过的厂商
  5. datagridview获取选中行数据
  6. 《邱岳的产品实战》学习笔记:第6周
  7. Flask教程--第一个Flask应用:调试模式
  8. Helm:问题对应:缺少PV或者PV不足导致pod一直pending的对应方法
  9. 鲁大师电动车智能化测评报告第十四期
  10. [原]MobileSubstrate 工作流程