|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区
您需要 登录 才可以下载或查看,没有账号?立即注册
×
本帖最后由 wslaoa 于 2011-10-8 18:39 编辑
3 N( O/ D2 f0 ~, a# h. a' O+ X, H- ]% Z" ~, q
读小鱼(王工)四点碰数程序读后感
4 v/ Z! u' L: V5 @+ m 昨晚,读到若枫论坛上一篇关于自动分中的宏程序,看了半天,没看明白,想放弃,但看到作者宏程序格式书写规范,注释写的完善,感觉作者绝非庸手,就制成pdf保存下来。
* h6 o: p) ]4 q: b! {' h' j, e9 N 今天,闲来无事打开分析,渐渐看出来门道来。
7 p2 U: y. L, f/ F 一般来说,常用的分中建坐标系不外乎作者罗列的三类九种:第一类四边分中(XY双边分中,碰四次);第二类是一对边分中再加另一边(X边分中加一Y边和Y边分中加一X边,碰三下);第三类一角(打XY单边,碰两次)如表所示:( b) t+ ]4 |7 q5 l$ J8 \( g
. Z7 A4 F _3 L' q1 i
如果选四边,需要碰四点,如果选一角需要碰两点,你不能多碰也不能少碰,另外还必须将探头自动移到你需要碰数的地方,否则就不叫自动碰数了,你该怎么实现呢?/ e2 n1 A; e( q; E' x# o
作者用了我们(至少是我)很少用的功能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 ,它的结果是多少呢? M* k: n2 @* n: N6 v# m0 T
$ {2 P; v+ v$ U0 o. p. s' I 不知诸位发现了没有,任何数和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取那些数的良苦用心了。" U0 ]0 r7 F H' ^
附表:
* t* S/ V9 B' N \- n9 A! E
! ?6 G3 N7 k) X8 K4 b" c G3 V0 T 伟哉!作者,我本来以为自己在宏程序上小有所成,现在看来是多么浅陋无知。得知这只是碰数程序中的一部分而已(还有五点碰数)我顿时佩服的五体投地。后来听说有个培训班是他在讲宏程序我就毅然报名参加了。
6 ?" o2 L( y8 H% j4 _ 作者给我们打开了一扇窗,让我们触摸到了宏的强大。愿作者将自己的心血多传授大家,以让全国各地的机床更加智能起来!
' B' Y& t' A+ F8 m3 j; {% K$ M" S F (附:作者是小鱼老师,小鱼老师的程序博大精深,有歪解小鱼老师原意的,希望请小鱼老师原谅。 程序源代码见前面 小鱼老师的帖子找正坐标宏程序)$ z2 Y5 N! |: N6 l+ E
星期八
6 f- V! S9 O+ f `; ]0 `2 o/ H 10月8日凌晨2点 |
评分
-
查看全部评分
|