RationalDMIS 7.1 关于查找孔的几点个人见识(Find Hole )

2021/6/15 10:24:37

本文主要是介绍RationalDMIS 7.1 关于查找孔的几点个人见识(Find Hole ),对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

RationalDMIS 7.1 查找孔 (搜索测量) (图文+视频

 

watermark,size_16,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_90,type_ZmFuZ3poZW5naGVpdGk=

  

    在DMIS标准中没有这样的DMIS语句,所以不仅仅是开RationalDMIS,MODUS,CAMIO、VirualDMIS或Metrolog XG 一样。更进一步,如果您真的想在DMIS中执行,那么您可以编写自己的宏或外部DMIS文件,以便在需要“查找孔”时调用它。

 

但我的真实答案是:

 

     当我广泛使用PC -DMIS(2014,2015,2017,2019)时,我认为“查找孔”是一个很好的功能来处理变化很大的零件,但经过几次试验后,我认为这是一个“几乎”无用的功能,因为如果你有100个孔要测量,并且你为每个孔打开它,那么它浪费了太多时间。我有很多不同的方法来处理DMIS中孔的位置变化,而不需要“查找孔”。所以我从不建议任何人在用PC DMIS训练编程时使用这个函数。

 

 

      我一直在使用RMEAS命令,测量接近特征或孔的东西,以便测量相对于。希望这会对你有所帮助。DMIS内核软件版本中一般都会内置RMEAS。

watermark,size_16,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_90,type_ZmFuZ3poZW5naGVpdGk=

 

孔搜索基础原理:

 

查找孔:测针将移至特征理论中心之上的逼近距离位置,然后移动到垂直于特征曲面矢量,从而以接触速度搜索孔。搜索将持续到接触曲面(表示孔不在此处)或达到探测距离(表示孔在此处)为止。

 

在测量时,测头将从逼近距离位置处开始沿着圆所在曲面的法线矢量,以触测速度开始搜索孔。

1、若测头经过圆所在曲面而未碰到曲面,测头将继续向前搜索直到达到探测距离一表明要测的圆就在此处;2、若测头碰到圆所在的曲面一表明孔不在此处,测头将继续按照下面的步骤搜索这个孔:

从理论圆心按照(R特征-R测头)开始搜索,将搜索(2*PI*R特征/(R特征-R测头))个位置.如果还没有找到,搜索半径将按照(R 特征-R测头)增加直到等于prehit distance.

注意:如果逼近距离小于(R特征-R测头),将只执行一个循环的搜索。

3、如果在指定搜索范围内没有找到孔,PC-DMIS 将会出现读位置的提示,在这种情况下,可以手动移动测针到圆孔的中心,点击提示框中的“是”,CMM 将以读入的测头位置作为圆心的理论值来测量圆孔

 

核心其实就是:通过取点而锁定一个孔.

watermark,size_16,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_90,type_ZmFuZ3poZW5naGVpdGk=

下面是一个搜寻孔程序的例子:

 

   取点按照圆的路径, 具中搜寻的理论位置. 如果全部覆盖后仍然没有检测到孔,就会以更大的半径重新开始. 要改变测量的圆的位置, 要依据坐标转换一个圆的角度.

 

     圆的搜索带有两个圆路径, 遵守半径 1 mm 然后 2 mm. 此搜索每路径10个点. 

watermark,size_16,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_90,type_ZmFuZ3poZW5naGVpdGk=

 

 

Step 1:

 

定义一个 POINTEST 点, 位置就是要找的圆的理论圆心.

下面的程序行出现:

 

watermark,size_16,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_90,type_ZmFuZ3poZW5naGVpdGk=

  

 

Step 2:

 

创建一个 LOCAL 坐标以此点为中心:

 

watermark,size_16,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_90,type_ZmFuZ3poZW5naGVpdGk=

Note: PLAN1 是孔定义时的面

程序行如下:

watermark,size_16,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_90,type_ZmFuZ3poZW5naGVpdGk=

 

 

 

Step 3:

 

Insert an If-Then-Else statement, 选择条件 On error.

程序行如下:

watermark,size_16,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_90,type_ZmFuZ3poZW5naGVpdGk=

 

Step 4:

 

以相同方法创建坐标 LOCALFIND . 如果孔被发现后用此坐标: 

watermark,size_16,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_90,type_ZmFuZ3poZW5naGVpdGk=

程序行如下:

watermark,size_16,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_90,type_ZmFuZ3poZW5naGVpdGk=

不要激活这个坐标, 需要删除程序行Activate alignment LOCALFIND .

 

 

Step 5:

 

在 Check 部分的 If-Then-Else 语句, 要确认 POINTEST 点的位置 (0,0,0).

程序行如下:

watermark,size_16,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_90,type_ZmFuZ3poZW5naGVpdGk=

 

Step 6:

 

创建一个坐标 LOCALFIND , 它得到位置在搜索路径确认. 此路径, 在例子内example, 是一个半径为1的圆. 此坐标系用于找到孔之后:

watermark,size_16,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_90,type_ZmFuZ3poZW5naGVpdGk=

程序行如下:

watermark,size_16,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_90,type_ZmFuZ3poZW5naGVpdGk=

不要激活这个坐标, 需要删除程序行Activate alignment LOCALFIND .

 

Step 7:

 

在位置 (0, 0, 0)测量POINTEST .

程序行如下:

watermark,size_16,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_90,type_ZmFuZ3poZW5naGVpdGk=

 

Step 8:

 

旋转坐标 LOCAL 依据 (360�/圆点的数量). 此例子为 360°/10=36°.

watermark,size_16,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_90,type_ZmFuZ3poZW5naGVpdGk=

程序行如下:

watermark,size_16,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_90,type_ZmFuZ3poZW5naGVpdGk=

 

Step 9:

 

选择 从11 到 16 行进行循环 loop 此例为10次.

程序行如下:

watermark,size_16,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_90,type_ZmFuZ3poZW5naGVpdGk=

 

Step 10:

 

重复步骤 5 到 9, 使用半径 2 mm.

 

 

Step 11:

 

在 On error 部分上午 If-Then-Else 语句, 激活 LOCALFIND 坐标.

 

程序行所有行如下:

watermark,size_16,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_90,type_ZmFuZ3poZW5naGVpdGk=

 

RationalDMIS 7.1 查找孔宏程序

 

M(HOLESEEK)=MACRO/ELEM_NAME,XX,YY,ZZ,II,JJ,KK,DD,NPOINTS,DEEP

DECL/DOUBLE,ACT_X,ACT_Y,ACT_Z,ANG1,RAD1,RAD2,LAST_Z,DIFF_Z,X2,Y2,Z2
DECL/DOUBLE,SEARCH1,RETRCT1,APPRCH1,OFFS_PLANE_POINTS,PRDIAM,PRRAD,RMEASURE
DECL/CHAR,100,EX_REF_SYS,CNAME,SENSOR_NAME
DECL/INTGR,NUM1,I1,J1,K1
MODE/PROG,MAN

IREADTHEACTUALSEARCHANDRETRCTDISTANCEAPPRCH1=VALUE/SNSET,APPRCHRETRCT1=VALUE/SNSET,RETRCTSEARCH1=VALUE/SNSET,SEARCHI READ THE ACTUAL SEARCH AND RETRCT DISTANCEAPPRCH1=VALUE/SNSET,APPRCHRETRCT1=VALUE/SNSET,RETRCTSEARCH1=VALUE/SNSET,SEARCHIREADTHEACTUALSEARCHANDRETRCTDISTANCEAPPRCH1=VALUE/SNSET,APPRCHRETRCT1=VALUE/SNSET,RETRCTSEARCH1=VALUE/SNSET,SEARCHDEEP1==VALUE/SNSET,DEPTH

$$ I READ THE ACTUAL REFERENCE SYSTEM NAME
EX_REF_SYS=ASSIGN/SCDAT()

$$ READ PROBE DIAMETER AND RADIUS
SENSOR_NAME=ASSIGN/SCSNS()
PRDIAM=OBTAIN/SA(@SENSOR_NAME),10
PRRAD=ASSIGN/PRDIAM/2

SNSET/DEPTH,0
SNSET/SEARCH,PRRAD+DEEP
OFFS_PLANE_POINTS=ASSIGN/2
LAST_Z=ASSIGN/0

$$ SET TEMPORARY ORIGIN AND ALIGNMENT
F(POORIG)=FEAT/POINT,CART,XX,YY,ZZ,II,JJ,KK
FA(POORIG)=FEAT/POINT,CART,XX,YY,ZZ,II,JJ,KK
F(LIZ)=FEAT/LINE,UNBND,CART, XX,YY,ZZ, II,JJ,KK, 1,1,1
FA(LIZ)=FEAT/LINE,UNBND,CART, XX,YY,ZZ, II,JJ,KK, 1,1,1
D(THEO_CENTER) = TRANS/XORIG,FA(POORIG),YORIG,FA(POORIG),ZORIG,FA(POORIG)
D(THEO_CENTER) = DATSET/FA(LIZ),ZDIR

$$-----------------BIG STEP SEARCH-----------------------------
RAD2=ASSIGN/DD/2*0.866
NUM1=ASSIGN/0

DO/I1,2,5,1
DO/J1,0,5,1
DO/K1,1,I1-1,1
ACT_X=ASSIGN/RAD2*(I1-1)COS(DTOR(-30))
ACT_Y=ASSIGN/RAD2(I1-1)SIN(DTOR(-30))+RAD2(K1-1)
ANG1=ASSIGN/ATAN2(ACT_Y,ACT_X)
RAD1=ASSIGN/SQRT(ACT_XACT_X+ACT_YACT_Y)
ANG1=ASSIGN/RTOD(ANG1)+60J1
ACT_X=ASSIGN/RAD1COS(DTOR(ANG1))
ACT_Y=ASSIGN/RAD1*SIN(DTOR(ANG1))

BADTST/ON
F(PT)=FEAT/POINT,CART, ACT_X,ACT_Y,LAST_Z, 0,0,1
MEAS/POINT,F(PT),1
PTMEAS/CART, ACT_X,ACT_Y,LAST_Z, 0,0,1
ENDMES

IF/(BADPT())
F(PT)=FEAT/POINT,CART, ACT_X,ACT_Y,LAST_Z, 0,0,1
MEAS/POINT,F(PT),0
ENDMES
ACT_X=OBTAIN/FA(PT),3
ACT_Y=OBTAIN/FA(PT),4
ACT_Z=OBTAIN/FA(PT),5
JUMPTO/(AAA)

ELSE
Z2=OBTAIN/FA(PT),5
DIFF_Z=ASSIGN/Z2-LAST_Z
LAST_Z=ASSIGN/Z2
$$TEXT/OUTFIL,STR(DIFF_Z)

IF/(DIFF_Z.LT.-SQRT(DD)/4)
ACT_Z=ASSIGN/LAST_Z+PRRAD+0.2
JUMPTO/(BBB)
ENDIF

ENDIF

ENDDO
ENDDO
ENDDO

$$-----------------FAIL SEARCH, CHANGE TO MAN MODE-------------------------
MODE/MAN
TEXT/OPER,‘自动搜索失败,请手工测量该孔’

RECALL/D(@EX_REF_SYS)
F(@ELEM_NAME)=FEAT/CIRCLE,INNER,CART, XX,YY,ZZ, II,JJ,KK, DD
RMEAS/CIRCLE,F(@ELEM_NAME),NPOINTS,VECBLD,2,3
ENDMES

(BBB)
$$--------------------SMALL STEP SEATCH----------------------
D(THEO_CENTER) = TRANS/XORIG,FA(PT),YORIG,FA(PT),ZORIG,FA(PT)
RAD2=ASSIGN/(DD-PRDIAM)/20.8660.9

DO/I1,2,5,1
DO/J1,0,5,1
DO/K1,1,I1-1,1
ACT_X=ASSIGN/RAD2*(I1-1)COS(DTOR(-30))
ACT_Y=ASSIGN/RAD2(I1-1)SIN(DTOR(-30))+RAD2(K1-1)
ANG1=ASSIGN/ATAN2(ACT_Y,ACT_X)
RAD1=ASSIGN/SQRT(ACT_XACT_X+ACT_YACT_Y)
ANG1=ASSIGN/RTOD(ANG1)+60J1
ACT_X=ASSIGN/RAD1COS(DTOR(ANG1))
ACT_Y=ASSIGN/RAD1*SIN(DTOR(ANG1))

BADTST/ON
F(PT)=FEAT/POINT,CART, ACT_X,ACT_Y,LAST_Z, 0,0,1
MEAS/POINT,F(PT),1
PTMEAS/CART, ACT_X,ACT_Y,LAST_Z, 0,0,1
ENDMES

IF/(BADPT())
F(PT)=FEAT/POINT,CART, ACT_X,ACT_Y,LAST_Z, 0,0,1
MEAS/POINT,F(PT),0
ENDMES
ACT_X=OBTAIN/FA(PT),3
ACT_Y=OBTAIN/FA(PT),4
ACT_Z=OBTAIN/FA(PT),5
JUMPTO/(AAA)
ELSE
LAST_Z=OBTAIN/FA(PT),5
ENDIF

ENDDO
ENDDO
ENDDO

(AAA)
$$-----------------FIND THE HOLE
BADTST/OFF

$$F(TMP_CIR)=FEAT/CIRCLE,INNER,CART, 99999.0000,99999.0000,99999.0000, 0,0,1, 0
RAD1=ASSIGN/0.1
SNSET/DEPTH, 0
SNSET/APPRCH,RAD1
SNSET/RETRCT,0.1
SNSET/SEARCH,10.0000

F(TMP_CIR)=FEAT/CIRCLE,INNER,CART, ACT_X,ACT_Y,ACT_Z, 0,0,1, PRDIAM
MEAS/CIRCLE,F(TMP_CIR),4
PTMEAS/CART,ACT_X-PRRAD,ACT_Y,ACT_Z,1,0,0
PTMEAS/CART,ACT_X+PRRAD,ACT_Y,ACT_Z,-1,0,0
PTMEAS/CART,ACT_X,ACT_Y-PRRAD,ACT_Z,0,1,0
PTMEAS/CART,ACT_X,ACT_Y+PRRAD,ACT_Z,0,-1,0
ENDMES

$$ ORIGIN ON THE TEMPORARY HOLE
D(THEO_CENTER) = TRANS/XORIG,FA(TMP_CIR),YORIG,FA(TMP_CIR)

GOTO/0,0,LAST_Z+PRRAD+5

RMEASURE=OBTAIN/FA(TMP_CIR),10
RMEASURE=ASSIGN/(RMEASURE/2)+OFFS_PLANE_POINTS

SNSET/APPRCH,2
SNSET/RETRCT,2
SNSET/SEARCH,5
F(PLPRO)=FEAT/PLANE,CART,0,0,LAST_Z,0,0,1
MEAS/PLANE,F(PLPRO),4
PTMEAS/CART,RMEASURE,0,LAST_Z+PRRAD,0,0,1
PTMEAS/CART,0,RMEASURE,LAST_Z+PRRAD,0,0,1
PTMEAS/CART,-RMEASURE,0,LAST_Z+PRRAD,0,0,1
PTMEAS/CART,0,-RMEASURE,LAST_Z+PRRAD,0,0,1
ENDMES

D(THEO_CENTER) = DATSET/FA(PLPRO),ZDIR,ZORIG

GOTO/0,0,PRRAD+5

SNSET/APPRCH,(DD-PRDIAM)/2
SNSET/RETRCT,(DD-PRDIAM)/4
F(TMP_CIR)=FEAT/CIRCLE,INNER,CART, 0,0,-DEEP, 0,0,1, DD
MEAS/CIRCLE,F(TMP_CIR),NPOINTS
ENDMES

GOTO/0,0,PRRAD+5

RECALL/D(@EX_REF_SYS)

F(@ELEM_NAME)=FEAT/CIRCLE,INNER,CART, XX,YY,ZZ, II,JJ,KK, DD
CONST/CIRCLE,F(@ELEM_NAME),PROJCT,FA(TMP_CIR),FA(PLPRO)

$$ I SET THE ORIGINAL SEARCH DISTANCE
SNSET/APPRCH,APPRCH1
SNSET/RETRCT,RETRCT1
SNSET/SEARCH,SEARCH1
SNSET/DEPTH,DEEP

$$DISPLY/OFF
ENDMAC

$$==========MAIN PROG

DECL/REAL,X1,Y1,Z1

SNSLCT/SA(P1_90_0n90_0)
MODE/MAN
D(DAT_2) = TRANS/XORIG,10.0000,YORIG,20.0000,ZORIG,30.0000

F(POI_3)=FEAT/POINT,CART,0,0,0,0,0,1
MEAS/POINT,F(POI_3),1
ENDMES

RECALL/D(DAT_2)
SNSET/SEARCH,10.000
SNSET/APPRCH,2.0000
SNSET/RETRCT,2.0000
X1=OBTAIN/FA(POI_3),3
Y1=OBTAIN/FA(POI_3),4
Z1=OBTAIN/FA(POI_3),5

CALL/M(HOLESEEK),‘CIR_8’,X1,Y1,Z1,0,0,1,6,4,1
ENDFIL

 

watermark,size_16,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_90,type_ZmFuZ3poZW5naGVpdGk=

 

示例一:

 

$$-------- MEASURE SURF or POINTS -------- NEST4WHGT --------
SNSET/APPRCH,0.3500
TEXT/OUTFIL,'** NEST4WHGT (Z direction) **'
F(NEST4WHGT) = FEAT/POINT,CART,3.3947,3.4427,3.7369,$
     0.0000,0.0000,1.0000
MEAS/POINT,F(NEST4WHGT),1
  PTMEAS/CART,3.3947,3.4427,3.7369,0.0000,0.0000,1.0000
ENDMES
T(SP037V) = TOL/PROFP,-0.0050,0.0050
OUTPUT/FA(NEST4WHGT),TA(SP037V)
$$
GOTO/3.7095,3.4359,3.8763
$$
$$-------- MEASURE CIRCLE OUTER -------- NEST4WPIN --------
SNSET/APPRCH,0.1000
SNSET/DEPTH,0.0500
$$  move to a clearance approach point
GOTO/3.7095,3.4359,3.8869
TEXT/OUTFIL,'** NEST4WPIN **'
F(NEST4WPIN) = FEAT/CIRCLE,OUTER,CART,3.3986,3.4359,3.6869,$
         0.0000,0.0000,1.0000,0.3432
RMEAS/CIRCLE,F(NEST4WPIN),8,FA(NEST4WHGT)
  PTMEAS/CART,3.5702,3.4359,3.6369,1.0000,0.0000,0.0000
  PTMEAS/CART,3.5199,3.3145,3.6369,0.7071,-0.7071,0.0000
  PTMEAS/CART,3.3986,3.2643,3.6369,0.0000,-1.0000,0.0000
  PTMEAS/CART,3.2772,3.3145,3.6369,-0.7071,-0.7071,0.0000
  PTMEAS/CART,3.2270,3.4359,3.6369,-1.0000,-0.0000,0.0000
  PTMEAS/CART,3.2772,3.5572,3.6369,-0.7071,0.7071,0.0000
  PTMEAS/CART,3.3986,3.6075,3.6369,-0.0000,1.0000,0.0000
  PTMEAS/CART,3.5199,3.5572,3.6369,0.7071,0.7071,0.0000
ENDMES
$$
T(CO038X) = TOL/CORTOL,XAXIS,-0.0005,0.0005
T(CO038Y) = TOL/CORTOL,YAXIS,-0.0005,0.0005
T(CO038D) = TOL/DIAM,-0.0005,0.0005
T(CO038P) = TOL/POS,2D,0.0010,RFS
T(CO038F) = TOL/CIRLTY,0.0005
OUTPUT/FA(NEST4WPIN),TA(CO038X),TA(CO038Y),TA(CO038D),TA(CO038P),$
       TA(CO038F)

 

示例二:

 

 

SNSET/APPRCH,6,RETRCT,6,CLRSRF,6

 

MODE/AUTO,PROG,MAN

 

MEAS/POINT, F(Point1), 1

  GOTO/CART,  1477.180, 416.086, 738.630

  PTMEAS/CART,  1477.180, 404.110, 738.630, 0.000000, 1.000000, 0.000000

ENDMES

 

MEAS/POINT, F(Point2), 1

  GOTO/CART,  1462.790, 416.086, 730.240

  PTMEAS/CART,  1462.790, 404.110, 730.240, 0.000000, 1.000000, -0.000000

ENDMES

 

MEAS/POINT, F(Point3), 1

  GOTO/CART,  1482.450, 416.086, 718.970

  PTMEAS/CART,  1482.450, 404.110, 718.970, 0.000000, 1.000000, 0.000000

ENDMES

 

CONST/PLANE,F(Plane1),BF,FA(Point1),FA(Point2),FA(Point3)

 

$$ Measurement points are created through nominal points

$$ INNER feature Senest automatic adjustment

 

SNSET/APPRCH,4,RETRCT,4

 

F(Hole1) = FEAT/CIRCLE,INNER,CART, 1474.140, 404.110, 727.280, 0.000000, 1.000000, 7.500

F(Hole1-p) = FEAT/CIRCLE,INNER,CART, 1474.140, 404.110, 727.280, 0.000000, 1.000000, 7.500

 

$$ turn on badtst

 

BADTST/ON

 

RMEAS/CIRCLE, F(Hole1-p), 3, FA(Plane1)

  GOTO/CART,  1482.207, 416.333, 718.840

  GOTO/CART,  1473.875, 416.255, 727.138

  PTMEAS/CART,  1476.792, 403.110, 724.629, -0.707158, 0.000029, 0.707055

  PTMEAS/CART,  1473.170, 403.110, 723.658, 0.258748, -0.000034, 0.965945

  PTMEAS/CART,  1470.518, 403.110, 726.309, 0.965900, 0.000037, 0.258914

  PTMEAS/CART,  1471.488, 403.110, 729.931, 0.707158, -0.000029, -0.707055

  PTMEAS/CART,  1475.110, 403.110, 730.902, -0.258748, 0.000034, -0.965945

  PTMEAS/CART,  1477.762, 403.110, 728.251, -0.965900, -0.000037, -0.258914

ENDMES

 

IF/(BADGT())

BADTST/OFF

 

ALARM = PROMPT/SOUND,'C:\Users\CMM#2\Downloads\ALARM_BE.WAV'

 

TEXT/OPER,'POSITION PROBE IN THE CENTER OF THE HOLE AND SLIGHTLY OUTIDE THE SURFACE'

 

F(generic1) = FEAT/POINT,CART,3554.216, -478.920, 704.534, -0.919529,0.000002,0.393021   

$$   

MEAS/POINT, F(generic1), 0  

ENDMES  

 

MODE/AUTO,PROG,MAN

 

$$ declare variable to hold point data

 DECL/REAL,generic1_X

$$ Obtain X coordinate of point

generic1_X = OBTAIN/FA(generic1),3

 

DECL/REAL,generic1_Y

generic1_Y = OBTAIN/FA(generic1),4

 

DECL/REAL,generic1_Z

generic1_Z = OBTAIN/FA(generic1),5

 

$$ use variables to create new feature nominals

 

F(Hole1-p) = FEAT/CIRCLE,INNER,CART, generic1_X, generic1_Y,generic1_Z, 0.000000, 1.000000, 0.000000, 7.500

 

$ Remeasure the feature with new nominals

 

RMEAS/CIRCLE,F(Hole1-P),6,VECBLD,3,3

ENDMES

 

ENDIF

 

BADTST/OFF

 

$$ project measured circle onto measured plane.

CONST/CIRCLE,F(Hole1),PROJCT,FA(Hole1-P), FA(Plane1)

 

示例三:

 

MODE/PROG,MAN

 

F(PT1)=FEAT/POINT,CART,36.8466,-11.2936,0.0000,0.0000,0.0000,1.0000

MEAS/POINT, F(PT1), 1

  PTMEAS/CART, 36.8466,-11.2936,0.0000,0.0000,0.0000,1.0000

ENDMES

F(CIR1)=FEAT/CIRCLE,INNER,CART,-0.0000,0.0000,-2.0000,0.0000,0.0000,1.0000, 30.0000

$$ Measurement points are created through nominal points

RMEAS/CIRCLE, F(CIR1), 5, FA(PT1)

  GOTO/CART,    36.8466, -11.2936, 19.0000

  GOTO/CART,    11.4732,  -3.5166, 19.0000

  PTMEAS/CART,  14.3415,  -4.3957, -2.0000, -0.9561,  0.2930, 0.0000

  GOTO/CART,    11.9983,   0.2010, -2.0000

  GOTO/CART,    11.3490,   3.8988, -2.0000

  GOTO/CART,     9.5887,   7.2150, -2.0000

  PTMEAS/CART,   8.6123,  12.2812, -2.0000, -0.5742, -0.8187, 0.0000

  GOTO/CART,     3.5166,  11.4732, -2.0000

  GOTO/CART,    -0.2010,  11.9983, -2.0000

  GOTO/CART,    -3.8988,  11.3490, -2.0000

  PTMEAS/CART,  -9.0188,  11.9859, -2.0000,  0.6013, -0.7991, 0.0000

  GOTO/CART,    -9.8250,   6.8899, -2.0000

  GOTO/CART,   -11.4732,   3.5166, -2.0000

  GOTO/CART,   -11.9983,  -0.2010, -2.0000

  PTMEAS/CART, -14.1862,  -4.8735, -2.0000,  0.9457,  0.3249, 0.0000

  GOTO/CART,    -9.5887,  -7.2150, -2.0000

  GOTO/CART,    -6.8899,  -9.8250, -2.0000

  GOTO/CART,    -3.5166, -11.4732, -2.0000

  PTMEAS/CART,   0.2512, -14.9979, -2.0000, -0.0167,  0.9999, 0.0000

ENDMES

 

watermark,size_16,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_90,type_ZmFuZ3poZW5naGVpdGk=

F(CIR1)=FEAT/CIRCLE,INNER,CART,0.0000,-0.0000,-2.0000,0.0000,0.0000,1.0000, 20.0000

$$ Measurement points are created through nominal points

MEAS/CIRCLE, F(CIR1), 5

  GOTO/CART,    0.2011, -11.9983, 19.0000

  GOTO/CART,    0.1173,  -6.9990, 19.0000

  PTMEAS/CART,  0.1676,  -9.9986, -2.0000, -0.0168,  0.9999, 0.0000

  GOTO/CART,    2.2744,  -6.6202, -2.0000

  GOTO/CART,    4.2088,  -5.5934, -2.0000

  GOTO/CART,    5.7313,  -4.0190, -2.0000

  PTMEAS/CART,  9.5610,  -2.9304, -2.0000, -0.9561,  0.2930, 0.0000

  GOTO/CART,    6.9990,   0.1173, -2.0000

  GOTO/CART,    6.6202,   2.2744, -2.0000

  GOTO/CART,    5.5934,   4.2088, -2.0000

  PTMEAS/CART,  5.7415,   8.1875, -2.0000, -0.5741, -0.8188, 0.0000

  GOTO/CART,    2.0513,   6.6927, -2.0000

  GOTO/CART,   -0.1173,   6.9990, -2.0000

  GOTO/CART,   -2.2744,   6.6202, -2.0000

  PTMEAS/CART, -6.0126,   7.9905, -2.0000,  0.6013, -0.7991, 0.0000

  GOTO/CART,   -5.7313,   4.0190, -2.0000

  GOTO/CART,   -6.6927,   2.0513, -2.0000

  GOTO/CART,   -6.9990,  -0.1173, -2.0000

  PTMEAS/CART, -9.4574,  -3.2491, -2.0000,  0.9457,  0.3249, 0.0000

ENDMES

F(CIR2)=FEAT/CIRCLE,INNER,CART,50.0000,-30.0000,-2.0000,0.0000,0.0000,1.0000, 20.0000

$$ Measurement points are created through nominal points

RMEAS/CIRCLE, F(CIR2), 5, FA(CIR1)

  GOTO/CART,   -6.6202,  -2.2744, 19.0000

  GOTO/CART,   43.7133, -26.9215, 19.0000

  PTMEAS/CART, 41.0190, -25.6022, -2.0000,  0.8981, -0.4398, 0.0000

  GOTO/CART,   43.0697, -29.0149, -2.0000

  GOTO/CART,   43.1044, -31.2047, -2.0000

  GOTO/CART,   43.8142, -33.2766, -2.0000

  PTMEAS/CART, 43.0421, -37.1825, -2.0000,  0.6958,  0.7182, 0.0000

  GOTO/CART,   46.9215, -36.2867, -2.0000

  GOTO/CART,   49.0149, -36.9303, -2.0000

  GOTO/CART,   51.2047, -36.8956, -2.0000

  PTMEAS/CART, 54.6808, -38.8368, -2.0000, -0.4681,  0.8837, 0.0000

  GOTO/CART,   55.0277, -34.8705, -2.0000

  GOTO/CART,   56.2867, -33.0785, -2.0000

  GOTO/CART,   56.9303, -30.9851, -2.0000

  PTMEAS/CART, 59.8508, -28.2790, -2.0000, -0.9851, -0.1721, 0.0000

  GOTO/CART,   56.1858, -26.7234, -2.0000

  GOTO/CART,   54.8705, -24.9723, -2.0000

  GOTO/CART,   53.0785, -23.7133, -2.0000

  PTMEAS/CART, 51.4073, -20.0995, -2.0000, -0.1407, -0.9901, 0.0000

ENDMES

 

示例四:

 

watermark,size_16,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_90,type_ZmFuZ3poZW5naGVpdGk=

F(CIR1)=FEAT/CIRCLE,INNER,CART,0.0000,-0.0000,-2.0000,0.0000,0.0000,1.0000, 20.0000

$$ Measurement points are created through nominal points

MEAS/CIRCLE, F(CIR1), 5

  GOTO/CART,    0.2011, -11.9983, 19.0000

  GOTO/CART,    0.1173,  -6.9990, 19.0000

  PTMEAS/CART,  0.1676,  -9.9986, -2.0000, -0.0168,  0.9999, 0.0000

  GOTO/CART,    2.2744,  -6.6202, -2.0000

  GOTO/CART,    4.2088,  -5.5934, -2.0000

  GOTO/CART,    5.7313,  -4.0190, -2.0000

  PTMEAS/CART,  9.5610,  -2.9304, -2.0000, -0.9561,  0.2930, 0.0000

  GOTO/CART,    6.9990,   0.1173, -2.0000

  GOTO/CART,    6.6202,   2.2744, -2.0000

  GOTO/CART,    5.5934,   4.2088, -2.0000

  PTMEAS/CART,  5.7415,   8.1875, -2.0000, -0.5741, -0.8188, 0.0000

  GOTO/CART,    2.0513,   6.6927, -2.0000

  GOTO/CART,   -0.1173,   6.9990, -2.0000

  GOTO/CART,   -2.2744,   6.6202, -2.0000

  PTMEAS/CART, -6.0126,   7.9905, -2.0000,  0.6013, -0.7991, 0.0000

  GOTO/CART,   -5.7313,   4.0190, -2.0000

  GOTO/CART,   -6.6927,   2.0513, -2.0000

  GOTO/CART,   -6.9990,  -0.1173, -2.0000

  PTMEAS/CART, -9.4574,  -3.2491, -2.0000,  0.9457,  0.3249, 0.0000

ENDMES

$$ Measurement points are created through nominal points

F(CIR2)=FEAT/CIRCLE,INNER,CART,50.0000,-30.0000,-2.0000,0.0000,0.0000,1.0000, 20.0000

$$ Measurement points are created through nominal points

RMEAS/CIRCLE, F(CIR2), 5, FA(CIR1), XDIR, FA(CIR1), YDIR

  GOTO/CART,   50.9852, -23.0697, 19.0000

  PTMEAS/CART, 51.4074, -20.0995, -2.0000, -0.1407, -0.9900, 0.0000

  GOTO/CART,   48.7953, -23.1044, -2.0000

  GOTO/CART,   46.7235, -23.8142, -2.0000

  GOTO/CART,   44.9723, -25.1294, -2.0000

  PTMEAS/CART, 41.0190, -25.6021, -2.0000,  0.8981, -0.4398, 0.0000

  GOTO/CART,   43.0697, -29.0148, -2.0000

  GOTO/CART,   43.1044, -31.2047, -2.0000

  GOTO/CART,   43.8142, -33.2765, -2.0000

  PTMEAS/CART, 43.0421, -37.1824, -2.0000,  0.6958,  0.7182, 0.0000

  GOTO/CART,   46.9215, -36.2867, -2.0000

  GOTO/CART,   49.0148, -36.9303, -2.0000

  GOTO/CART,   51.2047, -36.8956, -2.0000

  PTMEAS/CART, 54.6808, -38.8369, -2.0000, -0.4681,  0.8837, 0.0000

  GOTO/CART,   55.0277, -34.8706, -2.0000

  GOTO/CART,   56.2867, -33.0785, -2.0000

  GOTO/CART,   56.9303, -30.9852, -2.0000

  PTMEAS/CART, 59.8508, -28.2791, -2.0000, -0.9851, -0.1721, 0.0000

ENDMES

 

示例四:Metrolog XG13

 

This program enables to search for a hole on a mechanical part or on sheet metal and to measure it.

 

You must follow the steps described hereunder in order to ensure the proper operation of the program:

 

Step 1: Enter range learning mode:

 

watermark,size_16,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_90,type_ZmFuZ3poZW5naGVpdGk=

 

Step 2: Create the work alignment marker:

 

watermark,size_16,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_90,type_ZmFuZ3poZW5naGVpdGk=

 

Step 3: Open the program wizard and choose the Hole_search_3 > Hole_search_routine_for_circles program:

 

watermark,size_16,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_90,type_ZmFuZ3poZW5naGVpdGk=

 

Step 4: Enter the parameters as indicated below:

 

 

watermark,size_16,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_90,type_ZmFuZ3poZW5naGVpdGk=

 

 

PROBE_D : enter the diameter of the probe.

ALIGNMENT_NAME : enter the name of the alignment marker.

CIRCLE_NAME : enter the name of the circle that is to undergo the search.

CIRCLE_XYZ_COORD : enter the circle's coordinates.

CIRCLE_IJK_COORD : enter the coordinates of the normal to the circle.

NBER OF PATH : enter the amount of hexagonal paths you want the program to generate.

APP_SEARCH_RET_DIST_PLAN : enter the distances for the approach, the search and the retreat used when probing the surface.

Then click on Finish.

 

Step 5: The program has been created

 

watermark,size_16,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_90,type_ZmFuZ3poZW5naGVpdGk=

 

Step 6: Run the program to initiate the hole search.

 

If the circle is not positioned as described in the program, the probe makes contact with a solid surface rather than the hole it is looking for. In this case, the search path is launched by the program.
Based on an alignment that centres on the theoretical position of the element, the hexagonal paths are generated around the hole in order to carry out the search. The path parameters are defined at step 4.

watermark,size_16,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_90,type_ZmFuZ3poZW5naGVpdGk=

 

The path is followed to its end if no hole is found. Once the hole is found, the circle is automatically measured.

 

 

Comment: You can edit two other Text-Value parameters within the program:

 

DEPTH_DIST : enables to set the depth value used for the probing of the circle.

STEP: enables to set the distance between each hole search probe.

 

 

 

watermark,size_16,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_90,type_ZmFuZ3poZW5naGVpdGk=

 



这篇关于RationalDMIS 7.1 关于查找孔的几点个人见识(Find Hole )的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!


扫一扫关注最新编程教程