通过在已知 CAD 模型上生成剖面线, 然后以此剖面线为理论线进行测量的一种方式。

NETDMIS5.0 开线扫描2023_算法

根据实际应用需求,有时需要对零件上的某一截面中的某一段曲线进行测量,然后分析它的曲线轮廓误差,有时需要对零件进行测绘和 CAD 造型。在这种情况下,可以通过开曲线扫描方式来完成对零件表面数据的采集。

开线扫描是最基本的扫描方式。测头从起始点开始,沿一定方向并按预定步长进行扫描,直至终止点。

NETDMIS5.0 开线扫描2023_NETDMIS_02


NETDMIS5.0 开线扫描2023_数据_03


NETDMIS5.0 开线扫描2023_EQ_04


NETDMIS5.0 开线扫描2023_DMIS_05

$$ NET_DMIS_20160720
$$ MADE IN DE 2023-2-11 9:47:28
INCLUD/DMIS,'NET_DMIS_DEFINES.DMI'
INCLUD/DMIS,'VARDEFINE'
DMESW/COMAND,'PROBE_VAL/INIT'
UNITS/MM,ANGDEC
D(MACHINE)=DATSET/MCS
DMESW/COMAND,'COORDSYS/ALIGN'
WKPLAN/XYPLAN
PRCOMP/ON
PRCOMP/ON
FEDRAT/POSVEL,MMPS,300.0000
ACLRAT/POSACL,MMPSS,100.0000
FEDRAT/MESVEL,MMPS,20.0000
ACLRAT/MESACL,MMPSS,100.0000
SNSET/RETRCT,2.0000
SNSET/SEARCH,5.0000
SNSET/APPRCH,2.0000
DMESW/COMAND,'SNSET/MANRETRCT,2.0000'
DMESW/COMAND,'REPORT/CLEAR'
MODE/MAN
DID(D2L40)=DEVICE/STOR,'D2L40'
OPEN/DID(D2L40),SNS
S(A0B0)=SNSDEF/PROBE,INDEX,POL,0.0,0.0,0.0000,0.0000,1.0000,189.6500,2.0000
SNSLCT/SA(A0B0)
DMESW/COMAND,'SNSET/MANRETRCT,2.0000'
GEOALG/PLANE,LSTSQR
F(平面1)=FEAT/PLANE,CART,-24.5529,-15.0248,0,0,0,1.00000000
MEAS/PLANE,F(平面1),3
PTMEAS/CART,-47.9156,27.8206,0,0,0,1.00000000
PTMEAS/CART,-46.3401,-34.3809,0,0,0,1.00000000
PTMEAS/CART,20.5969,-38.5141,0,0,0,1.00000000
ENDMES
SNSET/DEPTH,0
DMESW/COMAND,'CONST/SET_PROJ_VEC,FA(平面1),1'
F(直线1)=FEAT/LINE,UNBND,CART,-45.4725,-45.0000,-2.6951,0.99999301,0,0.00373964,0,-1.00000000,0
MEAS/LINE,F(直线1),2
PTMEAS/CART,-45.4725,-45.0000,-2.5588,0,-1.00000000,0
PTMEAS/CART,27.4436,-45.0000,-2.5588,0,-1.00000000,0
ENDMES
SNSET/DEPTH,0
GEOALG/CIRCLE,LSTSQR
DMESW/COMAND,'CONST/SET_PROJ_VEC,FA(平面1),1'
F(圆1)=FEAT/CIRCLE,INNER,CART,0,0,-2.5026,-0.01170352,0.01348681,0.99984055,30.0000
MEAS/CIRCLE,F(圆1),4
PTMEAS/CART,-9.8637,11.3008,-2.5026,0.65757799,-0.75338648,0
PTMEAS/CART,9.8639,11.3006,-2.5026,-0.65759476,-0.75337184,0
PTMEAS/CART,10.2366,-10.9641,-2.5026,-0.68243858,0.73094294,0
PTMEAS/CART,-8.6280,-12.2702,-2.5026,0.57520039,0.81801254,0
ENDMES
DATDEF/F(平面1),DAT(A_平面1)
D(坐标系1_S)=DATSET/DAT(A_平面1),ZDIR
D(坐标系1_R)=ROTATE/ZAXIS,FA(直线1),XDIR
D(坐标系1_T)=TRANS/XORIG,FA(圆1),YORIG,FA(圆1)
D(坐标系1_T)=TRANS/ZORIG,FA(平面1)
DMESW/COMAND,'COORDSYS/CAD=PART'
SAVE/DA(坐标系1)
MODE/AUTO,PROG,MAN
DMESW/COMAND,'SNSET/MANRETRCT,1.0000'
DMESW/COMAND,'CLEARP/ZDIR,25.0000,ZDIR,25.0000,ON'
F(平面2)=FEAT/PLANE,CART,-1.9718,-4.6274,0,0,0,1.00000000
CALL/EXTERN,DMIS,M(NETDMIS_AUTO_PLANEPOINTS_1006),AUTOFIGURE,F(平面2),PLANE,CART,LSTSQR,-1.9718,-4.6274,$
0,0,0,1.00000000,FALSE,FALSE,FALSE,10.0000,"CUR",TRUE,FALSE,POINTS,'5,-46.1678,-40.2520,0,0,0,1.00000000,$
-38.3716,37.8859,0,0,0,1.00000000,25.1875,37.8166,0,0,0,1.00000000,41.3975,-18.3195,0,0,0,1.00000000,$
8.0956,-40.2678,0,0,0,1.00000000',TOUCH,0.3000,XYPLAN
F(直线2)=FEAT/LINE,BND,CART,-45.9000,-45.0000,-3.0000,30.8718,-45.0000,-3.0000,0,-1.00000000,0
CALL/EXTERN,DMIS,M(NETDMIS_AUTO_LINE_1007),AUTOFIGURE,F(直线2),LINE_BND,CART,-45.9000,-45.0000,-3.0000,$
1.00000000,0,0,76.7718,FALSE,FALSE,FALSE,10.0000,"CUR",TRUE,FALSE,0,-1.00000000,0,3,0,0,0,TOUCH,0.3000,$
XYPLAN,0,0,LINE,"","","EXT1","EXT2","EXT3",ENDCAL
F(圆2)=FEAT/CIRCLE,INNER,CART,0,0,0,0,0,1.00000000,30.0000
CALL/EXTERN,DMIS,M(NETDMIS_AUTO_CIRCLE_1007),AUTOFIGURE,F(圆2),CIRCLE,INNER,CART,LSTSQR,0,0,0,0,0,1.00000000,$
30.0000,1.00000000,0,0,4,-3.0000,0,0,0,46.0000,316.0000,TOUCH,CIRCLE,0.3000,0,FALSE,FALSE,FALSE,10.0000,$
"CUR",TRUE,FALSE,0,FA(VECBLD),10.0000,2.5000,3,XYPLAN,"",'7,0,0,0,0,3.0000,0,10','0,1,0,5.0000',"EXT3",$
ENDCAL
DATDEF/F(平面2),DAT(A_平面2)
D(坐标系2_S)=DATSET/DAT(A_平面2),ZDIR
D(坐标系2_R)=ROTATE/ZAXIS,FA(直线2),XDIR
D(坐标系2_T)=TRANS/XORIG,FA(圆2),YORIG,FA(圆2)
D(坐标系2_T)=TRANS/ZORIG,FA(平面2)
SAVE/DA(坐标系2)
DMESW/COMAND,'GROUP/检测组-1,OFF'
F(点1)=FEAT/POINT,CART,-44.7125,-26.2440,0,0,0,1.00000000
CALL/EXTERN,DMIS,M(NETDMIS_AUTO_POINT_1007),AUTOFIGURE,F(点1),POINT,CART,DME,-44.7125,-26.2440,0,0,0,1.00000000,$
0,0,0,FALSE,FALSE,FALSE,10.0000,"CUR",TRUE,FALSE,0,FA(VECBLD),10.0000,2.5000,3,XYPLAN,"","EXT1","EXT2",$
"EXT3",ENDCAL
F(点2)=FEAT/POINT,CART,-26.8049,37.6942,0,0,0,1.00000000
CALL/EXTERN,DMIS,M(NETDMIS_AUTO_POINT_1007),AUTOFIGURE,F(点2),POINT,CART,DME,-26.8049,37.6942,0,0,0,1.00000000,$
0,0,0,FALSE,FALSE,FALSE,10.0000,"CUR",TRUE,FALSE,0,FA(VECBLD),10.0000,2.5000,3,XYPLAN,"","EXT1","EXT2",$
"EXT3",ENDCAL
F(点3)=FEAT/POINT,CART,30.5457,33.0101,0,0,0,1.00000000
CALL/EXTERN,DMIS,M(NETDMIS_AUTO_POINT_1007),AUTOFIGURE,F(点3),POINT,CART,DME,30.5457,33.0101,0,0,0,1.00000000,$
0,0,0,FALSE,FALSE,FALSE,10.0000,"CUR",TRUE,FALSE,0,FA(VECBLD),10.0000,2.5000,3,XYPLAN,"","EXT1","EXT2",$
"EXT3",ENDCAL
F(点4)=FEAT/POINT,CART,17.1710,-39.7467,0,0,0,1.00000000
CALL/EXTERN,DMIS,M(NETDMIS_AUTO_POINT_1007),AUTOFIGURE,F(点4),POINT,CART,DME,17.1710,-39.7467,0,0,0,1.00000000,$
0,0,0,FALSE,FALSE,FALSE,10.0000,"CUR",TRUE,FALSE,0,FA(VECBLD),10.0000,2.5000,3,XYPLAN,"","EXT1","EXT2",$
"EXT3",ENDCAL
DMESW/COMAND,'MOVE/CLEARPLANE'
DMESW/COMAND,'GROUP/检测组-2,OFF'
F(圆3)=FEAT/CIRCLE,INNER,CART,-33.0000,-38.0000,0,0,0,1.00000000,20.0000
CALL/EXTERN,DMIS,M(NETDMIS_AUTO_CIRCLE_1007),AUTOFIGURE,F(圆3),CIRCLE,INNER,CART,LSTSQR,-33.0000,-38.0000,$
0,0,0,1.00000000,20.0000,0.71414284,-0.70000000,0,4,-2.0000,0,0,0,17.0000,259.0000,TOUCH,CIRCLE,0.3000,$
0,FALSE,FALSE,FALSE,10.0000,"CUR",TRUE,FALSE,0,FA(VECBLD),10.0000,2.5000,3,XYPLAN,"",'7,0,0,0,0,3.0000,$
0,10','0,1,0,5.0000',"EXT3",ENDCAL
DMESW/COMAND,'MOVE/CLEARPLANE'
DECL/CHAR,256,C1
C1=ASSIGN/''
$$
C1=PROMPT/'是否测量圆4'
DECL/CHAR,256,C2
C2=ASSIGN/'是'
$$
IF/(C1.EQ.C2)
F(圆4)=FEAT/CIRCLE,INNER,CART,90.0000,0,-35.0000,0,0,1.00000000,8.0000
CALL/EXTERN,DMIS,M(NETDMIS_AUTO_CIRCLE_1007),AUTOFIGURE,F(圆4),CIRCLE,INNER,CART,LSTSQR,90.0000,0,-35.0000,$
0,0,1.00000000,8.0000,0,1.00000000,0,5,-3.0000,0,0,0,17.0000,259.0000,TOUCH,CIRCLE,0.3000,0,FALSE,FALSE,$
FALSE,10.0000,"CUR",TRUE,FALSE,0,FA(VECBLD),10.0000,2.5000,3,XYPLAN,"",'7,0,0,0,0,3.0000,0,10','0,1,0,$
5.0000',"EXT3",ENDCAL
DMESW/COMAND,'MOVE/CLEARPLANE'
ENDIF
F(圆5)=FEAT/CIRCLE,INNER,CART,20.5061,20.5061,-10.0000,0,0,1.00000000,8.0000
CALL/EXTERN,DMIS,M(NETDMIS_AUTO_CIRCLE_1007),AUTOFIGURE,F(圆5),CIRCLE,INNER,CART,LSTSQR,20.5061,20.5061,$
-10.0000,0,0,1.00000000,8.0000,0,1.00000000,0,4,-1.0000,0,0,0,0,360.0000,TOUCH,CIRCLE,0.3000,0,FALSE,$
FALSE,FALSE,10.0000,"CUR",TRUE,FALSE,0,FA(VECBLD),10.0000,2.5000,3,XYPLAN,"",'7,0,0,0,0,3.0000,0,10',$
'0,1,0,5.0000',"EXT3",ENDCAL
F(圆6)=FEAT/CIRCLE,INNER,CART,-20.5061,20.5061,-10.0000,0,0,1,8.0000
CALL/EXTERN,DMIS,M(NETDMIS_AUTO_CIRCLE_1007),AUTOFIGURE,F(圆6),CIRCLE,INNER,CART,LSTSQR,-20.5061,20.5061,$
-10.0000,0,0,1,8.0000,-1,0,0,4,-1.0000,0,0,0,0,360.0000,TOUCH,CIRCLE,0.3000,0,FALSE,FALSE,FALSE,10.0000,$
"CUR",TRUE,FALSE,0,FA(VECBLD),10.0000,2.5000,3,XYPLAN,"",'7,0,0,0,0,3.0000,0,10','0,1,0,5.0000',"EXT3",$
ENDCAL
F(圆7)=FEAT/CIRCLE,INNER,CART,-20.5061,-20.5061,-10.0000,0,0,1,8.0000
CALL/EXTERN,DMIS,M(NETDMIS_AUTO_CIRCLE_1007),AUTOFIGURE,F(圆7),CIRCLE,INNER,CART,LSTSQR,-20.5061,-20.5061,$
-10.0000,0,0,1,8.0000,0,-1,0,4,-1.0000,0,0,0,0,360.0000,TOUCH,CIRCLE,0.3000,0,FALSE,FALSE,FALSE,10.0000,$
"CUR",TRUE,FALSE,0,FA(VECBLD),10.0000,2.5000,3,XYPLAN,"",'7,0,0,0,0,3.0000,0,10','0,1,0,5.0000',"EXT3",$
ENDCAL
F(圆8)=FEAT/CIRCLE,INNER,CART,20.5061,-20.5061,-10.0000,0,0,1,8.0000
CALL/EXTERN,DMIS,M(NETDMIS_AUTO_CIRCLE_1007),AUTOFIGURE,F(圆8),CIRCLE,INNER,CART,LSTSQR,20.5061,-20.5061,$
-10.0000,0,0,1,8.0000,1,0,0,4,-1.0000,0,0,0,0,360.0000,TOUCH,CIRCLE,0.3000,0,FALSE,FALSE,FALSE,10.0000,$
"CUR",TRUE,FALSE,0,FA(VECBLD),10.0000,2.5000,3,XYPLAN,"",'7,0,0,0,0,3.0000,0,10','0,1,0,5.0000',"EXT3",$
ENDCAL
XTERN
EXTFIL/DMIS,'CURVESURFACE\\曲线1.DMI'
ENDXTN
CALL/EXTERN,DMIS,M(CURVE109481125)