|
|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区
您需要 登录 才可以下载或查看,没有账号?立即注册
×
本帖最后由 wslaoa 于 2011-10-8 18:39 编辑
* x- @7 M2 R1 o& j) R( N7 [1 ~" U" C% A7 E& W. g* V( @+ B+ l
读小鱼(王工)四点碰数程序读后感
- x2 B% {* [7 p; ]) S5 S 昨晚,读到若枫论坛上一篇关于自动分中的宏程序,看了半天,没看明白,想放弃,但看到作者宏程序格式书写规范,注释写的完善,感觉作者绝非庸手,就制成pdf保存下来。
3 w3 m& n7 R0 v9 A5 A 今天,闲来无事打开分析,渐渐看出来门道来。% b0 r* Y U7 m4 T4 b3 n! j
一般来说,常用的分中建坐标系不外乎作者罗列的三类九种:第一类四边分中(XY双边分中,碰四次);第二类是一对边分中再加另一边(X边分中加一Y边和Y边分中加一X边,碰三下);第三类一角(打XY单边,碰两次)如表所示:
- O7 P. J: l$ R! ]* y; y
9 ^1 `' W( R: S9 B( N6 {' ?; Y$ K3 {
如果选四边,需要碰四点,如果选一角需要碰两点,你不能多碰也不能少碰,另外还必须将探头自动移到你需要碰数的地方,否则就不叫自动碰数了,你该怎么实现呢?5 w! S2 ]; @7 |$ l7 \/ s
作者用了我们(至少是我)很少用的功能AND(与运算),看了作者的程序后,我急忙翻起课本,复习了AND的知识点(1+1=1;1+0=0;0+0=0相当于串联开关,进行与运算时,先转化为相应的二进制数,然后从低位往高位逐个按上述规则进行运算;转化为二进制,位数不同时低位者向高位加0,如10010和1011进行与运算先把1011补位变成01011然后一位一位进行运算)后才恍然大悟:作者巧思构想,用1,2,4,8和对应的数进行与运算。我们只要把这四个数转换为二进制就可以理解作者的独具匠心了:1----1;2----10;4----100;8----1000;也就是说根据上述AND的用法,我们任选一个数如10,它的二进制是1010,。让它和8进行与运算10 AND 8 ,它的结果是多少呢?9 U' B% K- {0 N' j% V: j$ j
& ~ h* j. i& f% g" A# L* F# q
不知诸位发现了没有,任何数和8进行AND运算,都只需考虑第四位即可,结果要么是1000(十进制8),要么是0。 1,2,4也同样。如果理解了这一点,整个程序就可以迎刃而解了。比如选上表中的第三类一角(X-,Y-)模式,按作者X-(1判别),Y-(2判别),Y+(4判别),Y-(8判别)碰就可以得到这样一个结果1,1,0 ,0(其中1代表需要碰;0代表不需要碰),按二进制从高位往低位排列就是0011,对应十进制就是3,其他依次类推就知道作者#14取那些数的良苦用心了。7 s# d$ C0 F$ t2 G: d
附表:
2 N/ [% Q* x/ m4 Q
5 o6 r! X$ E4 L& u6 i1 T 伟哉!作者,我本来以为自己在宏程序上小有所成,现在看来是多么浅陋无知。得知这只是碰数程序中的一部分而已(还有五点碰数)我顿时佩服的五体投地。后来听说有个培训班是他在讲宏程序我就毅然报名参加了。 V" _* w9 t# i$ W) L
作者给我们打开了一扇窗,让我们触摸到了宏的强大。愿作者将自己的心血多传授大家,以让全国各地的机床更加智能起来!
, X8 T; h" O) S% `" `" F2 \ J. R (附:作者是小鱼老师,小鱼老师的程序博大精深,有歪解小鱼老师原意的,希望请小鱼老师原谅。 程序源代码见前面 小鱼老师的帖子找正坐标宏程序)
! b' ]/ f7 ]$ f8 x; ~ 星期八
0 G& v, G2 {; L 10月8日凌晨2点 |
评分
-
查看全部评分
|