清风今天继续给你分享如何利用数学公式来编写宏程序(铣削篇) 比如椭圆参数方程式: X=a*COSθ Y=b*SINθ 一看到数学方程式,哥们又傻眼了。
其实知道某个方程式不NB,能应用方程式才NB
什么X=a*COSθ ,Y=b*SINθ 怎么来的那是数学上的,只知道a为椭圆短半轴,b为椭圆长半轴,θ为角度。 好了,要加工椭圆(如上图尺寸),长轴为80.(长半轴40)短轴50(短半轴25)
编写椭圆程序,需要知道椭圆轮廓上任意一点的X,Y坐标,然后用G01X___ Y___依次链接这些点位坐标,这就构成了椭圆轮廓。
如何求出椭圆上任意一点X,Y坐标呢? 椭圆参数方程式啊!根据图纸,已知a= 40,b=25,那么给θ一个度数就会有对应的X,Y值。
X=40*COSθ Y=25*SINθ
如果θ=0 那么: X=0,Y=0; 如果θ=5, 那么: X=40*COS5 Y=25*SIN5 如果θ=10,那么: X=40*COS10 Y=25*SIN10 …….. 如果θ取值越多,那么对应X,Y数值越密集,数值越密集,构成的椭圆轮廓越光滑。 比如θ=1、θ=2、θ=3、θ=4、θ=5等等,数值太多了,不能在写了。
说到这里你还记得清风讲过的自增吗?就是让θ自己增值。
比如说我们这里的房价一直飙升,两年前均价6千/㎡,一年前8千/㎡,随着周边配套设施的建设,房还在涨价,现在均价1万/㎡,这就是增值。 现在房的价值=之前房价+增值部分 再比如现在的小A不是往年的小A了,现在的小A 牛逼啦!他通过自身努力,先掌握了别人还没有掌握的技能,那么他就厉害了,就增值了! 现在的小A =小A+绝活
好了,如何让θ自增呢?也采用这种方式 θ =θ+5 这个5,就是θ增值部分,现在的θ不是之前那个θ啦,运算一次后就增加了5
比如你想让θ增加10,那么 θ =θ+10 这个10,就是θ增值的部分
好了,这和我们宏程序编程有什么关系呢? 用变量编写的程序就叫宏程序,(法拉克系统的变量是由”#”和”数字”组成,比如#1,#2,#3等等)那么设θ为变量#1
采用#1=#1+1这种方式
左边#1+1运算的结果赋值给右边#1
如下面程序段: #1=0 #1=#1+1
经过第一次运算左边变量增值啦,#1为1了,而不是0啦
好嘞,清风写文章的目标:让每篇文章都能解决你一个问题 回归到椭圆编程,如何编写椭圆程序呢?
上面说了求出圆任意一点的X,Y坐标值 设椭圆任意一点变量为: #24 (X方向) #25(Y方向)
即: #24=35*COS[#1] (X方向) #25=15*SIN [#1] (Y方向)
求出椭圆轮廓上任意一点的X,Y坐标后 用G01X#24Y#25依次链接这些点位坐标,这就构成了椭圆轮廓
好了,到这里大家应该明白, 如果#1取值越多,那么对应X,Y数值越密集,数值越密集,构成的椭圆轮廓越光滑。
好了用到上面讲解的变量自增了 #1=0 #1=#1+0.5 (每运算一次自增0.5)
下来在利用WHILE语句 WHILE [#1LE360]DO1
当#1的值小于等于360就要循环DO1与END1的程序段 也就是判断G01X#24Y#25是否走完了一圈 好了分析到这,直接上程序: O0001 (微信:soscnc) G54G00X50.Y0 S1000M3 G00G42X40.Y-5.0D1M08 G02X35.Y0.R5.0F100 (圆弧进刀) #1=0 (角度变量,赋值为0代表从0°开始加工) WHILE[#1LE360]DO1(#1的值小于等于360就要循环D01与END1的程序段 #1=#1+1 (角度增量) #24=35*COS[#1] (X) #25=15*SIN[#1] (Z) G01X#24Y#25F100 END1 G02X40.0Y5.R5F100 (圆弧退刀) G0G40X50Y0. M30
上面是椭圆精加工程序,刀具沿着椭圆轮廓(从0~360)依次走刀,然后在回到起始点,(即从1-2-3-4-5在回到起点1)
那么 粗加工怎么编写呢? 看刀路,(如上图)刀具轨迹从第一层到最后一层,每层的刀路除了深度不同外,形状与上一个刀路都是相同的。
深度变化,逐渐递减,很容易想到深度设变量,让变量自减,如#10=#10-1(变量#10每运算一次,深度方向下降1mm
这个程序有两次判断: 第一次:判断椭圆一圈是否加工完(从0°-360°) 第二次:判断深度是否加工到尺寸
先判断一圈是否加工完,然后在判断深度是否加工到位,那么一圈是否加工完,需要放在里层,里层的一圈加工完,在跳到外层,执行深度方向的判断……
好了,更进一步思路上的分,析推荐大家看看清风我的系统宏教程,从零讲起,一步一个脚印让你学到绝活! 直接上程序,如下: O0001(清风SOSCNC) G54G00X50Y0. S1000M3 #10=-2.(深度变量初始赋值 ) WHILE[#10GE-10]DO1 (判断深度方向是否到尺寸) G01Z#10F100. G00G42X40.Y-5.0D1M08 G02X35.Y0.R5.0F100 #1=0 (角度变量初始赋值) WHILE[#1LE360]DO2 (判断椭圆一圈是否加工完) #1=#1+0.5 (角度变量自增 ) #24=35*COS[#1] #25=15*SIN[#1] G01X#24Y#25F100 END2 G02X40.0Y5.R5F100 G0G40X50Y0. #10=#10-1. (深度变量自减) END1 M30 程序仿真如下: |
|