yukunv6
发表于 2011-5-24 12:36:11
呵呵!用子程序不快一些吗!?
jiangssli
发表于 2011-5-24 17:07:30
回复 yukunv6 的帖子
呵呵,估计阁下没有把题目读明白!!!用子程序是非常麻烦的!!!那样程序会很长很长!
6704288848
发表于 2011-5-29 22:47:37
谢谢楼主,把自己的精锐拿出来给大家看!可我对宏程序还不是很了解,我现在特别希望能学到点入门知识!希望楼主多多指点!
jiangssli
发表于 2011-5-31 22:07:53
回复 6704288848 的帖子
人气太低了!:L发出来也没人来看啊!
求学求知者
发表于 2011-6-1 01:18:57
大家都是宏程序的高手呀 ·· ·· ·· ·哪我问哈外圆上用35°刀如何车出圆弧螺纹,凸凹都讲讲。
sniper2006
发表于 2011-6-17 21:44:16
回复 jiangssli 的帖子
你这个太复杂了,用子程序和G50相结合就很简单,让你参考一篇文章http://user.qzone.qq.com/413916864/blog/1307800248
jiangssli
发表于 2011-6-18 02:13:56
本帖最后由 jiangssli 于 2011-6-18 02:23 编辑
回复 sniper2006 的帖子
呵呵,估计阁下没有把题目要求读明白!!!用子程序是非常麻烦的!!!那样程序会很长很长! 用G50也会是一样的效果!!
#200=1245的时候.同时切 第一,第二.第四,第五个槽,假如#200=1235的时候,同时切 第一,第二,第三,第五个槽...
如果这个是一个零件,你同时为28家公司供货,每一个公司都要求有区分是不是自己公司的零件的标记槽..其他尺寸都是一样的!是不是你得做28个切槽的程序?然后备注每一个公司对应的是哪一个程序去切标记槽?这样是不是浪费了数控系统的资源?是不是容易出错?我这个程序就简单多了,只有一个程序,节省了系统资源.....#200的值就对应了每一个公司的要求,你只需要改变它的值,就知道是生产哪一个公司的零件了!!
这个题目是别人公司实际加工中遇到过的事情!不过别人遇到的是加工中心零件上面钻孔!我只是把它更改一下做成数控车的题目而已!
SJ15021875032
发表于 2011-6-18 03:10:28
我半路出家的 看不懂宏程式给点新手能看 懂的可以吗!~:'(
sniper2006
发表于 2011-6-18 08:21:17
回复 jiangssli 的帖子
用子程序加宏更快。看实例G97
G99
T0202 M03 S500
G00 X72 Z-1
G01 X70 F0.2
G01 X68 Z0 F0.05
G01 X2 F0.1
G01 X-1 F0.05
G00 X72 W1
M98 P052229 调用子程序O2229调用5次
G50 W-95 加工坐标系的回原
G00 X72 Z0
M30
2.子程序O2229(切槽刀4mm)
G97
G99
T0202 M03 S500
G00 X72 Z-11.1 G75的循环起点
G75 R1
G75 X60 Z-18.9 P4000 Q3800 F0.1 径向方向进刀4mm 轴向方向进刀3.8mm
G00 X61 Z-11.1
G75 R1
G75 X50 Z-18.9 P4000 Q3800 F0.1 径向方向终点值50mm轴向方向终点值18.9mm
G00 X51 Z-11.1
G75 R1 径向方向每进刀4mm退刀1mm可以断屑
G75 X40 Z-18.9 P4000 Q3800 F0.1
G00 X41 Z-11.1
G75 X30.1 Z-18.9 P4000 Q3800 F0.1
G00 X72
Z-10
G01 X70 F0.2
G01 X68 W-1 F0.05
G01 X30 F0.1
G00 X72 W-1
Z-20
G01 X70 F0.2
G01 X68 W1 F0.05
G01 X30 F0.1
G01 Z-11 F0.1
G00 X72 W-1
Z-11.1
G50 W19
M99
你可以把需要变化的值写成宏,如定位G00 X72 Z-11,1可以写成,G00 X#1 Z#2,其他地方也一样,因为零件的结构基本上市一致的,下次就可以直接修改宏,而不需要重新编辑程序。就像西门子一样参数化编程,还有你忘记了C语言的一条重要原则要限制使用GOTO语句。我想对数控也是一样的程序跳来跳去容易出错,过程不好控制。
jiangssli
发表于 2011-6-18 11:35:03
本帖最后由 jiangssli 于 2011-6-18 11:46 编辑
回复 sniper2006 的帖子
我觉得你还是没有看明白本题目是怎么回事吧??
就按你说的调子程序加工,这个零件有29个加工模式,,你的程序怎么去判断什么情况的时候只需要去加工其中的两个位置不同的槽?
#200=1只需要加工第一个槽
#200=2只需要加工第二个槽
#200=3只需要加工第三个槽
#200=4只需要加工第四个槽
#200=135 只需要加工第一 第三 第五个槽
像这样的情况你怎么判断?
每一次都去改程序吗??
多用一个程序就多占用一个系统的资源和空间!!本题目的要求是通过宏程序的算法来精简程序长度,你的方法不是说做不出来,而是占用的系统资源和内存不是一般的大...和我要求的初衷背道而驰了!!
再者如果就按你的思路这样说的话,1-9有多少个不重复数字的组合????如果每个数字的组合用一个子程序的话 且不是有多少组合就得做多少个子程序??
适当和正确的使用GOTO跳转是必须的,思路严谨和构架没有问题的时候,用多少GOTO都不会出错的!如果程序编好测试完以后没有出错就不会出错了!!就像你说的连GOTO跳转都会出错,难道每次去改槽位置的宏变量就不会出错?估计人的大脑在这方面还没有数控系统那么稳定和高效吧??