社区活动 技术论坛 一个测量平面的小程序,在面上采9点的思路。
一个测量平面的小程序,在面上采9点的思路。
2004-08-13 17:07 68 0 15
各位老师好, 我编了一个测量平面的小程序,在面上采9(3*3 在X轴采3点,在Y轴采3点)点,我的思路是先采一个点,再用LOOP循环这个过程,可是每次循环完毕,只出现这一个点的坐标值,我如何作才能得到9个点的坐标呢?请各位老师指点,后者给我在下面些个这样的程序,我可以学习学习。
我要回复

登陆后才能评论

登录
所有回贴(15)
用了循环语句,每次测量结束后需要变量赋值,把当前值输出来,否则下一次测量后会将值覆盖的。
2004-08-30 19:17
回复
取消
提交
sesame.谢谢你了.这个程序好难阿,我得好好研究研究.其实,我就是测量扁置的圆,就是前哨公司给的那个测量快上面的那四个圆,我就是想学编程而已. 我就是想测量一个圆,在用loop语句编程测量四个圆,然后评价四个圆的位置,运行后可我只能在编辑窗口看到第一个圆的做标值,而在图形窗口看到四个特征圆,这是为什么?是不是后面测的圆的做标值覆盖了前面的值?我如何解决这个问题?
2004-08-27 20:16
回复
取消
提交
调用外部测量圆的子程序 SUBROUTINE/CIRCLE, DATA = "DATA" : , R = "R" : , SN = "START_NO." : , EN = "END_NO." : , = 打开一个文件,用于输出测量值 FPTR =FILE/OPEN,C:and SettingsDocuments,WRITE ASSIGN/NUM = 0 利用变量定义,设置读取外部数据的文件名及路径 ASSIGN/V3 = "D:/PCDMIS3.5/DATA/" ASSIGN/V4 = ".DAT" ASSIGN/V5 = V3+DATA+V4 定义孔的测量深度 C1 =COMMENT/INPUT,HOLE'S DEPTH 定义+\-公差带 C2 =COMMENT/INPUT,+tol C3 =COMMENT/INPUT,-tol 打开需要读取的数据文件 FPTR1 =FILE/OPEN,V5,READ L5 =LABEL/ 变量赋值 F1 =FILE/READLINE,FPTR1,NO+","+XX+","+YY+","+ZZ+","+DD ASSIGN/NUM = NUM+1 这个IF判断是为了让程序可以在任意指定的起始位置开始测量孔,而不一定非要从第一个孔开始测量 IF_GOTO/NUM>=SN ,GOTO = L2 GOTO/L5 IF/R==1 ASSIGN/XX = -XX X轴对称 END_IF/ IF/R==2 ASSIGN/YY = -YY y轴对称 END_IF/ IF/R==3 ASSIGN/ZZ = -ZZ z轴对称 END_IF/ ELSE/ L2 =LABEL/ 自动圆测量 CIRCLENO =AUTO/CIRCLE, SHOWHITS=YES, SHOWALLPARAMS=YES THEO/XX,YY,ZZ,0,0,1,DD ACTL/-0.1728,6.5911,-32.187,0.0254281,-0.4017274,0.9154062,0 TARG/XX,YY,ZZ,0,0,1 THEO_THICKNESS = 0, RECT, IN, CIRCULAR, LEAST_SQR ,$ AUTO MOVE = YES, DISTANCE = 20, RMEAS = None, READ POS = NO, FIND HOLE = NO, REMEASURE = NO ,$ NUMHITS = 4, INIT = 0, PERM = 0, SPACER = 0, PITCH = 0 ,$ START ANG = 0, END ANG = 360, DEPTH = C1.INPUT ,$ ANGLE VEC = 1,0,0 MEAS/CIRCLE HIT/BASIC,0,0,0,-1,0,0,0,0,0 HIT/BASIC,0,0,0,0,-1,0,0,0,0 HIT/BASIC,0,0,0,1,0,0,0,0,0 HIT/BASIC,0,0,0,0,1,0,0,0,0 ENDMEAS/ 评价 FORMAT/TEXT,OPTIONS,HEADINGS, , ;MEAS,NOM,DEV, , , DIM LOC1= LOCATION OF CIRCLE CIRCLENO UNITS=MM ,$ GRAPH=OFF TEXT=OFF MULT=1.00 OUTPUT=BOTH AX MEAS NOMINAL DEV X -0.1728 0.0000 -0.1728 Y 6.5911 0.0000 6.5911 D 0.0000 0.0000 0.0000 END OF DIMENSION LOC1 DIM LOC2= LOCATION OF CIRCLE CIRCLENO UNITS=MM ,$ GRAPH=OFF TEXT=OFF MULT=1.00 OUTPUT=BOTH AX MEAS NOMINAL DEV Z -32.1870 0.0000 -32.1870 END OF DIMENSION LOC2 变量赋值 ASSIGN/V2 = LOC1.X.MEAS END_ELSE/ 将指定值输出到指定文件中(路径在程序开始时已经设置) FILE/WRITELINE,FPTR,V2 判断,如果计数=结束值,结束程序 IF_GOTO/NUM==EN,GOTO = END 循环 GOTO/L5 END =LABEL/ 结束子程序 ENDSUB/ 这是一个测量孔的通用程序
2004-08-26 12:41
回复
取消
提交
如果只有4个圆,一个一个测量救行了,如果是一组对称圆,给您一个思路:不过适用于读取外部数据测量孔。 举例,相对X轴对称 打开文件读取外部数据,每个圆的D、X、Y、Z、I、J、K 变量附值{DD}{XX}{YY}{ZZ}{II}{JJ}{KK} 循环判断 C1 COMMENT/INPUT R 如果“R”=0,测量一侧孔 如果“R”=1,测量对称一侧孔 令XX=-XX 这只是编程时的一个思路,回头我会帖一个完整的程序。
2004-08-26 07:23
回复
取消
提交
用循环语句来做这个程序比较麻烦,不如用阵列和阵列和粘贴的方法来做这个程序就容易多了。 河北廊坊瑞达汽车制动器有限公司
2004-08-25 12:47
回复
取消
提交
其实,我是想测量对称的四个圆,然后在评价每个圆的位置。我没有编过这个程序,所以测量了9个点试验一下。如果,我测量其中一个圆,然后用循环语句来得到另外3个圆的测量数据,该如何做呢?如何保证后面的3个圆的数据逐次显示出来,我好评价?
2004-08-25 07:54
回复
取消
提交
循环开始 自动测量点 评价点坐标 变量赋值ASSIMENT/V1=LOCK.Z.MEAS 可以通过1个小循环K=K+1使它顺序递增,以保证其值不会被下一次测量值覆盖 循环返回 这仅仅是我的简单思路,过两天有机会我可以试一下.不知道您获取9个点理论的方式.
2004-08-23 17:08
回复
取消
提交
Sesame.你好!我也是这样想的,我用的也是循环语句,因为我测量了一个点,然后循环,而每次循环也只是显示这一个点坐标值的变化,而不能看到另外14个点的测量值,我是刚刚学编程的,还有很多不懂,您能否告诉我怎么能编个程序实现:我测一个点,但可以看到另外14个点的值呢? 谢谢您了!
2004-08-23 10:37
回复
取消
提交
如果您是为了评价平面度,可以这样试试: 假设平面的矢量方向是Z向 通过循环语句测量每个点,并输出每个点的Z值 将9个点的Z值,生成一个数组 取得数组中的最大、最小值 最大、最小值之间的差值,就是该平面的平面度 不过这样做要求有正确的工作平面
2004-08-22 11:56
回复
取消
提交
其实在测量的后可以看见采点的坐标,在需要的方向上把坐标值减一下就可以知道是什么地方差了. 身似白云常自在, 心如流水任西东。
2004-08-19 10:05
回复
取消
提交
在线咨询
关注我们

海克斯康制造智能

电话咨询
400-6580-400

热线电话(工作时间8:30-17:30)

关注我们 电话咨询 在线咨询

海克斯康制造智能