55直播网

技术支持 靠得住新产品,滿意的服务
55直播网 > 技术支持 > 产品技术支持>三坐标测量软件RationalDMIS 高级编程应用实例

三坐标测量软件RationalDMIS 高级编程应用实例

说出时期:2022-06-21 15:06:47 著者:三坐标系 源于:zzbsl.com.cn 打开网页:3155

前言

      一个程序适用N种产品,该如何进行编程?

在測量应用免费软件中,对於相类似好品牌,如:环规,喜欢增进測量率,然后减掉好品牌编译程序的个数,測量员行对好品牌的差不多点确定一些 研究分析,察觉到进来有些数据显示可保证 规格尺寸化,根据RationalDMIS免费软件的初级语言表达方式工作保证 好品牌的快捷測量,并适合于许多种规格尺寸的好品牌。 1、设备概述对於起着无数要求的环规如何理解,如若每种个要求的大小不一都去和过程编写,是一种位是非常死板且方便的工程建筑,对於测试员应用代表过程也是较为方便的,干扰测试使用率。55直播网 对环规这一货品去定量分析,优势如下图所示图:

clip_image001.png

环规的类行前后为TYPE,总的高度定位为H,上边往下倾斜量定位为UP,顶端向前倾斜量定位为DP,环规外径定位为DM,衡量剖面个数m,每个剖面衡量点数为n。2、流程的设计的2.1 程度运转后,经过人员键入,可能实行有所差异技术参数服务的自己在测量2.2 方案图

clip_image003.jpg

 2.3 RationalDMIS 环节填写(1)用DMIS警告,设施这个启动时发送主要参数的警告机会

clip_image005.png

代碼如下图所示:

clip_image006.png

(2) 对性能参数做好答案,如答案环规方式、插入文章为英文字母、0 等状态

clip_image007.png

(3)人工开发地图世界坐标系

clip_image008.png

(4)配置应急品面宏     (请将稳定水平面宏环节按下类知识编辑)

clip_image009.png

(5)会自动精建方位角系

clip_image010.png

(6)判断与具体分析能够 前边键入的建筑高度与点数性能,开始柱体预估,并开始评议

clip_image011.png

(7)出产检侧报告格式

clip_image012.png

(8)整理能够RationalDMIS软文,只需简洁3步,只能结束:1、因素判定,发送电脑监控数据,判定规格为类型的;2、巧用赋值,将风险管控规格赋给全局变量;3、采用自变量,总体规划测定运动轨迹,保持了各不相同型号的类产品的检查;最后做到个系统,成功N个各不相同规格尺寸厂品的自定、高质量自动测量。(9)齐全源代码以下几点


 
$$/*  Header
 
DMISMN/'Created by [55直播网
测量技术(深圳)有限公司(非销售版)-101522-10825] on 星期四, 五月 26, 2022', 4.0
 
UNITS/MM, ANGDEC, MMPS
 
WKPLAN/XYPLAN
 
PRCOMP/ON
 
TECOMP/OFF
 
FLY/1.000000
 
MODE/PROG, MAN
 
SNSET/APPRCH, 1.000000
 
SNSET/RETRCT, 1.000000
 
SNSET/DEPTH, 0.000000
 
SNSET/SEARCH, 10.000000
 
SNSET/CLRSRF, 10.000000
 
RECALL/D(MCS)
 
SNSLCT/S(ROOTSN2)
 
GEOALG/BF, LSTSQR
 
GEOALG/ANGLB, DEFALT
 
GEOALG/CIRCLE, MAXINS
 
GEOALG/ARC, LSTSQR
 
GEOALG/PLANE, LSTSQR
 
$$
 
$$
 
$$*/
 
MODE/MAN
 
DECL/COMMON, INTGR, RINGconfig,TYPE,RINGH,RINGDM,RINGUP,RINGDP,RINGPOINTS,RINGCOUNTS
 
RINGconfig = PROMPT/TEXT,'请选择环规类型:',LIST,TYPE,'内','外',TEXT,'高度 H:',EDIT,RINGH,TEXT,'直径 DM:',EDIT,RINGDM,TEXT,'上偏移量 UP:',EDIT,RINGUP,TEXT,'下偏移量 DP:',EDIT,RINGDP,TEXT,'每层测点数 N:',EDIT,RINGPOINTS,TEXT,'层数 M:',EDIT,RINGCOUNTS
 
