数控车宏程序入门二Word文档下载推荐.docx
- 文档编号:19800601
- 上传时间:2023-01-10
- 格式:DOCX
- 页数:13
- 大小:142.42KB
数控车宏程序入门二Word文档下载推荐.docx
《数控车宏程序入门二Word文档下载推荐.docx》由会员分享,可在线阅读,更多相关《数控车宏程序入门二Word文档下载推荐.docx(13页珍藏版)》请在冰豆网上搜索。
我们知道长、短半轴,可以列出这个方程:
然后,我们把Z作为自变量,X作为因变量,就有了如下方程:
。
当Z取了一个值,X就会被求出来了,这里的X和Z表示椭圆曲线上的某一个点的坐标,当你的Z取60,那么对应的X值就是0。
。
试想一下,如果Z的值不断地变化,那么X的值也跟着变化,最后用G01指令把这些小点连接起来,是不是可以做出椭圆了呢?
!
讲到这,要介绍两个“点”的概念:
椭圆中心点和零件原点。
零件原点一般取在零件的右端面中心,这样就构成了一个直角坐标系。
那么图中的任何长度方向数值,都是带负号的!
这个是基础不再赘述。
椭圆中心点在X0Z-60处。
区别椭圆中心和零件原点是很重要的,很多学习宏程序的人会把这两个点弄混淆!
我们开始编制程序吧。
先做零件切削刀路分析:
首先这个零件我们加工顺序是从右向左,那么刀具当是从零件右端面起切,至最左端结束(这里不考虑装夹)。
(只写精加工)!
T0101
S500M03
G0X0Z2
G01Z0F150
#1=60
我们以椭圆长半轴为自变量。
这个值有正负之分。
取决于需要加工的部分是在椭圆中心点的哪边。
这里取60,是因为图中椭圆要从最右端加工,而最右端的坐标值相对于椭圆中心是60。
因此长半轴、短半轴的取值不是由零件原点决定,而是根据椭圆中心决定的,需格外注意!
)
WHILE[#1GE0]DO1//这句话的意思是:
如果#1的值大于等于60,那么就一直执行DO1、END1里的程序段,直到不符合条件!
#2=20×
SQRT[1-#1*#1/60/60]//此程#2表示椭圆短半轴,跟着长半轴变化而变化。
其实这一步就是我们上面化简的方程,只不过用了宏代码格式表达而已。
G01X[#2*2]Z[#1-60]//这里是重点!
我认为这是宏程序的核心!
这一步直接关系到程序的正确与否!
首先说明为什么#2要乘以2。
因为这里的#2表示短半轴,可以理解为零件X方向单边值。
那么在实际零件里,是双边的值才对,所以要乘以2!
重点是Z值我们先想想,做这个零件,刀具肯定是从右向左加工的。
也就是说Z值是从“-1到-2再到-3一直到-60”的顺序变化的。
如果这个Z段改为”Z#1”那么会怎么样?
我们发现他的第一刀在Z60处!
因为#1=60!
而我们加工时第一刀应该在Z0!
如果#1一直减小那么Z加工方向是对了,但值却不对。
他是从60一直加工到0。
加工完我们就会发现根本没做零件,走了空刀而已!
那我们需要的是从0加工到-60。
所以重点是怎么样才能把他的第一刀定位在Z0!
其实很简单,我们给他点“障碍”,在#1后面减去60。
那么第一刀就会在Z0了。
因为60-60=0。
好,我们看看对不对。
第一刀Z0,第二刀Z-1(这里假设#1每次运算后,减1)第三刀Z-2(程序Z[58-60]的缘故),我们就发现Z值和他的方向都是对的!
总而言之Z向的第一刀在你选择加工的初始点上就可以了!
如果把零件原点和椭圆中心原点设置在一起。
那么Z段程序就应该是“Z#1.这里面的奥妙自己摸索,已经讲的详细了。
#1=#1-1//这程序段意思是#1每经过一次运算后递减1。
(一般递减值不会这么大,0.1就可以了。
只是这里取1是为配合上面的讲解)
END1
G0X100
Z100
M30
第四篇已经结束了,里面有部分内容分是粘贴我以前的一篇文章,当时很多吧友都说还行,所以又用了下,呵呵,偷个懒....但关于椭圆的讲解还远没有结束,这里可以抛几个问题:
如果椭圆轴线不和零件轴线重合,比如偏置了一个距离,那么该怎么编?
如果我只要椭圆曲线的某一个部分,不要一半或者超过一半,又该怎么弄?
亦或是倾斜了一个角度(所谓的斜椭圆)又该怎么编?
这里要说下,斜椭圆那真心是小儿科,以前看到过一人拿这个在吧里忽悠新手,这里我鄙视他一下。
这玩意怎么能拿得出手呢?
第五篇的内容就讲解上面抛出的几个问题。
现在吧友可能觉得越来越深奥,不过没关系,帖子写了永远在那,慢慢来。
这曲线部分只能算是一只脚踏入宏程序的大门,刚开始而已。
连入门都不能算哦!
各位努力吧。
睡觉了......
二
问题宏程序用不用得到
这个问题呢我觉得没法给一个肯定的回答。
就我个人经历而言,以前常用,做数车的时候,公司做变螺距螺杆和异性螺纹等零件,这个不用宏的话很累。
然后做加工中心,用的就更多了。
但确实有些吧友用不到,这不是你的问题,而是公司的问题。
因为公司的活一般都单一,对于一线操作的人来讲,没什么太复杂的零件。
但是,难道我们学技术要根据公司的零件来定吗?
另外我做数控的时候,数车从不用CAM软件编程,加工中心是能不用CAM,尽量不用CAM,除非遇到空间异形曲面不得已而用之。
这里说一句狠话,我数车能用宏做的,CAM不一定能做的了,数车CAM能做的,我手工编程一定能做的了所以,想要提高水平,建议先打好手工编程基础,当然也包括宏。
说句玩笑话,学会宏去装B也可以的么^_^
问题三:
宏有没有等级划分
同样的,等级划分这个问题因人而异。
就我个人而言,我是把所有曲线类的宏都划分为入门,包括加工中心的三维空间曲面,比如空间正弦曲面等等,都是入门级!
这可不是大话,因为这些曲线都有公式,我们要做的就是把公式里的每一个小点用G01链接起来而已。
然后是中级篇,中级主要包括大螺距螺纹的编制,比如梯形,矩形,锯齿形,变螺距,圆弧螺纹,椭圆曲面螺纹等。
高级的呢就有点不切实际,比如我朋友的波浪轴,三爪卡盘不加垫片不用任何工装车偏心,或者怎么让系统定期撞刀,定期撞卡盘等等,还有很多。
基本上高级的宏用来踢馆或者装B用。
至少我是这么玩的^_^所以我很讨厌有人跟踢我,如果来踢我了,那就搞定我的波浪轴吧。
搞不定,就老实的回去^_^
问题四:
有吧友私信我后期会不会收费
说到收费今天还有个小插曲,但过去了。
我也希望这是误会。
我写的东西是共享的,不收费,同时也是原创。
以上是我收集了几个有代表性的问题,只能做简单的解答。
下面我们言归正传!
细心的吧友会发现,为什么这篇不是第五篇,而是4-1呢?
因为我觉得第四篇的椭圆讲解的不够细致,那是我很早之前的一篇文章,部分内容我粘贴到了第四篇。
但既然和各位共享了,那么我就有必要写的更深一层!
今天我用的曲线不是椭圆,咱们换个口味----抛物线!
总是椭圆,我人都快成椭圆了,哈哈
本篇大纲:
1彻彻底底的剖析曲线的编程原理!
NO.1曲线原理深层解析!
任何带有方程的曲线,我们要做的是把他化简,化简的目的是定义出自变量和因变量!
比如昨天的椭圆,我是用Z为自变量,那么能不能用X为自变量呢?
当然可以这个没有拘束。
这里要说一下,自变量不一定是X或者Z,还有可能是一个角度。
这个在后期会讲到,这里不赘述。
化简后,我们就可以着手编制宏了。
下面直接上图:
看到这个图,肯定也看到了方程--!
这里已经化简的差不多了。
但我们需要的是X,不是X的平方,所以还得开根号。
因此用X做因变量的方程是:
X=SQRT(-10*Z)这应该没什么问题。
化简好了那就直接上程序呗:
#1=0
N10#2=SQRT(-10*#1)
G01X[#2*2]Z#1F0.1
#1=#1-0.1
IF[#1GE-29.61]GOTO10
G0X100
程序很短,但里面包含的思想很多。
我们一步一步来分析:
1,#1和#2这里的#1代表Z,#2代表X,也就是说Z是自变量,那么X的值会因为Z的变化而变化。
#1的取值是非常有讲究的,绝不是想给什么值就给什么值!
在这我可以教大家一个简单的方法:
你可以把任意一个数给#1,但是请看下程序的Z值是不是0,然后按照方程再计算下X的值是不是零。
因为我们车削时,曲线的起点就是X0Z0。
如果第一刀是X0Z0那么恭喜你#1的值赋值是正确的!
这里又有人会问,我从哪知道对不对呢?
答案是在这一行“G01X[#2*2]Z-#1F0.1”由于我们#1的初始值是0,所以Z肯定是0,那么X呢?
X是根据上面的方程“SQRT(10*#1)”算出来的。
我们把#1带进方程算算吧!
SQRT(10*0),结果是0也就是说#2=0到了下一行X[#2*2],其实就是X[0*2],此时X是0所以只要你#1正确了,#2肯定是正确的。
因为#2是跟着#1的变化而变化的。
到了这,我把#1和#2的关系介绍了下,应该不难理解
2,N10#2=SQRT(-10*#1)这一步其实没什么,就是把数学方程,用宏格式的代码给写了一遍。
至于前面的N10,这是目标地址,在前面的帖子讲过,不赘述。
但是地址的选择是有讲究的,绝不是乱放。
这个问题到下面再说。
3,G01X[#2*2]Z#1这一步是什么意思呢?
专业术语叫“直线拟合”,之所以称为直线拟合,是因为G01是车削直线的。
也就是说,把一个点的X坐标和Z坐标用GO1指令链接起来,由于Z在变化,所以X也变了,每循环一次,就链接一个点,一直到最后结束。
这里不介绍工作过程,下面会详细的说。
4,#1=#1-0.1这一步前面也讲过,就是#1做递减运算。
如果你是仔细看前面的帖子,这一步不会郁闷的。
所以我不赘述了。
5,IF[#1GE-29.61]GOTO10这一步是判断下有没有车完。
由于我们是#1为自变量,而#1又代表着Z,我们看看图纸中,曲线部分Z值最后一个点是在-29.61,所以当#1的值没有到-29.61,就意味着没车完。
没车完就跳到行号那继续车
6,退刀
以上我仅仅逐行释义了代码,但没有讲解程序的工作过程,现在请各位集中精神,跟着我的思路,看看这程序到底怎么工作的!
首先,我们把系统当做一个人大脑。
它在第一行是,看到有个#1变量,并且他的值是0然后到了第二行,它又看到了行号,并且也记住了方程。
到这他不知道是干嘛的。
到了下面一行
G01X[#2*2]Z-#1F0.1时,他知道了,原来我要执行G01代码,于是他把这行的坐标给算了出来,程序就变成G01X0Z-0F0.1这是走的第一刀,然后这行执行完毕,到了下一行它发现有个#1=#1-0.1。
于是它把#1的值经过运算,得到了-0.1这样又到了下一行,看到一条判断语句IF[#1GE-29.61]GOTO10,它很聪明,把代码翻译成了如果,-0.1大于等于-29.61,那么就跳转到第10号行。
他发现-0.1>
=-29.61的,那就跳转呗。
于是就到了N10#2=SQRT(10*#1)行,此时此刻,他又进行计算了(大家请注意,这一次的计算,#2和#1都不是0了!
经计算器计算,#2=1,#1=-0.1),计算完,#2和#1个字保存了新的值,这样就又到了G01X[#2*2]Z-#1F0.1行,此时它翻译为G01X2Z-0.1大家发现没有,刀具已经在动了哦!
从刚开始的X0Z0车到了X2Z-0.1!
执行完这行,就到了#1=#1-0.1于是呢#1的值就成了-0.2于是又到了判断这行,发现-0.2>
=-29.61,于是继续跳到第10号行,到了这行,由于#1=-0.2,所以#2又是一个新的数值,就这样往复的循环。
循环。
一直到#1不满足条件,退刀!
这里我们可以提前算下,#1=-29.61的时候,看看#2是不是17.21(34.42的一半。
因为#2是单边X值,到了下面的G01段,会乘以2),如果是,那么就对咯。
拿起你们的计算器,算算吧!
#2=SQRT(-10*-29.61)=17.2075....怎么样,结果是对的吧!
那么我们再看看图纸,曲线的最后X值是34.42,完全正确!
这里的误差在范围之内,不要纠结。
以上是程序的执行过程,但我们的问题还没有结束,接着往下看
1,为什么G01X[#2*2]Z#1中的Z#1不写成Z-#1呢?
我们都知道,在数车编程中,如果把工件坐标系原点放在零件右端面的旋转中心,那么任何向左车削的Z值,都是负的(这个我不说为什么。
初一的知识)。
所以按道理应该是Z-#1啊。
其实不然,因为我们的#1就是负值,他是-0.1-0.2-0.3-0.4....-29.61这要再加个“-”号,可就画蛇添足啦!
2这是我给各位的建议:
要学好数控,一定要有一个科学计算器!
这玩意好处大大的!
比如我们程序的开头,#1不知道怎么给数值,那你就随意给一个,然后带到方程算,看看第一刀的起刀点是不是图纸中的那个点。
再比如最后#1需要判断的时候,也不知道车到什么长度结束,那也可以算啊。
把#1=-29.61带到方程算,看X值是不是34.42不就行了?
就这么回事,一定要灵活!
谁说数学好不好就不能学宏的?
咱不会算,这不有计算器么^_^
3我在第四篇的写到的Z值得判定,各位一定要彻底吸收。
细心的吧友会发现,椭圆的那个宏,在Z这一步是“Z[#1-60]”的,可抛物线怎么没用#1减去什么东西呢?
那是因为我们的#1本来就在0位,而椭圆的那个例子,如果不减去60,他的Z第一刀在60MM,而正确的应该是在0,所以就给他减了个60,让他乖乖的到第一刀的Z起刀点:
Z0
4任何曲线,都是这个样,工作过程也一样,只不过有的方程复杂,有的简单而已。
但万变不离其中!
之所以说曲线类的是入门,是因为他有方程啊!
方程就是描述这个曲线的,我们要做的只不过是把曲线的各个点连接起来,仅此而已!
本4-1篇到此就结束了,是对第四篇的一个继论吧。
下一篇的课程内容已经在第四篇说了,这里不赘述啦。
但我还是喜欢勾起别人的胃口,下一篇可是有倾斜类曲线的精讲哦!
^_^
三
在正式讲解之前,我先纠正第四篇的一个错误:
“WHILE[#1GE0]DO1//这句话的意思是:
”这里由于笔误,导致翻译错误。
正确的是:
如果#1的值大于等于0,那么就一直执行DO1、END1里的程序段,直到不符合条件!
”
好,接下来我们步入正题!
上一篇的4-1,对曲线类的加工进行了一次剖析。
下面先介绍本帖大纲:
1“前不着村、后不着店”类曲线的编制
2曲线轴线与回转轴线不共线的零件编程
3倾斜类(斜)曲线的程序编制及原理
NO.1“前不着村、后不着店”类曲线的编制
所谓“前不着村、后不着店”类曲线,就是指曲线部分不完整,只需要加工一小部分的零件,比如
这份图纸是某省技能大赛,这里我们只要看椭圆就行,其他的不管(后期会精讲椭圆曲面螺纹,记得关注哦^_^)
这个零件,我们就发现它和我之前说的曲线不同了,因为他不是全部都需要加工,而只需要中间一部分,首尾都不要!
这类零件该怎么编程呢?
分析:
前面我们在做一半椭圆的时候,零件第一刀在X0Z0,而这份图纸的第一刀X是30.32(经过计算得出)Z0如果继续用Z(#1)向做自变量,那么我们需要给#1赋一个初始值。
这个初始值给0的话,错是没有错,不过会走空刀!
在技能大赛里,时间是非常宝贵的,而且我们也不喜欢空刀,直接在真正的起到点加工多好!
所以这里就涉及到一个问题:
#1的值怎么给?
拿本图举例,这有一个小窍门:
以椭圆的中心为起点,向右找有效的长半轴!
什么意思?
我们看图纸不难发现,椭圆部分有虚线和实线的。
你就找实线部分对应的Z长度,会发现是15!
那么恭喜你,你找对了!
#1的初始值就是15。
所以前面我说,初始值不是想给什么就给什么,要有依据的!
这么一来,把15带进方程算算,看看X是不是30.32(记得最后X乘以2)。
但有吧友会觉得又有问题了,如果#1=15,X值对了,可Z不对了!
因为Z#1是Z15,不是Z0这个问题呢,我在前面也讲过,给他个小“障碍”就行。
具体看程序
#1=15
N10#2=16.5*SQRT[1-#1*#1/38/38]//如果还有吧友对这一步不理解,我。
G01X[#2*2]Z[#1-15]F0.1//这里#1-15就是小障碍,既然第一刀在Z0,要是直接#1的话,第一刀在Z15,那么我减去个15就可以了。
IF[#1GE-15]GOTO10//这里为什么是大于等于负15呢?
因为椭圆有效终点在椭圆圆心左边,所以是负的。
同时我们在图纸里,椭圆的最后Z值是-30,我们把#1带进去算,看看Z最后是不是-30!
从程序不难发现,#1最后肯定会成-15,那么在Z[#1-15]这一步,就会变成Z[-15-15],结果完全正确!
以上就是这个椭圆的程序,其实大家会发现没什么特别,只不过初始值改了改。
这怎么改各位要知道原理。
好,这里我留一个小题目,大家自己想。
如果是下面这幅图,他的#1初始值以及判断终点该怎么办呢?
(比较坑)
上面这个图就当是小练习,程序写完可以留言在本帖,我会在下一篇公布答案及编程原理。
总结:
所有和椭圆自身相关的数值,都是以椭圆自身的中心为参考!
比如,上面的#1=15有吧友可能会问“为什么不是-15呢,尺寸都在零件坐标系的左边啊”。
这里就是我说的问题,#1是椭圆上某个点的Z值坐标,是和椭圆相关,和零件坐标无关。
所以这里给#1赋值,是参考椭圆的中心,因此是15.,而不是-15!
NO.2曲线轴线与回转轴线不共线的零件编程
讲到了第二节,我们步入了全新的一节!
之前所有的曲线讲解,都是基于“二线共一”的原则,但实际加工中,可没这么爽了。
中午也在贴吧看到一位吧友发了这个帖子,说不知道怎么办了。
如果你正在看本帖,那么要留心咯。
下面我们看一张图纸(本人酷爱收集各类、各国大赛图纸,如果吧友有不错的图纸,记得分享给我哦!
)
这里感谢朋友陈建xq帮忙画的图纸。
看到这幅图纸,我们不考虑刀具干预问题。
目前是研究程序的编制,不纠结
由图得知,长半轴为20,短半轴为10至于方程怎么弄。
我不说了
思路分析:
这类的曲线,由于它的轴线和机床回转轴线不共线了,所以较之以往略有不同。
但我们要知道是哪不同。
由图可知,椭圆的Z向是没变化的,变化的是X向!
因为他离开了回转轴线,所以这点我们要想到。
在程序里,我们就对X向“动点手脚”。
直接上程序!
#1=20//这一步问题不大
WHILE[#1GE-20]DO1//由于这里椭圆是“整的”,所以判断终点非常好找。
为什么是-20,因为他参考的是椭圆自身的中心
#2=10*SQRT[1-#1*#1/20/20]
G01X[50-#2*2]Z[#1-20]F0.1
//上面这一步是关键!
我们在编制共线曲线的时候,X向的值是直接乘以2!
但这里只乘以2的话是不够的,因为乘以2是共线的,压根不是我们要的!
并且我们可以看到,这椭圆的X向起点是50,如果只乘以2,根据方程可以算出X的值是0。
所以这里X向用50减去了#2*2。
那么50是哪来的?
看图纸不难发现,椭圆X向偏离回转轴线25MM,而这是半径值,所以25*2=50可为什么又是[50-#2*2]呢?
因为这是凹的!
(其实我很不喜欢这么解释,但它又是最直观的解释。
)所以我们可以想下,要是凸的,不就是50+#2*2么!
这应该不难想象,呵呵那么能不能[#2*2-50]呢?
算算不就知道了。
第一刀应该是X50Z0那么如果是[#2*2-50],那么X的第一刀是:
X-50这不是开玩笑嘛!
所以很多时候大家自己试试就明白的。
END1
.......
以上就是这个椭圆的加工程序。
其实没什么花头,就是X向变化了而已。
如果偏移性的椭圆,它是“前不着村后不着店”类型的,那么就结合我上面讲的,#1的值取好,终点判断弄好就行了。
综合来说,上面讲的稍有仓促。
其实前面的基础扎实的话,本帖到目前的内容是不会有问题的。
因此我又要啰嗦了,基础扎实很关键
上面的知识点没搞懂的吧友,万万不要接着看^_^,下面是给基础扎实的吧友学习使用。
NO.3倾斜类(斜)曲线的程序编制及原理
帖子写到这,总算结束了基础性的东西。
下面呢,我们看一个稍微复杂点的曲线,很多人为之头疼,也有人拿他忽悠宏新手,其实。
它就那么回事!
本人第一次接触倾斜类曲线是在2006年,那时候参加市里的数车高职组技能大赛。
当时练习的时候我也为这个题目头疼,前前后后花了十几分钟吧--!
之所以多数人为之头疼,是因为不知道怎么让曲线旋转。
之前有吧友说,是不是加个锥度或者斜率什么的。
想到这一点,我觉得很不错了。
但和答案差的十万八千里,因为思路就不对。
其实我们只要想一个问题就行:
要旋转。
也就是说椭圆上的点都变化了!
那么有么有旋转方程呢?
本人庆幸读过高中,之所以花了十几分钟搞定,就是因为看到这图第一时间想到的旋转方程!
说到这,相信大家已经知道怎么让曲线旋转了吧!
首先我们看下旋转方程:
X(新)=X*COS(角度)+Z*SIN(角度)
Z(新)=Z*COS(角度)-X*SIN(角度)
这里我们不需要知道方程怎么来的,数学家们已经帮我们整理好了!
但是我们有必要知道方程里的几个参数:
X新和Z新这里的X新和Z新,是指椭圆旋转后,某个点的新的X坐标和Z坐标!
而等号右边的X和Z是未旋转前的某个点的坐标。
其实自己可以想一想,一个点的位置动过了,他的X和Z坐标肯定也变化了,就这个意思!
方程里的角度是指旋转角度,有
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 数控 程序 入门