经常遇到需要求一个工件中计算过的公差的合格率/超差率,以下是用DMIS程序实现的方法,这里写的是合格率,超差率类似;
$$ 得到所有计算的公差的个数
KNPTN1 = VALUE/TOL, ALL
$$ 得到超差的公差的个数
KNPTN2 = VALUE/TOL, OUTOL
$$ 计算超差百分比并输出到报告中
KNPTR1 = ASSIGN/KNPTN2/KNPTN1*100
WRITE/DID(DEFAULTSCREEN),KNPTR1:4:2, '%'
需要注意的是程序中必须有计算公差的语句,否则Value取得值是0,那么是没法计算出结果的;
对于PCDMIS软件:
零件名: 山涧果子
修订号:
序列号:
统计计数: 1
启动 =坐标系/开始,回调:使用_零件_设置,列表=是
坐标系/终止
模式/手动
飞行/开
格式/文本,选项, ,标题,符号, ;标称值,公差,测定值,偏差,超差, ,
加载测头/LENOVO
测尖/T1A0B0, 支撑方向 IJK=0, 0, 1, 角度=0
模式/自动
PT1 =特征/触测/矢量点/默认,直角坐标
理论值/<9.148,79.381,35>,<0,0,1>
实际值/<9.148,79.381,35.06>,<0,0,1>
目标值/<9.148,79.381,35.06>,<0,0,1>
显示特征参数=否
显示相关参数=是
自动移动=否,距离=10
显示触测=否
PT2 =特征/触测/矢量点/默认,直角坐标
理论值/<5.304,36.104,35>,<0,0,1>
实际值/<5.304,36.104,35>,<0,0,1>
目标值/<5.304,36.104,35>,<0,0,1>
显示特征参数=否
显示相关参数=是
自动移动=否,距离=10
显示触测=否
PT3 =特征/触测/矢量点/默认,直角坐标
理论值/<42.901,23.857,35>,<0,0,1>
实际值/<42.901,23.857,35>,<0,0,1>
目标值/<42.901,23.857,35>,<0,0,1>
显示特征参数=否
显示相关参数=是
自动移动=否,距离=10
显示触测=否
PT4 =特征/触测/矢量点/默认,直角坐标
理论值/<78.042,19.915,35>,<0,0,1>
实际值/<78.042,19.915,35>,<0,0,1>
目标值/<78.042,19.915,35>,<0,0,1>
显示特征参数=否
显示相关参数=是
自动移动=否,距离=10
显示触测=否
PT5 =特征/触测/矢量点/默认,直角坐标
理论值/<92.316,24.974,35>,<0,0,1>
实际值/<92.316,24.974,35.068>,<0,0,1>
目标值/<92.316,24.974,35.068>,<0,0,1>
显示特征参数=否
显示相关参数=是
自动移动=否,距离=10
显示触测=否
PT6 =特征/触测/矢量点/默认,直角坐标
理论值/<117.354,45.285,35>,<0,0,1>
实际值/<117.354,45.285,35>,<0,0,1>
目标值/<117.354,45.285,35>,<0,0,1>
显示特征参数=否
显示相关参数=是
自动移动=否,距离=10
显示触测=否
PT7 =特征/触测/矢量点/默认,直角坐标
理论值/<114.185,61.396,35>,<0,0,1>
实际值/<114.185,61.396,34.923>,<0,0,1>
目标值/<114.185,61.396,34.923>,<0,0,1>
显示特征参数=否
显示相关参数=是
自动移动=否,距离=10
显示触测=否
PT8 =特征/触测/矢量点/默认,直角坐标
理论值/<97.029,86.48,35>,<0,0,1>
实际值/<97.029,86.48,35>,<0,0,1>
目标值/<97.029,86.48,35>,<0,0,1>
显示特征参数=否
显示相关参数=是
自动移动=否,距离=10
显示触测=否
PT9 =特征/触测/矢量点/默认,直角坐标
理论值/<36.071,84.875,35>,<0,0,1>
实际值/<36.071,84.875,35>,<0,0,1>
目标值/<36.071,84.875,35>,<0,0,1>
显示特征参数=否
显示相关参数=是
自动移动=否,距离=10
显示触测=否
PT10 =特征/触测/矢量点/默认,直角坐标
理论值/<82.923,50.01,35>,<0,0,1>
实际值/<82.923,50.01,35>,<0,0,1>
目标值/<82.923,50.01,35>,<0,0,1>
显示特征参数=否
显示相关参数=是
自动移动=否,距离=10
显示触测=否
DIM V1= 点 的位置PT1 单位=毫米 ,$
图示=关 文本=关 倍率=10.00 输出=两者 半角=否
AX NOMINAL +TOL -TOL MEAS DEV OUTTOL
逼近矢量方向偏差 0.000 0.050 -0.050 0.060 0.060 0.010 -------->
终止尺寸 V1
DIM V2= 点 的位置PT2 单位=毫米 ,$
图示=关 文本=关 倍率=10.00 输出=两者 半角=否
AX NOMINAL +TOL -TOL MEAS DEV OUTTOL
逼近矢量方向偏差 0.000 0.050 -0.050 0.000 0.000 0.000 ----#----
终止尺寸 V2
DIM V3= 点 的位置PT3 单位=毫米 ,$
图示=关 文本=关 倍率=10.00 输出=两者 半角=否
AX NOMINAL +TOL -TOL MEAS DEV OUTTOL
逼近矢量方向偏差 0.000 0.050 -0.050 0.000 0.000 0.000 ----#----
终止尺寸 V3
DIM V4= 点 的位置PT4 单位=毫米 ,$
图示=关 文本=关 倍率=10.00 输出=两者 半角=否
AX NOMINAL +TOL -TOL MEAS DEV OUTTOL
逼近矢量方向偏差 0.000 0.050 -0.050 0.000 0.000 0.000 ----#----
终止尺寸 V4
DIM V5= 点 的位置PT5 单位=毫米 ,$
图示=关 文本=关 倍率=10.00 输出=两者 半角=否
AX NOMINAL +TOL -TOL MEAS DEV OUTTOL
逼近矢量方向偏差 0.000 0.050 -0.050 0.068 0.068 0.018 -------->
终止尺寸 V5
DIM V6= 点 的位置PT6 单位=毫米 ,$
图示=关 文本=关 倍率=10.00 输出=两者 半角=否
AX NOMINAL +TOL -TOL MEAS DEV OUTTOL
逼近矢量方向偏差 0.000 0.050 -0.050 0.000 0.000 0.000 ----#----
终止尺寸 V6
DIM V7= 点 的位置PT7 单位=毫米 ,$
图示=关 文本=关 倍率=10.00 输出=两者 半角=否
AX NOMINAL +TOL -TOL MEAS DEV OUTTOL
逼近矢量方向偏差 0.000 0.050 -0.050 -0.077 -0.077 0.027 <--------
终止尺寸 V7
DIM V8= 点 的位置PT8 单位=毫米 ,$
图示=关 文本=关 倍率=10.00 输出=两者 半角=否
AX NOMINAL +TOL -TOL MEAS DEV OUTTOL
逼近矢量方向偏差 0.000 0.050 -0.050 0.000 0.000 0.000 ----#----
终止尺寸 V8
DIM V9= 点 的位置PT9 单位=毫米 ,$
图示=关 文本=关 倍率=10.00 输出=两者 半角=否
AX NOMINAL +TOL -TOL MEAS DEV OUTTOL
逼近矢量方向偏差 0.000 0.050 -0.050 0.000 0.000 0.000 ----#----
终止尺寸 V9
DIM V10= 点 的位置PT10 单位=毫米 ,$
图示=关 文本=关 倍率=10.00 输出=两者 半角=否
AX NOMINAL +TOL -TOL MEAS DEV OUTTOL
逼近矢量方向偏差 0.000 0.050 -0.050 0.000 0.000 0.000 ----#----
终止尺寸 V10
赋值/J=0
I =循环/开始,标识=是,编号=10,开始=1,跳过=,
偏置:X 轴=0,Y 轴=0,Z 轴=0,角度=0
赋值/C1=CONCAT("V",STR(I))
IF/(C1.T.DEV>-0.05)AND(C1.T.DEV<0.05)
赋值/J=J+1
END_IF/
循环/终止
赋值/V11=J/10
注释/报告,
"点轮廓合格率为:"+V11
对于RationalDMIS软件:
DMISMN/'Created by [山涧果子] on 星期六, 二月 24, 2018', 4.0
UNITS/MM, ANGDEC
WKPLAN/XYPLAN
PRCOMP/ON
TECOMP/ON
FLY/1.0
MODE/PROG, MAN
SNSET/APPRCH, 2.000000
SNSET/RETRCT, 2.000000
SNSET/DEPTH, 0.000000
SNSET/SEARCH, 10.000000
SNSET/CLRSRF, 0.000000
RECALL/D(MCS)
SNSLCT/S(20-30X2)
GEOALG/CIRCLE, LSTSQR
GEOALG/ARC, LSTSQR
GEOALG/PLANE, LSTSQR
$$
$$
MODE/PROG,MAN
F(PT1) = FEAT/POINT,CART, 9.1221, 83.4199, 35.0000, 0.000000, 0.000000, 1.000000
F(PT2) = FEAT/POINT,CART, 9.7015, 64.7039, 35.0000, 0.000000, 0.000000, 1.000000
F(PT3) = FEAT/POINT,CART, 7.5918, 24.6471, 35.0000, 0.000000, 0.000000, 1.000000
F(PT4) = FEAT/POINT,CART, 53.4781, 18.9932, 35.0000, 0.000000, 0.000000,$
1.000000
F(PT5) = FEAT/POINT,CART, 86.5321, 19.5995, 35.0000, 0.000000, 0.000000,$
1.000000
F(PT6) = FEAT/POINT,CART, 97.8352, 27.4733, 35.0000, 0.000000, 0.000000,$
1.000000
F(PT7) = FEAT/POINT,CART, 114.2792, 42.4378, 35.0000, 0.000000, 0.000000,$
1.000000
F(PT8) = FEAT/POINT,CART, 116.2329, 58.4967, 35.0000, 0.000000, 0.000000,$
1.000000
F(PT9) = FEAT/POINT,CART, 96.7737, 85.6114, 35.0000, 0.000000, 0.000000,$
1.000000
F(PT10) = FEAT/POINT,CART, 61.0988, 72.9683, 35.0000, 0.000000, 0.000000,$
1.000000
MEAS/POINT, F(PT1), 1
PTMEAS/CART, 9.122113, 83.419907, 35.000000, 0.000000, 0.000000, 1.000000
ENDMES
MEAS/POINT, F(PT2), 1
PTMEAS/CART, 9.701523, 64.703941, 35.000000, 0.000000, 0.000000, 1.000000
ENDMES
MEAS/POINT, F(PT3), 1
PTMEAS/CART, 7.591795, 24.647114, 35.000000, 0.000000, 0.000000, 1.000000
ENDMES
MEAS/POINT, F(PT4), 1
PTMEAS/CART, 53.478054, 18.993204, 35.000000, 0.000000, 0.000000, 1.000000
ENDMES
MEAS/POINT, F(PT5), 1
PTMEAS/CART, 86.532089, 19.599459, 35.000000, 0.000000, 0.000000, 1.000000
ENDMES
MEAS/POINT, F(PT6), 1
PTMEAS/CART, 97.835220, 27.473326, 35.000000, 0.000000, 0.000000, 1.000000
ENDMES
MEAS/POINT, F(PT7), 1
PTMEAS/CART, 114.279198, 42.437790, 35.000000, 0.000000, 0.000000, 1.000000
ENDMES
MEAS/POINT, F(PT8), 1
PTMEAS/CART, 116.232910, 58.496704, 35.000000, 0.000000, 0.000000, 1.000000
ENDMES
MEAS/POINT, F(PT9), 1
PTMEAS/CART, 96.773743, 85.611366, 35.000000, 0.000000, 0.000000, 1.000000
ENDMES
MEAS/POINT, F(PT10), 1
PTMEAS/CART, 61.098804, 72.968338, 35.000000, 0.000000, 0.000000, 1.000000
ENDMES
T(TPROFP1) = TOL/PROFP, -0.0500, 0.0500
DECL/COMMON,INTGR,I
DECL/COMMON,INTGR,J
DECL/COMMON,DOUBLE,V1
DECL/COMMON,CHAR,255,C1
DECL/COMMON,CHAR,255,C2
DO/I,1,10,1
C1=ASSIGN/CONCAT('PT',STR(I))
OUTPUT/FA(@C1), TA(TPROFP1)
V1=OBTAIN/TA(TPROFP1),2
IF/(V1.GT.-0.05).AND.(V1.LT.0.05)
J=ASSIGN/J+1
ENDIF
ENDDO
DECL/COMMON,DOUBLE,V2
V2=ASSIGN/J/10*100
C2=ASSIGN/CONCAT('点轮廓合格率为:',STR(V2),'%')
TEXT/OUTFIL, C2