if/(TYPE.EQ.1)
 
KNPTN1=ASSIGN/1
 
ELSE
 
KNPTN1=ASSIGN/-1
 
ENDIF
 
$$检查参数
 
IF/(RINGH.EQ.0)
 
RINGH = PROMPT/'请输入正确的环规高度 H', 100, 1
 
ENDIF
 
 
 
IF/(RINGDM.EQ.0)
 
RINGDM = PROMPT/'请输入正确的环规直径 DM', 9999, 1
 
ENDIF
 
 
 
IF/(RINGUP.EQ.0)
 
RINGUP = PROMPT/'请输入正确的偏移量 UP', RINGH, 1
 
ENDIF
 
 
 
IF/(RINGDP.EQ.0)
 
RINGDP = PROMPT/'请输入正确的偏移量 DP', RINGH, 1
 
ENDIF
 
 
 
IF/(RINGPOINTS.EQ.0)
 
RINGPOINTS = PROMPT/'请输入正确的每层测点数 N', 9999, 3
 
ENDIF
 
 
 
IF/(RINGCOUNTS.EQ.0)
 
RINGCOUNTS = PROMPT/'请输入正确的测量层数 M', 9999, 2
 
ENDIF
 
 
 
 
 
F(PLN1)=FEAT/PLANE,POL,0,0,0.000000,0.000000,0.000000,1.000000
 
FA(PLN1)=FEAT/PLANE,POL,0,0,0.000000,0.000000,0.000000,1.000000
 
$$Measurement points are created through nominal points
 
 
 
MEAS/PLANE, F(PLN1), 3
 
  PTMEAS/POL, 16.022606,  89.412167, 0.000000, 0.000000, 0.000000, 1.000000
 
  PTMEAS/POL, 16.618454, 203.430682, 0.000000, 0.000000, 0.000000, 1.000000
 
  PTMEAS/POL, 16.155284, 335.311794, 0.000000, 0.000000, 0.000000, 1.000000
 
ENDMES
 
 
 
D(CRD1) = DATSET/FA(PLN1), ZDIR
 
D(CRD1) = TRANS/ZORIG, FA(PLN1)
 
 
 
F(CIR1)=FEAT/CIRCLE,INNER,CART,0.000000,0.000001,-2,0.000000,0.000000,1.000000, RINGDM
 
FA(CIR1)=FEAT/CIRCLE,INNER,CART,0.000000,0.000001,-2,0.000000,0.000000,1.000000, RINGDM
 
$$ Measurement points are created through nominal points
 
MEAS/CIRCLE, F(CIR2), 4
 
  PTMEAS/CART, 0, KNPTN1*RINGDM/2, -2 , 0, -1*KNPTN1, 0
 
  PTMEAS/CART, KNPTN1*RINGDM/2, 0, -2, -1*KNPTN1, 0, 0
 
  PTMEAS/CART, 0, -1*KNPTN1*RINGDM/2, -2, 0,1*KNPTN1, 0
 
  PTMEAS/CART, -1*KNPTN1*RINGDM/2, 0, -2, 1*KNPTN1,0, 0
 
ENDMES
 
 
 
D(CRD2) = DATSET/FA(PLN1), ZDIR, FA(CIR1), XORIG
 
D(CRD2) = TRANS/ZORIG, FA(PLN1), YORIG, FA(CIR1), XORIG, -0
 
 
 
 
 
MODE/PROG,MAN
 
 
 
$$ MACRO: EASI_CLEARPLN_GOTO
 
$$ FUNCTION: CLEARANCE SURFACE IMPLEMENTATION
 
$$      Move machine CLEAR SURFACE DIST above the current clear surface
 
$$plane and then move machine parallel to the clear surface plane
 
$$ ALL Macro parameters are in PCS and Current UNITS
 
$$ Last update: 3-1-04 Add mode checking. only works in PROG MODE
 
$$ Last update: 8-24-04 Clear position is based on the surface of
 
$$
 
$$ This sample DMIS Macro is provided by External-Array Software, Inc.
 
$$ It should be modified for your own use. There is no guarantee for
 
