程序的基本思想是:
1、测量中心圆,将坐标系移动到中心圆;
2、测量第一个圆,并取出实际坐标值与直径;
3、设置为自动测量元素;
4、每旋转坐标系一个角度自动测量圆,并用程序控制变换元素名称
MODE/MAN
TTTT =PROMPT/TEXT,‘请手动向量创建测量中心圆’
F(CIR1) = FEAT/CIRCLE,INNER,CART, 0, 0, 0,0, 0, 1, 80
RMEAS/CIRCLE, F(CIR1), 3, VECBLD, 10.000000, 3
ENDMES
TTTT =PROMPT/TEXT,‘请手动测量第一个圆’
F(CIR2) = FEAT/CIRCLE,INNER,CART, 0, 0, 0,0, 0, 1, 20
MEAS/CIRCLE,F(CIR2),4
ENDMES
D(ORG_CIR1) = TRANS/XORIG, FA(CIR1), YORIG, FA(CIR1), ZORIG, FA(CIR1)
MODE/AUTO,PROG,MAN
DECL/COMMON,INTGR,LOOP,NUM
DECL/COMMON,CHAR,255,CIRLABLE
DECL/COMMON,DOUBLE,XX_R,YY_R,ZZ_R,II_R,JJ_R,KK_R,DIM_R
TEST =PROMPT/TEXT,‘请输入圆的个数’,EDIT,NUM
XX_R =OBTAIN/FA(CIR2),4
YY_R =OBTAIN/FA(CIR2),5
ZZ_R =OBTAIN/FA(CIR2),6
II_R =OBTAIN/FA(CIR2),7
JJ_R =OBTAIN/FA(CIR2),8
KK_R =OBTAIN/FA(CIR2),9
DIM_R =OBTAIN/FA(CIR2),10
DO/LOOP,1,NUM
CIRLABLE =ASSIGN/CONCAT(‘CIR_’,STR(LOOP))
F(@CIRLABLE) =FEAT/CIRCLE,INNER,CART,XX_R,YY_R,ZZ_R,II_R,JJ_R,KK_R,DIM_R
MEAS/CIRCLE,F(@CIRLABLE),4
ENDMES
D(CRD1) = ROTATE/ZAXIS, 360/NUM
ENDDO
MODUS DMIS 代码
MISMN/‘Start Template’,04.0
FILNAM/‘Start Template’,04.0
DV(0)=DMESWV/‘61,1,0,48’
UNITS/MM,ANGDEC
DECPL/ALL,DEFALT
V(0)=VFORM/ALL,PLOT
DISPLY/TERM,V(0),STOR,DMIS,V(0)
TECOMP/OFF
SNSET/APPRCH,5
SNSET/CLRSRF,15
SNSET/DEPTH,0
D(0)=DATSET/MCS
MODE/MAN
T(CORTOL_X1)=TOL/CORTOL,XAXIS,-0.1,0.1
T(CORTOL_Y1)=TOL/CORTOL,YAXIS,-0.1,0.1
T(CORTOL_Z1)=TOL/CORTOL,ZAXIS,-0.1,0.1
T(DIAM_1)=TOL/DIAM,-0.1,0.1
S(0)=SNSDEF/PROBE,INDEX,POL,0,0,0,0,1,127,2
SNSLCT/SA(0)
TEXT/OPER,‘请手动在端面上测量平面’<\MEAS_PLANE = PLN001>
MODE/MAN
TEXT/OPER,‘请手动向量创建测量中心圆’
F(CIR1) = FEAT/CIRCLE,INNER,CART, 0, 0, 0,0, 0, 1, 80
RMEAS/CIRCLE, F(CIR1), 3, VECBLD, 10.000000, 3
ENDMES
TEXT/OPER,‘请手动测量第一个圆’
MODE/MAN
F(CIR2)=FEAT/CIRCLE,INNER,CART,50,0,0,0,0,1,20
MEAS/CIRCLE,F(CIR2),4
ENDMES
F(LINE001)=FEAT/LINE,UNBND,CART,25,0,0,1,0,0,0,0,1
CONST/LINE,F(LINE001),BF,FA(CIR1),FA(CIR2)
DATDEF/FA(PLN001), DAT(A)
DATDEF/FA(LINE001), DAT(B)
DATDEF/FA(CIR1), DAT©
D(1)=DATSET/DAT(A),ZDIR,ZORIG,DAT(B),XDIR,DAT©,XORIG,YORIG
MODE/AUTO,PROG,MAN
DECL/COMMON,INTGR,LOOP,NUM
DECL/COMMON,CHAR,255,CIRLABLE
DECL/COMMON,DOUBLE,XX_R,YY_R,ZZ_R,II_R,JJ_R,KK_R,DIM_R
DECL/LOCAL,INTGR,TEST
TEST=PROMPT/‘请输入圆的个数’,50,1
NUM=ASSIGN/TEST
DECL/LOCAL,DOUBLE,ang
ang=ASSIGN/360/NUM
XX_R =OBTAIN/FA(CIR2),4
YY_R =OBTAIN/FA(CIR2),5
ZZ_R =OBTAIN/FA(CIR2),6
II_R =OBTAIN/FA(CIR2),7
JJ_R =OBTAIN/FA(CIR2),8
KK_R =OBTAIN/FA(CIR2),9
DIM_R =OBTAIN/FA(CIR2),10
DO/LOOP,1,NUM
CIRLABLE =ASSIGN/CONCAT(‘CIR_’,STR(LOOP))
F(@CIRLABLE) =FEAT/CIRCLE,INNER,CART,XX_R,YY_R,ZZ_R,II_R,JJ_R,KK_R,DIM_R
MEAS/CIRCLE,F(@CIRLABLE),4
ENDMES
D(CRD1) = ROTATE/ZAXIS, ang
OUTPUT/FA(@CIRLABLE),TA(CORTOL_X1),TA(CORTOL_Y1),TA(DIAM_1)
ENDDO
PAUSE
ENDFIL