0
点赞
收藏
分享

微信扫一扫

RatonalDMIS2023高级编程——搜索孔


$$ *** 程序初始段结束 ***
DMISMN/''
$$ *** 程序初始段 ***
MODE/MAN
RECALL/D(MAC)
WKPLAN/XYPLAN
UNITS/MM,ANGDEC,TEMPC
DECPL/DIST,4,VEC,8,ANGLE,4,TEMP,1
SCNMOD/OFF
TECOMP/OFF
PRCOMP/ON
PTBUFF/ON
SNSET/SEARCH,10.000
SNSET/APPRCH,4.0000
SNSET/RETRCT,2.0000
SNSET/DEPTH,0.0000
SNSET/CLRSRF,OFF
FLY/5.0000
FEDRAT/MESVEL,MMPS,3.5
FEDRAT/POSVEL,PCENT,0.50
FEDRAT/ROTVEL,PCENT,0.75
FEDRAT/SCNVEL,PCENT,0.75
ACLRAT/MESACL,PCENT,0.75
ACLRAT/POSACL,PCENT,0.75
GEOALG/CPARLN,ROUND
V(TEXT)=VFORM/ALL
V(RAWDAT)=VFORM/PLOT,ALL
V(PDF)=VFORM/DME,'PDF',ALL
V(HTML)=VFORM/DME,'HTM',ALL
V(CSV)=VFORM/DME,'CSV',ALL
V(GRAPHF)=VFORM/DME,'DMG',ALL
V(GRAPHV)=VFORM/DME,'DMG/V',ALL
V(GRAPHP)=VFORM/DME,'DMG/P',ALL
V(GRAPHA)=VFORM/DME,'DMG/A',ALL
V(XMLDF)=VFORM/DME,'XMLD',ALL
V(XMLDV)=VFORM/DME,'XMLD/V',ALL
V(XMLDP)=VFORM/DME,'XMLD/P',ALL
V(XMLDA)=VFORM/DME,'XMLD/A',ALL
V(SPCLIGHT)=VFORM/STAT,'SDD',ALL
V(GENSTAT)=VFORM/STAT,'SDD/L',ALL
V(ARCOSTAT)=VFORM/STAT,'SDD/C',ALL
V(QSSTATQ)=VFORM/STAT,'DFQ',ALL
V(QSSTATD)=VFORM/STAT,'DFD',ALL
EQUATE/D(MAC),DA(MAC)
$$ *** 程序初始段结束 ***






SNSLCT/SA(P1_0_0P0_0)
F(PLA_1)=FEAT/PLANE,CART,-630.2310,-932.1222,-943.3087,0.00148781,-0.00115741,0.99999822
MEAS/PLANE,F(PLA_1),4
    PTMEAS/CART,-688.5620,-908.7690,-943.1901,0.00400397,0.00000000,0.99999198
    PTMEAS/CART,-688.5820,-931.5615,-943.2256,0.03001612,0.00500269,0.99953690
    PTMEAS/CART,-572.1880,-911.2810,-943.3724,-0.01301097,0.01201013,0.99984322
    PTMEAS/CART,-571.6350,-976.9629,-943.4436,0.02801557,0.06403558,0.99755430
ENDMES
DECL/DOUBLE,PLA_1_I,PLA_1_J,PLA_1_K
PLA_1_I=OBTAIN/FA(PLA_1),6
PLA_1_J=OBTAIN/FA(PLA_1),7
PLA_1_K=OBTAIN/FA(PLA_1),8
F(CIR_1)=FEAT/CIRCLE,INNER,CART,-604.7864,-937.7296,-945.1245,PLA_1_I,PLA_1_J,PLA_1_K,30.0039
MEAS/CIRCLE,F(CIR_1),4
    PTMEAS/CART,-619.7876,-938.2775,-945.1040,0.99996593,0.00800774,-0.00200193
    PTMEAS/CART,-605.7654,-922.7594,-945.1170,0.02998651,-0.99955030,0.00000000
    PTMEAS/CART,-589.8060,-936.9540,-945.1175,-0.99995950,-0.00899964,0.00000000
    PTMEAS/CART,-619.7575,-936.9585,-945.1180,0.99992786,-0.01201115,0.00000000
