你的程序我大致看了一下,感觉存在两个问题:
1、切点算法精度有偏差。你那种算法必须是两圆弧中心与理论中心位置重合时才合适,因切点也会随圆弧中心位置的偏差变化的;
2、程序不是很精练,如第1次找正时就应把Y轴建成X轴,免得评价时再旋转。
3、我针对你的程序和数据,又模拟做了一个相同程序,显示评价结果两者是有微小区别的。之所以差的小,证明零件加工的偏差并不是很大,故两者切点算的结果相差也不大。
附我的修改程序,请指正。
圆5 =特征/触测/圆/默认,极坐标,内,最小二乘方
理论值/<46.498,118.058,0>,<0,0,1>,8.996
实际值/<46.498,118.058,0>,<0,0,1>,8.996
目标值/<46.498,118.058,0>,<0,0,1>
起始角=0,终止角=360
角矢量=<0,1,0>
方向=逆时针
圆6 =特征/触测/圆/默认,极坐标,内,最小二乘方
理论值/<46.487,61.946,0>,<0,0,1>,9.026
实际值/<46.487,61.946,0>,<0,0,1>,9.026
目标值/<46.487,61.946,0>,<0,0,1>
起始角=0,终止角=360
角矢量=<0,1,0>
方向=逆时针
坐标系1 =坐标系/开始,回调:启动,列表=是
建坐标系/旋转偏置,90,关于,Z正
坐标系/终止
赋值/AA=RAD2DEG(ASIN(圆5.RM/圆5.PR))
赋值/BB=RAD2DEG(ASIN(圆6.RM/圆6.PR))
F1 =一般/无,从属,直角坐标,内,$
标称值/XYZ,<0,0,0>,$
测定值/XYZ,<0,0,0>,$
标称值/IJK,<0,0,1>,$
测定值/IJK,<0,0,1>,$
半径/0,0,$
角度/22.5,圆5.PA-AA,$
距离/0,0
F2 =一般/无,从属,直角坐标,内,$
标称值/XYZ,<0,0,0>,$
测定值/XYZ,<0,0,0>,$
标称值/IJK,<0,0,1>,$
测定值/IJK,<0,0,1>,$
半径/0,0,$
角度/22.5,360-圆6.PA-BB,$
距离/0,0
格式/文本, , , , , ;测定值,标称值,偏差, , , ,
DIM 8= 平面 的位置F1
A 22°30'24" 22°30'00" 0°00'24"
终止尺寸 8
DIM 9= 平面 的位置F2
A 22°28'58" 22°30'00" -0°01'02"
终止尺寸 9