社区活动 技术论坛 高级编程:测尖方向不受“控制对”的约束吗?(已解决)
高级编程:测尖方向不受“控制对”的约束吗?(已解决)
2010-10-12 11:59 84 0 25
本人对“测尖方向不受‘控制对’的约束”有点困惑,以下程序中,就算我只选1,程序运行到后面,它照样会转测头,我是用软件模拟运行的,没在机器上跑过,但是模拟时,测头会把后面所有的方向一一转向,大师们,是这样的吗? [color=blue]零件名:1 修订号: 序列号: 统计计数:1 启动 =坐标系/开始,回调:,列表=是 坐标系/终止 模式/手动 格式/文本,选项, ,标题,符号, ;标称值,公差,测定值,偏差,超差, , 加载测头/L110D2 测尖/T1A0B0, 柱测尖 IJK=0, 0, 1, 角度=0 平面1 =特征/平面,直角坐标,三角形 理论值/<119.407,47.597,0>,<0,0,1> 实际值/<119.407,47.597,0>,<0,0,1> 测定/平面,4 触测/基本,常规,D=0,<96.206,100.881,0>,<0,0,1>,<96.206,100.881,0>,使用理论值 = 是 触测/基本,常规,D=0,<156.111,64.814,0>,<0,0,1>,<156.111,64.814,0>,使用理论值 = 是 触测/基本,常规,D=0,<143.695,10.452,0>,<0,0,1>,<143.695,10.452,0>,使用理论值 = 是 触测/基本,常规,D=0,<81.614,14.24,0>,<0,0,1>,<81.614,14.24,0>,使用理论值 = 是 终止测量/ 直线1 =特征/直线,直角坐标,非定界 理论值/<48.356,0,-7.366>,<1,0,0> 实际值/<48.356,0,-7.366>,<1,0,0> 测定/直线,2,工作平面 触测/基本,常规,<48.356,0,-6.322>,<0,-1,0>,<48.356,0,-6.322>,使用理论值 = 是 触测/基本,常规,<158.239,0,-8.409>,<0,-1,0>,<158.239,0,-8.409>,使用理论值 = 是 终止测量/ 点1 =特征/点,直角坐标 理论值/<0,15.486,-24.883>,<-1,0,0> 实际值/<0,15.486,-24.883>,<-1,0,0> 测定/点,1 触测/基本,常规,<0,15.486,-24.883>,<-1,0,0>,<0,15.486,-24.883>,使用理论值 = 是 终止测量/ A1 =坐标系/开始,回调:启动,列表=是 建坐标系/找平,Z 正,平面1 建坐标系/旋转,X 正,至,直线1,关于,Z 正 建坐标系/平移,Z 轴,平面1 建坐标系/平移,Y 轴,直线1 建坐标系/平移,X 轴,点1 坐标系/终止 模式/DCC 安全平面/Z 正,25,Z 正,0,开 C1 =注释/输入,否,请输入测尖角度代码(1or2or3)! ,1代表T1A0B0 ,2代表T1A90B0 ,3代表T1A90B180 , , DO/ SELECT/C1.INPUT CASE/1 移动/安全平面 点2 =特征/接触/矢量点,直角坐标 理论值/<65.318,47.643,15.508>,<-0.174262,-0.0722236,0.9820471> 实际值/<65.318,47.643,15.508>,<-0.174262,-0.0722236,0.9820471> 目标值/<65.318,47.643,15.508>,<-0.174262,-0.0722236,0.9820471> SNAP=否 显示高级测量选项=否 显示相关参数=是 自动移动=否,距离=0 显示触测=否 END_CASE/ CASE/2 移动/安全平面 测尖/T1A90B0, 柱测尖 IJK=0, 1, 0, 角度=180 移动/安全平面 点3 =特征/接触/矢量点,直角坐标 理论值/<97.377,107.635,-7.197>,<-0.0044986,0.9999899,0> 实际值/<97.377,107.635,-7.197>,<-0.0044986,0.9999899,0> 目标值/<97.377,107.635,-7.197>,<-0.0044986,0.9999899,0> SNAP=否 显示高级测量选项=否 显示相关参数=是 自动移动=否,距离=0 显示触测=否 END_CASE/ CASE/3 移动/安全平面 测尖/T1A90B180, 柱测尖 IJK=0, -1, 0, 角度=-180 移动/安全平面 点4 =特征/接触/矢量点,直角坐标 理论值/<176.69,0,-13.494>,<0,-1,0> 实际值/<176.69,0,-13.494>,<0,-1,0> 目标值/<176.69,0,-13.494>,<0,-1,0> SNAP=否 显示高级测量选项=否 显示相关参数=是 自动移动=否,距离=0 显示触测=否 END_CASE/ DEFAULT_CASE/ 注释/操作者,否,你输入的代码不正确,程序结束! END_DEFAULTCASE/ END_SELECT/ UNTIL/1[/color] [color=#0000ff][/color] [color=#0000ff][/color] [color=black]以上请高手们答一下啦!!![/color] 看不懂的请不要发表无关评论,谢谢! 上俩图: [attachimg]1181[/attachimg] [attachimg]1182[/attachimg]
我要回复

登陆后才能评论

登录
所有回贴(25)
楼上思路挺好的,我去试试
2010-10-15 07:58
回复
取消
提交
:hug :hug :hug
2010-10-15 08:39
回复
取消
提交
6L,8L的说法仅限PCDMIS吧 如果真这样,那么PCDMIS的DMIS部分就不符合标准DMIS定义 请看下面一段程序,由标准DMIS语言编写: decl/INTGR,k k=assign/1 select/k case/1 SNSLCT/S(ROOTSN1_A0_B0) endcas case/2 SNSLCT/S(ROOTSN1_A90_B0) endcas case/3 SNSLCT/S(ROOTSN1_A90_B180) endcas endsel 这段程序和楼主的程序类似,在很多CNC软件上运行都没问题 如果K=1,机器转到A0B0这个角度以后,再继续转A90B0这个角,然后再转A90B180这个角度,那么[b]ENDCAS[/b]这条命令拿来何用? 所以我估计,如果真如楼主所言,那么这多半是PC的一个BUG,因为根本不存在测头命令是外部命令还不受程序控制的说法 因为程序就是程序,如果一个条件命令,比如IF,SELECT等连一个普通的转测头命令都不能控制 ,这DMIS语言拿来何用? 另外建议楼主:出问题的时候,建议简化程序来做实验,程序越简单越好
2010-10-15 09:36
回复
取消
提交
提供一个用变量表示测头角度的方法: 赋值/V1=90 赋值/V3=90 赋值/V4="T1A"+V1+"B"+V3 测尖/V4, 柱测尖 IJK=0, 0, 1, 角度=0
2010-10-15 10:13
回复
取消
提交
每種語言都由自己的語法規則,不能簡單定義為Bug 不過如果能在這個上有所改進,用起來會更方便.:) "测头命令是外部命令不受程序控制" 不知道PC-DMIS這樣定義是基於什麼考慮?
2010-10-15 10:18
回复
取消
提交
恩,目前DMIS标准没有统一,各大厂商各自为战
2010-10-15 10:55
回复
取消
提交
呵呵,还是有高人的嘛,我说呢!!! 回13F,我的程序在pcdmis里已经是最简单的了,我知道你想要的是程序思路表达,但是这个论坛里有很多人都要钻牛角尖,你有一句不影响程序的语句写得有点不对,这里的人就会说你不对,还说学术容不得半点偏差,搞得像什么似的,呵呵 但是还是很感谢13F的意见 希望高手们继续!!!
2010-10-15 12:31
回复
取消
提交
PC-DIMS的转测头指令是对后面的测量程度行都是有效的,除非出现新的转测头命令。 对于楼主的程序,如果的手动转的测座,他的程序我认为是可行的,但对于自动旋转的测座,楼主的程序运行起来就不方便了。 但我不认为这就是一个BUG,这是有规律的,也符合逻辑的。这对于防呆以及程序的可读性都是有好处的。
2010-10-15 20:57
回复
取消
提交
[quote] 原帖由 [b]yj407[/b] 于 2010-10-15 20:57:00 发表 PC-DIMS的转测头指令是对后面的测量程度行都是有效的,除非出现新的转测头命令。 对于楼主的程序,如果的手动转的测座,他的程序我认为是可行的,但对于自动旋转的测座,楼主的程序运行起来就不方便了。 但我不认为这就是一个BUG,这是有规律的,也符合逻辑的。这对于防呆以及程序的可读性都是有好处的。 [/quote]兄弟,你在前面回答得挺好的,为什么在这里就迷糊了呢?如果是自动头,可以在转测头前加一个移动点啊,就不会怕撞针了,如果还怕不保险,可以在移动点后再加一句询问或加一个断点呀? 现在我的问题是,就算你只选择代码2,它也照样会执行代码1和代码3的转测头命令呀,这难道不是一个bug吗?那如果不是bug,那么按指示选择执行区域的函数还能起什么作用呢? 以上是本人的一点愚见,如果说错了,望不吝赐教,谢谢!!!
2010-10-16 08:06
回复
取消
提交
我始终坚持这样一个观点,程序就是程序,不管程序是做什么用的,他都要符合"程序"通用的规则,如果程序超出了设计者的规则 那么请叫他二次开发,或者叫类似程序,或者叫做修改程序,但千万不要叫做DMIS程序。 控制对里面的命令是一些条件判断,如果一个简单的转测头命令就可以无视这样的判断,那么select CASE的逻辑性在哪里?如果一些硬件(控制柜)命令可以随意超越DMIS语言的规则,那么这样的语言的可移植性在哪里? 另外,15L的解释也很牵强,“每種語言都由自己的語法規則”,我想问下,PC是不是DMIS语言部分,是不是DMIS标准?根据楼主的实验,PC不符合这样的规则,当然你可以说这是PC自己的语言规则,那么请以后的广告不要打上DMIS语言,而应该是类DMIS语言。作为DMIS标准的起草人之一,我不知道海在这个问题上怎么看。 ----玩笑的分割线----------------------------- ----上面是几句玩笑话,请勿对号入座,以下才是正文---- 谁能告诉我,这样做的好处,是什么? 15L给出了答案,但是我实在不懂什么是防呆,所以我不说了,我只说说什么是可读性,程序的可读性的意思是:程序算法简洁,条理清楚,格式规范,容易被人看懂,楼主的程序条理非常清楚,算法非常简介,格式也符合PC的规范,但为什么程序是错误的呢? 我有一个疑问,假如,我从来没用过PCDMIS,而对其他的测量软件很熟练,那么我用其他软件的思路去编这样的PC程序,是不是还要另外准备一买一套新的测头以防止由于我的“不了解”造成的失误? 如果是这样,我只能承认,我还是个初学者,因为今天我搞懂了PCDMIS,明天又出一个ACDMIS,后天出一个BCDMIS,永远都搞不懂。
2010-10-16 10:14
回复
取消
提交
在线咨询
关注我们

海克斯康制造智能

电话咨询
400-6580-400

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

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

海克斯康制造智能