ENDMES
CONST/CIRCLE,F(CIR_1),PROJCT,FA(CIR_1),FA(PLA_1)
DECL/DOUBLE,PLA_1_I,PLA_1_J,PLA_1_K
PLA_1_I=OBTAIN/FA(PLA_1),6
PLA_1_J=OBTAIN/FA(PLA_1),7
PLA_1_K=OBTAIN/FA(PLA_1),8
F(CIR_2)=FEAT/CIRCLE,INNER,CART,-605.3495,-969.6852,-945.3369,PLA_1_I,PLA_1_J,PLA_1_K,11.9500
MEAS/CIRCLE,F(CIR_2),4
    PTMEAS/CART,-605.6990,-975.6584,-945.3410,-0.03701164,0.99931433,-0.00100031
    PTMEAS/CART,-610.5306,-972.3121,-945.3405,0.99903147,-0.04400139,0.00000000
    PTMEAS/CART,-605.5950,-963.7070,-945.3350,0.01099933,-0.99993901,0.00099994
    PTMEAS/CART,-599.4786,-968.7050,-945.3330,-0.99985553,-0.01699754,0.00000000
ENDMES
CONST/CIRCLE,F(CIR_2),PROJCT,FA(CIR_2),FA(PLA_1)

DECL/DOUBLE,PLA_1_I,PLA_1_J,PLA_1_K
PLA_1_I=OBTAIN/FA(PLA_1),6
PLA_1_J=OBTAIN/FA(PLA_1),7
PLA_1_K=OBTAIN/FA(PLA_1),8
F(LIN_1)=FEAT/LINE,BND,CART,-604.7864,-937.7296,-945.1245,-605.3495,-969.6852,-945.3369,PLA_1_I,PLA_1_J,PLA_1_K
CONST/LINE,F(LIN_1),BF,FA(CIR_1),FA(CIR_2)


D(DAT_1) = DATSET/FA(PLA_1),ZDIR,ZORIG,FA(LIN_1),XDIR,YORIG,FA(CIR_1),XORIG,YORIG,ZORIG

RECALL/D(DAT_1)
MODE/PROG,MAN
SNSET/CLRSRF,FA(PLA_1),20.0000
GOTO/30.9185,2.7978,36.1900



DECL/CHAR,64,FILENAME,CIRNAME,FILE1,PTNAME
DECL/INTGR,I,PtNum
$$获取圆心坐标和直径
DECL/REAL,PX,PY,Pd
$$未加工的圆数
PtNum=ASSIGN/0
FILENAME=PROMPT/'ENTER THE NAME OF THE DATA FILE WITHOUT EXTENSION(请输入一个数据文件名!)'
FILE1=ASSIGN/CONCAT('E:\',FILENAME,'.TXT')
DID(F1)=DEVICE/STOR,FILE1
OPEN/DID(F1),DIRECT,INPUT
DO/ I,1,5,1
READ/DID(F1),PX,PY,Pd



BADTST/ON
        
         SNSET/SEARCH,6.0000
         PTNAME=ASSIGN/CONCAT('POI_',STR(I))
         F(@PTNAME)=FEAT/POINT,CART,PX,PY,0,0,0,1

          MEAS/POINT,F(@PTNAME),1

              PTMEAS/CART,PX,PY,0

          ENDMES

$$ check to see if the point feature was successfully measured.

$$ if not sucecess  mesure the hole

       IF/(BADPT())
             SNSET/RETRCT,1.0000
             SNSET/APPRCH,1.0000
             DECL/DOUBLE,PLA_1_I,PLA_1_J,PLA_1_K
             PLA_1_I=OBTAIN/FA(PLA_1),6
             PLA_1_J=OBTAIN/FA(PLA_1),7
             PLA_1_K=OBTAIN/FA(PLA_1),8
             CIRNAME=ASSIGN/CONCAT('cir1_',STR(I))
             F(@CIRNAME)=FEAT/CIRCLE,INNER,CART,PX,PY,-2,PLA_1_I,PLA_1_j,PLA_1_k,pd
             MEAS/CIRCLE,F(@CIRNAME),4    
             ENDMES
             CONST/CIRCLE,F(@CIRNAME),PROJCT,FA(@CIRNAME),FA(PLA_1)
      
       
       ELSE
            PtNum=ASSIGN/PtNum+1
       ENDIF

BADTST/OFF

ENDDO
CLOSE/DID(F1)








ENDFIL


举报

相关推荐

0 条评论