$$ the quality of this Macro. November, 2003
 
$$  调用参数 ISOM 为安全平面参考元素类型理论0(OR实际1)
 
$$ 调用参数目标位置测点TRAX 、TRAY、 TRAZ,TRAI,TRAJ,TRAK坐标及矢量
 
M(EASI_CLEARPLN_GOTO) = MACRO/ISNOM, TARX, TARY, TARZ, TARI, TARJ, TARK
 
DECL/LOCAL, REAL, CCX, CCY, CCZ, CCI, CCJ, CCK
 
DECL/LOCAL, REAL, CURX, CURY, CURZ, TD, CLRDIST, SDIAM,BJDIST
 
DECL/LOCAL, CHAR, 255, CLRLABEL, FLABEL, MMODE, SNAME
 
$$获取当前运行模式及安全平面参考元素名Label
 
MMODE = VALUE/MODE
 
CLRLABEL = VALUE/SNSET, CLRSRF
 
$$判断Label是否存在(关闭情况为空,非关闭则会获取到字符串,字符串长度大于0) 同时判断条件 当前模式是否为自动,否则跳过
 
IF/ ( (LEN(CLRLABEL) .GT. 0) .AND. (MMODE .EQ. 'PROG,MAN') )
 
$$获取安全距离
 
CLRDIST = VALUE/SNSET, CLRSRF, DIST
 
BJDIST= VALUE/SNSET,APPRCH
 
TARX=ASSIGN/TARX+BJDIST*TARI
 
TARY=ASSIGN/TARY+BJDIST*TARJ
 
TARZ=ASSIGN/TARZ+BJDIST*TARK
 
$$给FLABEL赋值,默认FA
 
FLABEL = ASSIGN/'FA'
 
$$根据ISOM情况来更改FA或F
 
IF/ ISNOM .EQ. 0
 
FLABEL = ASSIGN/'F'
 
ENDIF
 
$$赋值CCX,CCY,CCZ,CCI,CCJ,CCK为安全平面参考元素中心坐标的XYZIJK
 
CCX = OBTAIN/FLABEL(@CLRLABEL), 3
 
CCY = OBTAIN/FLABEL(@CLRLABEL), 4
 
CCZ = OBTAIN/FLABEL(@CLRLABEL), 5
 
CCI = OBTAIN/FLABEL(@CLRLABEL), 6
 
CCJ = OBTAIN/FLABEL(@CLRLABEL), 7
 
CCK = OBTAIN/FLABEL(@CLRLABEL), 8
 
$$获取探头名称
 
SNAME = VALUE/SNSLCT
 
$$获取探头直径
 
SDIAM = OBTAIN/SS(SNAME), 8
 
$$延安全平面矢量增加一个探头半径
 
CCX = ASSIGN/CCX + CCI * SDIAM/2
 
CCY = ASSIGN/CCY + CCJ * SDIAM/2
 
CCZ = ASSIGN/CCZ + CCK * SDIAM/2
 
$$获取当前探针X,Y,Z坐标
 
CURX = VALUE/GOTOM, XAXIS
 
CURY = VALUE/GOTOM, YAXIS
 
CURZ = VALUE/GOTOM, ZAXIS
 
$$计算当前坐标到安全平面的垂直距离
 
TD = ASSIGN/(CURX - CCX) * CCI + (CURY - CCY) * CCJ + (CURZ - CCZ) * CCK
 
$$清除原有判断,任意位置先垂直移动到安全高度
 
$$IF/ TD .LT. CLRDIST
 
TD = ASSIGN/(CLRDIST - TD)
 
GOTO/CURX+CCI*TD, CURY+CCJ*TD, CURZ+CCK*TD
 
$$ENDIF
 
$$计算目标坐标到安全平面的垂直距离
 
TD = ASSIGN/(TARX - CCX) * CCI + (TARY - CCY) * CCJ + (TARZ - CCZ) * CCK
 
IF/ TD .LT. CLRDIST
 
TD = ASSIGN/(CLRDIST - TD)
 
GOTO/TARX+CCI*TD, TARY+CCJ*TD, TARZ+CCK*TD
 
$$建议增加大于的情况
 
ENDIF
 
ENDIF
 
ENDMAC
 
 
 
SNSET/APPRCH, 1.0000
 
SNSET/RETRCT, 1.0000
 
SNSET/DEPTH, 0.0000
 
SNSET/SEARCH, 10.0000
 
SNSET/CLRSRF, FA(PLN1), 10.0000
 
 
 
F(PLN2)=FEAT/PLANE,POL,0,0,0.000000,0.000000,0.000000,1.000000
 
$$ Measurement points are created through nominal points
 
CALL/M(EASI_CLEARPLN_GOTO), 1,0, KNPTN1*RINGDM/2, 0 , 0, 0, 1
 
MEAS/PLANE, F(PLN2), 3
 
  PTMEAS/POL, KNPTN1*1+RINGDM/2, 90, 0.000000, 0.000000, 0.000000, 1.000000
 
  PTMEAS/POL, KNPTN1*1+RINGDM/2, 210, 0.000000, 0.000000, 0.000000, 1.000000
 
  PTMEAS/POL, KNPTN1*1+RINGDM/2, 330, 0.000000, 0.000000, 0.000000, 1.000000
 
ENDMES
 
D(CRD3) = DATSET/FA(PLN2), ZDIR
 
D(CRD3) = TRANS/ZORIG, FA(PLN2)
 
 
 
F(CIR2)=FEAT/CIRCLE,INNER,CART,0.000000,0.00000,-2,0.000000,0.000000,1.000000, RINGDM
 
$$ Measurement points are created through nominal points
 
CALL/M(EASI_CLEARPLN_GOTO), 1,0, RINGDM/2, -2 , 0, -1*KNPTN1, 0
 
MEAS/CIRCLE, F(CIR2), 4
 
  PTMEAS/CART, 0, RINGDM/2, -2 , 0, -1*KNPTN1, 0
 
  IF/(TYPE.EQ.2)
 
  CALL/M(EASI_CLEARPLN_GOTO), 1,RINGDM/2, 0, -2, -1*KNPTN1, 0, 0
 
  ENDIF
 
  PTMEAS/CART, RINGDM/2, 0, -2, -1*KNPTN1, 0, 0
 
  IF/(TYPE.EQ.2)
 
  CALL/M(EASI_CLEARPLN_GOTO), 1,0, -1*RINGDM/2, -2, 0,1*KNPTN1, 0
 
   ENDIF
 
  PTMEAS/CART, 0, -1*RINGDM/2, -2, 0,1*KNPTN1, 0
 
  IF/(TYPE.EQ.2)
 
  CALL/M(EASI_CLEARPLN_GOTO), 1,-1*RINGDM/2, 0, -2, 1*KNPTN1,0, 0
 
  ENDIF
 
  PTMEAS/CART, -1*RINGDM/2, 0, -2, 1*KNPTN1,0, 0
 
ENDMES
 
D(CRD4) = DATSET/FA(PLN2), ZDIR, FA(CIR2), XORIG
 
D(CRD4) = TRANS/ZORIG, FA(PLN2), YORIG, FA(CIR2), XORIG, -0
 
 
 
 
 
$$ Set.Term.Delete
 
IF/(TYPE.EQ.1)
 
KNPTC1=ASSIGN/'内'
 
ELSE
 
KNPTC1=ASSIGN/'外'
 
ENDIF
 
TEXT/OUTFIL,CONCAT('环规类型:',KNPTC1)
 
TEXT/OUTFIL,CONCAT('环规直径:',STR(RINGDM))
 
TEXT/OUTFIL,CONCAT('环规高度:',STR(RINGH))
 
TEXT/OUTFIL,CONCAT('测量上偏移量:',STR(RINGUP))
 
TEXT/OUTFIL,CONCAT('测量下偏移量:',STR(RINGDP))
 
TEXT/OUTFIL,CONCAT('测量层数',STR(RINGCOUNTS))
 
TEXT/OUTFIL,CONCAT('每层测量点数:',STR(RINGPOINTS))
 
DECL/COMMON,INTGR,ALLPOINTS
 
ALLPOINTS=ASSIGN/RINGCOUNTS*RINGPOINTS
 
DECL/REAL,PRR,PA,PH,PX,PY,PI,PJ,PDA,PDB
 
IF/(TYPE.EQ.1)
 
F(CYL1) = FEAT/CYLNDR,INNER,CART, 0,0,-1*RINGH/2, 0,0,1, RINGDM, RINGH
 
CALL/M(EASI_CLEARPLN_GOTO),1,RINGDM/2,0,0, -1,0,0
 
MEAS/CYLNDR, F(CYL1),ALLPOINTS
 
DO/PDA,1,RINGCOUNTS,1
 
DO/PDB,1,RINGPOINTS,1
 
PRR=ASSIGN/RINGDM/2
 
PA=ASSIGN/(360/RINGPOINTS)*(PDB-1) 
 
PH=ASSIGN/-1*RINGUP-(RINGH-RINGUP-RINGDP)/RINGCOUNTS*(PDA-1)
 
PI=ASSIGN/COS(DTOR(PA))*KNPTN1*-1
 
PJ=ASSIGN/SIN(DTOR(PA))*KNPTN1*-1
 
PX=ASSIGN/RINGDM/2*PI
 
PY=ASSIGN/RINGDM/2*PJ
 
    PTMEAS/POL,PRR,PA,PH,PI,PJ,0
 
ENDDO
 
ENDDO
 
ENDMES
 
ELSE
 
F(CYL1) = FEAT/CYLNDR,OUTER,CART, 0,0,-1*RINGH/2, 0,0,1, RINGDM, RINGH
 
MEAS/CYLNDR, F(CYL1),ALLPOINTS
 
DO/PDA,1,RINGCOUNTS,1
 
DO/PDB,1,RINGPOINTS,1
 
PRR=ASSIGN/RINGDM/2
 
PA=ASSIGN/(360/RINGPOINTS)*(PDB-1) 
 
PH=ASSIGN/-1*RINGUP-(RINGH-RINGUP-RINGDP)/RINGCOUNTS*(PDA-1)
 
PI=ASSIGN/COS(DTOR(PA))*KNPTN1*-1
 
PJ=ASSIGN/SIN(DTOR(PA))*KNPTN1*-1
 
PX=ASSIGN/RINGDM/2*PI
 
PY=ASSIGN/RINGDM/2*PJ
 
CALL/M(EASI_CLEARPLN_GOTO),1,PX,PY,PH,PI,PJ,0
 
    PTMEAS/POL,PRR,PA,PH,PI,PJ,0
 
ENDDO
 
ENDDO
 
ENDMES
 
ENDIF
 
T(TDM1)=TOL/DIAM,-0.500000,0.500000
 
OUTPUT/FA(CYL1),TA(TDM2)
 
T(TCLD1)=TOL/CYLCTY,0.200000
 
OUTPUT/FA(CYL1),TA(TCLD1)
 可以参考文章:《2015 PC-DMIS擂台电视大赛论文提纲集》


上一个: ​影像测量仪维护与保养要点(影像测量仪维修)
下一个: 光学影像仪如何快速完成小、软、薄工件测量
返回列表
最新文章: 如何正确设置逼近/回退距离以提高几何元素测量效率?
最新文章: 工业5.0时代:这款适应车间环境的三坐标55直播网 为何能脱颖而出?
涉及到的车辆
var _hmt = _hmt || []; (function() { var hm = document.createElement("script"); hm.src = "https://hm.baidu.com/hm.js?90c4d9819bca8c9bf01e7898dd269864"; var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(hm, s); })(); !function(p){"use strict";!function(t){var s=window,e=document,i=p,c="".concat("https:"===e.location.protocol?"https://":"http://","sdk.51.la/js-sdk-pro.min.js"),n=e.createElement("script"),r=e.getElementsByTagName("script")[0];n.type="text/javascript",n.setAttribute("charset","UTF-8"),n.async=!0,n.src=c,n.id="LA_COLLECT",i.d=n;var o=function(){s.LA.ids.push(i)};s.LA?s.LA.ids&&o():(s.LA=p,s.LA.ids=[],o()),r.parentNode.insertBefore(n,r)}()}({id:"K9y7iMpaU8NS42Fm",ck:"K9y7iMpaU8NS42Fm"}); 55世纪 - 官网 55世纪|55世纪平台 55世纪 - 55世纪app 55世纪 - 官方下载 - 登录入口 55世纪 - 55世纪官网|主页